You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS中ATT权限被拒后,如何合规展示CMP并通过App Store审核?

解决方案:ATT拒审后仍展示CMP并通过苹果审核

核心问题拆解

苹果拒审的本质是误解了CMP的用途,认为你在用户拒绝追踪后仍通过Cookie进行跨应用/跨平台追踪。你的核心诉求是保留CMP(用于网页功能)同时符合ATT规则,需从「明确边界」「调整逻辑」「合规配置」三个方向入手。


具体解决步骤

1. 重构CMP提示文案,彻底明确非追踪属性

在CMP弹窗中用清晰无歧义的语言说明Cookie用途,避免任何可能被误解为追踪的表述:

  • 明确区分:「功能性Cookie」(用于网页正常加载、社交模块交互)vs「追踪类Cookie」(你的APP不使用)
  • 直接声明:「本APP不会通过Cookie或其他方式追踪您的跨应用/跨平台行为,所有Cookie仅用于保障内置网页的基础功能」

2. 解耦CMP与ATT的触发逻辑

不要把CMP展示和ATT授权状态绑定,让两者独立运行:

  • 优先展示CMP(APP启动后立即触发),处理网页Cookie同意
  • 再请求ATT权限,仅用于调整你的分析功能(而非控制CMP)

修改后的代码示例:

func setupAppPermissions() async {
    // 第一步:独立展示CMP,与ATT状态无关
    showConsentManagerDialog()
    
    // 第二步:处理ATT授权,仅用于调整分析策略
    let trackingStatus = await ATTrackingManager.requestTrackingAuthorization()
    switch trackingStatus {
    case .authorized:
        // 开启基于IDFA的精细化分析(仅应用内,不跨应用追踪)
        enablePreciseAnalytics()
    case .denied, .notDetermined, .restricted:
        // 切换为非追踪式分析(仅收集应用内行为数据,不关联IDFA)
        enableBasicAnalytics()
    }
}

func showConsentManagerDialog() {
    // 展示CMP弹窗,使用修改后的合规文案
}

3. 严格管控内置网页的Cookie行为

针对内置的社交媒体等网页内容,必须确保:

  • 禁用所有第三方追踪类Cookie,仅保留支撑网页功能的必要Cookie(比如登录状态、页面交互逻辑)
  • 如果嵌入第三方网页,要求服务商提供「非追踪模式」的嵌入代码,或者手动拦截网页中的追踪脚本
  • 在Info.plist的NSUserTrackingUsageDescription中,明确说明ATT用途:「仅用于优化应用内的使用行为分析,不会用于跨应用或跨平台的用户追踪」

4. 提交审核时补充说明文档

在App Store Connect的审核备注中主动澄清:

  • CMP的唯一作用是管理内置网页的功能性Cookie,不涉及任何用户追踪行为
  • ATT权限仅用于调整应用内分析的精度,不会收集或共享用户数据用于跨应用追踪
  • 附上CMP弹窗的截图,展示合规的文案说明

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 05:42:47