snipplrCallback({"id":45911,"title":"google-analytics-php-example","source":"
<?php<\/span><\/div><\/li> <\/div><\/li> \/\/ include the GAPI class from http:\/\/code.google.com\/p\/gapi-google-analytics-php-interface\/<\/span><\/div><\/li> require_once<\/span> 'gapi.class.php'<\/span>;<\/span><\/div><\/li> <\/div><\/li> \/\/ login details for the account that has access to analytics reports.<\/span><\/div><\/li> define<\/span><\/a>(<\/span>'ga_web_email'<\/span>,<\/span> 'you@email.com'<\/span>)<\/span>;<\/span><\/div><\/li> define<\/span><\/a>(<\/span>'ga_web_pass'<\/span>,<\/span> 'password'<\/span>)<\/span>;<\/span><\/div><\/li> <\/div><\/li> \/\/ use our caching function above to get some results in a nice array<\/span><\/div><\/li> \/\/ change 123456789 to your google analytics id.<\/span><\/div><\/li> $data<\/span> =<\/span> get_analytics_data(<\/span>'123456789'<\/span>,<\/span>array<\/span><\/a>(<\/span>'date'<\/span>)<\/span>,<\/span>array<\/span><\/a>(<\/span>'newVisits'<\/span>,<\/span>'visits'<\/span>)<\/span>)<\/span>;<\/span><\/div><\/li> \/\/ output the image:<\/span><\/div><\/li> output_image(<\/span>$data<\/span>)<\/span>;<\/span><\/div><\/li> <\/div><\/li> <\/div><\/li> function<\/span> get_analytics_data(<\/span><\/div><\/li> \t\t$profile_id<\/span>,<\/span><\/div><\/li> \t\t$dimensions<\/span>=<\/span>array<\/span><\/a>(<\/span>'browser'<\/span>)<\/span>,<\/span><\/div><\/li> \t\t$metrics<\/span>=<\/span>array<\/span><\/a>(<\/span>'pageviews'<\/span>,<\/span>'visits'<\/span>,<\/span>'UniquePageviews'<\/span>)<\/span>,<\/span><\/div><\/li> \t\t$sort<\/span>=<\/span>null<\/span>,<\/span><\/div><\/li> \t\t$start_date<\/span>=<\/span>null<\/span>,<\/span><\/div><\/li> \t\t$end_date<\/span>=<\/span>null<\/span><\/div><\/li> \t)<\/span>{<\/span><\/div><\/li> \t$cache_id<\/span> =<\/span> md5<\/span><\/a>(<\/span>serialize<\/span><\/a>(<\/span>func_get_args<\/span><\/a>(<\/span>)<\/span>)<\/span>)<\/span>;<\/span><\/div><\/li> \t$return<\/span> =<\/span> false<\/span>;<\/span><\/div><\/li> \t\/\/ check if the cache item exists.<\/span><\/div><\/li> \t$temp_folder<\/span> =<\/span> '\/tmp\/ga\/'<\/span>;<\/span><\/div><\/li> \tif<\/span>(<\/span>!<\/span>is_dir<\/span><\/a>(<\/span>$temp_folder<\/span>)<\/span>)<\/span>mkdir<\/span><\/a>(<\/span>$temp_folder<\/span>)<\/span>;<\/span><\/div><\/li> \t$filename<\/span> =<\/span> $temp_folder<\/span>.<\/span>$cache_id<\/span>;<\/span><\/div><\/li> \tif<\/span>(<\/span>is_file<\/span><\/a>(<\/span>$filename<\/span>)<\/span>)<\/span>{<\/span> \/\/ if cache entry exists<\/span><\/div><\/li> \t\tif<\/span>(<\/span>filemtime<\/span><\/a>(<\/span>$filename<\/span>)<\/span> ><\/span> (<\/span>time<\/span><\/a>(<\/span>)<\/span> -<\/span> 172800<\/span>)<\/span>)<\/span>{<\/span> \/\/ check if it's older than 2 days<\/span><\/div><\/li> \t\t\t$return<\/span> =<\/span> unserialize<\/span><\/a>(<\/span>file_get_contents<\/span><\/a>(<\/span>$filename<\/span>)<\/span>)<\/span>;<\/span> \/\/ grab the cached content.<\/span><\/div><\/li> \t\t}<\/span><\/div><\/li> \t}<\/span><\/div><\/li> \tif<\/span>(<\/span>!<\/span>$return<\/span>)<\/span>{<\/span><\/div><\/li>