我需要在我的应用(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,则仅将广告标识符用于
以下用途:频次上限,归因,转化
事件,估算唯一身份用户数,广告欺诈
检测和调试

因此,就跟踪而言,您需要尊重该属性的值,但是即使禁用了跟踪,也可以将广告标识符用于其他目的。

关于ios - 即使在设置中禁用了IDFA,也始终可以访问获取IDFA iOS 8,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28041607/

10-12 20:02