我需要在我的应用程序(iOS8)中使用IDFA。我像这样继续获取 IDFA 字符串:
- (NSString *)identifierForAdvertising
{
if([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled])
{
NSUUID *IDFA = [[ASIdentifierManager sharedManager] advertisingIdentifier];
return [IDFA UUIDString];
}
return nil;
}
在此方法中,我检查用户是否在此设备设置中启用IDFA跟踪。效果很好。我注意到,如果我在设备设置中打开/关闭 IDFA 跟踪,IDFA 会一直发生变化。
但是:即使 IDFA 被禁用(在 iOS 设置中),我也可以通过直接调用来获取它:
NSLog(@"==>IDFA %@", [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]);
即使我重新启动我的应用程序,它仍然是一样的。我不明白它为什么以及如何工作。
有人有想法吗?谢谢。问候
isAdvertisingTrackingEnabled
状态的文档 -
在执行任何广告之前检查此属性的值 跟踪。如果值为 NO,则仅将广告标识符用于 以下目的:频次上限、归因、转化 事件, 估计唯一身份用户数, 广告欺诈 检测和调试
因此,就跟踪而言,您需要尊重此属性的值,但即使禁用了跟踪,您也可以将广告标识符用于其他目的。