• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

مشاهده درآمد ادسنس بدون نیاز به لاگین شدن

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
47
یه مشکلی که اکثر پابلیشرها دارن اینه که وقتی با IP ایران میخوان ریپورتهای ادسنس رو ببینند نگران بسته شدن اکانتشون هستند. یک راه استفاده از سرویس ایمیل هست که هفته ای یک بار دوشنبه ها ریپورت رو به ایمیل میفرسته. اما روش دیگه ای که میشه هر لحظه ازش استفاده کرد خوندن ریپورت توسط اسکریپت و نمایش اون در سایت خودمون هست. اسکریپتی که اینجا معرفی میکنم این کار رو انجام میده.

سورس اولیه که بخش خوندن از اون برداشته شده هم اینجاست :
http://curl.haxx.se/libcurl/php/examples/rss-adsense.html

توضیحات دیگر :
- چند خط اول باید تغییر داده بشوند. توضیحات در خود کد هست.
- یه پارامتر دیگه من خودم تعریف کردم به نام click value که جای دیگه نشنیدین ولی خوب معلومه چیه ;)

سوالی بود در خدمتم.


PHP:
<?
	$username="[email protected]";  // - your email
	$password="xxxxxxxx";     // - your password
	$cookie = "/home/site/public_html/tmp/cookiefile"; // - directory must be writable
	$channel_id = "xxxxxx";  // - you can find it from report URL in adsense control panel
	$daterange = 15 ;

	$daysbefore = mktime(0, 0, 0, date("m") , date("d") - $daterange, date("Y"));
	list ($d_from,$m_from,$y_from) = split(':', date("j:n:Y", $daysbefore));
	list ($d_to,$m_to,$y_to) = split(':', date("j:n:Y"));
	
	$destination="/adsense/report/aggregate?"
		."sortColumn=0"
		."&reverseSort=false"
		."&csv=true"
		."&product=afc"
		."&dateRange.simpleDate=today"
		."&dateRange.dateRangeType=custom"
		."&dateRange.customDate.start.day=$d_from"
		."&dateRange.customDate.start.month=$m_from"
		."&dateRange.customDate.start.year=$y_from"
		."&dateRange.customDate.end.day=$d_to"
		."&dateRange.customDate.end.month=$m_to"
		."&dateRange.customDate.end.year=$y_to"
		."&unitPref=page"
		."&reportType=channel"
		."&searchField="
		."&groupByPref=date"
		."&c.id=$channel_id";
	
	$postdata="destination=".urlencode($destination)."&username=".urlencode($username)."&password=".urlencode($password)."&null=Login";
	
	$ch = curl_init(); 
	curl_setopt ($ch, CURLOPT_URL,"https://www.google.com/adsense/login.do"); 
	curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
	curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); 
	curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
	curl_setopt ($ch, CURLOPT_FOLLOWLOCATION,1); 
	curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
	curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
	curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie); 
	curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
	curl_setopt ($ch, CURLOPT_POST, 1); 
	$html = curl_exec ($ch); 
	curl_close($ch); 
	
	$out = "<table class='text' style='border-collapse: collapse' border='0' width='100%' bgcolor='#F5F5F5'>";
	$out .= "<tr bgcolor='#87CEFA'><td width='30%' colspan='3'>&nbsp; Day</td><td width='12%'>&nbsp; Clicks</td><td width='12%'>&nbsp; Pages</td><td width='12%'>&nbsp; CTR</td><td width='12%'>&nbsp; eCPM</td><td width='12%'>&nbsp; Click Value</td><td width='13%'>&nbsp; Earning</td></tr>";

	$count = 0;
	$money_total = 0;
	$clicks_total = 0;
	$pages_total = 0;
	$ctr_total = 0;
	$ecpm_total = 0;
	$click_value_total = 0;

	$html = substr($html, strpos($html, "Earnings ") + 9);
	$html = substr($html, 0, strpos($html, "Totals"));
	$html = strtolower($html);	
	$html = str_replace('</td>', '{}', $html);
	$html = str_replace('</tr>', '[]', $html);
	$html = strip_tags($html);
	$html = str_replace("\x00", '', $html);
	$html = str_replace("\x0d", '', $html);
	$html = str_replace("\x0a", '', $html);
	$html = str_replace("\r\n    ", '', $html);
	$html = str_replace("   ", ' ', $html);
	$html = str_replace("  ", ' ', $html);
	$html = str_replace(" ", ' ', $html);

	$lines = explode('[]', $html);
	$count = 0;
	
	foreach($lines as $line) 
	{
		if (strlen($line) < 10) continue; 
		list($day, $pages, $clicks, $ctr, $eCPM, $income) = explode("{}", $line);
		
		if (($pages + 0) !== 0) 
		{
			$count++;

			$daydate = strtotime($day);
			$money = substr(trim($income), 1);
			$click_value =  $money / (($clicks+0) ? $clicks : 1);

			$money_total += $money;
			$clicks_total += $clicks;
			$pages_total += str_replace(',', '', $pages);
			$ctr_total += $ctr;
			$ecpm_total += substr(trim($eCPM), 1);
			$click_value_total += $click_value;
			
			$out .= "<tr>";
			$out .= "<td bgcolor='#E1E1E1'>&nbsp; " . $count . "</td>";
			$out .= "<td bgcolor='#E1E1E1'>&nbsp; " . date("l", $daydate) . "</td>";
			$out .= "<td bgcolor='#E1E1E1'>&nbsp; " . date("j F Y", $daydate) . "</td>";
			$out .= "<td bgcolor='#F5F5F5'>&nbsp; " . $clicks . "</td>";
			$out .= "<td bgcolor='#E1E1E1'>&nbsp; " . $pages . "</td>";
			$out .= "<td bgcolor='#F5F5F5'>&nbsp; " . $ctr . "</td>";
			$out .= "<td bgcolor='#E1E1E1'>&nbsp; " . $eCPM . "</td>";
			$out .= "<td bgcolor='#F5F5F5'>&nbsp; " . sprintf("$%.2f", $click_value) . "</td>";
			$out .= "<td bgcolor='#E1E1E1'>&nbsp; " . $income . "</td>";
			$out .= "</tr>";
		}		
	}

	// - remove today in calculations
	$count--;
	$money_total -= substr(trim($income), 1);
	$clicks_total -= $clicks;
	$pages_total -= str_replace(',', '', $pages);
	$ctr_total -= $ctr;
	$ecpm_total -= substr(trim($eCPM), 1);
	$click_value_total -= $click_value;

	$out .= "<tr>";
	$out .= "<td bgcolor='#E1E1E1' style='border-top: 1px solid black' colspan='3'>&nbsp; Total (without today)</td>";
	$out .= "<td bgcolor='#F5F5F5' style='border-top: 1px solid black'>&nbsp; " . $clicks_total . "</td>";
	$out .= "<td bgcolor='#E1E1E1' style='border-top: 1px solid black'>&nbsp; " . $pages_total . "</td>";
	$out .= "<td bgcolor='#F5F5F5' style='border-top: 1px solid black'>&nbsp; " . $ctr_total . "</td>";
	$out .= "<td bgcolor='#E1E1E1' style='border-top: 1px solid black'>&nbsp; $" . $ecpm_total . "</td>";
	$out .= "<td bgcolor='#F5F5F5' style='border-top: 1px solid black'>&nbsp; " . sprintf("$%.2f", $click_value_total) . "</td>";
	$out .= "<td bgcolor='#E1E1E1' style='border-top: 1px solid black'>&nbsp; $" . $money_total . "</td>";
	$out .= "</tr>";

	if (!$count) $count = 1;
	$out .= "<tr>";
	$out .= "<td bgcolor='#E1E1E1' style='border-top: 1px solid black' colspan='3'>&nbsp; Average (without today)</td>";
	$out .= "<td bgcolor='#F5F5F5' style='border-top: 1px solid black'>&nbsp; " . round($clicks_total / $count, 2) . "</td>";
	$out .= "<td bgcolor='#E1E1E1' style='border-top: 1px solid black'>&nbsp; " . round($pages_total / $count, 2) . "</td>";
	$out .= "<td bgcolor='#F5F5F5' style='border-top: 1px solid black'>&nbsp; <b>" . round($ctr_total / $count, 2) . "%</b></td>";
	$out .= "<td bgcolor='#E1E1E1' style='border-top: 1px solid black'>&nbsp; <b>" . sprintf("$%.2f", $ecpm_total / $count, 2) . "</b></td>";
	$out .= "<td bgcolor='#F5F5F5' style='border-top: 1px solid black'>&nbsp; <b>" . sprintf("$%.2f", $click_value_total / $count) . "</b></td>";
	$out .= "<td bgcolor='#E1E1E1' style='border-top: 1px solid black'>&nbsp; <b>" . sprintf("$%.2f", $money_total / $count) . "</b></td>";
	$out .= "</tr>";

	$out .= "</table>";

	echo $out;
?>
 
بالا