# Unity 软件包集成

> 下载 LevelPlay Unity 插件并将其集成到项目中以启用广告聚合和 Monetization 功能。

> **Note:**
>
> LevelPlay Unity 软件包支持 [Unity Editor Supported 和 LTS 版本](https://unity.com/releases/editor/archive)以及 Android 操作系统版本 4.4（API 级别 19）+。iOS 版本支持是根据网络定义的。LevelPlay 聚合支持 iOS 版本 13+ 和 Xcode 版本 16+。

> **Tip:**
>
> \*\*AI 辅助集成 (Beta)：\*\*克劳德代码和其他 AI 编码代理的 LevelPlay Unity 集成技能提供有关 LevelPlay 设置的分步指导。要开始使用，请从 [Unity 技能代码仓库](https://github.com/Unity-Technologies/skills)安装并在代理中激活它。此技能目前处于 Beta 版，具体取决于您的反馈：[参加我们的调查，让我们了解您的想法](https://docs.google.com/forms/d/e/1FAIpQLSe7WvWozJ67KjgOLglSBvLug8JdgEYk895nn_BHZs0HS_bWJA/viewform)。

## 步骤 1.将 LevelPlay 添加 Unity 项目##step-1.-add-levelplay-to-your-unity-project

> **Note:**
>
> 如果您希望从 LevelPlay Unity 软件包的早期版本升级到 9.0.0+ 版本，请改用[本指南](/grow/levelplay/sdk/unity/maven-central-migration-guide.md)。

您可以按如下方式安装 LevelPlay 软件包：

* \*\*建议：\*\*通过导航到 Unity 中的 窗口 > Package Manager，将 广告服务 Mediation 软件包添加到项目中。查找“广告服务聚合”，然后选择安装按钮。还可以按其名称添加软件包：`com.unity.services.levelplay`
* 或者，[下载 Unity 插件 9.5.0](https://github.com/ironsource-mobile/Unity-sdk/raw/master/9.5.0/UnityLevelPlay_v9.5.0.unitypackage) (.unitypackage) 并将其导入 Unity 项目。

安装完成后，内置示例可用于探索和尝试 LevelPlay 的有效集成。在 Package Manager 的[软件包详细信息视图](https://docs.unity3d.com/Manual/upm-ui-details.html)中，转到 Samples，导入 LevelPlay Sample 并开始挖掘！

## 步骤 2.初始化 SDK##step-2.-initialize-the-sdk

如果尚未这样做，请转到 LevelPlay 平台并[创建新 app](/grow/levelplay/platform/get-started/add-app.md)。完成后，使用 app Key 初始化 SDK：

1. \*\*导入命名空间：\*\*在 C# 脚本的顶部，包含命名空间：`using Unity.Services.LevelPlay;`
2. \*\*初始化 SDK：\*\*在 Start() 方法中，注册事件监听器并初始化 SDK：

```csharp
public void Start() {
    // Register OnInitFailed and OnInitSuccess listeners
    LevelPlay.OnInitSuccess += SdkInitializationCompletedEvent;
    LevelPlay.OnInitFailed += SdkInitializationFailedEvent;
    // SDK init
    LevelPlay.Init("ThisIsYourAppKey");
}
```

在初始化 LevelPlay 之前注册 OnInitFailed 和 OnInitSuccess 非常重要，因为它们为您提供了重要的见解：

**OnInitSuccess** – LevelPlay 成功初始化时触发。收到此回调后，即可开始在 app 中显示广告服务。

**OnInitFailed** – LevelPlay 初始化失败时触发，因此不会显示广告服务。我们建议稍后尝试初始化 LevelPlay（当互联网连接可用时，或解决故障原因时）。

### 设置 UserID##set-userid

在初始化 LevelPlay 时可以通道输入用户 ID。如果尝试使用广告品质的[用户旅程](/grow/ad-quality/user-journey.md)，或者使用服务器到服务器回调来奖励用户，这将非常有用。

```csharp
LevelPlay.Init("ThisIsYourAppKey", "UserId");
```

## 步骤 3.LevelPlay Network Manager##step-3.-levelplay-network-manager

LevelPlay Network Manager 窗口是 LevelPlay 的所有内容的一停止式商店。您可以在 Unity 顶部导导航的 广告服务 Mediation 下找到此设置。在此处，您可以：

* 更新 LevelPlay SDK。
* 安装和更新首选广告网络。安装完成后，您需要单配置每个广告网络。[了解更多信息](/grow/levelplay/sdk/unity/mediation-networks.md)。
* 根据已安装的广告网络，使用 SKAdNetwork ID 自动更新 app 的 Info.plist。

![Unity 中的 LevelPlay Network Manager。](/api/media?file=/grow/media/images/9.2.0-Network-Manager.png)

从 LevelPlay Unity 软件包 8.8.1 开始，默认情况下将安装 Unity Ads 适配器以及 ironSource 广告服务。有关设置 Unity Ads 帐户的更多信息，请参阅 [Unity Ads 集成指南](/grow/levelplay/sdk/unity/networks/guides/unity-ads.md)。

### Android##android

要应用更改并下载相关的广告网络瑕疵，需要使用解析器。请访问：转到 Assets（资源）> Mobile Dependency Manager > Android Resolver（Android 解析器）> Resolve（解析）

应在 LevelPlay Network Manager 中的每次更改之后执行此操作。

如果使用 Gradle，可以避免将网络瑕疵下载到项目中。相反，瑕疵将在编译期间添加到 Gradle 文件中。

> **Note:**
>
> 如果您使用 Unity 软件包 8.10.0 或更高版本导入了移动端端依赖项项解析器，则会自动执行此操作。

要启用此过程，请执行以下步骤：

1. 请访问：编辑 > 项目设置 > 玩家 > Android > 发布设置
2. 启用自定义主渐变模板
3. 请访问：转到 Assets（资源）> Mobile Dependency Manager > Android Resolver（Android 解析器）> Resolve（设置）
4. 选择“Patch mainTemplate.gradle”
5. 按“OK”保存更改

## 步骤 4.其他设置##step-4.-additional-setup

### iOS##ios

### SKAdNetwork 支持##skadnetwork-support

> **Note:**
>
> 如果您已执行 Unity 软件包 9.1.0+ 版本的全新安装，LevelPlay 将自动管理此问题。在 8.8.1-9.0.1 版本中，可在 Network Manager 已启用用此功能，如步骤 3 中所述。在 8.10.0 及更早版本中，还必须在 广告服务 Mediation > Developer 设置 > LevelPlay Mediation 设置 启用 LevelPlay SDK SKAN ID 自动化。

如果您已禁用 SKAdNetwork ID 自动化，则必须在 app 属性列表文件 (Info.plist) 中手动包含每个已安装网络的 SKAdNetwork ID，以便在使用 SDK 7+ 时启用广告服务的显示：

```xml
<key>SKAdNetworkItems</key>
<array>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>su67r6k2v3.skadnetwork</string>
  </dict>
</array>
```

### app 传输安全设置##app-transport-security-settings

* 添加名为“NSAppTransportSecurity”的字典。确保在“顶级键”上添加此字典。
* 在此字典中，添加一个名为“NSAllowsArbitraryLoads”的布尔值并将其设置为 YES。
* 确保 info.plist 不包含除“NSAllowsArbitraryLoads”之外的任何其他异常，因为这可能会产生冲突。
* 在[此处](https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33)查找有关安非他明类兴奋剂的更多信息。

> **Important:**
>
> 要符合 Apple 的隐私要求，必须实现 SKAdNetwork 归因（从 Unity 软件包 9.1.0 开始自动管理）以及 iOS 隐私清单。LevelPlay 同时支持两者，您可以在[此处](/grow/levelplay/sdk/unity/ios-privacy-settings-configurations.md)了解更多信息。

> **Important:**
>
> 您必须实现与 app 相关的隐私方法。在[此处](/grow/levelplay/sdk/unity/regulation-advanced-settings.md)了解更多信息。

### Android##android

使用 Android 13+（API 级别 33+）的应用程序需要在清单文件中声明 Google 播放服务的正常权限，如下所示：

```xml
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
```

在[此处](https://support.google.com/googleplay/android-developer/answer/6048248?hl=en)阅读有关 Google 广告 ID 更改的更多信息。

## 步骤 5。验证您的集成##step-5.-verify-your-integration

LevelPlay 软件包提供了一种简单的方法来验证您的集成是否已使用其集成测试套件成功完成。测试app的集成度，验证平台设置，并审查与配置的网络相关的广告服务。

要在 app 中启用测试套件，请在初始化 SDK 之前调用以下函数：

```csharp
LevelPlay.SetMetaData("is_test_suite", "enable");
```

成功初始化 LevelPlay 后，通过调用以下函数启动测试套件：

```csharp
LevelPlay.LaunchTestSuite();
```

有关 LevelPlay 集成测试套件的更多详细信息和实现示例，请导航到本[文章](/grow/levelplay/sdk/unity/integration-test-suite.md)。

## 后续步骤##next-steps

LevelPlay 现在已完全配置完毕，准备就绪。请遵循我们的集成指南来实现广告格式：

* [奖励视频](/grow/levelplay/sdk/unity/rewarded-ad-integration-package.md)
* [插页式视频](/grow/levelplay/sdk/unity/interstitial-integration.md)
* [横幅广告](/grow/levelplay/sdk/unity/banner-integration.md)
