Skip to content

AdMobAdapter_Android_Manual

AdGeneration edited this page Jun 15, 2021 · 18 revisions

カスタムSDK連携 AdMob Android

はじめに

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

前提条件

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

実装の流れ

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

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

  • Ad Generation SDK
    追加方法は、Getting Started / バナー広告をご参照ください。

  • Ad Generation AdMob Adapter (ADG-GoogleAds-Extra-x.x.x.jar)
    AdMob Adapter ダウンロードよりダウンロードし、プロジェクトに追加してください。 ※ ADG-GoogleAds-Extra-1.1.0.jar は必ず、 play-services-ads:20.1.0 との組み合わせでご利用ください。

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:17.6.0'
    implementation 'com.google.android.gms:play-services-ads:20.1.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 ネイティブ広告

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など表示処理を適宜おこなってください。

実装例

@Override
public void onReceiveAd(Object nativeAd) {
    View nativeAdView = null;

    if (nativeAd instanceof NativeContentAd) {
        NativeContentAd nativeContentAd = (NativeContentAd) nativeAd;
        // コンテンツ広告のView構築処理
        nativeAdView = createAdView(nativeContentAd);
    }
    if (nativeAd instanceof NativeAppInstallAd) {
        NativeAppInstallAd nativeAppInstallAd = (NativeAppInstallAd) nativeAd;
        // アプリインストール広告のView構築処理
        nativeAdView = createAdView(nativeAppInstallAd);
    }
    if (nativeAd instanceof UnifiedNativeAd) {
        UnifiedNativeAd unifiedNativeAd = (UnifiedNativeAd) nativeAd;
        // 統合広告のView構築処理
        nativeAdView = createAdView(unifiedNativeAd);
    }

    if (nativeAdView != null) {
        // AD Generation SDKにViewをセットして登録する
        nativeAdView = adg.getNativeMediationView(nativeAdView);
        // ローテーション時に自動的にViewを削除します
        adg.setAutomaticallyRemoveOnReload(nativeAdView);
    }
}

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

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

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

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

スマートバナーについて

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

ADG adg = new ADG(MyActivity.this);
adg.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のネイティブ広告が正常に受信した場合、下記デリゲートに通知されます。

@Override
public void onReceiveAd(Object nativeAd) {
    View nativeAdView = null;

    if (nativeAd instanceof UnifiedNativeAd) {
        UnifiedNativeAd unifiedNativeAd = (UnifiedNativeAd) nativeAd;
        // ネイティブ広告のレイアウト作成処理
        nativeAdView = createAdView(unifiedNativeAd);
    }

    if (nativeAdView != null) {
        // AD Generation SDKにViewをセットして登録する
        nativeAdView = adg.getNativeMediationView(nativeAdView);
        // ローテーション時に自動的にViewを削除します
        adg.setAutomaticallyRemoveOnReload(nativeAdView);
    }
}

広告View構築時の注意

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

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

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

アプリ向けコンテンツ マッピング

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

ADG adg = new ADG(MyActivity.this);
adg.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 テスト広告

Home

導入マニュアルのドキュメントはコチラに移行しました。

お手数ですがリンクから遷移してください。 https://docs.sdk.ad-generation.jp/

Clone this wiki locally