구 API 가이드
- 2015.05.19 : SDK v4.0 부터 전면광고 용 API가 새로운 방식으로 변경되었습니다. 구 API는 계속 제공되지만 기능 업데이트는 더 이상 되지 않으므로 꼭 새로운 API를 적용해주시기 바랍니다.
[Incentive Interstitial Ad]
보상형 전면 광고를 띄우는 것은 아래와 같이 간단히 2줄의 코딩만으로 가능합니다.
Incentive Ad Sample
[[TnkSession sharedInstance] prepareInterstitialAd:TNK_PPI delegate:nil];
[[TnkSession sharedInstance] showInterstitialAd];
[Non-Incentive Intestitial Ad]
비보상형 전면 광고를 띄우는 것은 아래와 같이 2줄의 코딩만으로 가능합니다.
Non-Incentive Ad Sample
[[TnkSession sharedInstance] prepareInterstitialAd:TNK_CPC delegate:nil];
[[TnkSession sharedInstance] showInterstitialAd];
[Display Logic]
보상형 또는 비보상형 전면 광고를 앱 내에 고정하여 코딩하시는 경우 해당 전면광고를 제어할 수 있는 방법이 없으므로 보다 효과적으로 관리하기 위하여 Display Logic을 사용하실 것을 권장합니다.
Display Logic을 사용하시면 전면 광고 노출기간, 빈도수, 광고의 종류 등을 자유롭게 제어하실 수 있습니다. 또한 타사와 크로스 광고를 진행하시고자 할 경우에는 Display Logic을 반드시 적용하여야 합니다. 자세한 내용은 5) Display Logic 을 참고하세요.
Display Logic Sample
[[TnkSession sharedInstance] prepareInterstitialAd:@"your_own_logic_name" delegate:nil];
[[TnkSession sharedInstance] showInterstitialAd];
[Delegate 이용하기]
전면광고의 로딩이 완료되거나 사용자가 전면광고 화면을 닫는 경우 해당 이벤트 발생시점에 필요한 로직을 구현하기 위해서
아래의 TnkAdViewDelegate 프로토콜을 이용할 수 있습니다.
TnkAdViewDelegate protocol
// Interstitial TnkAdViewDelegate 관련 상수값 정의
#define AD_CLOSE_SIMPLE 0 // 사용자가 닫기버튼을 눌러서 광고화면을 닫은 경우
#define AD_CLOSE_CLICK 1 // 사용자가 광고를 클릭해서 화면이 닫히는 경우
#define AD_FAIL_NO_AD -1 // no ad available
#define AD_FAIL_NO_IMAGE -2 // ad image not available
#define AD_FAIL_TIMEOUT -3 // ad arrived after 5 secs.
#define AD_FAIL_CANCEL -4 // ad frequency settings
#define AD_FAIL_SYSTEM -9
#define TNK_PPI @"__tnk_ppi__"
#define TNK_CPC @"__tnk_cpc__"
@protocol TnkAdViewDelegate <NSObject>
@optional
// Called when AdListView is closed
- (void)adListViewClosed;
// 전면광고 화면 닫힐 때 호출됩니다. 화면이 닫히는 이유를 파라메터로 전달해 줍니다.
- (void)adViewDidClose:(int)type;
// 전면 광고를 화면에 띄우지 못했을 경우 호출됩니다.
// 시스템 오류나 광고가 없어서 광고를 띄우지 못했을 경우,
// 광고가 늦게 도착(5초 이상) 하여 광고가 뜨지 않은 경우,
// 광고 노출 주기에 따라서 노출이 취소된 경우에 호출됩니다.
- (void)adViewDidFail:(int)errCode;
// 전면광고 화면이 나타나는 시점에 호출됩니다.
- (void)adViewDidShow;
// 전면 광고 prepare: API 호출 후 show: API 호출 전에 광고가 도착하면 호출됩니다.
// 만약 광고 도착 전에 show: API 가 호출된 경우에는 이후 광고가 도착하였을 때
// 바로 광고가 표시되고 adViewDidShow:가 호출됩니다.
- (void)adViewDidLoad;
@end
전면 광고와 관련되어 TnkAdViewDelegate에서 발생하는 이벤트의 내용은 같습니다.
adViewDidClose:(int) type : 전면 화면이 닫히는 시점에 호출됩니다. 화면이 닫히는 이유가 type 파라메터로 전달됩니다.
AD_CLOSE_SIMPLE (0) : 사용자가 전면 화면의 닫기 버튼이나 Back 키를 눌러서 닫은 경우입니다.
AD_CLOSE_CLICK (1) : 사용자가 전면 화면의 광고를 클릭하여 해당 광고로 이동하는 경우 입니다.
adViewDidFail:(int) errCode : 전면 광고를 가져오지 못한 경우 호출이 됩니다. 에러 코드가 errCode 파라메터로 전달됩니다.
AD_FAIL_NO_AD (-1) : 제공할 전면광고가 없을 경우입니다.
AD_FAIL_NO_IMAGE (-2) : 전면 광고를 가져왔으나 전면 이미지 정보가 없는 경우입니다.
AD_FAIL_TIIMEOUT (-3) : showInterstitialAd: 호출 후 5초 이내에 전면광고가 도착하지 않은 경우입니다. 이 경우에는 전면광고를 띄우지 않습니다.
AD_FAIL_CANCEL (-4) : prepareInterstitialAd: 호출하였으나 서버에서 설정한 광고 노출 주기가 지나지 않아 취소된 경우입니다.
AD_FAIL_SYSTEM (-9) : 서버 또는 네트워크 오류가 발생한 경우입니다.
adViewDidLoad : prepareInsterstitialAd: 호출하여 전면광고를 성공적으로 가져온 경우 호출됩니다. 만약 전면광고가 도착하기 전에 showInterstitialAd: 가 호출되었다면 이후 전면광고 도착시 adViewDidLoad 가 호출되지 않고 바로 전면광고가 보여지면서 adViewDidShow 가 호출됩니다.
adViewDidShow : 전면광고가 화면에 나타날 때 호출됩니다.
TnkAdViewDelegate는 prepareInterstitialAd: 나 showInterstitialAd: 의 마지막 파라메터로 지정할 수 있습니다.
아래의 예시는 TnkAdViewDelegate를 사용하여 광고가 로딩되는 시점에 앱의 상태를 판단하여 광고를 띄울지 말지 결정하는 방식의 구현 예시입니다.
TnkAdViewDelegate Sample
#import "tnksdk.h"
@interface ViewController : UIViewController <TnkAdViewDelegate> {
// ...
}
@implementation ViewController
- (IBAction) interstitialPressed:(id)sender {
[[TnkSession sharedInstance] prepareInterstitialAd:TNK_PPI delegate:self];
}
#pragma mark - TnkAdViewDelegate
- (void) adListViewClosed {
NSLog(@"Ad list closed");
}
- (void) adViewDidClose:(int)type {
NSLog(@"### didClose %d", type);
}
- (void) adViewDidFail:(int)errCode {
NSLog(@"### didFail %d", errCode);
}
- (void) adViewDidShow {
NSLog(@"### didShow");
}
- (void) adViewDidLoad {
NSLog(@"### didLoad");
if (isOkToShow) {
[[TnkSession sharedInstance] showInterstitialAd];
}
}
[Interstitial Ad APIs]
전면 광고를 띄우기 위해서 사용하는 prepareInterstitialAd: 와 showInterstitialAd: 의 API 규약은 아래와 같습니다.
- TnkSession - prepareInterstitialAd:
Method
- (void) prepareInterstitialAd:(NSString *)logicName delegate:(id<TnkAdViewDelegate>)delegate
Description
하나의 전면광고를 로딩합니다. 로딩된 전면광고는 이후 showInterstitialAd API를 호출하여 화면에 띄울수 있습니다.
Parameters
- TnkSession - showInterstitialAd:
Method
- (void) showInterstitialAd
- (void) showInterstitialAd:(id<TnkAdViewDelegate>)delegate
- (void) showInterstitialAd:(id<TnkAdViewDelegate>)delegate on:(UIViewController *)viewController
Description
prepareInterstitialAd:를 통하여 로딩된 전면광고를 화면에 띄웁니다. 정상적으로 광고가 화면에 나타나면 TnkAdViewDelegate의 adViewDidShow가 호출되며, showInterstitialAd: 호출 후 5초 이내에 광고가 로딩되지 않으면 이후에 광고가 도착하더라도 화면에 나타나지 않고, TnkAdViewDelegate 객체의 adViewDidFail: 이 호출됩니다.
Parameters
파라메터 명칭
delegate
내용
TnkAdViewDelegate 객체
지정하지 않으면 prepareInterstitialAd 호출시 지정한 delegate 객체가 사용된다.