GTM Google Analytics 自定义维度变量仅在某些时候触发

GTM Google Analytics Custom Dimension Variable Only Firing Some of the Time

我在 GTM 中使用自定义变量设置了自定义维度。但是,当我查看 google 分析报告时,我发现只有大约 75% 的时间记录了该维度。同一页面将跟踪 3/4 的页面浏览量,而其他 25% 的浏览量不记录维度。请看下面的代码,这是我在javascript中创建的自定义变量,下面的截图展示了我是如何创建自定义变量和创建自定义维度的。为什么会发生这种情况?

我的猜测是,在我创建 javascript 变量之前,可能没有加载拉取页面(变量代码实际上位于页面底部)。或者可能是我页面上的其他 javascript 导致 javascript 的其余部分失败(我无法重新创建它,但可能在较旧的浏览器或移动设备上)。如果这两种情况中的任何一种都可能是这种情况,那么我该怎么做才能解决问题?有没有更好的方法更有可能不会失败?

<script>
    // For GA
    var ArticleID = 624;
</script>

根据您的设置,很可能存在竞争条件,并且 Google 跟踪代码管理器 (GTM) 脚本 运行 比您的脚本更早,它设置了变量.因此,GTM 将找不到您的变量,并将未定义的值传递给 Google Analytics 跟踪器,该跟踪器不会发送给 Google Analytics 本身。

此问题的解决方案之一是在 GTM 初始化之前将此变量推送到 Google 跟踪代码管理器的数据层。因此,该值将在 GTM 初始化时出现,这实际上会触发网页浏览事件。

所以你的代码会变成这样:

<script>
  dataLayer = [{
    'ArticleID': 624
  }];
</script>
<!-- Google Tag Manager -->
...
<!-- End Google Tag Manager -->

有关数据层的更多参考,您可以查看this developer guide

在 GTM 中,您需要将 JavaScript 变量替换为 dataLayer 变量,其中 Data Layer Variable Name 将是 ArticleID。