ご利用開始

アプリに Google Mobile Ads SDK を統合することは、広告を表示して収益を得るための第一歩です。SDK を統合したら広告フォーマット(ネイティブ広告やリワード動画広告など)を選択し、手順に沿って実装してください。

はじめに

アプリを準備するには、次のセクションの手順を完了します。

アプリの前提条件

  • Android Studio 3.2 以降を使用している
  • アプリのビルドファイルで次の値が使用されていることをご確認ください。

    • minSdkVersion16 以上
    • compileSdkVersion28 以上

AdMob アカウントでアプリを設定する

次の手順に沿って、アプリを AdMob アプリとして登録します。

  1. AdMob アカウントにログインまたは登録します。

  2. AdMob にアプリを登録します。この手順では、ガイドの後半で必要になる固有の AdMob アプリ ID を使用して、AdMob アプリを作成します。

アプリを設定する

  1. プロジェクト レベルの build.gradle ファイルで、buildscript セクションと allprojects セクションの両方に Google の Maven リポジトリMaven セントラル リポジトリを含めます。

    buildscript {
        repositories {
            google()
            mavenCentral()
        }
    }
    
    allprojects {
        repositories {
            google()
            mavenCentral()
        }
    }
    
  2. Google Mobile Ads SDK の依存関係をモジュールのアプリレベルの Gradle ファイル(通常は app/build.gradle)に追加します。

    dependencies {
      implementation 'com.google.android.gms:play-services-ads:20.4.0'
    
      // For apps targeting Android 12, add WorkManager dependency.
      constraints {
        implementation('androidx.work:work-runtime:2.7.0') {
            because '''androidx.work:work-runtime:2.1.0 pulled from play-services-ads
                       has a bug using PendingIntent without FLAG_IMMUTABLE or
                       FLAG_MUTABLE and will fail in apps targeting S+.'''
        }
      }
    }
    
  3. アプリの AndroidManifest.xml ファイルに AdMob アプリ ID(AdMob 管理画面で識別される)を追加します。追加するには、android:name="com.google.android.gms.ads.APPLICATION_ID" を持つ <meta-data> タグを追加します。アプリ ID は AdMob の管理画面で確認できます。android:value の場合は、ご自身の AdMob アプリ ID を引用符で囲んで挿入します。

    <manifest>
        <application>
            <!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
            <meta-data
                android:name="com.google.android.gms.ads.APPLICATION_ID"
                android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
        </application>
    </manifest>
    

    実際のアプリでは、上記の ID ではなく、実際の AdMob アプリ ID を使用します。ただし、Hello World アプリで SDK を試すだけであれば、上記のサンプルのアプリ ID を使用できます。

    また、前述のように <meta-data> タグを追加しなかった場合、次のメッセージが表示されてクラッシュします。

    The Google Mobile Ads SDK was initialized incorrectly.
    

    (省略可)以前のバージョンが Android S と連携するように AD_ID 権限を申告します。

    アプリで Google Mobile Ads SDK バージョン 20.4.0 以降を使用している場合、SDK は自動的に com.google.android.gms.AD_ID 権限を申告し、利用可能な広告 ID にアクセスできるため、この手順は省略できます。

    Google Mobile Ads SDK バージョン 20.3.0 以前を使用し、Android S をターゲティングしているアプリの場合、Android S をターゲットにするには、AndroidManifest.xml ファイルに com.google.android.gms.AD_ID 権限を追加する必要があります。

    <manifest>
        <application>
            <meta-data
                android:name="com.google.android.gms.ads.APPLICATION_ID"
                android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
    
            <-- For Android S devices & GMA SDK version 20.3.0 or lower -->
            <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
    
        </application>
    </manifest>
    

    権限を無効にする方法など、com.google.android.gms.AD_ID 権限の申告について詳しくは、こちらの Play Console に関する記事をご参照ください。

Google Mobile Ads SDK を初期化する

広告を読み込む前に、MobileAds.initialize() を呼び出して、アプリで Google Mobile Ads SDK を初期化します。初期化が完了すると(または 30 秒のタイムアウト後に)、完了リスナーがコールバックされます。この処理は 1 回だけ行います(アプリの起動時に行うのが理想的です)。

MobileAds.initialize() を呼び出すと、Google Mobile Ads SDK かメディエーション パートナーの SDK によって広告が事前に読み込まれる場合があります。欧州経済領域(EEA)内のユーザーから同意を得る必要がある場合は、リクエスト固有のフラグ(tagForChildDirectedTreatmenttag_for_under_age_of_consent など)を設定するか、広告が読み込まれる前になんらかの対応策を取ったうえで、Google Mobile Ads SDK を初期化するようにしてください。

アクティビティで initialize() メソッドを呼び出す方法について、次に例を示します。

MainActivity の例(抜粋)

Java

import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;

public class MainActivity extends AppCompatActivity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });
    }
}

Kotlin

import com.google.android.gms.ads.MobileAds

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

        MobileAds.initialize(this) {}
    }
}

メディエーションを使用している場合は、広告を読み込む前に、完了ハンドラが呼び出されるまで待ちます。これにより、すべてのメディエーション アダプタが確実に初期化されます。

広告フォーマットを選択する

これで Google Mobile Ads SDK がインポートされ、広告を実装できるようになりました。 AdMob ではさまざまな広告フォーマットが用意されているため、アプリのユーザー エクスペリエンスに最適なものを選択できます。

デバイス画面の上部か下部に表示される長方形の広告です。アプリの操作中は画面に表示され続けますが、一定時間が経過すると自動的に更新されるよう設定できます。モバイル広告を初めてお使いの場合は、この広告から始めるのが最適です。

バナー広告を実装する

インタースティシャル

ユーザーが閉じるまでアプリのインターフェース上に全画面表示される広告です。ゲームのレベルが切り替わる合間やタスクが完了した直後など、アプリの実行の流れが自然に一時停止するタイミングでの使用に適しています。

インタースティシャル広告を実装する

ネイティブ

アプリのデザインに合わせてカスタマイズできる広告です。広告の配置場所やスタイルを指定できるため、アプリのデザインに溶け込んだレイアウトが可能になります。

ネイティブ広告を実装する

リワード

短い動画を視聴し、体験プレイ広告やアンケートを操作したユーザーに報酬を進呈する広告です。無料アプリの収益化に使用されます。

リワード広告を実装する

その他のリソース

GitHub の Google モバイル広告リポジトリは、この API に用意されているさまざまな広告フォーマットの使い方を示しています。