问题描述
我的 gatsby-config.ts
中有一个 gatsby 项目设置和 gatsby-plugin-google-tagmanager 设置,使用以下配置:
...
{
resolve: 'gatsby-plugin-google-tagmanager',// @see https://www.gatsbyjs.com/plugins/gatsby-plugin-google-tagmanager/
options: {
id: gtm.id,includeInDevelopment: true,defaultDataLayer: function () {
return {
env: gtm.env
}
},routeChangeEventName: "page_vue",}
},...
在开发模式下工作时,dataLayer
脚本被注入到 <head>
和 <body>
中,但对数据层的推送似乎没有效果,并且在未发出插件配置。
我已尝试使用 tagassistant.google.com 网站、dataSlayer
和 tag assistant legacy
chrome 插件,但它们都表现得好像数据层未激活或未初始化。当站点在我们的开发服务器上运行时,这些事件会被触发并起作用。
解决方法
所以看来我是这个问题的一部分。看起来尽管禁用了我的广告拦截器等,但在开发模式下,某些 chrome 功能(或我这边的 getby 配置错误)仍然阻止了 dataLayer
在开发模式下的初始化(在生产中一切正常) .
在 chrome 上使用隐身模式允许初始化前者并将点击发送到 gtm 女巫确实回答了这个问题,但仍然使测试变得非常不切实际。
另请注意,我没有设法让 devmode 在 Firefox 上工作(即使在禁用跟踪保护的私人窗口中)。 我将在 gatsby github 存储库上填写问题,并在/每当我收到有关此事的回复时更新此回复。