iOS のマルチ広告リクエスト

概要

この記事では、マルチ広告要求 (ANMultiAdRequest) を開始および構成するための手順とコード サンプルを示します。 ANMultiAdRequest 1 つのユニバーサル タグ (UTv3) 要求を使用して複数のオークションを開始し、その結果は単一のサーバー応答で返されます。

ANMultiAdRequest AdUnitと同様に、ANAdProtocolのサブセットを実装します。 これにより、ANMultiAdRequestは、各AdUnitの種類の同じ仕様を使用して、さまざまなAdUnits (バナーネイティブビデオなど) の種類と動作を採用できます。 カスタム キーワードは ANMultiAdRequest に割り当てることができ、含まれている AdUnitsに継承されます。

初期化

ユーザーは、次の 3 つの初期化方法から選択できます。 ANMultiAdRequest を初期化するには、いずれも引数として memberIddelegate オブジェクトが必要です。 memberIddelegateは、インスタンスごとに 1 回だけ設定できます。 現時点では、オプションの パブリッシャー ID パラメーター を設定できます。 すべての AdUnits には、初期化プロセスで渡されたものと同じ memberId が含まれている必要があります。 AdUnits placementIds が含まれている場合は、その配置の関連付けられたmemberIdが使用されます。 初期化が成功すると、 ANMultiAdRequest クラス インスタンスが返されます。

注:

ANMultiAdRequest インスタンスは、memberId値がそれ自体の値と異なるAdUnitsを拒否します。

初期化メソッド

この機能では、次のメソッドがサポートされています。

1 つ以上の 1 つ以上の AdUnits

1 つ以上のAdUnitsのリストを使用して ANMultiAdRequest のインスタンスを初期化します。 例えば、

発行元 ID なし

- (nullable instancetype)
    initWithMemberId:(NSInteger)memberId
            delegate:(nullable id<ANMultiAdRequestDelegate>)delegate
             adUnits:(nonnull id<ANAdProtocolFoundationCore>)firstAdUnit, ...;

発行元 ID あり

- (nullable instancetype)
    initWithMemberId:(NSInteger)memberId
         publisherId:(NSInteger)publisherId
            delegate:(nullable id<ANMultiAdRequestDelegate>)delegate
             adUnits:(nonnull id<ANAdProtocolFoundationCore>)firstAdUnit,
                     ... NS_REQUIRES_NIL_TERMINATION;

AdUnitsの一覧を使用して初期化し、load メソッドを呼び出します

初期化を有効にし、1 行のコードで load メソッドを呼び出します。 上記のプロセスと同様に、インスタンスは 1 つ以上の AdUnitsのリストを使用して初期化されます。 load ライフサイクル中にエラーが発生した場合、クラスは初期化されず、null オブジェクトが返されます。 load プロセスが成功すると、クラス インスタンスが返された後、インスタンスの成功または失敗が ANMultiAdRequestDelegate を介して呼び出し元に通知されます。 例えば、

発行元 ID なし

- (nullable instancetype)
    initAndLoadWithMemberId:(NSInteger)memberId
                   delegate:(nullable id<ANMultiAdRequestDelegate>)delegate
                    adUnits:(nonnull id<ANAdProtocolFoundationCore>)firstAdUnit,
                            ...;

発行元 ID あり

- (nullable instancetype)
    initAndLoadWithMemberId:(NSInteger)memberId
                publisherId:(NSInteger)publisherId
                   delegate:(nullable id<ANMultiAdRequestDelegate>)delegate
                    adUnits:(nonnull id<ANAdProtocolFoundationCore>)firstAdUnit,
                            ... NS_REQUIRES_NIL_TERMINATION;

単純な初期化

この基本的な初期化は、クラスのインスタンスを返しますが、アクションは行いません。 構成は、クラス プロパティとメソッドを使用して完了できます。 初期化されたデリゲートは、追加されると AdUnits に設定されます。

発行元 ID なし

- (nullable instancetype)initWithMemberId:(NSInteger)memberId
                              andDelegate:(nonnull id<ANMultiAdRequestDelegate>)

発行元 ID あり

- (nullable instancetype)
    initWithMemberId:(NSInteger)memberId
         publisherId:(NSInteger)publisherId
         andDelegate:(nullable id<ANMultiAdRequestDelegate>)delegate;

引数

変数 属性 範囲 説明
memberId NSInteger 非アトミック、読み取り専用、割り当て Required メンバー ID。 ANMultiAdRequestに含まれるすべてのAdUnitsは同一のmemberIdsである必要があります。そうでない場合、ANMultiAdRequestは拒否されます。 memberIdは、placementIdを渡すことによっても取得できます。
delegate ANMultiAdRequestDelegate nonnull 必須 関連するコールバックと情報で通知されるオブジェクト。
adUnits adUnits のリスト nonnull 省略可能 ANMultiAdRequest初期化のAdUnitsの一覧。

注:

初期化が成功した場合、SDK は YES を返し、それ以外の場合は NO を返します。

構成

ANMultiAdRequestすべての構成プロパティとメソッドは、AdUnits で使用されるものと同じタイプと使用法です。 ANMultiAdRequestでプロパティが設定されている場合、AdUnitsはそれらのプロパティを継承します。 それらは永続的ではありません。 ANMultiAdRequestがライフサイクルを完了すると、AdUnits は、ANMultiAdRequest インスタンスによってカプセル化されたAdUnitsの一覧から削除された後、ローカル プロパティ値にアクセスします。

パラメーター

パラメーター 属性 説明
memberId NSInteger 読み取り専用 メンバー ID。 MultiAdRequestに含まれるすべてのAdUnitsは同一のmemberIdsである必要があります。MultiAdRequestはインプレッション バスによって拒否されます。 memberIdは、placementIdを渡すことによっても取得できます。
location ANLocation readwrite ユーザーの場所。 Location horizontalAccuracyprecisionレベルで設定できます。 下記 の位置決め方法 を参照してください。
age NSString readwrite ユーザーの年齢。
gender ANGender readwrite ユーザーの性別。
customKeyword 配列 readwrite MultiAdRequestに適用されるカスタム キーワード。 これらのキーワードは、添付された AdUnitsに継承されます。 このリストは、各 AdUnit 内で追加のカスタム キーワードで補完できます。
AdUnit オブジェクト readwrite Add to the AdUnit item to the MultiAdRequest
countOfAdUnits NSUintetger 読み取り専用 MultiAdRequest インスタンスに含まれるAdUnits数を返します。

場所を指定する方法

setLocationWithLatitude MultiAdRequest オブジェクトの location プロパティの値を設定します。 これは、追加の precision パラメーターを使用して呼び出すことができます。 例えば、

精度パラメーターなし

- (void)setLocationWithLatitude:(CGFloat)latitude
                      longitude:(CGFloat)longitude
                      timestamp:(nullable NSDate *)timestamp
             horizontalAccuracy:(CGFloat)horizontalAccuracy;

精度パラメータあり

- (void)setLocationWithLatitude:(CGFloat)latitude
                      longitude:(CGFloat)longitude
                      timestamp:(nullable NSDate *)timestamp
             horizontalAccuracy:(CGFloat)horizontalAccuracy
                      precision:(NSInteger)precision;

パラメーター

パラメーター 範囲 説明
latitude CGFloat 必須 場所の緯度です。
longitude CGFloat 必須 場所の経度です。
timestamp NSDate 省略可能 場所が設定されたタイムスタンプ。
horizontalAccuracy CGFloat 必須 場所の不確定性の半径。
precision NSInteger 省略可能 場所の 10 進数の精度を決定します。

メソッド

  • load

    インプレッション バスにmulti-tag UTv3リクエストを送信して、含まれているすべてのAdUnitsを読み込みます。 ANMultiAdRequest インスタンスごとに、一度にアクティブにできるのは 1 つの読み込みのみです。 MultiAdRequestDelegateメソッドのいずれかが起動されると、読み込みが完了します。 成功した場合は YES を返し、失敗した場合は NO を返します。

    - (BOOL)load;
    
  • addAdUnit

    ANMultiAdRequest に AdUnit を追加します。 AdUnits memberIdMultiAdRequestに割り当てられたmemberIdと一致しない場合、またはANMultiAdRequestに含まれている他のAdUnitsmemberIdと一致しない場合、拒否されます。 ANMultiAdRequestpublisherIdが設定されている場合、publisherIdが異なるAdUnitも拒否されます。 成功した場合は YES を返し、失敗した場合は NO を返します。

    - (BOOL)addAdUnit:(nonnull id<ANAdProtocolFoundation>)adunit;
    

    引数

    パラメーター 範囲 説明
    AdUnit オブジェクト 必須 Add to the AdUnit item to the MultiAdRequest
  • removeAdUnit

    ANMultiAdRequestからAdUnitを削除します。 成功した場合は YES を返し、失敗した場合は NO を返します。

    - (BOOL)removeAdUnit:(nonnull id<ANAdProtocolFoundation>)adunit;
    

    引数

    パラメーター 範囲 説明
    AdUnit オブジェクト 必須 Add to the AdUnit item to the MultiAdRequest
  • addCustomKeywordWithKey

    ANMultiAdRequestにカスタム キーワード (keyword)を追加します。 キーと値のペアとして格納されているカスタム キーワードは、ANMultiAdRequestに含まれるAdUnitsによって継承されます。

    - (void)addCustomKeywordWithKey:(nonnull NSString *)key
                              value:(nonnull NSString *)value;
    

    引数

    パラメーター 範囲 説明
    key NSString 必須 カスタム キーワード (keyword) のキー識別子。
    value NSString 必須 カスタム キーワード (keyword) の値。
  • removeCustomKeywordWithKey

    ANMultiAdRequestからカスタム キーワード (keyword)を削除します。 削除されたキーワード (keyword)は、ANMultiAdRequestに含まれるAdUnitsによって継承されなくなります。

    - (void)removeCustomKeywordWithKey:(nonnull NSString *)key;
    

    引数

    パラメーター 範囲 説明
    key NSString 必須 削除するカスタム キーワード (keyword) のキー識別子。
  • clearCustomKeywords

    ANMultiAdRequestからすべてのカスタム キーワードを削除します。 削除されたキーワードは、ANMultiAdRequestに含まれるAdUnitsによって継承されなくなります。

    - (void)clearCustomKeywords;
    
  • stop

    要求が完了する前に ANMultiAdRequestを停止します。

    - (void)stop;
    

ANMultiAdRequestDelegate メソッド

  • multiAdRequestDidComplete

    ANMultiAdRequestの成功を返します。 成功は、含まれているすべての AdUnits が読み込まれ、明確な結果があることを示します

    - (void)multiAdRequestDidComplete:(nonnull ANMultiAdRequest *)MultiAdRequest;
    
  • multiAdRequestDidFailWithError

    ANMultiAdRequest インスタンスによって生成されたUT Requestが何らかの理由で失敗した場合は、エラー メッセージを返します。

    - (void)multiAdRequestDidFailWithError:(nonnull NSError *)error;
    

注:

[ANMultiAdRequest load] UT Requestを送信する前でも NO を返すことで失敗する可能性があります。 load が YES を返す場合は、 UT Request が開始されたことを意味し、それ以降のすべてのエラーはデリゲート メソッドを介して発生します。