iOS SDK Guide
현재 버젼은 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];
이벤트 구현
- (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) |
[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) |
[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) |
[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 |