if you include the admob analytics php code into your site pages the page execution time will be about 1 second or more longer than usually, but if you imagelink to the analytics code, the page execution time will be fast as normal.
so create an extra script eg. analytics.php
and put this code into it:
and link with image tag to it:
or php:
so create an extra script eg. analytics.php
and put this code into it:
PHP Code:
header("Cache-Control: no-cache, must-revalidate"); // Prevent caching, HTTP/1.1
header("Pragma: no-cache");
$admob_params = array(
'ANALYTICS_ID' => 'a14b488d25044ee', // Required to collect Analytics data. To find your Analytics ID, log in to your Analytics account and click on the "Edit" link next to the name of your site.
'ANALYTICS_REQUEST' => true, // To enable the collection of analytics data, set to TRUE.
'TEST_MODE' => false, // While testing, set to TRUE. When you are ready to make live requests, set to FALSE.
// Additional optional parameters are available at: http://developer.admob.com/wiki/AdCodeDocumentation
'OPTIONAL' => array()
);
admob_request($admob_params);
header("Content-type: image/png");
$im = @imagecreate(1, 1);
$background_color = imagecolorallocate($im, 255, 255, 255);
imagepng($im);
imagedestroy($im);
function admob_request($admob_params) {
static $pixel_sent = false;
$ad_mode = false;
if (!empty($admob_params['AD_REQUEST']) && !empty($admob_params['PUBLISHER_ID'])) $ad_mode = true;
$analytics_mode = false;
if (!empty($admob_params['ANALYTICS_REQUEST']) && !empty($admob_params['ANALYTICS_ID']) && !$pixel_sent) $analytics_mode = true;
$protocol = 'http';
if (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off') $protocol = 'https';
$rt = $ad_mode ? ($analytics_mode ? 2 : 0) : ($analytics_mode ? 1 : -1);
if ($rt == -1) return '';
list($usec, $sec) = explode(' ', microtime());
if(isset($_GET['request_uri'])) $_SERVER['REQUEST_URI'] = $_GET['request_uri'];
$params = array('rt=' . $rt,
'z=' . ($sec + $usec),
'u=' . urlencode($_SERVER['HTTP_USER_AGENT']),
'i=' . urlencode($_SERVER['REMOTE_ADDR']),
'p=' . urlencode("$protocol://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']),
'v=' . urlencode('20081105-PHPFSOCK-33fdd8e59a40dd9a'));
$sid = empty($admob_params['SID']) ? session_id() : $admob_params['SID'];
if (!empty($sid)) $params[] = 't=' . md5($sid);
if ($ad_mode) $params[] = 's=' . $admob_params['PUBLISHER_ID'];
if ($analytics_mode) $params[] = 'a=' . $admob_params['ANALYTICS_ID'];
if (!empty($_COOKIE['admobuu'])) $params[] = 'o=' . $_COOKIE['admobuu'];
if (!empty($admob_params['TEST_MODE'])) $params[] = 'm=test';
if (!empty($admob_params['OPTIONAL'])) {
foreach ($admob_params['OPTIONAL'] as $k => $v) {
$params[] = urlencode($k) . '=' . urlencode($v);
}
}
$ignore = array('HTTP_PRAGMA' => true, 'HTTP_CACHE_CONTROL' => true, 'HTTP_CONNECTION' => true, 'HTTP_USER_AGENT' => true, 'HTTP_COOKIE' => true);
foreach ($_SERVER as $k => $v) {
if (substr($k, 0, 4) == 'HTTP' && empty($ignore[$k]) && isset($v)) {
$params[] = urlencode('h[' . $k . ']') . '=' . urlencode($v);
}
}
$post = implode('&', $params);
$request_timeout = 1; // 1 second timeout
$contents = '';
$errno = 0;
$errstr = '';
list($usec_start, $sec_start) = explode(' ', microtime());
$request = @fsockopen('r.admob.com', 80, $errno, $errstr, $request_timeout);
if($request) {
stream_set_timeout($request, $request_timeout);
$post_body = "POST /ad_source.php HTTP/1.0\r\nHost: r.admob.com\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: " . strlen($post) . "\r\n\r\n" . $post;
$post_body_len = strlen($post_body);
$bytes_written = 0;
$body = false;
$info = stream_get_meta_data($request);
$timeout = $info['timed_out'];
while($bytes_written < $post_body_len && !$timeout) {
$current_bytes_written = fwrite($request, $post_body);
if($current_bytes_written === false) return ''; // write failed
$bytes_written += $current_bytes_written;
if($bytes_written === $post_body_len) break;
$post_body = substr($post_body, $bytes_written);
$info = stream_get_meta_data($request);
$timeout = $info['timed_out'];
}
while(!feof($request) && !$timeout) {
$line = fgets($request);
if(!$body && $line == "\r\n") $body = true;
if($body && !empty($line)) $contents .= $line;
$info = stream_get_meta_data($request);
$timeout = $info['timed_out'];
}
fclose($request);
}
else {
$contents = '';
}
}
?>
HTML Code:
<img src="http://yoursite.com/analytics.php" alt=""/>
PHP Code:
echo '<img src="http://yoursite.com/analytics.php?request_uri='.$_SERVER['REQUEST_URI'].'" alt=""/>';
Comment