2

我使用以下配置进行了 gatsby 项目设置和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 网站、dataSlayertag assistant legacychrome 插件,但它们都表现得好像数据层未激活或未初始化。当站点在我们的开发服务器上运行时,这些事件会被触发并起作用。

4

1 回答 1

0

所以看来我是这个问题的一部分。看起来尽管禁用了我的广告拦截器等,但某些 chrome 功能(或我这边的 getsby 错误配置)仍然阻止dataLayer在开发模式下由注入的脚本初始化(在生产中一切正常)。

在 chrome 上使用隐身模式可以初始化前者并将点击发送到 gtm女巫确实回答了这个问题,但仍然使测试非常不切实际。

另请注意,我没有设法使开发模式在 firefox 上工作(即使在禁用跟踪保护的私人窗口中)。我将在 gatsby github repo 上填写一个问题,并在/每当我收到有关此事的回复时更新此回复。

于 2021-03-05T13:03:54.403 回答