Android向けリワード型広告単位APIへの移行
SDKの初期化、広告単位IDを持つリワード型広告オブジェクトの作成、広告イベントのリスナーの実装によって、LevelPlayリワード型広告単位APIに移行します。
読み終わるまでの所要時間 12 分最終更新 6日前
このガイドでは、広告単位IDをウォーターフォール識別子として使用し、SDKバージョン9.0.0時点でLevelPlay APIを統合し、リワード広告をロードおよびディスプレイする方法について説明します。
LevelPlay プラットフォームで広告単位 ID を確認します。
リワード広告をロードおよびディスプレイするには、LevelPlay メディエーションプラットフォームで利用できる広告単位 ID を使用する必要があります。
- LevelPlay アカウントで、設定> 広告ユニット に操作します。
- リワード型広告単位IDをコピーし、コードに統合します。
LevelPlay SDK の初期化
LevelPlay SDK を初期化するには、以下の手順に従います。
- 初期化の成功と失敗のコールバックを実装します。
- 必要に応じて appKey とユーザー ID を使用して LevelPlay init API を呼び出します。
LevelPlayInitRequest initRequest = new LevelPlayInitRequest.Builder(appKey) .withUserId("UserID") .build();LevelPlayInitListener initListener = new LevelPlayInitListener() { @Override public void onInitFailed(@NonNull LevelPlayInitError error) {} @Override public void onInitSuccess(LevelPlayConfiguration configuration) {}};LevelPlay.init(context, initRequest, initListener);
LevelPlay Init リスナー
onInitSuccess: 初期化が正常に完了したときにトリガーされます。この通知を受け取ったら、広告を作成してロードできます。
onInitFailed:設定が正常に取得されず、広告をロードできません。後で LevelPlay SDK を初期化してみることをお勧めします (インターネット接続が利用可能なとき、または失敗の理由が解決されたとき)。
Init | 古い機能 | 広告単位 (新規) |
|---|---|---|
| API | IronSource.init | LevelPlay.init |
| コールバック | onInitializationComplete | onInitSuccess |
| – | onInitFailed |
リワード型広告オブジェクトの作成
リワード広告オブジェクトの作成は、onInitSuccess コールバックを受信した後に実行する必要があります。
オブジェクトは、セッションを通じて複数のロードと表示をハンドルできる再利用可能なインスタンスです。作成後、同じ広告単位の広告をロードおよび表示するために使用します。
より高度な実装では、必要に応じて複数のリワード広告オブジェクトを作成できます。
// リワード広告の作成mRewardedAd = new LevelPlayRewardedAd("adUnitId");
リワードイベントに登録
作成したリワード型広告単位にリワード型リスナーを設定して、広告配信に関する情報を取得します。
- リワード広告をロードする前にリスナーを設定することをお勧めします。
- 各リワード広告には、独自のリスナー実装が必要です。
- コールバックはメインスレッドで実行されます。
// リワード広告の作成mRewardedAd = new LevelPlayRewardedAd("adUnitId");// リスナーの設定mRewardedAd.setListener(this);// LevelPlayRewardedAdListener methods@Overridepublic void onAdLoaded(@NonNull LevelPlayAdInfo adInfo) {}@Overridepublic void onAdLoadFailed(@NonNull LevelPlayAdError error) {}@Overridepublic void onAdDisplayed(@NonNull LevelPlayAdInfo adInfo) {}@Overridepublic void onAdDisplayFailed(@NonNull LevelPlayAdError error, @NonNull LevelPlayAdInfo adInfo) {}@Overridepublic void onAdClosed(@NonNull LevelPlayAdInfo adInfo) {}@Overridepublic void onAdClicked(@NonNull LevelPlayAdInfo adInfo) {}@Overridepublic void onAdInfoChanged(@NonNull LevelPlayAdInfo adInfo) {}@Overridepublic void onAdRewarded(@NonNull LevelPlayReward reward, @NonNull LevelPlayAdInfo adInfo) {}
LevelPlay リワード広告コールバック
onAdLoaded:広告が正常にロードされたときに提供されます。
onAdLoadFailed:広告のロードに失敗したときに提供されます。広告単位情報が含まれます。
onAdDisplayed:広告が表示されるときに提供されます。これはインプレッションに相当します。
onAdDisplayFailed:広告の表示に失敗したときに提供されます。
onAdRewarded:広告に報酬が支払われるときに提供されます。広告単位情報と報酬情報が含まれます。
onAdClicked(任意):ユーザーが広告をクリックしたときに提供されます。
onAdClosed:広告が閉じられたときに提供されます。
onAdInfoChanged(任意):広告情報が更新されたときに提供されます。別の広告がロードされていて、CPM/Rate が高い場合に利用できます。
コンポーネント | 古い機能 | 広告単位 (新規) |
|---|---|---|
| リスナー | IronSourceRewardedVideoEvents | LevelPlayRewardedAd |
| コールバック | onAdReady | onAdLoaded |
| onAdLoadFailed | onAdLoadFailed | |
| onAdOpened | onAdDisplayed | |
| onAdClosed | onAdClosed | |
| onAdShowFailed | onAdDisplayFailed | |
| onAdRewarded | onAdRewarded | |
| onAdClicked | onAdClicked | |
| onAdShowSucceeded | n/a (非推奨) | |
| n/a | onAdInfoChanged |
リワード型広告のロード
onInitSuccess コールバックを受信すると、リワード広告をロードする準備ができます。これは、 メソッドを使用して行う必要があります。
// 広告のロードまたはリロードmRewardedAd.loadAd();
リワード広告の表示
showAd API を使用して、onAdLoaded コールバックの受信後にリワード広告を表示できます。
プレースメントを使用している場合は、次に示すように、プレースメントの名前を API の一部として共有します。
// 配置なしで広告を表示 mRewardedAd.showAd(this);// 配置で広告を表示 mRewardedAd.showAd(this, placementName);
広告の準備ができているか確認
表示の失敗を避け、広告が正しく表示されるようにするために、showAd API を呼び出す前に以下の API を使用することをお勧めします。
isAdReady – 広告のロードが成功し、広告単位が上限に達していない場合は true、それ以外の場合は false を返します。
isPlacementCapped – 有効な配置に上限がある場合に true を返します。配置が有効でないか、上限がない場合、この API は false を返します。
// 広告の準備ができていることと、配置に上限がないことを確認します。 if(mRewardedAd.isAdReady() && !LevelPlayRewardedAd.isPlacementCapped(placementName)) { mRewardedAd.showAd(this, placementName);}
広告がプレイヤーに正常に表示されたら、Rewarded Ad のロード ステップを繰り返して、別の広告をロードできます。一度に 1 つの広告をロードするときに、新しい広告エンティティを作成する必要はありません。
ユーザーの報酬
LevelPlay SDK は、ユーザーがビデオを正常に視聴するたびに onAdRewarded を起動します。
onAdRewarded と onAdClosed は非同期です。onAdClosed 後に onAdRewarded が起動された場合でもゲーム内報酬を付与するようにリスナーを設定してください。
@Overridepublic void onAdRewarded(@NonNull LevelPlayReward reward, @NonNull LevelPlayAdInfo adInfo) { // ユーザーに報酬を付与するロジックを実装します String name = reward.getName(); int amount = reward.getAmount();}
複数の広告単位リワード型API
コンポーネント | 古い機能 | 広告単位 (新規) |
|---|---|---|
| クラス | IronSource | LevelPlayRewardedAd |
| API | loadRewardedVideo | loadAd |
| showRewardedVideo | showAd | |
| isRewardedVideoPlacementCapped | isPlacementCapped | |
| isRewardedVideoAvailable | isAdReady | |
| placement.getRewardName | reward.name | |
| placement.getRewardAmount | reward.amount |
リワード広告の完全な実装例
public class RewardedAdActivity extends Activity implements LevelPlayRewardedAdListener { private LevelPlayRewardedAd mRewardedAd void createRewardedAd() { mRewardedAd = new LevelPlayRewardedAd("adUnitId"); mRewardedAd.setListener(this); } void loadRewardedAd() { // 広告のロードまたはリロード mRewardedAd.loadAd(); } void showRewardedAd() { if (mRewardedAd.isAdReady()) { mRewardedAd.showAd(this); } } void showRewardedAd(@NonNull String placementName) { // 広告の準備ができていることと、配置に上限がないことを確認します。 if (mRewardedAd.isAdReady() && !LevelPlayRewardedAd.isPlacementCapped(placementName)) { mRewardedAd.showAd(this, placementName); } } // LevelPlayRewardedAdListener methods @Override public void onAdLoaded(@NonNull LevelPlayAdInfo adInfo) {} @Override public void onAdLoadFailed(@NonNull LevelPlayAdError error) {} @Override public void onAdDisplayed(@NonNull LevelPlayAdInfo adInfo) {} @Override public void onAdClosed(@NonNull LevelPlayAdInfo adInfo) {} @Override public void onAdClicked(@NonNull LevelPlayAdInfo adInfo) {} @Override public void onAdDisplayFailed(@NonNull LevelPlayAdError error, @NonNull LevelPlayAdInfo adInfo) {} @Override public void onAdInfoChanged(@NonNull LevelPlayAdInfo adInfo) {} @Override public void onAdRewarded(@NonNull LevelPlayReward reward, @NonNull LevelPlayAdInfo adInfo) {}}