メインコンテンツまでスキップ

Android SDK Getting Started / バナー広告

はじめに

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

アドネットワークのSDKと連携する際の注意事項及び共通手順

前提条件

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

対応バージョン

  • 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配下に以下のステートメントを追加します。

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

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

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

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

ダウンロード

こちらからダウンロードしてください。
ダウンロード
(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 を選択する

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のボタンをクリックしてください。

SDK Manager

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

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に以下のように実装します。

AdFrameSize.Free のサイズ指定

AdFrameSize.Free を使用する場合は、ADG.AdFrameSize.FREE.setSize(width, height) でサイズを指定してください。

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

注意事項

  • 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について

広告受信

override fun onReceiveAd()

KotlinJava

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

広告受信失敗

override fun onFailedToReceiveAd(code: ADGConsts.ADGErrorCode)

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

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

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

広告タップ

override fun onClickAd()

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

5. proguardの設定をする

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

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

注意事項

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

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

サイズテストID配信広告
320×5048547テスト広告
320×10048548テスト広告
300×25048549テスト広告
728×9048550テスト広告

位置情報の扱いについて

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