GTM - 将 events/data 推送到 gtm 数据层,不向 https://www.google-analytics.com/r/collect?v 发送任何内容
GTM - pushing events/data to gtm dataLayer not sending anything to https://www.google-analytics.com/r/collect?v
我在我的 chrome 扩展页面中添加了这个 gtm 代码(由内容脚本和 iframe 注入)
// <!-- Google Tag Manager -->
(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','owDataLayer','GTM-XXXXXXX');
// <!-- End Google Tag Manager -->
我确认 gtm.js 文件加载成功。
Request URL:https://www.googletagmanager.com/gtm.js?id=GTM-XXXXXX&l=dataLayer
Request Method:GET
Status Code:200 (from disk cache)
我有一个按钮,下面的代码已附加到按钮的点击事件
dataLayer.push({
'event': 'tab click',
'user id' : 123,
'description' : "Social"
});
当我点击按钮时 dataLayer.push 成功但没有任何东西被发送到 https://www.google-analytics.com/r/collect?
开发人员工具栏 "Network" 选项卡中没有活动 window。
谁能帮我解决这个问题?提前致谢!
编辑:
添加标签设置的屏幕截图。
这个周末我花了很多时间阅读 gtm 和 Google chrome 扩展。
终于得到了this blog post by Simo Ahava。他讨论了与解决方案完全相同的问题。感谢 Simo.
这里是他博客的部分粘贴post。我们必须将 checkProtocolTask : false
添加到每个 gtm 标签,以便从中发送跟踪它们
Google Chrome 分机。
将 checkProtocolTask : false
添加到要设置的字段
向下滚动到要设置的字段,然后添加一个新字段:
Field Name: checkProtocolTask
Value: false
通常,Google Analytics 要求对 GA 的请求源自 HTTP 或 HTTPS。如果请求来自其他任何地方,则该过程将被取消。通过将名为 checkProtocolTask 的任务设置为 false,我们可以防止此检查发生,因为扩展使用自定义 chrome-extension:// 协议。
截图:
发布此内容以便其他人在遇到相同问题时发现此答案很有帮助。谢谢!
我在我的 chrome 扩展页面中添加了这个 gtm 代码(由内容脚本和 iframe 注入)
// <!-- Google Tag Manager -->
(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','owDataLayer','GTM-XXXXXXX');
// <!-- End Google Tag Manager -->
我确认 gtm.js 文件加载成功。
Request URL:https://www.googletagmanager.com/gtm.js?id=GTM-XXXXXX&l=dataLayer
Request Method:GET
Status Code:200 (from disk cache)
我有一个按钮,下面的代码已附加到按钮的点击事件
dataLayer.push({
'event': 'tab click',
'user id' : 123,
'description' : "Social"
});
当我点击按钮时 dataLayer.push 成功但没有任何东西被发送到 https://www.google-analytics.com/r/collect?
开发人员工具栏 "Network" 选项卡中没有活动 window。
谁能帮我解决这个问题?提前致谢!
编辑:
添加标签设置的屏幕截图。
这个周末我花了很多时间阅读 gtm 和 Google chrome 扩展。 终于得到了this blog post by Simo Ahava。他讨论了与解决方案完全相同的问题。感谢 Simo.
这里是他博客的部分粘贴post。我们必须将 checkProtocolTask : false
添加到每个 gtm 标签,以便从中发送跟踪它们
Google Chrome 分机。
将 checkProtocolTask : false
添加到要设置的字段
向下滚动到要设置的字段,然后添加一个新字段:
Field Name: checkProtocolTask
Value: false
通常,Google Analytics 要求对 GA 的请求源自 HTTP 或 HTTPS。如果请求来自其他任何地方,则该过程将被取消。通过将名为 checkProtocolTask 的任务设置为 false,我们可以防止此检查发生,因为扩展使用自定义 chrome-extension:// 协议。
截图:
发布此内容以便其他人在遇到相同问题时发现此答案很有帮助。谢谢!