# 팝콘텐츠 광고

{% hint style="info" %}
팝콘텐츠 광고는 v.3.7.0 부터 지원합니다.
{% endhint %}

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

## 1. 유저 식별값 입력

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

{% hint style="danger" %}
**주의 사항**

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

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

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

```java
AdPopcornSSP.setUserId(context,"bXlBY2NvdW50X25hbWU=");
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
AdPopcornSSP.setUserId(context,"bXlBY2NvdW50X25hbWU=")
```

{% endtab %}
{% endtabs %}

## 2. 팝콘텐츠 광고 인스턴스 생성

아래 코드를 추가하여 팝콘텐츠 광고 인스턴스를 생성 합니다.

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

```java
public class MainActivity extends Activity{
     private AdPopcornSSPPopContentsAd popContentsAd;
     	
     @Override
     protected void onCreate(Bundle savedInstanceState) {
          AdPopcornSSP.setUserId(context,"bXlBY2NvdW50X25hbWU=");
          popContentsAd = new AdPopcornSSPPopContentsAd(this);
     }
}
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
private var popContentsAd: AdPopcornSSPPopContentsAd? = null
    	
override fun onCreate(savedInstanceState: Bundle?) {
    AdPopcornSSP.setUserId(context,"bXlBY2NvdW50X25hbWU=")
    popContentsAd = AdPopcornSSPPopContentsAd(this@MainActivity)
}
```

{% endtab %}
{% endtabs %}

## 3. 팝콘텐츠 지면 키 설정

<mark style="color:red;">`setPlacementId`</mark> API를 호출하여 콘텐츠 지면 키를 설정합니다.

{% hint style="info" %}
콘텐츠 광고의 popContentsPlacementId 의 경우 애드팝콘 사업팀(<monetize@adpopcorn.com>)을 통해 발급 받으시기 바랍니다
{% endhint %}

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

```java
popContentsAd.setPlacementId("your_popcontents_placement_id");
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
popContentsAd?.setPlacementId("your_popcontents_placement_id")
```

{% endtab %}
{% endtabs %}

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

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

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

```java
popContentsAd.openPopContents();
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
popContentsAd?.openPopContents()
```

{% endtab %}
{% endtabs %}

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

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

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

<table><thead><tr><th width="315">이벤트 리스너</th><th>설명</th></tr></thead><tbody><tr><td>OnPopContentsAdOpened</td><td>팝콘텐츠 광고 페이지 오픈 성공</td></tr><tr><td>OnPopContentsAdOpenFailed</td><td>팝콘텐츠 광고 페이지 오픈 실패. <a href="/pages/8mnPYzYSU61QOImC3VmQ">에러코드 값</a></td></tr><tr><td>OnPopContentsAdClosed</td><td>팝콘텐츠 광고 페이지 닫음</td></tr></tbody></table>

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

```java
popContentsAd.setPopContentsAdEventCallbackListener(new IPopContentsAdEventCallbackListener() {
    @Override
    public void OnPopContentsAdOpened() {
    
    }
    
    @Override
    public void OnPopContentsAdOpenFailed(SSPErrorCode errorCode) {
    
    }
    
    @Override
    public void OnPopContentsAdClosed() {
    
    }
});
```

{% endtab %}

{% tab title="Kotlin" %}

<pre class="language-kotlin"><code class="lang-kotlin"><strong>popContentsAd?.setPopContentsAdEventCallbackListener(object: IPopContentsAdEventCallbackListener{
</strong>    override fun OnPopContentsAdOpened() {
    }

    override fun OnPopContentsAdOpenFailed(SSPErrorCode errorCode) {
    }

    override fun OnPopContentsAdClosed() {
    }
})
</code></pre>

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://adpopcornssp.gitbook.io/ssp-sdk/sdk/android/undefined-8.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
