我的问题是给有经验的Google Analytics Linker Plugin编程人员的。但是我的示例设置有点复杂。
我目前正在使用Google跟踪代码管理器加载GA脚本的网站上工作。出于不同目的,它会在同一页面上加载多个GA脚本。
该网站还具有与相关域的自定义下拉列表,我必须使用GA Linker插件才能保持它们的连接状态。我必须通过每个域元素click事件上的代码手动进行操作。我使用了Google Analytics(分析)文档建议的设置:
// inside onclick handler
ga(function(tracker) {
var linkerParam = tracker.get('linkerParam');
// apply to url and navigate window.location.href = url etc.
});
很明显,由于页面上有多个跟踪器,因此在我的情况下不起作用:
// inside onclick handler
ga(function(tracker) {
// tracker is undefined :(
});
我设法检查了每个跟踪器上有多少跟踪器可用并请求linkerParam
:
// inside onclick handler
ga(function () {
var trackers = ga.getAll();
trackers.forEach(function (tracker) {
console.log(tracker.get('name'), tracker.get('trackingId'), tracker.get('linkerParam'));
});
});
// outputs
// gtm1 UA-XXXYYY-1 _ga=2.234343242.904959305.3434234324-394093204.3094039402
// gtm2 UA-XXXYYY-2 _ga=2.234343242.904959305.3434234324-394093204.3094039402
// gtm3 UA-XXXYYY-3 _ga=2.234343242.904959305.3434234324-394093204.3094039402
如您所见,所有跟踪器的链接器参数值相同,但名称和跟踪ID不同。我的问题是-
只要所有值都相同(例如ga.getAll()[0].get('linkerParam')
),可以安全使用列表中的第一个跟踪器吗?
或者在GTM中为其中一个GA跟踪器创建一个特定名称并在代码中按名称命名(例如:
// inside onclick handler
ga(function () {
var tracker = ga.getByName('websiteTracker');
console.log(tracker.get('name'), tracker.get('trackingId'), tracker.get('linkerParam'));
});
// outputs
// gtm3 UA-XXXYYY-3 _ga=2.234343242.904959305.3434234324-394093204.3094039402
谢谢!
答案 0 :(得分:0)
您可能会想过这个问题。通过GTM的Google Analytics(分析)具有一种简单的内置方式来实现跨域跟踪。对于您要通过GTM加载的每个GA属性,只需在Analytics(分析)设置变量的“跨域跟踪”字段或GA标签的替代设置中设置要链接的域即可。
Bounteous在how to implement and debug this here.
上有一篇非常详细的文章在几乎所有要通过GTM进行跨域跟踪的情况下,这种方法都有效-即使它适用于多个域。
如果您实际上需要以编程方式执行此操作,我很确定您可以对所有GA属性使用相同的链接程序参数。您可以通过执行以下操作来验证和调试实现:
希望这将帮助您配置跨域跟踪或有效地进行调试。