> 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/ios/ios-3.1.0+/undefined-8.md).

# 보상형광고플러스

## 유저 식별값 설정

**페이지 열기 전에 반드시 설정해야 합니다.**

{% tabs %}
{% tab title="Swift" %}

```swift
APSSPAds.setUSerID(usn: "TEST_USN")
```

{% endtab %}

{% tab title="Objective-C" %}

```objc
[APSSPAds setUSerIDWithUsn:@"TEST_USN"];
```

{% endtab %}
{% endtabs %}

## 리워드 애드 플러스 페이지 열기

{% tabs %}
{% tab title="Swift" %}

```swift
APSSPRewardAdPlus.shared.delegate = self
APSSPRewardAdPlus.openRewardAdPlusViewController(appKey: "YOUR_APP_KEY", viewController: self)
```

{% endtab %}

{% tab title="Objective-C" %}

```objc
[APSSPRewardAdPlus shared].delegate = self;
[APSSPRewardAdPlus openRewardAdPlusViewControllerWithAppKey:@"YOUR_APP_KEY" viewController:self];
```

{% endtab %}
{% endtabs %}

## 유저 미디어 상태 조회

{% tabs %}
{% tab title="Swift" %}

```swift
APSSPRewardAdPlus.getUserMediaStatus(appKey: "YOUR_APP_KEY")
```

{% endtab %}

{% tab title="Objective-C" %}

```objc
[APSSPRewardAdPlus getUserMediaStatusWithAppKey:@"YOUR_APP_KEY"];
```

{% endtab %}
{% endtabs %}

## 유저 Placement 상태 조회

{% tabs %}
{% tab title="Swift" %}

```swift
APSSPRewardAdPlus.getUserPlacementStatus(appKey: "YOUR_APP_KEY", placementId: "YOUR_PLACEMENT_ID")
```

{% endtab %}

{% tab title="Objective-C" %}

```objc
[APSSPRewardAdPlus getUserPlacementStatusWithAppKey:@"YOUR_APP_KEY" placementId:@"YOUR_PLACEMENT_ID"];
```

{% endtab %}
{% endtabs %}

## 이벤트 리스너

| 이벤트 리스너                           | 설명                    |
| --------------------------------- | --------------------- |
| `rewardAdPlusUserMediaStatus`     | 매체 전체 포인트 박스 상태 조회 결과 |
| `rewardAdPlusUserPlacementStatus` | 특정 placement 상태 조회 결과 |
| `closedRewardAdPlusPage`          | 리워드 애드 플러스 페이지 닫힘     |
| `eventResult`                     | 이벤트 결과 콜백             |

{% tabs %}
{% tab title="Swift" %}

```swift
extension ViewController: APSSPRewardAdPlusDelegate {

    func rewardAdPlusUserMediaStatus(result: Bool, totalBoxCount: Int, placementStatusList: [[String: Any]]) {
    }

    func rewardAdPlusUserPlacementStatus(result: Bool, placementId: String, dailyUserLimit: Int, dailyUserCount: Int) {
    }

    func closedRewardAdPlusPage() {
    }

    func eventResult(resultCode: Int32, resultMessage: String) {
    }
}
```

{% endtab %}

{% tab title="Objective-C" %}

```objc
- (void)rewardAdPlusUserMediaStatusWithResult:(BOOL)result totalBoxCount:(NSInteger)totalBoxCount placementStatusList:(NSArray<NSDictionary<NSString *, id> *> *)placementStatusList {
}

- (void)rewardAdPlusUserPlacementStatusWithResult:(BOOL)result placementId:(NSString *)placementId dailyUserLimit:(NSInteger)dailyUserLimit dailyUserCount:(NSInteger)dailyUserCount {
}

- (void)closedRewardAdPlusPage {
}

- (void)eventResultWithResultCode:(int32_t)resultCode resultMessage:(NSString *)resultMessage {
}
```

{% endtab %}
{% endtabs %}
