Vungle SDK v.5 시작하기 - Unity

목차

시작하기 전에

  • iOS용 Vungle Unity 플러그인은 다음을 지원합니다.
    • iOS 8
    • Unity 4 및 Unity 5.4.1 이상
    • Vungle SDK를 사용하려면 WebKit.framework 프로젝트에 프레임워크를 연결해야 합니다. IOS 7용으로 개발하는 경우 이 프레임워크를 '선택 사항'으로 설정해야 합니다. 이 작업을 수행하려면 프로젝트 탐색기에서 원하는 프로젝트를 클릭하고 일반연결된 프레임워크 및 라이브러리로 이동합니다. 그 다음 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/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 플레이 서비스

프로젝트에 Google 플레이 서비스를 포함하면 Vungle에서 최종 사용자가 누리는 사용자 지정형 광고 경험을 한층 강화할 수 있게 되지만, 의무 사항은 아닙니다. 버전 11.0.1 이상을 사용하시길 권장합니다.

Google 플레이 서비스를 포함하려면 Google의 설치 설명서를 읽어 보시기 바랍니다. 기기의 Google 플레이 서비스가 지원되는 버전으로 업데이트되어 있는지 앱에서 확인합니다. Vungle SDK는 Google 플레이 서비스의 위치와 광고 API를 선택적으로 사용합니다.

  • android.gms:play-services-location:11.0.1
  • android.gms:play-services-ads:11.0.1
  • 7.8.0 및 그 이하의 play-services: 지원 라이브러리 보유
  • 플레이 서비스 8.4.0 이상에서는 지원 라이브러리가 필요하지 않습니다.

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

Google 플레이 서비스를 추가한 후 다음 권한을 추가하십시오. 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 이벤트가 호출됩니다. (이 article.)에서 "광고위치의 광고 가용성 확인" 섹션을 참조합니다.)

광고위치에 광고 로드

자동 캐시된 광고위치 외의 다른 광고위치에는 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는 자동 캐시된 광고위치에 대한 광고를 계속 요청합니다. 다른 광고위치에서는 "로드 실패"(adAvailable가 '아니오'를 반환)하는 경우에 이 이벤트가 호출됩니다.

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

public static bool isAdvertAvailable(string placementID);

광고 재생

광고위치에 사용 가능한 광고가 있는 경우, 다음과 같은 방법으로 광고를 재생할 수 있습니다.

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
    {
      //사용자의 다운로드 버튼 클릭 여부와 관계없이 BOOL 표시.
        public bool WasCallToActionClicked{ get; set;}
    
      //비디오를 완료된 뷰로 간주할 수 있는지를 보여주는 BOOL 표시.
        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에서 몰입형 모드를 사용합니다.

 

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

댓글