概要
この記事では、マルチ広告要求 (ANMultiAdRequest) を開始および構成するための手順とコード サンプルについて説明します。
ANMultiAdRequest では、1 つのユニバーサル タグ (UTv3) 要求を使用して複数のオークションを開始できます。その結果は、1 つのサーバー応答で返されます。
ANMultiAdRequestは、 AdUnitと同様に、 ANAdProtocolのサブセットを実装します。 これにより、ANMultiAdRequestは、AdUnitの種類ごとに同じ仕様を使用して、異なるAdUnits (バナー、ネイティブ、ビデオなど) の種類と動作を採用できます。 カスタム キーワードは、 ANMultiAdRequest に割り当てることができ、含まれている AdUnitsによって継承されます。
初期化
ユーザーは、3 つの初期化方法のいずれかから選択できます。
ANMultiAdRequestを初期化するには、引数としてmemberIdとdelegate オブジェクトが必要です。
memberIdとdelegateは、インスタンスごとに 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 は、 horizontalAccuracy と precision レベルで設定できます。 以下 の「場所の方法」を 参照してください。 |
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;addAdUnitANMultiAdRequest に
AdUnitを追加します。AdUnitsmemberIdがMultiAdRequestに割り当てられているmemberIdと一致しない場合、またはANMultiAdRequestに含まれる他のAdUnitsのmemberIdと一致しない場合は拒否されます。ANMultiAdRequestでpublisherIdが設定されている場合、別のpublisherIdを持つAdUnitも拒否されます。 成功時のYESと失敗時のNOを返します。- (BOOL)addAdUnit:(nonnull id<ANAdProtocolFoundation>)adunit;引数
パラメーター 型 範囲 説明 AdUnitオブジェクト 必須 に追加する AdUnit項目MultiAdRequestremoveAdUnitANMultiAdRequestからAdUnitを削除します。 成功時のYESと失敗時のNOを返します。- (BOOL)removeAdUnit:(nonnull id<ANAdProtocolFoundation>)adunit;引数
パラメーター 型 範囲 説明 AdUnitオブジェクト 必須 に追加する AdUnit項目MultiAdRequestaddCustomKeywordWithKeyカスタム キーワード (keyword)を
ANMultiAdRequestに追加します。 キーと値のペアとして格納されたカスタム キーワードは、ANMultiAdRequestに含まれるAdUnitsによって継承されます。- (void)addCustomKeywordWithKey:(nonnull NSString *)key value:(nonnull NSString *)value;引数
パラメーター 型 範囲 説明 keyNSString 必須 カスタム キーワード (keyword)のキー識別子。 valueNSString 必須 カスタム キーワード (keyword)の値。 removeCustomKeywordWithKeyANMultiAdRequestからカスタム キーワード (keyword)を削除します。 削除されたキーワード (keyword)は、ANMultiAdRequestに含まれるAdUnitsによって継承されなくなります。- (void)removeCustomKeywordWithKey:(nonnull NSString *)key;引数
パラメーター 型 範囲 説明 keyNSString 必須 削除するカスタム キーワード (keyword)のキー識別子。 clearCustomKeywordsANMultiAdRequestからすべてのカスタム キーワードを削除します。 削除されたキーワードは、ANMultiAdRequestに含まれるAdUnitsによって継承されなくなります。- (void)clearCustomKeywords;stop要求が完了する前に、
ANMultiAdRequestを停止します。- (void)stop;
ANMultiAdRequestDelegate メソッド
multiAdRequestDidCompleteANMultiAdRequestの成功を返します。 成功は、含まれるすべてのAdUnitsが読み込まれ、明確な結果を持っていることを示します- (void)multiAdRequestDidComplete:(nonnull ANMultiAdRequest *)MultiAdRequest;multiAdRequestDidFailWithError何らかの理由で、
ANMultiAdRequestインスタンスによって生成されたUT Requestが失敗した場合にエラー メッセージを返します。- (void)multiAdRequestDidFailWithError:(nonnull NSError *)error;
注:
[ANMultiAdRequest load]また、UT Requestを送信する前にNOを返すことによっても失敗する可能性があります。 読み込みが YES を返す場合は、 UT Request が開始されたことを意味し、それ以降のすべてのエラーはデリゲート メソッドを介して発生します。