# Adobe AIR 플러그인 통합

> 레벨플레이 SDK를 표준 또는 Gradle 통합 방법을 사용하여 Adobe AIR 프로젝트에 통합합니다. Xcode 15.2 이상을 사용하여 Android 4.4 이상 및 iOS 11 이상을 지원합니다.

## 필수 조건##prerequisites

* Air SDK [33.1.1.1.779](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 버전 지원은 네트워크별로 정의됩니다. 레벨플레이 광고와 레벨플레이 Mediation iOS 버전 11 이상, Xcode 버전 15.2 이상을 지원합니다.
* Android 운영 체제 버전 4.4(API 레벨 19)+. ци

## 1단계. 프로젝트에 Ironsource AIR 플러그인 추가하기##step-1.-add-the-ironsource-air-plugin-to-your-project

이전 버전의 레벨플레이 SDK에서 업그레이드하는 경우 프로젝트에서 완전히 제거해야 합니다. 그렇지 않으면 업데이트에 문제가 발생합니다. 또한 테스트 장치에서 오래된 빌드를 지우고 새 빌드를 만드는 것이 좋습니다.

**레벨플레이는 다음의 두 가지 통합 유형을 제공합니다.**

* 표준 통합
* Gradle 통합

### **Gradle Integration**##**gradle-integration**

1. 다운로드 the [ANE](https://github.com/ironsource-mobile/AdobeAir-SDK/raw/master/8.1.0/IronSourceGradle_v8.1.0.ane)
2. 프로젝트를 Android Studio 프로젝트로 익스포트 후 Gradle 사용하여 Android 레벨플레이 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. 플래시 빌더에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 **프로퍼티** > **플렉스 빌드 경로** > **네이티브 확장**으로 이동합니다.
3. "**Add ANE..**."를 선택하고 **IronSource Air 플러그인 ANE** 파일을 추가합니다.
4. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 **프로퍼티** > **플렉스 빌드 패키징** > **Android/iOS** > **네이티브 확장 기능**으로 이동하여 **IronSource** **Air 플러그인 ANE** 파일이 \*\*"패키지"\*\*로 표시되었는지 확인합니다.

> **Note:**
>
> 프로젝트에서 Flash Professional을 사용하는 경우 다음으로 이동합니다. File > **ActionScript Settings** > \*\*Library 경로 이동하여 Ironsource **Air 플러그인** **ANE** 파일을 추가합니다.

### Unity 레벨플레이 데모 앱##unity-levelplay-demo-app

통합 데모 애플리케이션 앱에 Unity 레벨플레이 통합하는 방법을 보여줍니다. 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(); 
   }
   ```

앱이 활성화되거나 비활성화될 때마다 onPause/onResume을 호출 합니다.
2\. 레벨플레이 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)
* [분노](https://github.com/ironsource-mobile/AdobeAir-adapters/raw/master/apset/16.0.2/Apset_v16.0.2.ane)
* [ID](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에서 레벨플레이 SDK를 사용하려면 AndroidManifest.xml에 관련 코드를 추가합니다.

**AndroidManifest.xml**에 다음을 추가합니다.

1. **매니페스트 사용 권한:** **애플리케이션 기술자(descriptor).xml** 파일에 **manifestAdditions** 태그 내부에 있지만 `<application>` 태그 외부에 다음 권한을 추가합니다.

```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" />
        <provider
                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단계. iOS 10 앱 전송 보안 설정 적용(iOS 전용)##step-4.-apply-ios-10-app-transport-security-settings-(ios-only)

> **Important:**
>
> iOS 9 이상에서 Apple은 'ATS'에 대한 컨트롤을 추가했습니다. 모든 Mediation 네트워크에서 Ironsource 광고 전송에 대한 무중단 지원을 보장하기 위해 **\\\*-app.xml 파일에 다음 변경 사항을 추가해야 중요.**

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

## 5단계 광고 유닛 초기화##step-5.-initialize-the-ad-units

레벨플레이 SDK를 초기화하기 전에 구성해야 하는 UserID 및 세그먼트와 같은 선택적 SDK 설정을 지원합니다. 설치 지침은 [추가 SDK 설정](/grow/levelplay/sdk/adobe/additional-settings.md) 가이드를 참고하십시오.

> **Note:**
>
> 사용자에게 보상형 광고 유닛을 제공하기 위해 서버 간 콜백을 사용하는 경우 [사용자 ID 설정](/grow/levelplay/sdk/adobe/additional-settings.md)이 필요합니다.

SDK를 두 가지 방법으로 초기화할 수 있습니다. 첫 번째 메서드는 사용자가 정의한 특정 광고 유닛을 가져오므로 권장합니다.

이 메서드는 adUnits 파라미터 언급된 특정 광고 유닛을 배열 초기화합니다.

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

이 init 방식을 사용하면 앱 플로의 다양한 터치포인트에서 하나의 세션에서 각 광고 유닛을 개별적으로 초기화할 수 있습니다.

```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가 레벨플레이 플랫폼에서 설정한 광고 유닛을 초기화합니다.

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

### **Init 완전 콜백**##**init-complete-callback**

레벨플레이 SDK는 레벨플레이 SDK 7.2.1 이상에 대해 레벨플레이 SDK가 성공적으로 초기화되었음을 알리는 콜백 실행합니다. 이 리스너는 초기화 프로세스가 완료되었으며 광고를 로드할 수 있음을 나타냅니다. 콜백 세션당 한 번 전송되며, SDK가 처음으로 초기화되었음을 나타냅니다.

```java
IronSource.instance.addEventListener("InitializationComplete", InitializationComplete);
private 함수 InitializationComplete(이벤트:이벤트):void {
   //InitializationComplete
}
```

레벨플레이 SDK는 현재 **네트워크 변경 상태**를 지원하므로 SDK의 플러그인이 네트워크 수정 사항에 따라 유효성을 변경할 수 있습니다. 예를 들어 네트워크 연결이 없는 경우 유효성 FALSE로 변경됩니다. 이 함수의 기본값은 **False**입니다. 사용하려는 경우 다음 문자열을 사용하여 Init에서 활성화할 수 있습니다.

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

## 6단계. 통합 확인##step-6.-verify-your-integration

레벨플레이 SDK 연동과 구현한 추가 광고 네트워크를 확인하려면 이 [문서](/grow/levelplay/sdk/adobe/integration-helper.md)를 참조하십시오.

이제 Ironsource 광고 유닛 및 Mediation 도구 작업을 시작할 수 있습니다.

## 다음 단계##next-steps

통합을 확인한 후 통합 가이드를 따라 광고 유닛을 구현합니다.

* [보상형 비디오](/grow/levelplay/sdk/adobe/rewarded-ads-integration.md)
* [인터스티셜 광고](/grow/levelplay/sdk/adobe/interstitial-integration.md)
