GTM - 将事件/数据推送到gtm dataLayer不发送任何内容到https://www.google-analytics.com/r/collect?v

ele*_*ser 6 google-chrome-extension google-tag-manager google-datalayer

我在我的chrome扩展页面中添加了这个gtm代码(由内容脚本in和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 -->
Run Code Online (Sandbox Code Playgroud)

我确认已成功加载的gtm.js文件.

Request URL:https://www.googletagmanager.com/gtm.js?id=GTM-XXXXXX&l=dataLayer
Request Method:GET
Status Code:200  (from disk cache)
Run Code Online (Sandbox Code Playgroud)

我有一个按钮,下面的代码已附加到按钮的单击事件

dataLayer.push({'event':'tab click','user id':123,'description':"Social"});

当我单击按钮dataLayer.push成功工作但没有任何内容被发送到https://www.google-analytics.com/r/collect? 开发人员工具栏窗口的"网络"选项卡中的任何活动.

任何人都可以帮我解决这个问题吗?提前致谢!

编辑: 添加标签设置的屏幕截图. 在此输入图像描述

ele*_*ser 5

本周末我花了很多时间阅读gtm和Google Chrome扩展程序.最后我收到了Simo Ahava的博客文章.他用解决方案讨论了完全相同的问题.感谢Simo.

这是他博客文章的部分粘贴.我们必须添加checkProtocolTask : false到每个gtm标记,以便从Google Chrome扩展程序发送跟踪.

添加checkProtocolTask : false到要设置的字段

向下滚动到要设置的字段,然后添加一个新字段:

Field Name: checkProtocolTask
Value: false
Run Code Online (Sandbox Code Playgroud)

通常,Google Analytics要求GA的请求来自HTTP或HTTPS.如果请求来自其他任何地方,则该过程将被取消.通过将名为checkProtocolTask​​的任务设置为false,我们可以阻止此检查发生,因为扩展使用自定义chrome-extension://协议.

截图:

在此输入图像描述

如果他们面临同样的问题,发布此以便其他人发现这个答案会有所帮助.谢谢!