Adsense Earnings RSS Feed usin curl
Features
Multiply your income by 10 ! Become a 6 figure blogger ! No, just kidding :) There are no feature this time, except that you can specify how many feed items (i.e. days) you want to have.
<?php /* Hack Name: Adsense to RSS Version: 1.1 Hack URI: http://planetozh.com/blog/my-projects/track-adsense-earnings-in-rss-feed/ Description: Follow your Adsense earnings with an RSS reader Author: Ozh Author URI: http://planetOzh.com */ /* * Release History * * 1.1 (04/23/2006 - CGibson) * Fixed to work with recent modifications to Google AdSense * - Changed "csv" post data field to "outputFormat" * - Changed spliting of date from "/" to "-" * * 1.0 (10/07/2005) * Initial Release */ /************ SCRIPT CONFIGURATION ***********/ /*********************************************/ $username="you@email.com"; // your adsense username $password="MySuPeRpAsSwOrD"; // your adsense password $daterange = 20 ; // range of days to aggregate in RSS reader $cookie="./.cookiefile"; // a temp file name - you mostly don't care about this // This will create a hidden file in the current directory. If it seems to fail, // replace with a full physical path (i.e. /home/you/temp/cookiefile) /************ DO NOT MODIFY BELOW ************/ /*********************************************/ $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")); /* Following lines are based on a script found on WMW forums */ /* http://www.webmasterworld.com/forum89/5349.htm */ $destination="/adsense/report/aggregate?" ."sortColumn=0" ."&reverseSort=false" ."&outputFormat=TSV_EXCEL" ."&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=property" ."&searchField=" ."&groupByPref=date"; $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, 20); 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); $result = curl_exec ($ch); curl_close($ch); $result=preg_split("/\n/",$result); array_pop($result); array_pop($result); array_shift($result); $result = array_reverse($result); header('Content-type: text/xml'); echo '<?xml version="1.0" encoding="iso-8859-1"?>'; echo "\n"; ?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" > <channel> <title><?php echo "$daterange days of Adsense"; ?></title> <link>https://www.google.com/adsense/</link> <description>An RSS feed of my Adsense earnings for the last <?php echo $daterange ?> days</description> <language>en</language> <?php $firstday=1; foreach ($result as $line) { $item = array(); $line = str_replace("\x00",'',$line); $line = str_replace('"','',$line); list($day, $pages, $clicks, $ctr, $eCPM, $income) = preg_split("/\s/",$line); $item['title']= "<title>\$$income on $day</title>"; $item['guid'] = '<guid isPermaLink="false">' . md5($username.$day) . "</guid>"; $day = split('-',$day); $day = mktime(0, 0, 0, $day[1] , $day[0], $day[2]); if ($firstday == 1) { $day = date("D, d M Y H:i:s +0000"); $firstday = 0; } else { $day = date("D, d M Y H:i:s +0000", $day); } $item['pubDate'] = "<pubDate>$day</pubDate>"; $item['category'] = "<category>adsense</category>"; $item['description'] = "<description>\$$income ($clicks clicks on $pages pages : CTR = $ctr - eCPM = $eCPM)</description>"; $item['content'] = "<content:encoded><![CDATA[ <table> <tr><td>Pages printed</td><td>Clicks</td><td>CTR</td><td>eCPM</td><td>Earnings</td></tr> <tr><td>$pages</td><td>$clicks</td><td>$ctr</td><td>$eCPM</td><td>$income</td></tr> </table> ]]></content:encoded>"; print "<item>\n"; print $item['title'] ."\n"; print $item['guid'] ."\n"; print $item['pubDate'] ."\n"; print $item['category'] ."\n"; print $item['description'] ."\n"; print $item['content'] ."\n"; print "</item>\n"; } ?> </channel> </rss>
ليست هناك تعليقات:
إرسال تعليق