概要
Vungle Banner は現在ベータ段階にあります。起動を成功させる方法については、アカウントマネージャーに直接お問い合わせください。
Vungle SDK v6.5.1 以降、Vungle はバナー広告をサポートしています。MREC 広告とバナー広告の両方で API バージョン 16 以降が必要になります。
MREC 広告と同様に、バナー動画広告は、アプリのレイアウト内の任意の場所を占めるレクタングルの広告で、通常は画面の上部または下部に表示されるため、ユーザーは広告の再生中にアプリを引き続き操作できます。バナー広告をレンダリングするためのコンテナ サイズは、320x50、300x50、または 728x90 (タブレットの場合) に設定できます。
バナーサイズ | ディメンション |
|
320x50 |
|
300x50 |
|
728x90 (タブレット用) |
手順 1. 基本的な統合を完了する
バナー広告を Android または Amazon アプリに統合するには、基本的な統合の記事の手順に従って開始します。この記事には補足情報が含まれており、基本的な統合が完了していることを前提としています。
手順 2. イベント リスナーを実装する
広告読み込みイベント用の LoadAdCallback
と広告再生イベント用の PlayAdCallback
を実装することで一般的なコールバックを使用したり、loadAd
と playAd
を呼び出す場合にはインライン コールバックを使用したりできます。
LoadAdCallback を実装する
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
}
};
// 6.4.x & below
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, Throwable throwable) {
// Ad has failed to load for the placement
}
};
オーバーライド可能なメソッド | 説明 |
---|---|
onAdLoad(String id) |
広告が正常に読み込まれ、広告配置用に再生されるときに呼び出されます。 |
onError(String id) |
広告の再生中にエラーが発生したときに呼び出されます。VungleException の getLocalizedMessage からのエラー メッセージを確認し、getExceptionCode をデバッグに使用できます。 |
PlayAdCallback を実装する
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
}
};
// 6.5.x & below
private final PlayAdCallback vunglePlayAdCallback = new PlayAdCallback() {
@Override
public void onAdStart(String placementReferenceId) {
// Ad experience started
}
// Deprecated
@Override
public void onAdEnd(String placementReferenceId, boolean completed, boolean isCTAClicked) {
// Invoked when the ad experience is completed
// isCTAClicked flag indicates whether CTA download button has been triggered
// completed flag will indicate whether user has watched 80% of video or longer.
}
@Override
public void onError(String placementReferenceId, 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) |
広告の再生中にエラーが発生したときに呼び出されます。VungleException の getLocalizedMessage からのエラー メッセージを確認し、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
を追加するのみで十分です。
ただし、まれに、ビューがリサイクルされるか (RecyclerView
、ListView
など)、手動で可視性を処理する必要があります (一部の古い 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
は正しく動作しません。ユーザーが広告を画面の表示領域を超えてスクロールして戻った瞬間に広告は終了し、表示されなくなります。
このような場合に、開発者が 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
オプションを示します。
オプション | 説明 |
|
対象のアプリケーションに一致するオーディオ設定を使用して動画を開始する場合は「false」、アプリケーションに関係なくミュート状態で動画を開始する場合は「true」を設定します。 |
|
同じセッション内で再生された広告の数をトラッキングするための序数カウントを整数値で指定します。 |
注: 複数の広告に対して同じ AdConfig
オブジェクトを使用できます。
ベスト プラクティス
- バナー広告を表示する前に、親アクティビティが終了しているかどうかを必ず確認してから
VungleBanner
をビューにバインドするようにしてください。if (activity != null && activity.isFinishing()) { return; }
-
VungleBanner
のLayoutParams
を変更しないでください。変更すると、バナーの表示方法に悪影響を与え、広告が表示されなくなる可能性があります。 - 要求した広告よりも小さいサイズのコンテナに広告を配置しないでください。通常のバナー (320×50) を要求している場合は、親コンテナが 320dp x 50dp 以上であることを確認してください。