> 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/react-native/undefined.md).

# 기본 설정

## 1. NPM 설치

아래 명령어로 플러그인을 설치해 주세요.

```
npm install react-native-adpopcorn-ssp@1.0.0
```

2026-06-10일부터 NPM을 통한 플러그인을 정식 지원해요. 기존 수동 설치한 경우 수동 설치 파일을 삭제 후 NPM으로 업데이트해 주세요.

<details>

<summary>수동 설치 제거 가이드</summary>

기존에 수동 설치로 추가한 파일과 설정을 제거해 주세요.

**Android**

1. 아래 9개 파일을 삭제해 주세요.
   * `RNAdPopcornSSPModule.java`
   * `RNAdPopcornSSPPackage.java`
   * `RNAdPopcornBannerView.java`
   * `RNAdPopcornBannerViewManager.java`
   * `RNAdPopcornInterstitialAdModule.java`
   * `RNAdPopcornInterstitialVideoAdModule.java`
   * `RNAdPopcornNAtiveAdView.java`
   * `RNAdPopcornNAtiveAdViewManager.java`
   * `RNAdPopcornRewardVideoModule.java`
2. 아래 설정을 제거해 주세요.
   * `packages.add(new RNAdPopcornSSPPackage());`

**iOS**

1. 아래 14개 파일을 삭제해 주세요.
   * `RNAdPopcornBannerView.h`
   * `RNAdPopcornBannerView.m`
   * `RNAdPopcornBannerViewManager.m`
   * `RNAdPopcornInterstitialAdModule.h`
   * `RNAdPopcornInterstitialAdModule.m`
   * `RNAdPopcornInterstitialVideoAdModule.h`
   * `RNAdPopcornInterstitialVideoAdModule.m`
   * `RNAdPopcornNativeAdView.h`
   * `RNAdPopcornNativeAdView.m`
   * `RNAdPopcornNativeAdViewManager.m`
   * `RNAdPopcornRewardVideoAdModule.h`
   * `RNAdPopcornRewardVideoAdModule.m`
   * `RNAdPopcornSSPModule.h`
   * `RNAdPopcornSSPModule.m`

</details>

**iOS pod 설치**

NPM 설치 시 Podfile 세팅은 자동으로 돼요. 아래 명령어로 pod을 설치해 주세요.

```
cd ios && pod install
```

## 2. 플랫폼 별 추가 기본 설정

* Android

<details>

<summary>Android 기본 설정</summary>

## 매니페스트 설정

애드팝콘 SSP를 이용하기 위한 내용을 <mark style="color:red;">`AndroidManifest.xml`</mark> 파일에 추가합니다.

### 1) 앱 키 추가

[애드팝콘 SSP 콘솔페이지](https://www.console.adpopcorn.com/)에서 애드팝콘 앱 등록 후 발급받은 앱 키를 \<application> \</application> 태그 안에 추가합니다.

{% code title="XML" %}

```xml
<application>
... 
<meta-data android:name="adpopcorn_ssp_app_key" android:value="이곳에_앱키를_입력하세요"/> 
...
</application>
```

{% endcode %}

### 2) 퍼미션 추가

\<manifest>\</manifest> 태그 안에 필수 퍼미션을 추가합니다.

{% code title="XML" %}

```xml
<manifest>
... 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
...
</manifest>
```

{% endcode %}

</details>

* iOS

<details>

<summary>iOS 기본 설정</summary>

## IDFA 설정

AdSupport Framework를 Dependencies에 추가합니다.

{% hint style="info" %}
AdSupport Framework가 추가되지 않으면 애드팝콘 SSP 서비스가 정상 동작 하지 않습니다.
{% endhint %}

### 2) iOS 14 IDFA 사용 동의 설정

{% hint style="danger" %} <mark style="color:red;">iOS 14 버전의 사용자에게는 AdSupport Framework 추가 이외에 아래의 연동을 통해 수집 동의를 받아야 합니다.</mark>
{% endhint %}

1. App Tracking Transparency framework를 Dependencies에 추가합니다.
2. 앱 추적 투명성 승인 요청

IDFA에 액세스하기 위한 앱 추적 투명성 승인 요청을 표시하려면 <mark style="color:red;">`Info.plist`</mark>을 업데이트하여 사용을 설명하는 맞춤 메시지와 함께 <mark style="color:red;">`NSUserTrackingUsageDescription`</mark> 키를 추가합니다. 다음은 설명 텍스트의 예입니다.

<figure><img src="/files/BSCUShxq0jrt9aiOKyju" alt=""><figcaption><p>This identifier will be used to deliver personalized ads to you.</p></figcaption></figure>

위와 같이 설정 후, 다음과 같이 코드 상에서 <mark style="color:red;">`requestTrackingAuthorizationWithCompletionHandler:`</mark>를 호출하여 승인 요청을 합니다. 승인 요청할 경우 아래와 같은 동의 팝업이 노출되게 됩니다.

<figure><img src="/files/ABfIRe82QLCsLofMTn5Q" alt=""><figcaption></figcaption></figure>

승인 여부에 대한 결과 값을 받은 후, 광고 로드를 시작하여야 애드팝콘 SDK에서 IDFA를 사용할 수 있습니다. 이에 해당 API는 광고 요청 전에 반드시 마무리 되어야 합니다.

* Objective-C

```objective-c
#import <AppTrackingTransparency/AppTrackingTransparency.h>
#import <AdSupport/AdSupport.h>
...
- (void)requestIDFA {
  [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
    // Tracking authorization completed. Start loading ads here.    
  }];
}i
```

* &#x20;Swift

```swift
import AppTrackingTransparency
import AdSupport
...
func requestIDFA() {
  ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
    // Tracking authorization completed. Start loading ads here.   
  })
}
```

</details>

## 3. 미디에이션 설정

애드팝콘에서는 2가지 형태의 미디에이션을 지원합니다. 하나의 방식을 선택한 뒤, OS 환경에 맞게 연동을 진행해 주세요.

* 애드팝콘 미디에이션

{% content-ref url="/pages/XOGmPFQT7s0MbvOgKf5n" %}
[AP 미디에이션(Android)](/ssp-sdk/undefined-1/ap/ap-android.md)
{% endcontent-ref %}

{% content-ref url="/pages/IP2R7MXm9WlEBdvJxfnZ" %}
[iOS 2.x.x (구버전)](/ssp-sdk/undefined-1/ap/ap-ios/ios-2.x.x.md)
{% endcontent-ref %}

* Max 미디에이션(Beta) : 사용하고자 할 경우 사업팀(<pm@adpopcorn.com>)에 문의 하세요

{% content-ref url="/pages/esnyF96ixFtxH0IuGWzx" %}
[MAX 미디에이션(Beta, Android)](/ssp-sdk/undefined-1/max-beta/max-beta-android.md)
{% endcontent-ref %}

{% content-ref url="/pages/inI4X4hiPeJ8WPpyw8Zg" %}
[iOS 2.x.x (구버전)](/ssp-sdk/undefined-1/max-beta/max-beta-ios/ios-2.x.x.md)
{% endcontent-ref %}

## 4. 초기화

앱 시작 시, 아래 API를 이용해 SDK를 초기화 해주세요

```
AdPopcornSSP.init(appKey);
```

```typescript
import {
  AdPopcornSSP,
  AdPopcornSSPEvents,
} from 'react-native-adpopcorn-ssp';

function App(): JSX.Element {t
  useEffect(() => {
      // SSP 초기화 이벤트
      const initEvent = AdPopcornSSP.addListener(AdPopcornSSPEvents.OnAdPopcornSSPSDKDidInitialize, () => {
        console.log('[SSP] SDK Initialized');
        // 광고 인스턴스 생성
      });
  
      // SDK 초기화
      const appKey = Platform.OS === 'ios' ? APP_KEY_IOS : APP_KEY_ANDROID;
      AdPopcornSSP.init(appKey);
      return () => {
        initEvent .remove();
      };
    }, []);
  }
  AdPopcornSSP.init('media_app_key');
}
```
