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

GA4通过Measurement Protocol追踪购买时来源/媒介显示“未设置”

GA4 Measurement Protocol购买数据来源/媒介显示“未设置”问题排查

问题背景

我正尝试用Measurement Protocol API给GA4发送购买数据,转化数据能正常显示,但几乎所有交易额都被标记为来源/媒介“未设置”,导致谷歌广告里完全看不到转化数据。已经通过/debug/mp/collect调试请求,没发现任何验证错误,不知道该从哪继续排查。

请求详情

请求URL:

https://www.google-analytics.com/mp/collect?measurement_id=G-xxxxxxxxxx&api_secret=xxxxxxxxxxxxxxxxxxxxxx

请求体(PHP数组格式):

array(4) {
  ["client_id"]=>
  string(20) "123456789.1691234567"
  ["non_personalized_ads"]=>
  bool(true)
  ["events"]=>
  array(1) {
    [0]=>
    array(2) {
      ["name"]=>
      string(8) "purchase"
      ["params"]=>
      array(12) {
        ["currency"]=>
        string(3) "EUR"
        ["transaction_id"]=>
        string(16) "123456"
        ["shipping"]=>
        float(6.9)
        ["tax"]=>
        float(4.81)
        ["value"]=>
        float(30.14)
        ["items"]=>
        array(1) {
          [0]=>
          array(6) {
            ["item_id"]=>
            string(11) "654321"
            ["item_name"]=>
            string(36) "Test-Item"
            ["item_brand"]=>
            string(9) "Test-Brand"
            ["price"]=>
            float(23.24)
            ["quantity"]=>
            float(1)
          }
        }
        ["engagement_time_msec"]=>
        int(1)
        ["session_id"]=>
        string(10) "1697002512"
      }
    }
  }
  ["timestamp_micros"]=>
  int(1697002689740112)
}

Cookie提取逻辑

  • client_id从_ga Cookie提取:_ga=GA1.1.123456789.1691234567 → client_id = 123456789.1691234567
  • session_id从_ga_[MeasurementId] Cookie提取:_ga_xxxxxxxxxx=GS1.1.1697002512.2.1.1697001234.45.0.0 → session_id = 1697002512

用户此前已通过gtag.js与页面交互,所有Cookie均由gtag.js自动设置。

排查方向

1. 缺少会话来源核心参数

GA4的来源/媒介信息并非仅靠session_id关联,需要在请求中主动传递以下参数:

  • source:流量来源(如google)
  • medium:流量媒介(如cpc)
  • campaign:广告系列名称(可选)
  • term:关键词(可选)
  • content:广告内容(可选)

这些参数可以从_ga_[MeasurementId] Cookie的后续字段解析,或者直接从页面的gtag数据层中获取(比如页面触发购买事件时,dataLayer里已携带的来源信息)。

2. 会话时间范围不匹配

确认timestamp_micros的时间在用户会话有效期内。GA4默认会话超时规则是:30分钟无交互自动结束,或24小时内有交互则延续。如果购买事件的时间超出了原始会话的有效期,GA4会创建新会话,导致来源信息丢失。

3. 未传递谷歌广告点击ID(gclid)

如果用户来自谷歌广告,必须在请求中添加gclid参数。该参数可从_gcl_au Cookie提取,或直接从用户访问页面的URL的gclid参数获取。没有gclid,GA4无法将转化归因到谷歌广告。

4. 验证原始会话的来源数据

用GA4的用户探索功能,查询该client_id的会话记录,确认用户原始会话本身是否有来源/媒介信息。如果原始会话就没有来源数据,MP请求也无法补充。

5. 检查会话关联的完整性

确保client_id和session_id的提取完全正确,比如_ga Cookie的格式是否为GA1.N.xxxxxx.xxxxxx,提取时不要遗漏任何部分;_ga_[MeasurementId] Cookie中的session_id字段位置是否正确(GS1.1.后的第一个数字段)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 15:37:13