動画リワード広告(v4.4.2以前)
実装手順
前提条件
- VAMP SDKがインポート済み
※まだVAMP SDKのインポートがお済みでない場合はこちらをご参考ください。
VAMPRewardedAdオブジェクトを初期化する
動画リワード広告を表示するためにはまずVAMPRewardedAdオブジェクトを初期化する必要があります。
次のコードスニペットでは、MainActivityのonCreateメソッド内で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)の発生タイミングはアドネットワークにより異なります。
また、onClosedのclickedフラグが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を受け取ったタイミングで判定してください。 | 
