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

> AdMob アカウントを作成し、広告ユニットを設定し、LevelPlay アカウントにリンクすることで、AdMob を Unity LevelPlay の広告ネットワークとして統合できます。

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

> **Note:**
>
> このメディエーションネットワークのアダプタ変更ログを表示するには、[iOS 用メディエーションネットワーク](/grow/levelplay/sdk/ios/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:**
>
> AdMob SDK 7.69.0 以降では、AdMob は XCFramework を使用しています。AdMob インテグレーションに CocoaPods を使用している場合は、CocoaPods Version 1.9.0 以降が必要です。
>
> V7.42.0\*\*（Adapterバージョン\*\*4.3.3以降）では、AdMobのSDKで[はここ](https://developers.google.com/admob/ios/quick-start#update_your_infoplist)で説明されているように、パブリッシャーがAdMob App IDをアプリケーションのplistに追加する必要があります。
> または、この変更をプログラムで行うことができます。
>
> ```xml
> <key>GADApplicationIdentifier</key>
> <string>[APP_ID]</string>
> ```
>
> “GADApplicationIdentifier” の値をステップ 3 で取得した App ID 値に置き換えます。

LevelPlay SDK は\*\*、Cocoapod\*\* と**手動**ダウンロードの両方のメカニズムをサポートします。

### **CocoaPods**##**cocoapods**

AdMob SDK を Cocoapods と統合するには、podfile に以下の行を入力して準備完了です。

```ruby
pod 'IronSourceAdMobAdapter','5.6.0'
```

### 手動ダウンロード##manual-download

1. **AdMob Adapter のダウンロード**\
   AdMob Adapter と SDK をビルドに追加します。[iOS のメディエーションネット](/grow/levelplay/sdk/ios/mediation-networks.md)ワーク を参照してください。
   AdMob アダプターに AdMob SDK が含まれていないため。AdMob SDK もプロジェクトに追加する**必要**があります。
2. **AdMob XCframeworks をプロジェクトに追加する**
   * Adapter と SDK をダウンロードしたら、Adapter と SDK の **XCframework** ファイルを Xcode プロジェクトにドロップします。
   * ネイティブバナー用の xcframework ドロップ[**リソースファイル**](https://developers.is.com/wp-content/uploads/2023/12/ISAdMobResources.bundle.zip)なしでフレームワークをインポートする場合
3. **ターゲット** ＞ **ビルド設定** ＞ **アーキテクチャ を**開き、Xcode プロジェクトで **Base SDK** version **8.0** 以降を使用し、armv6 アーキテクチャを使用しないことを確認します。
4. **リンカーフラグ:**\
   **ターゲット** > **ビルド設定** > **リンク** > その**他のリンカーフラグ** に 2 つの別のリンカーフラグを追加します。\
   –**ObjC**

## ステップ 5.Info.plist 更新##step-5.-update-info.plist

V7.42.0\*\*（Adapterバージョン\*\*4.3.3以降）では、AdMobのSDKで[はここ](https://developers.google.com/admob/ios/quick-start#update_your_infoplist)で説明されているように、パブリッシャーがAdMob App IDをアプリケーションのplistに追加する必要があります。
または、この変更をプログラムで行うことができます。

```xml
<key>GADApplicationIdentifier</key>
<string>[APP_ID]</string>
```

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

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

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

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

以下の構文を使用して、パラメーター YES で AdMob **tagForChildDirectedTreatment** を設定します。

1. **Objective-C**

   ```objective-c
   [LevelPlay setMetaDataWithKey:@"AdMob_TFCD" value:@"true"];
   ```

2. **Swift**

   ```swift
   LevelPlay.setMetaDataWithKey("AdMob_TFCD", "true")
   ```

以下の構文を使用して、AdMob **tagForChildDirectedTreatment** にパラメーター NO を設定します。

1. **Objective-C**

   ```objective-c
   [LevelPlay setMetaDataWithKey:@"AdMob_TFCD" value:@"false"];
   ```

2. **Swift**

   ```swift
   LevelPlay.setMetaDataWithKey("AdMob_TFCD", "false")
   ```

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

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

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

以下の構文を使用して、**tagForUnderAgeOfConsent** を YES に設定します。

1. **Objective-C**

   ```objective-c
   [LevelPlay setMetaDataWithKey:@"AdMob_TFUA" value:@"true"];
   ```

2. **Swift**

   ```swift
   LevelPlay.setMetaDataWithKey("AdMob_TFUA", "true")
   ```

以下の構文を使用して、**tagForUnderAgeOfConsent** に NO を設定します。

1. **Objective-C**

   ```objective-c
   [LevelPlay setMetaDataWithKey:@"AdMob_TFUA" value:@"false"];
   ```

2. **Swift**

   ```swift
   LevelPlay.setMetaDataWithKey("AdMob_TFUA", "false")
   ```

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

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

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

以下の構文を使用して、**maxAdContentRating を**設定します

1. **Objective-C**

   ```objective-c
   [LevelPlay setMetaDataWithKey:@"AdMob_MaxContentRating" value:@"MAX_AD_CONTENT_RATING_G"];
   ```

2. **Swift**

   ```swift
   LevelPlay.setMetaDataWithKey("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/ios/targeting#ad_content_filtering)を参照してください。

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

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

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

1. **Objective-C**

   ```objective-c
   [LevelPlay setMetaDataWithKey:@"Google_Content_Mapping" value:@"https://www.example.com"];
   ```

2. **Swift**

   ```swift
   LevelPlay.setMetaDataWithKey("Google_Content_Mapping", value: "https://www.example.com")
   ```

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

1. **Objective-C**

   ```objective-c
   [LevelPlay setMetaDataWithKey:@"Google_Content_Mapping" values:@[@"https://www.example1.com",@"https://www.example2.com"] mutableCopy];
   ```

2. **Swift**

   ```swift
   LevelPlay.setMetaDataWithKey("Google_Content_Mapping", values: ["https://www.example1.com", "https://www.example2.com"])
   ```

## ステップ 7.ネイティブ広告を有効にする (クローズドベータ版)##step-7.-enable-native-ads-(closed-beta)

### リソースバンドル##resources-bundle

リソースバンドルには、さまざまなバナーサイズのネイティブバナーカスタムビューが含まれています。以下のステップに従って、リソースバンドルをプロジェクトに追加します。

1. プロジェクトターゲットの選択
2. ビルドフェーズタブに移動します。
3. Copy Bundle Resourcesを開き、\*\*+\*\*アイコンを選択します。
4. ISAdMobResources.bundle を選択し、**Add を**選択します。

> **Note:**
>
> AdMob のネイティブバリデーター特徴は、テスト広告ではデフォルトで有効になっています。AdMob [ウェブサイト](https://developers.google.com/admob/ios/native/validator) にアクセスして特徴を無効にしてください。

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

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

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

追加のメディエーション広告ネットワークを活用するには、[アダプタ](/grow/levelplay/sdk/ios/mediation-networks.md)を統合し、インテグレーションガイドに従います。
