Windows용 Vungle SDK 통합

이 설명서를 이용하여 SDK를 빠르게 앱에 통합하고 수익을 창출하십시오. 이 설명서에 사용된 코드 샘플은 C#이지만, GitHub 저장소에서 C#, C++, Visual Basic 및 DirectX+XAML 샘플 앱 파일이 제공됩니다.

시작하기 전에

요구사항

  • 통합을 진행하려면 Vungle 계정이 필요하므로 아직 계정을 만들지 않은 경우 Vungle 계정을 만들고 계정에서 새 Windows Universal Windows 앱을 생성합니다. Vungle 대시보드에서 플레이스먼트를 설정하는 방법을 알아 보려면 퍼블리셔 대시보드 사용 문서의 앱 및 플레이스먼트 추가 섹션을 참조하십시오.
  • Windows 8.1용으로 개발 중인 경우 Visual Studio 2015를 사용해야 합니다. Microsoft에서는 Visual Studio 2017를 위한 Windows 8.1을 더 이상 지원하지 않습니다.
  • 모바일에서는 뒤로 버튼이 지원되지만 PC(키보드)에서는 지원되지 않습니다. 이로 인해 UWP 빌드의 동작 및 사용자 환경이 달라질 수 있습니다.
  • 대시보드에서, 테스트 모드로 돌아오는 광고가 없는 경우 어플리케이션을 활성화 모드로 토글하십시오.

SDK 다운로드

수동 통합 옵션을 선택한 경우 https://publisher.vungle.com/sdk/sdks/windows에서 Windows용 Vungle SDK를 다운로드 할 수 있습니다.

참조: 샘플 앱

통합 시 제공된 샘플 앱을 참조하십시오. https://github.com/Vungle/Corona-Plugin/tree/master.

1단계. Vungle SDK를 프로젝트에 통합하기

NuGet 이용(권장) 또는 수동 통합으로 Vungle을 Visual Studio 프로젝트에 추가할 수 있습니다.

옵션 1. NuGet 통합(권장)

  1. Visual Studio의 솔루션 탐색기에서 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭하고 NuGet 패키지 관리를 선택합니다.
  2. 찾아보기를 클릭하여 ‘Vungle’을 입력하고 Vungle SDK를 선택합니다.
  3. 설치를 클릭합니다.

옵션 2. 수동 통합

  1. Vungle 대시보드에서 Vungle Windows SDK를 다운로드합니다.
  2. 아카이브 압축을 풉니다.
  3. Visual Studio에서 어플리케이션 및 프로그래밍 언어에 맞는 정확한 템플릿을 사용하여 새 Universal Windows 프로젝트를 만듭니다.
  4. 프로젝트에 대한 참조를 다운로드한 Vungle Windows SDK 파일에 추가합니다.
    Vungle SDK에는 Windows 10 그리고 Windows 8.1 개발용의 두 가지 VungleSDK.windmd 파일이 있습니다. 압축을 푼 디렉토리인 Win10 또는 Win81에서 올바른 SDK를 사용하십시오.
  5. 프로젝트에 package.appxmanifest 파일의 internetClient 기능이 있는지 확인합니다. 새 프로젝트를 생성하면 인터넷(클라이언트) 기능이 기본 설정으로 켜져 있습니다. Visual Studio를 통해 또는 수동 편집을 통해 이것을 확인할 수 있습니다.
    • Visual Studio에서 internetClient 기능을 확인하는 방법
      1. 솔루션 탐색기에서 appxmanifest를 더블클릭합니다.
      2. 기능을 선택합니다.
      3. 인터넷(클라이언트) 옵션이 선택되어 있는지 확인합니다.
    • 수동 편집을 통해 internetClient 기능을 확인하려면, package.appxmanifeset 파일을 열고 internetClientCapabilities 섹션에 추가합니다.
      <Capabilities>
      ...
      <Capability Name="internetClient" />
      ...
      </Capabilities>

2단계. VungleSDK 네임스페이스 가져오기

다음과 같이 VungleSDK 네임스페이스를 가져옵니다.

using VungleSDK;

3 단계. VungleAd 인스턴스 얻기

Vungle SDK v6.3.0부터 VungleAd 인스턴스는 Vungle 앱 ID만을 단 하나의 매개 변수로 사용합니다.

VungleAd sdkInstance;
string appID = “app_id”;
sdkInstance = AdFactory.GetInstance(appID);

위의 예에서 appId를 Vungle 앱 ID로 대체합니다. 자동 캐싱이 시작될 수 있도록 앱에서 중요한 구성 요소를 모두 로드하고 나면 바로 초기화 단계를 수행하는 것이 좋습니다.

Vungle SDK v6.2.0 이하에서 VungleAd 인스턴스에 사용되는 매개 변수는 Vungle 앱 ID의 문자열과 플레이스먼트 ID의 문자열 배열의 두 가지입니다. 인스턴스를 얻을 때 포함된 플레이스먼트 ID만 사용할 수 있습니다.

sdkInstance = AdFactory.GetInstance(appID, placementList);

4단계. 코드 추가

이벤트 핸들러 생성 및 등록

Windows SDK에서는 프로그래밍 방식으로 처리할 수 있는 몇 가지 이벤트가 발생합니다. 이 이벤트 핸들러를 사용하여 배경 음악 일시 중지/다시 시작 등의 앱 기능을 제어할 수 있습니다.

UI 스레드 노트

이벤트 리스너는 배경 스레드에서 실행되므로 이벤트 리스너에 의한 UI 상호 작용/업데이트는 실행 이전에 기본 UI 스레드로 전달되어야 합니다. 다음 방법으로 이를 수행할 수 있습니다.

await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
new DispatchedHandler(() =>
{ // This block will be executed in the UI thread
} );

진단

이 이벤트 핸들러는 SDK가 진단 로그를 인쇄하려고 할 때 호출됩니다.

샘플 코드:

//Register event handler
sdkInstance.Diagnostic          += SdkInstance_Diagnostic;

...

// Event handler called when SDK wants to print diagnostic logs
private void SdkInstance_Diagnostic(object sender, DiagnosticLogEvent e)
{
  System.Diagnostics.Debug.WriteLine("Diagnostic - "
+ e.Level + " "
+ e.Type + " "
+ e.Exception + " "
+ e.Message); }

// DEPRECATED - Use SdkInstance_OnAdEnd() instead
private void SdkInstance_OnVideoView(object sender, AdViewEventArgs e) { }

OnAdPlayableChanged

OnAdPlayableChanged 이벤트에 대한 이벤트 핸들러를 생성합니다. 이 이벤트 핸들러는 광고 가용성 상태에 변경이 있을 경우 호출됩니다. 이 이벤트 핸들러가 조치를 취하여 광고 플레이스먼트에 대해 로딩을 마친 후 광고를 사용할 수 있게 되도록 기다리십시오. e.Placement를 확인하여 어떤 플레이스먼트가 이 이벤트를 트리거하였는지 알아볼 수 있습니다.

// Event handler for OnAdPlayableChanged event
private async void SdkInstance_OnAdPlayableChanged(object sender, AdPlayableEventArgs e)
{
if (e.AdPlayable == true)
{ // e.Placement - placement ID in string // Run asynchronously on the UI thread await CoreApplication.MainView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, new DispatchedHandler(() => methodToRun(e.Placement)));
} }

OnAdPlayableChanged 이벤트에 대한 이벤트 핸들러를 등록합니다.

sdkInstance.OnAdPlayableChanged += SdkInstance_OnAdPlayableChanged;

OnInitCompleted

이 이벤트 핸들러는 SDK 초기화가 완료되면 즉시 호출됩니다. 이전 세션에서 다운로드된 광고가 있는지 확인하거나 플레이스먼트에 광고를 로딩할 수 있습니다.

샘플 코드:

//Register event handler
sdkInstance.OnInitCompleted     += SdkInstance_OnInitCompleted;

...

// OnInitCompleted
//   e.Initialized - true if initialization succeeded, false if failed
//   e.ErrorMessage - reason for failure when e.Initialized is false
private async void SdkInstance_OnInitCompleted(object sender, ConfigEventArgs e)
{
  var placementsInfo = "OnInitCompleted: " + e.Initialized;
  // Initilization was success
  if (e.Initialized == true)
  {
    // Print out list of placements
    for (var i = 0; i < e.Placements.Length; i++)
    {
      placementsInfo += "\n\tPlacement" + (i + 1) + ": " + e.Placements[i].ReferenceId;
      if (e.Placements[i].IsAutoCached == true)
        placementsInfo += " (Auto-Cached)";
    }
  }
  // Initilization failed
  else
  {
    placementsInfo += "\n\t" + e.ErrorMessage;
  }
  System.Diagnostics.Debug.WriteLine(placementsInfo);
  await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, new DispatchedHandler(() =>
    NotifyInitialization(e.Initialized)));
}

OnAdStart

광고를 재생하기 전에 호출됩니다. 배경 음악 일시 중지 등의 작업을 수행할 수 있습니다.

샘플 코드:

//Register event handler
sdkInstance.OnAdStart           += SdkInstance_OnAdStart;

...

// OnAdStart
//   e.Id - Vungle app ID in string
//   e.Placement - placement ID in string
private void SdkInstance_OnAdStart(object sender, AdEventArgs e)
{
  System.Diagnostics.Debug.WriteLine("OnAdStart(" + e.Id + "): " + e.Placement);
}

OnAdEnd

이 이벤트 핸들러는 사용자가 끝내기 카드를 닫고 컨트롤이 어플리케이션으로 반환되면 호출됩니다. IsCompletedView 또는 CallToActionClicked가 true이면 사용자가 광고를 시청하였거나 광고의 다운로드 버튼을 클릭한 것입니다. 이 경우, 광고가 보상형 광고면 사용자에게 보상을 제공해야 합니다. 앱 기능 재시작 등의 작업을 수행할 수 있습니다.

샘플 코드:

//Register event handlers
sdkInstance.OnAdEnd             += SdkInstance_OnAdEnd;

...

// OnAdEnd
//   e.Id - Vungle app ID in string
//   e.Placement - placement ID in string
//   e.IsCompletedView- true when 80% or more of the video was watched
//   e.CallToActionClicked - true when the user has clicked download button on end card
//   e.WatchedDuration - DEPRECATED
private void SdkInstance_OnAdEnd(object sender, AdEndEventArgs e)
{
  System.Diagnostics.Debug.WriteLine("OnVideoEnd(" + e.Id + "): "
    + "\n\tPlacement: " + e.Placement
    + "\n\tIsCompletedView: " + e.IsCompletedView
    + "\n\tCallToActionClicked: " + e.CallToActionClicked
    + "\n\tWatchedDuration: " + e.WatchedDuration);
}

광고 형식 통합

앱에 표시하려는 각 광고 형식에 대한 SDK 통합을 완료합니다. 각 광고 형식에 대한 당사 지침을 다음에서 참조하십시오:

맞춤 광고 추가 설정

당사 고급 설정 문서의 지침에 따라 GDPR, CCPA 구현 및 기타 여러 설정과 같은 추가 구성 옵션으로 앱 통합을 상세하게 조정하십시오.

Questions?

Need further assistance, feel free to reach out to us, we’re here to help!

도움이 되었습니까?