【发布时间】:2017-10-05 17:10:01
【问题描述】:
我正在尝试将 ID 推送到 Google Analytics,但没有看到它通过。这是我的cshtml代码:
@{
string id = Guid.NewGuid().ToString();
}
<script>
console.log('about to declare the datalayer');
var id = '@id';
console.log('id:' + id);
dataLayer = [{
'event': 'getIdentifier',
'uniqueIdentifier': id
}];
console.log('about to push the datalayer');
var dataLayer = window.dataLayer = window.dataLayer || [];
dataLayer.push({
'event': 'getIdentifier',
'uniqueIdentifier': id
});
console.log('finished pushing the datalayer');
</script>
我在头部声明了 Google 跟踪代码管理器的内容和上面的代码。
当页面被导航到时,我可以看到 ID 已创建并且所有 console.logs 都会触发,但我的 Google Analytics(分析)实时事件查看器没有任何内容。
我做错了吗?
Google 跟踪代码管理器脚本在头脑中:
<!-- Google Tag Manager -->
<script>
console.log('about to do GTM2');
(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','[container id]');
</script>
<!-- End Google Tag Manager -->
正文中的 Google 跟踪代码管理器脚本:
<!-- Google Tag Manager (noscript) -->
<noscript>
<iframe src="https://www.googletagmanager.com/ns.html?id=[container id]"
height="0" width="0" style="display:none;visibility:hidden"></iframe>
</noscript>
<!-- End Google Tag Manager (noscript) -->
【问题讨论】:
-
只能在头部的第一个脚本之前初始化dataLayer。如果您在此之前放置代码,则无法推送。
-
GTM 只是标签管理器,因此这里没有足够的信息来期待 GA 中的任何内容。您设置了哪些 GA 标记以触发 GTM 事件?gtm 调试器在此事件期间显示了哪些有关标记及其内容的信息?
-
我实际上启动了 GTM 预览版,现在我看到了。我添加了标签和自定义维度,我很好。
标签: .net google-analytics google-tag-manager google-datalayer