在开发中使用 gatsby-plugin-google-tagmanager

问题描述

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

解决方法

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

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

另请注意,我没有设法让 devmode 在 Firefox 上工作(即使在禁用跟踪保护的私人窗口中)。 我将在 gatsby github 存储库上填写问题,并在/每当我收到有关此事的回复时更新此回复。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...