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

9

我已经在我的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"
});

当我点击按钮时,数据层推送成功,但是没有向 https://www.google-analytics.com/r/collect? 发送任何内容,在开发者工具栏窗口的“网络”选项卡中没有活动。谁能帮我解决这个问题?提前感谢!
编辑: 添加标签设置的截图。 enter image description here

你可以分享一下在GTM中设置应该触发“选项卡单击”事件的标签吗?(截图会更好) - Matus
@Matus,已添加标签设置的截图。谢谢! - Aefits
谢谢,但我指的是您在GTM帐户中设置的标签。我不确定您在哪里设置了这个“标签” - 我以前从未见过这个。无论如何,您需要定义此标记应在“选项卡单击”事件上触发。基本上,在您的GTM帐户中,您需要创建“自定义事件”触发器,然后将标记设置为在此触发器上触发 - 您做到了吗? - Matus
@Matus,上面的截图是从标签管理器仪表板导出的JSON。是的,我已经正确设置了我的标签,在网站中使用它们是正常的,但在Chrome扩展程序中却无法工作。 - Aefits
@Matus,FYI,我已经找到了解决问题的方法,并在我的回答中发布了相同的内容。谢谢您花费时间。 - Aefits
1个回答

11

这个周末我花了很多时间阅读有关Google Tag Manager和Google Chrome扩展的内容。最终,我找到了Simo Ahava的这篇博客文章,他讨论了与该问题完全相同的解决方法。感谢Simo。

以下是他博客文章的部分摘录。我们必须在每个gtm标签中添加checkProtocolTask : false以便从Google Chrome扩展发送跟踪。

在“要设置的字段”下滚动并添加一个新字段:

Field Name: checkProtocolTask
Value: false

通常情况下,Google Analytics 要求从 HTTP 或 HTTPS 发起请求。如果请求不来自这两个协议,该过程将被取消。通过将名为 checkProtocolTask 的任务设置为 false,我们可以防止进行此检查,因为扩展程序使用自定义的 chrome-extension:// 协议。

屏幕截图:

进入图像描述

发布此信息以便其他人在遇到同样的问题时能够受益。谢谢!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接