ドキュメント

iOSのリワード広告単位APIへの移行

動画リワード広告単位をiOSアプリケーションに実装するには、広告単位の初期化、デリゲートの設定、広告イベントの処理を行います。
読み終わるまでの所要時間 13 分最終更新 8日前

このガイドでは、広告単位IDをウォーターフォール識別子として使用し、SDKバージョン9.0.0時点でLevelPlay APIを統合し、リワード広告をロードおよびディスプレイする方法について説明します。
重要
現在使用されているインテグレーション方法 (Ironsource init、Ironsource ロードリワードリスナー、Rewarded リスナー) の代わりに、この記事で紹介した API を使用します。API の置き換えについては、API Comparison セクションを参照してください。
詳細設定規制設定は変更されておらず、LevelPlay SDK の初期化の前後にサポートされます。

LevelPlay プラットフォームで広告単位 ID を確認します。

リワード広告をロードおよびディスプレイするには、LevelPlay メディエーションプラットフォームで利用できる広告単位 ID を使用する必要があります。
  1. LevelPlay アカウントで、設定> 広告ユニット に操作します。
  2. リワード型広告単位IDをコピーし、コードに統合します。

LevelPlay SDK の初期化

LevelPlay SDK を初期化するには、以下の手順に従います。
  1. 完了ハンドラーの成功と失敗を定義します。
  2. セッションで初期化する広告フォーマットのリストを定義します。これには、複数の広告単位ではない API を使用するすべての広告フォーマットを含める必要があります。
  3. appKey、広告フォーマット、およびユーザー ID (必要な場合) を使用して LevelPlay init API を呼び出します。
// キーダーを作成します。ユーザー ID がある場合は追加LPMInitRequestBuilder *requestBuilder = [[LPMInitRequestBuilder alloc] initWithAppKey:@"appKey"];[requestBuilder withUserId:@"UserId"];// 初期リクエストのビルドLPMInitRequest *initRequest = [requestBuilder build];// 準備したリクエストで LevelPlay を初期化[LevelPlay initWithRequest:initRequest 完了:^(LPMConfiguration *_Nullable config, NSError *_Nullable error){ if(error) { // 初期化期化中にエラーが発生しました。必要なアクションを実行するか再試行してください } else { // 初期化に成功しました。バナー広告のロードやその他のタスクを実行できるようになりました }}];

初期化期化の結果

Success:初期化が正常に完了したときにトリガーされます。この通知を受け取ったら、広告を作成してロードできます。
エラー: 設定が正常に取得されなかったため、広告をロードできません。後で LevelPlay SDK の初期化を試してみることをお勧めします (インターネット接続が利用可能なとき、または失敗の理由が解決されたとき)。

コンポーネント

古い機能

広告単位 (新規)

APIIronSource.initWithAppKeyLevelPlay.initWithRequest
init 結果onInitializationComplete完了
error

リワード広告の作成

リワード型広告オブジェクトの作成は、完了結果を受信してから実行する必要があります。
オブジェクトは、セッションを通じて複数のロードと表示をハンドルできる再利用可能なインスタンスです。作成後、同じ広告単位の広告をロードおよび表示するために使用します。
より高度な実装では、必要に応じて複数のリワード広告オブジェクトを作成できます。
// リワード広告の作成self.rewardedAd = [[LPMRewardedAd alloc] initWithAdUnitId:@"adUnitId"];

リワード型デリゲートの実装

作成したリワード型広告単位にLPMRewardedAdDelegateを実装して、広告配信に関する情報を取得します。
  • リワード広告をロードする前にリスナーを設定することをお勧めします。
  • 各リワード広告には、独自のリスナー実装が必要です。
  • コールバックはメインスレッドで実行されます。
// リワード広告の作成self.rewardedAd = [[LPMRewardedAd alloc] initWithAdUnitId:@"adUnitId"]; // 実装デリゲートself.rewardedAd.delegate = self;#pragma mark - LPMRewardedAdDelegate メソッド- (void)didLoadAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didFailToLoadAdWithAdUnitId:(NSString *)adUnitId error:(NSError *)error {}- (void)didChangeAdInfo:(LPMAdInfo *)adInfo {}- (void)didDisplayAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didFailToDisplayAdWithAdInfo:(LPMAdInfo *)adInfo error:(NSError *)error {}- (void)didClickAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didCloseAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didRewardAdWithAdInfo:(LPMAdInfo *)adInfo reward:(LPMReward *)reward {}

LevelPlay リワード広告イベント

didLoadAd:広告が正常にロードされたときに提供されます。
didFailToLoadAd:広告のロードに失敗したときに提供されます。広告単位情報が含まれます。
didDisplayAd:広告が表示されるときに提供されます。これはインプレッションに相当します。
didFailToDisplayAd:広告の表示に失敗したときに提供されます。
didRewardAd:広告に報酬が支払われるときに提供されます。広告単位情報と報酬情報が含まれます。
didClickAd (任意):ユーザーが広告をクリックしたときに提供されます。
didCloseAd:広告が閉じられたときに提供されます。
didChangeAdInfo (任意):広告情報が更新されたときに提供されます。別の広告がロードされていて、CPM/Rate が高い場合に利用できます。

コンポーネント

古い機能

広告単位 (新規)

デリゲートLevelPlayRewardedAdDelegateLPMRewardedAdDelegate
イベントonAdReadydidLoadAd
onAdLoadFaileddidFailToLoadAd
onAdOpeneddidDisplayAd
onAdCloseddidCloseAd
onAdShowFaileddidFailToDisplayAd
onAdRewardeddidRewardAd
onAdClickeddidClickAd
onAdShowSucceeded– (非推奨)
didChangeAdInfo

リワード型広告のロード

onInitSuccess コールバックを受信すると、リワード広告をロードする準備ができます。これは、 メソッドを使用して行う必要があります。
// 広告のロードまたはリロード[self.rewardedAd loadAd];

リワード広告の表示

showAd API を使用して、onAdLoaded コールバックの受信後にリワード広告を表示できます。 プレースメントを使用している場合は、次に示すように、プレースメントの名前を API の一部として共有します。
// 配置なしで表示 [self.rewardedAd showAdWithViewController:self placementName:nil];// 配置で表示 [self.rewardedAd showAdWithViewController:self placementName:placementName];

広告の準備ができているか確認

表示の失敗を避け、広告が正しく表示されるようにするために、showAd API を呼び出す前に以下の API を使用することをお勧めします。
isAdReady:広告が正常にロードされ、広告単位が上限に達していない場合は true、それ以外の場合は false を返します。
isPlacementCapped: 有効な配置に上限がある場合に true を返します。配置が有効でないか、上限がない場合、この API は false を返します。
// 広告の準備ができていることと、配置に上限がないことを確認します。 if ([self.rewardedAd isAdReady] && ![LPMRewardedAd isPlacementCapped:placementName]) { [self.rewardedAd showAdWithViewController:self placementName:placementName];}
広告がプレイヤーに正常に表示されたら、Rewarded Ad のロード ステップを繰り返して、別の広告をロードできます。一度に 1 つの広告をロードするときに、新しい広告エンティティを作成する必要はありません。

ユーザーの報酬

LevelPlay SDK は、ユーザーがビデオを正常に視聴するたびに didRewardAd を起動します。
didRewardAddidCloseAd は非同期です。didCloseAd の後で didRewardAd が起動された場合でもゲーム内報酬を付与するようにリスナーを設定してください。
- (void)didRewardAdWithAdInfo:(LPMAdInfo *)adInfo 報酬:(LPMReward *)reward { // ユーザーに報酬を付与するロジックを実装します NSString *name = reward.name; NSInteger *amount = reward.amount;}

複数の広告単位リワード型API

古い機能

広告単位 (新規)

クラスIronSourceLPMRewardedAd
APIloadRewardedVideoloadAd
showRewardedVideoshowAd
isRewardedVideoPlacementCappedisPlacementCapped
isRewardedVideoAvailableisAdReady
placement.getRewardNamereward.name
placement.getRewardAmountreward.amount

リワード広告の完全な実装例

NS_ASSUME_NONNULL_BEGIN@interface RewardedAdViewController () <LPMRewardedAdDelegate>@プロパティ(非アトミック、強)LPMRewardedAd *rewardedAd;@end@implementation RewardedAdViewController- (void)createRewardedAd { self.rewardedAd = [[LPMRewardedAd alloc] initWithAdUnitId:@"adUnitId"]; self.rewardedAd.delegate = self;}- (void)loadRewardedAd { // 広告のロードまたはリロード [self.rewardedAd loadAd];}- (void)showRewardedAd { if ([self.rewardedAd isAdReady]) { [self.rewardedAd showAdWithViewController:self placementName:NULL]; }}- (void)showRewardedAdWithPlacementName:(NSString *)placementName { // 広告の準備ができていることと、配置に上限がないことを確認します。 if ([self.rewardedAd isAdReady] &amp;&amp; ![LPMRewardedAd isPlacementCapped:placementName]) { [self.rewardedAd showAdWithViewController:self placementName:placementName]; }}#pragma mark - LPMRewardedAdDelegate メソッド- (void)didLoadAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didFailToLoadAdWithAdUnitId:(NSString *)adUnitId error:(NSError *)error {}- (void)didChangeAdInfo:(LPMAdInfo *)adInfo {}- (void)didDisplayAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didFailToDisplayAdWithAdInfo:(LPMAdInfo *)adInfo error:(NSError *)error {}- (void)didClickAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didCloseAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didRewardAdWithAdInfo:(LPMAdInfo *)adInfo reward:(LPMReward *)reward {}@endNS_ASSUME_NONNULL_END