> For the complete documentation index, see [llms.txt](https://adpopcornssp.gitbook.io/ssp-sdk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://adpopcornssp.gitbook.io/ssp-sdk/sdk/cocoscreator/undefined-4.md).

# 리워드 비디오 광고

## 1. 광고 요청

loadRewardVideo API를 호출하여 리워드비디오 광고를 요청합니다.

```dart
AdPopcornSSP.loadRewardVideo('your_app_key', 'your_placement_id');
```

## 2. 광고 노출

리워드 비디오 광고가 정상적으로 로딩 완료 된 후, 광고 노출을 하고자 하는 시점에 showRewardVideo API를 호출합니다.

```dart
AdPopcornSSP.showRewardVideo('your_app_key', 'your_placement_id');
```

## 3. 이벤트 연동

광고 요청, 노출에 대한 결과 이벤트를 받는 설정을 진행할 수 있습니다. 원하는 이벤트만 연동하여 사용하면 됩니다. 해당 이벤트는 초기화 시, 등록한 event Listener로 넘어옵니다.

* **(리워드 비디오) 지원되는 이벤트**

| Event                                                                                         | 설명                |
| --------------------------------------------------------------------------------------------- | ----------------- |
| <p><strong>OnRewardVideoAdLoaded</strong><br>(- placementId)</p>                              | 리워드 비디오 광고 로드 성공  |
| <p><strong>OnRewardVideoAdLoadFailed</strong><br>(- placementId, errorCode)</p>               | 리워드 비디오 광고 로드 실패  |
| <p><strong>OnRewardVideoAdOpened</strong><br>(- placementId)</p>                              | 리워드 비디오 광고 노출 성공  |
| <p><strong>OnRewardVideoAdOpenFailed</strong><br>(- placementId)</p>                          | 리워드 비디오  광고 노출 실패 |
| <p><strong>OnRewardVideoPlayCompleted</strong><br>(- placementId, adNetworkNo, completed)</p> | 리워드 비디오 광고 재생 완료  |
| <p><strong>OnRewardVideoAdClosed</strong><br>(- placementId)</p>                              | 리워드 비디오 광고 닫기     |

## 4. 샘플 코드

```js
const AdPopcornSSP = require('AdPopcornSSPPlugin');

cc.Class({
    extends: cc.Component,
    
    onLoad() {
        const ANDROID_APP_KEY = 'your_android_app_key';
        const IOS_APP_KEY = 'your_android_ios_key';
        
        const currentAppKey = cc.sys.os === cc.sys.OS_IOS ? IOS_APP_KEY : ANDROID_APP_KEY;
        if (cc.sys.os === cc.sys.OS_ANDROID || cc.sys.os === cc.sys.OS_IOS) {
            AdPopcornSSP.init(currentAppKey, (event, params) => this._onAdEvent(event, params));
            AdPopcornSSP.setLogEnable(true);
        }
    },
    _loadAds() {
        const ANDROID_APP_KEY = 'your_android_app_key';
        const IOS_APP_KEY = 'your_android_ios_key';
        
        if (cc.sys.os === cc.sys.OS_ANDROID) {
            AdPopcornSSP.loadRewardVideo(ANDROID_APP_KEY, 'placement_id');
        } else if (cc.sys.os === cc.sys.OS_IOS) {
            AdPopcornSSP.loadRewardVideo(IOS_APP_KEY, 'placement_id');
        }
    },
    _onAdEvent(event, params) {
        if (event === "AdPopcornSSPSDKDidInitialize") {
            this._loadAds();
        }
        else if(event === "OnRewardVideoAdLoaded"){
            if (cc.sys.os === cc.sys.OS_ANDROID) {
                AdPopcornSSP.showRewardVideo(ANDROID_APP_KEY, 'placement_id');
            } else if (cc.sys.os === cc.sys.OS_IOS) {
                AdPopcornSSP.showRewardVideo(IOS_APP_KEY, 'placement_id');
            }
        }        
    },
});
```
