---
description: 콘텐츠 형태의 페이지와 광고를 하나의 화면에서 제공 합니다.
---

# 콘텐츠 광고



{% hint style="info" %}
콘텐츠 광고는 <mark style="color:red;">`v2.7.0`</mark> 버전부터 지원합니다.
{% endhint %}

{% hint style="danger" %}
콘텐츠 광고를 노출 시키고자 할 경우, 반드시 IDFA 설정과 유저 식별값 설정을 진행해 주어야 합니다.
{% endhint %}



## 1. IDFA 설정

아래 링크에서 IDFA 설정에 대해서 확인 후 진행해주세요.

[\[애드팝콘 SSP iOS IDFA 설정\]](../undefined#id-3)



## 2. 유저 식별값 입력

유저 식별값은 콘텐츠 광고 페이지내 광고 완료 시 완료유저를 식별하기 위해 사용되는 값입니다.

{% hint style="warning" %}
<mark style="color:red;">**주의사항**</mark>

1. 1명의 유저는 1개의 고유한 유저 식별값을 가져야하며, 가변적인 값을 사용해서는 안됩니다.
2. 개인정보(이메일, 이름, 전화번호, 식별가능한 유저아이디 등)이 포함되어서는 안됩니다.
3. 한글, 특수문자, 공백 등이 포함된 경우에는 반드시 URL 인코딩 처리를 하여 사용하여야 합니다.
4. openContents API를 호출하기 전에 설정되어야 합니다.
{% endhint %}



위 주의사항에 유의하여 유저 식별값을 입력합니다.

{% tabs %}
{% tab title="Objective-C" %}
```objectivec
[AdPopcornSSP.setUserId:@"TEST_USN"];
```
{% endtab %}

{% tab title="Swift" %}
```swift
AdPopcornSSP.setUserId("TEST_USN")
```
{% endtab %}
{% endtabs %}



## 3. 인스턴스 생성

{% tabs %}
{% tab title="Objective-C" %}
MainViewController.m에 AdPopcornSSPContentsAd.h 를 import 하고 인스턴스 변수를 선언합니다.

```objectivec
#import <AdPopcornSSP/AdPopcornSSPContentsAd.h>

@interface MainViewController() <APSSPContentsAdDelegate>
{ 
        AdPopcornSSPContentsAd *_sspContentsAd;
}
@end
```
{% endtab %}

{% tab title="Swift" %}
MainViewController.swift 에 AdPopcornSSPContentsAd 인스턴스 변수를 선언합니다.

```swift
class MainViewController: UIViewController, APSSPContentsAdDelegate
{	
    // AdPopcornSSPContentsAd
    var sspContentsAd: AdPopcornSSPContentsAd!
}
```
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Objective-C" %}
MainViewController.m 을 수정하여 생성한 인스턴스를 구현합니다.

```objectivec
@implementation MainViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [AdPopcornSSP.setUserId:@"TEST_USN"];
    _sspContentsAd = [[AdPopcornSSPContentsAd alloc] initWithAppKey:@"YOUR_APPKEY" contentsPlacementId:@"YOUR_CONTENTS_PLACEMENT_ID" viewController:self];
    _sspContentsAd.delegate = self;
    [_sspContentsAd openContents];
}
@end
```
{% endtab %}

{% tab title="Swift" %}
MainViewController.swift 을 수정하여 생성한 인스턴스를 구현합니다.

```swift
class MainViewController: UIViewController, APSSPContentsAdDelegate
{	
    // AdPopcornSSPContentsAd 
    var sspContentsAd : AdPopcornSSPContentsAd!
    override func viewDidLoad() {
        super.viewDidLoad()
        AdPopcornSSP.setUserId("TEST_USN")
	sspContentsAd = AdPopcornSSPContentsAd.initWithAppKey(key: "YOUR_APPKEY", contentsPlacementId: "YOUR_CONTENTS_PLACEMENT_ID", viewController: self)      
    }
}
```
{% endtab %}
{% endtabs %}

{% hint style="info" %}
appKey, contentsPlacementId 의 경우 애드팝콘 사업팀(<mark style="color:blue;">monetize@adpopcorn.com</mark>)을 통해 발급 받으시기 바랍니다
{% endhint %}



## 4. 콘텐츠 페이지 오픈

<mark style="color:red;">`openContents`</mark> API를 호출하여 콘텐츠 페이지를 오픈합니다.

{% tabs %}
{% tab title="Objective-C" %}
```objectivec
[_sspContentsAd openContents];
```
{% endtab %}

{% tab title="Swift" %}
```swift
_sspContentsAd.openContents();
```
{% endtab %}
{% endtabs %}



## 5. 콘텐츠 이벤트 리스너

콘텐츠 광고에서 발생하는 이벤트를 받고자 할 경우 , 이벤트 리스너를 생성하여 전달해 줍니다.

이벤트 리스너를 통해 들어오는 이벤트들을 아래와 같습니다.

{% tabs %}
{% tab title="Objective-C" %}
<table><thead><tr><th width="307">delegate</th><th>설명</th></tr></thead><tbody><tr><td>APSSPContentsAdOpenSuccess</td><td>콘텐츠 광고 페이지 오픈 성공</td></tr><tr><td>APSSPContentsAdOpenFail, error</td><td>콘텐츠 광고 페이지 오픈 실패. <a href="undefined-11">에러코드 값</a></td></tr><tr><td>APSSPContentsAdClosed</td><td>콘텐츠 광고 페이지 닫음</td></tr><tr><td>APSSPContentsAdComplete</td><td>콘텐츠 광고 내 리워드 광고 참여 성공</td></tr><tr><td> ㄴ reward</td><td>리워드 수량</td></tr><tr><td> ㄴ rewardKey</td><td>리워드 키(유니크)</td></tr></tbody></table>
{% endtab %}

{% tab title="Swift" %}
<table><thead><tr><th width="299">delegate</th><th>설명</th></tr></thead><tbody><tr><td>apsspContentsAdOpenSuccess</td><td>콘텐츠 광고 페이지 오픈 성공</td></tr><tr><td>apsspContentsAdOpenFail(error)</td><td>콘텐츠 광고 페이지 오픈 실패. <a href="undefined-11">에러코드 값</a></td></tr><tr><td>apsspContentsAdClosed</td><td>콘텐츠 광고 페이지 닫음</td></tr><tr><td>apsspContentsAdComplete</td><td>콘텐츠 광고 내 리워드 광고 참여 성공</td></tr><tr><td> ㄴ reward</td><td>리워드 수량</td></tr><tr><td>ㄴ rewardKey</td><td>리워드 키(유니크)</td></tr></tbody></table>
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Objective-C" %}
```objectivec
#pragma mark APSSPContentsAdDelegate
- (void)APSSPContentsAdOpenSuccess:(AdPopcornSSPContentsAd *)contentsAd
{
}

- (void)APSSPContentsAdOpenFail:(AdPopcornSSPContentsAd *)contentsAd error:(AdPopcornSSPError *)error
{
}

- (void)APSSPContentsAdClosed:(AdPopcornSSPContentsAd *)contentsAd
{
    
}

- (void)APSSPContentsAdComplete:(AdPopcornSSPContentsAd *)contentsAd reward:(NSInteger)reward rewardKey:(NSString *)rewardKey
{
}
```
{% endtab %}

{% tab title="Swift" %}
```swift
// APSSPContentsAdDelegate
func apsspContentsAdOpenSuccess(_ contentsAd: AdPopcornSSPContentsAd!) {
}
func apsspContentsAdOpenFail(_ contentsAd: AdPopcornSSPContentsAd!, error: AdPopcornSSPError!) {
}
func apsspContentsAdClosed(_ contentsAd: AdPopcornSSPContentsAd!) {
}
func apsspContentsAdComplete(_ contentsAd: AdPopcornSSPContentsAd!, reward: long, rewardKey: String) {
}
```
{% endtab %}
{% endtabs %}







