Vungle SDK v.5 - 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 플러그인은 다음을 지원합니다.
    • 현재 Vungle SDK는 Windows에서 Unity 2017을 지원하지 않습니다.
    • 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/sdk5.

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 지침을 참조하십시오.

Google Play Services

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

Google Play Services를 포함하려면 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" />

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 == ) { layButtonPlacement1.enabled = adPlayable; } };

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

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

public static bool isAdvertAvailable(string placementID);

광고 재생

중요: 위에서 설명한 adPlayableEvent 함수가 'true'를 반환할 때까지 광고를 재생하지 마십시오. adPlayableEvent 함수가 'true'를 반환하기 전에 광고를 재생하면 광고가 로드되는 동안 사용자 경험에 부정적인 영향을 미칩니다.

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

public static void playAd(string placementID);

샘플 코드:

Vungle.playAd ();

이벤트 취급

광고 프리젠테이션을 둘러싼 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;
  • SDK가 로그를 출력하면 다음 이벤트가 발생합니다.
    public static event Action onLogEvent;

샘플 코드:

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.onLogEvent += (log) => { DebugLog ("Log: " + log); }; 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의 경우, matchVideo에 true, autoRotate에 false 설정

userTag

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

alertTitle

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

alertText

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

closeText

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

continueText

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

immersive

Android에서 몰입형 모드를 사용합니다.

flexCloseSec

iOS에서만 이 시간(초) 이후 Flex View 광고가 자동 해제됩니다. 이는 Flex View(Flex Feed 해당 안 됨) 광고와 iOS에서만 사용 가능합니다.

 

Flex View 광고

iOS

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

Vungle.closeAd(placementIdList[1]);

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

Android

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

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

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

댓글