如何在php JSON编码结果中包含Google Analytics?

时间:2016-04-06 21:10:03

标签: javascript php jquery json google-analytics

我有一个php页面,它将数组编码为JSON对象或JSONP回调,并简单地回显结果。因为这将成为一个可以直接访问的独立页面,我想收集见解并包含谷歌分析。

JSON编码php页面:

<?php
    $arr = array('country' => 'United States', 'city' => 'New York');

    if(isset ($_GET['jsonp'])) {
        echo $_GET['jsonp'] . '(' . json_encode($arr) . ')';
    } 
    else {
        echo json_encode($arr);
    }
?>

jQuery解码部分:

<script>
    $.getJSON('https://geoip-db.com/json/geoip.php?jsonp=callback') 
         .done (function(location)
         {
             $('#country').html(location.country);
             $('#city').html(location.city);            
         });
</script>

Google指南建议创建一个单独的php文件,其中包含javascript跟踪代码,并将其包含在您要跟踪的所有php页面中。类似的东西:

<?php include_once("analyticstracking.php") ?>

这样,跟踪器可以工作,但是当尝试解码生成的JSON对象时,JQuery部分会因注入的跟踪器脚本而导致语法错误中断。 php编码页面也回显了跟踪器脚本,这会产生无用的JSON结果。

有什么建议吗?

4 个答案:

答案 0 :(得分:2)

我不确定我是否正确理解您的问题,但您可以随时通过measurement protocol拨打服务器代码来调用Google Analytics:

$url = "v=1&t=pageview&tid=UA-39221247-1&cid=5555&dp=%2Fmy%2Fpage";
fopen($url);

凡&#34; v&#34;是版本,&#34; tid&#34;帐号,&#34; cid&#34;客户端ID和&#34; dp&#34;页面的文档路径。

这样,在解析的输出中将没有会破坏jQuery代码的跟踪代码。

如果要将各个视图聚合到一个会话中,则需要在自己调用之间维护cid。

请注意,这与基于Javascript的跟踪不能很好地混合(即使您使用现有ga cookie中的客户端ID,它也会在GA中启动新会话。)

答案 1 :(得分:1)

你能否在页脚中加载它?

$( document ).ready(function() {
    $("analytics-tracking").load('analyticstracking.php');
});

答案 2 :(得分:1)

Eike的回答指向了正确的方向,因此他的回答为+1,但我不得不使用cURL而不是fopen()。

我的完整工作解决方案:

dll.h

答案 3 :(得分:0)

我想你的谷歌分析部分一切正常,jquery中断因为你在getJson返回一个非json值,在if()部分返回的内容如下:

  

回调('country'=&gt;'美国','city'=&gt;'纽约');

不是有效的json,else部分没问题,你应该在2部分回应相同的内容。