# Android SDK Getting Started / バナー広告
# はじめに
開発環境としてAndroid Studioを利用し、インストール後の各種設定は準備されていることを前提にした手順となります。
2025-09-24 v2.33.0アップデート内容 (opens new window)
2025-06-17 v2.29.1アップデート内容 (opens new window)
2025-05-20 v2.29.0アップデート内容 (opens new window)
# 前提条件
- AndroidX移行済みのプロジェクト ※移行がお済みでない方はコチラ (opens new window)をご確認いただきご対応をお願いいたします。
- Kotlinプラグイン導入済みのプロジェクト ※導入がお済みでない方はコチラ (opens new window)をご確認いただきご対応をお願いいたします。
# 対応バージョン
- Android 6.0以降(API Level 23)
# 導入の流れ
- プロジェクトにSDKを追加します
↓ - AndroidManifest.xmlを修正します
↓ - Google Play Servicesの設定を行います
↓ - 例を参考に広告表示の実装を行います
↓ - proguardの設定を行います
- targetSDKVersionが28以上の場合は「targetSDKVersionが28以上のアプリでビルドする場合の対応について」を御覧ください。
- targetSDKVersionを31以上の場合は「targetSDKVersionが31以上のアプリでビルドする場合の対応について」を御覧ください。
# 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を追加
- File > New > New Module > Import.JAR/.AAR Package を選択する
- ダウンロードした
adg-x.x.x.aarを選択する - プロジェクトツールウィンドウ(Projectビュー)で、追加したモジュールを選択し、右クリック >
Open Module Settingsを選択する - アプリモジュールを選択し、
Dependenciesタブから「+」ボタンを押し、Module Dependencyを選択する :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のアップデートは適宜行ってください)
- SDK Managerを起動する。
起動するには「Tools」→「Android」→ 「SDK Manager」を選択してください。
もしくは、SDK Managerのボタンをクリックしてください。
- 「SDK Tools」タブを選択し、Google Play servicesにチェックをつけ、インストールします。

# アプリ毎の設定
本手順はアプリ毎に実施する必要があります。
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を作成します。以下の例では下部中央を指定しています。
レイアウトサイズは広告のサイズに合わせて設定してください。

<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 | テスト広告 |
# 位置情報の扱いについて
詳しくはこちらを御覧ください。「位置情報の扱いについて」