デバイスを入手したいのですがIDFA
。iOSの公式APIからこの情報を取得するにはどうすればよいですか?
12 に答える
まず、ユーザー 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
}
ASIdentifierManagerは、iOS6以降を実行しているデバイスから広告識別番号を取得する公式の方法です。あなたは-[[ASIdentifierManager sharedManager] advertisingIdentifier];
それを取得するために使用することができます。
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
}
iOS 10 以降、ユーザーが「広告追跡の制限」を有効にすると、OS は「00000000-0000-0000-0000-000000000000」という新しい値を持つ広告識別子を送信します。</p>
この記事によると: https://fpf.org/2016/08/02/ios-10-feature-stronger-limit-ad-tracking/
Amro の Swift の回答を拡張するために、メソッドにラップされた同様のコードを次に示します。
import AdSupport
...
func provideIdentifierForAdvertisingIfAvailable() -> String? {
if ASIdentifierManager.sharedManager().advertisingTrackingEnabled {
return ASIdentifierManager.sharedManager().advertisingIdentifier?.UUIDString ?? nil
} else {
return nil
}
}