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

标签 javascript jquery google-analytics google-tag-manager universal-analytics

我在 GTM 中使用自定义变量设置了自定义维度。然而,当我查看 google 分析报告时,我发现该维度仅在大约 75% 的时间内被记录。同一页面将跟踪 3/4 的浏览量,而另外 25% 的浏览量不记录该维度。请看下面的代码,这是我在javascript中创建的自定义变量,然后下面的屏幕截图显示了我如何创建自定义变量并创建自定义维度。发生这种情况有什么原因吗?

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

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

Custom GTM Variable

Custom Dimension

最佳答案

根据您的设置,很可能存在竞争条件,并且与设置变量的脚本相比,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 变量,其中数据层变量名称 将为 ArticleID。

关于javascript - GTM Google Analytics 自定义维度变量仅在某些时候触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55400655/

相关文章:

php - 分层选择人口 jQuery/PHP

google-analytics - 多个 GA 跟踪器获取彼此的变量

javascript - 如何动态更改下拉值

javascript - 如何确保IE8中javascript的加载顺序在body标签结束之前

javascript - Bootstrap 动态模态

Javascript:重新分配 'this' ,还是替代方案?

javascript - 如何避免离线时 google-analytics-loading 延迟加载事件监听器

google-analytics - GA BigQuery - 购买产品 x 的用户也购买了产品 abc 然后过滤仅列出完整的交易,其中 x 是交易的一部分

javascript - Jquery if keyup else 默认值

javascript - 从 Google 电子表格中获取数据?