首页  >  问答  >  正文

使用 vue-gtag 和 nuxtjs 将 user_id 发送到 Google Analytics 4

我有一个 Nuxtjs 项目。 我正在使用 https://github.com/MatteoGabriele/vue-gtag。当用户 id 存在时,我尝试将 user_id 发送到 Google Analytics 4,但代码失败但不起作用。我已签入 GA4,但没有数据“使用用户 ID 登录包括是”:

import Vue from "vue";
import VueGtag from "vue-gtag";

export default ({ $config, $auth }) => {
  const obj = {
    config: {
      id: 'G-XXXXXXXXXX'
    }
  }
  if ($auth?.loggedIn) {
    obj.config.params = {user_id: $auth.user.sub}
  }
  Vue.use(VueGtag, obj, app.router)
}

下面的代码正在运行:

import Vue from "vue";
import VueGtag from "vue-gtag";

export default ({ $config, $auth }) => {
  Vue.use(VueGtag, {
    config: {
      id: 'G-XXXXXXXXXX',
      params: {
        user_id: '122xzczxc'
      }
    }
  }, app.router)
}

我可以帮你吗?当 user_id 存在时,我想将 user_id 发送到 GA4。

P粉615886660P粉615886660305 天前525

全部回复(1)我来回复

  • P粉135799949

    P粉1357999492023-12-20 00:30:07

    在评论后正确回复以及我认为我已经理解的内容。

    如果您将条件更改为默认值,例如:

    if ($auth?.loggedIn) {
      obj.config.params = {user_id: '123-update-id'}
    }
    

    这不起作用。

    但是如果你像这样初始化你的对象:

    const obj = {
      config: {
        {
          id: 'G-XXXXXXXXXX',
          params: {
          user_id: '123-default-id'
        }
      }
    }
    

    $auth?.loggedIn 上的条件将起作用并分配值。

    在这种情况下,问题只是你需要为你的对象有一个默认的结构。在这种情况下,对象不会创建可能导致异步或结构问题的新属性,它只是更新属性。

    就这样做:

    const obj = {
      config: {
        {
          id: 'G-XXXXXXXXXX',
          params: {
          user_id: ''
        }
      }
    }
    

    回复
    0
  • 取消回复