我有一个 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 部分因语法错误而中断,这是由注入(inject)的跟踪器脚本引起的。 php 编码页面也回显跟踪器脚本,这会产生无用的 JSON 结果。
有什么建议吗?
最佳答案
我不确定我是否正确理解了您的问题,但您始终可以通过 measurement protocol 使用服务器端代码调用 Google Analytics。 :
$url = "v=1&t=pageview&tid=UA-39221247-1&cid=5555&dp=%2Fmy%2Fpage";
fopen($url);
“v”是版本,“tid”是帐号,“cid”是客户端 ID,“dp”是页面的文档路径。
这样,解析后的输出中就不会出现会破坏 jQuery 代码的跟踪代码。
如果您想将各个 View 聚合到一个 session 中,您需要自己维护调用之间的 cid。
请注意,这与基于 Javascript 的跟踪不能很好地结合(即使您使用现有 GA cookie 中的客户端 ID,它也会在 GA 中启动新 session )。
关于javascript - 如何在 PHP JSON 编码结果中包含谷歌分析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36462412/