好的,我已经被困在使用自定义变量一段时间了。我搜索并跟踪了网上帖子的说明,但无论出于何种原因,它都无法正常工作。
这是我正在使用的代码
<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”。我不认为这对问题很重要,只是要记住另一件事。
有什么想法吗?
答案 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中实现了。