首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谁能帮我用基于功能的id实现Nuxt.js Google标记管理器?

谁能帮我用基于功能的id实现Nuxt.js Google标记管理器?
EN

Stack Overflow用户
提问于 2019-12-08 14:11:55
回答 1查看 4.2K关注 0票数 2

我安装了这段代码并将其添加到我的nuxt.config.js中,它运行得非常好。(链接到套餐)

代码语言:javascript
复制
  modules: [
   ['@nuxtjs/google-tag-manager', { id: 'GTM-XXXXXXX' }],
  ]

现在,我正在尝试实现一个函数,而不是一个静态ID,这个函数将返回一个ID。

我试图将这一行添加到我的nuxt.config中。js,但它不起作用。显然我得把它放在别的地方..。

,这就是我尝试过的,

nuxt.config.js

代码语言:javascript
复制
const code = '1234567'
id: () => {
  return 'GTM-' + code
}

export default {
...

modules: [
   ['@nuxtjs/google-tag-manager', { id: id }],
  ]
...
}

实现这一点的正确方法是什么?

我想在最后做些类似的事情。

代码语言:javascript
复制
modules: [
   ['@nuxtjs/google-tag-manager', { 
       id: ({ req }) => {
         if (req.headers.referer == "exmple.com")
           return 'GTM-156'
         if (req.headers.referer == "exmple.it")
           return 'GTM-24424'
         if (req.headers.referer == "exmple.es")
           return 'GTM-2424'
       }
   }]]

编辑:我通过重写整个模块解决了我的问题。无法使用此模块,因为它只在构建时加载。我重写了模块并将代码移到nuxtServerInit中。

每个请求都会调用nuxtServerInit (模块只能一次性调用)。在请求中,我询问请求来自哪个域。根据域的不同,我在头和插件中添加了不同的google标记管理器id。

EN

回答 1

Stack Overflow用户

发布于 2019-12-09 11:41:06

来自包文档:

代码语言:javascript
复制
modules: [
   ['@nuxtjs/google-tag-manager', { 
       id: () => {
          return axios.get('http://example.com/')
            .then(({ data }) => {
              return data.gtm_id
            })
       }
   }]]

可以使用process.env.NODE_ENV内部函数,它将返回一个ID

编辑1

要放置gtm id,取决于req.headers.referer,您需要为返回id的函数提供上下文。这可以在中间件中完成。

看看它是如何工作的,https://github.com/nuxt-community/modules/blob/master/packages/google-tag-manager/plugin.js

编辑2

就我理解您的问题而言,在配置中使用查询上下文是行不通的。

查看i18n中间件: request.locale ->存储->更新模块(路由器、虚拟设备、瞬间等) https://nuxtjs.org/examples/i18n/

~/中间件/gtm.js

代码语言:javascript
复制
export default function ({ app, store }) {
  // app.$gtm contains id, you can set another from store
}

不要忘记在页面中添加中间件

page.vue

代码语言:javascript
复制
export default {
  middleware: ['gtm']
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59236239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档