关于ios10限制idfa不出广告问题的排查及跟进

问题排查

现象

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使用didweiboId
    (1) 使用did/weiboId查询user profile,优先使用weiboId
    (2) 使用did来做去重和频次控制 。
    2, android使用IDid, aIdweiboId
    (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信息进行用户区分

推荐阅读更多精彩内容