一、IDFV
这里的Vendor就是应用开发商,通过CFBundleIdentifier(DNS反转格式)的前两部分生成。例如:com.cjh.one和com.cjh.two得到的IDFV是一样的。如果用户将属于此Vendor的所有应用卸载,则IDFV的值会被重置,即使再重装此Vendor的应用,IDFV的值也和之前不同。
适用于对内:例如分析用户在应用内的行为等。
NSString * IDFV = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
示例:583D2BB0-B19C-4A9A-A600-2A1EB2FB7E39
二、IDFA
理解为广告标识符,在同一个设备上的所有App都会取到相同的值,是苹果专门给各广告提供商用来追踪用户而设的。广告标示符是由系统存储着的。
适用于对外:例如广告推广,换量等跨应用的用户追踪等。这个值不是唯一确定的!也就是说用户可以根据自己的意愿来还原或者禁止获取这个值。
用户可以通过 设置--->隐私--->广告 来操作。
if (@available(iOS 14, *)) {
//申请权限
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
NSString * idfaStr = [[ASIdentifierManager sharedManager] advertisingIdentifier].UUIDString;
NSLog(@"idfaStr == %@",idfaStr);
}
}];
} else {
// 使用原方式访问 IDFA
if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
NSString *idfaStr = [[ASIdentifierManager sharedManager] advertisingIdentifier].UUIDString;
NSLog(@"idfaStr - %@", idfaStr);
}
}