基本上,我想在服务器上运行Google Analytics(分析),而不显示1px .GIF(原因是我希望显示的图像不采用HTML格式,而是内容类型:image / jpeg

    $GA_ACCOUNT = "MO-3845491-5";
      $GA_PIXEL = "ga.php";

      function googleAnalyticsGetImageUrl() {
        global $GA_ACCOUNT, $GA_PIXEL;
        $url = "";
        $url .= $GA_PIXEL . "?";
        $url .= "utmac=" . $GA_ACCOUNT;
        $url .= "&utmn=" . rand(0, 0x7fffffff);

        $referer = $_SERVER["HTTP_REFERER"];
        $query = $_SERVER["QUERY_STRING"];
        $path = $_SERVER["REQUEST_URI"];

        if (empty($referer)) {
          $referer = "-";
        }
        $url .= "&utmr=" . urlencode($referer);

        if (!empty($path)) {
          $url .= "&utmp=" . urlencode($path);
        }

        $url .= "&guid=ON";

        return $url;
      }

$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();
  //echo '<img src="' . $googleAnalyticsImageUrl . '" />';
  //open the google script with all our settings to generate the 1px x 1px blank gif which reports to GA
  $handle = fopen ($googleAnalyticsImageUrl, "r");
  $test = fgets($handle);
  echo $test;
  fclose($handle);

//Pretend this page was a jpg image all along and get the jpg and return it.
$imageurl = fopen ('http://www.default.com/test.jpg', "r"); //this is where the real file should be located
while (!feof ($imageurl)) {
 $image = fgets($imageurl, 4096);
 header('Content-type: image/jpeg');
 echo $image;
}
fclose($imageurl);


任何帮助将不胜感激,因为我是GA新手

最佳答案

我无法评论是否可以通过这种方式触发向GA的请求,但是您似乎已经完成了功课,并且GA通话看起来很公平。

据我所知,要做这项工作的唯一方法就是不输出GA图片的内容,因为这会使您的JPG失真。所以删除

 echo $test;


我看不到其他任何问题-如果仍然无法解决问题,则必须添加一些有关问题所在的信息。

考虑一下即使该方法可行,通过PHP传递大量图像也会对服务器造成压力,因为会为每个图像请求打开一个PHP解释器实例,并且如果要计算全部数量,缓存将是一个问题。意见。

您是否考虑过使用父HTML页面中的JavaScript触发GA“ hit”事件?还是不够可靠?

关于php - 在图像上使用Google Analytics(分析),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3564143/

10-14 13:16
查看更多