# Adobe AIR 插件集成

> 使用标准或 Gradle 集成方法将 LevelPlay SDK 集成到 Adobe AIR 项目中，支持 Android 4.4+ 和 iOS 11+ 以及 Xcode 15.2+。

## 先决条件##prerequisites

* 从 Air SDK [33.1.1 ⁇ ](https://airsdk.harman.com/api/versions/33.1.1.779/release-notes/Release_Notes_AIR_SDK_33.1.1.779.pdf) 开始，您可以将 Adobe AIR 项目导出到 Android Studio 项目。iOS 版本支持是根据网络定义的。LevelPlay 广告服务和 LevelPlay 聚合支持 iOS 版本 11+、Xcode 版本 15.2+。
* Android 操作系统版本 4.4（API 级别 19）+。

## 步骤 1.将 ironSource AIR 插件添加到项目中##step-1.-add-the-ironsource-air-plugin-to-your-project

如果要从 LevelPlay SDK 的早期版本升级，必须将其从项目中完全删除，否则将导致更新问题。我们还建议从测试设备中擦除较旧的构建并进行新构建。

**LevelPlay 提供两种类型的集成：**

* 标准集成
* Gradle 集成

### **摇篮集成**##**gradle-integration**

1. 下载 [ANE](https://github.com/ironsource-mobile/AdobeAir-SDK/raw/master/8.1.0/IronSourceGradle_v8.1.0.ane)
2. 项目出到 Android Studio 项目，请使用 Gradle 导入 Android LevelPlay SDK 和适配器。[了解更多信息。](/grow/levelplay/sdk/android/sdk-integration.md)
3. 使用与标准集成相同的 ANE 来集成 iOS SDK。

> **Note:**
>
> 标准集成将在下一个版本中弃用。

### **标准集成**##**standard-integration**

完成以下步骤以在项项目中包括 Ironsource AIR ANE：

1. sdk\_btn platform="air" type="sdk"
2. 在 Flash Builder 中，右键单击项目，然后选择 **Properties** > **Flex 构建路径** > **Native Extensions**。
3. 选择 "**添加 ANE**." 并添加 **IronSource Air Plugin ANE** 文件。
4. 右键单击项目，然后选择 **Properties** > **Flex 构建打包** > **Android/iOS** > **Native Extensions**，并确保 **IronSource** **Air Plugin ANE** 文件标记为\*\*“软件包”\*\*。

> **Note:**
>
> 如果在项目使用 Flash Professional，请访问：文件 > \*\*ActionScript 设置 > **Library Path**，然后添加 Ironsource 的 **Air Plugin** **ANE** 文件。

### Unity LevelPlay 演示应用程序##unity-levelplay-demo-app

Integration Demo 应用程序演示了如何在应用中集成 Unity LevelPlay。SDK\_btn platform="air" type=" demo"

## 步骤 2.添加 onPause/onResume 和 SDK 导入##step-2.-add-onpause/onresume-&-sdk-imports

1. 在 Flex 应用程序生命周期中，通过在定义所有属性的文件顶部添加 onResume 和 onPause 来监听应用程序的激活和停用：

   ```js
   activate= "onResume()" deactivate="onPause()"
   ```

   按如下方式实现这两个函数：

   ```js
   function onResume():void {
     IronSource.instance.onResume(); 
   }
   function onPause():void {
     IronSource.instance.onPause(); 
   }
   ```

您应该在每次激活或停用app程序时间调用 onPause/onResume。
2.在脚本中导入以下内容以使用 LevelPlay SDK：

```xml
<extensionID>com.ironsource.adobeair</extensionID>
<extensionID>com.ironsource.adobeair.identifier</extensionID>
<extensionID>com.ironsource.adobeair.apset</extensionID>
<extensionID>com.ironsource.adobeair.androidx</extensionID>
```

您可以在以下链接中找到支持的 ANE：

* [AndroidX](https://github.com/ironsource-mobile/AdobeAir-adapters/raw/master/AndroidX/1.4.0/AndroidX-v1.4.0.ane)
* [Apset](https://github.com/ironsource-mobile/AdobeAir-adapters/raw/master/apset/16.0.2/Apset_v16.0.2.ane)
* [标识符](https://github.com/ironsource-mobile/AdobeAir-adapters/raw/master/identifier/18.0.1/identifier_v18.0.1.ane)

> **Note:**
>
> 确保包含 Apset 扩展和 AD\_ID 权限才能成功构建。

## 步骤 3.更新 AndroidManifest.xml##step-3.-update-androidmanifest.xml

要在 Android 上使用 LevelPlay SDK，请将相关代码添加到 AndroidManifest.xml：

将以下内容添加到 **AndroidManifest.xml** 中：

1. \*\*清单权限：\*\*在 **manifestAdditions** 标签内但在 `<application>` 标签外向 **Application Descriptor.xml** 文件添加以下权限：

```xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
```

2. \*\*清单活动：\*\*在`manifestAdditions`上的 `<application>` 标签中添加以下活动：

```xml
        <activity
                android:name="com.ironsource.sdk.controller.ControllerActivity"
                android:configChanges="orientation|screenSize"
                android:hardwareAccelerated="true" />
        <activity
                android:name="com.ironsource.sdk.controller.InterstitialActivity"
                android:configChanges="orientation|screenSize"
                android:hardwareAccelerated="true"
                android:theme="@android:style/Theme.Translucent" />
        <activity
                android:name="com.ironsource.sdk.controller.OpenUrlActivity"
                android:configChanges="orientation|screenSize"
                android:hardwareAccelerated="true"
                android:theme="@android:style/Theme.Translucent" />
        <activity
                android:name="com.ironsource.mediationsdk.testSuite.TestSuiteActivity"
                android:configChanges="orientation|screenSize"
                android:hardwareAccelerated="true"
                android:theme="@android:style/Theme.NoTitleBar" />
        <提供者
                android:name="com.ironsource.lifecycle.IronsourceLifecycleProvider"
                android:authorities="${applicationId}.IronsourceLifecycleProvider" />
```

3. 请确保根据所使用的网络添加以下扩展：

### Android##android

```xml
        <extensions>
        <extensionID>com.ironsource.adobeair</extensionID>
        <extensionID>com.ironsource.adobeair.identifier</extensionID>
        <extensionID>com.ironsource.adobeair.apset</extensionID>
        <extensionID>com.ironsource.adobeair.androidx</extensionID>
<!-- AdMob Adapter Extension-->
        <extensionID>com.ironsource.adobeair.admob</extensionID>
        <extensionID>com.ironsource.adobeair.google</extensionID>
        <extensionID>com.ironsource.adobeair.googlebase</extensionID>
<!-- AppLovin Adapter Extension-->
        <extensionID>com.ironsource.adobeair.applovin</extensionID>
        <extensionID>com.ironsource.adobeair.applovinsdk</extensionID>
<!-- Facebook Adapter Extension-->
        <extensionID>com.ironsource.adobeair.facebook</extensionID>
        <extensionID>com.ironsource.adobeair.fbaudiencenetwork</extensionID>
<!-- DT Exchange Adapter Extension-->
        <extensionID>com.ironsource.adobeair.fyber</extensionID>
        <extensionID>com.ironsource.adobeair.fybersdk</extensionID>
<!-- Mintegral Adapter Extension-->
        <extensionID>com.ironsource.adobeair.mintegraladapter</extensionID>
        <extensionID>com.ironsource.adobeair.mintegralsdk</extensionID>
<!-- Unity Ads Adapter Extension-->
        <extensionID>com.ironsource.adobeair.unityads</extensionID>
        <extensionID>com.ironsource.adobeair.unityadssdk</extensionID>
<!-- Vungle Adapter Extension-->
        <extensionID>com.ironsource.adobeair.vungle</extensionID>
        <extensionID>com.ironsource.adobeair.vunglesdk</extensionID>
        </extensions>
```

### iOS##ios

```xml
        <extensions>
        <extensionID>com.ironsource.adobeair</extensionID>
<!-- AdMob Adapter Extension-->
        <extensionID>com.ironsource.adobeair.admob</extensionID>
        <extensionID>com.ironsource.adobeair.googlemobileads</extensionID>
<!-- AppLovin Adapter Extension-->
        <extensionID>com.ironsource.adobeair.applovin</extensionID>
        <extensionID>com.ironsource.adobeair.applovinsdk</extensionID>
<!-- Facebook Adapter Extension-->
        <extensionID>com.ironsource.adobeair.facebook</extensionID>
        <extensionID>com.ironsource.adobeair.fbaudiencenetwork</extensionID>
<!-- DT Exchange Adapter Extension-->
        <extensionID>com.ironsource.adobeair.fyber</extensionID>
        <extensionID>com.ironsource.adobeair.fybersdk</extensionID>
<!-- Mintegral Adapter Extension-->
        <extensionID>com.ironsource.adobeair.mintegraladapter</extensionID>
        <extensionID>com.ironsource.adobeair.mintegralsdk</extensionID>
<!-- Unity Ads Adapter Extension-->
        <extensionID>com.ironsource.adobeair.unityads</extensionID>
        <extensionID>com.ironsource.adobeair.unityadssdk</extensionID>
<!-- Vungle Adapter Extension-->
        <extensionID>com.ironsource.adobeair.vungle</extensionID>
        <extensionID>com.ironsource.adobeair.vunglesdk</extensionID>
        </extensions>
```

## 步骤 4.Apply iOS 10 app Transport Security 设置（仅限 iOS）##step-4.-apply-ios-10-app-transport-security-settings-(ios-only)

> **Important:**
>
> 在 iOS 9+ 中，Apple 添加了围绕“ATS”的控件。为了确保在所有聚合网络中不间断地支持 IronSource Ad 投放，必须在 **\*- app.xml 文件中添加以下更改：**

```xml
<iPhone>
    <InfoAdditions>
       <![CDATA[
          <key>NSAppTransportSecurity</key>
          <dict>
             <key>NSAllowsArbitraryLoads</key>
             <true />
          </dict>
       ]]>
   </InfoAdditions>
</iPhone>
```

## 步骤 5。初始化广告单位##step-5.-initialize-the-ad-units

LevelPlay 支持可选 SDK 设置，例如 UserID 和细分段，在初始化 SDK 之前必须配置这些设置。请参阅我们的[其他 SDK 设置](/grow/levelplay/sdk/adobe/additional-settings.md)指南以了解设置说明。

> **Note:**
>
> 如果要使用服务器到服务器回调向用户奖励我们的奖励广告单位，必须[设置 UserID](/grow/levelplay/sdk/adobe/additional-settings.md)。

您可以通过两种方式初始化 SDK。我们建议使用第一种方法，因为它将获取您定义的指定的广告单位。

此方法将以数组的形式初始化 adUnits 参数中提到的指定的广告单位：

```java
IronSource.instance.init(YOUR_APP_KEY, [IronSource.REWARDED_VIDEO, IronSource.INTERSTITIAL,IronSource.BANNER]);
```

使用此 init 方法时，现在可以在一个会话中在 app 流程的不同接触点单独初始化每个广告单元。

```java
//To init Rewarded Video
IronSource.instance.init(YOUR_APP_KEY, [IronSource.REWARDED_VIDEO]);
//To init Interstitial
IronSource.instance.init(YOUR_APP_KEY, [IronSource.INTERSTITIAL]);
//To init Banners
IronSource.instance.init(YOUR_APP_KEY, [IronSource.BANNER]);
```

或者，您可以按以下详细说明来初始化 SDK，SDK 将初始化您在 LevelPlay 平台上配置的广告单位：

```text
IronSource.instance.init(YOUR_APP_KEY);
```

### **初始化完成回调**##**init-complete-callback**

LevelPlay SDK 会触发一个回调来通知您 LevelPlay SDK 已成功初始化，适用于 LevelPlay SDK 7.2.1+。此监听器将指示初始化过程已完成，您可以开始加载广告服务。每个会话将发送一次回调，并指示 SDK 的第一次初始化。

```java
IronSource.instance.addEventListener("InitializationComplete", InitializationComplete);
私有变量函数 InitializationComplete(事件:事件)：void {
   //InitializationComplete
}
```

LevelPlay SDK 目前支持 **Network Change Status**，使 SDK 的插件能够根据网络修改更改可用性。例如，如果没有网络连接，可用性将变为 FALSE。此函数的默认值为 **False**；如果要使用它，可使用以下字符串在 Init 中激活它：

```java
IronSource.instance.shouldTrackNetworkState(true);
```

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

要验证您的 LevelPlay SDK 集成以及您可能已实现的任何其他广告网络，请导航到本[文章](/grow/levelplay/sdk/adobe/integration-helper.md)。

您现在可以开始使用 ironSource 广告单位和聚合工具。

## 后续步骤##next-steps

验证集成后，请遵循我们的集成指南并实现我们的广告单位：

* [奖励视频](/grow/levelplay/sdk/adobe/rewarded-ads-integration.md)
* [插页式视频](/grow/levelplay/sdk/adobe/interstitial-integration.md)
