# Google 竞价集成

> 使用自动设置工具或手动配置将 Google 设置为 Unity LevelPlay Mediation 上的竞价网络。

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

本指南将分步介绍如何在 Unity LevelPlay Mediation 中将 Google 设置为竞价网络。

对于 Google 出价者，完成以下步骤 1 后，即可使用自动设置工具。自动设置工具可创建 app 和出价者放置/位置，并从 AdMob 检索放置/位置详细信息，因此无需在 LevelPlay 和 AdMob 平台之间切换。或者，也可以手动完成整个设置。

> **Note:**
>
> 要查看此聚合网络的适配器更改日志，请参阅 [Unity 聚合网络](/grow/levelplay/sdk/unity/mediation-networks.md.md#integrate-network-adapters)。

## 先决条件##prerequisites

确保已将 LevelPlay 的[奖励广告服务](/grow/levelplay/sdk/unity/rewarded-ad-integration-package.md)、[插页式](/grow/levelplay/sdk/unity/interstitial-integration.md)广告或[横幅广告](/grow/levelplay/sdk/unity/banner-integration.md)正确集成到应用程序中。

从 LevelPlay SDK 7.2.7+ 版本开始支持 Google 竞价。

从 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 访问 Google 的广告库存，您需要[创建 AdMob 帐户](https://www.google.com/admob/)。
2. 建议将 AdMob 帐户的时间调整为 UTC，以便与 Unity LevelPlay 平台保持一致。这将确保准确的报告。[了解更多信息](https://support.google.com/admob/answer/7276705?hl=en)。

> **Note:**
>
> 完成步骤 1 后，可以跳到步骤 3 并使用自动出价器设置工具在 Unity LevelPlay 上启动并运行 Google 出价。如果希望继续进行手动设置，请继续执行步骤 2。

## 步骤 2.在 AdMob 中创建应用程序和广告单元

接下来，必须将app程序添加到 AdMob 帐户。

### 添加 app

* 登录 AdMob 帐户。在控制面板上，选择 **Apps**，然后**添加 app**。
* 此时将显示一个模态，您可以在其中搜索 app、手动添加 app 或直接选择现有 app 进行变现。您需要每个平台（iOS Android）都有一个唯一的 AdMob 应用程序，类似于 Ironsource 帐户。
* 选择插页式、奖励式或横幅作为广告单元格式，并输入相关详细信息。
* **插页式视频**
  * **Ad unit name（广告单元名称）**：直观地命名广告单元，以便很容易识别为您即将投放的广告单元
  * 合作**伙伴出价**：选中此复选框表示您正在另一个聚合平台上使用竞价
* **奖励广告**
  * **Ad unit name（广告单元名称）**：直观地命名广告单元，以便很容易识别为您即将投放的广告单元
  * 合作**伙伴出价**：选中此复选框表示您正在另一个聚合平台上使用竞价
*  **横幅广告**
  * **Ad unit name（广告单元名称）**：直观地命名广告单元，以便很容易识别为您即将投放的广告单元
  * 合作**伙伴出价**：选中此复选框表示您正在另一个聚合平台上使用竞价

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

有两种方法可以在 LevelPlay 上设置 Meta Audience Network：

* **自动设置** - 使用 Google 帐户登录，以自动创建新的应用程序和竞价广告位，并从 Google AdMob 平台中提取所有必要的配置设置
* **Manual** - 在 LevelPlay 和 Google AdMob 平台之间来回切换以检索和输入必要的信息。

### 自动设置

* 登录 LevelPlay 帐户，然后转到 **LevelPlay 侧导航栏** > **Setup** > **Networks**
* 从可用广告网络列表中选择 **Google AdMob**
* 选择 **Login with Google**（使用 Google 登录），然后使用您批准的 Google 帐户登录
* 如果您已经登录，请选择重置登录\*\*（需要新登录）\*\*
* 登录后，在 Google 自动设置出价器上切换
* 现在转到 **Instances 页面**，然后选择要运行 Google 插页式、奖励式或横幅广告服务的应用。 
* 选择 **Add Bidder**（添加出价人）可在 AdMob 平台上自动创建新应用和出价广告位，并导入 Ad Unit ID（广告单元 ID）。如果已所挂的到app程序的app程序 ID，如果至少有 1 个广告放置/位置没有 Ad unit ID 参数值，则可以使用自动设置工具。在这种情况下，将创建新的竞价放置/位置。
* 选择 **保存** 以批准并接受所有配置。如果关闭模块而不保存，则会在 AdMob 平台上创建资源，而不会将数据导入 LevelPlay 平台。

Google 出价者实例的状态与 ironSource 广告服务出价者的状态相同（按广告格式）。例如，如果您不使用 ironsource 广告服务出价器来获取奖励广告服务，则不会在 Google 网络中自动激活该出价器。

### 手动设置

1. 登录 LevelPlay 帐户，然后转到 **LevelPlay 侧导航栏** > **Setup** > **Networks**
2. 从可用广告网络列表中选择 **Google AdMob**
3. 将以下数据输入 LevelPlay 网络设置模块以启用 AdMob 集成 LevelPlay SDK：

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

请参阅以下说明将这些 AdMob 参数集成到 LevelPlay 中：

1. **App ID**

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

2. **Ad Unit ID**

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

3. **Client ID  and Client Secret**

   1.要获取 **客户端 ID 和客户端密钥**，请访问 [Google API Manager](https://console.cloud.google.com/apis)。
   2.选择页面左上角的 \*\*API 项目 下拉选单选单，选择 **Create a 项目 或选择已为此app程序创建的项目。如果要为此创建新项目，请在出现的对话框中提供 项目 name**、\*\*Billing 帐户 和 **Location**，然后选择 **Create**。
   3.在左侧栏中，选择 **Credentials**，然后选择 **OAuth consent screen** 选项卡。然后，提供 **Product Name** 并选择 保存。
   4.在左侧栏中，选择 **Dashboard**，然后选择 **启用 APIs and 服务**。
   5.接下来，启用 **AdMob API**。
   6.选择左侧栏中的 **Credentials** 选项卡。选择 **Create credentials** 下拉选单选单，然后选择 **OAuth 客户端 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** 和 **客户端 Secret**。

4. **Refresh Token**

   1.要检索 **Refresh Token**，请访问 **[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.选择右上角的设置图标。取消选中标记为 **力 approval 提示词 的复选框，并选中 **Use your own OAuth credentials**。输入 **客户端 ID** 和 客户端 Secret**。
   3.接下来，在 **步骤 1 中：选择 & Authorize APIS**，输入 **[https://www.googleapis.com/auth/admob.report](https://www.googleapis.com/auth/admob.report)**，然后选择 **Authorize APIs**。
   4.授权项目访问 AdMob 数据
   5.然后，您应该会收到步骤 1 中的授权代码，并可以选择 **Exchange authorization 代码 for tokens** 按钮。然后，您将获得 **Refresh token** 和 Access Token。

4) 拥有所有这些参数后，请将它们输入 LevelPlay 上的 Google AdMob 帐户设置。
5) 接下来，转到 Instances 页面。在页面顶部选择要使用 Google 竞价运行 Unity LevelPlay 聚合的app。
6) 从 Ad Networks 的设置列表中选择 Google，然后选择 Tool **Define** 图标。然后在 **Interstitial**、**Rewarded ads** **Video** 或 **Banner Settings** 下插入 **App ID** 和 **Ad Unit** **ID**。

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

### Unity Integration Manager（推荐）##unity-integration-manager-(recommended)

完成 SDK 集成后，可使用 Unity Integration Manager 下载 AdMob 适配器。

在 Unity 开发平台中，转到 **LevelPlay** > **Integration Manager**。

如果您已经拥有最新版本的适配器，则**操作**按钮将更改为 " Updated " 并已禁用。

### Android（手动解析）##android-(manual-resolve)

要应用更改，请确保使用“Resolve”过程。这将根据您的选择下载所有相关工件。有关详细信息，请参阅[此处](/grow/levelplay/sdk/unity/package-integration.md)的说明。 

## 添加 AdMob app ID##add-admob-app-id

### Android##android

将您的 AdMob app ID 作为 `<application></application>` 标签的子项添加到 app 的 AndroidManifest：

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

```

将 `[ADMOB_APP_ID]` 替换为您在步骤 3 中获取的 app ID 值。否则会导致 AdMob 的 SDK 引发的崩溃。如需了解更多信息，请参阅 [AdMob 指南](https://developers.google.com/admob/android/quick-start#update_your_androidmanifestxml)。

### iOS##ios

将 AdMob app ID 添加到 app 的 plist（如[此处](https://developers.google.com/admob/ios/quick-start#update_your_infoplist)所述）。或者，可以通过编程方式做出此更改

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

将 `GADApplicationIdentifier` 值替换为您在步骤 3 中获取的 app ID 值。

## 步骤 5。Update Info.plist（适用于 iOS）##step-5.-update-info.plist-(for-ios)

从适用于 iOS 的 AdMob SDK V7.42.0 \*\*（适配器版本 4.3.3 + iOS/Unity）\*\*开始，AdMob 的 SDK 要求发布者将其 AdMob app ID 添加到 app 的 plist 中，如[此处](https://developers.google.com/admob/ios/quick-start#update_your_infoplist)所述。或者，可以通过编程方式做出此更改

```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 Unity 适配器 4.3.12+ 已启用的。

使用以下语法，使用参数“True”设置 AdMob **setTagForChildDirectedTreatment**：

```text
 LevelPlay.SetMetaData("AdMob_TFCD","true");
```

使用以下语法，使用参数“False”设置 AdMob **setTagForChildDirectedTreatment**：

```text
 LevelPlay.SetMetaData("AdMob_TFCD","false");
```

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

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

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

使用以下语法将 **setTagForUnderAgeOfConsent** 设置为“True”：

```cs
 LevelPlay.SetMetaData("AdMob_TFUA","true");
```

使用以下语法将 **setTagForUnderAgeOfConsent** 设置为“False”：

```cs
 LevelPlay.SetMetaData("AdMob_TFUA","false");
```

要了解有关 AdMob 网络下面向儿童的设置的更多信息，请访问[此处](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 适配器 4.3.23+ 已启用的。

使用以下语法设置 maxAdContentRating：

```cs
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/unity/targeting#ad_content_filtering)。

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

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

要通道单内容网址，请使用以下语法：

```cs
LevelPlay.SetMetaData("Google_Content_Mapping","https://www.example.com");
```

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

```cs
LevelPlay.SetMetaData("Google_Content_Mapping",new[] {"https://www.example1.com","https://www.example2.com"});
```

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

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

## 后续步骤##next-steps

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