如何安全使用iOS adsIdentifier?

时间:2019-05-01 23:10:02

标签: ios cocoa-touch

根据Apple's documentation

  

在执行任何广告跟踪之前,请检查此属性的值。如果值为def to_number(value) return if value.blank? (value.to_f % 1) > 0 ? value.to_f : value.to_i end ,则仅将广告标识符用于以下目的:频次上限,归因,转化事件,估算唯一用户数,广告欺诈检测和调试。

因此,基于此,以下代码应可安全运行并遵循Apple的文档:

false

基本上检查它是否为假,如果是,则使用它。当然,该代码可以简化,但是对于这个问题,我正尝试尽可能地冗长。

根据Apple的文档,该代码对我来说似乎是正确的。

话虽这么说,它确实不适合该属性的名称,也不适合GitHub上的开源项目。

下面是一些开源项目,这些链接的链接方式不同。

DeviceInfo

var advertisingID: String? {
    if ASIdentifierManager.shared().isAdvertisingTrackingEnabled == true {
        return nil
    } else {
        return ASIdentifierManager.shared().advertisingIdentifier.uuidString
    }
}

drifter

return ASIdentifierManager.shared().isAdvertisingTrackingEnabled ? ASIdentifierManager.shared().advertisingIdentifier.uuidString : ""

如您所见,如果// Check whether advertising tracking is enabled guard ASIdentifierManager.shared().isAdvertisingTrackingEnabled else { return nil } // Get and return IDFA return ASIdentifierManager.shared().advertisingIdentifier.uuidString false,这些解决方案将返回advertisingIdentifier,而不是返回isAdvertisingTrackingEnabled的值。 Apple的文档没有说明。但是给定属性名称确实有意义。


所以我的问题是,哪个正确?苹果的文档有误吗?还是这些开源项目做错了?还是我只是缺少明显的东西,那些开源项目和Apple的文档都是正确的?

1 个答案:

答案 0 :(得分:-1)

如果值为 int arr[]; int x = 0; BufferedReader br = new BufferedReader(newInputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); arr = new int [Integer.parseInt(st.nextToken())*2]; for (int i = 0; i < arr.length; i++) { if ((i%2)==1) { x = Integer.parseInt(st.nextToken()); st = new StringTokenizer(br.readLine()); } else { x = Integer.parseInt(st.nextToken()); } arr[i] = x; } System.out.println(arr.toString()); } ,则可以执行所有操作。但是,只有在值是false的情况下,才可以完成广告定位的常用用法。因此,图书馆的做法是正确的。