Google Analytics自定义维度无法工作:gtag set()方法问题

9
我正尝试使用gtag的set方法为GA4设置一个名为chain_id的自定义维度。我还在配置文件中添加了一个custom_map属性,但我甚至不确定这是否必要。问题是chain_id从未随事件一起发送,如您可以从GA调试器的控制台输出中看到的那样。
我真的不确定我错过了什么,但我认为值为Test chain idchain_id应该出现在事件参数中。

enter image description here

document.getElementById("another").addEventListener("click", function(event) {
  gtag("event", "Button click");
});
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=<my-ga-id>"></script>
<script>
  window.dataLayer = window.dataLayer || [];

  function gtag() {
    dataLayer.push(arguments);
  }
  gtag("js", new Date());

  gtag("set", {
    chain_id: "Test chain id"
  });

  gtag("config", "<my-ga-id>", {
    debug_mode: true,
    custom_map: {
      dimension1: 'chain_id'
    }
  });
</script>

<button id="another">Another click</button>

2个回答

6
  1. gtag设置不起作用。或者至少它的工作方式与人们期望的不同。谷歌的文档有误。Set更改了GTM的DL,这对于设置属性并不是非常有用。但您有类似的选项。

  2. 您可以在事件调用本身中设置参数,如下所示:

    gtag(“event”,“按钮单击”,{chain_id:“test id”});

enter image description here

这张图片来自于该页面的控制台。

  1. 您也可以通过配置设置eps并使其持久化:

enter image description here

请注意,Google进行了另一次秘密更新,忽略在使用初始配置后发布的配置。因此,如果您尝试通过发布配置更改所有后续事件的持久性事件参数,但gtag.js会忽略它,请阅读此答案:可以在初始“config”调用之后更新GA4自定义维度吗?
总的来说,请考虑使用GTM或其他TMS。这将使跟踪更容易实现、管理、扩展和支持。仅使用gtag.js直接进行跟踪只有在您只需要进行少量跟踪并且您不太关心此跟踪在长期内实现了什么真正的业务结果时才真正有意义。

1
我的问题有点复杂,因为我实际上正在使用另一个名为react-ga4的库,它在幕后使用gtag。我还注意到,虽然可以通过配置实现,但在我的情况下不起作用,因为应用程序中的chain_id值可以根据用户交互而改变,因此似乎set非常适合这种用例。我真的不知道问题出在哪里,也许是gtag中的set实现不起作用。 - Nenad Vracar
2
我想我们只能陷入编写大量混乱代码的困境,将全局参数注入到每个配置和事件中,而不是像逻辑和文档所告诉我们的那样设置一次。 - jerclarke
1
最佳实践是遵循 Google 的文档。直接使用 gtag 是受支持的,即使您无法想象,也有非常好的理由这样做。告诉人们使用 GTM 是在玩弄他们的感情,并且它不回答问题,因此在 SO 上不合适。 - jerclarke
1
所以你的观点是谷歌在官方文档中推广了不良实践。如果是这样,那就很糟糕,他们应该感到羞愧,我们应该对他们非常生气。然而我不同意这种看法。错误在于没有清楚地说明什么有效,什么无效。除非经过不断警告,否则他们记录的所有内容都应被视为良好的实践。 - jerclarke
1
要明确的是,使用gtag()是可以正常工作的,但不使用“set”就会出现问题,这也是许多人对Google错误范围感到困惑的原因,包括本问题。 - jerclarke
显示剩余9条评论

0

我不确定为什么 set 没有起作用。但是也许你可以尝试使用 config

关于此的谷歌文档


当我们使用GTM来做类似这样的事情时,我们将使用Field To Set,基本上是调用以下代码:gtag('config','{Your GA4 ID}', { 'chain_id': 'Test chain id' });

当您调用event时,这将需要一些额外的代码:

gtag('event','click', { 'send_to': '{Your GA4 ID}' });

我认为值得一试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接