動画リワード広告(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を受け取ったタイミングで判定してください。 |