Vungle SDK v.6 - Unity 시작하기

목차

 

시작하기 전에

  • iOS용 Vungle Unity 플러그인은 다음을 지원합니다.
    • iOS 8
    • Unity 4 및 Unity 5.4.1 이상
    • Vungle SDK를 사용하려면 WebKit.framework 프레임워크를 프로젝트에 연결해야 합니다. IOS 7용으로 개발할 경우 이 프레임워크를 '선택 사항'으로 설정해야 합니다. 이렇게 하려면 프로젝트 탐색기에서 프로젝트를 클릭하고 GeneralLinked Frameworks and Libraries로 이동합니다. WebKit.framework를 선택하고 상태를 '선택 사항'으로 설정합니다.

  • Android용 Vungle Unity 플러그인은 다음을 지원합니다.
    • Android용 Java 1.7 필요
    • Unity 4 및 Unity 5.3.2 이상 모두 지원

  • Windows용 Vungle Unity 플러그인은 다음을 지원합니다.
    • Windows(Universal 8.1 또는 Phone 8.1)는 Unity 4 및 Unity 5.3.2 이상을 지원합니다.
    • Windows 10 UWP는 Unity 5.3.2 이상을 지원합니다.
    • 이 설명서의 나머지 부분을 진행하기 전에 먼저 Unity 플러그인용 Vungle Windows SDK v.2.0+ 준비의 지침을 따르십시오. 그런 다음 여기로 돌아와 나머지 단계를 완료하십시오.

  • 샘플 앱 다운로드: https://github.com/Vungle/Unity-Plugin/tree/sdk6

 

1단계. Vungle Unity 플러그인으로 Unity 프로젝트 설정

Vungle Unity 플러그인을 Unity 프로젝트에 추가합니다.

프로젝트가 Unity에서 열려 있고 프로젝트를 표시하는 상태에서 다운로드한 VunglePlugin.unitypackage 파일을 두 번 클릭하여 Vungle Unity 플러그인을 어플리케이션에 추가합니다. Unity 패키지 가져오기 창이 열리면 가져오기 전에 모두를 클릭하여 모든 사항을 선택합니다.

 

빌드 설정에서 올바른 플랫폼을 대상으로 합니다.

다음 단계를 수행하는 동안 컴파일 오류를 방지하기 위해 프로젝트 빌드 설정(cmd + Shift + B)이 iOS, Android 또는 Windows 플랫폼을 대상으로 하는지 확인합니다.

Amazon 앱스토어

Vungle Android SDK는 Amazon OS 5.4 이상을 지원합니다. Unity Amazon 앱스토어 구성을 추가로 설정하여 Amazon 앱스토어에 Android APK를 제출할 수 있습니다. 다음 링크를 통해 Unity 지침을 참조하십시오. https://docs.unity3d.com/Manual/UnityIAPAmazonConfiguration.html

Google Play Services

프로젝트에 Google Play Services를 포함하면 Vungle에서 보다 강화된 맞춤형 광고 경험을 최종 사용자에게 제공할 수 있지만, 의무 사항은 아닙니다. 버전 11.0.1 이상을 사용하는 것이 좋습니다.

Google Play Services를 포함하려면 http://developer.android.com/google/play-services/setup.html#Setup에서 Google의 설치 설명서를 읽어 보시기 바랍니다. 기기의 Google Play Services가 지원되는 버전으로 업데이트되어 있는지 앱에서 확인합니다. Vungle SDK는 Google Play Services의 위치와 광고 API를 선택적으로 사용합니다.

  • android.gms:play-services-location:11.0.1
  • android.gms:play-services-ads:11.0.1
  • play-services 7.8.0 이하: 지원 라이브러리 보유
  • play-services 8.4.0 이상: 지원 라이브러리 불필요

Google Play Services 버전 7.8.0, 8.4.0, 9.8.0, 10.2.4, 11.0.1로 컴파일할 수 있도록 독립형 SDK를 성공적으로 컴파일했습니다.

Google Play Services를 추가한 후 다음 권한을 추가하십시오. AndroidManifest.xml. Vungle은 이 정보를 사용하여 각 사용자에게 최적화된 최상의 광고 경험을 제공합니다.

  • <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  • <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

 

하드웨어 가속 추가(Android만 해당)

대상 API 수준이 14 이상으로 설정되어 있으면 하드웨어 가속이 기본적으로 활성화되어 있습니다. 다이나믹 템플릿 및 Native Flex 광고를 적절하게 표시하려면 SDK에 대해 이 옵션을 사용하도록 설정해야 합니다. 프로젝트에서 이 옵션이 'false'로 설정되어 있지 않은지 확인하십시오.

샘플 코드:

<application android:hardwareAccelerated="true" ...>

 

2단계: 코드 추가

이 지침서에서는 첨부된 스크립트 내의 Vungle 관련 코드를 모두 메인 게임 객체로 초기화합니다. 적절하다고 생각되는 스크립트에서 Vungle Unity 플러그인을 호출할 수 있습니다.

 

SDK 초기화

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

SDK가 자동 캐시된 플레이스먼트에 광고를 캐시할 수 있는 충분한 시간을 주기 위해 앱을 시작하자마자 SDK를 초기화합니다. SDK를 초기화하려면 다음이 필요합니다.

  • 지원해야 하는 모든 플랫폼의 앱 ID 전체
  • 모든 플랫폼에서 앱에 사용하려는 모든 플레이스먼트의 참조 ID(활성 및 비활성)

이 ID는 Vungle 대시보드에서 찾을 수 있습니다("플레이스먼트 설정 및 리포팅" 참조).

샘플 코드:

public class VungleScript : MonoBehaviour { string appID = "";
string iosAppID = "ios_app_id";
string androidAppID = "android_app_id";
string windowsAppID = "windows_app_id"; #if UNITY_IPHONE appID = iosAppID; Dictionary<string, bool> placements = new Dictionary<string, bool> { { "ios_placement_id_1", false }, { "ios_placement_id_2", false }, { "ios_placement_id_3", false } }; #elif UNITY_ANDROID appID = androidAppID; Dictionary<string, bool> placements = new Dictionary<string, bool> { { "android_placement_id_1", false }, { "android_placement_id_2", false }, { "android_placement_id_3", false } }; #elif UNITY_WSA_10_0 || UNITY_WINRT_8_1 || UNITY_METRO appID = windowsAppID; Dictionary<string, bool> placements = new Dictionary<string, bool> { { "windows_placement_id_1", false }, { "windows_placement_id_2", false }, { "windows_placement_id_3", false } }; #endif string[] array = new string[placements.Keys.Count]; placements.Keys.CopyTo(array, 0); Vungle.init(appID, array);
}

SDK가 성공적으로 초기화되면 다음과 같은 이벤트가 호출됩니다.

public static event Action onInitializeEvent;

이 설명서의 "이벤트 취급" 섹션을 참조합니다.

Vungle SDK가 초기화된 후에는 Vungle 대시보드에서 자동 캐시로 선택한 플레이스먼트에 광고가 자동으로 캐시됩니다. 조회 수가 가장 높은 플레이스먼트를 자동 캐시로 설정하는 것이 좋습니다.

광고가 성공적으로 캐시되면 자동 캐시된 플레이스먼트와 일치하는 플레이스먼트 참조 ID로 adPlayableEvent 이벤트가 호출됩니다(이 문서의 "플레이스먼트의 광고 가용성 확인" 섹션 참조).

 

플레이스먼트에 광고 로드

자동 캐시된 플레이스먼트 외의 다른 플레이스먼트에는 loadAd 메서드를 호출하여 광고를 로드합니다.

public static void loadAd(string placementID)

올바른 플랫폼에 연결된 placementID를 사용합니다.

샘플 코드:

string placementID; #if UNITY_IPHONE placementID = "ios_placement_id"; #elif UNITY_ANDROID placementID = "android_placement_id"; #elif UNITY_WSA_10_0 || UNITY_WINRT_8_1 || UNITY_METRO placementID = "windows_placement_id"; #endif Vungle.loadAd(placementID);

 

플레이스먼트의 광고 가용성 확인

SDK가 플레이스먼트에 광고를 캐시하고 나면 다음과 같은 이벤트가 호출됩니다.

public static event Action<string, bool> adPlayableEvent;

샘플 코드:

Vungle.adPlayableEvent += (placementID, adPlayable) => { if(placementID == "ios_placement_id") { playButtonPlacement1.enabled = adPlayable; } };

참고: 자동 캐시된 플레이스먼트의 경우, 광고를 사용할 수 있을 때만 이 이벤트가 호출됩니다. SDK는 자동 캐시된 플레이스먼트에 대한 광고를 계속 요청합니다. 다른 플레이스먼트에서는 "로드 실패"(adPlayablefalse를 반환)하는 경우 이 이벤트가 호출됩니다.

다음 메서드를 사용하여 플레이스먼트의 광고 가용성을 확인할 수도 있습니다.

public static bool isAdvertAvailable(string placementID);

광고 재생

중요: 위에서 설명한 adPlayableEvent 함수가 'true'를 반환할 때까지 광고를 재생하지 마십시오. adPlayableEvent 함수가 'true'로 반환되기 전에 광고를 재생하면 광고가 로드되는 동안 사용자 경험에 부정적인 영향을 미칩니다. Android에 배치하는 경우 사용 가능한 광고가 없으면 adPlayableEvent가 false를 반환하지 않으므로 대신 isAdvertAvailable()에서 반환된 값을 사용하여 광고가 사용 가능한지 확인하십시오.

플레이스먼트에 사용 가능한 광고가 있는 경우, 다음과 같은 방법으로 광고를 재생할 수 있습니다.

public static void playAd(string placementID);

샘플 코드:

Vungle.playAd (placementID);

 

이벤트 취급

광고 프리젠테이션을 둘러싼 5개의 Vungle SDK 이벤트에 대해 이벤트 취급자를 설정할 수 있습니다.

  • SDK가 동영상 광고를 재생하려고 할 때 다음 이벤트가 발생합니다. 게임 재생, 음향 효과, 애니메이션 등을 일시 중지할 때 사용하는 메서드입니다.
    public static event Action onAdStartedEvent;
  • SDK가 광고를 닫으려고 할 때 다음 이벤트가 발생합니다. 사용자에게 보상을 제공하고 게임 재생, 음향 효과, 애니메이션 등을 재개할 때 사용하는 메서드입니다.
    public static event Action<string, AdFinishedEventArgs> onAdFinishedEvent;

    AdFinishedEventArgs 클래스는 광고 재생 결과의 확인을 위한 다음 속성으로 구성되어 있습니다.
    public class AdFinishedEventArgs : EventArgs { //Represents a BOOL whether or not the user clicked the download button. public bool WasCallToActionClicked{ get; set;} //Represents a bool whether or not the video can be considered a completed view. public bool IsCompletedView{ get; set;} }
  • SDK가 광고 가용성 상태를 변경하면 다음 이벤트가 발생합니다. isAdPlayable 부울은 특정 placementID의 새로운 재생 가능성을 나타냅니다.
    public static event Action<string, bool> adPlayableEvent;
    자세한 내용은 이 문서의 “플레이스먼트의 광고 가용성 확인” 섹션을 참조하십시오.

  • SDK가 초기화되면 다음 이벤트가 발생합니다.
    public static event Action onInitializeEvent;

샘플 코드:

void initializeEventHandlers() { Vungle.onAdStartedEvent += (placementID) => { DebugLog ("Ad " + placementID + " is starting! Pause your game animation or sound here."); }; Vungle.onAdFinishedEvent += (placementID, args) => { DebugLog ("Ad finished - placementID " + placementID + ", was call to action clicked:" + args.WasCallToActionClicked + ", is completed view:" + args.IsCompletedView); }; Vungle.adPlayableEvent += (placementID, adPlayable) => { DebugLog ("Ad's playable state has been changed! placementID " + placementID + ". Now: " + adPlayable); }; Vungle.onInitializeEvent += () => { adInited = true; DebugLog ("SDK initialized"); }; }

 

OnPause 및 OnResume 기능

앱이 바탕화면으로 이동되었을 때 일시 정지된 광고가 다시 재생되도록 하는 onPauseonResume 기능에 대한 코드를 추가합니다.

void OnApplicationPause(bool pauseStatus) { if (pauseStatus) { Vungle.onPause(); } else { Vungle.onResume(); } }

 

사용자 지정 옵션

playAd 메서드로 옵션 딕셔너리를 수락하여 광고 재생 경험을 사용자 지정할 수도 있습니다.

public static void playAd(Dictionary<string,object> options, string placementID);

참고: 경우에 따라 보상형 광고가 인센티브화 광고로 불리기도 합니다. 두 용어는 항상 같은 종류의 광고를 나타냅니다. SDK 코드와 리포팅 API에서는 '인센티브화'라는 용어를 사용합니다.

옵션 딕셔너리는 다음의 키를 허용합니다.

설명

orientation

광고의 방향을 설정합니다.

  • iOS의 경우 VungleAdOrientation을 사용하십시오.
    public enum VungleAdOrientation { Portrait = 1, LandscapeLeft = 2, LandscapeRight = 3, PortraitUpsideDown = 4, Landscape = 5, All = 6, AllButUpsideDown = 7 }
  • Android의 경우, matchVideotrue, autoRotatefalse를 설정하십시오.

userTag

S2S 호출(사용되는 경우)에서 사용자 식별을 위해 전달되는 사용자의 문자열 키입니다.

alertTitle

사용자가 보상형 광고를 시청 도중에 닫을 때 표시되는 경고 대화 상자의 제목으로 사용되는 문자열입니다.

alertText

사용자가 보상형 광고를 시청 도중에 닫을 때 표시되는 경고 대화 상자의 본문 텍스트로 사용되는 문자열입니다.

closeText

사용자가 보상형 광고를 시청 도중에 닫을 때 표시되는 경고 대화 상자의 닫기 버튼에 사용되는 문자열 제목입니다.

continueText

사용자가 보상형 광고를 시청 도중에 닫을 때 표시되는 경고 대화 상자의 닫기 버튼에 사용되는 문자열 제목입니다.

immersive

몰입형 모드를 설정하는 부울입니다(탐색 모음 및 상태 막대를 강제로 숨김)(Android만 해당).

flexCloseSec

Flex View 광고가 표시 후 자동 해제되는 시간(초)를 결정하는 정수입니다. 이 설정은 Flex View 광고에만 영향을 미칩니다(iOS만 해당).

 

GDPR: 권장 구현

5월 25일부터 GDPR(General Data Protection Regulation, 일반데이터보호규정)이 유럽 연합에서 시행됩니다. 개발자에게는 GDPR 준수를 위한 2가지 옵션이 있습니다.

  • 옵션 1(권장): 퍼블리셔는 사용자 수준에서 GDPR 동의 과정을 제어한 후 Vungle에 사용자의 선택을 전달합니다. 이를 위해 개발자는 자체 메커니즘을 사용하여 사용자의 동의를 수집한 다음 Vungle API를 사용하여 사용자의 동의 상태를 업데이트하거나 쿼리할 수​있습니다. 자세한 내용은 GDPR 권장 구현 지침 섹션을 참조하십시오.

  • 옵션 2: Vungle이 요구사항을 처리하도록 허용합니다. Vungle은 유럽 사용자를 위해 광고를 재생하기 전에 동의 대화 상자를 표시하고 이후 광고에 대한 해당 사용자의 동의 여부를 기억합니다.

GDPR 권장 구현 지침

옵션 1의 권장 사항에 따라 Vungle API를 사용하여 업데이트하거나 사용자 동의 상태를 쿼리하려면 Vungle.Consent 열거자를 사용하고 현재 값을 아래 2개 함수로 설정합니다.

// The Consent enum is used to represent the user's current GDPR opt-in status public enum Consent { Undefined = 0, Accepted = 1, Denied = 2 } // Sets the user's consent status void updateConsentStatus(Vungle.Consent consent); // Gets the user's consent status Vungle.Consent getConsentStatus(); 

 

Flex View 광고

iOS

Flex View 광고를 프로그래밍 방식으로 닫으려면 closeAd 함수를 사용하십시오.

Vungle.closeAd(placementID);

이 함수는 Android에서는 작동하지 않습니다.

Android

Flex View는 Unity Android에서 Unity iOS 또는 네이티브 Android와 다르게 작동합니다. Unity의 활동 처리 방식의 한계로 인해 Flex View의 경우 사용자는 Flex View 광고가 표시되는 동안에는 기본 게임과 상호 작용할 수 없습니다. Flex View 광고에서는 활동이 상단에서 발생하는 동안 기본 활동이 중지됩니다. 사용자가 Flex View 광고가 표시되는 동안 앱을 나간 다음 이후에 앱으로 다시 돌아오면 광고는 계속 표시되지만 배경 게임은 검은색으로 표시됩니다. 이는 Flex View 광고가 해제될 때까지 기본 활동이 중단되기 때문입니다.

이러한 이유로 Unity Android에서는 Flex View 광고를 게재하지 마십시오.

Windows

Flex View 광고는 Windows에서 지원되지 않습니다.

 

Flex Feed 광고

Unity 플러그인을 통한 Vungle 통합 시 Flex View 광고가 지원되지 않습니다.

또 다른 질문이 있으십니까? 문의 등록

댓글