我在GTM中使用自定义变量设置了自定义维度。但是,当我查看Google Analytics分析报告时,我发现该维度仅在大约75%的时间内被记录。同一页面将跟踪维度的3/4页面浏览量,而其他25%的视图不记录维度。请参阅下面的代码,这是我在javascript中创建的自定义变量,然后以下屏幕截图显示了我如何创建自定义变量并创建自定义维度。这有什么原因会发生吗?
我的猜测是,在创建javascript变量之前可能没有加载pull页面(变量代码实际上是朝向页面底部)。或者也许我的页面上的其他一些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 -->
有关datalayer的进一步参考,您可以查看this developer guide。
在GTM中,您需要将JavaScript变量替换为dataLayer变量,其中Data Layer Variable Name
将为ArticleID。