今天爱分享给大家带来iOS14 最新隐私适配 [IDFA]完美解决方案,希望能够帮助到大家。
IDFA
IDFA 全称为 Identity for Advertisers ,即广告标识符。用来标记用户,目前最广泛的用途是用于投放广告、个性化推荐等。
在 iOS13 及以前,系统会默认为用户开启允许追踪设置,我们可以简单的通过代码来获取到用户的 IDFA 标识符。
if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) { NSString *idfaString = [[ASIdentifierManager sharedManager] advertisingIdentifier].UUIDString; NSLog(@"%@", idfaString); }
但是在 iOS14 中,这个判断用户是否允许被追踪的方法已经废弃。
iOS14 中,系统会默认为用户关闭广告追踪权限。
对于这种情况,我们需要去请求用户权限。首先需要在 Info.plist 中配置” NSUserTrackingUsageDescription ” 及描述文案,接着使用 AppTrackingTransparency 框架中的 ATTrackingManager 中的 requestTrackingAuthorizationWithCompletionHandler 请求用户权限,在用户授权后再去访问 IDFA 才能够获取到正确信息。
#import <AppTrackingTransparency/AppTrackingTransparency.h> #import <AdSupport/AdSupport.h> - (void)testIDFA { if (@available(iOS 14, *)) { [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) { if (status == ATTrackingManagerAuthorizationStatusAuthorized) { NSString *idfaString = [[ASIdentifierManager sharedManager] advertisingIdentifier].UUIDString; } }]; } else { // 使用原方式访问 IDFA } }