Vungle - iOS SDK v.5.1+ 시작하기

목차

시작하기 전에

  • Vungle iOS SDK v.5.1.0은 iOS 8+만을 지원합니다.
  • Vungle iOS SDK v.5.1.0은 32bit와 64bit 앱을 모두 지원합니다.
  • 통합을 하려면 Vungle 계정이 있어야 합니다. 아직 계정이 없는 경우, 계정을 생성한 후에 계속 진행합니다.
  • 최신 iOS SDK(4.0.8) 이후는 최신 Xcode 8.0.을 지원하기 위해 출시되었습니다. 원활한 통합을 위해 반드시 Xcode 8.0 이상을 사용하시기 바랍니다.

1단계. Vungle 프레임워크를 Xcode 프로젝트에 추가

프로젝트에 VungleSDK.framework 추가

Cocoapod 사용 또는 수동 통합으로 Vungle을 Xcode 프로젝트에 추가할 수 있습니다.

Cocoapod

Cocoapods를 통해 Vungle SDK를 사용할 수 있습니다. 프로젝트의 podfile에 다음 줄을 추가하여 Vungle을 프로젝트에 추가합니다.

 포드 "VungleSDK-iOS", "5.1.0"

그런 다음 빠른 포드 설치 실행을 통해 프로젝트를 최신 버전의 iOS SDK로 업데이트합니다. 이제 "2단계. iOS 상태 막대 제거"로 이동할 수 있습니다.

수동 통합

Vungle SDK v5.1.0.다운로드 Vungle SDK의 이전 버전을 업데이트하는 경우, 새 SDK를 추가하기 전에 먼저 VungleSDK.framework 디렉토리를 완전히 제거합니다.

Vungle SDK의 이전 버전을 업데이트하는 경우, 새 SDK를 추가하기 전에 먼저 VungleSDK.framework 디렉토리를 완전히 제거합니다.

압축을 푼 파일을 찾은 다음 VungleSDK.framework프레임워크의 Xcode로 끌어다 놓습니다. VungleSDK.framework 폴더를 그룹(노란색 폴더)으로 추가해야 하며 참조(파란색 폴더)로써 추가하면 안 됩니다.

기타 필요한 프레임워크 추가

Vungle SDK에서는 프로젝트와 연결될 몇 가지 다른 네이티브 프레임워크가 필요합니다. 그러므로 프로젝트 탐색기에서 프로젝트를 클릭하고 일반 → 연결된 프레임워크 및 라이브러리로 이동합니다.

이러한 프레임워크 중 많은 경우가 대부분의 Xcode 프로젝트에서 기본 설정에 해당하므로 이미 포함되어 있습니다. 그러나 이미 포함되어 있지 않은 다음의 것들이 반드시 포함되도록 해야 합니다.

  • AdSupport.framework
  • AudioToolbox.framework
  • AVFoundation.framework
  • CFNetwork.framework
  • CoreGraphics.framework
  • CoreMedia.framework
  • Foundation.framework
  • libz.dylib or libz.tbd
  • libsqlite3.dylib or libsqlite3.tbd
  • MediaPlayer.framework
  • QuartzCore.framework
  • StoreKit.framework
  • SystemConfiguration.framework
  • UIKit.framework
  • WebKit.framework

VungleSDK 프레임워크가 연결된 프레임워크 및 라이브러리에 표시되는지 확인합니다.

“-ObjC” 링커 플래그 추가

프로젝트 탐색기에서 프로젝트를 클릭하고 빌드 설정 → 링크 → 기타 링커 플래그로 이동합니다. 기타 링커 플래그-ObjC​ 추가

2단계. iOS 상태 막대 제거

필수 단계는 아니지만, iOS 상태 막대를 삭제하면 Vungle의 광고 상호작용 및 표시가 원활하게 작동하므로 권장되는 단계입니다. 상태 막대를 제거하려면 Info.plist를 열고 컨트롤러 기반 상태 표시줄 보기 키를 추가한 후 이를 아니오로 설정합니다.

3단계. 코드 추가

SDK 초기화

참고: 앱별로 기본 광고위치가 자동으로 생성됩니다. 이 초기화 단계에서 광고위치 기능을 사용하지 않더라도 반드시 광고위치 참조 ID를 제공해야 합니다. 광고위치를 여러 개 만드는 경우, 참조 ID를 모두 제공합니다.

SDK가 자동 캐시된 광고위치에 광고를 캐시할 수 있는 충분한 시간을 주기 위해 앱을 시작하자마자 SDK를 초기화합니다. SDK를 초기화하려면 앱 ID와 앱에서 사용하려는 모든 광고위치 참조 ID(활성 및 비활성)가 필요합니다. 이 ID는 Vungle 대시보드에서 찾을 수 있습니다(Vungle 대시보드에서 광고위치 설정 참조).

- (BOOL)startWithAppId:(nonnull NSString *)appID placements:(nonnull NSArray *)placements error:(NSError **)error;

샘플 코드:

#import <VungleSDK/VungleSDK.h>
...
NSError* error;
NSString* appID = @"Your_AppID_Here"; NSArray* placementIDsArray = @[@"<Your_PlacementID_1>", @"<Your_PlacementID_2>", @"<Your_PlacementID_3>"]; VungleSDK* sdk = [VungleSDK sharedSDK]; [sdk startWithAppId:appID placements:placementIDsArray error:&error];

SDK가 성공적으로 초기화되면 다음과 같은 콜백 메서드가 호출됩니다.

- (void)vungleSDKDidInitialize;

이 설명서의 "델리게이트 콜백" 섹션을 참조합니다.

다음 속성을 사용하여 SDK 초기화의 상태를 확인할 수도 있습니다.

@property (atomic, readonly, getter=isInitialized) BOOL initialized;

SDK가 초기화되면 Vungle 대시보드에서 자동 캐시로 선택한 광고위치에 광고가 자동으로 캐시됩니다. 조회 수가 가장 높은 광고위치를 자동 캐시로 설정하는 것이 좋습니다.

광고가 성공적으로 캐시되면 자동 캐시된 광고위치와 일치하는 광고위치 참조 ID로 vungleAdPlayabilityUpdate 콜백 메서드가 호출됩니다. (이 article.)에서 "광고위치의 광고 가용성 확인" 섹션을 참조합니다.)

광고위치에 광고 로드

자동 캐시된 광고위치 외의 다른 광고위치에는 loadPlacementWithID 메서드를 호출하여 광고를 로드합니다.

- (BOOL)loadPlacementWithID:(NSString *)placementID error:(NSError **)error;

샘플 코드:

NSError* error;
VungleSDK* sdk = [VungleSDK sharedSDK]; [sdk loadPlacementWithID:"<Your_PlacementID>" error:&error];

(이 설명서에서 "광고위치의 광고 가용성 확인" 섹션을 참조합니다.)

광고위치의 광고 가용성 확인

SDK가 광고위치에 광고를 캐시하고 나면 다음과 같은 콜백 메서드가 호출됩니다.

- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(nullable NSString *)placementID; 

샘플 코드:

- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(NSString *)placementID {
    if([placementID isEqualToString:@"<Your_PlacementID>"]) {
        self.playButtonPlacement1.enabled = isAdPlayable;
    }
}

참고: 자동 캐시된 광고위치의 경우, 광고를 사용할 수 있을 때만 이 콜백 메서드가 호출됩니다. SDK는 자동 캐시된 광고위치에 대한 광고를 계속 요청합니다. 다른 광고위치에서는 "로드 실패"(isAdPlayable가 '아니오'를 반환)하는 경우에 이 콜백 메서드가 호출됩니다.

다음 속성을 사용하여 광고위치의 광고 가용성을 확인할 수도 있습니다.

- (BOOL)isAdCachedForPlacementID:(nonnull NSString *)placementID;

광고 재생

광고위치에 대한 광고가 준비되면 다음과 같은 방법으로 광고를 재생할 수 있습니다.

- (BOOL)playAd:(UIViewController *)controller options:(nullable NSDictionary *)options placementID:(nullable NSString *)placementID error:( NSError *__autoreleasing _Nullable *_Nullable)error;

샘플 코드:

VungleSDK* sdk = [VungleSDK sharedSDK];
NSError *error;
[self.sdk playAd:self options:nil placementID:@"<Your_PlacementID_1>" error:&error];
if (error) {
    NSLog(@"Error encountered playing ad: %@", error);
}

델리게이트 콜백

VungleSDKDelegate를 통해 SDK에서 콜백을 받을 수 있습니다. SDK 이벤트에 대한 알림을 받는 델리게이트에는 네 가지 콜백 메서드가 있습니다.

다음을 사용하여 델리게이트를 첨부 및 분리할 수 있습니다.

// Attach
[[VungleSDK sharedSDK] setDelegate:yourDelegateInstance];
//분리
[[VungleSDK sharedSDK] setDelegate:nil];

참고: 메모리 누수를 피하려면, 등록된 델리게이트 중 사용하지 않는 것은 적절히 분리하는 것이 중요합니다.

SDK가 비디오 광고를 재생하려고 할 때 다음 메서드가 호출됩니다. 게임 재생, 음향 효과, 애니메이션 등을 일시 중지하기에 좋은 메서드입니다.

- (void)vungleWillShowAdForPlacementID:(nullable NSString *)placementID;

SDK가 광고를 닫으려고 할 때 다음 메서드가 호출됩니다. 사용자에게 보상을 제공하고 게임 재생, 음향 효과, 애니메이션 등을 재개할 때 사용하는 메서드입니다.


- (void)vungleWillCloseAdWithViewInfo:(VungleViewInfo *)info placementID:(NSString *)placementID;

VungleViewInfo includes the following properties for you to check a result of ad play:

@interface VungleViewInfo : NSObject 
//비디오를 완성된 뷰로 간주할 수 있는지를 보여주는 BOOL 표시.
@property (nonatomic, readonly) NSNumber *completedView;
//사용자가 비디오를 본 시간(초).
@property (nonatomic, readonly) NSNumber *playTime;
//사용자의 다운로드 버튼 클릭 여부와 관계없이 BOOL 표시.
@property (nonatomic, readonly) NSNumber *didDownload;
@end

SDK가 광고 가용성 상태를 변경하면 다음 메서드가 호출됩니다. isAdPlayable 부울은 특정 placementID의 새로운 재생 가능성을 보여줍니다.

- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(NSString *)placementID;

(이 설명서에서 "광고위치의 광고 가용성 확인" 섹션을 참조합니다.)

SDK가 성공적으로 초기화되면 다음과 같은 콜백 메서드가 호출됩니다.

- (void)vungleSDKDidInitialize;

사용자 정의 옵션

이 옵션을 사용하여 재생을 위한 광고 환경을 사용자 정의할 수 있습니다.

옵션 키

기본 값/유형

설명

VunglePlayAdOptionKeyOrientations

autorotate

UIInterfaceOrientationMaskAll

오리엔테이션이 있는 비트 마스크를 나타내는 NSNumber

광고의 방향을 설정합니다. 앱이 세로 방향인 경우에도 광고를 자동으로 회전하도록 설정할 것을 권장합니다. 이런 방식으로 사용자가 최대 크기의 비디오를 보게끔 선택하여 더 나은 사용자 경험을 누릴 수 있습니다. 방향 전환을 프로젝트 레벨이 아닌 보기 제어 수준에서 설정하여 더 나은 사용자 경험을 구현할 수 있습니다.

VunglePlayAdOptionKeyUser

nil

NSString

사용자의 ID를 설정합니다. 이 값은 Vungle 서버로 전달된 다음, 광고위치가 "보상형"으로 설정된 경우 서버 간 콜백 시스템을 통해 서버로 전송됩니다.

VunglePlayAdOptionKeyIncentivizedAlertTitleText

nil

NSString

사용자가 인센티브화된 광고 경험을 조기에 닫을 때 표시되는 경고 대화 상자의 제목으로 사용되는 문자열입니다.

VunglePlayAdOptionKeyIncentivizedAlertBodyText

"정말 이 광고를 건너뛰시겠습니까? 이 광고를 건너뛰시면 손해일 수 있습니다"

NSString

사용자가 인센티브화된 광고 경험을 조기에 닫을 때 표시되는 경고 대화 상자의 본문 텍스트로 사용되는 문자열입니다.

VunglePlayAdOptionKeyIncentivizedAlertCloseButtonText

"닫기"

NSString

사용자가 인센티브화된 광고 경험을 조기에 닫을 때 표시되는 경고 대화 상자의 닫기 버튼 텍스트로 사용되는 문자열 제목입니다.

VunglePlayAdOptionKeyIncentivizedAlertContinueButtonText

"계속"

NSString

사용자가 인센티브화된 광고 경험을 조기에 닫을 때 표시되는 경고 대화 상자의 닫기 버튼 텍스트로 사용되는 문자열 제목입니다.

샘플 코드:

NSDictionary *options = @{VunglePlayAdOptionKeyOrientations: @(UIInterfaceOrientationMaskLandscape),
                          VunglePlayAdOptionKeyUser: @"userGameID",
                          VunglePlayAdOptionKeyIncentivizedAlertBodyText : @"If the video isn't completed you won't get your reward! Are you sure you want to close early?",
                          VunglePlayAdOptionKeyIncentivizedAlertCloseButtonText : @"Close",
                          VunglePlayAdOptionKeyIncentivizedAlertContinueButtonText : @"Keep Watching",
                          VunglePlayAdOptionKeyIncentivizedAlertTitleText : @"Careful!"};

//옵션 전달, 광고 재생
NSError *error;
[self.sdk playAd:self options:options placementID: error:&error];

if (error) {
    NSLog(@"Error encountered playing ad: %@", error);
}

음소거 옵션

Vungle SDK 인스턴스는 소리가 비활성화된 상태에서 광고를 재생할 수 있는 옵션을 제공합니다. playAd()를 발급하기 전에 음소거된 속성을 true로 설정할 수 있습니다.

샘플 코드:

VungleSDK* sdk = [VungleSDK sharedSDK];
self.sdk.muted = true;

참고: 이 옵션은 표준 광고 유형에만 적용됩니다. 동적 템플릿 광고에서는 대시보드에서 음소거 옵션을 구성할 수 있습니다.

디버그

SDK 정보가 필요하면 다음 속성을 사용하여 가져올 수 있습니다.

- (NSDictionary *)debugInfo;

SDK에서 로그를 출력하려면 다음 방법을 사용합니다.

- (void)setLoggingEnabled:(BOOL)enable;

VungleSDKLogger 프로토콜

@protocol VungleSDKLogger 
- (void)vungleSDKLog:(NSString*)message;
@end

VungleSDK이 로깅 이벤트를 VungleSDKLogger 프로토콜에 따라 첨부된 클래스에 전송합니다. 로그 이벤트에는 콘솔로도 인쇄되는 NSString 값이 포함됩니다(로깅이 켜져 있는 경우). 로거를 첨부하려면, 다음을 사용합니다.

[sdk attachLogger:yourLoggerInstance];

위에서 언급한 것처럼 Vungle SDK로부터 첨부된 로거를 제거하는 것이 중요합니다. 다음의 접근 방식을 사용하여 로거를 분리할 수 있습니다.

[sdk detachLogger:yourLoggerInstance];

assetLoader 프로토콜

@protocol VungleAssetLoader
/**
 * 구체화된 경로 또는 닐에 대한 (가공되지 않은) 이미지 데이터를 포함하는 유효한 NSData를 반환해야 합니다. */
- (NSData*)vungleLoadAsset:(NSString*)path;

/**
 * 구체화된 경로 또는 닐에 대한 유효한 UIImage를 반환해야 합니다.
 */
- (UIImage*)vungleLoadImage:(NSString*)path;
@end
또 다른 질문이 있으십니까? 문의 등록

댓글