在我的网站上,我有四个自定义变量。我的问题是,谷歌分析由于某种原因只注册其中三个。页面上无法正常工作的脚本如下所示:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setCustomVar',3,'Category 3','some value']);
_gaq.push(['_setCustomVar',4,'Category 4','some value']);
_gaq.push(['_setAccount', 'UA-XXXXXXXX']);
_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>
此页面应该跟踪索引3和4中的两个自定义变量。另一个页面跟踪索引1和2中的自定义变量。
在Google Analytics中,我可以看到它已在前三个广告位中注册了类别(索引1-3),但第四个广告位中的类别从未注册过。 According to the documentation您最多可以有五个广告位。
任何人都可以解释为什么第四个变量永远不会被注册?
更新
检查分析请求中的utme变量提供了一些有趣的结果。
正在使用的第1页使用以下跟踪脚本:
_gaq.push(['_setCustomVar',1,'Category 1','value1']);
_gaq.push(['_setCustomVar',2,'Category 2','value2']);
这导致以下utme参数:
8(Category 1*Category 2)9(value1*value2)
第2页无效,使用以下跟踪脚本:
_gaq.push(['_setCustomVar',3,'Category 3','value3']);
_gaq.push(['_setCustomVar',4,'Category 4','value4']);
这导致以下utme参数:
8(3!Category 3)9(3!value3)
显然忽略了我试图追踪的最后一个自定义值!
答案 0 :(得分:12)
我也无法将其工作,最终还是没有仔细阅读文档。
不确定您是否构成了用于设置变量的实际代码,如果没有,请确保您遵守此警告:
任何自定义变量名称和值的总组合长度不得超过128个字节。请记住,这不等于128个字符。由于名称和值在存储时是URI编码的,因此某些字符使用多个字节。例如,=存储为%3D而不是=并使用3个字节而不是1.要获取URI编码值的列表,请在Web上搜索URL编码参考。
您是否检查了其他推荐的做法?这两个可能是你的问题来源(如果你也使用会话变量):
不要在插槽中使用重复的密钥名称。 您最多可以同时使用5个自定义变量用于单个请求(例如,网页浏览或事件调用)。 在任何给定的请求中,所有自定义变量的总和不能超过5(即,您不能同时设置5个访问者和5个会话自定义变量)。
答案 1 :(得分:5)
我在使用自定义变量时遇到了麻烦,我们已经意识到你应该注意的(众多)问题。
常见问题
(官方文档确实陈述了大部分内容,但很容易出错,很难理解原因。)
1
)。您需要使用"1"
方法(或通过toString()
)进行转换。如果你不这样做(这发生在我们身上,你看)会发生的事情是自定义变量的名称将被设置,但没有价值! - 在你的报告中你会看到变量,但是当你点击它时,你会得到一条不祥的信息:“这个视图没有数据。”value + ""
。因此,您无法使用整数false
。0
。值false
,0
,false
,{{1} },空字符串null
全部评估为false,因此不会在Google Analytics报告中使用它们。 (无论如何,你不应该设置任何不是字符串的值。)undefined
功能时调用""
功能。在某些情况下,这可能无法实现,您需要设置另一个_setCustomVar()
功能。 1}}设置自定义变量后的请求。这通常仅在用户触发会话级或访问级自定义var的情况下才有必要,其中无法将该方法与网页浏览,事件或电子商务跟踪调用捆绑在一起。<强>调试强>
如果您设置值为false的自定义变量,或者组合长度超过128个字符的限制,_trackPageview()
函数将返回_setCustomVar()
。您可以将返回值输出到浏览器以查看正在进行的操作:
false
(假设您正在使用异步代码段,则需要setTimeout(function() {
var tracker = _gaq._getAsyncTracker();
console.log(tracker._setCustomVar(slot, name, value, scope));
// should normally print 'true'
}, 2000);
函数,因为否则将不会设置setTimeout()
变量。这显然不是代码,但它很好足以进行调试。)
查看_gaq
请求
最后,如果您仍然遇到问题,请打开开发人员工具,查看浏览器发出的请求。您应该看到__utm.gif
然后查看http://www.google-analytics.com/__utm.gif?....
参数的完整请求。它应该是这样的:
utme
如果您在任何地方看到感叹号(前面有整数),则表示没有为该自定义变量设置任何值。 (整数只是一个递增的整数,它并不意味着什么特别的。)
(您可能会注意到某些值使用撇号进行转义。转义方法如下:&utme=8(var1*var2*var3)9(val1*val2*val3)11(scope1*scope2*scope3)
表示'0
; '
表示'1
; {{1} }表示)
; '2
表示*
。)(当然整个请求字符串也将进行URI编码。)
答案 2 :(得分:1)
尝试将跟踪顺序切换为:
_gaq.push(['_setAccount', 'UA-XXXXXXXX']);
_gaq.push(['_setCustomVar',3,'Category 3','some value'],['_setCustomVar',4,'Category 4','some value']);
_gaq.push(['_trackPageview']);
请参阅Custom Variable Not Showing Up in Google Analytics和_gaq push