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

WARNING

インタースティシャル広告の提供は終了しました

# はじめに

開発環境としてAndroid Studioを利用し、インストール後の各種設定は準備されていることを前提にした手順となります。

# 対応バージョン

  • Android 5.0以降(API Level 21)

# 導入の流れ

  1. SDKをダウンロードします
  2. プロジェクトにSDKを追加します
  3. AndroidManifest.xmlの設定を行います
  4. Google Play Servicesの設定を行います
  5. 例を参考に広告表示の実装を行います
  6. proguardの設定を行います

# 1. SDKをダウンロードする ~ 4. Google Play Servicesを設定する

Android SDK Getting Started / バナー広告からご確認ください。

# 5. 広告表示を実装する

:::: tabs
::: tab Kotlin

import com.socdm.d.adgeneration.ADGConsts
import com.socdm.d.adgeneration.interstitial.ADGInterstitial
import com.socdm.d.adgeneration.interstitial.ADGInterstitialListener

class MainActivity : AppCompatActivity() {
    companion object {
        private const val TAG = "ADGInterstitialListener"
    }

    private lateinit var adgInterstitial: ADGInterstitial

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        adgInterstitial = ADGInterstitial(this).apply {
            // 管理画面から払い出された広告枠ID
            setLocationId("48549")

            // Listenerの設定
            setAdListener(AdListener())
        }

        findViewById<Button>(R.id.btn_preload).setOnClickListener {
            // 広告リクエスト
            adgInterstitial.preload()
        }

        findViewById<Button>(R.id.btn_show).setOnClickListener {
            // 広告表示
            adgInterstitial.show()
        }
    }

    override fun onStop() {
        // 広告非表示
        adgInterstitial.dismiss()
        super.onStop()
    }

    internal inner class AdListener : ADGInterstitialListener() {
        override fun onReceiveAd() {
            Log.d(TAG, "Received an ad.")
        }

        override fun onFailedToReceiveAd(code: ADGConsts.ADGErrorCode) {
            Log.d(TAG, "Failed to receive an ad:$code")
            // ネットワーク不通/エラー多発/広告レスポンスなし 以外はリトライしてください
            when (code) {
                ADGConsts.ADGErrorCode.EXCEED_LIMIT, ADGConsts.ADGErrorCode.NEED_CONNECTION, ADGConsts.ADGErrorCode.NO_AD -> {}
                else -> adgInterstitial.preload()
            }
        }

        override fun onClickAd() {
            Log.d(TAG, "Did click ad.")
        }

        override fun onCloseInterstitial() {
            Log.d(TAG, "Did close interstitial ads.")
        }
    }
}

:::
::: tab Java

import com.socdm.d.adgeneration.ADGConsts;
import com.socdm.d.adgeneration.interstitial.ADGInterstitial;
import com.socdm.d.adgeneration.interstitial.ADGInterstitialListener;

public class MainActivity extends AppCompatActivity {

    private ADGInterstitial adgInterstitial = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        adgInterstitial = new ADGInterstitial(this);

        // 管理画面から払い出された広告枠ID
        adgInterstitial.setLocationId("48549");

        // Listenerの設定
        adgInterstitial.setAdListener(new AdListener());

        findViewById(R.id.btn_preload).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 広告リクエスト
                adgInterstitial.preload();
            }
        });

        findViewById(R.id.btn_show).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 広告表示
                adgInterstitial.show();
            }
        });
    }

    @Override
    protected void onStop() {
        // 広告非表示
        adgInterstitial.dismiss();
        super.onStop();
    }

    class AdListener extends ADGInterstitialListener {
        private static final String TAG = "ADGListener";

        @Override
        public void onReceiveAd() {
            Log.d(TAG, "Received an ad.");
        }

        @Override
        public void onFailedToReceiveAd(ADGConsts.ADGErrorCode code) {
            Log.d(TAG, "Failed to receive an ad:" + code);
            // ネットワーク不通/エラー多発/広告レスポンスなし 以外はリトライしてください
            switch (code) {
                case EXCEED_LIMIT:      // エラー多発
                case NEED_CONNECTION:   // ネットワーク不通
                case NO_AD:             // 広告レスポンスなし
                    break;
                default:
                    if (adgInterstitial != null) {
                        adgInterstitial.preload();
                    }
                    break;
            }
        }

        @Override
        public void onClickAd() {
            Log.d(TAG, "Did click ad.");
        }

        @Override
        public void onCloseInterstitial() {
            Log.d(TAG, "Did close interstitial ads.");
        }
    }
}

:::
::::

# 各メソッドの仕様やオプションについて

Androidリファレンスをご参照ください。

# Listenerについて

# 広告受信

:::: tabs
::: tab Kotlin

override fun onReceiveAd()

:::
::: tab Java

public void onReceiveAd()

:::
::::

SDKからの広告リクエストが成功したタイミングで呼び出されます。
また、ローテーションによる広告取得成功の際にも呼び出されます。

# 広告受信失敗

:::: tabs
::: tab Kotlin

override fun onFailedToReceiveAd(code: ADGConsts.ADGErrorCode)

:::
::: tab Java

public void onFailedToReceiveAd(ADGErrorCode code)

:::
::::

SDKからの広告リクエストが失敗した場合に呼び出されます。

エラーコードは下記の通りです。

  • UNKNOWN……不明なエラーが発生しました。
  • COMMUNICATION_ERROR……アドサーバー間通信/連携しているアドネットワークSDKとの接続等でエラーが発生しました。
  • RECEIVED_FILLER……白板検知されました。
  • NO_AD……接続先アドネットワークすべて広告在庫切れが返却されました。
  • NEED_CONNECTION……デバイスがネットワークに接続されていません。
  • EXCEED_LIMIT……エラー回数が上限に達しました。
  • TEMPLATE_FAILED……サイズ指定の誤りなどの要因により広告の形成に失敗しました。
# 広告タップ

:::: tabs
::: tab Kotlin

override fun onClickAd()

:::
::: tab Java

public void onClickAd()

:::
::::

広告がタップされた際に呼び出されます。
(ブラウザやストア起動の成否は問いません)

# 広告表示終了

:::: tabs
::: tab Kotlin

override fun onCloseInterstitial()

:::
::: tab Java

public void onCloseInterstitial()

:::
::::

広告を閉じたタイミングで呼び出されます。

# デフォルトデザイン

setBackgroundTypeおよびsetCloseButtonTypeで指定できるデフォルトのデザインは以下の通りです。

BackgroundType CloseButtonType Design
0 0
1 1
2 2
3 3
4 4

# カスタムデザイン

オリジナルの画像を適用する場合は下記のルールに準拠してください。

# サイズ

  • 閉じるボタン:横300px/縦30px
  • 背景:横315px/縦300px

縦横比率固定であれば高解像度でも問題ありません。

# ファイル名

  • 閉じるボタン:adg_interstitial_close_button_XXX.png
  • 背景:adg_interstitial_background_XXX.png

XXXには100以降の3桁の数を入れてください。
この数がパーツ番号となります。

# ファイルの格納場所

assetsフォルダに格納してください。

# デザインの適用

:::: tabs
::: tab Kotlin

adgInterstitial.setBackgroundType(XXX)
adgInterstitial.setCloseButtonType(XXX)

:::
::: tab Java

adgInterstitial.setBackgroundType(XXX);
adgInterstitial.setCloseButtonType(XXX);

:::
::::

XXXにはパーツ番号を記入してください。

# 6. proguardの設定をする

Android SDK Getting Started / バナー広告からご確認ください。

# 審査完了前の稼働確認について

審査完了前に広告の掲載イメージをご確認頂く際は、以下のIDに置き換えご確認ください。
このIDをセットしたままアプリをリリースしないようご注意ください。

サイズ テストID 配信広告
インタースティシャル 48549 テスト広告
Last Updated: 4/17/2025, 2:49:53 AM