You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

iOS 14 App Tracking预权限提示合规性及过渡期IDFA处理咨询

关于App Tracking Transparency预提示与合规性的解决方案

Hey there, let's work through your two questions step by step, based on Apple's 2021 ATT guidelines and common industry practices at the time:

1. 预提示后不调用ATTrackingManager.requestTrackingAuthorization是否符合苹果规范?

Short answer: 是的,这种做法是合规的

苹果ATT框架的核心规则是:只有在需要追踪用户(即使用IDFA进行跨应用/平台广告追踪)时,才必须请求用户授权。如果你的用户通过预提示明确选择退出个性化广告,你主动放弃调用授权弹窗,相当于你选择不进行追踪行为——这和苹果默认的"未请求授权"状态(IDFA为0000-0000-0000-0000)完全一致。

当时苹果的指南里并没有禁止开发者添加自定义预提示,只要你的预提示不误导用户、不替代官方的ATT弹窗(你这里也没有替代,只是提前做说明),就不会违规。你的逻辑本质是尊重用户选择,主动切换到非个性化广告模式,完全符合苹果的隐私要求。

2. 过渡期间如何处理预提示选择退出的用户?

确实,在ATT强制执行前,默认情况下App可以正常访问IDFA,这会导致预提示选择退出的用户依然被用IDFA做个性化追踪,违背用户意愿。这里有几个可行的解决方案:

  • 通过广告平台API强制非个性化广告
    这是最稳妥的方式。以AdMob为例,你可以在创建广告请求时,明确设置请求非个性化广告:

    let request = GADRequest()
    request.nonPersonalizedAds = true // 强制请求非个性化广告
    

    这样不管IDFA是否可用,AdMob都会返回非个性化广告,完全符合用户的预选择,而且不需要修改IDFA(苹果禁止手动篡改IDFA,这一点一定要注意)。

  • 过渡期间仍调用授权弹窗,但结合用户预选择优化体验
    如果你担心后续合规问题,也可以对预提示选择退出的用户调用requestTrackingAuthorization,但在弹窗前可以加一层说明,比如:"你之前选择了非个性化广告,我们需要确认你的追踪权限设置"。不过这确实有点违背直觉,所以更推荐第一种方案。

  • 利用ATT状态的兼容性处理
    你可以在App启动时检查用户的预选择状态,如果用户已选择退出,就始终使用非个性化广告配置,直到ATT强制执行后,系统默认IDFA变为0000,此时你的逻辑会自然对齐。

需要强调的是:不要尝试手动禁用或修改IDFA,苹果严格禁止篡改IDFA的行为,这会导致App被拒。通过广告平台的配置来控制广告类型,是唯一合规且有效的方式。

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

火山引擎 最新活动