我安装了这段代码并将其添加到我的 nuxt.config.js 中,它工作得很好。 (链接到package https://github.com/nuxt-community/modules/tree/master/packages/google-tag-manager)
modules: [
['@nuxtjs/google-tag-manager', { id: 'GTM-XXXXXXX' }],
]
现在我尝试实现一个返回 ID 的函数,而不是静态 ID。
我尝试将此行添加到我的 nuxt.config 中。 js 但它不起作用。显然我必须把它放在其他地方或者其他地方......
这就是我尝试过的
nuxt.config.js
const code = '1234567'
id: () => {
return 'GTM-' + code
}
export default {
...
modules: [
['@nuxtjs/google-tag-manager', { id: id }],
]
...
}
实施这个的正确方法是什么?
我想在最后做类似的事情。
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'
}
}]]
EDIT:我通过重写整个模块解决了我的问题。无法使用此模块,因为它仅在构建时加载。我重写了该模块并将代码移至 nuxtServerInit 中。
nuxtServerInit 在每个请求时被调用(模块仅一次)。在请求中,我询问请求来自哪个域。根据域的不同,我将不同的 google-tag-manager id 添加到头部和插件中。