Google Mobile Ads SDK をアプリに統合することは、広告を表示して収益を得るための第一歩です。SDK を統合したら、広告フォーマット(ネイティブ、動画リワードなど)を選択し、手順に沿って実装します。
始める前に
アプリを準備するには、以下のセクションに示す手順を完了します。
アプリの前提条件
- Android Studio 3.2 以降を使用していること
アプリのビルドファイルで次の値が使用されていることを確認します。
minSdkVersion
が19
以上compileSdkVersion
が28
以上
AdMob アカウントでアプリを設定する
次の手順に沿って、アプリを AdMob アプリとして登録します。
AdMob にアプリを登録します。この手順では、ガイドの後半で必要になる固有の AdMob アプリ ID を使用して、AdMob アプリを作成します。
アプリを構成する
プロジェクト レベルの
build.gradle
ファイルで、buildscript
セクションとallprojects
セクションの両方に Maven のリポジトリと Maven セントラル リポジトリを含めます。buildscript { repositories { google() mavenCentral() } } allprojects { repositories { google() mavenCentral() } }
Google Mobile Ads SDK の依存関係をモジュールのアプリレベルの Gradle ファイル(通常は
app/build.gradle
)に追加します。dependencies { implementation 'com.google.android.gms:play-services-ads:22.1.0' }
アプリの
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)内のユーザーから同意を得る必要がある場合は、リクエスト固有のフラグ(tagForChildDirectedTreatment
や tag_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 が提供するさまざまな広告フォーマットの使用方法を示しています。