App Tracking Transparency获取IDFA

iOS 14.5 以后 App Tracking Transparency 获取 IDFA

iOS 14.5以后的版本,想要允许其跟踪或访问其设备的广告标识符(IDFA),需使用AppTrackingTransparency

info.plist 文件

此处自定义提示内容为必填项,也可以参考提示模版

代码判断

#import <AppTrackingTransparency/AppTrackingTransparency.h>
#import <AdSupport/ASIdentifierManager.h>


    if (@available(iOS 14, *)) {
        // iOS14及以上版本需要先请求权限
                ATTrackingManagerAuthorizationStatus status = ATTrackingManager.trackingAuthorizationStatus;
                switch (status) {
                    case ATTrackingManagerAuthorizationStatusDenied:
                        NSLog(@"用户拒绝");
                        break;
                    case ATTrackingManagerAuthorizationStatusAuthorized:
                    {
                        NSLog(@"用户允许");
                        NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
                        NSLog(@"IDFA: %@",idfa);
                        break;
                    }
                    case ATTrackingManagerAuthorizationStatusNotDetermined:
                        NSLog(@"用户未做选择或未弹窗");
                        break;
                    default:
                        break;
                }
   
        } else {
            // iOS14以下版本依然使用老方法
            // 判断在设置-隐私里用户是否打开了广告跟踪
            if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
                NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
                NSLog(@"%@",idfa);
            } else {
                NSLog(@"请在设置-隐私-广告中打开广告跟踪功能");
            }
        }

参考资料


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!