javascript - 如何在 PHP JSON 编码结果中包含谷歌分析?

标签 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 部分因语法错误而中断,这是由注入(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/

相关文章:

javascript - CSS JQuery 在容器内旋转图像

javascript - amCharts 工具提示仅在 DateAxis 上显示,但在 ValueAxis 上不显示

javascript - 如何在选项 1、选项 2 等中放置链接而不影响布局?

php - RegEx 和 MySQL 基础知识 - 替换字符串的不同部分

javascript - JQuery 不会按内部项删除类

javascript - 由于 JSON 中的转义单引号,jQuery.parseJSON 抛出 “Invalid JSON” 错误

javascript - 使用 jQuery,如何在元素上或元素内查找数据属性? (树遍历)

javascript - 以 em 为单位获取用户视口(viewport)大小

php - Phalcon 保存不工作

php - 如何使用 PHP 将带有换行符的文本字符串保存到 MySQL 数据库文本字段?