希望有人可以提供帮助,我正在使用GTM将userId变量推送到Google Analytics(分析),我可以在chrome控制台/ dataLayer中看到数据,但在Analytics(分析)的userID视图中什么都没有显示。我在顶部的网站上使用此代码:
<script>
dataLayer = []
dataLayer.push({ 'userId': <%= currentUser.number %> });
</script>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXXXX');
</script>
在身体顶部:
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
在GTM上,我有一个设置为userId(数据层version2)的数据层变量,在标记配置(要设置的字段)中,我有字段名userId和值{{userId}}。
在分析方面,我已经设置了UserId视图和userId的自定义维度名称(范围为User,索引为1)。
我错过了什么吗?
谢谢。
答案 0 :(得分:0)
我上面使用的代码/设置确实可以在分析的userID视图中显示userId-正如Easy女士所说,您必须等待24小时才能对其进行更新。
答案 1 :(得分:0)
这可能不起作用,因为您已在GTM容器上方声明了dataLayer.push
方法。
您只能在GTM容器上方声明dataLayer=[]
方法。
要将用户ID发送到GA,请使用以下代码:
<script>
dataLayer = [{ 'userId': <%= currentUser.number %> }];
</script>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXXXX');
</script>
在身体顶部:
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
现在,在GTM中设置dataLayer
变量和标记以捕获该值并将其发送到GA。
希望这会有所帮助!