Google Analytics 自定义维度不起作用:gtag set() 方法问题

Nen*_*car 9 javascript google-analytics custom-dimensions google-analytics-4

chain_id我正在尝试使用 gtag方法为 GA4 设置一个自定义维度set。我还在custom_map配置中添加了一个属性,但我什至不确定这是否有必要。问题是,chain_id正如您在 GA 调试器的控制台输出中看到的那样,它永远不会与事件一起发送。

不太确定我在这里缺少什么,但我认为chain_id的值Test chain id应该出现在事件参数中。

在此输入图像描述

document.getElementById("another").addEventListener("click", function(event) {
  gtag("event", "Button click");
});
Run Code Online (Sandbox Code Playgroud)
<!-- 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>
Run Code Online (Sandbox Code Playgroud)

BNa*_*ruk 6

  1. gtag 设置不起作用。好吧,或者至少它不像人们期望的那样工作。谷歌的文档已关闭。为了 GTM 的利益,设置更改 DL。它对于设置属性不是很有用。但你也有类似的选择。

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

    gtag("事件", "按钮点击", {chain_id: "测试id"});

在此输入图像描述

图片来自本页的控制台。

  1. 您还可以使用配置设置 eps,它们将持续存在:

在此输入图像描述

请注意,Google 进行了另一次偷偷更新,以忽略使用初始配置后发布的配置。因此,如果您尝试通过发出配置来更改所有后续事件的持久事件参数,而 gtag.js 只是忽略它,那么请阅读以下答案:can GA4 customDimensions be update after the initial 'config' call?


总的来说,请考虑使用GTM。或任何其他 TMS。它使跟踪的实施、管理、扩展和支持变得更加容易。仅当您只需要进行一点点跟踪并且您不太关心此跟踪在长期内实现的实际业务结果时,直接使用 gtag.js 进行跟踪才真正有意义。

  • 我想我们只是陷入编写大量混乱的代码以将全局参数注入到每个配置和事件中,而不是设置一次,这是合乎逻辑的,也是文档告诉我们要做的事情 (2认同)
  • 最佳实践是遵循 Google 的文档。支持直接使用 gtag,并且有充分的理由这样做,即使您无法想象它们。告诉人们使用 GTM 是一种煤气灯操纵,它并没有回答问题,所以它对 SO 来说是不合适的。 (2认同)