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