# カスタムSDK連携 AdMob Android

# はじめに

Ad Generationの「カスタムタグ」設定にて、Ad Generation SDKからAdMobのSDKを呼び出し、AdMobの広告を表示できます。

# 前提条件

  • Android Studio 3.2以降
  • minSdkVersion 21以降
  • compileSdkVersion 28以降
  • AndroidX移行済み
  • com.google.android.gms:play-services-ads:21.5.0 で検証しています。

# 実装の流れ

  1. Ad Generation SDKをプロジェクトに追加します。
  2. Gradleを設定し、Google Play Servicesを導入します。
  3. AndroidManifest.xmlの設定を行います。
  4. Ad Generationの広告表示の実装をします。
  5. SDK連携にあたっての共通作業を行います。

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

# 2. Gradleを設定する

Ad Generation SDKがアプリケーションモジュール内のlibsディレクトリに配置されている場合、以下のようにAdMob AdapterとGoogle Play Servicesが参照されるように設定します。

アプリレベルのbuild.gradle(抜粋)

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.google.android.gms:play-services-base:18.2.0'
    implementation 'com.google.android.gms:play-services-ads:21.5.0'
}

# 3. AndroidManifest.xmlの設定をする

Google Mobile Ads SDKのv17.0.0以降はAndroidManifest.xmlに以下を追加してください。
この手順はv17.0.0以降必須になります。
下記をAndroidManifest.xmlに記述していない場合、アプリ起動時にクラッシュが発生いたしますのでご注意ください。

  • APPLICATION_ID
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID"
           android:value="[YOUR_ADMOB_APP_ID]"/>
  • AD_MANAGER_APP
<meta-data android:name="com.google.android.gms.ads.AD_MANAGER_APP"
            android:value="true"/>

詳細はこちらを確認してください。

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

# 5. SDK連携にあたっての共通作業を行う

アドネットワークのSDKと連携するための注意事項や共通して対応いただく必要がございます。各アドネットワークのSDKを導入する前に以下をご確認ください。

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

AdMob SDK version 19.8.0以前のフォーマット

# ネイティブ広告(アドバンス)について

AdMobの公式リファレンスは以下になります。
AdMob Android ネイティブ広告 (opens new window)

onReceiveAd(Object nativeAd)のListenerのメソッドにて、ネイティブ広告オブジェクトが取得できます。

ネイティブ広告オブジェクトのクラスは下記3パターンです。

  • コンテンツ広告(NativeContentAd) com.google.android.gms.ads.formats.NativeContentAd
  • アプリインストール広告(NativeAppInstallAd) com.google.android.gms.ads.formats.NativeAppInstallAd
  • 統合広告(UnifiedNativeAd) com.google.android.gms.ads.formats.UnifiedNativeAd

参照するために、該当クラスにimportを追加してください。

ネイティブ広告オブジェクト取得後、お客様側でレイアウトを構築していただいた後、
Ad Generation SDKに対して、構築したネイティブ広告のViewを登録するために ADG.getNativeMediationView() を実行してください。

その後、画面へのaddなど表示処理を適宜おこなってください。

# 実装例

※統合広告をご利用の場合は、UnifiedNativeAdクラス以外の返却はございませんので、コンテンツ広告のView構築処理、アプリインストール広告のView構築処理は省略いただいてかまいません。

# 統合広告(UnifiedNativeAd)の実装方法

UnifiedNativeAdを受け取るために以下をご確認いただき、実装をしてください。

  • Google Mobile Ads SDKがv15.0.0以降であること
  • 広告リクエスト(start())コール前にsetEnableUnifiedNativeAdフラグにtrueを設定していること

# スマートバナーについて

スマートバナーとは、AdMobで提供されているバナー広告の幅を端末幅まで自動で拡大する機能です。
Ad Generation SDKからスマートバナーを有効にするには以下のようにsetExpandframe()trueに指定してください。

# Google Mobile Ads SDK version 20.0.0以降のネイティブ広告について

ネイティブ広告オブジェクトはNativeAd クラスです。
参照するために、該当クラスに com.google.android.gms.ads.nativead のimportを追加してください。

ネイティブ広告オブジェクト取得後、お客様側でレイアウトを構築していただき、
Ad Generation SDKに対してネイティブ広告のViewを登録するために ADG.java#getNativeMediationView(View view) を実行してください。
ADG.java#getNativeMediationView(View view) にて返却されたViewを、画面へaddいただき、広告の表示をおこなってください。

# 実装例

弊社広告枠のカスタム配信設定にて、AdMobのネイティブ広告を設定済みの広告枠IDをセットしてリクエストしていることを前提とし、
AdMobのネイティブ広告が正常に受信した場合、下記デリゲートに通知されます。

# 広告View構築時の注意

広告のレイアウトにつきまして、AdMobのレギュレーションがございます。
公式のネイティブ広告のポリシーとガイドライン (opens new window)にて、広告レイアウトやタップ領域についての記述がございますので、ご確認ください。

# コンテンツ マッピングの設定

コンテンツ マッピングを導入すると、コンテンツに基づくターゲティングを実施できます。
詳細はこちらを確認してください。

アプリ向けコンテンツ マッピング (opens new window)

Ad Generation SDKからコンテンツマッピングを有効にするには以下のように setContentUrl()にURLを指定してください。

# proguardの設定

proguardを設定する場合は設定ファイルに以下を追加してください。

-keep public class com.socdm.d.adgeneration.** { *; }
-keep public interface com.socdm.d.adgeneration.** { *; }
-keep public class com.google.android.gms.ads.** {
   public *;
}
-keep public class com.google.ads.** {
   public *;
}

# テスト用ID

テスト広告の表示に使用するAd Genrationの広告枠IDです。
このIDをセットしたままアプリをリリースしないようご注意ください。

サイズ テストID 配信広告1 配信広告2
バナー 43469 AdMob テスト広告
インタースティシャル 43250 AdMob テスト広告
ネイティブ(Advanced/Content/Unified ※1) 46155 AdMob テスト広告
ネイティブ(Advanced/AppInstall/Unified ※1) 46156 AdMob テスト広告
ネイティブ(Advanced/Contents/AppInstall/Unified ※1) 46471 AdMob テスト広告

※1:setEnableUnifiedNativeAdフラグをtrueにしていれば統合広告が返却されます

Last Updated: 4/4/2023, 4:49:52 AM