firebird
Registered User
- تاریخ عضویت
- 2 جولای 2005
- نوشتهها
- 1,424
- لایکها
- 10
- سن
- 47
یه مشکلی که اکثر پابلیشرها دارن اینه که وقتی با IP ایران میخوان ریپورتهای ادسنس رو ببینند نگران بسته شدن اکانتشون هستند. یک راه استفاده از سرویس ایمیل هست که هفته ای یک بار دوشنبه ها ریپورت رو به ایمیل میفرسته. اما روش دیگه ای که میشه هر لحظه ازش استفاده کرد خوندن ریپورت توسط اسکریپت و نمایش اون در سایت خودمون هست. اسکریپتی که اینجا معرفی میکنم این کار رو انجام میده.
سورس اولیه که بخش خوندن از اون برداشته شده هم اینجاست :
http://curl.haxx.se/libcurl/php/examples/rss-adsense.html
توضیحات دیگر :
- چند خط اول باید تغییر داده بشوند. توضیحات در خود کد هست.
- یه پارامتر دیگه من خودم تعریف کردم به نام click value که جای دیگه نشنیدین ولی خوب معلومه چیه
سوالی بود در خدمتم.
سورس اولیه که بخش خوندن از اون برداشته شده هم اینجاست :
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'> Day</td><td width='12%'> Clicks</td><td width='12%'> Pages</td><td width='12%'> CTR</td><td width='12%'> eCPM</td><td width='12%'> Click Value</td><td width='13%'> 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'> " . $count . "</td>";
$out .= "<td bgcolor='#E1E1E1'> " . date("l", $daydate) . "</td>";
$out .= "<td bgcolor='#E1E1E1'> " . date("j F Y", $daydate) . "</td>";
$out .= "<td bgcolor='#F5F5F5'> " . $clicks . "</td>";
$out .= "<td bgcolor='#E1E1E1'> " . $pages . "</td>";
$out .= "<td bgcolor='#F5F5F5'> " . $ctr . "</td>";
$out .= "<td bgcolor='#E1E1E1'> " . $eCPM . "</td>";
$out .= "<td bgcolor='#F5F5F5'> " . sprintf("$%.2f", $click_value) . "</td>";
$out .= "<td bgcolor='#E1E1E1'> " . $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'> Total (without today)</td>";
$out .= "<td bgcolor='#F5F5F5' style='border-top: 1px solid black'> " . $clicks_total . "</td>";
$out .= "<td bgcolor='#E1E1E1' style='border-top: 1px solid black'> " . $pages_total . "</td>";
$out .= "<td bgcolor='#F5F5F5' style='border-top: 1px solid black'> " . $ctr_total . "</td>";
$out .= "<td bgcolor='#E1E1E1' style='border-top: 1px solid black'> $" . $ecpm_total . "</td>";
$out .= "<td bgcolor='#F5F5F5' style='border-top: 1px solid black'> " . sprintf("$%.2f", $click_value_total) . "</td>";
$out .= "<td bgcolor='#E1E1E1' style='border-top: 1px solid black'> $" . $money_total . "</td>";
$out .= "</tr>";
if (!$count) $count = 1;
$out .= "<tr>";
$out .= "<td bgcolor='#E1E1E1' style='border-top: 1px solid black' colspan='3'> Average (without today)</td>";
$out .= "<td bgcolor='#F5F5F5' style='border-top: 1px solid black'> " . round($clicks_total / $count, 2) . "</td>";
$out .= "<td bgcolor='#E1E1E1' style='border-top: 1px solid black'> " . round($pages_total / $count, 2) . "</td>";
$out .= "<td bgcolor='#F5F5F5' style='border-top: 1px solid black'> <b>" . round($ctr_total / $count, 2) . "%</b></td>";
$out .= "<td bgcolor='#E1E1E1' style='border-top: 1px solid black'> <b>" . sprintf("$%.2f", $ecpm_total / $count, 2) . "</b></td>";
$out .= "<td bgcolor='#F5F5F5' style='border-top: 1px solid black'> <b>" . sprintf("$%.2f", $click_value_total / $count) . "</b></td>";
$out .= "<td bgcolor='#E1E1E1' style='border-top: 1px solid black'> <b>" . sprintf("$%.2f", $money_total / $count) . "</b></td>";
$out .= "</tr>";
$out .= "</table>";
echo $out;
?>