iOS SDK Guide

17 분 소요

Subeen Son

현재 버젼은 110 입니다.
- 110 버젼은 iOS 11 이상 지원합니다.

Sample Project

Objective-c Sample Project

Bitbucket
git clone https://mezzomedia_adtech@bitbucket.org/mezzomediaadtech/ios-v2-objectivec.git

Swift Sample Project

Bitbucket
git clone https://mezzomedia_adtech@bitbucket.org/mezzomediaadtech/ios-v2-swift.git

SDK 광고의 구성

구분 샘플 설명
띠 배너 일반적인 바(Bar) 형태의 배너입니다.
대부분 하단에 위치하지만, 퍼블리셔의 조정에 따라 상단 또는 중간에도 게재할 수 있습니다.
전면 배너 전면에 광고가 게시되며, 퍼블리셔의 조정에 따라 노출 영역을 조정할 수 있습니다.
동영상 동영상 콘텐츠 재생 전 Instream 형태 또는 지면에 포함되어 Outstream 형태로 재생되는 동영상 광고입니다.
전면확장 전면에 광고가 게시되며, 남은 영역에는 좌측상단 1pixel 기준의 색상이 채워집니다.
전면동영상 전면에 광고가 게시되며, 배너의 하단에는 동영상광고가 함께 재생됩니다.

지원 상품(사이즈)

상품 구분 사이즈
띠배너 300x50 ㅣ 320x50 ㅣ 320x100 ㅣ 640x240 ㅣ 640x100 ㅣ 728x90
전면배너 640x960 ㅣ 320X480 ㅣ 480x320 ㅣ 1024x768 ㅣ 750x1200 ㅣ 768x1024
종료배너 640x960 ㅣ 750x1200
정사각형 및 직사각형 200x200 ㅣ 240x400 ㅣ 240x240 ㅣ 250x250 ㅣ 250x360 ㅣ 300x250 ㅣ 336x280 ㅣ 150x150 ㅣ 580x400
스카이스크래퍼 120x600 ㅣ 160x600 ㅣ 300x600 ㅣ 300x1050
리더보드 468x60 ㅣ 728x90 ㅣ 930x180 ㅣ 970x90 ㅣ 970x250 ㅣ 980x120

SDK Library 구성

헤더 파일

헤더 파일명 설명
ManAdDefine.h MAN 2.0 / MANPLUS 광고 정의 헤더
ManBanner.h 배너, 전면 광고 헤더
ManVideo.h 동영상 광고 헤더
JSONKit.h JSON 파싱 관련 파일
ManJSONKit.h JSON 파싱 관련 파일
UIView+Toast.h Mezzomedia callback 메세지 Toast 관련 파일

라이브러리 파일

라이브러리 파일명 설명
libManplus_v110.a MANPLUS 광고 라이브러리

MANPLUS SDK에서는 JSON 파싱을 할 때 JSONKit 파일을 사용하기 때문에 반드시 포함시켜 컴파일을 해주셔야 하며, 만약 개발 프로젝트에서 이미 JSONKit 파일을 사용 중이면 포함하지 않으셔도 됩니다.
(JSONKit 내부의 인터페이스가 JSONDecoder 아닌 경우에는 MANPLUS SDK에 포함 되어 있는 JSONKit 파일을 사용해주시기 바랍니다.)

샘플 구성 (Objective-c)

SDK 샘플 프로젝트가 포함 되어 있습니다.
라이브러리 경로 : Manplus_Sample/ManplusLibrary/…
Sample Project로 이동

샘플 구성 (Swift)

SDK 샘플 프로젝트가 포함 되어 있습니다.
라이브러리 경로 : Manplus_Sample/ManplusLibrary/…
Sample Project로 이동

SDK를 사용하기 위한 프레임워크

Framework 명 설명
MediaPlayer.framework 동영상 광고를 위한 framework
CoreLocation.framework 위치정보를 얻기 위한 framework
SystemConfiguration.framework OS 정보를 얻기 위한 framework
CoreTelephony.framework(‘Required’를 ‘Optional’로 변경) 단말기 정보를 얻기 위한 framework
AdSupport.framework (Optional 추가)(‘Required’를 ‘Optional’로 변경) IDFA 정보를 얻기 위한 framework

프로젝트에 추가된 Framework, 라이브러리 파일, 리소스 파일

SDK 연동시 주의사항

IOS 9 ATS(App Transport Security) 기능 사용 관련
IOS9 이상에서는 ATS(App Transport Security) 기능이 제공됩니다.
ATS기능 활성화 시, HTTP 방식이 제한되므로, 정상적인 MANPLUS 광고가 노출되지 않습니다.

info.plist 파일에 아래의 항목을 추가 적용하여 사용 바랍니다.
앱의 info.plist파일에 마우스 오른쪽 버튼을 눌러 ‘Open As > Source Code’로 해당파일 편집모드로 들어간 후, 아래 코드를 삽입합니다.

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitararyLoads</key>
  <true/>
</dict>

Swift 환경설정

Bridge 만들기 (Swift)

Manplus v110 SDK는 Objective-c로 제작되어 Swift 환경이시라면 Bridge Header를 만들어주시기 바랍니다.
아래 그림과 같이 Build Setting - Swift Compiler-General - Objective-c Bridging Header에 추가하신 Header file의 경로를 추가해주십시오.

Linker Flag 추가 (Swift)

Manplus v110 SDK는 Objective-c로 제작되어 Swift 환경이시라면 Linker Flag를 추가해주시기 바랍니다.
해당 값은 링커가 Objective-C 클래스나 카테고리로 정의된 라이브러리에 속한 객체 파일들을 모두 적재하게 해주는 플래그입니다.
아래 그림과 같이 Build Setting - Other Linker Flags에 -ObjC를 추가해주십시오.

띠배너 삽입

띠배너

  • 띠형태의 배너 광고물로 정의한 위치에 노출됩니다.
  • MANPLUS 광고 정책으로 정해져 있는 320x50, 320x100 사이즈입니다.

아래와 같은 띠 또는 전면 형태의 배너 노출

띠배너 연동 방식

띠 배너광고를 구현할 viewController 헤더에 ManBanner.h 임포트 및 <ManBannerDelegate> 적용, ManBanner 타입의 객체를 선언 해주시기 바랍니다. (아래의 Sample code는 Objective-c 기준)
Sample Project로 이동

ManBanner *manBanner;

ManBanner 광고 객체 설정 – (필수 세팅)

manBanner = [[ManBanner alloc] initWithFrame:CGRectMake(0, 0, 414, 50)];

// SDK 정보
[manBanner infoSDK];

// 발급받은 publisher id와 media id, section id 설정
[manBanner publisherID:@"100" mediaID:@"200" sectionID:@"300" x:0 y:0 width:414 height:50 type:@"0"];

// app_id, app_name, stroe_url 설정
[manBanner appID:@"ApplicationID" appName:@"ApplicationName" storeURL:@"AppStoreURL"];

// u_age_level (0: 만13세 미만, 1: 만13세 이상, -1: 알수없음)<필수 Parameter>
[manBanner userAgeLevel:@"1"];

// Keyword 타게팅을 위한 함수파라미터 (Optional)
[manBanner keywordParam:@"KeywordTargeting"];

// 추가적인 파라미터 (Optional)
[manBanner externalParam:@"BannerAdditionalParameters"];

// viewController 객체 넘겨준다.
manBanner.bannerDelegate = self;

배너광고 옵션 설정 – (선택 세팅)

// 유저 정보 세팅
manBanner.gender = @"1";                                // 성별 (남성:@"1", 여성:@"2")
manBanner.age = @"15"; 	                                // 나이
manBanner.userId = @"mezzomedia";                       // 유저 ID
manBanner.userEmail = @"mezzomedia@mezzomedia.co.kr";   // 유저 E-Mail 주소
manBanner.userPositionAgree = @"1";                     // 위치정보제공 동의여부 (동의:@"1", 미동의:@"0")

띠배너 광고 시작

// 띠배너 광고 시작.
[manBanner startBanner];

// 띠배너뷰 적용
[self.view addSubview:manBanner];

이벤트 구현

bannerDelegate 발생에 따른 이벤트 구현


- (void) didFailReceiveAd:(ManBanner*)adBanner errorType:(NSInteger)errorType {
  // 배너 광고 수신 실패
  // errorType은 광고 에러 코드 및 Callback 메세지 표 참조

      switch (errorType) {

        case NewManAdSuccess:
            log = @"성공";
            NSLog(@"광고 타입[유료(guarantee) or 무료(house)] : %@", [manBanner getAdType]);
            break;

        case NewManAdClick:
            log = @"광고 클릭";
            break;

            ...
      }
}

Class 설명

Function 설명
함수 설명
[manBanner publisherID:@”100” mediaID:@”200” sectionID:@”300” x:0 y:0 width:414 height:50 type:@”0”] 발급받은 publisherID, mediaID, sectionID로 배너광고 초기화
- publisherID : 발급받은 publisherID
- mediaID : 발급받은 mediaID
- sectionID : 발급받은 sectionID
- x : 배너 시작 x 좌표 위치
- y : 배너 시작 y 좌표 위치
- width : 배너 영역 가로 넓이
- height : 배너 영역 세로 넓이
- type : 띠배너 형태는 “0” 전면배너 형태 “1”
[manBanner appID:@”ApplicationID” appName:@”ApplicationName” storeURL:@”AppStoreURL”]; Application ID, Application Name, App Store URL을 넘겨줌
[manBanner userAgeLevel:@”1”]; User의 나이 레벨 파라미터(필수) (만13세 미만 : @”0”, 만13세 이상 : @”1”, 알수없음 : @”-1”)
[manBanner keywordParam:@”KeywordTargeting”]; 키워드값을 전달
구분자는 ^로 사용
keyword값은 인코딩 (Optional)
[manBanner externalParam:@”VideoAdditionalParameters”]; 추가적인 파라미터(Optional)
(추가적인 파라미터 사용 시 가이드 받으셔야 합니다.)
[manBanner infoSDK]; 호출시, SDK 정보를 Console 창에 보여줍니다.(Version, Release Date, Release Time, Description)
[manBanner getAdType] 광고 유료(guarantee)/무료(house) - String type으로 Return
[manBanner startBanner]; 배너광고를 요청한다. (배너 광고를 강제로 교체 할 경우에도 호출)
[manBanner stopBanner]; 배너광고를 종료한다.

띠 배너 영역에 전면배너를 노출할 시, publisher, media, section을 전면배너 지면코드로 설정.
영역의 크기 조정 및 type:@”1” 로 설정

ManBanner 연동 변수
변수 설명
id<ManBannerDelegate>delegate 광고뷰를 붙이는 ViewController 포인터 전달
bannerDelegate.delegate = self;
NSString *gender 광고를 사용하는 유저의 성별 정보
남성 : @”1”, 여성 : @”2”
manAdView.gender = @”1”
NSString *age 광고를 사용하는 유저의 나이 정보
manAdView.age = @”20”
NSString *userId 광고를 사용하는 유저의 아이디 정보
manAdView.userId = @”mezzo_user”
NSString *userEmail 광고를 사용하는 유저의 이메일 정보
manAdView.userEmail = @”mezzo_user@mezzomedia.co.kr”
NSString *userPositionAgree 광고를 사용하는 유저의 위치정보 제공 동의 여부
위치정보 동의 : @”1”, 위치정보 미동의 : @”0”
manAdView.userPositionAgree = @”1”
ManBanner Delegate
함수 설명
(void)didFailReceiveAd:(ManBanner*)adBanner errorType:(NSInteger)errorType 배너 광고 수신 실패 통보
errorType : 광고 실패의 원인인 에러 코드 (광고 에러코드 표 참고)

전면 광고 삽입

전면배너

  • 전면 형태의 배너 광고물이 노출됩니다.
  • 전면 배너의 종류로는 전면 확장, 전면 팝업(배경 투명, 배경 회색), 전면 동영상이 있습니다.

아래와 같은 전면 형태의 배너 노출

전면 광고 연동

ManBanner.h를 이용하여 띠배너와 전면배너 모두 사용가능합니다.
전면광고를 구현할 viewController 헤더에 ManBanner.h 임포트 및 <ManInterstitialDelegate> 적용, ManInterstitial 타입의 전면광고 객체를 선언 합니다. (아래의 Sample code는 Objective-c 기준)
Sample Project로 이동

ManBanner *manInterstitial;

ManInterstitial 광고 객체 설정 – (필수 세팅)

//전면배너의 경우 반드시 시작위치는 (0,0) 이고, 배너 크기의 경우 디바이스의 사이즈 입니다.
manInterstitial = [[ManBanner alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

// SDK 정보
[manInterstitial infoSDK];

// 발급받은 publisher id와 media id, section id 설정
[manInterstitial publisherID:@"100" mediaID:@"200" sectionID:@"300" viewType:@"0"];

// app_id, app_name, stroe_url 설정
[manInterstitial appID:@"ApplicationID" appName:@"ApplicationName" storeURL:@"AppStoreURL"];

// u_age_level (0: 만13세 미만, 1: 만13세 이상, -1: 알수없음)<필수 Parameter>
[manInterstitial userAgeLevel:@"1"];

// Keyword 타게팅을 위한 함수파라미터 (Optional)
[manInterstitial keywordParam:@"KeywordTargeting"];

// 추가적인 파라미터 (Optional)
[manInterstitial externalParam:@"InterstitialAdditionalParameters"];

// viewController 객체 넘겨준다.
manInterstitial.interDelegate = self;

전면광고 옵션 설정 – (선택 세팅)

// 유저 정보 세팅
manInterstitial.gender = @"1";                       // 성별 (남성:@"1", 여성:@"2")
manInterstitial.age = @"15"; 	                                // 나이
manInterstitial.userId = @"mezzomedia";                       // 유저 ID
manInterstitial.userEmail = @"mezzomedia@mezzomedia.co.kr";   // 유저 E-Mail 주소
manInterstitial.userPositionAgree = @"1";                     // 위치정보제공 동의여부 (동의:@"1", 미동의:@"0")

전면광고 시작

// 전면광고 시작
[manInterstitial startInterstitial];

// 전면배너뷰 적용
[self.view addSubview:manInterstitial];

이벤트 구현

interDelegate 발생에 따른 이벤트 구현


- (void)didFailReceiveAd:(ManBanner*)adBanner errorType:(NSInteger)errorType {
  // 전면 배너 광고 수신 실패
  // errorType은 광고 에러 코드 및 Callback 메세지 표 참조

      switch (errorType) {

        case NewManAdSuccess:
            log = @"성공";
            NSLog(@"광고 타입[유료(guarantee) or 무료(house)] : %@", [manInterstitial getAdType]);
            break;

        case NewManAdClick:
            log = @"광고 클릭";
            break;

            ...
      }
}

Class 설명

Function 설명
함수 설명
[manInterstitial publisherID:@”100” mediaID:@”200” sectionID:@”300” viewType:@”0”]; 발급받은 publisherID, mediaID, sectionID로 배너광고 초기화
- publisherID : 발급받은 publisherID
- mediaID : 발급받은 mediaID
- sectionID : 발급받은 sectionID
- viewTypetype : 디바이스 전체를 덮는 형태 “0”, 팝업 형태(배경 white) “1”, 팝업형태(배경 회색) “2”
[manInterstitial appID:@”ApplicationID” appName:@”ApplicationName” storeURL:@”AppStoreURL”]; Application ID, Application Name, App Store URL을 넘겨줌
[manInterstitial userAgeLevel:@”1”]; User의 나이 레벨 파라미터(필수) (만13세 미만 : @”0”, 만13세 이상 : @”1”, 알수없음 : @”-1”)
[manInterstitial keywordParam:@”KeywordTargeting”]; 키워드값을 전달
구분자는 ^로 사용
keyword값은 인코딩 (Optional)
[manInterstitial externalParam:@”VideoAdditionalParameters”]; 추가적인 파라미터(Optional)
(추가적인 파라미터 사용 시 가이드 받으셔야 합니다.)
[manInterstitial infoSDK]; 호출시, SDK 정보를 Console 창에 보여줍니다.(Version, Release Date, Release Time, Description)
[manInterstitial getAdType] 광고 유료(guarantee)/무료(house) - String type으로 Return
[manInterstitial startBanner]; 배너광고를 요청한다. (배너 광고를 강제로 교체 할 경우에도 호출)
[manInterstitial stopBanner]; 배너광고를 종료한다.

전면배너는 세로 형태로 고정되어 노출됩니다.
전면동영상의 경우 디바이스 전체를 덮는 형태 “0”, 팝업 형태(배경 white) “1”, 팝업형태(배경 회색) “2” 모두 가능합니다.

ManInterstitial 연동 변수
변수 설명
id<ManInterstitialDelegate>delegate 광고뷰를 붙이는 ViewController 포인터 전달
interDelegate.delegate = self;
NSString *gender 광고를 사용하는 유저의 성별 정보
남성 : @”1”, 여성 : @”2”
manInterstitial.gender = @”1”
NSString *age 광고를 사용하는 유저의 나이 정보
manInterstitial.age = @”20”
NSString *userId 광고를 사용하는 유저의 아이디 정보
manInterstitial.userId = @”mezzo_user”
NSString *userEmail 광고를 사용하는 유저의 이메일 정보
manInterstitial.userEmail = @”mezzo_user@mezzomedia.co.kr”
NSString *userPositionAgree 광고를 사용하는 유저의 위치정보 제공 동의 여부
위치정보 동의 : @”1”, 위치정보 미동의 : @”0”
manInterstitial.userPositionAgree = @”1”
ManInterstitial Delegate
함수 설명
(void)didFailReceiveAd:(ManBanner*)adBanner errorType:(NSInteger)errorType 배너 광고 수신 실패 통보
errorType : 광고 실패의 원인인 에러 코드 (광고 에러코드 표 참고)

동영상 광고 삽입

동영상 광고

  • 영상 형태의 동영상 광고물이 노출됩니다.
  • 동영상 광고의 종류로는 가로 동영상, 세로 동영상, 정사각 동영상이 있습니다.

아래와 같은 영상 형태로 광고 노출

동영상 광고 연동

동영상광고를 구현할 viewController 헤더에 ManVideo.h 임포트 및 <ManVideoDelegate> 적용, ManVideo 타입의 동영상광고 객체를 선언 합니다. (아래의 Sample code는 Objective-c 기준)
Sample Project로 이동

ManVideo *manVideo;

ManVideo 광고 객체 설정 – (필수 세팅)
* app_id, app_name, stroe_url 설정 > 동영상 광고의 옵션 설정 > 발급받은 publisher id와 media id, section id, 동영상 영역 시작 위치 좌표(x, y), 동영상 영역의 크기(width, height) 설정 순으로 정의하시기 바랍니다.

// app_id, app_name, stroe_url 설정
[manVideo appID:appID appName:appName storeURL:storeURL];

// 동영상 광고의 옵션 설정
[manVideo autoplay:true autoReplay:true muted:true clickFull:true closeBtnShow:true soundBtnShow:true clickBtnShow:true skipBtnShow:true clickVideoArea:false viewability:true];

// 발급받은 publisher id와 media id, section id, 동영상 영역 시작 위치 좌표(x, y), 동영상 영역의 크기(width, height) 설정
[manVideo publisherID:publisherID mediaID:mediaID sectionID:sectionID x:i_x y:i_y width:i_width height:i_height];

// u_age_level (0: 만13세 미만, 1: 만13세 이상, -1: 알수없음)<필수 Parameter>
[manVideo userAgeLevel:@"1"];

// Keyword 타게팅을 위한 함수파라미터 (Optional)
[manVideo keywordParam:@"KeywordTargeting"];

// 추가적인 파라미터 (Optional)
[manVideo externalParam:@"VideoAdditionalParameters"];

// viewController 객체 넘겨준다.
manVideo.videoDelegate = self;

동영상광고 옵션 설정 – (선택 세팅)

// 유저 정보 세팅
manVideo.gender = @"1";                               // 성별 (남성:@"1", 여성:@"2")
manVideo.age = @"15"; 	                                // 나이
manVideo.userId = @"mezzomedia";                       // 유저 ID
manVideo.userEmail = @"mezzomedia@mezzomedia.co.kr";   // 유저 E-Mail 주소
manVideo.userPositionAgree = @"1";                     // 위치정보제공 동의여부 (동의:@"1", 미동의:@"0")

동영상광고 시작

// 동영상뷰 적용
[self.view addSubview:manVideo];

// 동영상광고 시작
[manVideo startVideo];

이벤트 구현

videoDelegate 발생에 따른 이벤트 구현


- (void)didFailReceiveAd:(ManVideo*)adVideo errorType:(NSInteger)errorType {
  // 동영상 광고 수신 실패
  // errorType은 광고 에러 코드 및 Callback 메세지 표 참조

      switch (errorType) {

        case NewManAdSuccess:
            log = @"성공";
            NSLog(@"광고 타입[유료(guarantee) or 무료(house)] : %@", [manVideo getAdType]);
            break;

        case NewManAdClick:
            log = @"광고 클릭";
            break;

            ...
      }
}

Class 설명

Function 설명
함수 설명
[manVideo publisherID:@”100” mediaID:@”200” sectionID:@”300” x:0 y:0 width:414 height:50 type:@”0”] 발급받은 publisherID, mediaID, sectionID로 동영상 광고 초기화
- publisherID : 발급받은 publisherID
- mediaID : 발급받은 mediaID
- sectionID : 발급받은 sectionID
- x : 동영상 영역 시작 x 좌표 위치
- y : 동영상 영역 시작 y 좌표 위치
- width : 동영상 영역 가로 넓이
- height : 동영상 영역 세로 넓이
[manVideo appID:@”ApplicationID” appName:@”ApplicationName” storeURL:@”AppStoreURL”]; Application ID, Application Name, App Store URL을 넘겨줌
[manVideo userAgeLevel:@”1”]; User의 나이 레벨 파라미터(필수) (만13세 미만 : @”0”, 만13세 이상 : @”1”, 알수없음 : @”-1”)
[manVideo keywordParam:@”KeywordTargeting”]; 키워드값을 전달
구분자는 ^로 사용
keyword값은 인코딩 (Optional)
[manVideo externalParam:@”VideoAdditionalParameters”]; 추가적인 파라미터(Optional)
(추가적인 파라미터 사용 시 가이드 받으셔야 합니다.)
[manVideo infoSDK]; 호출시, SDK 정보를 Console 창에 보여줍니다.(Version, Release Date, Release Time, Description)
[manVideo getAdType] 광고 유료(guarantee)/무료(house) - String type으로 Return
[manVideo startBanner]; 동영상광고를 요청한다. (동영상 광고를 강제로 교체 할 경우에도 호출)
[manVideo stopBanner]; 동영상광고를 종료한다.
ManVideo 옵션

[manVideo autoplay:true autoReplay:true muted:true clickFull:true closeBtnShow:true soundBtnShow:true clickBtnShow:true skipBtnShow:true clickVideoArea:false viewability:true];
위와 같은 형태로 적용

변수 설명
autoplay 동영상 자동 재생 (true : 자동 재생, false : 재생 버튼 클릭시 재생)
autoReplay 동영상 다시 재생 (true : 자동 다시 재생, false : 1회 재생후 종료)
muted 음소거 (true : 음소거, false : 사운드 on)
clickFull 영상 영역 전체를 클릭시 랜딩 (true : 전체 클릭시, false : 광고정보 더보기 버튼 클릭시)
viewability 화면에 영상의 20%가 보일때 재생 (true : 적용하여 재생, false : 미적용)
closeBtnShow 동영상 영역 닫기 버튼 노출 (true : 노출, false : 미노출)
soundBtnShow 사운드 ON / OFF 버튼 노출 (true : 노출, false : 미노출)
clickBtnShow 광고정보 더보기 버튼 노출 (true : 노출, false : 미노출)
skipBtnShow 광고 건너뛰기 버튼 노출 (true : 노출, false : 미노출)
clickVideoArea 동영상 종료시 영역 사라짐 (true : 사라짐, false : 영상만 종료후 영역 유지)

동영상광고의 경우 가로, 세로, 정사각 형태의 종류에 따라 영역을 지정해주셔야 합니다.

ManVideo 연동 변수
변수 설명
id<ManVideoDelegate>delegate 광고뷰를 붙이는 ViewController 포인터 전달
videoDelegate.delegate = self;
NSString *gender 광고를 사용하는 유저의 성별 정보
남성 : @”1”, 여성 : @”2”
manVideo.gender = @”1”
NSString *age 광고를 사용하는 유저의 나이 정보
manVideo.age = @”20”
NSString *userId 광고를 사용하는 유저의 아이디 정보
manVideo.userId = @”mezzo_user”
NSString *userEmail 광고를 사용하는 유저의 이메일 정보
manVideo.userEmail = @”mezzo_user@mezzomedia.co.kr”
NSString *userPositionAgree 광고를 사용하는 유저의 위치정보 제공 동의 여부
위치정보 동의 : @”1”, 위치정보 미동의 : @”0”
manVideo.userPositionAgree = @”1”
ManVideo Delegate
함수 설명
(void)didFailReceiveAd:(ManVideo*)adVideo errorType:(NSInteger)errorType 동영상 광고 수신 실패 통보
errorType : 광고 실패의 원인인 에러 코드 (광고 에러코드 표 참고)
ManVideo 디바이스 회전

(예시) 디바이스 회전시 비디오영역을 액정에 꽉 채우는 경우 ManVideoController.m에 Rotate시 액션을 다음 예시와 같이 정의해야합니다.


- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    if (toInterfaceOrientation == UIInterfaceOrientationPortrait || toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
    {
        NSLog(@"PORTRAIT");
        CGRect frame = manVideo.bounds;
        frame.origin.x = i_x;
        frame.origin.y = i_y;
        frame.size.width = i_width;
        frame.size.height = i_height;
        manVideo.bounds = frame;
        manVideo.frame = frame;
    }

    else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation==UIInterfaceOrientationLandscapeRight)
    {
        NSLog(@"LANDSCAPE");
        CGRect screen = [[UIScreen mainScreen] bounds];
        CGRect frame = manVideo.bounds;
        frame.origin.x = 0;
        frame.origin.y = 0;
        frame.size.width = screen.size.height;
        frame.size.height = screen.size.width;
        manVideo.bounds = frame;
        manVideo.frame = frame;
    }
}

광고 에러 코드 및 Callback 메세지

code 이름 설명
0 NewManAdSuccess 성공
201 NewManAdClick 광고 클릭
202 NewManAdClose 광고 닫기
301 NewManVideoAdStart 비디오 광고 시작
302 NewManVideoAdSkip 비디오 광고 Skip
303 NewManVideoAdImp 비디오 노출
304 NewManVideoAdFirstQ 비디오 1/4 재생
305 NewManVideoAdMidQ 비디오 1/2 재생
306 NewManVideoAdThirdQ 비디오 3/4 재생
309 NewManVideoAdComplete 비디오 광고 재생완료
404 NewManAdNotError 광고 없음 (No Ads)
408 NewManAdTimeoutError Timeout
415 NewManAdParsingError 파싱에러
498 NewManAdDuplicateError 중복 호출 에러
499 NewManAdError Error
501 NewManBrowserError 지원하지 않는 브라우져 Error
-2001 NewManAdNotExistError 존재하지 않는 요청 에러
-3001 NewManAdIDError 광고 솔루션에서 발급 한 사업자/미디어/섹션 코드 미존재
-3003 NewManAdTargetAreaError 광고 영역 크기 에러
-3004 NewManAdVideoOptError 비디오 옵션 미설정
-3005 NewManAdUserAgeLevelError User Age Level 미설정 에러
-5002 NewManAdReloadTimeError 광고 재호출(Reload) 에러
-6002 NewManAdNetworkError 네트워크 에러
-8001 NewManAdFileError 광고물 파일 형식 에러
-9001 NewManAdCreativeError 광고물 요청 실패 (Timeout)

FAQ

광고 노출 여부 확인

No 내용
1 Q. SDK 적용 후 광고가 노출이 안 되는 경우 및 확인 절차
  A1 : 모바일기기 테스트
광고 수신에 대한 Delegate 함수 호출 여부 및 수신실패 Delegate의 에러코드를 확인합니다.(각 광고의 Delegate 내용을 참조 해 주세요)
  A2 : 매체측 적용 오류
발급받은 ID(publisherID, mediaID, sectionID)가 정확하게 적용 되었는지 확인 합니다.
2 Q. 상용 물량 세팅 이후에 광고가 안 보이거나 하우스 광고만 노출 될 경우
  A. 상용 광고의 경우, 매시각 정시에 송출되므로 정시 기준으로 재확인 바랍니다.

No ad 처리방법

No 내용
1 Q. No ad 처리 방법에 대한 문의
  A. 광고 세팅 환경에 따라, 물량이 소진 되었을 경우 No Ad가 발생하며, No Ad시 SDK는 수신실패 Delegate(에러코드 404)를 호출 합니다.
해당 Delegate가 호출이 되면, MANPLUS 광고 재 요청 및 타광고 호출, 본컨텐츠 재생(동영상) 등을 구현 하시면 됩니다.
2 Q. No ad 캠페인 세팅 후 리포트 수치가 잡히는 이유?
  A. No ad 캠페인 세팅을 해도 리포트 수치 발생은 정상이며, 이는 실제 노출이 아닌 인벤토리 체크를 위한 호출 수치 입니다.

문의처

구분 부서 이름 이메일 전화번호
제휴 문의 모바일 영업팀 김정혁 차장 jeonghyeok.kim@cj.net 02-6484-3856
ID발급 및 광고 세팅 문의 모바일 영업팀 이선민 차장 sunmin.lee1@cj.net 02-6484-3461

업데이트: