# Adobe AIR를 위한 보상형 광고 통합

> 이벤트 리스너와 광고 플레이스먼트 설정 포함하여 레벨플레이 SDK를 사용하여 보상형 비디오 광고를 Adobe AIR 애플리케이션 통합합니다.

## 필수 조건##prerequisites

Ironsource Adobe AIR 플러그인 올바르게 연동했는지 확인합니다. 통합은 [여기](/grow/levelplay/sdk/adobe/air-plugin-integration.md) 설명되어 있습니다.

## 1단계. 보상형 비디오 리스너 구현##step-1.-implement-the-rewarded-video-listener

Ironsource AIR 플러그인 광고 유효성 알려주기 위해 여러 이벤트를 발생시킵니다. 이벤트 수신하려면 다음 메서드를 호출.

```text
IronSource.instance.addEventListener( "EventName", functionToCall  );
```

* **EventName**은 듣고자 하는 이벤트를 포함하는 문자열입니다.
* **functionToCall**은 이벤트가 발생할 때 호출할 함수입니다.

플러그인 아래에 나열된 가능한 모든 이벤트를 리스너에게 알립니다.

```java
IronSource.instance.addEventListener("levelPlayRewardedAvailable", levelPlayRewardedAvailable);
IronSource.instance.addEventListener("levelPlayRewardedAdUnavailable", levelPlayRewardedAdUnavailable);
IronSource.instance.addEventListener("levelPlayRewardedAdOpened", levelPlayRewardedAdOpened);
IronSource.instance.addEventListener("levelPlayRewardedOnAdRewarded", levelPlayRewardedOnAdRewarded);
IronSource.instance.addEventListener("levelPlayRewardedAdShowFailed", levelPlayRewardedAdShowFailed);
IronSource.instance.addEventListener("levelPlayRewardedVideoAdClicked", levelPlayRewardedVideoAdClicked);
IronSource.instance.addEventListener("levelPlayRewardedAdClosed", levelPlayRewardedAdClosed);
```

플러그인 아래에 나열된 가능한 모든 이벤트를 리스너에게 알립니다.

```java
private function levelPlayRewardedAdOpened(event:Event):void {
   //level Play Rewarded Ad Opened
}
private function levelPlayRewardedOnAdRewarded(event:Event):void {
   //level Play Rewarded On Ad Rewarded
}
private function levelPlayRewardedAdShowFailed(event:Event):void {
   //level Play Rewarded Ad Show Failed
}
private function levelPlayRewardedVideoAdClicked(event:Event):void {
   //level Play Rewarded Video Ad Clicked
}
private function levelPlayRewardedAdClosed(event:Event):void {
   //level Play Rewarded Ad Closed
}
private function levelPlayRewardedAdUnavailable(event:Event):void {
   //level Play Rewarded Ad Unavailable
}
private function levelPlayRewardedAvailable(event:Event):void {
   //level Play Rewarded Available
}

```

Ironsource 연동 또는 라이브 프로덕션 중에 발생할 수 있는 오류를 이해하는 데 도움이 되는 오류 코드 메커니즘을 제공합니다. 다음과 같이 DataEvent 오브젝트에서 오류 데이터를 추출합니다.

```java
var errorCode:String;
var errorDescription:String;
                
if(event.data){
   var error:오브젝트 = JSON. 파싱(이벤트.data);
   errorDescription = error.error_description;
   errorCode = error.error_code;
}
```

[여기](/grow/levelplay/sdk/adobe/additional-settings.md)에서 Ironsource 오류 코드에 대한 전체 설명을 참조하십시오.

## 2단계. 사용자에게 동영상 광고 표시##step-2.-show-a-video-ad-to-your-users

### 광고 유효성##ad-availability

보상형 비디오 리스너와 그 기능을 올바르게 구현하면 **levelPlayRewardedAvailable**을 통해 유효성 상태를 확인할 수 있습니다. 그런 다음 광고 유효성 변경 시 아래의 델리게이트 함수 통해 알림을 받게 됩니다.

```java
private function levelPlayRewardedAvailable(event:Event):void { 
}
```

다음 라인을 사용하여 DataEvent 오브젝트 확인합니다

```java
event.data == “true/false”
```

또는 다음을 호출하여 광고 유효성 직접 요청할 수도 있습니다.

```java
IronSource.instance.isRewardedVideoAvailable()
```

### 동영상 광고 게재##serve-video-ad

광고 네트워크에 이용 가능한 동영상이 표시되면 이 동영상 광고를 사용자에게 표시할 수 있습니다. 사용자가 동영상 광고를 시청하도록 유도하는 트리거를 삽입하는 이상적인 시점입니다. **IronSource** 인스턴스에서 **showRewardedVideo()** 메서드를 호출하면 사용자에게 동영상 광고를 표시할 수 있습니다.

```java
IronSource.instance.showRewardedVideo();
```

#### 광고 플레이스먼트##ad-placements

레벨플레이 광고 플레이스먼트를 사용하면 보상형 비디오 경험 커스터마이즈 최적화할 수 있습니다. 이 툴을 사용하면 보상에 따라 다양한 플레이스먼트의 사용자에게 동영상을 표시할 수 있습니다. 아래 함수 사용하여 광고를 표시할 플레이스먼트를 정확하게 정의할 수 있습니다.

Ironsource 인스턴스에서 **showRewardedVideo()** 메서드를 호출하면 사용자에게 동영상 광고를 표시하고 정확하게 광고를 표시할 위치를 정의할 수 있습니다. 이 플레이스먼트의 보상 설정은 Ironsource 서버에서 가져옵니다.

```java
IronSource.instance.showRewardedVideo(YOUR_PLACEMENT_NAME);
```

각 광고 플레이스먼트와 관련된 정보(예: 보상 정보)를 확인하려면 다음을 호출.

```java
function getRewardedVideoPlacementInfo(placementName:String):String {}
```

### 캡핑 및 패싱##capping-&-pacing

이제 레벨플레이 광고 플레이스먼트 외에 선택한 플레이스먼트에 대한 제한 및 페이싱 설정을 설정 수 있습니다. 캡핑과 페이싱은 정해진 기간 내에 게재되는 광고의 양을 제한하여 앱의 사용자 경험 개선합니다.

보상형 비디오 대한 제한 및 속도 조절 툴을 사용하는 경우 아래 메서드를 호출하여 특정 플레이스먼트가 광고 한도에 도달했는지 확인하는 것이 좋습니다. 이는 플레이스먼트가 제한되거나 속도가 조정된 경우 보상형 비디오 버튼을 표시하지 않으므로 비디오 광고를 게재하지 않습니다.

```java
var isPlacementCapped: 부울 = Ironsource.instance.isRewardedVideoPlacementCapped(YOUR_PLACEMENT_NAME);
```

### 동적 UserId##dynamic-userid

동적 사용자 ID는 AdRewarded 거래를 확인하는 파라미터, 세션 전반에 걸쳐 변경될 수 있습니다. 이 파라미터는 [서버 간](/grow/levelplay/platform/settings/server-to-server-callback.md) 광고 보상형 광고 콜백을 통해 수신되며 showRewardedVideo를 호출하기 전에 설정해야 합니다.

* 문자열 값은 영숫자 1\~64자로 구성되어야 합니다.
* 보상 세부 정보가 포함된 콜백 URL에 `dynamicUserId` 파라미터가 표시됩니다.

```java
IronSource.instance.setDynamicUserId(id);
```

## 3단계. 사용자 보상##step-3.-reward-the-user

Ironsource SDK는 사용자가 동영상을 성공적으로 완료할 때마다 **levelPlayRewardedOnAdRewarded** 이벤트를 실행합니다. 이 이벤트를 수신하기 위해 **levelPlayRewardedVideoListener**가 설치되어 있으므로 사용자에게 보상을 제공할 수 있습니다.

DataEvent 오브젝트 보상 데이터를 추출하는 방법은 다음과 같습니다.

```java
var placementId:String;
var placementName:String;
var rewardName:String;
var rewardAmount:int;
                
if(event.data){
   var placement:오브젝트 = JSON. 파싱(이벤트.data);
   placementId = placement.placement_id;
   placementName = placement.placement_name;
   rewardName = placement.placement_reward_name;
   rewardAmount = parseInt(placement.placement_reward_amount);
}
```

**levelPlayRewardedOnAdRewarded** 및 ****levelPlayRewardedAdClosed**** 이벤트는 비동기입니다. **levelPlayRewardedOnAdRewarded**가 **levelPlayRewardedAdClosed** 이벤트 후 발생한 경우에도 보상을 부여하도록 리스너를 설정해야 합니다.

```java
private function levelPlayRewardedOnAdRewarded(event:Event):void {
}
```

* 레벨플레이 계정의 기본 설정은 앱의 클라이언트 내의 **levelPlayRewardedOnAdRewarded** 콜백을 사용하여 사용자 완료/보상을 알립니다. 백엔드 서버에 알림을 받으려면 서버 간 콜백을 활성화할 수도 있습니다.
* 서버 간 콜백을 활성화하는 경우 동일한 완료 시 사용자 두 번 이상 보상을 제공하지 마십시오. 클라이언트 측 콜백 서버 간 콜백 모두 작동하므로 각 완료마다 두 개의 알림이 전송됩니다.

이제 애플리케이션 보상형 비디오 제공할 준비가 되었습니다.

> **Note:**
>
> 애플리케이션 대한 새로운 통합인 경우 앱은 기본적으로 Ironsource 대시보드의 '**Test Mode**'에 있습니다. 앱이 테스트 모드일 때 레벨플레이 SDK는 SDK 프로세스의 가시성을 높이기 위해 더 많은 로그를 콘솔 출력합니다. 광고 인벤토리를 테스트하려면 [테스트 디바이스](/grow/levelplay/sdk/adobe/integration-testing.md)를 설정하십시오. 라이브 광고 인벤토리를 활성화할 때까지 매출 창출하지 않는 테스트 캠페인을 수신하게 됩니다. 앱이 라이브 광고 인벤토리를 준비할 때 **Ad Units** 페이지에서 \*\*Go Live!\*\*를 선택해야 합니다.

## 다음 단계##next-steps

Mediation 플랫폼에 보상형 비디오 광고 네트워크를 추가로 구현하거나 추가 광고 유닛을 설정 연동 가이드를 따르십시오.

* [Mediation(](/grow/levelplay/sdk/adobe/mediation-networks.md)미디에이션)
* [인터스티셜 광고](/grow/levelplay/sdk/adobe/interstitial-integration.md)
