在页面上获取具有多个跟踪器的Google Analytics(分析)链接器参数

时间:2019-08-02 21:45:26

标签: javascript google-analytics analytics google-tag-manager google-analytics-sdk

我的问题是给有经验的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不同。我的问题是-

  1. 只要所有值都相同(例如ga.getAll()[0].get('linkerParam')),可以安全使用列表中的第一个跟踪器吗?

  2. 或者在GTM中为其中一个GA跟踪器创建一个特定名称并在代码中按名称命名(例如:

  3. )会更安全吗?
// 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

谢谢!

1 个答案:

答案 0 :(得分:0)

您可能会想过这个问题。通过GTM的Google Analytics(分析)具有一种简单的内置方式来实现跨域跟踪。对于您要通过GTM加载的每个GA属性,只需在Analytics(分析)设置变量的“跨域跟踪”字段或GA标签的替代设置中设置要链接的域即可。

Bounteous在how to implement and debug this here.

上有一篇非常详细的文章

在几乎所有要通过GTM进行跨域跟踪的情况下,这种方法都有效-即使它适用于多个域。

如果您实际上需要以编程方式执行此操作,我很确定您可以对所有GA属性使用相同的链接程序参数。您可以通过执行以下操作来验证和调试实现:

  1. 在要测试跨域跟踪的GA属性中打开实时报告
  2. 访问带有以下UTM值的domain1.com:domain1.com?utm_source=test&utm_medium=test
  3. 您应该能够通过点击“流量来源”标签下的“测试”作为来源或媒介来按来源/媒介过滤实时流量。
  4. 导航到实时报告的内容选项卡,您应该看到domain1.com的页面路径和页面标题
  5. 对于要测试跨域跟踪是否有效的每个域,请单击导航中的链接
  6. 如果一切正常,则过滤后的实时视图应更新为domain2.com的页面路径和标题
  7. 如果跨域链接不起作用,则过滤后的实时报告将不会更新。删除过滤器后,您应该看到“ domain1.com/referral”或“(直接)/(无)”作为源/媒介,具体取决于您的引荐排除项。

希望这将帮助您配置跨域跟踪或有效地进行调试。