AdPie
  • AdPie
    • 시작하기
  • Android
    • 프로젝트 설정
    • 광고 연동
      • 배너 광고
      • 전면 광고
      • 네이티브 광고
      • 리워드 비디오 광고
    • 미디에이션
      • 구글 애드몹
      • 구글 애드 매니저
      • 앱러빈
    • 공통
      • 에러코드
      • 디버깅
    • 변경내역
  • iOS
    • 프로젝트 설정
    • iOS 14+ 대응
    • 광고 연동
      • 배너 광고
      • 전면 광고
      • 네이티브 광고
      • 리워드 비디오 광고
    • 미디에이션
      • 구글 애드몹
      • 구글 애드 매니저
      • 앱러빈
    • 공통
      • 에러코드
      • 디버깅
      • 타겟팅
    • 변경내역
  • Flutter
    • 프로젝트 설정
    • 광고 연동
      • 배너 광고
      • 전면 광고
      • 리워드 비디오 광고
    • 공통
      • 에러코드
    • 변경내역
  • Unity
    • 프로젝트 설정
    • 광고 연동
      • 배너 광고
      • 전면 광고
      • 리워드 비디오 광고
    • 공통
      • 에러코드
    • 변경내역
  • Exchange
    • For Buyers
Powered by GitBook
On this page
  • 1 : 준비
  • 2 : SDK 초기화
  • 3 : 광고 요청
  • 4 : 광고 표출 (광고 이벤트 수신)
  • 5 : SSV (Server-side verification) 설정
  1. iOS
  2. 광고 연동

리워드 비디오 광고

1 : 준비

  • 프로젝트 설정을 통해 광고 연동을 위한 준비를 한다.

2 : SDK 초기화

  • 앱 구동시 최초 SDK 를 초기화하여야 광고 요청이 가능하다.

  • 사이트에서 발급받은 Media ID를 입력한다.

import UIKit
import AdPieSDK

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?
    func application(_ application: UIApplication, 
        didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool 
    {
        // SDK 초기화
        AdPieSDK.sharedInstance().initWithMediaId("YOUR_MEDIA_ID")        
        return true
    }
}
#import "AppDelegate.h"
#import <AdPieSDK/AdPieSDK.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application 
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{
    // SDK 초기화
    [[AdPieSDK sharedInstance] initWithMediaId:@"YOUR_MEDIA_ID_HERE"];   
    return YES;
}

@end

3 : 광고 요청

  • ViewController에 광고 요청을 위한 객체를 생성한다.

  • 사이트에서 발급받은 Slot ID를 입력한다.

  • 광고 요청과 표출로 메소드가 각각 나누어져 있기에, 요청을 미리하고 표출을 필요할 때 한다.(Preload)

  • 타겟팅 적용으로 보다 높은 수익을 얻을 수 있다.

import UIKit
import AdPieSDK

class ViewController: UIViewController, APRewardedAdDelegate {

    var rewardedAd: APRewardedAd!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // 광고 객체 생성 (Slot ID 입력)
        rewardedAd = APRewardedAd(slotId: "YOUR_SLOT_ID")
        // 델리게이트 등록
        rewardedAd.delegate = self
        // 광고 요청
        rewardedAd.load()
    }
}
// ViewController.h
#import <AdPieSDK/AdPieSDK.h>

@interface ViewController : UIViewController <APRewardedAdDelegate>
@property APRewardedAd *rewardedAd;
@end

// ViewController.m
@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // 광고 객체 생성 (Slot ID 입력)
    // 광고 객체 생성 (Slot ID 입력)
    self.rewardedAd = 
        [[APRewardedAd alloc] initWithSlotId:@"YOUR_SLOT_ID_HERE"];
    // 델리게이트 등록
    self.rewardedAd.delegate = self;
    // 광고 요청
    [self.rewardedAd load];
}

@end

4 : 광고 표출 (광고 이벤트 수신)

  • 광고 호출에 대한 콜백을 받을 수 있다.

  • ViewController에서 APRewardedAdDelegate 프로토콜을 도입(adopt)한다.

  • 광고 객체의 delegate 프로퍼티에 콜백(이벤트)를 수신받을 객체를 설정한다.

  • 델리게이트의 메소드 중 성공, 실패에 대한 메소드는 필수사항으로 반드시 구현해야 하며, 나머지 메소드는 필요에 따라서 구현한다.

  • 광고를 요청하기 위해서는 load를 호출하고, 표출하기 위해서는 swift에서는 present 메소드를 호출하고, Objective-C 언어에서는 presentFromRootViewController: 메소드를 호출한다.

  • 에러코드를 통해 광고 실패에 대한 이유를 알 수 있다.

import UIKit
import AdPieSDK

class ViewController: UIViewController, APRewardedAdDelegate {
    ...
    // MARK: - APRewardedAd delegates
    func rewardedAdDidLoad(_ rewardedAd: APRewardedAd!) {
        // 광고 로딩 완료 후 이벤트 발생
        
        // 광고 요청 후 즉시 노출하고자 할 경우 아래의 코드를 추가한다.
        if rewardedAd.isReady() {
            // 광고 표출
            rewardedAd.present(fromRootViewController: self)
        }
    }
    
    func rewardedAdDidFail(toLoad rewardedAd: APRewardedAd!, 
        withError error: Error!) 
    {
        // 광고 요청 또는 표출 실패 후 이벤트 발생
        // error code : error._code
        // error message : error.localizedDescription
    }
    
    func rewardedAdWillPresentScreen(_ rewardedAd: APRewardedAd!) {
        // 광고 표출 이벤트 발생
    }
    
    func rewardedAdWillDismissScreen(_ rewardedAd: APRewardedAd!) {
        // 광고가 표출한 뒤 종료하기 전에 이벤트 발생
    }
    
    func rewardedAdDidDismissScreen(_ rewardedAd: APRewardedAd!) {
        // 광고가 표출한 뒤 종료한 후 이벤트 발생
    }
    
    func rewardedAdDidEarnReward(_ rewardedAd: APRewardedAd!) {
        // 리워드광고 보상 이벤트 발생
    }
    
    func rewardedAdWillLeaveApplication(_ rewardedAd: APRewardedAd!) {
        // 광고 클릭 후 이벤트 발생
    } 
}
// ViewController.m
@implementation ViewController

#pragma mark APRewardedAd delegates

- (void)rewardedAdDidLoadAd:(APRewardedAd *)rewardedAd {
    // 광고 로딩 완료 후 이벤트 발생 (성공)
    // 광고 요청 후 즉시 노출하고자 할 경우 아래의 코드를 추가한다.
    if ([self.rewardedAd isReady]) {
        // 광고 표출
        [self.rewardedAd presentFromRootViewController:self];
    }
}

- (void)rewardedAdDidFailToLoadAd:(APRewardedAd *)rewardedAd
                          withError:(NSError *)error {
    // 광고 요청 또는 표출 실패 후 이벤트 발생
    // error code : [error code]
    // error message : [error localizedDescription]
}

- (void)rewardedAdWillPresentScreen:(APRewardedAd *)rewardedAd {
    // 광고 표출 이벤트 발생
}

- (void)rewardedAdWillDismissScreen:(APRewardedAd *)rewardedAd {
    // 광고가 표출한 뒤 종료하기 전에 이벤트 발생
}

- (void)rewardedAdDidDismissScreen:(APRewardedAd *)rewardedAd {
    // 광고가 표출한 뒤 종료한 후 이벤트 발생
}

- (void)rewardedAdDidEarnReward:(APRewardedAd *)rewardedAd {
    // 리워드광고 보상 이벤트 발생
}

- (void)rewardedAdWillLeaveApplication:(APRewardedAd *)rewardedAd {
    // 광고 클릭 후 이벤트 발생
}

@end

5 : SSV (Server-side verification) 설정

  • SSV 설정은 선택사항으로 필요한 경우에만 설정하여 사용할 수 있다.

  • SSV 설정은 보상 이벤트가 발생될 때 개발사에서 등록한 Callback URL을 Server to Server 방식으로 호출을 하기 위한 설정이다.

  • SSV 설정에 대한 호출 조건은 아래와 같다.

    • 대시보드를 통해 Callback URL (SSV URL)이 등록되어 있어야 한다.

    • 비디오 시청 완료 후 보상 이벤트가 발생해야 한다.

    • 필요한 경우, 광고 요청 전에 SDK를 통해 USER ID 및 CUSTOM DATA 정보를 설정한다.

  • 클라이언트에서 설정한 USER ID 와 CUSTOM DATA 정보가 있다면 Callback URL (SSV URL)에 포함되어 호출하도록 적용되어 있다.

    • (예시) https://callback_url?param=value&userid=valule&customdata=value

    • 해당 설정은 반드시 광고 요청 전에 호출해야 정상적으로 데이터가 Callback URL (SSV URL)에 포함된다.

  • SDK v1.3.7 이상에서 동작하며 이전 버전에서는 동작하지 않는다.

rewardedAd.setUserIdForSSV(userId: "<USER_ID>")
rewardedAd.setCustomDataForSSV(customData: "<CUSTOM_DATA>")
[self.rewardedAd setUserIdForSSV:@"<USER_ID>"];
[self.rewardedAd setCustomDataForSSV:@"<CUSTOM_DATA>"];
Previous네이티브 광고Next미디에이션

Last updated 8 months ago