如何解决Google Analytics中IOS 14设备事件无法上报的问题
iOS14导致Google Analytics事件上报失败的解决方案
核心影响原因
- iOS14推出的APP跟踪透明度(ATT)框架限制了跨域、跨应用的用户行为跟踪,未获得用户授权的情况下,广告标识符、第三方跟踪Cookie都会被系统屏蔽
- Safari的智能跟踪预防(ITP)策略会把GA默认的第三方Cookie有效期限制为7天,甚至直接拦截第三方跟踪请求,导致GTM默认配置的GA上报请求在iOS14+设备上被拦截
短期方案:补报数据库中已存储的历史事件
- 先梳理数据库存储的事件字段,对齐GA上报要求的必填参数:client_id(客户端唯一标识)、事件名称、事件发生时间戳、事件参数、用户属性,缺失的必填字段要先补全
- 调用GA的Measurement Protocol接口批量上报历史事件,上报时注意两个配置:
- 新增
non_personalized_ads参数并设为true,规避隐私合规规则导致的上报被拒 - 传入事件实际发生的时间戳,不要使用上报时的当前时间,避免数据统计周期错位
- 新增
- 每个事件传入唯一的
event_id参数,GA会自动基于该参数去重,避免补报操作产生重复数据
长期方案:修复后续iOS14+设备的事件上报问题
- 调整GA配置,启用第一方Cookie模式,将GA的跟踪Cookie部署在你自身网站的主域名下,绕过Safari ITP对第三方Cookie的限制,可自行设置Cookie有效期最长为2年
- 新增服务端转发上报逻辑,前端捕获到事件后先发送到你自己的服务端,再由服务端调用GA Measurement Protocol上报,规避前端请求被iOS系统/浏览器拦截的问题
- 条件允许的话部署服务端GTM容器,所有GA上报请求都通过你的自有域名转发,不仅能绕过iOS跟踪限制,还能降低广告拦截插件的拦截概率
- 若需要收集IDFA做广告效果归因,必须先向用户申请ATT授权,未获得授权的事件不要传入IDFA相关参数,避免上报请求被Google直接拒收
内容的提问来源于stack exchange,提问作者Bah S
相关产品推荐
相关产品推荐

