谷歌分析analytics.js 2两个跟踪器相撞?

时间:2015-07-13 19:18:31

标签: javascript google-analytics tracking analytics.js

我使用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标题中的脚本:

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次的方式,但也许做错了?

感谢您的帮助,希望它也可以帮助其他人。

2 个答案:

答案 0 :(得分:3)

您的实施存在一些问题(并非所有这些都会导致您的问题,但它们仍然是最佳做法):

  1. 通常,在对跟踪器执行任何其他操作之前,应始终要求所有插件并调用插件初始化,因为许多插件会更改存储在跟踪器上的行为和/或数据。

  2. 您无需在autoLink方法中指定子域,因为您使用auto启用自动Cookie域配置,因此会自动跟踪这些子域。

  3. 您不能将两个对象传递给create方法,而应将这些选项合并到一个对象中或使用速记(例如ga('create', trackingID, cookieDomain, trackerName, additionalConfigOptions);

  4. 使用多个跟踪器时,必须在需要插件和调用插件方法时指定跟踪器名称(例如ga('trackerName.require', 'pluginName');ga('trackerName.pluginName:methodName', methodOptions);

  5. 如果您按如下方式更新代码,则应该有效:

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

答案 1 :(得分:0)

当您致电"要求"时,您需要包含跟踪器名称。和#34;链接器"方法:

ga('trackerA.require', 'linker');
ga('trackerA.linker:autoLink', ['sub.dom1.com', 'dom1.com']);

与物业B相同。