php 移动网站添加 google Analytics统计代码

请注意:请勿在使用移动跟踪的网页上使用台式机跟踪代码。

第 1 步:复制下列代码,然后将其粘贴到您要跟踪的每个网页的 <html> 标记之前,并使其紧邻此标记。
Php代码   收藏代码
  1. <?php  
  2.   // Copyright 2009 Google Inc. All Rights Reserved.  
  3.   $GA_ACCOUNT = "MO-19479815-4";  
  4.   $GA_PIXEL = "/ga.php";  
  5.   
  6.   function googleAnalyticsGetImageUrl() {  
  7.     global $GA_ACCOUNT$GA_PIXEL;  
  8.     $url = "";  
  9.     $url .= $GA_PIXEL . "?";  
  10.     $url .= "utmac=" . $GA_ACCOUNT;  
  11.     $url .= "&utmn=" . rand(0, 0x7fffffff);  
  12.     $referer = $_SERVER["HTTP_REFERER"];  
  13.     $query = $_SERVER["QUERY_STRING"];  
  14.     $path = $_SERVER["REQUEST_URI"];  
  15.     if (emptyempty($referer)) {  
  16.       $referer = "-";  
  17.     }  
  18.     $url .= "&utmr=" . urlencode($referer);  
  19.     if (!emptyempty($path)) {  
  20.       $url .= "&utmp=" . urlencode($path);  
  21.     }  
  22.     $url .= "&guid=ON";  
  23.     return str_replace("&""&amp;"$url);  
  24.   }  
  25. ?>  


第 2 步:复制下列代码,然后将其粘贴到您要跟踪的每个网页的 </body> 标记之前,并使其紧邻此标记。
Php代码   收藏代码
  1. <?php  
  2.   $googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();  
  3.   echo '<img src="' . $googleAnalyticsImageUrl . '" />';?>  


第3步:
下载 ga.php 并将其保存到您的网络服务器的根目录 ("/")。请确保将您的根目录配置为执行服务器端代码

ga.php代码如下:

<?php

/**
  Copyright 2009 Google Inc. All Rights Reserved.
**/

  // Tracker version.
  define("VERSION", "4.4sh");

  define("COOKIE_NAME", "__utmmobile");

  // The path the cookie will be available to, edit this to use a different
  // cookie path.
  define("COOKIE_PATH", "/");

  // Two years in seconds.
  define("COOKIE_USER_PERSISTENCE", 63072000);

  // 1x1 transparent GIF
  $GIF_DATA = array(
      chr(0x47), chr(0x49), chr(0x46), chr(0x38), chr(0x39), chr(0x61),
      chr(0x01), chr(0x00), chr(0x01), chr(0x00), chr(0x80), chr(0xff),
      chr(0x00), chr(0xff), chr(0xff), chr(0xff), chr(0x00), chr(0x00),
      chr(0x00), chr(0x2c), chr(0x00), chr(0x00), chr(0x00), chr(0x00),
      chr(0x01), chr(0x00), chr(0x01), chr(0x00), chr(0x00), chr(0x02),
      chr(0x02), chr(0x44), chr(0x01), chr(0x00), chr(0x3b)
  );

  // The last octect of the IP address is removed to anonymize the user.
  function getIP($remoteAddress) {
    if (empty($remoteAddress)) {
      return "";
    }

    // Capture the first three octects of the IP address and replace the forth
    // with 0, e.g. 124.455.3.123 becomes 124.455.3.0
    $regex = "/^([^.]+\.[^.]+\.[^.]+\.).*/";
    if (preg_match($regex, $remoteAddress, $matches)) {
      return $matches[1] . "0";
    } else {
      return "";
    }
  }

  // Generate a visitor id for this hit.
  // If there is a visitor id in the cookie, use that, otherwise
  // use the guid if we have one, otherwise use a random number.
  function getVisitorId($guid, $account, $userAgent, $cookie) {

    // If there is a value in the cookie, don't change it.
    if (!empty($cookie)) {
      return $cookie;
    }

    $message = "";
    if (!empty($guid)) {
      // Create the visitor id using the guid.
      $message = $guid . $account;
    } else {
      // otherwise this is a new user, create a new random id.
      $message = $userAgent . uniqid(getRandomNumber(), true);
    }

    $md5String = md5($message);

    return "0x" . substr($md5String, 0, 16);
  }

  // Get a random number string.
  function getRandomNumber() {
    return rand(0, 0x7fffffff);
  }

  // Writes the bytes of a 1x1 transparent gif into the response.
  function writeGifData() {
    global $GIF_DATA;
    header("Content-Type: image/gif");
    header("Cache-Control: " .
           "private, no-cache, no-cache=Set-Cookie, proxy-revalidate");
    header("Pragma: no-cache");
    header("Expires: Wed, 17 Sep 1975 21:32:10 GMT");
    echo join($GIF_DATA);
  }

  // Make a tracking request to Google Analytics from this server.
  // Copies the headers from the original request to the new one.
  // If request containg utmdebug parameter, exceptions encountered
  // communicating with Google Analytics are thown.
  function sendRequestToGoogleAnalytics($utmUrl) {
    $options = array(
      "http" => array(
          "method" => "GET",
          "user_agent" => $_SERVER["HTTP_USER_AGENT"],
          "header" => ("Accepts-Language: " . $_SERVER["HTTP_ACCEPT_LANGUAGE"]))
    );
    if (!empty($_GET["utmdebug"])) {
      $data = file_get_contents(
          $utmUrl, false, stream_context_create($options));
    } else {
      $data = @file_get_contents(
          $utmUrl, false, stream_context_create($options));
    }
  }

  // Track a page view, updates all the cookies and campaign tracker,
  // makes a server side request to Google Analytics and writes the transparent
  // gif byte data to the response.
  function trackPageView() {
    $timeStamp = time();
    $domainName = $_SERVER["SERVER_NAME"];
    if (empty($domainName)) {
      $domainName = "";
    }

    // Get the referrer from the utmr parameter, this is the referrer to the
    // page that contains the tracking pixel, not the referrer for tracking
    // pixel.
    $documentReferer = $_GET["utmr"];
    if (empty($documentReferer) && $documentReferer !== "0") {
      $documentReferer = "-";
    } else {
      $documentReferer = urldecode($documentReferer);
    }
    $documentPath = $_GET["utmp"];
    if (empty($documentPath)) {
      $documentPath = "";
    } else {
      $documentPath = urldecode($documentPath);
    }

    $account = $_GET["utmac"];
    $userAgent = $_SERVER["HTTP_USER_AGENT"];
    if (empty($userAgent)) {
      $userAgent = "";
    }

    // Try and get visitor cookie from the request.
    $cookie = $_COOKIE[COOKIE_NAME];

    $guidHeader = $_SERVER["HTTP_X_DCMGUID"];
    if (empty($guidHeader)) {
      $guidHeader = $_SERVER["HTTP_X_UP_SUBNO"];
    }
    if (empty($guidHeader)) {
      $guidHeader = $_SERVER["HTTP_X_JPHONE_UID"];
    }
    if (empty($guidHeader)) {
      $guidHeader = $_SERVER["HTTP_X_EM_UID"];
    }

    $visitorId = getVisitorId($guidHeader, $account, $userAgent, $cookie);

    // Always try and add the cookie to the response.
    setrawcookie(
        COOKIE_NAME,
        $visitorId,
        $timeStamp + COOKIE_USER_PERSISTENCE,
        COOKIE_PATH);

    $utmGifLocation = "http://www.google-analytics.com/__utm.gif";

    // Construct the gif hit url.
    $utmUrl = $utmGifLocation . "?" .
        "utmwv=" . VERSION .
        "&utmn=" . getRandomNumber() .
        "&utmhn=" . urlencode($domainName) .
        "&utmr=" . urlencode($documentReferer) .
        "&utmp=" . urlencode($documentPath) .
        "&utmac=" . $account .
        "&utmcc=__utma%3D999.999.999.999.999.1%3B" .
        "&utmvid=" . $visitorId .
        "&utmip=" . getIP($_SERVER["REMOTE_ADDR"]);

    sendRequestToGoogleAnalytics($utmUrl);

    // If the debug parameter is on, add a header to the response that contains
    // the url that was used to contact Google Analytics.
    if (!empty($_GET["utmdebug"])) {
      header("X-GA-MOBILE-URL:" . $utmUrl);
    }
    // Finally write the gif data to the response.
    writeGifData();
  }
?><?php
  trackPageView();
?>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值