> 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-2.x.x/ios.md).

# 미디에이션 (iOS)

디스플레이 광고지면에 타 광고네트워크의 광고를 라이브 할 수 있는 기능을 의미하며, 내부/자체 광고의 운영 및 여러 국내/해외의 외부 광고를 노출시킬 수 있어 수익극대화에 효과적입니다.

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

* 애드팝콘 SSP 미디에이션 연동하기 전에 반드시 애드팝콘 SSP 연동이 진행 되어야 합니다. [\[애드팝콘 SSP : iOS\]](/ssp-sdk/sdk/ios/ios-2.x.x/undefined.md)
* 애드팝콘 SSP 미디에이션 연동 시 애드팝콘 최신 SSP 버전과 각 업체별 호환 버전을 반드시 확인 후 연동을 진행 부탁 드립니다.
* 각 업체별 호환 버전은 아래 가이드 바로가기 링크에 기재가 되어 있으니 확인 부탁 드립니다.
  {% endhint %}

## 1. 미디에이션 Adapter 다운로드

아래 링크로 미디에이션 Adapter 최신 버전을 다운로드 해주세요. 이전 어댑터 파일이 필요한 경우, 아래 SDK 호환성 체크 정보에서 다운로드 가능합니다.

[\[애드팝콘 SSP iOS Mediation Adapter 다운로드\]](https://github.com/IGAWorksDev/AdPopcornSDK/raw/refs/heads/master/AdPopcornSSP/02-ios-sdk/MediationAdapter/AdPopcornSSPMediationAdapter_251022.zip)

## 2. SDK 호환성 체크 정보

<table data-full-width="false"><thead><tr><th width="409">Adapter 버전</th><th>호환성</th></tr></thead><tbody><tr><td><a href="https://github.com/IGAWorksDev/AdPopcornSDK/raw/refs/heads/master/AdPopcornSSP/02-ios-sdk/MediationAdapter/AdPopcornSSPMediationAdapter_251022.zip">AdPopcornSSPMediationAdapter_251022.zip</a></td><td><ul><li><p>NAM</p><ul><li>광고 중복처리 지원</li></ul></li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_250513.zip">AdPopcornSSPMediationAdapter_250513.zip</a></td><td><ul><li><p>SPM 지원</p><ul><li>AdPocornSSP (2.9.10)</li><li>AdFit (3.19.7 이상)</li></ul></li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_250430.zip">AdPopcornSSPMediationAdapter_250430.zip</a></td><td><ul><li>Fyber <br>(pod 'FairBidSDK', '3.59.0' -> 'Fyber_Marketplace_SDK', '8.3.6') 변경<br>InterstitialVideo 제공</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_250415.zip">AdPopcornSSPMediationAdapter_250415.zip</a></td><td><ul><li>Unity 4.14.1 (Adapter 변경사항 없음)</li><li>Vungle 7.4.5 (Adapter 변경사항 없음)</li><li>Pangle 7.1.0.7 (Adapter 변경사항 없음)</li><li>Adfit 3.18.3 (Adapter 변경사항 없음)</li><li>Fyber 3.59.0 (Adapter 변경사항 없음)</li><li>AdMob 12.2.0  (Adapter 변경사항 없음)<br>(Xcode 16.0+)</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_250407.zip">AdPopcornSSPMediationAdapter_250407.zip</a></td><td><ul><li>NAM 8.4.0<br>NAM NativeAd 일반형 제공</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_250220.zip">AdPopcornSSPMediationAdapter_250220.zip</a></td><td><ul><li>NAM 8.3.0(Adapter 변경 사항 없음)</li><li>UnityAds 4.12.5(Adapter 변경 사항 없음)</li><li>AdFitAdapter 내 reactNative 뷰 크기 처리 로직 변경</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_241108.zip">AdPopcornSSPMediationAdapter_241108.zip</a></td><td><ul><li>AppLovin 13.0.1</li><li>AdForus v11.10.0</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_241016.zip">AdPopcornSSPMediationAdapter_241016.zip</a></td><td><ul><li>AdFit 3.15.4</li><li>AdMob v11.10.0</li><li>AppLovin v12.6.1(초기화 코드 변경)</li><li>Mezzo v300(0103)</li><li>Cauly v3.1.22</li><li>Mintegral v7.7.1</li><li>NAM v7.10.1</li><li>Pangle v6.2.0.5</li><li>UnityAds v4.12.2</li><li>Vungle 7.4.1</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_240808.zip">AdPopcornSSPMediationAdapter_240808.zip</a></td><td><ul><li>pangle 인앱 비딩 지원</li><li>UnityAds v4.10.0 대응(어댑터 내 변경 사항 없음)</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_240522.zip">AdPopcornSSPMediationAdapter_240522.zip</a></td><td><ul><li>NAM Adapter 내 광고 영역 터치 옵션 추가</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_240502.zip">AdPopcornSSPMediationAdapter_240502.zip</a></td><td><ul><li>NAM 활용 모달 광고 지원</li><li>Vungle Native 지원</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_240425.zip">AdPopcornSSPMediationAdapter_240425.zip</a></td><td><ul><li>ADOP Adapter 업데이트</li><li>NAM 미디에이션 번호 오류 수정</li><li>NAM 7.5.0 대응</li><li>Pangle 5.8.0.8 대응(어댑터 내 변경 사항 없음)</li><li>AdFit 3.14.12 대응(어댑터 내 변경 사항 없음)</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_240223.zip">AdPopcornSSPMediationAdapter_240223.zip</a></td><td><ul><li>AdFit Native Manual 연동 지원</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_240216.zip">AdPopcornSSPMediationAdapter_240216.zip</a></td><td><ul><li>Swift 환경에서 네이티브 ViewBinder 생성 오류 수정</li><li>Vungle 7.1.0 버전 대응</li><li>AdFit 3.14.2 대응</li><li>NAM 6.8.2 대응</li><li>Fyber(FairBidSDK) 3.47.0 → cocoapod 설정 지원</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_240118.zip">AdPopcornSSPMediationAdapter_240118.zip</a></td><td><ul><li>UnityAds 전면 광고 지원</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_240110.zip">AdPopcornSSPMediationAdapter_240110.zip</a></td><td><ul><li>NAM 네이티브 광고 닫기 처리 시, 이벤트 콜백 추가</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_231208.zip">AdPopcornSSPMediationAdapter_231208.zip</a></td><td><ul><li>ADOP 신규 업체 추가</li><li>AdFitAdapter 업데이트(AdFit SDK v3.14.2 대응, ReactNative 대응 추가)</li><li>NAMAdapter 업데이트(ReactNative 대응 추가)</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_231201.zip">AdPopcornSSPMediationAdapter_231201.zip</a></td><td><ul><li>Mintegral SDK pod 설치로 변경</li><li>Admob, GAM v10.13.0 대응(어댑터내 변경 사항 없음)</li><li>AdFit SDK v3.14.2 대응(AdFitAdapter 업데이트)</li><li>AppLovin 12.0.0대응(어댑터내 변경 사항 없음)</li><li>Pangle v5.6.0.5 대응(어댑터내 변경 사항 없음)</li><li>FAN v6.14.0 대응(어댑터내 변경 사항 없음)</li><li>NAM v6.7.0 대응(어댑터내 변경 사항 없음)</li><li>UnityAds v4.9.2 대응(어댑터내 변경 사항 없음)</li><li>TapJoy v13.2.1 대응(어댑터내 변경 사항 없음)</li><li>Vungle v6.12.3 대응(어댑터내 변경 사항 없음)</li><li>AdColony v4.9.0 대응(어댑터내 변경 사항 없음)</li><li>Mintegral v7.5.1 대응(어댑터내 변경 사항 없음)</li><li>Cauly v3.1.22 대응(어댑터내 변경 사항 없음)</li></ul><p><strong><code>※ 사용된 업체별 버전 정보는 압축 파일 내 Podfile 및 README 참고</code></strong></p></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_231122.zip">AdPopcornSSPMediationAdapter_231122.zip</a></td><td><ul><li>AdFit, NAM 리액트 네이티브 대응 코드 추가</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_230802.zip">AdPopcornSSPMediationAdapter_230802.zip</a></td><td><ul><li>AppLovin SDK v11.10.1 대응</li><li>TapJoy SDK v13.0.1 대응</li><li>AppLovinDynamicBid 미디에이션 어댑터 추가</li><li>TapJoyAdapter 인앱 비딩 기능 추가</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_230525.zip">AdPopcornSSPMediationAdapter_230525.zip</a></td><td><ul><li>NAM 이미지 배너 가변 처리를 위해 Fluid 타입에서 Fixed 타입으로 변경</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_230516.zip">AdPopcornSSPMediationAdapter_230516.zip</a></td><td><ul><li>NAM 이미지 배너 가변 대응 클릭 오류 수정</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_230425.zip">AdPopcornSSPMediationAdapter_230425.zip</a></td><td><ul><li>NAM 이미지 배너 가변 대응 코드 추가(AdPopcornSSP v2.4.4 호환)</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_230226.zip">AdPopcornSSPMediationAdapter_230226.zip</a></td><td><ul><li>AdMob 10.1.0 대응</li><li>AdFit 3.12.22 대응</li><li>Pangle 5.0.0.7 대응</li><li>AppLovin 11.7.1 대응</li><li>Vungle 6.12.2 대응</li><li>UnityAds 4.5.0 대응</li></ul><p><code>※ 이번 버전부터, 대부분 pod를 통한 설치를 권장하고 있으며, Cauly, Fyber, Mezzo, Mintegral만 수동 설치를 권장합니다. 위 4개 업체의 경우 차기 버전에서 pod를 통한 대응을 진행 예정입니다.</code></p></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_221214.zip">AdPopcornSSPMediationAdapter_221214.zip</a></td><td><ul><li>NAM 네이티브 노출 실패 시, 이벤트 발생 오류 수정</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_221013.zip">AdPopcornSSPMediationAdapter_221013.zip</a></td><td><ul><li>NAM 4.4.0대응</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_220930.zip">AdPopcornSSPMediationAdapter_220930.zip</a></td><td><ul><li>AppLovin SDK v11.5.0 대응</li><li>Pangle SDK v4.7.0.5 대응</li><li>AdMob, AdManager v9.11.0 대응</li></ul></td></tr><tr><td><a href="https://s3.ap-northeast-1.amazonaws.com/static.adbrix.igaworks.com/adpopcorn-ssp/sdk/AdPopcornSSPMediationAdapter/AdPopcornSSPMediationAdapter_220819.zip">AdPopcornSSPMediationAdapter_220819.zip</a></td><td><ul><li>Vungle SDK v6.12.0 대응</li><li>Pangle SDK v4.6.1.8 대응</li><li>AdMob, AdManager v9.9.0 대응</li></ul></td></tr></tbody></table>

## 3. Podfile

아래 Podfile에 포함된 업체 중 사용하고자 하는 업체의 pod만 선언해서 사용하면 됩니다

아래에 포함되지 않은 업체를 미디에이션으로 사용하고자 할 경우에는 MediationAdapter 내에 포함되어 있는 framework를 사용하시기 바랍니다.

```html
platform :ios, '14.0'

use_modular_headers!
target "IgaworksDevApp" do
pod 'Google-Mobile-Ads-SDK', '12.2.0'
pod 'AdFitSDK', '3.18.3'                    # 3.18.3 이후 ver 은 SPM에만 제공 중
pod 'Ads-Global', '7.1.0.7'
pod 'FBAudienceNetwork', '6.14.0'
pod 'AppLovinSDK', '13.0.1'
pod 'NAMSDK', '8.3.0'
pod 'NAMSDK/MediationNDA', '8.3.0'
pod 'UnityAds', '4.14.1'
pod 'TapjoySDK', '13.2.1'
pod "VungleAds", '7.4.5'
pod 'AdColony', '4.9.0'
pod 'MintegralAdSDK', '7.7.7'
pod 'Fyber_Marketplace_SDK', '8.3.6'
pod 'CaulySDK', :git => 'https://github.com/cauly/CaulySDK_iOS.git', :tag => '3.1.22'
end
```

{% hint style="warning" %}
AdFItSDK의 3.14.12 사용 시에는 최소 버전을 14.0으로 변경해야 다운로드 가능합니다.
{% endhint %}

{% hint style="warning" %}
AppLovinSDK v12.6.1 사용부터 AppDelegate.m 파일 내 초기화 코드가 수정되었습니다.&#x20;
{% endhint %}

## 4. 미디에이션 적용 방법

### 1) Adapter 추가

프로젝트에 위 링크에서 다운로드 받은 Adapter 중 사용하고자 하는 업체의 폴더를 추가 합니다.

### 2) .h .m 파일 설정

&#x20;**2-1) @@@.h**

<figure><img src="https://50533756-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fqmkw7pJLtjFGD5fwChbN%2Fuploads%2FZBf7D6io6n8ikzUUqIP1%2Fimage.png?alt=media&amp;token=cb1cb740-21e6-497d-b155-80e85804eb0a" alt=""><figcaption></figcaption></figure>

저희 'AdPopcornSSP' SDK를 pod install로 설치했을 경우 <mark style="color:red;">빨간박스</mark>, 수동 설치했을 경우 <mark style="color:blue;">파란팍스</mark> 코드를 사용해 주셔야 합니다.

**2-2) @@@.m**

<figure><img src="https://50533756-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fqmkw7pJLtjFGD5fwChbN%2Fuploads%2FsMDsyfa01CDEzg1Xi0Gm%2Fimage.png?alt=media&amp;token=fd1220e9-f822-4720-a67c-618f7e09c842" alt=""><figcaption></figcaption></figure>

Adapter 코드를 사용하기 위해서 '@@@.m '의 Target을 해당 project 로 설정 해주세요.

### 3) Swift Bridge-Header 추가설정

미디에이션의 네이티브  광고를 사용하고자 할 경우에는 Bridge-Header 파일 내에 각 업체의  어댑터 header 파일을 추가해 주어야 합니다. [\[기본 설정\]](/ssp-sdk/sdk/ios/ios-2.x.x/undefined.md#id-3) 링크 내의 bridge-header 파일에 아래의 내용을 추가로 설정해 주시기 바랍니다.

아래 내용은 예시이며,  adapter header 파일이 위치하는 경로는 매체의 프로젝트 내 경로에 따라 다르게 지정해야 합니다.

<pre class="language-objectivec"><code class="lang-objectivec"><strong>#import "NAMAdapter.h"
</strong><strong>#import "AdMobAdapter.h"
</strong></code></pre>

<figure><img src="https://50533756-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fqmkw7pJLtjFGD5fwChbN%2Fuploads%2FFcRQFwJduL31PXv8ItyN%2Fimage.png?alt=media&amp;token=55e5d305-855d-4cc1-8e6c-84cd09371b61" alt=""><figcaption><p>'Bridge-Header' 내부에 사용하고자 하는 Adapter 추가</p></figcaption></figure>

### 4) Framework 추가

각 네트워크 별로 필요한 iOS Framework를 추가합니다.기본적으로 cocoapod를 통한 설치를 추천하고 있습니다. 단, Mezzo, Cauly의 경우에는 MediationAdapter 파일 내에 framework가 포함되어 있습니다.

### 5) 네트워크별 상세 설정

각 네트워크 별 상세 설정은 아래의 가이드 페이지를 참고하시어 설정 부탁 드립니다.

### 6) SkAdNetworkId 등록 및 SDK 초기화

각 네트워크 별 SkAdNetworkId 등록, SDK 초기화 등은 직접 앱에 작업해 주셔야 하며, 그 밖의 배너, 전면, 리워드 비디오, 네이티브의 연동은 애드팝콘 SSP SDK의 API를 통해서 연동 진행해 주시면 됩니다.&#x20;

SDK 초기화를 AppDelegate.m 시점에 호출하도록 가이드한 업체의 초기화를 누락할 경우, 실제 광고 요청 시 초기화가 이루어져야 하기에, 광고 로딩에 시간이 더 소요되니 참고 하시기 바랍니다.

{% hint style="warning" %}
Unity 개발 환경에서도 각 업체의 UnityPlugin을 설치할 필요는 없고 각 업체의 framework만 추가해 주시면 정상 동작 합니다.
{% endhint %}

## 5. 미디에이션 SDK 초기화

일부 업체의 경우 앱 시작 시, 초기화 코드를 삽입하라고 안내 하고 있습니다. 이에 AppDelegate.m 파일 내에 각 업체 별 초기화 코드를 삽입하시기 바랍니다.&#x20;

자세한 사항은 하단 표에 연결된 각 업체 별 가이드 문서를 참고해 주시기 바랍니다.

### 1) Admob, GAM, ADOP, AdForus

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

```swift
[[GADMobileAds sharedInstance] startWithCompletionHandler:nil]; 
```

{% endtab %}

{% tab title="Swift" %}

```swift
import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    GADMobileAds.sharedInstance().start(completionHandler: nil)

    return true
  }
}
```

{% endtab %}
{% endtabs %}

​단, 아래 링크를 참고하여, Info.plist 파일안에AppId와 SKAdNetworkIdentifier를 설정해 주셔야 정상 동작 합니다.

{% embed url="<https://developers.google.com/admob/ios/quick-start?hl=ko#update_your_infoplist>" %}

### 2) Cauly

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

```swift
{
	// 상세 설정 항목들은 하단 표 참조, 설정되지 않은 항목들은 기본값으로 설정됩니다.
	CaulyAdSetting * adSetting = [CaulyAdSetting globalSetting];
	[CaulyAdSetting setLogLevel:CaulyLogLevelInfo]; //  Cauly Log 레벨
	adSetting.appId                 = @"1234567"; //  App Store 에 등록된 App ID 정보 (필수)
	adSetting.appCode               = @"CAULY";//  Cauly 로부터 발급 받은 ID 입력
	adSetting.animType              = CaulyAnimNone;//  화면 전환 효과	     
	    
	// app으로 이동할 때 webview popup창을 자동으로 닫아줍니다. 기본값은 NO입니다.
	adSetting.closeOnLanding         = YES      
}
```

{% endtab %}

{% tab title="Swift" %}

```swift
{
   // 상세 설정 항목들은 하단 표 참조, 설정되지 않은 항목들은 기본값으로 설정됩니다.
   let caulySetting = CaulyAdSetting.global();
   CaulyAdSetting.setLogLevel(CaulyLogLevelInfo)//  Cauly Log 레벨
   caulySetting?.appId = "1234567"                 //  App Store 에 등록된 App ID 정보 (필수)
   caulySetting?.appCode = "CAULY"                 //  Cauly 로부터 발급 받은 ID 입력
   caulySetting?.animType = CaulyAnimNone          //  화면 전환 효과     
   caulySetting?.closeOnLanding = true             //  App 으로 이동할 때 webview popup 창을 자동으로 닫아줍니다. 기본값은 false입니다.   
}
```

{% endtab %}
{% endtabs %}

### 3) Mintegral

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

```objectivec
[[MTGSDK sharedInstance] setAppID:@"appid" ApiKey:@"appkey"];
```

{% endtab %}

{% tab title="Swift" %}

```swift
import MTGSDK

MTGSDK.sharedInstance().setAppID("appId", apiKey: "appKey")
```

{% endtab %}
{% endtabs %}

### 4) Vungle

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

```objectivec
#import <VungleAdsSDK/VungleAdsSDK.h>
[VungleAds initWithAppId:@"app_id" completion:^(NSError * _Nullable error) {

}];
```

{% endtab %}

{% tab title="Swift" %}

```swift
import VungleAdsSDK

VungleAds.initWithAppId("<YOUR_APP_ID>") { error in
    if let error = error {
        print("Error initializing SDK")
    } else {
        print("Init is complete")
    }
}

if (VungleAds.isInitialized()) {
    print("SDK is initialized")
} else {
    print("SDK is NOT initialized")
}
```

{% endtab %}
{% endtabs %}

### 5) Fyber

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

```swift
[IASDKCore.sharedInstance initWithAppID:@"fyber_code"
    completionBlock:^(BOOL success, NSError * _Nullable error) {}
    completionQueue:nil];
```

{% endtab %}

{% tab title="Swift" %}

```swift
import IASDKCore

IASDKCore.sharedInstance().initWithAppID("app_id", completionBlock: nil, completionQueue: nil)
```

{% endtab %}
{% endtabs %}

### 6) Pangle

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

```objectivec
PAGConfig *config = [PAGConfig shareConfig];
    config.appID = @"pangle_code"; // pangle test code
    [PAGSdk startWithConfig:config completionHandler:^(BOOL success, NSError * _Nonnull error) {
        if (success) {
            //load ad data
        }
    }];
```

{% endtab %}

{% tab title="Swift" %}

```swift
import PAGAdSDK

let config = PAGConfig.share()
config.appID = "pangle_code"
PAGSdk.start(with: config) {success, error in
    if(success)
    {
        
    }
}
```

{% endtab %}
{% endtabs %}

### 7) AppLovin

{% tabs %}
{% tab title="Objective-C" %}
AppLovin v12.6.1(AdPopcornSSPMediationAdapter\_241016.zip) 사용 버전부터는 기존의 info.Plist 내 세팅한 아래 \<key>-\<value>가 삭제되어야 합니다.&#x20;

```
<key>AppLovinSdkKey</key>
<string>Your AppLovin Sdk Key</string>
```

다만, 위에 삭제된 키 값이 아래 초기화 코드에 입력되어야 합니다.

<pre class="language-objectivec"><code class="lang-objectivec"><strong>#import &#x3C;AppLovinSDK/AppLovinSDK.h>
</strong>...
ALSdkInitializationConfiguration *initConfig = [ALSdkInitializationConfiguration configurationWithSdkKey:
 @"Your AppLovin Sdk Key" builderBlock:^(ALSdkInitializationConfigurationBuilder *builder) {
        builder.mediationProvider = ALMediationProviderMAX;
}];

// Initialize the SDK with the configuration
[[ALSdk shared] initializeWithConfiguration: initConfig completionHandler:^(ALSdkConfiguration *sdkConfig) {
    // Start loading ads
}];
</code></pre>

{% endtab %}

{% tab title="Swift" %}
AppLovin v12.6.1(AdPopcornSSPMediationAdapter\_241016.zip) 사용 버전부터는 기존의 info.Plist 내 세팅한 아래 \<key>-\<value>가 삭제되어야 합니다.&#x20;

<pre><code>&#x3C;key>AppLovinSd<a data-footnote-ref href="#user-content-fn-1">k</a>Key&#x3C;/key>
&#x3C;string>Your AppLovin Sdk Key&#x3C;/string>
</code></pre>

다만, 위에 삭제된 키 값이 아래 초기화 코드에 입력되어야 합니다.

```swift
let initConfig = ALSdkInitializationConfiguration(sdkKey: "Your AppLovin Sdk Key") { builder in
    builder.mediationProvider = ALMediationProviderMAX
  }

  // Initialize the SDK with the configuration
  ALSdk.shared().initialize(with: initConfig) { sdkConfig in
    // Start loading ads
  }
```

{% endtab %}
{% endtabs %}

### 8) NAM (Naver Ad Manager)

{% tabs %}
{% tab title="Objective-C" %}
NAM의 경우 pod Install 시, 아래의 pod만 추가하시면 됩니다.

```
pod 'NAMSDK'               # SDK 본체
pod 'NAMSDK/MediationNDA'  # 네이버 광고
```

NAM SDK에 ATTFramework를 통해 서비스에서 광고 추적 여부를 구현 후, <mark style="color:red;">`GFPAdManagerDelegate`</mark>를 통하여 Status를 SDK에 제공해줘야 합니다. 이에 아래 예시와 같이 초기화 API 및 Status를 제공해 주시기 바랍니다.

```objectivec
@import GFPSDK;
@interface AppDelegate() <APSSPSDKInitializeDelegate, GFPAdManagerDelegate>
@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    GFPAdConfiguration *configuration = [[GFPAdConfiguration alloc] init];
    [GFPAdManager setupWithPublisherCd:@"NAM_Publisher_cd" target:self configuration:configuration completionHandler:^(GFPError * _Nullable error) {
        NSLog(@"NAM Setup ERROR: %@", error);
    }];

}

- (GFPATTAuthorizationStatus)attStatus {
     if (@available(iOS 14.5, *)) {
        return ATTrackingManager.trackingAuthorizationStatus;
    } else {
        if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
            return GFPATTAuthorizationStatusAuthorized;
        }
        
        return GFPATTAuthorizationStatusNotDetermined;
    }
}
```

{% endtab %}

{% tab title="Swift" %}
NAM의 경우 pod Install 시, 아래의 pod만 추가하시면 됩니다.

```
pod 'NAMSDK'               # SDK 본체
pod 'NAMSDK/MediationNDA'  # 네이버 광고
```

NAM SDK에 ATTFramework를 통해 서비스에서 광고 추적 여부를 구현 후, <mark style="color:red;">`GFPAdManagerDelegate`</mark>를 통하여 Status를 SDK에 제공해줘야 합니다. 이에 아래 예시와 같이 초기화 API 및 Status를 제공해 주시기 바랍니다.

```swift
import GFPSDK

// 1. PublisherCd 이용, GFPAdConfiguration(광고 설정) 없이 초기화 하는 경우.
GFPAdManager.setup(withPublisherCd: "publisherCd" target:self) { (error : GFPError?) in
    print("Setup Eror: \(String(describing: error?.description))")
}

// 2. PublisherCd 및 ServiceCd 이용, GFPAdConfiguration(광고 설정) 없이 초기화 하는 경우.
GFPAdManager.setup(withPublisherCd: nil, serviceCd: "serviceCd", target: self) { error in
    print("Setup Eror: \(String(describing: error?.description))")
}


func attStatus() -> GFPATTAuthorizationStatus {
    if #available(iOS 14.5, *) {
        return ATTrackingManager.trackingAuthorizationStatus
    } else {
        if ASIdentifierManager.shared().isAdvertisingTrackingEnabled {
            return .authorized
        }
        return .notDetermined
}
```

{% endtab %}
{% endtabs %}

## 6. SkAdNetwork 지원

일부 미디에이션 업체의 경우 SKAdNetwork 지원을 위해 info.plist 파일 내에 SKAdNetworkIdentifier 를 추가해 주어야 합니다. 이 부분은 각 업체의 가이드 문서에서 확인 후 추가해 주시기 바랍니다.

## 7. 미디에이션 업체 리스트

<table data-full-width="false"><thead><tr><th width="148">업체 명</th><th width="100">호환 버전</th><th>지원 포멧</th><th>가이드</th><th>비고</th></tr></thead><tbody><tr><td>Admob</td><td>11.10.0</td><td><ul><li>배너</li><li>전면</li><li>네이티브</li><li>전면 비디오</li><li>리워드 비디오</li></ul></td><td><a href="https://developers.google.com/admob/ios/quick-start?hl=ko">https://developers.google.com/admob/ios/quick-start?hl=ko</a></td><td>Pod를 통한 framework 추가 권장</td></tr><tr><td>Google Ad Manger</td><td>11.10.0</td><td><ul><li>배너</li><li>전면</li><li>네이티브</li><li>전면 비디오</li><li>리워드 비디오</li></ul></td><td><a href="https://developers.google.com/ad-manager/mobile-ads-sdk/ios/quick-start">https://developers.google.com/ad-manager/mobile-ads-sdk/ios/quick-start</a></td><td>Pod를 통한 framework 추가 권장</td></tr><tr><td>Facebook Audience Network</td><td>6.14.0</td><td><ul><li>배너</li><li>전면</li><li>네이티브</li><li>리워드 비디오</li></ul></td><td><a href="https://developers.facebook.com/docs/audience-network/guides/adding-sdk/ios">https://developers.facebook.com/docs/audience-network/guides/adding-sdk/ios</a></td><td>Pod를 통한 framework 추가 권장</td></tr><tr><td>Cauly</td><td>3.1.22</td><td><ul><li>배너</li><li>전면</li></ul></td><td><a href="https://github.com/cauly/iOS-SDK">https://github.com/cauly/iOS-SDK</a></td><td>Pod를 통한 framework 추가 권장</td></tr><tr><td>MezzoMedia</td><td>v300 0103</td><td><ul><li>배너</li></ul></td><td><a href="http://docs.meba.kr/s-plus/sdk/ios_v2/">http://docs.meba.kr/s-plus/sdk/ios_v2/</a></td><td></td></tr><tr><td>UnityAds</td><td>4.12.2</td><td><ul><li>전면 비디오</li><li>리워드 비디오</li></ul></td><td><a href="https://github.com/Unity-Technologies/unity-ads-ios">https://github.com/Unity-Technologies/unity-ads-ios</a></td><td>Pod를 통한 framework 추가 권장</td></tr><tr><td>Mintegral</td><td>7.7.1</td><td><ul><li>배너</li><li>네이티브</li><li>전면 비디오</li><li>리워드 비디오</li></ul></td><td><a href="http://cdn-adn.rayjump.com/cdn-adn/v2/markdown_v2/index.html?file=sdk-m_sdk-ios&#x26;lang=en">http://cdn-adn.rayjump.com/cdn-adn/v2/markdown_v2/index.html?file=sdk-m_sdk-ios&#x26;lang=en</a></td><td>Pod를 통한 framework 추가 권장</td></tr><tr><td>Adfit</td><td>3.15.4</td><td><ul><li>배너</li><li>네이티브(Beta)</li></ul></td><td><a href="https://github.com/adfit/adfit-ios-sdk">https://github.com/adfit/adfit-ios-sdk</a></td><td>Pod를 통한 framework 추가 권장</td></tr><tr><td>Vungle</td><td>7.4.1</td><td><ul><li>전면 비디오</li><li>리워드 비디오</li></ul></td><td><a href="https://publisher.vungle.com/sdk/sdks/ios">https://publisher.vungle.com/sdk/sdks/ios</a></td><td>Pod를 통한 framework 추가 권장</td></tr><tr><td>Fyber(FairBidSDK)</td><td>8.3.6</td><td><ul><li>전면 비디</li><li>리워드 비디오</li></ul></td><td><a href="https://developer.fyber.com/hc/en-us/articles/360010915618-Integrating-the-iOS-SDK">https://developer.fyber.com/hc/en-us/articles/360010915618-Integrating-the-iOS-SDK</a></td><td>Pod를 통한 framework 추가 권장</td></tr><tr><td>Pangle</td><td>6.2.0.5</td><td><ul><li>전면 비디오</li><li>리워드 비디오</li></ul></td><td><a href="https://www.pangleglobal.com/kr/integration/integrate-pangle-sdk-for-ios">https://www.pangleglobal.com/kr/integration/integrate-pangle-sdk-for-ios</a></td><td>Pod를 통한 framework 추가 권장</td></tr><tr><td>AppLovin</td><td>13.0.1</td><td><ul><li>배너</li><li>전면</li><li>전면 비디오</li><li>리워드 비디오</li></ul></td><td><a href="https://developers.applovin.com/en/ios/overview/integration/">https://developers.applovin.com/en/ios/overview/integration/</a></td><td>Pod를 통한 framework 추가 권장</td></tr><tr><td>NAM(Naver Ad Manager)</td><td>7.10.1</td><td><ul><li>배너</li><li>네이티브</li></ul></td><td><a href="https://naver.github.io/nam-sdk-guide/ios">https://naver.github.io/nam-sdk-guide/ios</a></td><td>Pod를 통한 framework 추가 권장</td></tr></tbody></table>

[^1]:
