You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Nuxt Google Analytics模块追踪流量来源?

解决Nuxt中@nuxtjs/google-analytics流量来源显示为Stripe的问题

问题根源是用户完成支付从Stripe跳转回站点时,Stripe被GA识别为最后一个引荐来源,覆盖了用户最初的流量来源。以下是具体解决方案:

1. 留存原始流量来源到本地存储

在用户首次访问站点时,将初始的UTM参数或引荐来源存入本地存储,避免后续跳转丢失数据:

创建客户端插件plugins/ga-source-tracker.js:

export default ({ app }) => {
  if (process.client) {
    if (!localStorage.getItem('originalTrafficSource')) {
      const urlParams = new URLSearchParams(window.location.search);
      const utmSource = urlParams.get('utm_source');
      const utmMedium = urlParams.get('utm_medium');
      const utmCampaign = urlParams.get('utm_campaign');
      const referrer = document.referrer;

      let sourceData = {};
      // 优先读取UTM参数
      if (utmSource) {
        sourceData = {
          source: utmSource,
          medium: utmMedium,
          campaign: utmCampaign
        };
      } 
      // 无UTM时读取非本站的引荐来源
      else if (referrer && !referrer.includes(window.location.hostname)) {
        const referrerHost = new URL(referrer).hostname;
        sourceData = {
          source: referrerHost,
          medium: 'referral'
        };
      }

      if (Object.keys(sourceData).length) {
        localStorage.setItem('originalTrafficSource', JSON.stringify(sourceData));
      }
    }
  }
};

在nuxt.config.js中注册该插件:

plugins: [
  { src: '~/plugins/ga-source-tracker.js', mode: 'client' }
]

2. 发送购买事件时手动指定原始来源

在支付成功的回调逻辑中,从本地存储取出原始来源数据,手动覆盖GA的默认来源参数:

// 支付成功后触发
const originalSource = JSON.parse(localStorage.getItem('originalTrafficSource')) || {};
this.$ga.event({
  eventCategory: 'Ecommerce',
  eventAction: 'Purchase',
  eventLabel: 'Order Completed',
  fieldsObject: {
    trafficSource: {
      source: originalSource.source || 'direct',
      medium: originalSource.medium || 'none',
      campaign: originalSource.campaign || '(not set)'
    }
  }
});

3. 在GA后台添加引荐排除列表

进入UA版本的GA后台,依次点击「管理」→「属性设置」→「引荐排除列表」,添加Stripe的相关域名(如stripe.com、checkout.stripe.com)。GA会忽略这些域名的引荐,保留用户最初的流量来源记录。

4. 避免数据重复的处理方案

不要同时启用@nuxtjs/google-analytics和rudderstack的GA集成:

  • 若使用rudderstack,直接通过它配置GA数据源,关闭Nuxt的GA模块;
  • 若坚持使用Nuxt模块,在rudderstack中禁用GA的自动事件发送,只保留必要的自定义事件追踪。

内容的提问来源于stack exchange,提问作者geder768

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 07:06:21