Google Analytics自定义变量未设置

时间:2011-12-15 00:34:25

标签: google-analytics

在我的网站上,我有四个自定义变量。我的问题是,谷歌分析由于某种原因只注册其中三个。页面上无法正常工作的脚本如下所示:

<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)

显然忽略了我试图追踪的最后一个自定义值!

3 个答案:

答案 0 :(得分:12)

我也无法将其工作,最终还是没有仔细阅读文档。

不确定您是否构成了用于设置变量的实际代码,如果没有,请确保您遵守此警告:

任何自定义变量名称和值的总组合长度不得超过128个字节。请记住,这不等于128个字符。由于名称和值在存储时是URI编码的,因此某些字符使用多个字节。例如,=存储为%3D而不是=并使用3个字节而不是1.要获取URI编码值的列表,请在Web上搜索URL编码参考。

您是否检查了其他推荐的做法?这两个可能是你的问题来源(如果你也使用会话变量):

不要在插槽中使用重复的密钥名称。 您最多可以同时使用5个自定义变量用于单个请求(例如,网页浏览或事件调用)。 在任何给定的请求中,所有自定义变量的总和不能超过5(即,您不能同时设置5个访问者和5个会话自定义变量)。

答案 1 :(得分:5)

我在使用自定义变量时遇到了麻烦,我们已经意识到你应该注意的(众多)问题。

常见问题

(官方文档确实陈述了大部分内容,但很容易出错,很难理解原因。)

  • 使用有效的广告位号。默认情况下,这是1到5之间的整数,但Premium Analytics用户可以使用更多广告位。
  • 自定义变量的值必须是字符串它在文档中说明了这一点 - 但不要假设整数(例如{{1} })将转换为字符串(即1)。您需要使用"1"方法(或通过toString())进行转换。如果你不这样做(这发生在我们身上,你看)会发生的事情是自定义变量的名称将被设置,但没有价值! - 在你的报告中你会看到变量,但是当你点击它时,你会得到一条不祥的信息:“这个视图没有数据。”
  • 自定义变量的名称不得评估为value + ""因此,您无法使用整数false
  • 自定义变量的值不得评估为0false0false,{{1} },空字符串null全部评估为false,因此不会在Google Analytics报告中使用它们。 (无论如何,你不应该设置任何不是字符串的值。)
  • 自定义变量名称和值的总长度不得超过128个字符。其他人警告您必须考虑URI解码(即处理字符'='作为3个字符,因为它被编码为'%3D' - 但是我们自己看了代码,但似乎并非如此。(至少,不是今天。)
  • 请勿在插槽中使用重复的密钥名称。
  • 在网页浏览或事件GIF请求之前设置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