iOS のマルチ広告要求

概要

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

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

初期化

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

注:

ANMultiAdRequest インスタンスは、独自の値とは異なるmemberId値を持つAdUnitsを拒否します。

初期化メソッド

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

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 メソッドを呼び出します

初期化を有効にし、 load メソッドを 1 行のコードで呼び出します。 上記のプロセスと同様に、インスタンスは 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 nonatomic, readonly, assign 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 Readonly メンバー 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 に追加する AdUnit 項目 MultiAdRequest
countOfAdUnits NSUintetger Readonly MultiAdRequest インスタンスに含まれるAdUnitsの数を返します。

Location メソッド

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 オブジェクト 必須 に追加する AdUnit 項目 MultiAdRequest
  • removeAdUnit

    ANMultiAdRequestからAdUnitを削除します。 成功時の YES と失敗時の NO を返します。

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

    引数

    パラメーター 範囲 説明
    AdUnit オブジェクト 必須 に追加する AdUnit 項目 MultiAdRequest
  • addCustomKeywordWithKey

    カスタム キーワード (keyword)をANMultiAdRequestに追加します。 キーと値のペアとして格納されたカスタム キーワードは、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を返すことによっても失敗する可能性があります。 読み込みが YES を返す場合は、 UT Request が開始されたことを意味し、それ以降のすべてのエラーはデリゲート メソッドを介して発生します。