83

デバイスを入手したいのですがIDFA。iOSの公式APIからこの情報を取得するにはどうすればよいですか?

4

12 に答える 12

84

まず、ユーザー user が広告追跡をオプトアウトすることを決定したかどうかを確認する必要があります。彼が許可した場合にのみ、 を使用できますIDFA

isAdvertisingTrackingEnabledのメソッドを呼び出すことで確認できますASIdentifierManager

isAdvertisingTrackingEnabled

広告追跡を実行する前に、このプロパティの値を確認してください。値がNOの場合、広告 ID は次の目的にのみ使用してください: フリークエンシー キャップ、コンバージョン イベント、ユニーク ユーザー数の推定、セキュリティと不正行為の検出、およびデバッグ。

次のコード スニペットは、 の文字列値を取得する方法を示していますIDFA

オブジェクトC

@import AdSupport;

- (NSString *)identifierForAdvertising {
    // Check whether advertising tracking is enabled
    if([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
        NSUUID *identifier = [[ASIdentifierManager sharedManager] advertisingIdentifier];
        return [identifier UUIDString];
    }

    // Get and return IDFA
    return nil;
}

迅速

import AdSupport

func identifierForAdvertising() -> String? {
    // Check whether advertising tracking is enabled
    guard ASIdentifierManager.shared().isAdvertisingTrackingEnabled else {
        return nil
    }

    // Get and return IDFA
    return ASIdentifierManager.shared().advertisingIdentifier.uuidString
}
于 2014-04-22T10:18:03.407 に答える
14

ASIdentifierManagerは、iOS6以降を実行しているデバイスから広告識別番号を取得する公式の方法です。あなたは-[[ASIdentifierManager sharedManager] advertisingIdentifier];それを取得するために使用することができます。

于 2012-10-17T22:53:27.407 に答える
12

Swift で IDFA を取得します。

    import AdSupport

    ...

    let myIDFA: String?
    // Check if Advertising Tracking is Enabled
    if ASIdentifierManager.sharedManager().advertisingTrackingEnabled {
        // Set the IDFA
        myIDFA = ASIdentifierManager.sharedManager().advertisingIdentifier.UUIDString
    } else {
        myIDFA = nil
    }
于 2015-04-23T19:39:13.857 に答える
8

iOS 10 以降、ユーザーが「広告追跡の制限」を有効にすると、OS は「00000000-0000-0000-0000-000000000000」という新しい値を持つ広告識別子を送信します。</p>

この記事によると: https://fpf.org/2016/08/02/ios-10-feature-stronger-limit-ad-tracking/

于 2016-09-09T23:27:10.437 に答える
1

Amro の Swift の回答を拡張するために、メソッドにラップされた同様のコードを次に示します。

import AdSupport

...

func provideIdentifierForAdvertisingIfAvailable() -> String? {
    if ASIdentifierManager.sharedManager().advertisingTrackingEnabled {
      return ASIdentifierManager.sharedManager().advertisingIdentifier?.UUIDString ?? nil
    } else {
      return nil
    }
  }
于 2015-09-24T14:26:46.280 に答える