问题排查
现象
ios10平台开启限制广告跟踪
后,新闻App不出扶翼广告
定位
1, ios10如果开启了限制跟踪,IDFA会被设置为00000000-0000-0000-0000-000000000000
,ios9平台下,IDFA会被设置为00000000000000000000000000000000
2, SAX将该IDFV作为cookie值传递至引擎
3, 引擎使用该cookie值计算了去重集合,导致算法进行针对APP的长短session的广告和广告主去重
跟踪分析
问题在于如何识别用户
ios/android能够提供的ID如下:
- ios
名称 | 说明 | 备注 |
---|---|---|
did | ios客户端根据某种算法生成的ID | 唯一性较好,存储在钥匙串中,并可以在新浪/微博系的APP内共享 |
idfa/idfv | ios系统提供的ID | 用户开启限制广告跟踪后,无法获取 |
weiboId | 微博uid | 唯一,用户登录后,才能获取 |
- android
名称 | 说明 | 备注 |
---|---|---|
did | android客户端根据老算法生成的ID | 某些情况下有较多重复 |
lDid | android客户端根据新算法生成的ID | 唯一性较好,存储在app私有目录和sd卡特定目录 |
aId | 通行证根据某种算法生成的ID | 与新浪/微博系的其他APP数据互通 |
imei | 手机序列号 | android 6.0后系统慢慢禁止采集imei,阿里云等低价手机共用imei |
weiboId | 微博uid | 唯一,用户登录后,才能获取 |
引擎
使用SAX传递过来的cookie进行去重,作为userid传递给算法
APP服务器端
ios的4种ID已经进行传递,android的lDid和aId会在11.20发布新版本后开始有数据
DMP
- DMP存在无效cookie的用户画像(已删除)
算法
- 算法频控使用的是广告日志userid字段(cookie),内容变化会造成非平滑过渡
- 算法只认uid,产生过程对算法透明,业务和策略分离
解决方案
临时规避方案(已放弃)
引擎仿照wap机制,为app单次请求生成hashcode,先解决单次刷新中的广告去重问题
紧急修复方案(使用中)
SAX如果发现idfa是全0 ID,将其替换为did作为cookie值传递至引擎
后期统一方案 (待商议)
用户标识
1, ios使用did
和weiboId
(1) 使用did/weiboId
查询user profile,优先使用weiboId
(2) 使用did
来做去重和频次控制 。
2, android使用IDid
,aId
和weiboId
(1) 使用IDid/weiboId
查询user profile,优先使用weiboId
(2) 使用aId
实现和新浪/微博系其他AP的数据互通
(3) 使用IDid
来做去重和频次控制定向优化
user profile未命中时,从用户兴趣个数分布中选取前20作为默认
需要明确的问题
方案对App服务器、SAX、DMP、引擎、算法的影响
用户标识的有效性
各app用户标识统一问题
内容推荐系统是是独立封闭的系统,基于did
去标识用户的,与其他app的数据交换依然是通过idfa
,idfa
等其他信息去做的
广告系统直接用did
会导致和第三方系统,体育,财经等各app的用户标识不统一SAX与引擎的传递协议
算法是否需要ID信息进行用户区分