Google 分析 analytics.js 2 两个跟踪器相撞?
Google analytics analytics.js 2 two trackers colliding?
我正在使用 analytics.js 脚本跟踪 3 个站点 - 两个二级域和一个子域...例如:dom1.com、sub.dom1.com、dom2.com
我遇到问题的脚本和网站是本例中的 dom1.com。我有 2 个属性应该聚合以下数据:
属性 A : dom1.com + sub.dom1.com
属性 B : dom1.com + sub.dom1.com + dom2.com
我一直在寻找我的代码中的错误,但无法找出问题所在,即:
在 属性 A 中,所有内容都正确聚合,域和子域都可以正常发送数据。 属性 B sub.dom1.com 和 dom2.com 确实发送了他们的数据,但 dom1.com 没有。
这是 dom1.com 的 header 中的脚本:
ga('create', 'PropertyA', 'auto', {'name': 'trackerA'}, {'allowLinker': true});
ga('trackerA.send', 'pageview');
ga('require', 'linker');
ga('linker:autoLink', ['sub.dom1.com', 'dom1.com']);
ga('create', 'PropertyB', 'auto', {'name': 'trackerB'}, {'allowLinker': true});
ga('trackerB.send', 'pageview');
ga('require', 'linker');
ga('linker:autoLink', ['sub.dom1.com', 'dom1.com', 'dom2.com']);
我已经尝试移动上面的第二个跟踪器以防脚本不是 运行,但它没有解决任何问题。我认为问题出在我尝试使用链接器 2 次的方式中,但也许做错了?
感谢您的帮助,希望对其他人也有帮助。
调用 "require" 和 "linker" 方法时需要包含跟踪器名称:
ga('trackerA.require', 'linker');
ga('trackerA.linker:autoLink', ['sub.dom1.com', 'dom1.com']);
同属性 B.
您的实施存在一些问题(并非所有这些都会导致您的问题,但它们通常仍然是最佳做法):
一般来说,在对跟踪器执行任何其他操作之前,您应该始终要求所有插件并调用插件初始化,因为许多插件会改变存储在跟踪器上的行为 and/or 数据。
您不需要在 autoLink
方法中指定子域,因为您使用 auto
启用自动 cookie 域配置,它们会被自动跟踪。
您不能将两个对象传递给 create
方法,而应该将这些选项组合成一个对象或使用 shorthand(例如 ga('create', trackingID, cookieDomain, trackerName, additionalConfigOptions);
当使用多个跟踪器时,您必须在需要插件和调用插件方法时指定跟踪器名称(例如ga('trackerName.require', 'pluginName');
和ga('trackerName.pluginName:methodName', methodOptions);
)
如果您按如下方式更新代码,它应该可以工作:
ga('create', 'PropertyA', 'auto', 'trackerA', {'allowLinker': true});
ga('trackerA.require', 'linker');
ga('trackerA.linker:autoLink', ['dom1.com']);
ga('trackerA.send', 'pageview');
ga('create', 'PropertyB', 'auto', 'trackerB', {'allowLinker': true});
ga('trackerB.require', 'linker');
ga('trackerB.linker:autoLink', ['dom1.com', 'dom2.com']);
ga('trackerB.send', 'pageview');
我正在使用 analytics.js 脚本跟踪 3 个站点 - 两个二级域和一个子域...例如:dom1.com、sub.dom1.com、dom2.com
我遇到问题的脚本和网站是本例中的 dom1.com。我有 2 个属性应该聚合以下数据:
属性 A : dom1.com + sub.dom1.com 属性 B : dom1.com + sub.dom1.com + dom2.com
我一直在寻找我的代码中的错误,但无法找出问题所在,即:
在 属性 A 中,所有内容都正确聚合,域和子域都可以正常发送数据。 属性 B sub.dom1.com 和 dom2.com 确实发送了他们的数据,但 dom1.com 没有。
这是 dom1.com 的 header 中的脚本:
ga('create', 'PropertyA', 'auto', {'name': 'trackerA'}, {'allowLinker': true});
ga('trackerA.send', 'pageview');
ga('require', 'linker');
ga('linker:autoLink', ['sub.dom1.com', 'dom1.com']);
ga('create', 'PropertyB', 'auto', {'name': 'trackerB'}, {'allowLinker': true});
ga('trackerB.send', 'pageview');
ga('require', 'linker');
ga('linker:autoLink', ['sub.dom1.com', 'dom1.com', 'dom2.com']);
我已经尝试移动上面的第二个跟踪器以防脚本不是 运行,但它没有解决任何问题。我认为问题出在我尝试使用链接器 2 次的方式中,但也许做错了?
感谢您的帮助,希望对其他人也有帮助。
调用 "require" 和 "linker" 方法时需要包含跟踪器名称:
ga('trackerA.require', 'linker');
ga('trackerA.linker:autoLink', ['sub.dom1.com', 'dom1.com']);
同属性 B.
您的实施存在一些问题(并非所有这些都会导致您的问题,但它们通常仍然是最佳做法):
一般来说,在对跟踪器执行任何其他操作之前,您应该始终要求所有插件并调用插件初始化,因为许多插件会改变存储在跟踪器上的行为 and/or 数据。
您不需要在
autoLink
方法中指定子域,因为您使用auto
启用自动 cookie 域配置,它们会被自动跟踪。您不能将两个对象传递给
create
方法,而应该将这些选项组合成一个对象或使用 shorthand(例如ga('create', trackingID, cookieDomain, trackerName, additionalConfigOptions);
当使用多个跟踪器时,您必须在需要插件和调用插件方法时指定跟踪器名称(例如
ga('trackerName.require', 'pluginName');
和ga('trackerName.pluginName:methodName', methodOptions);
)
如果您按如下方式更新代码,它应该可以工作:
ga('create', 'PropertyA', 'auto', 'trackerA', {'allowLinker': true});
ga('trackerA.require', 'linker');
ga('trackerA.linker:autoLink', ['dom1.com']);
ga('trackerA.send', 'pageview');
ga('create', 'PropertyB', 'auto', 'trackerB', {'allowLinker': true});
ga('trackerB.require', 'linker');
ga('trackerB.linker:autoLink', ['dom1.com', 'dom2.com']);
ga('trackerB.send', 'pageview');