Introducción a Vungle: Windows SDK v.5.1+

Use esta guía para integrar rápidamente nuestro SDK en su aplicación y comenzar a monetizar.

Los ejemplos de código en esta guía están en C#, pero proporcionamos archivos de aplicación de muestra en C#, C++, Visual Basic y DirectX+XAML de nuestro depósito GitHub.

Contenido

Antes de empezar

  • Esta guía es para SDK 5.1 de Vungle para Windows y superior. La guía de integración para SDK de Vungle para Windows versión 1.3.16 e inferior está aquí: Introducción a Vungle: SDK v. 1.0 - v.1.3.16 para Windows.
  • La integración requiere una cuenta de Vungle, de manera que cree una cuenta de Vungle si aún no tiene una.
  • Si todavía no lo ha hecho, diríjase a nuestro panel de control y agregue la aplicación a su cuenta. Consulte Configurar y generar informes de las ubicaciones para aprender cómo configurar ubicaciones en el panel de control de Vungle.
  • Debe usar Visual Studio 2015 si va a desarrollar para Windows 8.1 y Windows Phone 8.1 porque Visual Studio 2017 ya no admite estas versiones.
  • El botón Atrás se admite en dispositivos móviles, pero no en PC (teclado). Esto puede generar diferentes comportamientos y experiencias del usuario para compilaciones de UWP.
  • Cambie su aplicación a modo activo si no se devuelven anuncios en el modo de prueba.

Descargue el SDK y agregue VungleSDK a su proyecto

  1. Descargue el SDK de Vungle para Windows desde el Panel de control de Vungle.
  2. Extraiga el archivo.
  3. En Visual Studio, cree un nuevo proyecto mediante la plantilla adecuada para su aplicación y el lenguaje de programación.
  4. Agregue una referencia para su proyecto al archivo SDK de Vungle para Windows que descargó.
  5. Asegúrese de que el proyecto tenga la capacidad internetClient en el archivo package.appxmanifest, tal como se muestra:
    <Capabilities>
    ...
    <Capability Name="internetClient" />
    ...
    </Capabilities>
  6. Importe el espacio de nombres VungleSDK.
    using VungleSDK;
    

Obtenga una instancia VungleAd

La instancia VungleAd toma dos parámetros: una cadena para su ID de la aplicación de Vungle y una matriz de cadenas para las ID de ubicación. Solo puede usar las ID de ubicación que ya ha incluido cuando desea obtener la instancia. Si no incluye una ubicación de almacenamiento automático en caché, el SDK asignará automáticamente una de sus ubicaciones sin almacenamiento automático en caché para que se almacene automáticamente en caché.

VungleAd sdkInstance;

string appID = “app_id”;
string[] placementArray = new string[]
{
  “placement_id_1”,
  “placement_id_2”,
  “placement_id_3”
};
sdkInstance = AdFactory.GetInstance(appID, placementArray);

En el ejemplo anterior, reemplace app_id por su ID de la aplicación de Vungle y placement_id_# por las ID de ubicación que va a usar en su proyecto. Le recomendamos que siga estos pasos de inicialización tan pronto como su aplicación termine de cargar los componentes esenciales, para que el almacenamiento automático en caché pueda comenzar cuanto antes.

Cree y registre un controlador de eventos

Cree un controlador de eventos para el evento OnAdPlayableChanged. Este controlador de eventos se activa cuando cambia el estado de disponibilidad del anuncio. Puede identificar qué ubicación activó el evento al verificar e.Placement.

// Controlador de evento para el evento OnAdPlayableChanged
private async void SdkInstance_OnAdPlayableChanged(object sender, AdPlayableEventArgs e)
{
  // e.Placement - ID de ubicación en cadena
  //Ejecute de manera asincrónica en el proceso de UI
  await CoreApplication.MainView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
    new DispatchedHandler(() => methodToRun(e.Placement)));
}

Registre este controlador de eventos para el evento OnAdPlayableChanged.

sdkInstance.OnAdPlayableChanged += SdkInstance_OnAdPlayableChanged;

Cargue un anuncio para una ubicación

En el caso de las ubicaciones diferentes a la ubicación de almacenamiento automático en caché, invoque LoadAd primero, permita el tiempo suficiente para que se descarguen los recursos del anuncio, y luego espere que se active OnAdPlayableChanged:

sdkInstance.LoadAd(“placement_id”);

Nota: la ubicación de almacenamiento automático en caché intentará descargar un nuevo recurso del anuncio inmediatamente después de activar PlayAdAsync, de modo que no es necesario activar LoadAd.

Ejemplo de código:

private void OnLevelStart(Object sender, RoutedEventArgs e)
{
  sdkInstance.LoadAd(“placement_id”);
}

Reproduzca un anuncio

Reproduzca un anuncio con la configuración predeterminada:

sdkInstance.PlayAdAsync(new AdConfig(), “placement_id”);

Ejemplo de código:

private async void OnLevelComplete(Object sender, RoutedEventArgs e)
{
  await sdkInstance.PlayAdAsync(new AdConfig(), “placement_id”);
}

Puede personalizar los anuncios al proporcionar opciones para el objeto AdConfig.

Ejemplo de código:

private async void PlayCustomizedAd(Object sender, RoutedEventArgs e)
{
  AdConfig adConfig = new AdConfig();

  adConfig.Orientation = DisplayOrientations.Portrait;
  adConfig.SoundEnabled = false;
  
  await sdkInstance.PlayAdAsync(adConfig, placement2);
}

Opciones de personalización

Estas son las propiedades disponibles en la instancia de objeto AdConfig:

Opciones

Valor por defecto/
Tipo

Descripción

Orientation

AutoRotate

DisplayOrientations

Orientation.AutoRotate (por defecto) hace que el anuncio rote automáticamente según la orientación del dispositivo.

Orientation.Portrait hace que el anuncio se reproduzca solo en orientación vertical.

Orientation.Landscape hace que el anuncio se reproduzca solo en orientación horizontal.

Nota: esta opción solo se aplica a aplicaciones móviles.

SoundEnabled

verdadero

bool

Establece el estado del sonido inicial para el anuncio.

Si es verdadero (por defecto), el audio respeta el volumen y los ajustes de sonido del dispositivo.

Si es falso, el video comienza en silencio, pero el usuario puede modificarlo.

BackButtonImmediatelyEnabled

falso

bool

Si es verdadero, el usuario tiene la posibilidad de salir inmediatamente de un anuncio usando el botón para retroceder.

Si es falso (por defecto), el usuario no podrá usar el botón para retroceder para salir del anuncio hasta que el botón para cerrar se muestre en la pantalla.

Nota: esta opción solo se aplica a aplicaciones móviles.

UserId

null

string

Pasa la ID de usuario único (user id) a su aplicación con el fin de verificar si el usuario debe recibir una recompensa por ver un anuncio incentivado cuando la devolución de llamada de servidor a servidor se usa para la verificación.

Nota: esta configuración es aplicable solo para las ubicaciones para anuncios con recompensas.

IncentivizedDialogTitle

“¿Desea cerrar este anuncio?”

string

Establece el título del diálogo de confirmación al omitir un anuncio incentivado.

Nota: esta configuración es aplicable solo para las ubicaciones para anuncios con recompensas.

IncentivizedDialogBody

“¿Está seguro de que desea omitir este anuncio? Debe terminar de verlo para reclamar su recompensa”.

string

Establece el cuerpo del diálogo de confirmación al omitir un anuncio incentivado.

Nota: esta configuración es aplicable solo para las ubicaciones para anuncios con recompensas.

IncentivizedDialogCloseButton

"Cerrar"

 

string

Establece el texto del botón 'cancel' del diálogo de confirmación al omitir un anuncio incentivado.

Nota: esta configuración es aplicable solo para las ubicaciones para anuncios con recompensas.

IncentivizedDialogContinueButton

"Continuar"

string

Establece el texto del botón 'keep watching' del diálogo de confirmación al omitir un anuncio incentivado.

Nota: esta configuración no es aplicable si el anuncio no es incentivado.

Incentivized

-

OBSOLETO

Puede establecer la configuración con recompensa en el nivel de las ubicaciones desde el panel de control. Consulte Configurar y generar informes de las ubicaciones.


Nota:
las opciones para SoundEnabled y diálogos incentivados para los anuncios de plantilla dinámica y visión flexible se pueden configurar en el panel de control. La configuración programática solo se aplica a anuncios heredados.

Mostrar el botón Cerrar

Para controlar si un usuario cuenta con la opción de salir de un anuncio, use las opciones de visualización forzada en los ajustes avanzados de su aplicación en el Panel de control de Vungle.

Suscribirse a los controladores de eventos

El SDK para Windows genera varios eventos que usted puede controlar de manera programática. Puede usar estos controladores de eventos para controlar las funciones de su aplicación, como pausar/reanudar la música de fondo.

Nota sobre el subproceso de la UI

Los detectores de eventos se ejecutan en un proceso en segundo plano, de manera que cualquier interacción o actualización de UI de un detector de eventos se debe pasar al proceso de UI principal antes de su ejecución. Esta es una manera de hacerlo:

await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
new DispatchedHandler(() =>
{ // Este bloque se ejecutará en el proceso de UI
} );

VungleAd Controladores de eventos

Controladores de eventos

Descripción

OnInitCompleted

Se activa inmediatamente después de que haya finalizado la inicialización del SDK. Puede verificar si hay un anuncio descargado de una sesión anterior, o cargar un anuncio para las ubicaciones.

OnAdPlayableChanged

Notifica sobre el cambio de la disponibilidad del anuncio para la ubicación. Espere a que este controlador de eventos realice una acción cuando un anuncio se encuentre disponible después de cargar un anuncio para la ubicación.

OnAdStart

Se activa antes de reproducir un anuncio. Puede realizar acciones como pausar la música de fondo.

OnAdEnd

Se activa cuando el usuario cierra la tarjeta de objetivos y la aplicación vuelve a tener el control. Si IsCompletedView o CallToActionClicked es verdadero, el usuario miró el anuncio o hizo clic en el botón de descarga del anuncio. En este caso, si se trataba de un anuncio con recompensa, el usuario debe recibir una recompensa. Puede realizar acciones como reanudar las funciones de la aplicación.

Diagnostic

Se activa cuando el SDK desea imprimir los registros de diagnóstico.

Ejemplo de código:

//Registrar controladores de eventos
sdkInstance.OnInitCompleted     += SdkInstance_OnInitCompleted;
sdkInstance.OnAdPlayableChanged += SdkInstance_OnAdPlayableChanged;
sdkInstance.OnAdStart           += SdkInstance_OnAdStart;
sdkInstance.OnAdEnd             += SdkInstance_OnAdEnd;
sdkInstance.Diagnostic          += SdkInstance_Diagnostic;

...

// OnInitCompleted
//   e.Initialized - verdadero si la inicialización se realizó correctamente, falso si hubo un error.
//   e.ErrorMessage - razón del error cuando e.Initialized es falso
private async void SdkInstance_OnInitCompleted(object sender, ConfigEventArgs e)
{
  var placementsInfo = "OnInitCompleted: " + e.Initialized;
  // La inicialización se realizó correctamente
  if (e.Initialized == true)
  {
    // Imprimir listas de ubicaciones
    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)";
    }
  }
  // Hubo un error en la inicialización
  else
  {
    placementsInfo += "\n\t" + e.ErrorMessage;
  }
  System.Diagnostics.Debug.WriteLine(placementsInfo);
  await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, new DispatchedHandler(() =>
    NotifyInitialization(e.Initialized)));
}

// OnAdPlayableAdPlayable
//   e.AdPlayable - verdadero si un anuncio está listo para reproducirse, de lo contrario falso
//   e.Placement  - ID de ubicación en cadena
private async void SdkInstance_OnAdPlayableChanged(object sender, AdPlayableEventArgs e)
{
  System.Diagnostics.Debug.WriteLine("OnAdPlayable(" + e.Placement + ") - " + e.AdPlayable);
  await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, new DispatchedHandler(() =>
    NotifyWatcher(e.AdPlayable, e.Placement)));
}

// OnAdStart
//   e.Id  - ID de la aplicación de Vungle en cadena
//   e.Placement - ID de ubicación en cadena
private void SdkInstance_OnAdStart(object sender, AdEventArgs e)
{
  System.Diagnostics.Debug.WriteLine("OnAdStart(" + e.Id + "): " + e.Placement);
}

// OnAdEnd
//   e.Id  - ID de la aplicación de Vungle en cadena
//   e.Placement - ID de ubicación en cadena
//   e.IsCompletedView- verdadero si se vio al menos el 80% del video
//   e.CallToActionClicked - verdadero cuando el usuario hizo clic en el botón de descarga en la tarjeta de objetivos
//   e.WatchedDuration - OBSOLETO
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);
}

// El controlador de eventos se activa cuando el SDK desea imprimir los registros de diagnóstico.
private void SdkInstance_Diagnostic(object sender, DiagnosticLogEvent e)
{
  System.Diagnostics.Debug.WriteLine("Diagnostic - "
+ e.Level + " "
+ e.Type + " "
+ e.Exception + " "
+ e.Message); } // OBSOLETO - Utilice SdkInstance_OnAdEnd() en su lugar private void SdkInstance_OnVideoView(object sender, AdViewEventArgs e) { }

Reproducción de anuncios Native Flex

Vungle Windows SDK 5.1.0+ es compatible con nuestra nueva función Native Flex. VungleAdControl logra crear anuncios de video en formatos nativos pasando contenedor personalizado al SKD de Vungle a través de la propiedad AdConfig.AdContainer y gestionando el contenido Container.Content de la aplicación host.

Requisitos para anuncios Native Flex

  • Windows SDK 5.1.0+
  • UWP para Windows 10

Para configurar las ubicaciones de un anuncio Native Flex, consulte con su gerente de cuentas o póngase en contacto con tech-support@vungle.com.

Configuración de UI para los anuncios Native Flex - XAML

VungleAdControl debe declararse con la ID de la aplicación Vungle, con todas las ID de ubicación utilizadas en la aplicación y en la ID de la ubicación de la vista Native Flex o ubicación de transmisión en particular. También puede establecer aquí el UserId que se utiliza para las ubicaciones de anuncios recompensadas.

Ejemplo de código:

<Grid
<UI:VungleAdControl x:Name="vungleEmbedded"
Height="200"
                     Width="300"
                      AppID="vungle_app_id"
                      Placements="placement_id_1,placement_id_2,native_flex_id"
                      Placement = "native_flex_id"
                      UserId="vungle_test_user">
    <TextBlock x:Name="Vungle Native Flex Ad"/>
  </UI:VungleAdControl>
</Grid>

Cargar un anuncio Native Flex

Cargar un anuncio por medio de una ubicación Native Flex es idéntico al proceso de colocar un anuncio de pantalla completa.

Ejemplo de código:

sdkInstance.LoadAd(“native_flex_id”); 

Reproducir un anuncio Native Flex

Reproducir un anuncio por medio de una ubicación Native Flex es similar a reproducir un anuncio de pantalla completa, pero cualquier personalización deberá configurarse en .xaml o en el Panel de control, y el anuncio debe iniciarse con el sonido desactivado.

Ejemplo de código:

await vungleEmbedded.PlayAdAsync();

Controladores de eventos para los anuncios Native Flex

Considere la opción de registrar diferentes controladores de eventos para gestionar los distintos comportamientos de los anuncios nativos y los de pantalla completa, para asegurar una experiencia más fluida para el usuario.

Ejemplo de código:

vungleEmbedded.OnAdStart += (sender, arg) => {
    ...
}
vungleEmbedded.OnAdEnd += (sender, arg) => {
    ...
}
await vungleEmbedded.PlayAdAsync();
¿Tiene más preguntas? Enviar una solicitud

Comentarios