iOS ANSDK 設定

Xandr Mobile SDK には、アプリの開発に役立つさまざまな設定が用意されています。 この記事では、iOS ANSDK 設定のメソッドまたはプロパティ、入力パラメーター、戻り値、制限、ガイドライン、例について詳しく説明します。

プロパティ 説明
(void) optionalSDKInitialization:(sdkInitCompletion _Nullable)success 初期化中のユーザーエージェントの存在の確認、WebView の準備など、一般的な設定を事前に構成します。

詳細については、以下の 「SDK 設定の初期化 」を参照してください。
NSString *publisherUserId 現在のアプリケーション ユーザーのパブリッシャー ユーザー ID を指定します。

詳細については、以下の 「ユーザー ID マッピング 」を参照してください。
NSArray<ANUserId *> *userIdArray ユーザー ID パラメーターを保持するオブジェクトを含む辞書を指定します。

詳細については、以下の「ユーザー ID マッピング」を参照してください。
BOOL disableIDFVUsage 広告要求に IDFV フィールドを含めたり除外したりします。

詳細については、以下の 「ユーザー ID マッピング 」を参照してください。
NSString *geoOverrideCountryCode 国コードを割り当てます。

詳細については、以下の「 国コードと郵便番号の上書きのサポート 」を参照してください。
NSString *geoOverrideZipCode 郵便番号を割り当てます。

詳細については、以下の「 国コードと郵便番号の上書きのサポート 」を参照してください。
(void)setLocationWithLatitude:(CGFloat)latitude longitude:(CGFloat)longitude timestamp:(nullable NSDate *)timestamp horizontalAccuracy:(CGFloat)horizontalAccuracy precision:(NSInteger)precision 広告サーバーに渡す位置データの精度を制御します。

詳細については、以下の 位置情報制御 を参照してください。
BOOL locationEnabledForCreative クリエイティブの位置情報へのアクセスを制御します。

詳細については、以下の 位置情報制御 を参照してください。
BOOL doNotTrack ユーザーのオプトアウトに関する情報がアプリにあるかどうかを示します。

詳細については、以下の 「パブリッシャー側のユーザー オプトアウト 」を参照してください。
BOOL disableIDFAUsage 広告要求の IDFA フィールドを除外します。

詳細については、以下の「 IDFA 使用量の設定 」を参照してください。
NSUInteger auctionTimeout タイムアウト期間をミリ秒単位で設定します。

詳細については、以下の「 オークション タイムアウトの設定 」を参照してください。
BOOL enableTestMode テスト モードで実行される AdRequests の YES または NO を設定します。

詳細については 、以下の「テスト モードの設定」 を参照してください。
BOOL enableOMIDOptimization オープン測定の最適化を有効にします。

詳細については、下記の OMID 最適化 を参照してください。
NSString *contentlanguage コンテンツの言語のコードを設定します。

詳細については、以下の 「コンテンツの言語の設定」 を参照してください。

SDK 設定を初期化する

メソッド 説明
(void) optionalSDKInitialization:(sdkInitCompletion _Nullable)success SDK の初期化中にユーザー エージェントが存在することの確認、WebView の準備など、一般的な設定を事前に構成できるメソッド。
このプロパティの完了ブロックは、SDK の初期化が正常に完了した場合は "true" を返し、失敗した場合は "false" を返します。

例

[[ANSDKSettings sharedInstance] optionalSDKInitialization:^(BOOL isSDKInitialized) {
 if(isSDKInitialized){
      NSLog(@"SDK Initialized");
    }else{
      NSLog(@"SDK did not initialize");
    }
  }];

ユーザー ID マッピング

重要

  • このオファリングは現在アルファ版であり、予告なしに変更または非推奨になる場合があります。
  • ANBannerAdView、InterstitialAdView、ANNativeAdRequest、ANInstreamVideoAd クラスの externalUid プロパティは非推奨になりました。 代わりにANSDKSettingsクラスで後述publisherUserIdプロパティを使用できます。 非推奨のプロパティは SDK v8.0 で削除されます。
  • プロパティ ANSDKSettings.externalUserIdArray と ANExternalUserId クラスは非推奨になり、SDK v8.0 で削除される予定です。 代わりに、以下で説明する同等のプロパティ ANSDKSettings.userIdArray と ANUserId クラスを代わりに使用できます。
プロパティ 説明
NSString *publisherUserId 現在のアプリケーション ユーザーのパブリッシャー ユーザー ID に対応する文字列を指定します。
NSArray<ANUserId *> *userIdArray ユーザー ID パラメーターを保持するオブジェクトを含む辞書を指定します。

Xandr は、以下の外部ソースからのユーザー ID をサポートします。
- クリテオ
- トレードデスク
- NetID
- LiveRamp
- UID 2.0
- パブリッシャーが指定した ID/PPID (パブリッシャーは API 経由で独自のソースを登録し、ユーザー ID を渡すことができます)

次の方法でユーザー ID を設定できます。
- ANUserId オブジェクトの配列の作成、および
- MobileSDK API の ANSDKSettings の userId Array プロパティにオブジェクトの配列を割り当てます。
BOOL disableIDFVUsage 広告要求で IDFV フィールドを除外するブール値を指定します。 プロパティの既定値は [いいえ] に設定されています。

iOS 14.5 以降でのアプリ トラッキング透明性 (ATT) の変更の導入により、社内にパブリッシャー ファースト パーティ ID と広告主識別子 (IDFA) が利用できない場合、パブリッシャーはデバイスのベンダー識別子 (IDFV) を使用できます。

IDFV は、特定の広告要求に対して IDFV とパブリッシャーのファースト パーティ ID の両方が存在しない場合に使用されます。

注:

  • パブリッシャー ID とユーザー ID はグローバル設定です。
  • ユーザー ID は、同じセッション内の連続するすべての広告要求で使用されるため、アプリ セッションごとに 1 回設定するだけで十分です。
  • Xandr は、これらの値を異なるアプリ セッションに保存しません。

例

// User Id from External Third Party Sources
NSMutableArray<ANUserId *>  *userIdArray  = [[NSMutableArray<ANUserId *> alloc] init];
[userIdArray addObject:[[ANUserId alloc] initWithANUserIdSource:ANUserIdSourceNetId userId:@"userid-netid-foobar" ]];
[userIdArray addObject:[[ANUserId alloc] initWithANUserIdSource:ANUserIdSourceTheTradeDesk userId:@"userid-ttd-foobar" ]];
ANSDKSettings.sharedInstance().disableIDFAUsage = true[userIdArray addObject:[[ANUserId alloc] initWithANUserIdSource:ANUserIdSourceUID2 userId:@"userid-uid2-foobar" ]];
[userIdArray addObject:[[ANUserId alloc] initWithANUserIdSource:ANUserIdSourceCriteo userId:@"userid-Criteo-foobar"]];
[userIdArray addObject:[[ANUserId alloc] initWithANUserIdSource:ANUserIdSourceLiveRamp userId:@"userid-liveramp-foobar" ]];
[userIdArray addObject:[[ANUserId alloc] initWithStringSource:@"Generic Source" userId:@"userid-generic-foobar" isFirstParytId:true]];
ANSDKSettings.sharedInstance.userIdArray = userIdArray;
 
// Publisher User Id
ANSDKSettings.sharedInstance.publisherUserId = @"foobar-publisherfirstpartyid";
 
// IDFV as Publisher User Id
ANSDKSettings.sharedInstance.disableIDFVUsage = NO;

国コードと郵便番号の上書きのサポート

SDK は、レポートの作成目的で、標準フィード (ログ レベルのデータ) からの市区町村/DMA/国情報を使用します。 ただし、これらの値は、データの健全性を維持するために、リバーサーのジオコーディングされた緯度と経度のデータから上書きする必要があります。 これらの値が上書きされない場合、ログ レベルのデータは IP アドレス ベースの場所を指し、最終的には特にモバイル データに関して間違ったデータ セットを投影します。

プロパティ 説明
NSString *geoOverrideCountryCode 国コードをオーバーライドする文字列値を示します。
NSString *geoOverrideZipCode 郵便番号を上書きする文字列値を示します。

例

//Set
ANSDKSettings.sharedInstance.geoOverrideCountryCode = @"US";
ANSDKSettings.sharedInstance.geoOverrideZipCode = @"10010";
.......
//Get
NSString* countryCode = ANSDKSettings.sharedInstance.geoOverrideCountryCode;
NSString* zipCode = ANSDKSettings.sharedInstance.geoOverrideZipCode

位置情報の制御

プロパティ 説明
(void)setLocationWithLatitude:(CGFloat)latitude longitude:(CGFloat)longitude timestamp:(nullable NSDate *)timestamp horizontalAccuracy:(CGFloat)horizontalAccuracy precision:(NSInteger)precision 広告サーバーに渡す位置データの精度を制御する方法。 位置データが優れているほど、広告の収益化も向上する可能性があります。
BOOL locationEnabledForCreative クリエイティブの位置情報アクセスを制御するプロパティ。 既定値は YES です。 NO は、クリエイティブから場所を無効にします。

WebView でレンダリングされるクリエイティブは、HTML5 位置情報 API を通じてユーザーの位置情報にアクセスできます。

注:
- デフォルトでは、クリエイティブが場所を尋ねると、その場所を使用するための明示的な許可を求めるポップアップがユーザーに表示されます。
- 位置情報へのアクセスを無効にすると、ポップアップはユーザーに表示されず、クリエイティブは HTML5 位置情報 API 呼び出しでPERMISSION_DENIEDエラーを受け取ります。

precision パラメーターを指定すると、すべての場所情報が、広告サーバーに渡される前に、小数点以下の指定された桁数に内部的に丸められます。 precisionの値と位置精度距離の相関関係は次のとおりです。

精度 (整数) 解像度の精度
2 約1キロメートル
3 約100メートル
4 約10メートル
-1 完全な解決が渡されました

例

CLLocation *location = [locationManager location];
NSDate *now = [NSDate date];
[banner.setLocationWithLatitude:location.coordinate.latitude
  longitude:location.coordinate.longitude
  timestamp: now
  horizontalAccuracy: location.horizontal_accuracy
  precision: 4];

パブリッシャー側のユーザーによるオプトアウト

すべての AdRequest については、Xandr Mobile SDK がデバイスまたは OS 環境レベルでチェックし、バックグラウンドで limitAdTracking (LMT) の値を自動的に入力します。 LMT=true の場合、ユーザーがデバイスまたは OS の設定でトラッキングをオプトアウトしたことを示します。 ただし、パブリッシャーはユーザーのトラッキングのオプトイン/オプトアウトに関する情報を保持するため、ユーザーがプライバシー規制に準拠するためにオプトアウトした場合は、その情報を渡す必要があります。 これを容易にするために、パブリッシャー側のユーザー オプトアウト機能がモバイル SDK に導入されました。

プロパティ 説明
BOOL doNotTrack ユーザーのオプトアウトに関する情報がアプリにあるかどうかを示します。[はい] に設定すると、今後のすべてのオークションでトラッキング Cookie と IDFA が無効になります。 既定値は NO です。

例

[ANSDKSettings sharedInstance].doNotTrack = YES;

IDFA の使用の設定

広告主識別子 (IDFA) は、Apple App Store にアプリを持っているパブリッシャーが広告目的で同意した上でユーザーを追跡するために Apple が提供する ID です。 Xandr モバイル SDK に API が導入され、広告要求に IDFA フィールドを含めたり除外したりすることで、IDFA の使用を有効または無効にできます。

プロパティ 説明
BOOL disableIDFAUsage 広告要求で IDFA フィールドを除外するプロパティ。 既定値は NO です。

例

[ANSDKSettings sharedInstance].disableIDFAUsage = YES;

オークション タイムアウトを設定する

プロパティ 説明
NSUInteger auctionTimeout 入札者が入札要求に応答するまで待機する期間をミリ秒単位で設定します。

入札者がタイムアウト期間に設定された値 (たとえば、500 ミリ秒) 内に応答しない場合、入札要求は失敗します。

例

[[ANSDKSettings sharedInstance] setAuctionTimeout:500];

テスト モードの設定

プロパティ 説明
BOOL enableTestMode デバッグまたはテストのためにテスト モードで実行される AdRequests の YES または NO を設定します。 既定値は NO です。

注: AdRequest 実行のテスト モードを YES として設定する範囲は、デバッグ/開発またはテスト目的のみに限定されており、運用環境では使用できません。 運用環境でテスト モードを有効にすると、意図しない結果が発生し、アプリの収益化に影響します。

例

ANSDKSettings.sharedInstance.enableTestMode = YES;

コンテンツの言語を設定する

プロパティ 説明
NSString *contentlanguage コンテンツの言語の 2 文字の ANSI コードを設定します。たとえば、 EN などです。

例

ANSDKSettings.sharedInstance.contentLanguage = @"EN";

OMID の最適化

ANSDKSettings で次のプロパティを使用します。

プロパティ 型 属性 説明
enableOMIDOptimization BOOL 読み取り書き込み、代入 バナー広告とネイティブ広告の OMID セッション ライフサイクルの最適化を制御します。 既定値は NO です。

動作、スコープ、例については、「 OMID 最適化を有効にする」を参照してください。