Google Mobile Ads SDK のアプリへの統合は、広告を表示して収益を得るための第一歩です。SDK を統合したら広告フォーマット(ネイティブ広告やリワード動画広告など)を選択し、手順に沿って実装してください。
始める前に
アプリを準備するには、以下のセクションに示す手順を完了します。
アプリの前提条件
アプリのビルドファイルで次の値が使用されていることを確認します。
23
以降の最小 SDK バージョン34
以降の SDK バージョンをコンパイルする
アプリを構成する
Gradle の設定ファイルに、Google の Maven リポジトリと Maven セントラル リポジトリを含めます。
Kotlin
pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } } rootProject.name = "My Application" include(":app")
Groovy
pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } } rootProject.name = "My Application" include ':app'
Google Mobile Ads SDK の依存関係をアプリレベルのビルドファイルに追加します。
Kotlin
dependencies { implementation("com.google.android.gms:play-services-ads:24.2.0") }
Groovy
dependencies { implementation 'com.google.android.gms:play-services-ads:24.2.0' }
[Sync Now] をクリックします。同期の詳細については、プロジェクトと Gradle ファイルを同期するをご覧ください。
アド マネージャーの管理画面で特定されるアド マネージャー アプリ ID を、アプリの
AndroidManifest.xml
ファイルに追加します。これを行うには、android:name="com.google.android.gms.ads.APPLICATION_ID"
を含む<meta-data>
タグを追加します。アプリ ID はアド マネージャーの管理画面で確認できます。android:value
の場合は、ご自身のアド マネージャー アプリ ID を引用符で囲んで挿入します。<manifest> <application> <!-- Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713 --> <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value=" /<network_code>~<application_id>"/> </application> </manifest>
実際のアプリでは、サンプルアプリ ID を実際のアド マネージャー アプリ ID に置き換えてください。サンプル ID は、Hello World アプリで SDK を試すだけに使用できます。
また、ここに示されているとおりに
<meta-data>
タグを追加しないと、次のメッセージが表示されてクラッシュします。Missing application ID.
(省略可)以前のバージョンが 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 を初期化します。
Google Mobile Ads SDK とアダプタの初期化の両方が完了すると、または 30 秒のタイムアウト後に、このメソッドは SDK を初期化し、完了リスナーを呼び出します。この処理は 1 回だけ行います(アプリの起動時に行うのが理想的です)。
初期化時に、Google Mobile Ads SDK またはメディエーション パートナーの SDK によって広告がプリロードされる場合があります。欧州経済領域(EEA)のユーザーから同意を取得する必要がある場合は、リクエスト固有のフラグ(setTagForChildDirectedTreatment()
や setTagForUnderAgeOfConsent()
など)を設定するか、広告を読み込む前になんらかの措置を講じてから、Google Mobile Ads SDK を初期化するようにしてください。
アクティビティ内のバックグラウンド スレッドで initialize()
メソッドを呼び出す方法の例を次に示します。
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);
new Thread(
() -> {
// Initialize the Google Mobile Ads SDK on a background thread.
MobileAds.initialize(this, initializationStatus -> {});
})
.start();
}
}
Kotlin
import com.google.android.gms.ads.MobileAds
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val backgroundScope = CoroutineScope(Dispatchers.IO)
backgroundScope.launch {
// Initialize the Google Mobile Ads SDK on a background thread.
MobileAds.initialize(this@MainActivity) {}
}
}
}
広告フォーマットを選択する
これで Google Mobile Ads SDK がインポートされ、広告を実装できるようになりました。 アド マネージャーにはさまざまな広告フォーマットが用意されており、アプリのユーザー エクスペリエンスに最適なものを選択できます。
バナー
バナー広告ユニットには、アプリのレイアウト内の一部分を使用する長方形の広告が表示されます。一定時間の経過後に自動更新される。そのため、アプリで同じ画面を表示していてもユーザーには定期的に新しい広告が表示されます。また、バナー広告ユニットは最も簡単に実装できる広告フォーマットでもあります。
インタースティシャル
インタースティシャル広告ユニットでは、アプリに全画面広告が表示されます。ゲームアプリのレベルクリア後など、アプリのインターフェースの自然な中断や遷移時に配置します。
ネイティブ
ネイティブ広告は、広告見出しや行動を促すフレーズなどのアセットをアプリに表示する方法をカスタマイズできる広告です。広告のスタイルを自分で設定することで、自然でコンテンツの邪魔にならないように広告を表示し、ユーザー エクスペリエンスを向上させることができます。
Google アド マネージャーでは、ネイティブ広告を実装する方法として、ネイティブ スタイルとカスタム レンダリングによる標準ネイティブ広告の 2 種類が用意されています。
ネイティブ スタイルは、ネイティブ広告の実装を簡素化するように設計されているため、このフォーマットにまだ慣れていないユーザーにとって最適な選択肢です。カスタム レンダリングは、より自由に内容を構成できるよう設計されています。
ネイティブ スタイルを実装する ネイティブ広告を実装する(カスタム レンダリング)
特典
リワード広告ユニットを使用すると、ユーザーはゲームをプレイしたり、アンケートに回答したり、動画を視聴したりして、コイン、追加ライフ、ポイントなどのアプリ内報酬を獲得できます。広告ユニットごとに異なる報酬を設定し、ユーザーが受け取る報酬の価値やアイテムを指定できます。
リワード インタースティシャル
リワード インタースティシャルは、アプリの画面が変わる自然なタイミングで自動的に表示される広告に対して報酬(例: コイン、追加ライフ)を提供できる、新しいタイプのインセンティブ広告フォーマットです。
リワード広告とは異なり、ユーザーはリワード インタースティシャルを表示するためにオプトインする必要はありません。
リワード広告のオプトイン プロンプトの代わりに、リワード インタースティシャルでは、報酬について通知し、ユーザーが希望する場合にはオプトアウトできる選択肢を提示する導入画面が必要です。
アプリ起動
アプリ起動時広告は、ユーザーがアプリを開いたとき、またはアプリに戻ったときに表示される広告フォーマットです。広告は読み込み画面に重ねて表示されます。
参考情報
GitHub の Google Mobile Ads リポジトリでは、この API に用意されているさまざまな広告フォーマットの使い方を確認できます。