我有一个盖茨比项目设置和gatsby-plugin-google-tagmanager设置在我的gatsby-config.ts
使用以下配置:
...
{
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>
,但向数据层的推送似乎没有效果,并且插件配置中的routeChange事件设置没有发出。
我试过使用tagassistant.google.com网站,dataSlayer
和tag assistant legacy
chrome插件,但它们都表现得好像数据层没有激活或初始化。当站点在我们的开发服务器上运行时,事件被触发并起作用。
看来我是这个问题的一部分。看起来尽管已经禁用了我的广告拦截器等,一些chrome功能(或在我这边的错误配置)仍然阻止了dataLayer
的初始化注入脚本,而在开发模式下(一切工作在生产中很好)。
在chrome上使用隐身模式允许前者初始化并将命中发送到gtmWitch确实回答了这个问题,但仍然使测试非常不实用。
还请注意,我没有设法使devmode在firefox上工作(即使在禁用跟踪保护的私有窗口中)。我将在gatsby github repo上填写一个问题,并在收到有关此事的回复时更新此回复。