次の方法で共有


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 Open-Measurement 最適化を有効にします。

詳細については、以下の 「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 マッピング

重要

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

Xandr では、次の外部ソースからのユーザー ID がサポートされています。
- Criteo
- ザ トレード デスク
- NetID
- LiveRamp
- UID 2.0
- パブリッシャーが指定した ID/PPID (発行元は API を介して独自のソースを登録でき、ユーザー ID を渡すことができます)

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

iOS 14.5 以降で App Tracking Transparency (ATT) の変更が導入されたため、パブリッシャーは、社内のパブリッシャーファースト パーティ ID と広告主識別子 (IDFA) が利用できない場合に、デバイスの識別子 (IDFV) を使用できます。

IDFV は、特定の広告リクエストに IDFV と Publisher First Party ID の両方が存在しない場合に使用されます。

注:

  • パブリッシャー ID とユーザー ID はグローバル設定です。
  • これらの値は、同じセッション内のすべての連続する広告要求で使用されるため、アプリ セッションごとに 1 回ユーザー ID を設定するだけで十分です。
  • 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 では、レポート目的で標準フィード (ログ レベル データ) からの City/DMA/Country 情報が使用されます。 ただし、これらの値は、データのサニティをそのまま維持するために、逆ジオコーディングされた緯度と経度のデータから上書きする必要があります。 これらの値が上書きされない場合、ログ レベルのデータは 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 です。 [いいえ] を選択すると、クリエイティブの場所が無効になります。

WebView でレンダリングされたクリエイティブは、HTML5 ロケーション API を介してユーザーの場所にアクセスできます。

:
- 既定では、クリエイティブが場所を要求すると、その場所を使用するための明示的なアクセス許可を求めるポップアップがユーザーに表示されます。
- 位置情報へのアクセスが無効になっている場合、ポップアップはユーザーに表示されません。また、HTML5 位置情報 API 呼び出しに対してクリエイティブにPERMISSION_DENIEDエラーが表示されます。

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

有効桁数 (整数) 解像度の精度
2 約1km
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 の設定で追跡をオプトアウトすることを示します。 ただし、発行元はユーザーの追跡のオプトイン/オプトアウトに関する情報を保持するため、ユーザーがプライバシー規制に準拠することをオプトアウトした場合は、その情報を渡す必要があります。 これを容易にするために、パブリッシャー側のユーザーオプトアウト機能が Mobile SDK に導入されました。

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

[ANSDKSettings sharedInstance].doNotTrack = YES;

IDFA の使用状況を設定する

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

プロパティ 説明
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;

OMID の最適化

IAB の Open Measurement SDK (OM SDK) は、パブリッシャーが 1 つの SDK を使用できるようにすることで、モバイル アプリでのサード パーティの広告の視認性と検証の測定を強化し、複数の SDK を必要としません。 詳細については、 IAB OM SDK のページを参照してください。

表示可能性の測定に OMSDK を使用するときに報告されるパフォーマンスの問題に対処するために、既定ではオフになっている OMID 最適化オプションが導入されました。 このオプションを有効にすると、広告の 100% が画面上にあるときに stopOMIDAdSession 関数がトリガーされます。 これにより、アプリのパフォーマンスは向上しますが、広告の視認性の測定期間は短縮されます。

プロパティ 説明
BOOL enableOMIDOptimization OMID 最適化を有効にするには、YES または NO を設定します。 既定値は NO です。

: この API では、バナーとネイティブ広告の種類のみがサポートされます。

ANSDKSettings.sharedInstance.enableOMIDOptimization = true;

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

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

ANSDKSettings.sharedInstance.contentLanguage = @"EN";