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

如何从Google Analytics获取推广活动ID?及tracker数据获取异常求助

解决Google Analytics推广活动ID获取返回undefined的问题

Hey there, let's break down why you're seeing undefined when trying to pull campaign IDs from Google Analytics, and fix it step by step!

首先,排查核心问题:你用的是哪种GA跟踪代码?

老的ga.js已经被Google废弃,现在绝大多数网站用的是**gtag.js(Global Site Tag)**或者Google Analytics 4的代码。你之前的代码是针对ga.js的,如果你的网站用的是gtag.js,那肯定会返回undefined。

情况1:你的网站用的是gtag.js

如果你的页面代码里有类似gtag('config', 'UA-XXXXXXXXX-X')的代码,那用下面两种方法获取推广活动信息:

方法A:从dataLayer中提取

gtag.js会把campaign数据存入dataLayer,你可以直接从中读取:

// 等待dataLayer加载完成后执行
window.dataLayer = window.dataLayer || [];
function fetchCampaignDetails() {
  // 从dataLayer中找到包含campaign数据的条目
  const campaignEntry = dataLayer.find(item => item.campaign);
  
  if (campaignEntry) {
    console.log('推广活动ID:', campaignEntry.campaign.id); // 对应utm_id参数
    console.log('推广活动来源:', campaignEntry.campaign.source);
    console.log('推广活动媒介:', campaignEntry.campaign.medium);
  } else {
    // 如果dataLayer中没有,直接从URL解析UTM参数
    const urlParams = new URLSearchParams(window.location.search);
    console.log('推广活动ID(来自URL):', urlParams.get('utm_id'));
    console.log('推广活动来源(来自URL):', urlParams.get('utm_source'));
    console.log('推广活动媒介(来自URL):', urlParams.get('utm_medium'));
  }
}

// 在页面加载完成后调用函数
document.addEventListener('DOMContentLoaded', fetchCampaignDetails);

方法B:直接解析URL中的UTM参数

如果用户是通过带UTM参数的链接进入网站,推广活动ID对应的是utm_id参数,你可以直接从URL提取:

const urlParams = new URLSearchParams(window.location.search);
const campaignId = urlParams.get('utm_id');
const campaignSource = urlParams.get('utm_source');
const campaignMedium = urlParams.get('utm_medium');

console.log('推广活动ID:', campaignId);
console.log('推广活动来源:', campaignSource);
console.log('推广活动媒介:', campaignMedium);

情况2:你仍在使用废弃的ga.js

如果你的网站确实还在使用老的ga.js,那可能是tracker初始化的问题,试试遍历所有tracker实例:

ga(function() {
  // 获取所有已初始化的tracker
  const allTrackers = ga.getAll();
  
  allTrackers.forEach(tracker => {
    console.log('Tracker名称:', tracker.get('name'));
    console.log('推广活动ID:', tracker.get('campaignId')); // 对应utm_id
    console.log('推广活动来源:', tracker.get('campaignSource'));
    console.log('推广活动媒介:', tracker.get('campaignMedium'));
  });
});

重要提醒:为什么会返回undefined?

如果以上方法还是返回undefined,大概率是因为当前页面的URL没有携带UTM参数(包括utm_id、utm_source等)。Google Analytics只有当用户通过带UTM参数的链接进入时,才会存储这些campaign数据,否则这些值就是undefined。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:08:47