> 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/android/undefined-6.md).

# 네이티브 광고

<figure><img src="/files/7vvpLunpsgYi74VTMFe6" alt="" width="214"><figcaption></figcaption></figure>

{% hint style="info" %}
위 네이티브 광고 타입은 추후 지원이 종료될 예정입니다. 이에 신규 연동시에는 통합형 네이티브 광고 가이드를 확인하시고, 연동 진행하시기 바랍니다.
{% endhint %}

## 1. 네이티브 광고 인스턴스 생성

아래 코드를 추가하여 네이티브 광고 인스턴스를 생성 합니다.

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

```java
private AdPopcornSSPNativeAd nativeAd;
     	
@Override
protected void onCreate(Bundle savedInstanceState) {
     // Layout xml 사용할 경우
     nativeAd = (AdPopcornSSPNativeAd) findViewById(R.id.igaw_native_ad);
}
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
private var nativeAd: AdPopcornSSPNativeAd? = null
    	
override fun onCreate(savedInstanceState: Bundle?) {
    // Layout xml 사용할 경우
    nativeAd = findViewById(R.id.adpopcorn_native_ad)
}
```

{% endtab %}
{% endtabs %}

## 2. 네이티브 광고 Placement ID 설정

아래 코드를 추가하여 네이티브 광고  PLACEMENT ID 를 설정합니다. 네이티브 광고 PLACEMENT ID 는 [애드팝콘 SSP 콘솔](https://www.console.adpopcorn.com/)에서 생성이 가능합니다.

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

```java
nativeAd.setPlacementId("네이티브_PlacementId");
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
nativeAd?.setPlacementId("네이티브 PlacementId")
```

{% endtab %}
{% endtabs %}

## 3. 네이티브 레이아웃 구성

애드팝콘에서는 일반 네이티브와 네이티브 동영상을 지원합니다. 원하는 타입에 맞추어 레이아웃을 구성해 주세요.

* 일반 네이티브

{% content-ref url="/pages/2fdfjqGM4msehqED341I" %}
[네이티브 레이아웃 가이드](/ssp-sdk/sdk/android/undefined-6/undefined.md)
{% endcontent-ref %}

* 네이티브 동영상

{% content-ref url="/pages/5QYSk6vmJI4Xx2WVRkLI" %}
[네이티브 동영상 레이아웃 가이드](/ssp-sdk/sdk/android/undefined-6/undefined-1.md)
{% endcontent-ref %}

## 4. 네이티브 광고 요청

네이티브 광고 영역에 광고를 로드 할 경우, <mark style="color:red;">`loadAd()`</mark> API를 추가하여 광고를 요청 합니다. 광고가 정상적으로 수신 시, 아래 layout 형태로 광고가 노출 됩니다. (igaw\_native\_ad\_layout\_template.xml 사용 시)

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

```java
nativeAd.loadAd();
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
nativeAd?.loadAd()
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
`loadAd` 호출에 대한 결과로 광고 수신에 실패한 경우에는 `loadAd` 재호출을 하시면 안됩니다. 과도한 광고 요청 api 호출은 block 사유가 됩니다.
{% endhint %}

<figure><img src="/files/uoGbEQEoIHsaNOpg6B8t" alt="" width="563"><figcaption><p>네이티브 광고 예시 이미지</p></figcaption></figure>

## 5. 네이티브 광고 이벤트 리스너

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

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

<table><thead><tr><th width="264">이벤트 리스너</th><th>설명</th></tr></thead><tbody><tr><td>onNativeAdLoadSuccess</td><td>네이티브 광고 요청 성공 시</td></tr><tr><td>onNativeAdLoadFailed</td><td>네이티브 광고 요청 실패 시. <a href="/pages/8mnPYzYSU61QOImC3VmQ">에러코드 값</a></td></tr><tr><td>onImpression</td><td>네이티브 광고가 화면에 노출되었을 때</td></tr><tr><td>onClicked</td><td>네이티브 광고를 클릭 했을 때</td></tr><tr><td>onAdHidden</td><td>네이티브 광고를 닫았을 경우(NAM 미디에이션 광고일 경우에만 발생)</td></tr></tbody></table>

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

```java
nativeAd.setNativeAdEventCallbackListener (new INativeAdEventCallbackListener () {
    @Override
    public void onNativeAdLoadSuccess () {
    }

    @Override
    public void onNativeAdLoadFailed (SSPErrorCode errorCode) {
    }

    @Override
    public void onImpression() {
    }

    @Override
    public void onClicked() {
    }

    @Override
    public void onAdHidden() {
    }
});
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
nativeAd?.setNativeAdEventCallbackListener (object: INativeAdEventCallbackListener {
    override fun onNativeAdLoadSuccess () {
    }

    override fun onNativeAdLoadFailed (errorCode: SSPErrorCode) {
    }

    override fun onImpression () {
    }

    override fun onClicked () {
    }

    override fun onAdHidden () {
    }
})
```

{% endtab %}
{% endtabs %}

## 6. 네이티브 광고 종료

네이티브 광고 인스턴스를 더 이상 사용하지 않을 경우 , <mark style="color:red;">`destroy API`</mark>를 호출 하여 메모리 정리를 진행 합니다.

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

```java
nativeAd.destroy();
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
nativeAd?.destroy()
```

{% endtab %}
{% endtabs %}
