커스텀 타입(iOS)
본 문서는 비공개 문서이며 iOS 환경에서 커스텀 타입 광고용 API 가이드 입니다.
아래 가이드에는 커스텀 타입 광고 타입에 대해 설명 하고 있으며, 기본적인 연동은 애드팝콘 SSP 정식 가이드 사이트에서 확인하시기 바랍니다.
커스텀 광고?
SDK를 통해 자동으로 광고를 노출하지 않고 광고 노출에 필요한 정보를 받아 직접 광고를 노출 시켜주는 수동 광고 타입
1. 기본 연동
애드팝콘 SSP SDK iOS 기본 설정을 참고하시고 아래 사항 SSP SDK 기본 연동 진행이 필요합니다.
2. 인스턴스 생성
커스텀 광고를 요청하기 위해 인스턴스 생성 및 추가합니다.
광고를 노출하고자 하는 ViewController.m
을 수정하여 AdPopcornSSPCustomAd.h
를 import 하여 AdPopcornSSPCustomAd
인스턴스 변수를 생성합니다.
#import <AdPopcornSSP/AdPopcornSSPCustomAd.h>
@interface AdPopcornSSPCustomAdViewController () <APSSPCustomAdDelegate>
{
AdPopcornSSPCustomAd *_customAd;
}
@end
@implementation AdPopcornSSPCustomAdViewController
- (void)viewDidLoad {
[super viewDidLoad];
_customAd = [[AdPopcornSSPCustomAd alloc] initWithAppKey:@"YOUR_APP_KEY"
placementId:@"YOUR_PLACEMENT_ID" adType:SSPCustomAdNativeAd];
}
@end
아래 코드와 같이 SSP 사업팀으로부터 전달 받은 AppKey
, placementId
를 이용해 커스텀 광고 인스턴스를 생성합니다.
Class ViewController : UIViewController, APSSPCustomAdDelegate
{
var customAd: AdPopcornSSPCustomAd!
override func viewDidLoad() {
customAd = AdPopcornSSPCustomAd.init(appKey: "YOUR_APP_KEY",
placementId: "YOUR_PLACEMENT_ID", adType: SSPCustomAdNativeAd);
}
}
커스텀 광고 인스턴스 생성 시, appKey, placementId, adType을 넘겨주어야 하며 지원 하는 adType은 아래와 같습니다.
3. 델리게이트 설정
커스텀 광고 요청에 대한 결과를 전달 받을 delegate를 설정합니다.
광고 요청에 성공한 경우. adData에 광고 정보가 넘어옵니다.
#import <AdPopcornSSP/AdPopcornSSPCustomAd.h>
@interface AdPopcornSSPCustomAdViewController () <APSSPCustomAdDelegate>
{
AdPopcornSSPCustomAd *_customAd;
}
@end
@implementation AdPopcornSSPCustomAdViewController
- (void)viewDidLoad {
[super viewDidLoad];
_customAd = [[AdPopcornSSPCustomAd alloc] initWithAppKey:@"YOUR_APP_KEY"
placementId:@"YOUR_PLACEMENT_ID" adType:SSPCustomAdNativeAd];
_customAd.delegate = self;
}
#pragma mark - APSSPCustomAdDelegate
- (void)APSSPCustomAdLoadSuccess:(AdPopcornSSPCustomAd *)customAd adData:(NSString *)adData
{
NSLog(@"APSSPCustomAdLoadSuccess : %@", adData);
if(_customAd != nil)
{
// 네이티브 타입
NSData *jsonData = [adData dataUsingEncoding:NSUTF8StringEncoding];
id json = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
NSString *title = [json valueForKey:@"Title"];
NSString *landingURL = [json valueForKey:@"LandingURL"];
}
}
- (void)APSSPCustomAdLoadFail:(AdPopcornSSPCustomAd *)customAd error:(AdPopcornSSPError *)error
{
NSLog(@"APSSPCustomAdLoadFail : %@", error);
}
@end
광고 요청에 성공한 경우. adData에 광고 정보가 넘어옵니다.
class ViewController: UIViewController, APSSPCustomAdDelegate
{
var customAd: AdPopcornSSPCustomAd!
override func viewDidLoad() {
customAd = AdPopcornSSPCustomAd.init(appKey: "YOUR_APP_KEY",
placementId: "YOUR_PLACEMENT_ID", adType: SSPCustomAdNativeAd);
customAd.delegate = self;
}
// CustomAd Delegate
func apsspCustomAdLoadSuccess(_ customAd: AdPopcornSSPCustomAd!, adData:String!) {
}
func apsspCustomAdLoadFail(_ customAd: AdPopcornSSPCustomAd!, error: AdPopcornSSPError!) {
}
}
각 광고 타입별 성공 시 adData 예시는 아래와 같습니다.
<html><head><style>html,body{overflow:hidden;position:relative;width:100%;heigh
t:100%;margin:0;padding:0}</style></head>><body>
<a href="https://partners.igaworks.com/"target="_blank">
<img src="https://adpopcorn-ssp/test_campaign/300x250.JPG" width="300"
height="250" /></a></body></html><style>
html,body{overflow:hidden;position:relative;width:100%;height:100%;margin:0;paddin
g:0}</style>
{
CtaText = “Click";
Desc = “Adpopcorn SSP description sample”;
IconImageURL = “https://static.adbrix.igaworks.com/adpopcornssp/test_campaign/80x80_icon.jpg”;
MainImageURL = “https://static.adbrix.igaworks.com/adpopcornssp/test_campaign/1200x627.jpg”;
PrivacyPolicyImageURL = “https://static.adbrix.igaworks.com/adpopcornssp/default_image/warning.png”;
PrivacyPolicyURL = “https://www.igaworks.com/ko/rule_user.html”;
Title = “Title sample”;
LandingURL = “https://www.igaworks.com”;
}
4. 광고 요청
광고 요청 시점에 load
API 호출하여 서버에 광고를 요청합니다.
#import <AdPopcornSSP/AdPopcornSSPCustomAd.h>
@interface AdPopcornSSPCustomAdViewController () <APSSPCustomAdDelegate>
{
AdPopcornSSPCustomAd *_customAd;
}
@end
@implementation AdPopcornSSPCustomAdViewController
- (void)viewDidLoad {
[super viewDidLoad];
_customAd = [[AdPopcornSSPCustomAd alloc] initWithAppKey:@"YOUR_APP_KEY"
placementId:@"YOUR_PLACEMENT_ID" adType:SSPCustomAdNativeAd];
_customAd.delegate = self;
[_customAd loadAd];
}
#pragma mark - APSSPCustomAdDelegate
- (void)APSSPCustomAdLoadSuccess:(AdPopcornSSPCustomAd *)customAd adData:(NSString *)adData
{
NSLog(@"APSSPCustomAdLoadSuccess : %@", adData);
if(_customAd != nil)
{
// 네이티브 타입
NSData *jsonData = [adData dataUsingEncoding:NSUTF8StringEncoding];
id json = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
NSString *title = [json valueForKey:@"Title"];
NSString *landingURL = [json valueForKey:@"LandingURL"];
}
}
- (void)APSSPCustomAdLoadFail:(AdPopcornSSPCustomAd *)customAd error:(AdPopcornSSPError *)error
{
NSLog(@"APSSPCustomAdLoadFail : %@", error);
}
@end
5. 광고 노출, 클릭 리포트 수집
커스텀 광고 타입의 경우 매체가 직접 광고물을 노출시키고, 클릭 처리를 해주어야 하기에 반드시 아래 두 API를 적절한 시점해 호출해 주는 연동을 진행해 주어야 정확한 데이터 수집이 가능합니다.
// 광고 노출 시점에 호출
[_customAd reportImpression];
// 광고 클릭 시점에 호출
[_customAd reportClick];
// 광고 노출 시점에 호출
customAd.reportImpression();
// 광고 클릭 시점에 호출
customAd.reportClick();
위 연동 중 궁금하신 사항이나 수정이 필요한 부분이 있으면 애드팝콘 사업팀(pm@adpopcorn.com)으로 메일 주시기 바랍니다.
Last updated