インタースティシャル実装方法 - glossom-dev/AdfurikunSDK-Android GitHub Wiki

インタースティシャル

インタースティシャルの初期化

AdfurikunInterクラスのインスタンスを生成します。
広告枠IDには、アドフリくん管理画面で発行された広告枠IDをセットします。
その後setAdfurikunInterListenerを呼び出し、引数として後述のリスナーを渡します。

Kotlin
//AdfurikunInter インスタンス変数を定義
private var mInterstitial: AdfurikunInter? = null

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    // 広告枠ID・Activityを指定し、インタースティシャルのインスタンスを生成
    mInterstitial = AdfurikunInter("広告枠ID", this, false)
    mInterstitial.setAdfurikunInterListener(mListener)
}
Java
//AdfurikunInter インスタンス変数を定義
AdfurikunInter mInterstitial;

@Override
protected void onCreate(Bundle bundle) {
    // 広告枠ID・Activityを指定し、インタースティシャルのインスタンスを生成
    mInterstitial = new AdfurikunInter("広告枠ID", this, false);
    mInterstitial.setAdfurikunInterListener(mListener);
}

リスナーの実装

Kotlin
private val mListener = object : AdfurikunInterListener {
    override fun onPrepareSuccess(isManualMode: Boolean) {
        // 広告の準備完了直後に実行する処理を記述してください
    }

    override fun onPrepareFailure(error: AdfurikunMovieError?) {
        // 広告の準備失敗直後に実行する処理を記述してください
    }

    override fun onStartPlaying(data: InterData) {
        // 動画の再生開始直後に実行する処理を記述してください        
    }

    override fun onFinishedPlaying(data: InterData) {
        // 広告の再生が完了した時に実行する処理を記述してください
    }

    override fun onFailedPlaying(data: InterData, error: AdfurikunMovieError?) {
        // 動画の再生に失敗した時に実行する処理を記述してください
    }

    override fun onAdClose(data: InterData) {
        // 動画の画面を閉じた時に実行する処理を記述してください
    }
}
Java
AdfurikunInterListener mListener = new AdfurikunInterListener(){
    @Override
    public void onPrepareSuccess(boolean isManualMode) {
        // 広告の準備完了直後に実行する処理を記述してください
    }

    @Override
    public void onPrepareFailure(AdfurikunMovieError error) {
        // 広告の準備失敗直後に実行する処理を記述してください
    }

    @Override
    public void onStartPlaying(InterData data) {
        // 動画の再生開始直後に実行する処理を記述してください 
    }

    @Override
    public void onFinishedPlaying(InterData data) {
        // 広告の再生が完了した時に実行する処理を記述してください
    }

    @Override
    public void onFailedPlaying(InterData data, AdfurikunMovieError error) {
        // 動画の再生に失敗した時に実行する処理を記述してください
    }

    @Override
    public void onAdClose(InterData data) {
        // 動画の画面を閉じた時に実行する処理を記述してください
    }
}

インタースティシャル広告のロード

loadメソッドを呼ぶことで各アドネットワークへの表示準備を開始します。

Kotlin
mInterstitial.load()
Java
mInterstitial.load();

インタースティシャル広告の表示

isPreparedメソッドで広告準備が完了したかを確認し、playメソッドで広告を表示します。
再生準備が完了したアドネットワークの中から、1つ広告が選択されます。

Kotlin
if ( mInterstitial.isPrepared() ) {
    // 再生開始
    mInterstitial.play()
}
Java
if ( mInterstitial.isPrepared ) {
    // 再生開始。
    mInterstitial.play();
}

生成したインスタンスの破棄

Kotlin
override fun onDestroy() {
    mInterstitial?.onDestroy()
    super.onDestroy()
}
Java
@Override
protected void onDestroy() {
    mInterstitial.onDestroy();
    super.onDestroy();
}

広告を視聴したユーザーへの報酬の付与タイミングについて

ユーザーへの報酬の付与は、onAdCloseコールバックが呼ばれた際に行うことを推奨します。
インタースティシャル広告では広告スキップ機能があるため、
広告を最後まで視聴したユーザーにのみ報酬を付与するには以下のような実装が必要です。

  • onFinishedPlayingが発生したかどうかをフラグで管理する。
  • onAdCloseでフラグをチェックし、onFinishedPlayingが発生済の場合のみ報酬を付与する。
Kotlin
private val mListener = object : AdfurikunInterListener {
    // ...
    override fun onStartPlaying(data: InterData) {
        isFinishedPlaying = false // 広告再生時にフラグを初期化する        
    }
    override fun onFinishedPlaying(data: InterData) {
        isFinishedPlaying = true // onFinishedPlaying コールバックが発生したことを記録する
    }
    override fun onAdClose(data: InterData) {
        if (isFinishedPlaying) { // onFinishedPlaying コールバックが発生したケースのみ報酬を付与する
            // 報酬の付与
        }
    }
}
Java
AdfurikunInterListener mListener = new AdfurikunInterListener() {
    // ...
    @Override
    public void onStartPlaying(InterData data) {
        isFinishedPlaying = false; // 広告再生時にフラグを初期化する
    }

    @Override
    public void onFinishedPlaying(InterData data) {
        isFinishedPlaying = true; // onFinishedPlaying コールバックが発生したことを記録する
    }

    @Override
    public void onAdClose(InterData data) {
        if (isFinishedPlaying) { // onFinishedPlaying コールバックが発生したケースのみ報酬を付与する
            // 報酬の付与
        }
    }
}
⚠️ **GitHub.com Fallback** ⚠️