美文网首页iOS10~最新系统适配相关ios基础iOS开发
iOS开发 ios14系统广告标识idfa获取适配

iOS开发 ios14系统广告标识idfa获取适配

作者: 夜凉听风雨 | 来源:发表于2020-07-03 10:11 被阅读0次

    iOS14系统之前获取idfa

    1.先导入框架#import <AdSupport/ASIdentifierManager.h>

    2.获取广告标识

    // 判断在设置-隐私里用户是否打开了广告跟踪
            if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
                NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
                NSLog(@"%@",idfa);
            } else {
                NSLog(@"请在设置-隐私-广告中打开广告跟踪功能");
            }
    

    iOS14及以上系统 获取广告标识idfa

    苹果官方文档

    iOS14以上系统,需要先请求跟踪权限,用户同意后才能获取到广告标识。

    1.在info.plist文件里添加跟踪权限请求描述文字

    注意:该权限只有xcode12及以上版本才有,现在大家只能去下载xcode12 BETA版本的来测试使用了。


    image.png

    2.导入框架

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

    3.获取idfa

    if (@available(iOS 14, *)) {
            // iOS14及以上版本需要先请求权限
            [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
                // 获取到权限后,依然使用老方法获取idfa
                if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
                    NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
                    NSLog(@"%@",idfa);
                }
            }];
        } else {
            // iOS14以下版本依然使用老方法
            // 判断在设置-隐私里用户是否打开了广告跟踪
            if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
                NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
                NSLog(@"%@",idfa);
            } else {
                NSLog(@"请在设置-隐私-广告中打开广告跟踪功能");
            }
        }
    

    相关文章

      网友评论

        本文标题:iOS开发 ios14系统广告标识idfa获取适配

        本文链接:https://www.haomeiwen.com/subject/thijqktx.html