本文へ移動

はじめに

概要

Capacitor 向けのコミュニティ製ネイティブ AdMob プラグインです。iOS と Android の Google Mobile Ads SDK をラップし、Capacitor アプリでバナー、インタースティシャル、リワード、リワード付きインタースティシャル、アプリ起動時広告を表示できます。

機能

  • バナー広告(アダプティブバナーを含む)
  • インタースティシャル広告
  • リワード動画広告
  • リワード付きインタースティシャル広告
  • アプリ起動時広告
  • Google User Messaging Platform(UMP)による同意
  • App Tracking Transparency(iOS のトラッキング許可)ヘルパー

目的から選ぶ

目的 広告形式 ガイド
アプリのコンテンツと並べて広告を出し続ける バナー バナー広告
報酬なしで、自然な区切りにフルスクリーン広告を出す インタースティシャル インタースティシャル広告
専用のリワード体験を提供する リワード リワード広告
自然な遷移で報酬を提供する リワード付きインタースティシャル リワード広告
アプリ起動の体験を収益化する アプリ起動時 アプリ起動時広告

クイックスタート

インストール のあと、SDK を初期化し、同意を取り、バナーを表示します。

import { AdMob, AdmobConsentStatus, BannerAdOptions, BannerAdSize, BannerAdPosition } from '@capacitor-community/admob';

async function startAdMob() {
  await AdMob.initialize();

  let consentInfo = await AdMob.requestConsentInfo();
  if (consentInfo.isConsentFormAvailable && consentInfo.status === AdmobConsentStatus.REQUIRED) {
    consentInfo = await AdMob.showConsentForm();
  }

  if (!consentInfo.canRequestAds) {
    return;
  }

  const options: BannerAdOptions = {
    adId: 'YOUR_AD_UNIT_ID',
    adSize: BannerAdSize.ADAPTIVE_BANNER,
    position: BannerAdPosition.BOTTOM_CENTER,
    margin: 0,
  };
  await AdMob.showBanner(options);
}

バナーは WebView の上のネイティブ画面に載るため、HTML を覆うことがあります。レイアウトを空ける方法は バナー広告 を見てください。詳細は 初期化同意管理、各形式のガイドです。

インストール

このプラグインには Google Mobile Ads SDK が同梱されています。パッケージを入れたあと、AdMob の アプリ ID を AndroidManifest / Info.plist に追加します。アプリ ID と SKAdNetwork(Apple の広告コンバージョン ID)は Google の Get started(Android / iOS)を見てください。Mobile Ads の依存関係を二重に足さないでください。

このプラグインは @capacitor-community/admob v8 と Capacitor 8 を対象にします。iOS 15 以降、Android API 24 以降に対応します。

npm install @capacitor-community/admob
npx cap sync

Capacitor 7 を使う場合は @capacitor-community/admob@7 をインストールします。

Google Mobile Ads SDK の版

このメジャーでは Android の Google Mobile Ads SDK を 25.4.x、iOS を 13.6.0(Swift Package Manager と CocoaPods)に固定しています。必要がない限り上書きしないでください。Android 向け Next-Gen SDK は次のプラグインメジャーまで待ちます。固定の方針は 移行 を見てください。

Android の設定

android/app/src/main/AndroidManifest.xml<application> 内に追加します。

<meta-data
  android:name="com.google.android.gms.ads.APPLICATION_ID"
  android:value="@string/admob_app_id" />

android/app/src/main/res/values/strings.xml に次を追加します。

<string name="admob_app_id">[APP_ID]</string>

[APP_ID] は広告ユニット ID ではなく、AdMob の アプリ ID に置き換えます。

変数

未設定のままで構いません。特定のアーティファクト版が必要なときだけ、アプリの variables.gradle で上書きします。

変数 アーティファクト デフォルト
playServicesAdsVersion com.google.android.gms:play-services-ads 25.4.+
userMessagingPlatformVersion com.google.android.ump:user-messaging-platform 4.0.0
androidxCoreKTXVersion androidx.core:core-ktx 1.15.0

iOS の設定

ios/App/App/Info.plist の最外層 <dict> 内に追加します。

<key>GADIsAdManagerApp</key>
<true/>
<key>GADApplicationIdentifier</key>
<string>[APP_ID]</string>
<key>SKAdNetworkItems</key>
<array>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>cstr6suwn9.skadnetwork</string>
  </dict>
</array>
<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>

[APP_ID] を AdMob アプリ ID に置き換え、NSUserTrackingUsageDescription に実際の利用目的を記載します。

SKAdNetworkItems の例は Google 自身の identifier だけです。残りの ID は Google の iOS セットアップガイド から追加します。

トラブルシューティング

CocoaPods が Google-Mobile-Ads-SDK を解決できない場合:

[error] Error running update: Analyzing dependencies
[!] CocoaPods could not find compatible versions for pod "Google-Mobile-Ads-SDK":

ios/pod repo update を実行してから、npx cap sync ios を再実行します。

ドキュメント

上の インストール から始め、広告をロードする前に 初期化同意管理 を見てください。形式は上の表から選びます。同じガイドは ドキュメントサイト(英語と日本語)にもあります。npm でこの README を開いている場合は、ガイドはサイトを使ってください。docs/ のファイルは GitHub リポジトリにあります。メソッドのシグネチャは API 節にあります。

  • 初期化AdMob.initialize と SDK オプション。
  • 同意管理 — プライバシー同意と iOS のトラッキング許可。
  • バナー広告 — バナーのオプション、ライフサイクル、イベント。
  • フルスクリーン広告:
  • アプリ起動時広告 — フォアグラウンド遷移でのロードと表示。
  • 広告イベント — 共通のライフサイクル、エラー、売上データ。
  • テスト — デモ広告ユニット、テストデバイス、同意のテスト。
  • 移行ガイド — 古いプラグイン版からの変更点。