メインコンテンツまでスキップ

動画リワード広告(v4.4.2以前)


実装手順

前提条件

  • VAMP SDKがインポート済み
備考

まだVAMP SDKのインポートがお済みでない場合はこちらをご参考ください。

VAMPRewardedAdオブジェクトを初期化する

動画リワード広告を表示するためにはまずVAMPRewardedAdオブジェクトを初期化する必要があります。

次のコードスニペットでは、MainActivityonCreateメソッド内でVAMPRewardedAdオブジェクトを初期化しています。

Java

import jp.supership.vamp.VAMPRewardedAd;

public class MainActivity extends AppCompatActivity {

private static final String VAMP_AD_ID = "*****";
private VAMPRewardedAd rewardedAd;

@Override
protected void onCreate(Bundle savedInstanceState) {
...
rewardedAd = new VAMPRewardedAd(this, VAMP_AD_ID);
}
}

Kotlin

import jp.supership.vamp.*

const val VAMP_AD_ID = "*****"

class MainActivity : AppCompatActivity() {

private lateinit var rewardedAd: VAMPRewardedAd

override fun onCreate(savedInstanceState: Bundle?) {
...
rewardedAd = VAMPRewardedAd(this, VAMP_AD_ID)
}
}

***** にAdGenerationの広告枠IDを設定して実装してください。

VAMPRewardedAd オブジェクトを初期化するためには広告枠ID(コードスニペットではVAMP_AD_ID)が必要となります。

VAMPListenerを実装する

VAMPListenerインタフェースを実装することにより、各広告イベントを受け取ることができます。

Java

import jp.supership.vamp.VAMPError;
import jp.supership.vamp.VAMPListener;
import jp.supership.vamp.VAMPRewardedAd;

public class MainActivity extends AppCompatActivity {

private static final String VAMP_AD_ID = "*****";
private VAMPRewardedAd rewardedAd;

@Override
protected void onCreate(Bundle savedInstanceState) {
...
// VAMPListenerをセット
rewardedAd.setVAMPListener(new AdListener());
}

private class AdListener implements VAMPListener {
@Override
public void onReceived() {
// 広告表示の準備完了
}

@Override
public void onFailedToLoad(VAMPError vampError) {
// 広告準備に失敗
}

@Override
public void onFailedToShow(VAMPError vampError) {
// 動画の表示に失敗
}

@Override
public void onOpened() {
// 動画が表示したタイミングで通知
// アドネットワークによって通知タイミングが異なります(動画再生直前、または動画再生時)
}

@Override
public void onCompleted() {
// 動画再生正常終了(インセンティブ付与可能)
}

@Override
public void onClosed(boolean clicked) {
// 動画プレーヤーやエンドカードが表示終了
// <注意:ユーザキャンセルなども含むので、
// インセンティブ付与はonCompletedで判定してください>
}

@Override
public void onExpired() {
// 有効期限オーバー
// <注意:onReceivedを受けてからの有効期限が切れました。
// showするには再度loadを行う必要が有ります>
}
}
}

Kotlin

import jp.supership.vamp.*

const val VAMP_AD_ID = "*****"

class MainActivity : AppCompatActivity() {

private lateinit var rewardedAd: VAMPRewardedAd

override fun onCreate(savedInstanceState: Bundle?) {
...
// VAMPListenerをセット
rewardedAd.setListener(AdListener())
}

inner class AdListener : VAMPListener {
override fun onReceived() {
// 広告表示の準備完了
}

override fun onFailedToLoad(vampError: VAMPError?) {
// 広告準備に失敗
}

override fun onFailedToShow(vampError: VAMPError?) {
// 動画の表示に失敗
}

override fun onOpened() {
// 動画が表示したタイミングで通知
// アドネットワークによって通知タイミングが異なります(動画再生直前、または動画再生時)
}

override fun onCompleted() {
// 動画再生正常終了(インセンティブ付与可能)
}

override fun onClosed(clicked: Boolean) {
// 動画プレーヤーやエンドカードが表示終了
// <注意:ユーザキャンセルなども含むので、
// インセンティブ付与はonCompletedで判定してください>
}

override fun onExpired() {
// 有効期限オーバー
// <注意:onReceivedを受けてからの有効期限が切れました。
// showするには再度loadを行う必要が有ります>
}
}
}

各広告イベントの詳細については、以下の表をご覧ください。

Note

表示中のイベント(onOpened, onCompleted)の発生タイミングはアドネットワークにより異なります。
また、onClosedclickedフラグがtrue となる条件もアドネットワークにより異なります。

メソッド名説明
onReceived広告の取得に成功すると通知されます。このイベントを受け取ると、広告の表示が可能になります。
onFailedToLoad広告の取得に失敗すると通知されます。広告取得時のタイムアウトや、全てのアドネットワークの在庫がない場合など。
onFailedToShow広告の表示に失敗すると通知されます。視聴完了する前にユーザがキャンセルするなど。
onOpened広告が表示されると通知されます。アドネットワークから表示開始時(表示開始の通知がなければ、表示開始直前)のイベントを受け取ったタイミングで通知されます。アドネットワークによって発生タイミングが異なります。
onCompletedインセンティブ付与が可能になると通知されます。ユーザが途中で動画視聴をキャンセルすると発生しません。アドネットワークによって発生タイミングが異なります。
onClosed広告(動画プレーヤー、またはエンドカード)が閉じられると通知されます。ユーザキャンセルの場合でも広告を閉じたタイミングで通知されます。
onExpiredRTBはロードが完了してから1時間経過すると、広告表示ができても無効扱いとなり、収益が発生しません。このイベントを受け取ったらloadからやり直してください。イベントを受け取ってからisReadyを実行するとfalse が返却されます。

広告を取得する

Java

import jp.supership.vamp.VAMPRequest;
import jp.supership.vamp.VAMPRewardedAd;

public class MainActivity extends AppCompatActivity {

private static final String VAMP_AD_ID = "*****";
private VAMPRewardedAd rewardedAd;

@Override
protected void onCreate(Bundle savedInstanceState) {
...
// 広告の取得を開始します。
rewardedAd.load(new VAMPRequest.Builder().build());
}
}

Kotlin

import jp.supership.vamp.*

const val VAMP_AD_ID = "*****"

class MainActivity : AppCompatActivity() {

private lateinit var rewardedAd: VAMPRewardedAd

override fun onCreate(savedInstanceState: Bundle?) {
...
// 広告の取得を開始します。
rewardedAd.load(VAMPRequest.Builder().build())
}
}

広告を表示する

Java//広告の表示準備ができているか確認します。

// 広告の表示準備ができているか確認します。
if (rewardedAd.isReady()) {
// 準備が完了していた場合、動画広告を再生します。
rewardedAd.show(MainActivity.this);
}

Kotlin//広告の表示準備ができているか確認します。

// 広告の表示準備ができているか確認します。
if (rewardedAd.isReady) {
// 準備が完了していた場合、動画広告を再生します。
rewardedAd.show(this)
}

詳細な広告イベントを受け取る

VAMPListenerインタフェースの代わりにVAMPAdvancedListenerインタフェースを実装することにより、より詳細な広告イベントを受け取ることができます。

Java

import jp.supership.vamp.VAMPAdvancedListener;
import jp.supership.vamp.VAMPError;
import jp.supership.vamp.VAMPRewardedAd;

public class MainActivity extends AppCompatActivity {

private static final String VAMP_AD_ID = "*****";
private VAMPRewardedAd rewardedAd;

@Override
protected void onCreate(Bundle savedInstanceState) {
...
// VAMPListenerをセット
rewardedAd.setVAMPListener(new AdListener());
}

private class AdListener implements VAMPAdvancedListener {
@Override
public void onReceived() {
}

@Override
public void onFailedToLoad(VAMPError vampError) {
}

@Override
public void onFailedToShow(VAMPError vampError) {
}

@Override
public void onOpened() {
}

@Override
public void onCompleted() {
}

@Override
public void onClosed(boolean clicked) {
}

@Override
public void onExpired() {
}

// 追加された広告イベント

@Override
public void onLoadStart(String adnwName) {
// アドネットワークごとの広告取得が開始されたときに通知されます。
}

@Override
public void onLoadResult(String adnwName, boolean success, String message) {
// アドネットワークごとの広告取得結果が通知されます。
}
}
}

Kotlin

import jp.supership.vamp.*

const val VAMP_AD_ID = "*****"

class MainActivity : AppCompatActivity() {

private lateinit var rewardedAd: VAMPRewardedAd

override fun onCreate(savedInstanceState: Bundle?) {
...
// VAMPListenerをセット
rewardedAd.setListener(AdListener())
}

inner class AdListener : VAMPAdvancedListener {
override fun onReceived() {
}

override fun onFailedToLoad(vampError: VAMPError?) {
}

override fun onFailedToShow(vampError: VAMPError?) {
}

override fun onOpened() {
}

override fun onCompleted() {
}

override fun onClosed(clicked: Boolean) {
}

override fun onExpired() {
}

// 追加された広告イベント

override fun onLoadStart(adnwName: String?) {
// アドネットワークごとの広告取得が開始されたときに通知されます。
}

override fun onLoadResult(adnwName: String?, success: Boolean, message: String?) {
// アドネットワークごとの広告取得結果が通知されます。
}
}
}

VAMPListenerインタフェースで受け取ることができる広告イベントに加え、以下のイベントを受け取ることができます。

メソッド名説明
onLoadStartアドネットワークごとの広告取得が開始されたときに通知されます。
onLoadResultアドネットワークごとの広告取得結果が通知されます。このイベントは、ロードの成功時、失敗時どちらの場合も通知されます。このイベントをもとに広告の表示をしないでください。イベント通知により広告の表示準備ができているか判定する場合は、onReceivedを受け取ったタイミングで判定してください。