본문으로 건너뛰기

클릭 처리 재정의

정보

NDA 모듈 - Server to Server(이하 S2S) 광고에 한해서 Click 처리를 Override 할 수 있는 기능에 대해서 설명합니다.

GFPAdConfiguration의 property를 통한 설정 또는 광고 로더별 설정을 통해서 별도 랜딩 처리 설정이 가능합니다.
만약 configuration 와 광고 타입별 로더에 모두 S2SClickDelegate 를 설정할 경우, 우선순위는 아래와 같습니다.

  1. 광고 타입별 로더에 설정되는 S2SClickDelegate
  2. GFPAdConfiguration 에 전역으로 설정되는 S2SClickDelegate

만약 둘 다 설정하지 않는다면, 기본 설정으로 랜딩됩니다.

주의

핸들러를 구현할 때, 인자로 넘겨받은 GFPS2SAdLandingHandler을 통해서 올바르게 click 처리가 되었는지 여부를 반드시 호출해주어야 합니다. 정확한 값을 전달해야만 올바른 과금이 발생하니 반드시 확인 부탁드립니다. 핸드러는 반드시 openURL() method 스코프 내부에서 호출해주어야 합니다. ex) UIApplication.shared.open의 응답을 기다리지 않고, 오픈 시도를 한 경우 바로 landingHandler(true) 호출

SDK 초기화 시 GFPAdConfiguration을 통한 전역 설정

var configuration = GFPAdConfiguration()
configuration.s2sClickDelegate = self;

GFPAdManager.setup(withPublisherCd: "", target:self, configuration: configuration) { error:GFPError? in
...
}
func openURL(with urlString: String!, landingHandler: GFPS2SAdLandingHandler!) {

let landingUrl = GFPURLUtils.url(with: urlString)
let isClickProcessEnable = UIApplication.sharedApplication.canOpenURL(landingUrl)

UIApplication.shared.open(landingUrl, options: [:]) { isSuccess in
...
}

...

if (landingHandler != nil) {
landingHandler(isClickProcessEnable);
}
}

광고 타입별 로더에 설정

GFPAdLoader

var adLoader:GFPAdLoader;
...
adLoader.s2sClickDelegate = self; //GFPS2SAdClickDelegate 을 conform 함.
func openURL(with urlString: String!, landingHandler: GFPS2SAdLandingHandler!) {
UIApplication.shared.open(GFPURLUtils.url(with: urlString), options: [:]) { isSuccess in
if (landingHandler != nil) {
landingHandler(isSuccess);
}
}
}

GFPBannerView

var bannerView:GFPBannerView;
...
bannerView.s2sClickDelegate = self; //GFPS2SAdClickDelegate 을 conform 함.
func openURL(with urlString: String!, landingHandler: GFPS2SAdLandingHandler!) {
UIApplication.shared.open(GFPURLUtils.url(with: urlString), options: [:]) { isSuccess in
if (landingHandler != nil) {
landingHandler(isSuccess);
}
}
}

GFPVideoAdManager

var videoAdManager:GFPVideoAdManager;
...
videoAdManager.s2sClickDelegate = self; //GFPS2SAdClickDelegate 을 conform 함.
func openURL(with urlString: String!, landingHandler: GFPS2SAdLandingHandler!) {
UIApplication.shared.open(GFPURLUtils.url(with: urlString), options: [:]) { isSuccess in
if (landingHandler != nil) {
landingHandler(isSuccess);
}
}
}

GFPVideoAdScheduleManager

var videoAdScheduleManager:GFPVideoAdScheduleManager;
...
videoAdScheduleManager.s2sClickDelegate = self; //GFPS2SAdClickDelegate 을 conform 함.
func openURL(with urlString: String!, landingHandler: GFPS2SAdLandingHandler!) {
UIApplication.shared.open(GFPURLUtils.url(with: urlString), options: [:]) { isSuccess in
if (landingHandler != nil) {
landingHandler(isSuccess);
}
}
}

GFPRewardedAdManager

var rewardedAdManager:GFPRewardedAdManager;
...
rewardedAdManager.s2sClickDelegate = self; //GFPS2SAdClickDelegate 을 conform 함.
func openURL(with urlString: String!, landingHandler: GFPS2SAdLandingHandler!) {
UIApplication.shared.open(GFPURLUtils.url(with: urlString), options: [:]) { isSuccess in
if (landingHandler != nil) {
landingHandler(isSuccess);
}
}
}