如何将跨域跟踪的 _ga google 标签管理器查询参数更改为不同的值?

How do I change the _ga google tag manager query param for cross domain tracking to a different value?

我想使用 Google 的 UA 和 GTM,并包括跨域跟踪。设置很简单,但它默认传递的参数是 _ga 以跟踪 clients/sessions 从一个域到另一个域。

由于其中一个域的限制,我想让它使用不同的查询参数进行跟踪(url 清除了任何非 t_ 参数的内容)。

如果我可以使用基本的跨域 link 跟踪功能,除了将参数更改为 t_ga 或其他东西,它会很好地工作。

有办法吗?

只需在创建标签时将其中一个字段名称设置为 t_ga,然后将值设置为 {{your_custom_variable}},其中自定义数据层变量名称为 _ga :)

Google Analytics(据我所知并根据文档)没有内置方法来更改链接器参数的参数名称,因此您必须采取变通办法。

一种方法是不使用 GTM 提供的自动链接器("linking" 这里表示将 _ga 参数添加到传出 url 的过程),而是创建自定义链接器。

首先,您需要一个自定义 javascript 变量 - 我们称它为 "linker" - 来检索链接器参数。链接器参数已包含“_ga”参数名称,因此您需要替换它:

function() {
  var trackers = ga.getAll();
  param = trackers[0].get('linkerParam');
  return param.replace("_ga","t_ga");
}

那么您需要一个自定义 HTML 标签用于您的自定义装饰器函数:

document.querySelectorAll('a').forEach(function(link) {
 link.onclick=function() {
   link.href = link.href + "?" + {{linker}};
 };
})

(显然这需要更加详细 - 您需要检查 href 是否指向链接域,以及它是否已经包含查询参数。代码未经测试,仅用于演示)。

在接收方,您需要将 Url 中的 "t_ga" 替换为纯“_ga”,并将修改后的 {{Page Url}} 传递到位置字段在您的 Google Analytics 代码中。由于 Google 检查传入的值而不是原始值 Url 它会看到 _ga 参数并相应地应用它。