Javascript 在页面上使用多个跟踪器获取Google Analytics链接器参数

Javascript 在页面上使用多个跟踪器获取Google Analytics链接器参数,javascript,google-analytics,analytics,google-tag-manager,google-analytics-sdk,Javascript,Google Analytics,Analytics,Google Tag Manager,Google Analytics Sdk,我的问题是针对有编程使用经验的人。然而,我的示例的设置有点复杂 我目前正在使用谷歌标签管理器加载GA脚本的网站上工作。它在同一页面上加载多个GA脚本,用于不同的目的 这个网站也有一个与相关领域的自定义下拉列表,我必须使用GA链接器插件,以保持他们的连接。我必须通过每个域元素单击事件上的代码手动执行此操作。我使用了Google Analytics docs建议的设置: // inside onclick handler ga(function(tracker) { var linkerParam

我的问题是针对有编程使用经验的人。然而,我的示例的设置有点复杂

我目前正在使用谷歌标签管理器加载GA脚本的网站上工作。它在同一页面上加载多个GA脚本,用于不同的目的

这个网站也有一个与相关领域的自定义下拉列表,我必须使用GA链接器插件,以保持他们的连接。我必须通过每个域元素单击事件上的代码手动执行此操作。我使用了Google Analytics docs建议的设置:

// 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跟踪器创建一个特定名称,并在代码中按名称获取,例如:


  • 谢谢

    你可能想得太多了。通过GTM的Google Analytics有一种简单的内置方式来实现跨域跟踪。对于通过GTM加载的每个GA属性,只需在Analytics设置变量的“跨域跟踪”字段或GA标记的over riding设置中设置要链接的域

    Bounteous有一篇关于

    这在我希望通过GTM实现跨域跟踪的几乎所有情况下都起到了作用,即使它适用于许多域

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

  • 在要测试跨域跟踪的GA属性中打开实时报告
  • 访问domain1.com并附加以下UTM值:domain1.com?UTM_source=test&UTM_medium=test
  • 您应该能够通过单击“流量源”选项卡下的“测试”作为源或介质,按源/介质过滤实时流量
  • 导航到实时报告的内容选项卡,您将看到domain1.com的页面路径和页面标题
  • 对于要测试跨域跟踪工作的每个域,请单击导航中的链接
  • 如果一切正常,过滤后的实时视图应更新为domain2.com的页面路径和标题
  • 如果跨域链接不起作用,则过滤后的实时报告将不会更新。删除筛选器时,您应该将“domain1.com/reflection”或“(direct)/(none)”视为源/媒体,具体取决于您的转介排除情况

  • 希望这将有助于您高效地配置跨域跟踪或调试。

    您可能想得太多了。通过GTM的Google Analytics有一种简单的内置方式来实现跨域跟踪。对于通过GTM加载的每个GA属性,只需在Analytics设置变量的“跨域跟踪”字段或GA标记的over riding设置中设置要链接的域

    Bounteous有一篇关于

    这在我希望通过GTM实现跨域跟踪的几乎所有情况下都起到了作用,即使它适用于许多域

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

  • 在要测试跨域跟踪的GA属性中打开实时报告
  • 访问domain1.com并附加以下UTM值:domain1.com?UTM_source=test&UTM_medium=test
  • 您应该能够通过单击“流量源”选项卡下的“测试”作为源或介质,按源/介质过滤实时流量
  • 导航到实时报告的内容选项卡,您将看到domain1.com的页面路径和页面标题
  • 对于要测试跨域跟踪工作的每个域,请单击导航中的链接
  • 如果一切正常,过滤后的实时视图应更新为domain2.com的页面路径和标题
  • 如果跨域链接不起作用,则过滤后的实时报告将不会更新。删除筛选器时,您应该将“domain1.com/reflection”或“(direct)/(none)”视为源/媒体,具体取决于您的转介排除情况
  • 希望这将帮助您高效地配置跨域跟踪或调试

    // 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