始める

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

始める前に

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

アプリの前提条件

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

    • minSdkVersion19 以上
    • compileSdkVersion28 以上

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

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

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

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

アプリを構成する

  1. プロジェクト レベルの build.gradle ファイルで、buildscript セクションと allprojects セクションの両方に 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:22.1.0'
    }
    
  3. アプリの AndroidManifest.xml ファイルに AdMob アプリ ID(AdMob管理画面で識別される)を追加します。これを行うには、<meta-data> タグを android:name="com.google.android.gms.ads.APPLICATION_ID" とともに追加します。アプリ ID は AdMob UI で確認できます。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 13 と連携するように、AD_ID 権限を宣言します。

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

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

    <manifest>
        <application>
            <meta-data
                android:name="com.google.android.gms.ads.APPLICATION_ID"
                android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
    
            <-- For apps targeting Android 13 or higher & 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.permission.AD_ID 権限の申告について詳しくは、こちらの Google 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 Mobile Ads リポジトリでは、この API が提供するさまざまな広告フォーマットの使用方法を示しています。