# Google AdMob インテグレーション

> AdMob の広告ユニットを設定し、LevelPlay ダッシュボードでインテグレーションを設定することで、AdMob を Unity LevelPlay メディエーションと統合します。

> **Important:**
>
> 以下のドキュメントでは、Unity が開発、所有、または運用するものではない製品またはサービス ("サードパーティ製品") を取り上げます。
> その情報は、古かったり、不完全であったりする可能性がありますが、利便性のために提供しています。
> サードパーティ製品を使用する際は、その製品の規約に従うものとします。
> Unity はそれらの製品に関して一切保証を行わず、その使用によって生じた損害や損失 (サードパーティプロバイダーのコンテンツ、広告、製品、資料に関する問題を含む) について責任を負いません。

> **Note:**
>
> このメディエーションネットワークのアダプタ変更ログを表示するには、[Android 向けメディエーションネットワーク](/grow/levelplay/sdk/android/mediation-networks.md.md#integrate-network-adapters) を参照してください。

このガイドでは、Unity LevelPlay Mediation で AdMob と AdMob ネイティブをライブ広告ネットワークとして設定する手順をステップごとに説明します。

## 前提条件

LevelPlay SDK の[インタースティシャルメディエーション](/grow/levelplay/sdk/unity/interstitial-integration.md.md)、[リワードメディエーション](/grow/levelplay/sdk/unity/rewarded-ad-integration-package.md.md)、または[バナーメディエーション](/grow/levelplay/sdk/unity/banner-integration.md.md)がアプリケーションに正しく統合されていることを確認します。

Google Ad Manager 広告は、AdMob SDK を使用して配信されます。

AdMob SDK 7.69.0 以降では、AdMob は XCFramework を使用しています。AdMob インテグレーションに CocoaPods を使用している場合は、CocoaPods Version 1.9.0 以降が必要です。

AdMob は Android オペレーティングシステムバージョン 4.1 (API レベル 16) 以降をサポートします。必要な Gradle ビルドツールは 3.5.4 です。\\

AdMob SDK は iOS バージョン 10 以降をサポートしており、iOS バージョン 11 以降のユーザーに対して広告をサーバー配信します。

## ステップ 1. AdMob アカウントの作成

1. Unity LevelPlay Mediationを使用してAdMobのバナーとネイティブ広告インベントリにアクセスするには、AdMobで[アカウントを作成](https://www.google.com/admob/)する必要があります。
2. ironsource プラットフォームに合わせて AdMob アカウントのタイムゾーンを UTC に調整することをお勧めします。これにより、正確なレポートが保証されます。[詳細](https://support.google.com/admob/answer/7276705?hl=en)

## ステップ 2. Admob でのアプリケーションと広告ゾーンの作成

次に、アプリケーションを追加し、AdMob アカウントに広告ゾーンを設定する必要があります。

AdMob では、同じ設定で同じ広告タイプの広告ゾーンを 3 つ以上設定することはできません。\
例えば、メディエーショングループに対して許可されるリワード広告は3つまでです。

### アプリケーションの追加

* AdMob アカウントにログインします。ダッシュボードで、**Appsを**選択します。

* モーダルが表示されます。ここで、アプリケーションの検索、アプリケーションの手動追加、既存のアプリケーションを選択して収益化できます。

  > **Note:**
  >
  > LevelPlay アカウントと同様に、プラットフォーム (iOS + Android) ごとに一意の AdMob アプリケーションが必要です。

* 広告単位形式として、「interstitial」、「rewarded」、「banners」、または「ネイティブ advanced（バナーのネイティブ広告）」を選択し、関連する詳細を入力します。

#### Interstitial (インタースティシャル)

* **広告タイプ**：インタースティシャルではテキスト、画像、ビデオ、リッチ メディアをサポートするため、2 つのボックスはチェックしたままにしておきます。
* **広告ユニット名**: 推奨されるベストプラクティスは、Unity LevelPlay Mediation を通じて AdMob インタースティシャルに提供する広告単位として認識しやすいように、広告単位に直感的に名前を付けることです。

#### リワード広告

* **広告ユニット名**: 推奨されるベストプラクティスは、Unity LevelPlay Mediation を通じて AdMob のリワード広告を配信する広告単位として認識しやすいように、広告単位に直感的に名前を付けることです。

#### バナー

* **広告単位名**： 推奨されるベストプラクティスは、広告単位に直感的な名前を付けて、AdMobバナーを配信する広告単位として認識しやすくすることです。 Unity LevelPlay Mediation
* **eCPMフロア -** 国とウォーターフォール戦略に応じて、eCPM値を有効化して入力します。

> **Important:**
>
> 自動更新:**「Do not refresh」オプションを選択します。**(繰り返しになりますが、更新頻度はメディエーションプラットフォームでコントロールできます)

#### ネイティブ

バナーのネイティブ広告を使用すると、Google AdMob からネイティブ広告の需要にアクセスできます。つまり、Googleのネイティブとバナーの両方の需要にアクセスすることでバナーのパフォーマンスを向上させることができます。

* **広告ユニット名**: 簡単に認識できるように名前を入力します。
  * **詳細設定**：**画像**と**ビデオ**の両方を選択
  * **eCPM floor**：国とウォーターフォール戦略に従って eCPM 値を有効にして入力します。

App IDと広告単位IDを取得し、後で使用するために保存します。次に、**Done (完了**) を選択します。

## ステップ 3. LevelPlay ネットワークワーク設定モジュールで AdMob をアクティベートする

LevelPlay SDK Networks 設定ページで AdMob を設定するときに Google アカウントにサインインします。AdMob インタースティシャル、リワード広告、バナー、ネイティブ広告を実行するために必要なパラメータが自動的に取得されます。

AdMob が LevelPlay SDK で正しく動作するためには、ironsource ネットワーク設定モジュールに AdMob アカウントのデータをいくつか挿入する必要があります。

| データ             | 説明                                          |
| --------------- | ------------------------------------------- |
| App ID (アプリ ID) | Admob のダッシュボードでアプリケーションに割り当てられた一意の ID。      |
| 広告単位 ID         | Admob のダッシュボードでアプリケーションの広告単位に割り当てられた一意の ID。 |
| クライアント ID       | アカウントと広告単位の関係を指定する一意の識別子。                   |
| クライアントシークレット    | クライアント ID とペアになる秘密鍵                         |
| リフレッシュトークン      | クライアントアプリケーションがすでに受信している更新トークン。             |

この情報を取得したら、LevelPlay アカウントで AdMob のパラメータを設定する必要があります。上記の情報を正しく追加することで、AdMob の広告インベントリと Unity LevelPlay Mediation のレポートデータを最大限に活用できるようになります。

1. **App ID (アプリ ID)**
   App ID を取得するには、Admob のプラットフォームの左側のサイドバーにある **Apps** (アプリケーション) タブに移動し、**アプリケーション設定**を選択します。アプリケーションの設定と App ID が表示されます。

![アプリ ID の場所](/api/media?file=/grow/media/images/App-ID-1.png)

2. **広告単位 ID**
   広告単位 ID を取得するには、Admob のプラットフォームの左側のサイドバーにある **Apps** (アプリケーション) タブに移動し、**Ad Units (広告単位**) を選択します。アプリケーションの広告単位と広告単位 ID が表示されます。

![広告単位 ID の場所](/api/media?file=/grow/media/images/Ad-Unit-ID.png)

3. ****Client ID and Client Secret** (クライアント ID とクライアントシークレット)**

   1. **クライアントIDとクライアントシークレット**を取得するには、[GoogleのAPI Manager](https://console.cloud.google.com/apis)にアクセスします。

   2. ページの左上にある **API Project** ドロップダウンを選択し、**Create a project** を選択するか、このアプリケーション用にすでに作成したプロジェクトを選択します。この目的で新しいプロジェクトを作成する場合は、表示されるダイアログボックスに**プロジェクト名**、**課金アカウント**、**場所**を入力し、**Create (作成**) を選択します。

   3. 左側のサイドバーで、**［Credentials］** を選択し、［**OAuth consent screen**］ タブを選択します。 このページで、\*\*Product Name (\*\*製品名) を指定します。**Save** (保存) を選択します。

   4. 左側のサイドバーで、「**ダッシュボード**\*\*」を選択し、「**ENABLE APIS AND SERVICES**」に移動します。

   5. 次に、**AdMob API** を有効にします。

   6. 左側のサイドバーで**Credentials**タブを選択します。**Create Credentials** ドロップダウンを選択し、**OAuth client ID** を選択します。

   7. **ウェブアプリケーション**を選択し、アプリケーションの名前を指定します。下のフィールドに、少なくとも 1 つの **Authorized リダイレクト URI** の[https://developers.google.com/oauthplayground](https://developers.google.com/oauthplayground)を入力する必要があります。例を次に示します。

      * **Authorized JavaScript origins：** `https://YOUR_NAMESPACE **(Optional)**`
      * **Authorized リダイレクト URI：**[https://developers.google.com/oauthplayground](https://developers.google.com/oauthplayground)

   8. **Create** を選択すると、**クライアント ID** と**クライアントシークレット**が表示されます。

4. **リフレッシュトークン**
   1. **リフレッシュトークン**を取得するには、**[OAuth 2.0 Playground](https://developers.google.com/oauthplayground/#step1\&scopes=https%3A//www.googleapis.com/auth/adwords\&url=https%3A//\&content_type=application/json\&http_method=GET\&useDefaultOauthCred=checked\&oauthEndpointSelect=Google\&oauthAuthEndpointValue=https%3A//accounts.google.com/o/oauth2/auth\&oauthTokenEndpointValue=https%3A//www.googleapis.com/oauth2/v3/token\&includeCredentials=unchecked\&accessTokenType=bearer\&autoRefreshToken=unchecked\&accessType=offline\&forceAprovalPrompt=checked\&response_type=code) に移動します。**
   2. 右上隅にある設定アイコンを選択します。**承認プロンプト**の強制というラベルのボックスをオフにし、**Use your own OAuth credentials** をオンにします。**クライアント ID** と**クライアントシークレット**を入力。

![OAuth 設定](/api/media?file=/grow/media/images/AdMob-18.png)

3. 次に、**ステップ 1:& Authorize APIs を選択し**、\*\*[https://www.googleapis.com/auth/admob.report を](https://www.googleapis.com/auth/admob.report)\*\*入力して **Authorize APIs** を選択します。

![Authorize APIs](/api/media?file=/grow/media/images/Step-1.png)

4. プロジェクトに AdMob データへのアクセスを許可します。
5. 次に、ステップ1から承認コードを受け取り、**Exchange承認コード for tokens**ボタンを選択できるようになります。次に、**更新トークン**とアクセストークンを取得します。

![リフレッシュトークン](/api/media?file=/grow/media/images/Admob-22.png)

### LevelPlay アカウントでの AdMob パラメータの設定

* これらのパラメータをすべて設定したら、Ironsource アカウントにログインし、「**Monetize（収益化）**」＞「**設定**」＞「\*\*SDK Networks（\*\*SDK ネットワーク）」に移動します。

![SDK ネットワーク](/api/media?file=/grow/media/images/Level-Play-SDK.jpg)

* **Manage Networks** のリストから Admob を選択し、Admob **Client** **ID**、**クライアントシークレット**、**リフレッシュトークン**を入力するか、**Login with Google** オプションを選択します。

![ログイン オプション](/api/media?file=/grow/media/images/client-id.png)

![Login with Google](/api/media?file=/grow/media/images/log-in-with-google.png)

* **Save** (保存) を選択します。すると、AdMob と AdMob ネイティブが **Available Ad Networks** テーブルで有効になります。

![SDK Networks テーブル](/api/media?file=/grow/media/images/sdk-networks.png)

* 次に、AdMob で Unity LevelPlay の Mediation を実行するアプリケーションを選択します。
* Ad Networksの設定リストからAdmobを選択し、ツールの**定義**アイコンを選択します。次に、「**Interstitial**, **リワード広告** **Video** or **Banner Settings(**インタースティシャル、リワード広告ビデオ、またはバナー設定)」に**App ID**と**広告単位\*\*\*\*ID**を入力します。

![設定の定義](/api/media?file=/grow/media/images/define.png)

* Reporting API とのインテグレーションを確認します。この列では、Reporting API を通じたインテグレーションを確認し、次の 3 つの応答を返します。検証済み、失敗、無反応。インテグレーションと上で入力した情報を再確認し、**検証済み**(Verified) が表示されるまで 再試行(**Retry**) を選択します。

## ステップ 4. Admob アダプタをビルドに追加する##step-4.-add-the-admob-adapter-to-your-build

> **Important:**
>
> V17.0.0 **(Adapterバージョン4.3.1以降)** では、AdMobのSDKではパブリッシャーがアプリケーションのAndroidマニフェストにAdMob App IDを`<application/>`タグの子として追加する必要があります。
>
> ```xml
>
> <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" 
>            android:value="[ADMOB_APP_ID]"/>
> ```
>
> “ADMOB\_アプリケーション\_ID” をステップ 3 で取得した App ID 値に置き換えます。

1. allprojects > repositories ブロック内に以下の行があることを確認します。

```groovy
allprojects {
    repositories {
       flatDir {
           dirs 'libs'
       }
       google()
    }
}
```

2. dependencies ブロックに以下の依存関係を追加します。

```groovy
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
}
```

LevelPlay SDK は Gradle の依存関係と手動ダウンロードメカニズムの両方をサポートします。

### Admob アダプターと Gradle の統合##integrate-the-admob-adapter-with-gradle

1. 以下の Maven URL がアプリケーションモジュールの ビルド.gradle スクリプトに存在することを確認します (すべてのアダプターに対して 1 回のみ表示されます)。

```groovy
repositories {
    google()
    mavenCentral()
}
```

2. アダプターの Maven 名をアプリケーションモジュールの ビルド.gradle スクリプトに追加します。

```groovy
dependencies {
    implementation 'com.unity3d.ads-mediation:admob-adapter:5.11.0'
    implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.2.1'
}
```

#### 手動ダウンロードによる Admob アダプターの組み込み##integrate-the-admob-adapter-through-manual-download

1. **Admob Adapter のダウンロード:**\
   Admob Adapter をビルドに追加します。最新の Admob Adapter は[ここ](/grow/levelplay/sdk/android/mediation-networks.md)にあります。
   **重要!**Admob アダプターに Admob SDK が含まれていない。Admob SDK を直接追加**する必要**があります。

2. **Admob Adapter をプロジェクトに追加します。**\
   Adapter をダウンロードしたら、Admob Adapter jar を Android プロジェクトの **libs** フォルダーにドロップします。

   ![アダプタ JAR ファイルを Android プロジェクトの libs フォルダーにドロップします。](/api/media?file=/grow/media/images/Supersonic-Mediation-Drop-Libs.png)

3. Gradle ビルドファイルの **dependencies セクション**に以下を追加する

```groovy
dependencies {
    implementation 'com.unity3d.ads-mediation:admob-adapter:5.11.0'
    implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.2.1'
}
```

## ステップ 5.AndroidManifest.xml 更新##step-5.-update-androidmanifest.xml

LevelPlay Android SDK Version 6.17.0(AdMob Android アダプタ バージョン 4.3.10 以降)では、AdMob アダプタは AAR としてリリースされます。JAR インテグレーションを維持する場合にのみ、マニフェストを追加します。

### マニフェスト権限##manifest-permissions

```xml
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
```

### マニフェストアクティビティ##manifest-activities

以下のアクティビティーを **manifestAdditions** の **\<application>** タグ内に追加します。

```xml
<activity android:name="com.google.android.gms.ads.AdActivity"
Android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" Android:theme="@Android:style/Theme.Translucent" />
```

V17.0.0 **(Adapter バージョン** 4.3.1 以降) では、AdMob の SDK でパブリッシャーが AdMob App ID を `<application></application>` タグの子としてアプリケーションの AndroidManifest に追加する必要があります。

```xml
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID"
           android:value="[ADMOB_APP_ID]"/>
```

“ADMOB\_アプリケーション\_ID” をステップ 3 で取得した App ID 値に置き換えます。
これを行わないと、AdMob の SDK に起因するクラッシュが発生します。詳細については、[AdMobのガイド](https://developers.google.com/admob/android/quick-start#update_your_androidmanifestxml)を参照してください。

## ステップ 6.追加ステップ##step-6.-additional-steps

### 子ども向け設定 – COPPA##child-directed-setting--coppa

Unity LevelPlay メディエーションを使用すると、パブリッシャーは AdMob の子指向設定を AdMob ネットワークに直接通知できます。
この特徴は、LevelPlay SDK 6.14.0 以降、AdMob Android Adapter 4.3.9 以降を使用して有効化されます。

以下の構文を使用して、AdMob の **setTagForChildDirectedTreatment** にパラメーター TAG\_FOR\_CHILD\_DIRECTED\_TREATMENT\_true を設定します。

```java
LevelPlay.setMetaData("AdMob_TFCD","true");
```

以下の構文を使用して、AdMob の **setTagForChildDirectedTreatment** にパラメーター TAG\_FOR\_CHILD\_DIRECTED\_TREATMENT\_FALSE を設定します。

```java
LevelPlay.setMetaData("AdMob_TFCD","false");
```

AdMob ネットワークの Child Directed 設定の詳細については、[こちら](https://developers.google.com/admob/android/targeting#child-directed_setting)を参照してください。

### 同意年齢に満たないユーザー – GDPR##users-under-the-age-of-consent--gdpr

Unity LevelPlay メディエーションを使用すると、パブリッシャーは AdMob ネットワーク、TFUA (ヨーロッパの同意年齢に満たないユーザーのためのタグ) リクエストと通信できます。
この特徴は、LevelPlay SDK 6.14.0 以降、AdMob Android Adapter 4.3.9 以降を使用して有効化されます。

以下の構文を使用して、タグ\_FOR\_under\_AGE\_OF\_CONSENT\_true で **setTagForUnderAgeOfConsent** を設定します。

```java
LevelPlay.setMetaData("AdMob_TFUA","true");
```

以下の構文を使用して、タグ\_FOR\_under\_AGE\_OF\_CONSENT\_false で **setTagForUnderAgeOfConsent** を設定します。

```java
LevelPlay.setMetaData("AdMob_TFUA","false");
```

AdMob ネットワークの Child Directed 設定の詳細については、[こちら](https://developers.google.com/admob/android/targeting#users_under_the_age_of_consent)を参照してください。

### 広告コンテンツフィルタリング##ad-content-filtering

Unity LevelPlay メディエーションを使用すると、パブリッシャーは AdMob ネットワークと通信できます。すべての広告リクエストに対する最大広告コンテンツレーティングです。
この特徴は、LevelPlay SDK 7.12.0 以降、AdMob Android Adapter 4.3.23 以降を使用して有効化されます。

maxAdContentRating を設定するには、以下の構文を使用します。

```java
LevelPlay.setMetaData("AdMob_MaxContentRating","MAX_AD_CONTENT_RATING_G");
```

このプロパティに指定できる値は、Google が定義したデジタルコンテンツラベル分類に基づいています。

* MAX\_AD\_CONTENT\_RATING\_G
* MAX\_AD\_CONTENT\_RATING\_PG
* MAX\_AD\_CONTENT\_RATING\_T
* MAX\_AD\_CONTENT\_RATING\_MA

AdMob ネットワークの Ad Content Rating プロパティの詳細については、[こちら](https://developers.google.com/admob/android/targeting#ad_content_filtering)を参照してください。

### コンテンツ URL マッピング サポート##content-url-mapping-support

Unity LevelPlay は、Google のアプリケーション向けコンテンツマッピングをサポートしており、「Google\_コンテンツ\_マッピング」設定を使用して URL を共有できます。この特徴は、LevelPlay SDK 7.7.0 以降、AdMob Adapter 4.3.41 以降を使用して有効化されます。Googleのコンテンツマッピングの詳細については、[こちら](https://support.google.com/admob/answer/11050896)を参照してください。

単一コンテンツの URL を渡すには、以下の構文を使用します。

```java
LevelPlay.setMetaData("Google_Content_Mapping","https://www.example.com");
```

複数の URL をサポートするには、同じキーを使用し、最大 4 つの URL を共有します。

```java

LevelPlay.setMetaData("Google_Content_Mapping",["https://www.example1.com","https://www.example2.com"]);
```

## 広告ネットワークインテグレーションの確認##verify-your-ad-network-integration

LevelPlay とその他の広告ネットワークのインテグレーションを検証するには、この[ドキュメント](/grow/levelplay/sdk/android/integration-helper.md)を参照してください。

## 次のステップ##next-steps

Unity LevelPlay を通じて追加の広告ネットワークを活用するには、アダプタを統合し、インテグレーションガイドに従います。

**Platform adapters:**

* [Unity](/grow/levelplay/sdk/unity/mediation-networks.md)
* [Android](/grow/levelplay/sdk/android/mediation-networks.md)
* [iOS](/grow/levelplay/sdk/ios/mediation-networks.md)
* [Adobe AIR](/grow/levelplay/sdk/adobe/mediation-networks.md)
* [Flutter](/grow/levelplay/sdk/flutter/mediation-networks.md)
* [React ネイティブ](/grow/levelplay/sdk/react/mediation-networks.md)
