미디에이션 (iOS)

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

주의사항

  • 애드팝콘 SSP 미디에이션 연동하기 전에 반드시 애드팝콘 SSP 연동이 진행 되어야 합니다. [애드팝콘 SSP : iOS]

  • 애드팝콘 SSP 미디에이션 연동 시 애드팝콘 최신 SSP 버전과 각 업체별 호환 버전을 반드시 확인 후 연동을 진행 부탁 드립니다.

  • 각 업체별 호환 버전은 아래 가이드 바로가기 링크에 기재가 되어 있으니 확인 부탁 드립니다.

1. iOS ATS 정책 관련

iOS ATS 정책이란?

일부 미디에이션 제공 업체의 경우 https 를 제공하지 않고 있습니다. 또한 WebView를 사용하기 때문에 특정 도메인을 등록하는데 어려움이 있습니다.

따라서 아래와 같이 ATS를 전체 예외로 설정해주셔야 합니다.

SSP 미디에이션의 경우 상세 내용은 각 광고 네트워크의 애플 ATS 지원 정책을 확인해주세요.

2. 미디에이션 Adapter 다운로드

아래 링크로 미디에이션 Adapter를 다운로드 해주세요.

[애드팝콘 SSP iOS Mediation Adapter 다운로드]

3. SDK 호환성 체크 정보

Adapter 버전호환성

AdPopcornSSPMediationAdapter_240522.zip

  • NAM Adapter 내 광고 영역 터치 옵션 추가

AdPopcornSSPMediationAdapter_240502.zip

  • NAM 활용 모달 광고 지원

  • Vungle Native 지원

AdPopcornSSPMediationAdapter_240425.zip

  • ADOP Adapter 업데이트

  • NAM 미디에이션 번호 오류 수정

  • NAM 7.5.0 대응

  • Pangle 5.8.0.8 대응(어댑터 내 변경 사항 없음)

  • AdFit 3.14.12 대응(어댑터 내 변경 사항 없음)

AdPopcornSSPMediationAdapter_240223.zip

  • AdFit Native Manual 연동 지원

AdPopcornSSPMediationAdapter_240216.zip

  • Swift 환경에서 네이티브 ViewBinder 생성 오류 수정

  • Vungle 7.1.0 버전 대응

  • AdFit 3.14.2 대응

  • NAM 6.8.2 대응

  • Fyber(FairBidSDK) 3.47.0 → cocoapod 설정 지원

AdPopcornSSPMediationAdapter_240118.zip

  • UnityAds 전면 광고 지원

AdPopcornSSPMediationAdapter_240110.zip

  • NAM 네이티브 광고 닫기 처리 시, 이벤트 콜백 추가

AdPopcornSSPMediationAdapter_231208.zip

  • ADOP 신규 업체 추가

  • AdFitAdapter 업데이트(AdFit SDK v3.14.2 대응, ReactNative 대응 추가)

  • NAMAdapter 업데이트(ReactNative 대응 추가)

AdPopcornSSPMediationAdapter_231201.zip

  • Mintegral SDK pod 설치로 변경

  • Admob, GAM v10.13.0 대응(어댑터내 변경 사항 없음)

  • AdFit SDK v3.12.22 대응(AdFitAdapter 업데이트)

  • AppLovin 12.0.0대응(어댑터내 변경 사항 없음)

  • Pangle v5.6.0.5 대응(어댑터내 변경 사항 없음)

  • FAN v6.14.0 대응(어댑터내 변경 사항 없음)

  • NAM v6.7.0 대응(어댑터내 변경 사항 없음)

  • UnityAds v4.9.2 대응(어댑터내 변경 사항 없음)

  • TapJoy v13.2.1 대응(어댑터내 변경 사항 없음)

  • Vungle v6.12.3 대응(어댑터내 변경 사항 없음)

  • AdColony v4.9.0 대응(어댑터내 변경 사항 없음)

  • Mintegral v7.5.1 대응(어댑터내 변경 사항 없음)

  • Cauly v3.1.22 대응(어댑터내 변경 사항 없음)

※ 사용된 업체별 버전 정보는 압축 파일 내 Podfile 및 README 참고

AdPopcornSSPMediationAdapter_231122.zip

  • AdFit, NAM 리액트 네이티브 대응 코드 추가

AdPopcornSSPMediationAdapter_230802.zip

  • AppLovin SDK v11.10.1 대응

  • TapJoy SDK v13.0.1 대응

  • AppLovinDynamicBid 미디에이션 어댑터 추가

  • TapJoyAdapter 인앱 비딩 기능 추가

AdPopcornSSPMediationAdapter_230525.zip

  • NAM 이미지 배너 가변 처리를 위해 Fluid 타입에서 Fixed 타입으로 변경

AdPopcornSSPMediationAdapter_230516.zip

  • NAM 이미지 배너 가변 대응 클릭 오류 수정

AdPopcornSSPMediationAdapter_230425.zip

  • NAM 이미지 배너 가변 대응 코드 추가(AdPopcornSSP v2.4.4 호환)

AdPopcornSSPMediationAdapter_230226.zip

  • AdMob 10.1.0 대응

  • AdFit 3.12.22 대응

  • Pangle 5.0.0.7 대응

  • AppLovin 11.7.1 대응

  • Vungle 6.12.2 대응

  • UnityAds 4.5.0 대응

※ 이번 버전부터, 대부분 pod를 통한 설치를 권장하고 있으며, Cauly, Fyber, Mezzo, Mintegral만 수동 설치를 권장합니다. 위 4개 업체의 경우 차기 버전에서 pod를 통한 대응을 진행 예정입니다.

AdPopcornSSPMediationAdapter_221214.zip

  • NAM 네이티브 노출 실패 시, 이벤트 발생 오류 수정

AdPopcornSSPMediationAdapter_221013.zip

  • NAM 4.4.0대응

AdPopcornSSPMediationAdapter_220930.zip

  • AppLovin SDK v11.5.0 대응

  • Pangle SDK v4.7.0.5 대응

  • AdMob, AdManager v9.11.0 대응

AdPopcornSSPMediationAdapter_220819.zip

  • Vungle SDK v6.12.0 대응

  • Pangle SDK v4.6.1.8 대응

  • AdMob, AdManager v9.9.0 대응

4. Podfile

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

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

platform :ios, '14.0'

use_modular_headers!
target "IgaworksDevApp" do
pod 'Google-Mobile-Ads-SDK', '10.13.0'
pod 'AdFitSDK', '3.14.17'
pod 'Ads-Global', '5.8.0.8'
pod 'FBAudienceNetwork', '6.14.0'
pod 'AppLovinSDK', '12.0.0'
pod 'NAMSDK', '7.5.3'
pod 'NAMSDK/MediationNDA', '7.5.3'
pod 'UnityAds', '4.9.2'
pod 'TapjoySDK', '13.2.1'
pod "VungleAds", '7.2.1'
pod 'AdColony', '4.9.0'
pod 'MintegralAdSDK', '7.5.1'
pod 'FairBidSDK', '3.47.0'
end

AdFItSDK의 3.14.12 사용 시에는 최소 버전을 14.0으로 변경해야 다운로드 가능합니다.

5. 미디에이션 적용 방법

1) Adapter 추가

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

2) Framework 추가

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

3) 네트워크별 상세 설정

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

4) SkAdNetworkId 등록 및 SDK 초기화

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

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

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

6. 미디에이션 SDK 초기화

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

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

1) Admob, GAM, ADOP

[[GADMobileAds sharedInstance] startWithCompletionHandler:nil]; 

2) Cauly

{
	// 상세 설정 항목들은 하단 표 참조, 설정되지 않은 항목들은 기본값으로 설정됩니다.
	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      
}

3) Mintegral

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

4) Vungle

NSError *error;
    [[VungleSDK sharedSDK] startWithAppId:@"your_appId" error:&error];

5) Fyber

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

6) Tapjoy

[[NSNotificationCenter defaultCenter] addObserver:self
    selector:@selector(tjcConnectSuccess:)
    name:TJC_CONNECT_SUCCESS
    object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self
    selector:@selector(tjcConnectFail:)
    name:TJC_CONNECT_FAILED
    object:nil];
    //Turn on Tapjoy debug mode

    [Tapjoy setDebugEnabled:YES]; //Do not set this for any version of the game released to an app store!

    //The Tapjoy connect call
    [Tapjoy connect:@"tapjoysdkkey"];

7) Pangle

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
        }
    }];

8) AppLovin

info.Plist 내 아래 정보 세팅

<key>AppLovinSdkKey</key>
<string>Your AppLovin Sdk Key</string>
#import <AppLovinSDK/AppLovinSDK.h>
...
[ALSdk shared].mediationProvider = @"max";
[ALSdk shared].userIdentifier = @"USER_ID"; // 유저 ID 존재할 경우, 세팅
[ALSdk initializeSdk];

9) NAM (Naver Ad Manager)

NAM의 경우 pod Install 시, 아래의 pod만 추가하시면 됩니다.

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

NAM SDK에 ATTFramework를 통해 서비스에서 광고 추적 여부를 구현 후, GFPAdManagerDelegate를 통하여 Status를 SDK에 제공해줘야 합니다. 이에 아래 예시와 같이 초기화 API 및 Status를 제공해 주시기 바랍니다.

@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;
    }
}

7. SkAdNetwork 지원

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

8. 미디에이션 업체 리스트

업체 명호환 버전지원 포멧가이드비고

Admob

10.13.0

  • 배너

  • 전면

  • 네이티브

  • 전면 비디오

  • 리워드 비디오

Pod를 통한 framework 추가 권장

Google Ad Manger

10.13.0

  • 배너

  • 전면

  • 네이티브

  • 전면 비디오

  • 리워드 비디오

Pod를 통한 framework 추가 권장

Facebook Audience Network

6.14.0

  • 배너

  • 전면

  • 네이티브

  • 리워드 비디오

Pod를 통한 framework 추가 권장

Cauly

3.1.22

  • 배너

  • 전면

MezzoMedia

v2 110

  • 배너

UnityAds

4.9.2

  • 전면 비디오

  • 리워드 비디오

Pod를 통한 framework 추가 권장

Mintegral

7.5.1

  • 배너

  • 네이티브

  • 전면 비디오

  • 리워드 비디오

Pod를 통한 framework 추가 권장

Adfit

3.14.2

  • 배너

  • 네이티브(Beta)

Pod를 통한 framework 추가 권장

AdColony

4.9.0

  • 전면 비디오

  • 리워드 비디오

Pod를 통한 framework 추가 권장

Vungle

7.1.0

  • 전면 비디오

  • 리워드 비디오

Pod를 통한 framework 추가 권장

Fyber(FairBidSDK)

3.47.0

  • 리워드 비디오

Tapjoy

13.2.1

  • 리워드 비디오

Pod를 통한 framework 추가 권장

Pangle

5.6.0.5

  • 전면 비디오

  • 리워드 비디오

Pod를 통한 framework 추가 권장

AppLovin

12.0.0

  • 배너

  • 전면

  • 전면 비디오

  • 리워드 비디오

Pod를 통한 framework 추가 권장

NAM(Naver Ad Manager)

6.8.2

  • 네이티브

Pod를 통한 framework 추가 권장

Last updated