VAMP SDK

Video Ad Mediation Platform Software Development Kit

動画リワード広告(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 広告(動画プレーヤー、またはエンドカード)が閉じられると通知されます。ユーザキャンセルの場合でも広告を閉じたタイミングで通知されます。
onExpired RTBはロードが完了してから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を受け取ったタイミングで判定してください。