idfa ios and android,iOS开发 ios14.0以上系统广告标识idfa获取适配

iOS14以上系统获取idfa的方式有一些变化,这里我们来讨论一下如何在IOS14以上系统获取idfa。

所需环境

1.xcode需要升级到12.0以上版本。

2.手机需要升级到14.0以上版本。

iOS14系统之前获取idfa

1.先导入框架#import

2.获取广告标识

// 判断在设置-隐私里用户是否打开了广告跟踪

if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {

NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];

NSLog(@"%@",idfa);

} else {

NSLog(@"请在设置-隐私-广告中打开广告跟踪功能");

}

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

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

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

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

NSUserTrackingUsageDescription

此标识符将用于向您推荐个性化广告。

be37f85f73a6

info.plist文件截图

2.导入框架

#import

#import

3.获取idfa

if (@available(iOS 14, *)) {

// iOS14及以上版本需要先请求权限

[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {

// 获取到权限后,依然使用老方法获取idfa

if (status == ATTrackingManagerAuthorizationStatusAuthorized) {

NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];

NSLog(@"%@",idfa);

} else {

NSLog(@"请在设置-隐私-跟踪中允许App请求跟踪");

}

}];

} else {

// iOS14以下版本依然使用老方法

// 判断在设置-隐私里用户是否打开了广告跟踪

if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {

NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];

NSLog(@"%@",idfa);

} else {

NSLog(@"请在设置-隐私-广告中打开广告跟踪功能");

}

}

iOS14广告权限的位置已经变动到 设置->隐私->跟踪 里了。而且每个应用都会有自己单独的权限控制开关。在第一次请求权限的地方,还会弹出权限请求弹窗,供用户选择。

be37f85f73a6

image.png

be37f85f73a6

image.png

be37f85f73a6

image.png

be37f85f73a6

image.png

发现了个规律:手机在第一次安装时会弹出权限框,后面卸载再安装则会直接延续第一次的权限选择,不会再弹出权限弹窗。

发现个bug: 有些手机升级系统后会出现无法获得idfa的问题,不管有没有打开权限总开关,都无法弹出权限框,直接返回的是拒绝状态。推测这是苹果系统的一个bug,希望后面苹果能修复。问题详细描述博客链接

补充一点:

iOS14.0-14.5系统不弹权限框也可以直接获取IDFA,但是iOS14.5及以上系统必须弹这个权限授权框后才可以获取到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值