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

iOS应用中已废弃的ADClient.requestAttributionDetails替代方案

替代方案说明

ADClient相关API已被苹果废弃,现在需要使用AdServices框架结合**AppTrackingTransparency(ATT)**框架来获取广告归因信息,具体步骤如下:

1. 准备工作

  • 项目中导入两个框架:
    import AdServices
    import AppTrackingTransparency
    
  • 在Info.plist中添加NSUserTrackingUsageDescription键,填写向用户说明追踪用途的文案(比如"需要追踪您的应用使用情况以提供个性化广告"),否则无法请求ATT权限。

2. 请求用户追踪授权

只有获得用户授权后,才能获取完整的归因数据,代码示例:

func requestTrackingAuthorization() {
    if #available(iOS 14, *) {
        ATTrackingManager.requestTrackingAuthorization { status in
            // 授权状态回调,此处可调用归因API
            self.fetchAttributionDetails()
        }
    } else {
        // iOS14以下版本可直接调用归因API(无需授权)
        fetchAttributionDetails()
    }
}

3. 获取广告归因数据

使用AAAttribution的API替代旧的ADClient方法,代码示例:

func fetchAttributionDetails() {
    if #available(iOS 14.3, *) {
        AAAttribution.requestAttributionDetails { details, error in
            if let error = error {
                print("获取归因数据失败:\(error.localizedDescription)")
                return
            }
            guard let attributionDetails = details else {
                print("未获取到归因数据")
                return
            }
            // 处理归因字典,比如发送到服务器
            print("归因数据:\(attributionDetails)")
        }
    } else {
        // iOS14.3以下版本可继续使用旧的ADClient(但苹果已废弃,建议升级适配)
        let client = ADClient.shared()
        client.requestAttributionDetails { dict, err in
            if let dict = dict {
                print("旧API获取的归因数据:\(dict)")
            }
        }
    }
}

注意事项

  • 适配版本:AAAttribution要求iOS 14.3及以上,ATTrackingManager要求iOS 14及以上。
  • 若用户拒绝授权,attributionDetails会返回部分受限数据,无法获取完整的广告归因信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 13:50:57