バナー広告を統合する

概要

Vungle Banner は現在ベータ段階にあります。起動を成功させる方法については、アカウントマネージャーに直接お問い合わせください。

Vungle SDK v6.5.1 以降、Vungle はバナー広告をサポートしています。MREC 広告とバナー広告の両方で API バージョン 16 以降が必要になります。

MREC 広告と同様に、バナー動画広告は、アプリのレイアウト内の任意の場所を占めるレクタングルの広告で、通常は画面の上部または下部に表示されるため、ユーザーは広告の再生中にアプリを引き続き操作できます。バナー広告をレンダリングするためのコンテナ サイズは、320x50、300x50、または 728x90 (タブレットの場合) に設定できます。

バナーサイズ ディメンション

AdConfig.AdSize.BANNER

320x50

AdConfig.AdSize.BANNER_SHORT

300x50

AdConfig.AdSize.BANNER_LEADERBOARD

728x90 (タブレット用)

手順 1. 基本的な統合を完了する

バナー広告を Android または Amazon アプリに統合するには、基本的な統合の記事の手順に従って開始します。この記事には補足情報が含まれており、基本的な統合が完了していることを前提としています。

手順 2. イベント リスナーを実装する

広告読み込みイベント用の LoadAdCallback と広告再生イベント用の PlayAdCallback を実装することで一般的なコールバックを使用したり、loadAdplayAd を呼び出す場合にはインライン コールバックを使用したりできます。

LoadAdCallback を実装する

6.5.0 以降 レガシー
private final LoadAdCallback vungleLoadAdCallback = new LoadAdCallback() { 
  @Override
  public void onAdLoad(String id) { 
    // Ad has been successfully loaded for the placement
  } 

  @Override 
  public void onError(String id, VungleException exception) { 
    // Ad has failed to load for the placement
  }
};
オーバーライド可能なメソッド 説明
onAdLoad(String id) 広告が正常に読み込まれ、広告配置用に再生されるときに呼び出されます。
onError(String id) 広告の再生中にエラーが発生したときに呼び出されます。VungleExceptiongetLocalizedMessage からのエラー メッセージを確認し、getExceptionCode をデバッグに使用できます

PlayAdCallback を実装する

6.6.0 以降 レガシー
private final PlayAdCallback vunglePlayAdCallback = new PlayAdCallback() {
  @Override
  public void onAdStart(String id) { 
    // Ad experience started
  }

  @Override
  public void onAdEnd(String id) {
    // Ad experience ended
  }

  @Override
  public void onAdClick(String id) {
    // User clicked on ad
} @Override public void onAdRewarded(String id) { // User earned reward for watching an ad } @Override public void onAdLeftApplication(String id) { // User has left app during an ad experience } @Override public void onError(String id, VungleException exception) { // Ad failed to play } };
オーバーライド可能なメソッド 説明
onAdStart(String id) 広告が正常に起動し、デバイスに表示されたときに呼び出されます。
onAdEnd(String id) 制御がホスティングアプリに戻される直前、広告エクスペリエンス全体が完了したときに呼び出されます。
onAdClick(String id) ユーザーが動画広告またはダウンロード ボタンをクリックしたときに呼び出されます。
onAdRewarded(String id) ユーザーが報酬型動画のうち 80% を再生し、報酬の対象となるときに呼び出されます。ユーザーへの報酬はここで行われ、報酬型広告配置に対してのみトリガーされます。
onAdLeftApplication(String id) 広告のストア ページを開くなど、広告エクスペリエンスが完了する前にユーザーがアプリを離れたときに呼び出されます。
onAdError(String id, VungleException exception) 広告の再生中にエラーが発生したときに呼び出されます。VungleExceptiongetLocalizedMessage からのエラー メッセージを確認し、getExceptionCode をデバッグに使用できます

手順 3. バナー広告を読み込み、表示し、閉じる

バナー広告を読み込む

バナー広告の読み込みは、他の広告フォーマットの場合とは動作が異なります。広告の可用性を読み込んだり、再生したりするために使用する特定の Banners API があります。読み込むバナーのサイズを指定する必要があります。SDK は、ダッシュボードで構成した時間間隔でバナーを自動的に更新します。また、バナー フィードをサポートするように広告配置を設定する必要があるため、Vungle アカウントマネージャーに連絡して広告配置用のバナー広告を有効にしてください。

  • loadBanner メソッドを呼び出してバナーを読み込みます。
    Banners.loadBanner("BANNER_ID", AdConfig.AdSize.BANNER, vungleLoadAdCallback);
  • canPlayAd メソッドを呼び出してバナー広告の可用性を確認します。
    Banners.canPlayAd(ad.placementReferenceId, AdConfig.AdSize.BANNER);

バナー広告を表示する

ビューのサイズは固定されているため、バナー広告の表示に使用するコンテナを、サポートされているサイズ (320x50、300x50、728x90 (タブレットの場合)) のいずれかに指定する必要があります。画面上のどこにでもビューを配置できます。このコンテナは LayOut です。このサイズは、使用しているバナー サイズより大きくする必要があります。この LayOut は、画面上のどこにでも配置することができます。次に、使用しているバナーのサイズを Banners API を介して渡す必要があります。

Banners.loadBanner を呼び出して表示するサイズを指定するときにこのオブジェクトを渡し、Banners.getBanner を使用して Banners 広告オブジェクトを取得します。最後に、addView メソッドを呼び出して、コンテナをバナー広告に関連付けます。

private RelativeLayout bannerContainer = findViewById(...);
// Check for banner ad availability and display
if (Banners.canPlayAd("BANNER_ID", AdConfig.AdSize.BANNER)) {
  VungleBanner vungleBanner = Banners.getBanner("BANNER_ID", AdConfig.AdSize.BANNER, vunglePlayAdCallback);
  bannerContainer.addView(vungleBanner);
}

バナー広告を閉じる

バナー広告ビューはコンテナ ビューに追加されるため、広告ビューを画面から消す場合、アクティビティやフラグメントを破棄する場合、または親のビュー コンテナを再利用する場合や破棄する場合は、バナー広告ビューも終了する必要があります。前の広告を閉じずに別のバナー広告を再生しようとすると、アプリケーション内で予期しない動作が発生することがあります。

vungleBanner.destroyAd();

手順 4. 高度な制御に VungleBanner API を使用する (オプション)

ほとんどの場合、上記の統合で十分であり、VungleBanner が管理されます。ただし、VungleBanner ビューがリストまたは RecyclerView 内にある場合、管理対象の VungleBanner は正しく動作しません。ユーザーが広告を画面の表示領域を超えてスクロールして戻ってきた瞬間に広告は終了し、表示されなくなります。このような場合のために、VungleBanner をより細かく制御するための高度な API が提供されています。

VungleBanner クラス API

これらの API により、開発者は、開発者アプリケーション内でさまざまなライフサイクル イベントを通じて VungleBanner を処理する方法を細かく制御できます。ほとんどのユース ケースでは、開発者はこれらのメソッドを呼び出す必要はありません。親ビューに VungleBanner を追加するのみで十分です。

ただし、まれに、ビューがリサイクルされるか (RecyclerViewListView など)、手動で可視性を処理する必要があります (一部の古い Android デバイスでは、WebView が画面の表示領域を超えて出た場合でも自動的に一時停止されません)。

名前 役割 備考
disableLifeCycleManagement(boolean disabled) バナーの自動管理を無効にする場合に呼び出します renderAd と setAdVisibility を機能させるには、「true」に設定する必要があります
renderAd* 広告が表示されていない場合は、広告をレンダリングします 新しい広告を読み込むこともできます
setAdVisibility* バナーが画面に表示されているときにビュー コンテナに通知します バナーを一時停止および再開します
destroyAd 不要になったときに呼び出して破棄すると、ビュー コンテナは使用できなくなります バナー リソースを解放します
finishAd* 現在の広告を停止し、レポートを送信して、後で別の広告を読み込めるようにします (RecyclerView または ListView への特定の統合にのみ適用可能) バナー リソースを解放します

*この API を使用する前に vungleBannerAd.disableLifeCycleManagement(true) を呼び出す必要があります。

管理対象および管理対象外の VungleBanner ビュー

VungleBanner を取得すると、デフォルトでは管理対象の VungleBanner ビューになります。つまり、このビューを親コンテナに追加すると、Vungle は、広告を表示するタイミング、広告を破棄するタイミング、およびレポートを送信するタイミングを制御します。可視性イベントも処理され、開発者はバナー ビュー オブジェクトが画面に表示されているかどうかを SDK に通知する必要はありません。開発者がリサイクル可能なビューまたは ViewHolder パターン内に VungleBanner ビューを持っていない場合、これは、VungleBanner を使用するための推奨される方法です。

VungleBanner ビューが ListView または RecyclerView 内にある場合、管理対象の VungleBanner は正しく動作しません。ユーザーが広告を画面の表示領域を超えてスクロールして戻った瞬間に広告は終了し、表示されなくなります。

BannerFlowChart.png

このような場合に、開発者が VungleBanner のライフサイクルを手動で処理できるように disableLifeCycleManagement(boolean disable) API を追加しました。

VungleBanner をビューに追加する前、またはビューをバインドする前に、次のように設定します。

vungleBannerAd.disableLifeCycleManagement(boolean disabled)

以下を呼び出す必要があります。

  • VungleBanner.renderAd() (ビューがバインドされている場合)
  • VungleBanner.setAdVisibility(true|false) (広告がリサイクルされた場合、または表示されなくなった場合)
  • VungleBanner.destroyAd() (VungleBanner オブジェクトが不要になった場合)

手順 5. バナー広告をカスタマイズする (オプション)

新しい adConfig オブジェクトを playAd に渡すことにより、再生する個々の広告をカスタマイズすることができます。AdConfig オブジェクトが null の場合、広告はデフォルトの構成設定で再生されます。null ではない場合は、AdConfig セッターの設定をオーバーライドします。以下に、AdConfig の使用例を示します。

Vungle.playAd(placementReferenceID, adConfig, vunglePlayAdCallback);

上記の例では、カスタマイズされた構成オプションを含む adConfig オブジェクトを使用しています。以下のように AdConfig オブジェクトを設定します。

AdConfig adConfig = new AdConfig();
adConfig.setAdOrientation(AdConfig.AUTO_ROTATE);
adConfig.setMuted(true);
Vungle.playAd(placementReferenceID, adConfig, vunglePlayAdCallback);

以下の表に、バナー広告で使用可能な AdConfig オプションを示します。

オプション 説明

setMuted

対象のアプリケーションに一致するオーディオ設定を使用して動画を開始する場合は「false」、アプリケーションに関係なくミュート状態で動画を開始する場合は「true」を設定します。

setOrdinal

同じセッション内で再生された広告の数をトラッキングするための序数カウントを整数値で指定します。

注: 複数の広告に対して同じ AdConfig オブジェクトを使用できます。

ベスト プラクティス

  1. バナー広告を表示する前に、親アクティビティが終了しているかどうかを必ず確認してから VungleBanner をビューにバインドするようにしてください。
    if (activity != null && activity.isFinishing()) {
      return;
    }
  2. VungleBannerLayoutParams を変更しないでください。変更すると、バナーの表示方法に悪影響を与え、広告が表示されなくなる可能性があります。
  3. 要求した広告よりも小さいサイズのコンテナに広告を配置しないでください。通常のバナー (320×50) を要求している場合は、親コンテナが 320dp x 50dp 以上であることを確認してください。

高度な統合のためのサンプル コード

VungleBannerAdAdapter.java

Questions?

Need further assistance, feel free to reach out to us, we’re here to help!

この記事は役に立ちましたか?