# Google Ad Manager 集成

> 通过创建 Ad Manager 帐户、设置广告库存并将其关联到您的 LevelPlay 帐户，将 Google Ad Manager 集成为 Unity LevelPlay 中的广告网络。

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

按照以下说明将 Google Ad Manager 设置为 Unity LevelPlay 聚合中的广告网络。

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

## 先决条件##prerequisites

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

  **Integration guides:**

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

* AdMob SDK 支持 iOS 版本 10+，并将在 iOS 版本 11+ 上为用户提供广告服务。

## 步骤 1.创建 Google Ad Manager 帐户

1. 要通过 Unity LevelPlay 的聚合访问 Google Ad Manager 广告库存，请[创建 Ad Manager 帐户](https://admanager.google.com/home/)。
2. 为了使用 Google AdSense Manager 进行变现，需要创建 Google AdSense 帐户
3. 将 AdSense 帐户连接到 Ad Manager 帐户

## 步骤 2.在 Google Ad Manager 中创建清单

1. 可在[此处](https://support.google.com/admanager/answer/6238692?hl=en)找到 Google AdManager 指南
2. 订单：
   1. 至少添加一个订单
   2. 将 AdSense 作为广告主连接到订单
3. 行项目
   1. 为要变现的每个广告单元添加一个广告系列 (Line Item)（Int/RV/BN/NTV BN）
   2. 选择视频行项目
   3. 商品类型 = 广告交换
4. Apps（应用）
   1. 应用程序应从 Admob 帐户自动添加
   2. 否则，请创建一个新应用程序（Inventory > Apps > 添加 app）
5. 广告单元
   1. 为每个价格点添加广告单元

## 步骤 3.在您的 LevelPlay 帐户中激活 **Google Ad Manager**

在 LevelPlay SDK Networks Setup 页面上设置 Ad Manager 时，请登录 Google 帐户。这将确保自动获取运行 Ad Manager 插页、奖励广告服务和横幅广告的所有必要参数。

1. 在 Google Ad Manager 帐户中，获取以下信息： 

| App ID（应用 ID）     | Ad Manager（广告管理器）后台上分配给 app 的唯一 ID                                               |
| ----------------- | -------------------------------------------------------------------------------- |
| API 密钥            | Ad Manager 帐户的唯一标识符。这允许 Unity LevelPlay Mediation 从 Ad Manager 帐户导入性能数据，以用于报告和优化 |
| 广告单元 ID           | Ad Manager（广告管理器）后台上分配给 app 广告单元的唯一 ID                                           |
| Client ID（客户端 ID） | 指定帐户与广告单元之间关系的唯一标识符                                                              |
| 客户端密钥             | 与客户端 ID 配对的密钥                                                                    |
| 刷新令牌              | 客户端应用程序已收到的刷新令牌                                                                  |

2. 在 LevelPlay 帐户中配置 Google Ad Manager 的参数。

* 登录您的 ironSource 帐户，然后转到 **Monetize** > **SETUP** > **SDK Networks**。

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

* 从 **Available Networks** 列表中选择 Google Ad Manager，然后输入 Ad Manager 的 **API Key**、**客户端** **ID**、**客户端 Secret** 和 **Refresh Token**；或选择 **Login with Google** 选项。

![登录凭据](/api/media?file=/grow/media/images/1-1.png)

![使用 Google 登录](/api/media?file=/grow/media/images/2.png)

* 选择 **Save（保存）**。Ad Manager 将已启用并列在 **Available Ad Networks** 表中。
* 从广告网络的设置列表中选择 Ad Manager，然后选择 Tool **Define** 按钮。在 **interstitial**、**rewarded** 或 **banner 设置**下插入 **app ID** 和 **Ad Unit** **ID**。
  ![app and Ad Unit configuration](/api/media?file=/grow/media/images/4.png)（应用和广告单元配置）- 验证与 Reporting API 的集成。此列将通过 Reporting API 检查您的集成情况，并返回三种可能的响应：Verified、Failed 和 No Response。如果您没有看到 **Verified，请**仔细检查您的集成和您输入的信息，然后选择 **Retry**，直到看到 **Verified**。

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

> **Note:**
>
> 从 AdMob SDK 7.69.0+ 开始，AdMob 使用 XCFramework。如果要使用 CocoaPods 进行 AdMob 集成，请确保您有 CocoaPods 版本 1.9.0+。
>
> 从 V7.42.0 \*\*（适配器版本 4.3.3 以上）\*\*开始，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 值。

LevelPlay SDK 支持 **Cocoapods** 和 **Manual** 下载机制。

### Cocoapods##cocoapods

要将 AdMob SDK 与 Cocoapods 集成，请在 pod 文件中输入以下行，即可开始使用！

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

### 手动下载##manual-download

1. **下载 AdMob 适配器** 将 AdMob 适配器和 SDK 添加到构建中。请参阅 [iOS 调解网络](/grow/levelplay/sdk/ios/mediation-networks.md)。由于 AdMob 适配器不包含 AdMob SDK，因此还需要将 AdMob SDK 添加到项目中。
2. 将 AdMob 框架**添加到项目** 下载适配器和 SDK 后，将适配器和 SDK **框架**文件放入 Xcode 项目。
3. 打开 **目标** > **构建\*\*\*\*设置** > **架构**，确认 Xcode 项目使用**底部 SDK** **8.0** 或更高版本，并且不使用 armv6 架构。
4. **链接器标志：**将两个单独的链接器标志添加到**目标** > **构建\*\*\*\*设置** > **链接** > **其他链接器标志**：- **ObjC**

## 步骤 5。更新 Info.plist##step-5.-update-info.plist

从 V7.42.0 \*\*（适配器版本 4.3.3 以上）\*\*开始，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 Child 定向设置直接传递给 AdMob 网络。此功能是使用 LevelPlay SDK 6.14.0+、AdMob iOS 适配器 4.3.11+ 已启用的。

使用以下语法，使用参数 YES 设置 AdMob **tagForChildDirectedTreatment**：

1. **Objective-C**

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

2. **Swift**

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

使用以下语法，使用参数 NO 设置 AdMob **tagForChildDirectedTreatment**：

1. **Objective-C**

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

2. **Swift**

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

要了解有关 AdMob 网络下面向儿童的设置的更多信息，请访问[此处](https://developers.google.com/admob/ios/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 iOS 适配器 4.3.11+ 已启用的。

使用以下语法将 **tagForUnderAgeOfConsent** 设置为 YES：

1. **Objective-C**

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

2. **Swift**

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

使用以下语法将 **tagForUnderAgeOfConsent** 设置为 NO：

1. **Objective-C**

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

2. **Swift**

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

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

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

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

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

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##resources-bundle

对于低于 4.3.49 的 Google 适配器版本，资源捆绑包包含不同横幅大小的原生横幅自定义视图。按照以下步骤将资源包添加到项目中：

1. 选择项目目标 
2. 转到构建阶段选项卡
3. 打开 Copy Bundle Resources 并选择 **+** 图标
4. 选择 ISAdMobResources.bundle 并选择 **Add**

> **Note:**
>
> 测试广告服务默认已启用 AdMob Native Validator 功能，请访问 AdMob [网站](https://developers.google.com/admob/ios/native/validator)禁用该功能。

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

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

## 后续步骤##next-steps

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