Admob广告事件同步至BigQuery缺失字段问题咨询
解决BigQuery中Admob事件数据字段缺失问题
核心问题分析
Firebase默认同步到BigQuery的Admob事件仅包含基础参数,user_id、screen_name、ad_id及单条广告收益需要通过自定义事件参数补充,或调整同步配置确保参数被完整传递。
1. 代码层补充自定义事件参数
在Admob广告的回调逻辑中,手动将所需字段附加到Firebase事件中,确保数据被采集:
Android(Kotlin)示例
// 广告展示回调中添加参数 FirebaseAnalytics.getInstance(context).logEvent(FirebaseAnalytics.Event.AD_IMPRESSION, bundleOf( FirebaseAnalytics.Param.AD_UNIT_ID to adUnitId, "user_id" to FirebaseAuth.getInstance().currentUser?.uid, // 替换为你的用户ID逻辑 "screen_name" to "home_screen", // 当前页面标识,比如通过页面类名或自定义常量传递 "ad_id" to adResponse?.adId, // 从AdMob的AdResponse对象中获取广告ID "revenue" to adResponse?.revenue // 仅支持激励视频/插屏等有单条收益的广告类型 ))
iOS(Swift)示例
// 广告展示回调中添加参数 Analytics.logEvent(AnalyticsEventAdImpression, parameters: [ AnalyticsParameterAdUnitID: adUnitID, "user_id": Auth.auth().currentUser?.uid ?? "", "screen_name": "home_screen", "ad_id": adResponse?.adID ?? "", "revenue": adResponse?.revenue ?? 0.0 ])
- 注意:
user_id若使用Firebase Auth的UID,也可通过设置Firebase用户属性自动同步,但关联到Admob事件时,主动附加参数更可靠;screen_name可复用Firebase自动采集的screen_view事件参数,但需确保在Admob事件中显式传递。
2. 调整Firebase-BigQuery同步配置
确保所有事件参数和用户属性被同步到BigQuery:
- 进入Firebase控制台 → 项目设置 → 集成 → BigQuery → 编辑同步设置
- 勾选包括所有事件参数和用户属性,保存配置。
- 注:修改配置后仅会同步新增事件,历史数据无法回溯补充。
3. BigQuery查询完整数据
参数采集完成后,可通过以下SQL查询获取包含目标字段的Admob事件数据:
SELECT -- 提取自定义user_id,若用Firebase用户属性则替换为user_properties字段 (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'user_id') AS user_id, (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'screen_name') AS screen_name, (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'ad_id') AS ad_id, (SELECT value.double_value FROM UNNEST(event_params) WHERE key = 'revenue') AS single_ad_revenue, event_name, event_timestamp, (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'ad_unit_id') AS ad_unit_id FROM `your_firebase_project_id.analytics_xxxxxx.events_*` WHERE event_name IN ('ad_impression', 'ad_click', 'ad_reward') AND _TABLE_SUFFIX BETWEEN '20240101' AND '20240131' -- 替换为目标时间范围
4. 单条广告收益补充说明
- Admob仅为激励视频、插屏、原生广告返回单条展示收益(
revenue参数),横幅广告无法获取单次展示的精准收益,只能通过Admob后台报表按广告单元统计平均收益。 - 若需更精准的收益关联,可结合AdSense Management API拉取广告单元日收益数据,与BigQuery中的事件数计算单条平均收益,但无法实现单事件级别的精准匹配。
内容的提问来源于stack exchange,提问作者Leonid Kachanovskyi
相关产品推荐
相关产品推荐

