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

BigQuery与GA4渠道分组数据差异问题求助

GA4与BigQuery渠道分组数据不一致问题排查方案

问题概述

会话和事件数据在GA4与BigQuery中完全一致,但渠道分类结果存在5%-30%的差异,使用GA4默认字段构建了以下CASE语句进行渠道分组,排查后仍未解决问题。

当前使用的渠道分组CASE语句

CASE
    WHEN (source IS NULL OR source = '(direct)' OR source = '') AND (medium IS NULL OR medium IN ('(not set)', '(none)', '')) THEN 'Direct'
    WHEN REGEXP_CONTAINS(name, 'cross-network') THEN 'Cross-network'
    WHEN (REGEXP_CONTAINS(source, 'alibaba|amazon|google shopping|shopify|etsy|ebay|stripe|walmart')
          OR REGEXP_CONTAINS(name, '^(.*(([^a-df-z]|^)shop|shopping).*)$'))
          AND REGEXP_CONTAINS(medium, '^(.*cp.*|ppc|retargeting|paid.*)$') THEN 'Paid Shopping'
    WHEN (REGEXP_CONTAINS(source, 'baidu|bing|duckduckgo|ecosia|google|yahoo|yandex')
          AND REGEXP_CONTAINS(medium, '^(.*cp.*|ppc|retargeting|paid.*)$')) OR gclid IS NOT NULL THEN 'Paid Search'
    WHEN REGEXP_CONTAINS(source, 'badoo|facebook|fb|instagram|linkedin|pinterest|tiktok|twitter|whatsapp')
          AND REGEXP_CONTAINS(medium, '^(.*cp.*|ppc|retargeting|paid.*)$') THEN 'Paid Social'
    WHEN REGEXP_CONTAINS(source, 'dailymotion|disneyplus|netflix|youtube|vimeo|twitch|vimeo|youtube')
          AND REGEXP_CONTAINS(medium, '^(.*cp.*|ppc|retargeting|paid.*)$') THEN 'Paid Video'
    WHEN medium IN ('display', 'banner', 'expandable', 'interstitial', 'cpm') THEN 'Display'
    WHEN REGEXP_CONTAINS(source, 'alibaba|amazon|google shopping|shopify|etsy|ebay|stripe|walmart')
          OR REGEXP_CONTAINS(name, '^(.*(([^a-df-z]|^)shop|shopping).*)$') THEN 'Organic Shopping'
    WHEN REGEXP_CONTAINS(source, 'badoo|facebook|fb|instagram|linkedin|pinterest|tiktok|twitter|whatsapp')
          OR medium IN ('social', 'social-network', 'social-media', 'sm', 'social network', 'social media') THEN 'Organic Social'
    WHEN REGEXP_CONTAINS(source, 'dailymotion|disneyplus|netflix|youtube|vimeo|twitch|vimeo|youtube')
          OR REGEXP_CONTAINS(medium, '^(.*video.*)$') THEN 'Organic Video'
    WHEN REGEXP_CONTAINS(source, 'baidu|bing|duckduckgo|ecosia|google|yahoo|yandex')
          OR medium = 'organic' THEN 'Organic Search'
    WHEN REGEXP_CONTAINS(medium, '^(.*cp.*|ppc|retargeting|paid.*)$') THEN 'Paid Other'
    WHEN REGEXP_CONTAINS(source, 'email|e-mail|e_mail|e mail')
          OR REGEXP_CONTAINS(medium, 'email|e-mail|e_mail|e mail') THEN 'Email'
    WHEN medium = 'affiliate' THEN 'Affiliates'
    WHEN medium = 'referral' THEN 'Referral'
    WHEN medium = 'audio' THEN 'Audio'
    WHEN medium = 'sms' THEN 'SMS'
    WHEN medium LIKE '%push%' OR REGEXP_CONTAINS(medium, 'mobile|notification') THEN 'Mobile Push Notifications'
    ELSE 'Unassigned'
END

核心排查与修复方向

  • 匹配顺序与GA4逻辑对齐:GA4渠道分组遵循「付费渠道优先于免费渠道」的优先级,当前CASE中Paid Other排在所有有机渠道之后,会导致部分付费流量被误判为有机渠道。需将Paid Other移至所有Organic分组之前,且确保Cross-network、Paid类渠道的顺序与GA4内置逻辑一致。
  • 正则表达式大小写匹配:GA4的渠道匹配不区分大小写,但BigQuery的REGEXP_CONTAINS默认区分大小写。需在正则后添加'i'标志开启不区分大小写匹配,例如:REGEXP_CONTAINS(source, 'alibaba|amazon', 'i')。
  • 会话级字段聚合:GA4的渠道分组基于会话首次触达的source/medium,而非事件级字段。需在BigQuery中按user_pseudo_id和session_id分组,取会话的第一个事件的source/medium进行分类,避免用事件级数据直接聚合。
  • Direct渠道逻辑校准:GA4中Direct的判定逻辑为「source为(direct)且medium为(none)」,或source/medium均未设置。当前CASE的条件包含source = ''和medium = '',需确认GA4是否将这类情况归为Direct,若不一致需调整条件。
  • gclid优先级调整:GA4中只要存在gclid参数,无论source/medium是什么,都会优先归为Paid Search。当前CASE中gclid IS NOT NULL是作为Paid Search条件的OR分支,需将其单独提至Paid Search条件的最前面,确保优先级最高。
  • Cross-network匹配逻辑:GA4的Cross-network是基于广告平台的自动标记(如Google Ads的跨网络广告),而非仅通过campaign name匹配。需确认name字段是否为campaign_name,并补充GA4官方定义的Cross-network触发条件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 11:47:38