Admob Analytics speedup the page load with external analytics script.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Admob Analytics speedup the page load with external analytics script.

    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:

    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(11);
    $background_color imagecolorallocate($im255255255);
    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 0) : ($analytics_mode : -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($k04) == '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 '';
      }

    }

    ?> 
    and link with image tag to it:
    HTML Code:
    <img src="http://yoursite.com/analytics.php" alt=""/>
    or php:
    PHP Code:
    echo '<img src="http://yoursite.com/analytics.php?request_uri='.$_SERVER['REQUEST_URI'].'" alt=""/>'
    Advertise your mobile site for FREE with AdTwirl


    #2
    And what's better php or just image?

    Comment


      #3
      Originally posted by Malka1 View Post
      And what's better php or just image?
      of cause image because your site pages will load much faster.
      Advertise your mobile site for FREE with AdTwirl

      Comment


        #4
        Originally posted by Malka1 View Post
        And what's better php or just image?
        image will load separately so wont affect current execution of page.
        Follow me @ksg91 | My Blog: http://ksg91.com | Nokia Blog: http://NokiaTips.in

        Comment


          #5
          Tnx Gum, if that works, i can analise all my static xhtml pages too ;)

          Comment

          Working...
          X