Google Analytics自定义变量无法跟踪

时间:2013-04-15 00:24:33

标签: php google-analytics

好的,我已经被困在使用自定义变量一段时间了。我搜索并跟踪了网上帖子的说明,但无论出于何种原因,它都无法正常工作。

这是我正在使用的代码

<script type="text/javascript">
var _gaq = _gaq || [];
var pluginUrl = '//www.google-analytics.com/plugins/ga/inpage_linkid.js';
_gaq.push(['_require', 'inpage_linkid', pluginUrl]);
_gaq.push(['_setAccount', 'UA-xxxxxxx-x']);
_gaq.push(['_setDomainName', 'domain.com']);
_gaq.push(['_setCustomVar',1,'Enquiry Type','e-Notification']);
_gaq.push(['_trackPageview']);

(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>

值得注意的是,设置自定义变量的行包含在PHP IF语句中。基本上我只想在提交表单后设置此变量,以便我可以从选择框中捕获值。

在一天结束时,我想要做的就是让人们填写表单并捕获选择框的值以传回Google Analytics。我不希望在每个页面加载时设置该值,所以一旦运行了_setCustomVar,我就会破坏会话值,以便不再调用它(除非表格第二次完成)。

这是为了通过GIF而构建的参数(如果它有助于调试它的话)

utmac=UA-xxxxxx-x
utmcc=__utma=247537282.1869531581.1359929325.1365982402.1365984281.5;+__utmz=247537282.1365982402.4.3.utmcsr=domain.com|utmccn=(referral)|utmcmd=referral|utmcct=/;
utmcs=UTF-8
utmdt=Request A Call Back
utme=8(Enquiry Type)9(e-Notification)
utmfl=-
utmhid=1514805008
utmhn=www2.domain.com
utmht=1365984805826
utmje=1
utmn=1234674801
utmp=/request-call-back.php?action=sent&oForm=2
utmr=0
utms=7
utmsc=24-bit
utmsr=1680x1050
utmu=qR~
utmul=en-us
utmvp=1680x672
utmwv=5.4.1

通过我曾经绕过PHP IF语句的各种测试,我获得了“一些”成功。换句话说,我有时可以将我的测试数据输入到自定义变量报告中,但大部分时间我都不能。关于为什么虚拟测试有效并且不起作用似乎没有一致的逻辑。

最后一件事是,需要使用_setDomainName,因为帐户上的域名是“domain.com”,但包含该脚本的站点是“www2.domain.com”。我不认为这对问题很重要,只是要记住另一件事。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可能错过了_setCustomVar方法中的第四个参数scope

_gaq.push(['_setCustomVar',
      1,                   // This custom var is set to slot #1.  Required parameter.
      'Items Removed',     // The name acts as a kind of category for the user activity.  Required parameter.
      'Yes',               // This value of the custom variable.  Required parameter.
      2                    // Sets the scope to session-level.  Optional parameter.
   ]);

因此,如果在页面上设置了值并且在同一页面上根本不设置它(甚至不设置为“null”),则值可能保持在最后一级。每次访问和每个用户级别相同。

您应该将变量视为属于用户(生命期),会话(访问)或单页视图的一种“属性”。

根据我的经验,在90%的实施中处理这个问题都是错误的。

此外:离开意味着页面级别意味着每次点击都会增加一个值(或不是)。

备注:我认为,根据您的问题,这应该是会话级别(2)而不是页面级别(3)。只有在状态转换时才应该设置,你已经在PHP中实现了。