【问题标题】:How to pass multiple GTM tags in gatsby-plugin-google-tagmanager plugin?如何在 gatsby-plugin-google-tagmanager 插件中传递多个 GTM 标签?
【发布时间】:2021-11-28 01:52:47
【问题描述】:

我正在使用 gatsby-plugin-google-tagmanager 插件来分析我的网站,但后来我从相同的代码库创建了另一个网站(根据特定路线区分其品牌),为此,我需要在我的网站中添加另一个 GTM 标签插入。现在我相信我不能在gatsby-config文件中添加任何条件(如果我错了请纠正我),那么如何处理这种情况?是否需要使用 gatsby-SSR 函数手动添加插入脚本,还是有其他方法可以解决?

{
    resolve: "gatsby-plugin-google-tagmanager",
    options: {
        id: config.gtm,
        includeInDevelopment: false,
        defaultDataLayer: { platform: "gatsby" },
        enableWebVitalsTracking: true,
    },
},

我通过process.env根据我的构建环境传递gtm标签

【问题讨论】:

    标签: javascript node.js reactjs gatsby gatsby-plugin


    【解决方案1】:

    您最好的机会是使用 environment variables 为每个文件使用不同的标识符。

    如果每个项目触发不同的环境变量,您将能够在每个构建中使用不同的 GTM 实例。

    添加后:

    require("dotenv").config({
      path: `.env.${process.env.GATSBY_ACTIVE_ENV}`,
    })
    

    您的脚本可能如下所示:

      "scripts": {
        "build-site-1": "GATSBY_ACTIVE_ENV=site1 gatsby build",
        "build-site-2": "GATSBY_ACTIVE_ENV=site2 gatsby build",
      },
    

    然后,由于.env.${process.env.GATSBY_ACTIVE_ENV},您可以在项目的根目录中定义.env.site1.env.site2 来定义每个GTM 标识符:

    GTM_ID= 1234
    

    最后,在你的gatsby-config.js

    {
        resolve: "gatsby-plugin-google-tagmanager",
        options: {
            id: process.env.GTM_ID,
            includeInDevelopment: false,
            defaultDataLayer: { platform: "gatsby" },
            enableWebVitalsTracking: true,
        },
    },
    

    GTM_ID 将由 build 命令触发,因此每个文件都将具有每个不可知的配置。

    调整方法以符合您的规范,但要了解逻辑分离的概念。

    【讨论】:

    • 该项目是一个,因此构建也是两个站点的一个。 (/a 属于 a.com,/d 属于 d.com)由于数据具有相同的模式,因此我在 gatsby 上保留了相同的代码。整个构建存储在 S3 存储桶中,我们通过 CDN 从 2 个不同站点将请求(使用重定向规则)重定向到 s3。如果来自 a.com 的请求重定向到 /a,而来自 d.com 的请求则重定向到 /d。因此我无法提供不同的环境。此外,我尝试从 SSR 注入 gtag 脚本。成功后我会发布答案。
    • 哦,我发布答案时不知道这个要求。尽管它可能对您不起作用,但我会将它留在那里以供那些可能会有所帮助的人使用。在您给定的用例中,我认为最好的方法是您正在尝试的方法。根据某些 SSR 条件注入不同的脚本/ID。我很想在你有决议时看到它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 2021-04-09
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多