iOS14后的系统,根据苹果政策要求,需要请求用户授权,访问与应用相关的数据以跟踪用户或设备。我们建议流量等待方法回调完成后处理广告相关逻辑,这样如果用户授权使用IDFA信息,SDK可以使用IDFA进行广告请求,获取更好的广告投放效果,如果用户拒绝此请求,应用获取到的 IDFA 将自动清零,可能会导致您的广告收入的降低。
访问苹果政策说明了解更多信息。
如果想在流量中显示 App Tracking Transparency 授权来获取IDFA,需要在Info.plist中添加NSUserTrackingUsageDescription,描述获取IDFA的用途。例如:
<key>NSUserTrackingUsageDescription</key>
<string>您的允许将用于个性化广告投放</string>
该描述将用于授权IDFA的弹窗提示中,如下所示:
弹窗小字文案建议:
展示授权弹窗需要调用 requestTrackingAuthorizationWithCompletionHandler:
方法。我们建议流量等待方法回调完成后处理广告相关逻辑,这样如果用户授权使用IDFA信息,AMPSAdSDK iOS SDK可以使用IDFA进行广告请求。代码如下:
#import <AppTrackingTransparency/AppTrackingTransparency.h>
#import <AdSupport/AdSupport.h>
- (void)requestIDFA {
if (@available(iOS 14, *)) {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
// 授权完成回调,block可能不在主线程,如果在此请求广告请先调用回到主线程
}];
}
}
applicationDidBecomeActive
内执行,否则可能会被其他权限询问覆盖