# Android SDK Getting Started / バナー広告

# はじめに

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

連携ADNW一覧

# 前提条件

  • AndroidX移行済みのプロジェクト ※移行がお済みでない方はコチラ (opens new window)をご確認いただきご対応をお願いいたします。
  • Kotlinプラグイン導入済みのプロジェクト ※導入がお済みでない方はコチラ (opens new window)をご確認いただきご対応をお願いいたします。

# 対応バージョン

  • Android 6.0以降(API Level 23)

# 導入の流れ

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

# 1. プロジェクトにSDKを追加する

注意
前バージョンでjarファイルのSDKを使用している方は削除してください。

# Gradleを使用する場合

プロジェクトレベルのbuild.gradleファイルを開き、allprojects.repositories配下に以下のステートメントを追加します。

:::: tabs
::: tab Groovy

allprojects {
    repositories {
        // 以下を追加
        maven { url 'https://adgeneration.github.io/ADG-Android-SDK/repository' }
    }
}

:::
::: tab Kotlin

allprojects {
    repositories {
        // 以下を追加
        maven("https://adgeneration.github.io/ADG-Android-SDK/repository")
    }
}

:::
::::

アプリレベルのbuild.gradleファイルを開き、dependencies配下に以下のステートメントを追加します。

:::: tabs
::: tab Groovy

dependencies {
    // 以下を追加
    implementation 'com.socdm.d.adgeneration:adg:+'
}

:::
::: tab Kotlin

dependencies {
    // 以下を追加
    implementation("com.socdm.d.adgeneration:adg:+")
}

:::
::::

# 手動でインストールする場合

# ダウンロード

こちらからダウンロードしてください。
ダウンロード (opens new window)
(Downloads > adg-x.x.x.aar )

# プロジェクトにSDKを追加
  1. File > New > New Module > Import.JAR/.AAR Package を選択する
  2. ダウンロードした adg-x.x.x.aar を選択する
  3. プロジェクトツールウィンドウ(Projectビュー)で、追加したモジュールを選択し、右クリック > Open Module Settings を選択する
  4. アプリモジュールを選択し、Dependenciesタブから「+」ボタンを押し、Module Dependencyを選択する
  5. :adg-x.x.x を選択する

# 2. AndroidManifest.xmlを修正する

ハードウェアアクセラレーションを有効にしてください。
ハードウェアアクセラレーションを有効にするには、AndroidManifest.xmlで”android:hardwareAccelerated“属性の値をtrueに設定します。 以下設定例です。

<application
  android:hardwareAccelerated="true">
    (省略)
</application>

# 3. Google Play Servicesを設定する

本SDKでは提携DSPの追跡型広告を表示するためGoogle Advertising IDを使用します。
Google Advertising IDを利用するにはGoogle Play Servicesの導入が必須となります。

Google Advertising IDを利用することにより収益の向上が見込まれます。

導入方法は以下の通りです。

# 共通設定

本手順は開発環境共通で適用されるため、一度行えば以降は必要ありません。
(Google Play Servicesのアップデートは適宜行ってください)

  1. SDK Managerを起動する。

起動するには「Tools」→「Android」→ 「SDK Manager」を選択してください。
もしくは、SDK Managerのボタンをクリックしてください。

  1. 「SDK Tools」タブを選択し、Google Play servicesにチェックをつけ、インストールします。

img

# アプリ毎の設定

本手順はアプリ毎に実施する必要があります。

Androidアプリケーションモジュール(app)配下にあるbuild.gradleのdependenciesに以下を追加します。

# AndroidXに移行済みプロジェクトでGoogle Play Services 15.0.0以降をご利用のかた
implementation 'com.google.android.gms:play-services-base:18.1.0'
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
AndroidXに移行していないプロジェクトでGoogle Play Services 15.0.0以降をご利用のかた
# AndroidXに移行していないプロジェクトでGoogle Play Services 15.0.0以降
implementation 'com.google.android.gms:play-services-base:16.1.0'
implementation 'com.google.android.gms:play-services-ads:17.2.0'
Google Play Services 12.0.1以前をご利用のかた
# Google Play Services 12.0.1以前
implementation 'com.google.android.gms:play-services-base:+'

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

広告を配置するViewを作成します。以下の例では下部中央を指定しています。
レイアウトサイズは広告のサイズに合わせて設定してください。

img

<FrameLayout
  android:layout_width="320dp"
  android:layout_height="50dp"
  android:layout_alignParentBottom="true"
  android:layout_centerHorizontal="true"
  android:id="@+id/ad_container">
</FrameLayout>

Activityに以下のように実装します。

:::: tabs
::: tab Kotlin

import com.socdm.d.adgeneration.ADG
import com.socdm.d.adgeneration.ADGConsts
import com.socdm.d.adgeneration.ADGListener

class MainActivity : AppCompatActivity() {
    private lateinit var adg: ADG

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

        // デバッグログ出力設定。リリース時は[必ず]falseにしてください
        ADGSettings.setDebugLogging(true)

        adg = ADG(this).apply {
            // 管理画面から払い出された広告枠ID
            locationId = "48547"
            // Listenerの設定
            adListener = AdListener()
            // リリース時は[必ず]falseにしてください
            isTestModeEnabled = true
        }

        /**
         * 枠サイズ
         * AdFrameSize.SP:320x50, AdFrameSize.Large:320x100,
         * AdFrameSize.Rect:300x250, AdFrameSize.Tablet:728x90,
         * AdFrameSize.Free:自由設定
         */
        adg.setAdFrameSize(ADG.AdFrameSize.SP)

        // 配置
        val adContainer = findViewById<FrameLayout>(R.id.ad_container)
        adContainer.addView(adg)
    }

    override fun onResume() {
        super.onResume()

        // 広告の表示
        adg.start()
    }

    override fun onPause() {
        // 広告の破棄
        adg.stop()

        super.onPause()
    }

    internal inner class AdListener : ADGListener() {
        override fun onReceiveAd() {
        }

        override fun onFailedToReceiveAd(code: ADGConsts.ADGErrorCode) {
            // ネットワーク不通/エラー多発/広告レスポンスなし 以外はリトライしてください
            when (code) {
                ADGConsts.ADGErrorCode.EXCEED_LIMIT,
                ADGConsts.ADGErrorCode.NEED_CONNECTION,
                ADGConsts.ADGErrorCode.NO_AD -> {}
                else -> adg.start()
            }
        }

        override fun onClickAd() {
        }
    }
}

:::
::: tab Java

import com.socdm.d.adgeneration.ADG;
import com.socdm.d.adgeneration.ADGConsts;
import com.socdm.d.adgeneration.ADGListener;

public class MainActivity extends AppCompatActivity {å
    private ADG adg;

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

        // デバッグログ出力設定。リリース時は[必ず]falseにしてください
        ADGSettings.setDebugLogging(true);

        adg = new ADG(this);

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

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

        // リリース時は[必ず]falseにしてください
        adg.setTestModeEnabled(true);

        /**
         * 枠サイズ
         * AdFrameSize.SP:320x50, AdFrameSize.Large:320x100,
         * AdFrameSize.Rect:300x250, AdFrameSize.Tablet:728x90,
         * AdFrameSize.Free:自由設定
         */
        adg.setAdFrameSize(ADG.AdFrameSize.SP);

        // 配置
        FrameLayout adContainer = (FrameLayout) findViewById(R.id.ad_container);
        adContainer.addView(adg);
    }

    @Override
    protected void onResume() {
        super.onResume();

        if (adg != null) {
            // 広告の表示
            adg.start();
        }
    }

    @Override
    protected void onPause() {
        if (adg != null) {
            // 広告の破棄
            adg.stop();
        }

        super.onPause();
    }

    class AdListener extends ADGListener {
        @Override
        public void onReceiveAd() {
        }

        @Override
        public void onFailedToReceiveAd(ADGConsts.ADGErrorCode code) {
            // ネットワーク不通/エラー多発/広告レスポンスなし 以外はリトライしてください
            switch (code) {
                case EXCEED_LIMIT:      // エラー多発
                case NEED_CONNECTION:   // ネットワーク不通
                case NO_AD:             // 広告レスポンスなし
                    break;
                default:
                    if (adg != null) {
                        adg.start();
                    }
                    break;
            }
        }

        @Override
        public void onClickAd() {
        }
    }
}

:::
::::

# 注意事項

  • Activity#onResume メソッドで ADG#start メソッドを呼び、 Activity#onPause メソッドで ADG#stop メソッドを呼んでください。
  • v2.26.2から ADG#pause メソッドは非推奨になりました。代わりに ADG#stop メソッドを使用してください。
  • v2.26.2から ADG#resumeRefreshTimer メソッドは非推奨になりました。代わりに ADG#start メソッドを使用してください。
  • v2.26.2から ADG#setEnableTestMode メソッドは非推奨になりました。代わりにテストモードを有効にするときは ADG#setTestModeEnabled メソッドを使用してください。また、デバッグログを出力する場合は ADGSettings.setDebugLogging メソッドを使用してください。
  • v2.26.2から ADG#isEnableTestMode メソッドは非推奨になりました。代わりに ADG#isTestModeEnabled メソッドを使用してください。

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

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()

:::
::::

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

# 5. proguardの設定をする

SDKを導入したアプリを難読化する際は以下の設定値をproguardの設定ファイルに追加してください。

-keep public class com.socdm.d.adgeneration.** { *; }
-keep public interface com.socdm.d.adgeneration.** { *; }

# 注意事項

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

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

サイズ テストID 配信広告
320×50 48547 テスト広告
320×100 48548 テスト広告
300×250 48549 テスト広告
728×90 48550 テスト広告
# 位置情報の扱いについて

詳しくはこちらを御覧ください。「位置情報の扱いについて

Last Updated: 9/24/2025, 7:52:43 AM