我对Google Analytics和跟踪代码管理器世界相当陌生。我正在尝试将用户ID添加到ga事件中。例如,我想在发生谷歌分析事件时添加用户ID。
在客户端存储userId的最佳做法是什么?
答案 0 :(得分:3)
您必须将其作为dataLayer变量传递,并添加宏以将其传递给GA,方法是在GA UA代码中设置其他字段:https://support.google.com/tagmanager/answer/4565987
所以要回答你的问题,你应该将它存储在dataLayer中(基本上是在javascript中)并传递给GTM。
如果您知道如何正确使用GTM,那么将这个值直接存储在dataLayer,cookie或metatag中并不重要,因为您可以使用js从所有提到的位置提取它,但最简单一个是dataLayer。
答案 1 :(得分:2)
他们做了这么多复杂......
注意:这是GoogleTagManager + Univarsal GAnalytics +用户ID的简短操作方法...我正在使用dataLayer来触发自定义事件并统一我们注册用户的会话。
1)在每个页面上的GTM代码之前创建并清空数组dataLayer(在Rails中你可以在application.html / haml中设置它):
<script>
dataLayer = [];
</script>
2)然后将您的用户ID推送到数组:
<script>
dataLayer.push({
"&uid": "#{YOUR-BACKEND-USER-ID}"
});
</script>
3)现在,添加您的GTM代码
(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 =
'//www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-XXXXX');
4)登录您的代码管理器帐户并创建数据层变量类型的新宏“uid”。将图层变量名称设置为&amp; uid
5)仍在标签管理器中编辑您的标签(在侧边栏中)。打开更多设置&gt;设置和添加FIELD NAME的字段:&amp; uid |价值:{{uid}}
6)现在,在Google Analytics(分析)帐户中启用了USER-ID视图。转到管理员&gt;帐户&gt; property&gt; tracking info&gt; USER-ID并启用CREATE
答案 2 :(得分:1)
我会将它存储在dataLayer中。
dataLayer = [{
'userId': 'abcdefg123456'
}]
然后,如果您想在活动中引用它,只需将{{userId}}
作为自定义维度传递。
答案 3 :(得分:1)
这取决于如何生成您要使用的用户ID。如果您通过JS在标签管理器中创建它,那么cookie(在页面之间传播id)将是最简单的方法--GTM可以读取第一方cookie(否则你可以使用一些HTML5 localstorage thingamajig,但你需要实施自己)。
如果您生成客户端ID服务器端,则应将其添加(根据Blexys的答案)到GTM的数据层:
dataLayer = [{
'userID': '12345',
}];
或者将其推送到现有的dataLayer变量:
dataLayer.push({'userID': '123456'});
在跟踪代码管理器中,您可以创建一个从密钥userID读取的数据层类型的宏。当然,只有经过身份验证的用户才能使用跨越多个会话的服务器生成的用户标识。
底线是标签管理器无法持久存储,因此如果您自己创建用户ID,则需要使用cookie(可能会被删除,因此会话不可靠)
答案 4 :(得分:0)
您可以在数据层变量或Cookie中传递用户ID。这是您的决定cookie或数据层。 GTM还可以从数据层读取cookie。
如果您使用cookie您必须在GTM中配置第一方cookie宏。如果是数据层您必须在GTM中配置数据层变量宏。