# Google AdMob 集成

> 使用 LevelPlay 的聚合平台将 AdMob 作为广告网络集成到 React 本地 app程序中。

> **Important:**
>
> 以下文档涉及非 Unity 开发、拥有或运营的产品或服务（“第三方产品”）。
> 这些信息可能已过时或不完整，仅为方便您参考才提供。
> 您对任何第三方产品的使用均受产品自身条款的约束。
> Unity 对这些产品不提供任何担保，也不对因使用这些产品而造成的任何损害或损失负责，包括与第三方供应商提供的内容、广告或材料有关的问题。

本指南将逐步说明如何在 Unity LevelPlay 聚合中将 AdMob Live 设置为广告网络。

## 先决条件##prerequisites

* 确保将奖励广告服务、插页式广告服务或横幅广告服务正确集成到应用程序中。请参阅以下指定的于平台的指南以了解集成说明：

  **Integration guides:**

  * [奖励广告服务](/grow/levelplay/sdk/react/rewarded-ads-integration.md)
  * [插屏广告](/grow/levelplay/sdk/react/interstitial-integration.md)
  * [横幅广告](/grow/levelplay/sdk/react/banner-integration.md)

本指南将逐步说明如何在 Unity LevelPlay Mediation 中将 AdMob 和 AdMob Native 设置为实时广告网络。

## 先决条件

确保在应用程序中正确集成 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。如果要使用 CocoaPods 进行 AdMob 集成，请确保您有 CocoaPods 版本 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. 建议将 AdMob 帐户的时间调整为 UTC，以便与 Ironsource 平台保持一致。这将确保准确的报告。[了解更多信息](https://support.google.com/admob/answer/7276705?hl=en)。

## 步骤 2.在 Admob 中创建应用程序和广告区域

接下来，您必须添加 app 并在 AdMob 帐户中设置 Ad Zones。

AdMob 不允许在同一设置中设置超过 3 个相同广告类型的广告区域。\
例如，聚合组的奖励广告服务不得超过三个。

### 添加 app

* 登录 AdMob 帐户。在控制面板上，选择 **Apps**。

* 此时将显示一个模态，您可以在其中搜索 app、手动添加 app 或直接选择现有 app 进行变现。

  > **Note:**
  >
  > 您需要每个平台（iOS Android）都有一个唯一的 AdMob 应用程序，就像您的 LevelPlay 帐户一样。

* 选择插页式、奖励式、横幅广告或原生高级（横幅广告的原生广告服务）作为广告单元格式，并输入相关详细信息。

#### 插页式视频

* **Ad Type（广告类型**）：您可以保留这两个复选框，因为我们支持文本、图像、视频和富媒体插页。
* **Ad unit name（广告单元名称）**：建议的最佳做法是直观地命名广告单元，以便通过 Unity LevelPlay Mediation 很容易识别为要投放 AdMob Interstitials 的广告单元。

#### 奖励广告

* **Ad unit name（广告单元名称）**：建议的最佳做法是直观地命名广告单元，以便通过 Unity LevelPlay Mediation 轻松识别为 AdMob 奖励广告服务的广告单元。

#### 横幅广告

* **Ad Unit Name（广告单元名称**）： 建议的最佳做法是直观地命名广告单元，以便很容易识别为您即将投放的广告单元 AdMob Banners Unity LevelPlay Mediation
* **eCPM 地面 -** 根据国家和瀑布流策略启用并输入 eCPM 值

> **Important:**
>
> 自动刷新：**选择“不刷新”选项。**（提醒 - 您可以在聚合平台上控制刷新速率）

#### 原生横幅

横幅的原生广告服务使您能够从 Google AdMob 访问原生广告需求。这意味着您可以通过访问 Google 的原生需求和横幅需求来提高横幅效果。

* **Ad unit name（广告单元名称）**：键入要轻松识别的名称
  * **高级设置**：同时选择**图像**和**视频**
  * **eCPM 地面**：根据您的国家和瀑布流策略启用并输入 eCPM 值

现在检索 app ID 和 Ad Unit ID 并保存以供以后使用。然后，选择 **Done**。

## 步骤 3.在 LevelPlay 网络设置模块中激活 AdMob

在 LevelPlay SDK Networks Setup（LevelPlay SDK 网络设置）页面上设置 AdMob 时，请登录 Google 帐户，然后将自动获取运行 AdMob 插页、奖励、横幅广告和原生广告服务的必要参数。

为了使 AdMob 能够与 LevelPlay SDK 正常工作，需要将 AdMob 帐户中的一些数据插入到 ironSource Network Setup Module 中：

| 数据                | 描述                           |
| ----------------- | ---------------------------- |
| App ID（应用 ID）     | Admob 后台上分配给 app 的唯一 ID。     |
| 广告单元 ID           | Admob 后台上分配给 app 广告单元的唯一 ID。 |
| Client ID（客户端 ID） | 指定帐户与广告单元之间关系的唯一标识符。         |
| 客户端密钥             | 与客户端 ID 配对的密钥                |
| 刷新令牌              | 客户端应用程序已收到的刷新令牌。             |

获取此信息后，必须在 LevelPlay 帐户中配置 AdMob 的参数。正确添加上述信息后，您将能够充分利用 AdMob 的广告库存和关于 Unity LevelPlay Mediation 的报告数据。

1. **App ID（应用 ID）**
   要获取 app ID，请转到 Admob 平台上左侧栏中的 **Apps** 选项卡，然后选择 **App Settings**。然后，您将看到应用程序的设置以及 app ID。

![app ID location](/api/media?file=/grow/media/images/App-ID-1.png)

2. **广告单元 ID**
   要获取广告单位 ID，请转到 Admob 平台上左侧栏的 **Apps** 选项卡，然后选择 **Ad Units**。然后，您将看到应用程序的广告单位以及 Ad Unit ID。

![广告单元 ID 位置](/api/media?file=/grow/media/images/Ad-Unit-ID.png)

3. **客户端 ID 和客户端密钥**

   1. 要获取**客户端 ID 和客户端密钥**，请访问 [Google API Manager](https://console.cloud.google.com/apis)。

   2. 选择页面左上角的 **API 项目**下拉选单，选择 **Create a project**（创建项目）或选择已为此 app 创建的项目。如果要为此创建新项目，请在出现的对话框中提供**项目名称**、**计费帐户**和 **Location**，然后选择 **Create**。

   3. 在左侧栏中，选择 **Credentials**，然后选择 **OAuth consent screen** 选项卡。 在此页面上，提供**商品名称**。选择 **Save（保存）**。

   4. 在左侧栏中，选择 **Dashboard**\*\* 和\*\*，然后选择 **启用 API 和服务**。

   5. 接下来，启用 **AdMob API**。

   6. 选择左侧栏中的 **Credentials** 选项卡。选择 **Create credentials** 下拉列表并选择 **OAuth Client ID**。

   7. 选择 **Web application**，并为 app 提供名称。在以下字段中，必须输入至少一个**授权重定向 URI** 的[https://developers.google.com/oauthplayground](https://developers.google.com/oauthplayground)。例如：

      * **授权的 JavaScript 来源：**`https://YOUR_NAMESPACE **(Optional)**`
      * **授权重定向 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**（使用您自己的 OAuth 凭据）。输入**客户端 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**。

![授权 API](/api/media?file=/grow/media/images/Step-1.png)

4. 授权项目访问 AdMob 数据。
5. 然后，您应该会收到步骤 1 中的授权代码，并可以选择**令牌交换授权代码**按钮。然后，您将获得一个 **Refresh 令牌**和一个 Access Token。

![刷新令牌](/api/media?file=/grow/media/images/Admob-22.png)

### 在 LevelPlay 帐户中配置 AdMob 参数

* 拥有所有这些参数后，登录 IronSource 帐户，然后转到 **Monetize** > **SETUP** > **SDK Networks**。

![SDK 网络](/api/media?file=/grow/media/images/Level-Play-SDK.jpg)

* 从 **Manage Networks** 列表中选择 Admob，然后输入 Admob **客户端** **ID**、**Client Secret** 和 **Refresh Token**，或选择 **Login with Google** 选项。

![登录选项](/api/media?file=/grow/media/images/client-id.png)

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

* 选择 **Save（保存）**。然后，将在 **Available Ad Networks** 表中启用 AdMob 和 AdMob Native。

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

* 接下来，选择要使用 AdMob 运行 Unity LevelPlay 聚合的app程序。
* 从 Ad Networks 的 Setup 列表中选择 Admob，然后选择 Tool **Define** 图标。然后在 **Interstitial**、**Rewarded ads** **Video** 或 **Banner Settings** 下插入 **App ID** 和 **Ad Unit** **ID**。

![定义设置](/api/media?file=/grow/media/images/define.png)

* 验证与 Reporting API 的集成；此列将通过 Reporting API 检查您的集成，并返回三种可能的响应：Verified、Failed 和 No Response。仔细检查您的集成和上面输入的信息；然后选择 **Retry**（重试），直到看到 **Verified（已验证**）。

## 步骤 4.将 AdMob 适配器添加到构建中 ##step-4.-add-the-admob-adapter-to-your-build

使用适用于 [Android](/grow/levelplay/sdk/android/networks/guides/google-admob.md) 和 [iOS](/grow/levelplay/sdk/ios/networks/guides/google-admob.md) 的原生适配器继续集成。

## 步骤 5。其他步骤##step-5.-additional-steps

使用以下选项时，在初始化 LevelPlay SDK **之前**调用 `LevelPlay.setMetaData`。

### 面向子项的设置 – COPPA##child-directed-setting--coppa

LevelPlay 聚合允许发布者将 AdMob 面向儿童的设置直接传达给 AdMob 网络。此功能是使用 LevelPlay SDK 6.14.0+、AdMob 适配器 4.3.9+ Android / 4.3.11+ iOS 已启用的。

使用以下语法，使用参数 true 设置 AdMob **setTagForChildDirectedTreatment**：

```js
从“Unity-levelplay-mediation”导入 { LevelPlay }

LevelPlay.setMetaData('AdMob_TFCD', ['true'])
```

使用以下语法使用参数 false 设置 AdMob **setTagForChildDirectedTreatment**：

```js
从“Unity-levelplay-mediation”导入 { LevelPlay }

LevelPlay.setMetaData('AdMob_TFCD', ['false'])
```

要了解有关 AdMob 网络下面向儿童的设置的更多信息，请访问[此处](https://developers.google.com/admob/android/targeting#child-directed_setting)。

### 未满同意年龄的用户 – GDPR##users-under-the-age-of-consent--gdpr

LevelPlay 聚合允许发布者与 AdMob 网络通信 Tag For Users under the Age of Consent in Europe (TFUA) 请求。此功能是使用 LevelPlay SDK 6.14.0+、AdMob 适配器 4.3.9+ Android / 4.3.11+ iOS 已启用的。

使用以下语法将 **setTagForUnderAgeOfConsent** 设置为 true：

```js
从“Unity-levelplay-mediation”导入 { LevelPlay }

LevelPlay.setMetaData('AdMob_TFUA', ['true'])
```

使用以下语法将 **setTagForUnderAgeOfConsent** 设置为 false：

```js
从“Unity-levelplay-mediation”导入 { LevelPlay }

LevelPlay.setMetaData('AdMob_TFUA', ['false'])
```

要了解有关 AdMob 网络下未达到同意年龄的用户的更多信息，请访问[此处](https://developers.google.com/admob/android/targeting#users_under_the_age_of_consent)。

### 广告内容过滤##ad-content-filtering

LevelPlay 聚合允许发布者与所有 AdMob 网络沟通所有广告请求的最大广告内容评级。此功能是使用 LevelPlay SDK 7.12.0+、AdMob 适配器 4.3.23+ Android / 4.3.28+ iOS 已启用的。

使用以下语法设置 maxAdContentRating：

```js
从“Unity-levelplay-mediation”导入 { LevelPlay }

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)。

### 内容网址映射支持##content-url-mapping-support

LevelPlay 支持 Google 的应用程序内容映射，并允许使用“Google\_Content\_Mapping”设置共享 URL。此功能是使用 LevelPlay SDK 7.7.0+、AdMob 适配器 4.3.41+ Android / 4.3.51+ iOS 已启用的。在[此处](https://support.google.com/admob/answer/11050896)了解有关 Google 内容映射的更多信息。

要通道单内容网址：

```js
从“Unity-levelplay-mediation”导入 { LevelPlay }

LevelPlay.setMetaData('Google_Content_Mapping', ['https://www.example.com'])
```

要支持多个 URL，请使用同一密钥并共享最多 4 个 URL：

```js
从“Unity-levelplay-mediation”导入 { LevelPlay }

LevelPlay.setMetaData('Google_Content_Mapping', [
  'https://www.example.com',
  'https://www.example2.com',
])
```

## 验证广告网络集成##verify-your-ad-network-integration

要验证 LevelPlay SDK 和其他广告网络的集成情况，请遵循本[文档](/grow/levelplay/sdk/react/integration-helper.md)。

## 后续步骤##next-steps

要利用其他聚合广告网络，请集成[适配器](/grow/levelplay/sdk/react/mediation-networks.md)并按照我们的集成指南进行操作。
