Skip to content
This repository has been archived by the owner on Apr 5, 2024. It is now read-only.

インタースティシャル広告実装手順

fan-w-suzuki edited this page Nov 20, 2019 · 24 revisions

事前準備

まだ広告枠作成、SDKダウンロードを行っていない場合、下記リンク先を参照してください。

SDKの組み込み

プロジェクトにSDKを追加していない場合、以下の方法でSDKを追加してください。

インタースティシャル広告の実装手順

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

※事前準備でGooglePlayService、AndroidManifest.xml の設定を行ってください

1) 広告のロード

apiKey、spotID を指定して NendAdInterstitial の loadAd メソッドを実行します。
広告のロードは、Activity の onCreate 直後に実行してください。

Kotlin
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    NendAdInterstitial.loadAd(applicationContext, "[発行された apiKey]", [発行された spotID])
}
Java
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    NendAdInterstitial.loadAd(getApplicationContext(), "[発行された apiKey]", [発行された spotID]);
}

2) 広告の表示

広告を表示したい場面で NendAdInterstitial の showAd メソッドを実行します。

なお、広告の読み込みが完了していない場合、インタースティシャル広告は表示されません。

Kotlin
// 広告枠指定なしの場合
// この場合は最後に読み込みに成功した広告枠を表示します
// アプリ内で使用するインタースティシャル広告の枠が一つの場合はこちらをお使いください
NendAdInterstitial.showAd(this)

// 広告枠指定ありの場合
NendAdInterstitial.showAd(this, [表示する spotID])
Java
// 広告枠指定なしの場合
NendAdInterstitial.showAd(this);

// 広告枠指定ありの場合
NendAdInterstitial.showAd(this, [表示する spotID]);

右上×ボタンまたはインタースティシャル広告の 範囲外をタップすると、広告が非表示になります。
(広告を×ボタンタップのみで非表示にするか、範囲外もしくは×ボタンタップで非表示にするかは管理画面上で選択できます)
下部のインストールボタン(またはバナー広告)を タップすると、GooglePlay へ遷移します。

image

NendAdInterstitial の dismissAd メソッドを実行することで、広告を閉じることが出来ます。

Kotlin
NendAdInterstitial.dismissAd()
Java
NendAdInterstitial.dismissAd();

画面回転について

画面の向きに応じて自動的にレイアウトを変更します。
ただし、インタースティシャル広告を表示した状態で画面回転が行われる可能性がある場合、 必ず AndroidManifest.xml で Activity に以下の設定を行ってください。

android:configChanges="orientation|screenSize"

イベントリスナ

1) ロードイベントリスナ

下記のように、必要に応じて NendAdInterstitial にリスナを登録することで、 広告のロードに関する通知を受けることが出来ます。
アプリ内で使用するインタースティシャル広告の枠が一つの場合はこちらをお使いください。

Kotlin
NendAdInterstitial.setListener { status ->
    when (status) {
        NendAdInterstitial.NendAdInterstitialStatusCode.SUCCESS -> {
            // 成功
        }
        NendAdInterstitial.NendAdInterstitialStatusCode.FAILED_AD_DOWNLOAD -> {
            // 広告画像取得失敗
        }
        NendAdInterstitial.NendAdInterstitialStatusCode.INVALID_RESPONSE_TYPE -> {
            // 不明な広告タイプ
        }
        NendAdInterstitial.NendAdInterstitialStatusCode.FAILED_AD_REQUEST -> {
            // 広告取得失敗
        }
        else -> {

        }
    }
}
Java
NendAdInterstitial.setListener(new OnCompletionListener() {
    @Override
    public void onCompletion(NendAdInterstitialStatusCode status) {
        switch (status) {
        case SUCCESS:
            // 成功
            break;
        case FAILED_AD_DOWNLOAD:
            // 広告画像取得失敗
            break;
        case INVALID_RESPONSE_TYPE:
            // 不明な広告タイプ
            break;
        case FAILED_AD_REQUEST:
            // 広告取得失敗
            break;
        default:
            break;
        }
    }
});

広告枠ごとのロード結果を受け取る場合は、下記のように OnCompletionListenerSpot をリスナに登録してください。

Kotlin
NendAdInterstitial.setListener(object : NendAdInterstitial.OnCompletionListenerSpot {
    override fun onCompletion(status: NendAdInterstitial.NendAdInterstitialStatusCode?) {
        // こちらの通知は呼び出されません
    }

    override fun onCompletion(status: NendAdInterstitial.NendAdInterstitialStatusCode?, spotId: Int) {
        // 引数に対象の広告枠 ID を付与してロード結果を通知します
        when (status) {
            NendAdInterstitial.NendAdInterstitialStatusCode.SUCCESS -> {
                // 成功
            }
            NendAdInterstitial.NendAdInterstitialStatusCode.FAILED_AD_DOWNLOAD -> {
                // 広告画像取得失敗
            }
            NendAdInterstitial.NendAdInterstitialStatusCode.INVALID_RESPONSE_TYPE -> {
                // 不明な広告タイプ
            }
            NendAdInterstitial.NendAdInterstitialStatusCode.FAILED_AD_REQUEST -> {
                // 広告取得失敗
            }
            else -> {
            }
        }
    }
})
Java
NendAdInterstitial.setListener(new NendAdInterstitial.OnCompletionListenerSpot() {
    @Override
    public void onCompletion(NendAdInterstitialStatusCode status) {
        // こちらの通知は呼び出されません
    }

    @Override
    public void onCompletion(NendAdInterstitialStatusCode status, int spotId) {
        // 引数に対象の広告枠 ID を付与してロード結果を通知します
        switch (status) {
        case SUCCESS:
            // 成功
            break;
        case INVALID_RESPONSE_TYPE:
            // 不明な広告タイプ
            break;
        case FAILED_AD_REQUEST:
            // 広告取得失敗
            break;
        case FAILED_AD_DOWNLOAD:
            // 広告画像取得失敗
            break;
        default:
            break;
        }
    }
});

2) クリックイベントリスナ

下記のように、必要に応じて showAd にリスナを登録することで、 広告のクリック通知を受けることが出来ます。
アプリ内で使用するインタースティシャル広告の枠が一つの場合はこちらをお使いください。

Kotlin
NendAdInterstitial.showAd(this, {
    when (it) {
        NendAdInterstitial.NendAdInterstitialClickType.CLOSE -> {
            // ×ボタンまたは範囲外タップ
        }
        NendAdInterstitial.NendAdInterstitialClickType.DOWNLOAD -> {
            // ダウンロードボタン
        }
        NendAdInterstitial.NendAdInterstitialClickType.INFORMATION -> {
            // インフォメーションボタン
        }
        else -> {

        }
    }
})
Java
NendAdInterstitial.showAd(this, new NendAdInterstitial.OnClickListener() {
    @Override
    public void onClick(NendAdInterstitialClickType clickType) {
        switch (clickType) {
        case CLOSE:
            // ×ボタンまたは範囲外タップ
            break;
        case DOWNLOAD:
            // ダウンロードボタン
            break;
        case INFORMATION:
            // インフォメーションボタン
            break;
        default:
            break;
        }
    }
});

広告枠ごとのクリック通知を受け取る場合は、下記のように OnClickListenerSpot をリスナに登録してください。

Kotlin
NendAdInterstitial.showAd(this, [表示する spotID], object: NendAdInterstitial.OnClickListenerSpot {
    override fun onClick(clickType: NendAdInterstitial.NendAdInterstitialClickType?) {
        // こちらの通知は呼び出されません
    }

    override fun onClick(clickType: NendAdInterstitial.NendAdInterstitialClickType?, spotId: Int) {
        when (clickType) {
            NendAdInterstitial.NendAdInterstitialClickType.CLOSE -> {
                // ×ボタンまたは範囲外タップ
            }
            NendAdInterstitial.NendAdInterstitialClickType.DOWNLOAD -> {
                // ダウンロードボタン
            }
            NendAdInterstitial.NendAdInterstitialClickType.INFORMATION -> {
                // インフォメーションボタン
            }
            else -> {

            }
        }
    }
})
Java
NendAdInterstitial.showAd(this, [表示する spotID], new NendAdInterstitial.OnClickListenerSpot() {
    @Override
    public void onClick(NendAdInterstitialClickType clickType) {
        // こちらの通知は呼び出されません
    }

    @Override
    public void onClick(NendAdInterstitialClickType clickType, int spotId) {
        // 引数に対象の広告枠 ID を付与してクリックイベントを通知します
        switch (clickType) {
        case CLOSE:
            // ×ボタンまたは範囲外タップ
            break;
        case DOWNLOAD:
            // ダウンロードボタン
            break;
        case INFORMATION:
            // インフォメーションボタン
            break;
        default:
            break;
        }
    }
});

表示結果取得

下記のように、showAd メソッドの戻り値を取得することで、 必要に応じて表示結果を判定することが出来ます。

Kotlin
val result = NendAdInterstitial.showAd(this)
when (result) {
    NendAdInterstitial.NendAdInterstitialShowResult.AD_SHOW_SUCCESS -> {
        // 表示成功
    }
    NendAdInterstitial.NendAdInterstitialShowResult.AD_SHOW_ALREADY -> {
        // 既に表示されている
    }
    NendAdInterstitial.NendAdInterstitialShowResult.AD_FREQUENCY_NOT_REACHABLE -> {
        // フリークエンシーカウントに到達していない
    }
    NendAdInterstitial.NendAdInterstitialShowResult.AD_REQUEST_INCOMPLETE -> {
        // 広告のリクエストが正常完了していない
    }
    NendAdInterstitial.NendAdInterstitialShowResult.AD_LOAD_INCOMPLETE -> {
        // 広告のロードが完了していない
    }
    NendAdInterstitial.NendAdInterstitialShowResult.AD_DOWNLOAD_INCOMPLETE -> {
        // 広告のダウンロードが完了していない
    }
    else -> {
    }
}
Java
NendAdInterstitialShowResult result = NendAdInterstitial.showAd(this);
switch (result) {
case AD_SHOW_SUCCESS:
    // 表示成功
    break;
case AD_SHOW_ALREADY:
    // 既に表示されている
    break;
case AD_FREQUENCY_NOT_REACHABLE:
    // フリークエンシーカウントに到達していない
    break;
case AD_REQUEST_INCOMPLETE:
    // 広告のリクエストが正常完了していない
    break;
case AD_LOAD_INCOMPLETE:
    // 広告のロードが完了していない
    break;
case AD_DOWNLOAD_INCOMPLETE:
    // 広告のダウンロードが完了していない
    break;
default:
    break;
}

広告の自動リロード

インタースティシャル広告は、広告が閉じられると自動的に新しい広告をロードします。
自動リロードを無効にするには下記のように isAutoReloadEnabledfalse を設定します。
自動リロードを再び有効にするには true を設定してください。
isAutoReloadEnabled はデフォルトで true になっています。

Kotlin
NendAdInterstitial.isAutoReloadEnabled = false
Java
NendAdInterstitial.isAutoReloadEnabled = false;

検証

日本語

nendSDK Android について

SDKの組み込み

広告の表示

ログ出力

導入サポート


English

About nendSDK Android

SDK Implementation

Display Ads

Logs Output

Supports

Clone this wiki locally