로딩중입니다
애드팝콘 DA : iOS
5/10/2017 7:24:19 PM

애드팝콘 오퍼월 연동하기 : iOS 네이티브

본 가이드는 iOS 네이티브 프로젝트에서 애드팝콘 오퍼월을 연동하기 위한 문서입니다.

애드팝콘에 대한 서비스 소개나 이용방법 안내는 아래 아티클에서 확인하실 수 있습니다.

[애드팝콘 서비스 안내]


서비스 이용 중 도움이 필요한 경우에는 아래 메일 주소로 연락 부탁 드립니다.

1. 서비스 이용 및 제휴 문의 - 애드팝콘 사업팀 (media@igaworks.com)

2. 기술문의 : 기술지원팀(tech_support@igaworks.com)



SDK 설치


IGAWorks iOS SDK는 CocoaPods 를 이용한 자동설치를 지원합니다.

CocoaPods 를 이용하여 보다 편리하게 SDK를 설치할 수 있습니다.


CocoaPods 설치 및 초기화

CocoaPods가 설치되어 있지 않다면 Mac OSX 의 터미널을 실행하여 CocoaPods를 설치합니다.

$ sudo gem install cocoapods

설치가 완료되면 다음과 같은 터미널 화면을 확인할 수 있습니다.

설치가 완료된 후에 CocoaPods를 초기화 합니다.

$ pod setup

초기화 이후에 다음과 같은 화면이 보이신 다면, cocoapods 설치가 완료된 것입니다.



Podfile 생성 및 편집

CocoaPods 를 적용할 Xcode 프로젝트 파일이 있는 폴더로 이동하여 Podfile를 생성합니다.

$ cd /path/to/MyXcodeProject
$ touch Podfile


터미널에서 vi 에디터를 실행하여 Podfile 의 내용을 다음과 같이 수정한 뒤에 ESC, Shift+Z(2번)를 연속으로 눌러 종료합니다.

platform :ios, '8.0'
target "myProjectName" do
pod 'IgaworksCore'
pod 'AdPopcornDA'
end

CAUTION!!!  platform 의 값 중, '8.0' 의 값은 Xcode 프로젝트에서 지원하는 최소 iOS OS 버전을 의미합니다.



설치 

다음 명령어를 입력하여 SDK를 설치합니다.

$ pod install



설치 확인

다음의 명령어를 실행하여 프로젝트에 설치된 SDK를 확인할 수 있습니다.

$ open MyXCodeProject.wcworkspace




SDK 수동 설치

개발환경에 따라서 Cocoapods를 통한 설치가 어려운 경우, SDK를 프로젝트에 수동으로 설치할 수 있습니다.

수동 설치를 하기 위해서는 [APPENDIX : SDK 수동 설치] 를 참고하여 진행합니다.




코드연동


IDFA 설정

setAppleAdvertisingIdentifier api를 호출하여 SDK에 IDFA 값을 등록합니다.

#import "AppDelegate.h"
#import <AdSupport/AdSupport.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{
    if (NSClassFromString(@"ASIdentifierManager")){
		NSUUID *ifa =[[ASIdentifierManager sharedManager]advertisingIdentifier];
		BOOL isAppleAdvertisingTrackingEnalbed = [[ASIdentifierManager sharedManager]isAdvertisingTrackingEnabled];
		[IgaworksCore setAppleAdvertisingIdentifier:[ifa UUIDString] isAppleAdvertisingTrackingEnabled:isAppleAdvertisingTrackingEnalbed];
		
		NSLog(@"[ifa UUIDString] %@", [ifa UUIDString]);
    }
    return YES;
}

CAUTION!!!  위 api는 AppDelegate의 application: didFinishLaunchingWithOptions : 에서 호출합니다.

CAUTION!!!  위 api를 호출하기 위해서는 AdSupport.framework 가 Dependencies에 추가되어 있어야 합니다.



앱키 & 해시키 설정

igaworksCoreWithAppKey: andHashKey api를 호출하여 Igaworks 홈페이지에서 애드팝콘 앱 등록 후 발급받은 앱키, 해시키를 설정합니다.

#import "AppDelegate.h"
#import <AdSupport/AdSupport.h>
#import <IgaworksCore/IgaworksCore.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{
    if (NSClassFromString(@"ASIdentifierManager")){
		NSUUID *ifa =[[ASIdentifierManager sharedManager]advertisingIdentifier];
		BOOL isAppleAdvertisingTrackingEnalbed = [[ASIdentifierManager sharedManager]isAdvertisingTrackingEnabled];
		[IgaworksCore setAppleAdvertisingIdentifier:[ifa UUIDString] isAppleAdvertisingTrackingEnabled:isAppleAdvertisingTrackingEnalbed];
		
		NSLog(@"[ifa UUIDString] %@", [ifa UUIDString]);
    }

    // Igaworks appkey, hashkey setting
    [IgaworksCore igaworksCoreWithAppKey:@"YOUR_APP_KEY" andHashKey:@"YOUR_HASH_KEY"];

    return YES;
}




배너광고

배너는 DA의 가장 일반적인 광고 형태로 앱의 하단이나 상단에 노출되는 띠 형태의 광고입니다.


배너 뷰 인스턴스 생성

배너 광고를 노출하기 위해 뷰를 생성 및 추가합니다. 광고를 노출하고자 하는 ViewController.m 을 수정하여 DABannerView.h, DAAdSize.h 를 import 하여 DABannerView 인스턴스 변수를 생성합니다.

#import <AdPopcornDA/DABannerView.h>
#import <AdPopcornDA/DAAdSize.h>

@interface DABannerViewController () <DABannerViewDelegate> 
{
	DABannerView *_bannerView;
}

@end


배너크기

애드팝콘 DA 배너는 현재 iPhone, iPod Touch의 사이즈(W:320, H:50)만 지원하고 있으며, DABannerView.h 의 DABannerViewSize320x50 로 정의되어 있는 상수를 사용하시면 됩니다.


미디에이션 전환 주기

adRefreshRate API를 이용하여 미디에이션 기능을 사용할 때 각 네트워크 별로 수신한 광고의 전환 주기를 설정합니다. 최소 30초에서 최대 120초로 설정할 수 있습니다.

별도로 설정하지 않을 경우 기본값(30초)으로 유지됩니다.

//adRefreshRate = (NSInteger)seconds
_bannerView.adRefreshRate = 35;


델리게이트

배너광고에서 발생하는 이벤트에 대한 델리게이트를 제공합니다. 델리게이트를 사용하기 위해서는 DABannerViewDelegate를 추가하여야 합니다.

_bannerView 인스턴스에 delegate를 설정하고 구현하여야 합니다.

    • DABannerViewDidLoadAd : 배너광고 로드 성공
    • DABannerView: didFailToReceiveAdWithError : 배너광고 로드 실패 (전달되는 에러코드는 [APPENDIX : DA 응답 에러 코드 정의] 를 참고)
    • DABannerViewWillLeaveApplication : 배너광고 클릭
#import "DABannerViewController.h"

@interface DABannerViewController () <DABannerViewDelegate>

@end

@implementation DABannerViewController

- (void)viewDidLoad
{
	[super viewDidLoad];

	// 배너 델리게이트 설정
	_bannerView.delegate = self;
}

// 배너 델리게이트 구현
- (void)DABannerViewDidLoadAd:(DABannerView *)bannerView
{
    NSLog(@"BannerAd Loading Success");
}

- (void)DABannerView:(DABannerView *)bannerView didFailToReceiveAdWithError:(DAError *)error
{
    NSLog(@"BannerAd Laoding Failed, ErrorCode : %@", error);
}

- (void)DABannerViewWillLeaveApplication:(DABannerView *)bannerView
{
    NSLog(@"BannerAd Clicked");
}

@end

+ _bannerView : ViewController.h와 m 파일에서 생성한 DABannerView 인스턴스




전면 광고

전면광고는 화면 전체를 덮는 형태의 광고입니다. 다음을 참고하여 전면광고를 연동합니다.


인스턴스 생성

노출하고자 하는 ViewController.m에 DAInterstitialAd.h 를 import 하고 인스턴스 변수를 선언합니다.

#import <AdPopcornDA/DAInterstitialAd.h>

@interface DAInterstitialADViewController () <DAInterstitialAdDelegate>
{
    DAInterstitialAd *_interstitialAd;
}
@end


ViewController.m 을 수정하여 생성한 인스턴스를 구현합니다.

@implementation DAInterstitialADViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    _interstitialAd = [[DAInterstitialAd alloc] initWithKey:@"발급받은앱키" spotKey:@"전면광고스팟키" viewController:self];
    
}

+ 발급받은앱키 : IGAWorks에서 앱을 등록하고 발급 받은 앱키

+ 전면광고스팟키 : 애드팝콘 DA 관리페이지에서 생성한 전면광고 spotkey


광고 노출

presentFromViewController API를 호출하여 전면광고를 노출합니다.

[_interstitialAd presentFromViewController:self];

+ _interstitialAd : ViewController.h와 m 파일에서 생성한 DAInterstitialAd 인스턴스


델리게이트

전면광고에서 발생하는 이벤트에 대한 델리게이트를 제공합니다. 델리게이트를 사용하기 위해서는 DAInterstitialAdViewDelegate를 추가하여야 합니다.

_daInterstitialAd 인스턴스에 delegate를 설정하고 구현하여야 합니다.

    • DAInterstitialAdDidLoad : 전면광고 로드 성공
    • DAInterstitialAd: didFailToReceiveAdWithError : 전면광고 로드 실패 (전달되는 에러코드는 [APPENDIX : DA 응답 에러 코드 정의] 를 참고)
    • DAInterstitialAdWillLeaveApplication : 전면광고 클릭
#import "DAInterstitialADViewController.h"
@interface DAInterstitialADViewController() <DAInterstitialAdViewDelegate>
@end @implementation DAInterstitialADViewController - (void)viewDidLoad { [super viewDidLoad]; // 전면광고 델리게이트 설정 _daInterstitialAd.delegate = self; } //전면광고 델리게이트 구현 -(void)DAInterstitialAdDidLoad:(DAInterstitialAd *)interstitialAd { NSLog(@"InterstitialAd Loading Success"); } -(void)DAInterstitialAd:(DAInterstitialAd *)interstitialAd didFailToReceiveAdWithError:(DAError *)error { NSLog(@"InterstitialAd Laoding Failed, ErrorCode : %@", error); } -(void)DAInterstitialAdWillLeaveApplication:(DAInterstitialAd *)interstitialAd { NSLog(@"InterstitialAd Clicked"); } @end

+ _daInterstitialAd : ViewController.h와 m 파일에서 생성한 DAInterstitialAd 인스턴스




팝업 광고

광고가 전체 화면을 덮지 않고 여백을 통해 뒤 배경이 보이는 광고 형태입니다.


인스턴스 생성

노출하고자 하는 ViewController.m에 DAPopupAd.h 를 import 하고 인스턴스 변수를 선언합니다.

#import <AdPopcornDA/DAPopupAd.h>

@interface DAPopupAdViewController() <DAPopupAdDelegate>
{
    DAPopupAd * _daPopupAd;
}
@end


ViewController.m 을 수정하여 생성한 인스턴스를 생성합니다.

@implementation DAPopupAdViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    _daPopupAd = [[DAPopupAd alloc]initWithKey:@"발급받은앱키" spotKey:@"팝업광고스팟키"];
    
}

+ 발급받은앱키 : IGAWorks에서 앱을 등록하고 발급 받은 앱키

+ 팝업광고스팟키 : 애드팝콘 DA 관리페이지에서 생성한 팝업광고 spotkey


광고 노출

presentFromViewController API를 호출하여 팝업광고를 노출합니다.

[_daPopupAd presentFromViewController:self];

+ _daPopupAd : ViewController.h와 m 파일에서 생성한 DAPopupAd 인스턴스


팝업 크기

드팝콘 DA 팝업광고는 현재 iPhone, iPod Touch의 사이즈만 지원하고 있습니다.

    • Portrait : 240*360 (w*h)
    • Landscape : 320*213 (w*h)


델리게이트

팝업광고에서 발생하는 이벤트에 대한 델리게이트를 제공합니다. 델리게이트를 사용하기 위해서는 DAPopupAdDelegate를 추가하여야 합니다.

_daPopupAd 인스턴스에 delegate를 설정하고 구현하여야 합니다.

    • DAPopupAdDidLoad : 팝업광고 로드 성공
    • DAPopupAd: didFailToReceiveAdWithError : 팝업광고 로드 실패 (전달되는 에러코드는 [APPENDIX : DA 응답 에러 코드 정의] 를 참고)
    • DAPopupAdWillLeaveApplication : 팝업광고 클릭
    • willOpenDAPopupAd : 팝업광고 오픈 직전에 호출
    • didOpenDAPopupAd : 팝업광고 오픈 직후에 호출
    • willCloseDAPopupAd : 팝업광고 닫기 직전에 호출
    • didCloseDAPopupAd : 팝업광고 닫은 직후에 호출
#import "DAPopupAdViewController.h"
@interface DAPopupAdViewController() <DAPopupAdDelegate>
@end @implementation DAPopupAdViewController - (void)viewDidLoad { [super viewDidLoad]; // 팝업광고 델리게이트 설정 _daPopupAd.delegate = self; } //팝업광고 델리게이트 구현 -(void)DAPopupAdDidLoad:(DAPopupAd *)popupAd { NSLog(@"PopupAd Loading Success"); } -(void)DAPopupAd:(DAPopupAd *)popupAd didFailToReceiveAdWithError:(DAError *)error { NSLog(@"PopupAd Laoding Failed, ErrorCode : %@", error); } -(void)DAPopupAdWillLeaveApplication:(DAPopupAd *)popupAd { NSLog(@"PopupAd Loading Success"); } - (void)willOpenDAPopupAd { NSLog(@"- (void)willOpenDAPopupAd"); } - (void)didOpenDAPopupAd { NSLog(@"- (void)didOpenDAPopupAd"); } - (void)willCloseDAPopupAd { NSLog(@"- (void)willCloseDAPopupAd"); } - (void)didCloseDAPopupAd { NSLog(@"- (void)didCloseDAPopupAd"); } @end

+ _daPopupAd : ViewController.h와 m 파일에서 생성한 DAPopupAd 인스턴스




원스팟 광고

원스팟 광고는 사용자가 원하는 시점에 DA, NCPI, VIDEO AD 를 하나의 스팟에서 노출시킬 수 있는 지면입니다.


인스턴스 생성

노출하고자 하는 ViewController.m에 DAOneSpotAd.h 를 import 하고 인스턴스 변수를 선언합니다.

#import <AdPopcornDA/DAOneSpotAd.h>

@interface DAOneSpotAdViewController() <DAOneSpotAdDelegate>
{
    DAOneSpotAd * _daOneSpotAd;
}
@end


ViewController.m 을 수정하여 생성한 인스턴스를 생성합니다.

@implementation DAOneSpotViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    _daOneSpotAd = [[DAOneSpotAd alloc]initWithKey:@"발급받은앱키" spotKey:@"원스팟광고스팟키"];
    
}

+ 발급받은앱키 : IGAWorks에서 앱을 등록하고 발급 받은 앱키

+ 원스팟광고스팟키 : 애드팝콘 DA 관리페이지에서 생성한 원스팟광고 spotkey


광고 노출

presentFromViewController API를 호출하여 팝업광고를 노출합니다.

[_daOneSpotAd presentFromViewController:self];

+ _daOneSpotAd : ViewController.h와 m 파일에서 생성한 DAOneSpotAd 인스턴스


델리게이트

팝업광고에서 발생하는 이벤트에 대한 델리게이트를 제공합니다. 델리게이트를 사용하기 위해서는 DAOneSpotAdViewDelegate를 추가하여야 합니다.

_daOneSpotAd 인스턴스에 delegate를 설정하고 구현하여야 합니다.

    • DAOneSpotAdDidLoad : 원스팟 광고 로드 성공
    • DAOneSpotAd: didFailToReceiveAdWithError : 원스팟 광고 로드 실패 (전달되는 에러코드는 [APPENDIX : DA 응답 에러 코드 정의] 를 참고)
    • DAOneSpotAdWillLeaveApplication : 원스팟 광고 클릭
    • willOpenDAOneSpotAd : 원스팟 광고 오픈 직전에 호출
    • didOpenDAOneSpotAd : 원스팟 광고 오픈 직후에 호출
    • willCloseDAOneSpotAd : 원스팟 광고 닫기 직전에 호출
    • didCloseDAOneSpotAd : 원스팟 광고 닫은 직후에 호출
    • didCompleteDAOneSpotVideoAd : 원스팟 광고에 노출된 광고 타입이 비디오인 경우에 비디오 재생을 끝까지 완료되었을 때 호출
#import "DAPOneSpotAdViewController.h"
@interface DAOneSpotAdViewController() <DAOneSpotAdViewDelegate>
@end @implementation DAOneSpotAdViewController
- (void)viewDidLoad { [super viewDidLoad]; // 원스팟광고 델리게이트 설정 _daOneSpotAd.delegate = self;
} //원스팟광고 델리게이트 구현 -(void)DAOneSpotAdDidLoad:(DAOneSpotAd *)OneSpotAd
{ NSLog(@"OneSpotAd Loading Success");
} -(void)DAOneSpotAd:(DAOneSpotAd *)oneSpotAd didFailToReceiveAdWithError:(DAError *)error
{ NSLog(@"OneSpotAd Laoding Failed, ErrorCode : %@", error);
} -(void)DAOneSpotAdWillLeaveApplication:(DAOneSpotAd *)OneSpotAd
{ NSLog(@"OneSpotAd Clicked");
} - (void)willOpenDAOneSpotAd { NSLog(@"- (void)willOpenOneSpotAd");
} - (void)didOpenDAOneSpotAd
{ NSLog(@"- (void)didOpenDAOneSpotAd");
} - (void)willCloseDAOneSpotAd
{ NSLog(@"- (void)willCloseDAOneSpotAd");
} - (void)didCloseDAOneSpotAd
{ NSLog(@"- (void)didCloseDAOneSpotAd");
} - (void)didCompleteDAOneSpotVideoAd
{ NSLog(@"- (void)didCompleteDAOneSpotVideoAd");
} @end

+ _daOneSpotAd : ViewController.h와 m 파일에서 생성한 DAOneSpotAd 인스턴스




APPENDIX : DA 응답 에러 코드 정의

각 광고 별 이벤트 리스너로 전달되는 에러코드의 정의입니다.

코드메시지설명
200Exception일반 에러
1000Invalid Parameter잘못된 파라미터
9999Unknown Server Error알려지지 않은 서버 에러
2000Invalid Media Key잘못된 앱키
2030Invalid Spot Key잘못된 스팟키
2100Empty Campaign광고 없음
2200Invalid Third Party Name외부 네트워크 정보 로드 실패
3200Native Spot Does Not Initialized네이티브 설정 초기화 오류
5000Server Timeout서버 타임 아웃
5001Load Ad Failed특정 네트워크 광고 로드의 실패
5002No Ad모든 네트워크 광고 로드의 실패




DA 미디에이션

미디에이션 기능을 사용하기 위해 다음 아티클을 참고하여 진행합니다.

[애드팝콘 DA : iOS (미디에이션)]