使用 Javascript 检索 Google Analytics Tracker Name 时出现问题



我使用Google Tag Manager来实现Google Analytics。因此,在我的网站上发起的跟踪器名称并不总是相同的,例如。GTM2,GTM3。

总体目标是能够将数据发送到我的自定义指标,如下所示:

ga( 'gtm2.set', 'metric2', 'custom metric data');

我不知道为什么这段代码不起作用:

var yone = (ga.getAll()[1].get("name"));
var ytwo = ".set";
var ythree = yone.concat(ytwo);
ga( ythree, 'metric2', 'custom metric data');

Javascript 控制台中的错误是"VM3324:1 Uncatch TypeError: ga.getAll 不是一个函数"。我不确定为什么会显示这种情况,因为当我console.log(ga.getAll()[1].get("name"));时,正确的跟踪器名称会显示在控制台日志中,即。GTM2.

编辑我尝试引入@balexandre提到的回调函数,所以我的代码变成了这样:

var yone = ga(function() {
ga.getAll()[1].get("name")});
var ytwo = ".set";
var ythree = yone.concat(ytwo);
ga( ythree, 'metric2', 'custom metric data');

在此实例中,控制台现在显示不同的错误消息"未捕获的类型错误:无法读取未定义的属性'concat'"。

谢谢。

这是一个回调,所以,你不能只调用你的代码,希望一切都能工作,它不会!

你试过这个

var yone = ga(function() {
ga.getAll()[1].get("name")
});
var ytwo = ".set";
var ythree = yone.concat(ytwo);
ga( ythree, 'metric2', 'custom metric data');

但是当你排队var ytwo你还没有任何东西yone时,电话还没有响......因此它是一个回调(只会在加载脚本时执行代码(,你不知道它需要 1 毫秒还是 10 秒......

因此,您应该尝试:

ga(function() {
// debugger;
var yone = ga.getAll()[1].get("name");
var ytwo = ".set";
var ythree = yone.concat(ytwo);
ga( ythree, 'metric2', 'custom metric data');
});

如果需要,请删除注释并使用浏览器调试器检查所有现有变量并在回调中执行代码...

您是否尝试过使用索引 0 而不是 1?喜欢这个:

ga.getAll()[0].get("name");

如果不使用 GTM,结果可能是t0,GTM可能是gtmxx

相关内容

最新更新