Introducción al SDK de Vungle (Android o Amazon) v. 6

Utilice este artículo para integrar el SDK de Vungle para Android o Amazon. A partir de la v.5.3.0 de nuestro SDK para Android, Vungle admite Amazon OS 5.4 y superiores como plataforma. Los pasos para integrar Amazon SDK son los mismos que para Android, pero asegúrese de usar su id. de aplicación de Amazon para una integración con Amazon.

En este artículo:

RGPD: Implementación recomendada

A partir del 25 de mayo, se aplica en la Unión Europea el Reglamento General de Protección de Datos (RGPD, también conocido por sus iniciales en inglés: GDPR). Para cumplir con el RGPD, los desarrolladores tienen dos opciones.

  • Opción 1 (recomendada): El editor controla el proceso de consentimiento de RGPD a nivel del usuario y luego comunica la elección del usuario a Vungle. Para hacer esto, los desarrolladores pueden recoger el consentimiento del usuario usando su propio mecanismo y luego usar las API de Vungle para actualizar o consultar el estado de consentimiento del usuario. Consulte la sección Instrucciones de implementación recomendadas para RGPD para obtener más información.

  • Opción 2: Permitir que Vungle maneje los requisitos. Vungle mostrará un cuadro de diálogo de consentimiento antes de reproducir un anuncio para un usuario europeo, y recordará el consentimiento o rechazo del usuario para anuncios posteriores.

Antes de empezar

Aspectos destacados de la versión

  • Velocidad: El rendimiento de la inicialización y del almacenamiento en caché de anuncios es hasta cinco veces superior a la v5
  • Ligero: Reducido número de métodos
    • Núcleo del SDK: 750 métodos
    • Integración completa que incluye bibliotecas de terceros: ~4000 métodos
  • Cumplimiento de RGPD: Vungle brinda dos opciones para obtener el consentimiento del usuario: Vungle o el editor pueden controlar este proceso. Se agregaron nuevas llamadas a la API.

Requisitos

  • Android 4.0 (Ice Cream Sandwich - API versión 14) o posterior
  • Biblioteca de soporte de Android v26 o superior
  • Android targetSdkVersion 26 o inferior

Aplicación de muestra

Paso 1. Incluya el SDK de Vungle en su proyecto

El SDK de Vungle está disponible de dos maneras: como una AAR en Maven o mediante integración con JAR.

Opción 1. Integración con AAR

Abra el archivo build.gradle en el nivel del proyecto y añada la URL de Maven en la sección all projects.

allprojects {
repositories {
maven {
url 'https://jitpack.io'
}
}
}

Abra el archivo build.gradle de su aplicación y añada las dependencias de compilación en la sección dependencies.

dependencies { … // Vungle SDK
compile 'com.github.vungle:vungle-android-sdk:6.2.5'
// Optional Google Play Services - Location and Basement
compile 'com.google.android.gms:play-services-basement:11.0.4'
compile 'com.google.android.gms:play-services-location:11.0.4' … }

Si incluye el SDK de Vungle con Maven, puede omitir el “Paso 2. Importe el SDK de Vungle.”

Opción 2. Integración con JAR

  1. Descargue el SDK de Vungle v. 6, descomprímalo, vaya a la carpeta libs, copie todos los archivos de producto y agréguelos a la carpeta libs del proyecto.

    image1.png
  2. Abra el archivo build.gradle a nivel de proyecto y actualice la sección repositorios:

    allprojects {
    repositories {
    jcenter()
    }
    }
  3. Abra el archivo build.gradle en el nivel de la aplicación para su aplicación y añada otras dependencias en la sección dependencies.

    dependencies { … // Vungle SDK compile files('libs/vungle-android-sdk-6.2.5.jar') // Required Third-party Dependencies compile files('libs/android-job-1.2.0.jar') compile files('libs/cat-1.0.5.jar') compile files('libs/converter-gson-2.2.0.jar') compile files('libs/fetch-1.1.5.jar') compile files('libs/gson-2.7.jar') compile files('libs/logging-interceptor-3.7.0.jar') compile files('libs/okhttp-3.7.0.jar') compile files('libs/okio-1.12.0.jar') compile files('libs/retrofit-2.2.0.jar') compile files('libs/VNG-moat-mobile-app-kit-2.2.0.jar') // Google Play Services compile 'com.google.android.gms:play-services-gcm:11.0.4' // Required compile 'com.google.android.gms:play-services-basement:11.0.4' // Optional compile 'com.google.android.gms:play-services-location:11.0.4' // Optional // Support libraries compile 'com.android.support:support-v4:26.0.1' … } 
  4. Si incluye el SDK de Vungle manualmente, pase al “Paso 2. Importe el SDK de Vungle.”

  5. Actualice AndroidManifest.xml agregando las siguientes líneas al archivo respectivo y asigne el nombre de elemento de la aplicación a su nombre de clase de la aplicación para Multidex:
    <!--Required Permissions-->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    <!--Optional Permissions-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    android:networkSecurityConfig="@xml/network_security_config" >

    <activity android:name=".MainActivity">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>

    <!-- Google Play Services -->
    <meta-data android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />

    <!-- Vungle -->
    <activity
    android:name="com.vungle.warren.ui.VungleActivity"
    android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
    android:launchMode="singleTop"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />

    <!-- android-job -->
    <service
    android:name="com.evernote.android.job.v21.PlatformJobService"
    android:exported="false"
    android:permission="android.permission.BIND_JOB_SERVICE" />
    <service
    android:name="com.evernote.android.job.v14.PlatformAlarmService"
    android:exported="false"
    android:permission="android.permission.BIND_JOB_SERVICE" />
    <service
    android:name="com.evernote.android.job.v14.PlatformAlarmServiceExact"
    android:exported="false" />
    <receiver
    android:name="com.evernote.android.job.v14.PlatformAlarmReceiver"
    android:exported="false" >
    <intent-filter>
    <!-- Keep the filter for legacy intents -->
    <action android:name="com.evernote.android.job.v14.RUN_JOB" />
    <action android:name="net.vrallev.android.job.v14.RUN_JOB" />
    </intent-filter>
    </receiver>
    <receiver
    android:name="com.evernote.android.job.JobBootReceiver"
    android:exported="false" >
    <intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED" />
    <action android:name="android.intent.action.QUICKBOOT_POWERON" />
    <action android:name="com.htc.intent.action.QUICKBOOT_POWERON" />
    <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
    </intent-filter>
    </receiver>
    <service
    android:name="com.evernote.android.job.gcm.PlatformGcmService"
    android:enabled="true"
    tools:replace="android:enabled"/>
    <intent-filter>
    <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" />
    </intent-filter>
    </service>
    <service
    android:name="com.evernote.android.job.JobRescheduleService"
    android:exported="false"
    android:permission="android.permission.BIND_JOB_SERVICE" />

    </application>

Paso 2. Importe el SDK de Vungle

import com.vungle.warren.Vungle; import com.vungle.warren.AdConfig; // Custom ad configurations import com.vungle.warren.InitCallback; // Initialization callback import com.vungle.warren.LoadAdCallback; // Load ad callback import com.vungle.warren.PlayAdCallback; // Play ad callback import com.vungle.warren.VungleNativeAd; // Flex-Feed ad

Paso 3. Inicialice el SDK de Vungle

El método de inicialización toma los siguientes parámetros:

  • Lista de cadenas de id. de referencia de ubicación utilizadas
  • Id. de la aplicación Vungle
  • Contexto de la aplicación
  • InitCallback
    • onSuccess: notifica cuando el SDK se ha inicializado correctamente
    • onError: notifica cuando la inicialización ha fallado
      • devuelve IllegalArgumentException si InitCallback es nulo
      • devuelve VungleException si los argumentos requeridos faltan o no son válidos
    • onAutoCacheAdAvailable: notifica cuando la ubicación de caché automático tiene un anuncio disponible para reproducir

El onAutoCacheAdAvailablecallback está disponible como parte de la devolución de llamada de inicialización porque el SDK intentará continuamente almacenar en caché un anuncio para la ubicación en caché automático cada vez que un anuncio no se guarde en caché. Esto incluye cuando se inicia el SDK por primera vez o cuando se ha reproducido el anuncio previamente almacenado en caché. Esto permanecerá activo (“true”) hasta que el proceso se extinga o la recolección de elementos obsoletos descarte la instancia de Vungle. Para todas las demás ubicaciones que no sean ubicaciones de caché automático, loadAd debe formularse explícitamente como se describe en el “Paso 5. Cargar un anuncio”.

private final List placement_collection = Arrays.asList("PLACEMENT_1", "PLACEMENT_2", "PLACEMENT_3"); Vungle.init(placement_collection, app_id, this.getApplicationContext(), new InitCallback() { @Override public void onSuccess() { // Initialization has succeeded and SDK is ready to load an ad or play one if there // is one pre-cached already } @Override public void onError(Throwable throwable) { // Initialization error occurred - throwable.getLocalizedMessage() contains error message } @Override public void onAutoCacheAdAvailable(String placementId) { // Callback to notify when an ad becomes available for the auto-cached placement // // NOTE: This callback works only for the auto-cached placement. Otherwise, please use // LoadAdCallback with loadAd API for loading placements. } }; 

Puede comprobar si el SDK de Vungle está inicializado en cualquier momento invocando el método isInitialized:

public static boolean isInitialized()

Paso 4. Monitor de eventos

Implemente LoadAdCallback para eventos de carga de anuncios y PlayAdCallback para eventos de reproducción de anuncios ahora si desea usar la devolución de llamada genérica para todos los eventos. De lo contrario, salte a “Paso 5. Cargar un anuncio” para implementar devoluciones de llamadas en línea.

// Implement LoadAdCallback
private final LoadAdCallback vungleLoadAdCallback = new LoadAdCallback() {
@Override
public void onAdLoad(String placementReferenceId) {
// Placement reference ID for the placement to load ad assets
}

@Override
public void onError(String placementReferenceId, Throwable throwable) {
// Placement reference ID for the placement that failed to download ad assets
// Throwable contains error message
}
};
// Implement PlayAdCallback
private final PlayAdCallback vunglePlayAdCallback = new PlayAdCallback() {
@Override
public void onAdStart(String placementReferenceId) {
// Placement reference ID for the placement to be played
}

@Override
public void onAdEnd (String placementReferenceId, boolean completed, boolean isCTAClicked) {
// Placement reference ID for the placement that has completed ad experience
// completed has value of true or false to notify whether video was
// watched for 80% or more
// isCTAClkcked has value of true or false to indicate whether download button
// of an ad has been clicked by the user
}

@Override
public void onError(String placementReferenceId, Throwable throwable) {
// Placement reference ID for the placement that failed to play an ad
// Throwable contains error message
}
};

Paso 5. Cargar un anuncio

En el SDK de Vungle para Android v6, se permite una devolución de llamada por carga en lugar de depender del VungleAdEventListener global de la v5. La devolución de llamada LoadAdCallback será notificada sobre el estado de carga de la llamada a la que fue asignada. El SDK v6 solo hace referencia a esta devolución de llamada y no la almacena en ningún lugar; es responsabilidad del llamante asegurarse de que la devolución de llamada se administre correctamente.

public static void loadAd(@NonNull final String id, @Nullable LoadAdCallback callback) 

El SDK administra la descarga del anuncio publicitario para la ubicación en caché automático, por lo que no es necesario invocar este método para la ubicación en caché automática. Para todas las otras ubicaciones, el método loadAd debe ser invocado y completado con éxito antes de que el SDK pueda reproducir un anuncio desde la ubicación. La devolución de llamada de onAdLoad se activará cuando esto suceda.

// Load Ad Implementation
if (Vungle.isInitialized()) {
Vungle.loadAd("PLACEMENT_ID", new LoadAdCallback() {
@Override
public void onAdLoad(String placementReferenceId) { }

@Override
public void onError(String placementReferenceId, Throwable throwable) {
// Load ad error occurred - throwable.getLocalizedMessage() contains error message
}
};
}

Paso 6. Verificar la disponibilidad de anuncios

Use el método estático canPlayAdmethod para verificar si hay un anuncio disponible para reproducir en la ubicación antes de invocar el playAd() method

public static boolean canPlayAd(@NonNull String id)

Paso 7. Reproducir un anuncio

Para reproducir un anuncio, invoque el método playAd, con la id. de referencia de ubicación opcional AdConfig (nulo si no se usa) y un monitor de eventos PlayAdCallback, que recibirá una notificación de éxito o errores durante la reproducción del anuncio.

public static void playAd(@NonNull final String id, final AdConfig settings, @Nullable final PlayAdCallback listener) 

Siempre se debe comprobar la disponibilidad de anuncios llamando al método canPlayAd antes de invocar el método playAd. También debe asegurarse de que no se emita un playAd adicional antes de recibir un onAdEnd o una devolución de llamada onError desde la llamada inicial playAd, debido a que el anuncio no se renderizará correctamente si se invoca playAd varias veces en rápida sucesión.

if (Vungle.canPlayAd("PLACEMENT_ID")) {
Vungle.playAd("PLACEMENT_ID", new AdConfig, new PlayAdCallback() {
@Override
public void onAdStart(String placementReferenceId) { }

@Override
public void onAdEnd(String placementReferenceId, boolean completed, boolean isCTAClicked) { }

@Override
public void onError(String placementReferenceId, Throwable throwable) {
// Play ad error occurred - throwable.getLocalizedMessage() contains error message
}
});
}

Reiniciar SDK cuando se produzca un error onError

En casos excepcionales, los recursos pueden volverse limitados, lo que hace que el sistema desasigne una parte del SDK de Vungle o algunas de las dependencias de terceros que nuestro SDK requiere. En tales casos, LoadAdCallback and PlayAdCallback activa una devolución de llamada onError() con un objeto descartable con un código de ‘VungleException.VUNGLE_NOT_INTIALIZED’. Esto indica que el SDK de Vungle está en un estado inoperable y debe reinicializarse.

@Override public void onError(String placementReferenceID, Throwable throwable) { try { VungleException ex = (VungleException) throwable; if (ex.getExceptionCode() == VungleException.VUNGLE_NOT_INTIALIZED) { initializeVungleSDK(); } } catch (ClassCastException cex) { Log.d(LOG_TAG, cex.getMessage()); } } 

Anuncios nativos Flex

Anuncios de Flex View

Los anuncios de Flex View se cargan y se reproducen como anuncios de pantalla completa normales. Simplemente llame al id. de referencia de ubicación configurado con el tipo de ubicación “Flex View” desde el panel de control.

Se puede cerrar Flex View mediante programación generando el método closeFlexViewAd con la id. de referencia que está reproduciendo el anuncio de Flex View.

public static boolean closeFlexViewAd(@NonNull final String placementReferenceId)

Existe otra opción para cerrar automáticamente los anuncios Flex View después de mostrarlos durante un intervalo de tiempo específico; consulte la sección Opciones de configuración de anuncios.

Anuncios de Flex Feed

El formato de anuncio Flex Feed no requiere una pantalla completa para mostrar; en su lugar, el editor determina las dimensiones exactas y la ubicación del contenedor de anuncios dentro de su aplicación. Estos contenedores publicitarios pueden estar en vistas de colección o vistas de tabla/lista.

Cargando un anuncio de Flex Feed

El editor debe cargar un anuncio para el contenedor Flex Feed. Cargar un anuncio de Flex Feed es lo mismo que cargar un anuncio intersticial o de pantalla completa; sin embargo, la ubicación debe estar configurada para admitir Flex Feed. Póngase en contacto con su administrador de cuenta Vungle para habilitar sus ubicaciones para Flex Feed.

Mostrar un anuncio de Flex Feed

La exhibición de los anuncios de Flex Feed son diferentes a la presentación de los anuncios de pantalla completa. Para los anuncios de Flex Feed, primero debe crear un contenedor para el anuncio. Este contenedor es un Diseño. Usted puede colocarlo como RelativeLayout en cualquier lugar de la pantalla. El anuncio se adaptará al tamaño que tenga el contenedor, pero tome en cuenta que una baja resolución hará que los anuncios sean menos visibles. Después, debe hacer una llamada a Vungle.getNativeAd para obtener el objeto de anuncio de Flex Feed y llamar a la función addView para asociar el contenedor con el anuncio de Flex Feed.

private RelativeLayout flexfeed_container = findViewById(...); VungleNativeAd vungleNativeAd = Vungle.getNativeAd("FLEXFEED_ID", vunglePlayAdCallback); View nativeAdView = vungleNativeAd.renderNativeView(); flexfeed_container.addView(nativeAdView); 

Cerrar un anuncio de Flex Feed

Debido a que la vista del anuncio Flex Feed se ha agregado a su vista de contenedor, también debe eliminarse en caso de que la vista publicitaria desaparezca de la pantalla, la actividad o el fragmento se destruya o el contenedor de vista primario se recicle o destruya. Si no cierra el anuncio, dicho evento provocará un comportamiento imprevisible de su aplicación.

private VungleNativeAd vungleNativeAd; // Calling finishDisplayingAd when you want to finish displaying Flex-Feed Ad will  se activa en AdEnd y le dirá cuándo puede quitar el contenedor secuendario de vista de FlexFeed
vungleNativeAd.finishDisplayingAd(); // And removing empty ad view from container @Override public void onAdEnd(String id, boolean completed) { … parentView.remove(nativeAdView); vungleNativeAd = null; … }

Adjuntar y separar el estado de un anuncio de Flex Feed

Si el usuario se desplaza hasta un punto en el que el anuncio de video ya no está visible en la pantalla, el editor debe detener el video y reanudarlo cuando vuelva a estar visible. Para controlar los estados de pausa y reanudación, llame a setAdVisibility() desde la instancia de VungleNativeAd y configúrelo como “verdadero” (true) cuando el video esté visible y como “falso” (false) cuando el video salga de pantalla. El setAdVisibility no se debe confundir con View visibility: este configurador informa a Vungle SDK si la vista del anuncio nativo es visible o no, y dependiendo de ello, el SDK pone en pausa/reanuda la reproducción del video.

Para poner en pausa un anuncio de Flex Feed:

vungleNativeAd.setAdVisibility(false);

Para reanudar un anuncio de Flex Feed:

vungleNativeAd.setAdVisibility(true);

Configuración avanzada

Servicios de Google Play (opcionales)

La inclusión de Google Play Services con su proyecto le permite a Vungle brindar una experiencia publicitaria más personalizada al usuario final. Google Cloud Messaging es una API obligatoria, mientras que Google Location y Activity Recognition, Google Location y Basement API son opcionales. Recomendamos el uso de la versión 11.0.1 o superior.

Para incluir los servicios de Google Play recomendamos la Guía de configuración de Google. En su aplicación, asegúrese de que el dispositivo tenga una versión lo suficientemente actualizada de los servicios de Google Play. Es posible que el SDK de Vungle utilice la ubicación y la API de anuncios de los servicios de Google Play.

  • google.android.gms: play-services-gcm: 11.0.1 // Requerida
  • google.android.gms:play-services-basement:11.0.1 // Recomendada
  • google.android.gms:play-services-location:11.0.1 // Recomendada

Reducción del número de métodos

Al agregar el SDK de Vungle para Android v6 a su proyecto se añadirán aproximadamente 750 métodos básicos de Vungle, excluyendo las dependencias transitivas. Se espera que una integración completa que incluya bibliotecas de terceros agregue menos de 4000 métodos en promedio. Considere las siguientes sugerencias para reducir el número total de métodos agregados a su proyecto.

  • ProGuard: Puede habilitar ProGuard para compactar el código de su proyecto. Descartará las clases no utilizadas en el momento de la compilación para que el número total de métodos sea lo más pequeño posible. Puede habilitarlo especificando minifyEnabled true en build.gradle para el tipo de compilación apropiado y proporcionando las reglas para mantener las clases requeridas por su proyecto.

  • Multidex: Si todavía tiene más de 65,000 métodos, es posible que habilitar multiDex sea la única solución que proporcione Google. Solo debe configurar su proyecto una vez para utilizar multiDex, pero afectará el tiempo de inicio de la compilación y de la aplicación.

Proguard

Si utiliza Proguard, añada las siguientes reglas a su archivo de configuración de ProGuard:

# Vungle -keep class com.vungle.warren.** { *; } # Evernote -dontwarn com.evernote.android.job.gcm.** -dontwarn com.evernote.android.job.GcmAvailableHelper -dontwarn com.google.android.gms.ads.identifier.** -keep public class com.evernote.android.job.v21.PlatformJobService -keep public class com.evernote.android.job.v14.PlatformAlarmService -keep public class com.evernote.android.job.v14.PlatformAlarmReceiver -keep public class com.evernote.android.job.JobBootReceiver -keep public class com.evernote.android.job.JobRescheduleService -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement -keep class com.google.android.gms.internal.** { *; } # Moat SDK -keep class com.moat.** { *; } -dontwarn com.moat.**

Nota sobre el subproceso de la IU

Las devoluciones de llamadas se ejecutan en un subproceso en segundo plano, así que todas las interacciones o actualizaciones de la interfaz del usuario (IU) que resultan de una devolución de llamada del evento deben pasar al subproceso principal de la IU antes de ejecutarse. Las dos maneras comunes de ejecutar su código en el subproceso de la IU son:

Opciones de configuración de anuncios

Configuración de anuncios

Tiene la opción de personalizar los anuncios individuales que se reproducen al proporcionar un nuevo objeto adConfig a playAd. AdConfig es un objeto y puede ser nulo, en cuyo caso el anuncio se reproducirá con las configuraciones predeterminadas; o puede ser “no nulo” con derivación al configurador AdConfig. El siguiente es un ejemplo de cómo usar AdConfig:

Vungle.playAd(placementReferenceID, null, vunglePlayAdCallback);

Lo anterior usa nulo como el objeto adConfig; puede hacer esto si no desea establecer configuraciones adicionales. Utilice un objeto AdConfig como se muestra aquí:

AdConfig adConfig = new AdConfig(); adConfig.setAutoRotate(true); adConfig.setMuted(true); Vungle.playAd(placementReferenceID, adConfig, vunglePlayAdCallback);

La siguiente tabla muestra todas las opciones de AdConfig disponibles.

Opción

Descripción

setBackButtonImmediatelyEnabled

verdadero (“true”) si el botón Atrás debe habilitarse antes de que aparezca el botón de cerrar anuncio, de lo contrario, falso (“false”)

setFlexViewCloseTime

toma un valor entero mayor o igual a 0 que especifica el tiempo en segundos para que el anuncio de Flex View se cierre automáticamente

setImmersiveMode

verdadero si el modo inmersivo se habilitará para los dispositivos KitKat +, de lo contrario será falso

setAutoRotate

verdadero si se supone que el anuncio de video debe rotar automáticamente, falso para seguir la orientación del anuncio de video

setMuted

verdadero si el video debe comenzar con una configuración de audio que coincida con la de su aplicación adjunta, falso si siempre debe comenzar en silencio

setOrdinal

Toma un valor entero de recuento ordinal para realizar un seguimiento de la cantidad de anuncios que se han reproducido en la misma sesión

setTransitionAnimationEnabled

verdadero si la animación de transición de video debe estar habilitada, falsa si debe deshabilitarse

Es posible utilizar el mismo objeto AdConfig para varias id. de referencia de ubicación de varios anuncios que reproduzca.

Configuración de anuncio recompensado adicional

Puede usar el objeto Vungle para establecer configuraciones de videos recompensados.

Opción

Descripción

setIncentivizedFields(@Nullable String userID, @Nullable String title, @Nullable String body, @Nullable String keepWatching, @Nullable String close)

Cuando un usuario intenta cerrar un video recompensado, aparecerá una ventana emergente para confirmar que eso es lo que el usuario quiere hacer. Puede personalizar la ventana emergente con esta configuración. Use nulo (null) cuando no desee modificar el valor predeterminado; por ejemplo, si solo quiere cambiar la id. de usuario.

Establezca la configuración de anuncios recompensados de la siguiente manera:

Vungle.setIncentivizedFields("user1","title1","body1","keepwatching1","close1"); Vungle.playAd("YOUR_APP_ID", AdConfig, vunglePlayAdCallback);

Lista de ubicaciones válidas

Un método de ayuda que devuelve Collection of String que contiene todos los id. de referencia de ubicación válidos para la sesión actual.

public static Collection getValidPlacements()

Instrucciones de implementación recomendadas para RGPD

Para usar las API de Vungle para actualizaciones o consultas sobre el estado de consentimiento del usario (según la recomendación de la Opción 1 de las Instrucciones de implementación recomendadas para RGPD de Vungle) use estas funciones:

 // To set the user's consent status to opted in: Vungle.updateConsentStatus(Vungle.Consent.OPTED_IN); // To set the user's consent status to opted out: Vungle.updateConsentStatus(Vungle.Consent.OPTED_OUT); // To find out what the user's current consent status is: Vungle.Consent currentStatus = Vungle.getConsentStatus(); 

Aceleración de hardware

La aceleración de hardware está habilitada de manera predeterminada si su nivel de API objetivo está establecido en 14 o superior. Esta opción debe estar habilitada para que el SDK muestre correctamente la plantilla dinámica y los anuncios de Native Flex. Asegúrese de que esta opción esté configurada como “true” (verdadera) en su proyecto:

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

Obtener el número de versión del SDK

Para obtener programáticamente el número de versión del SDK en tiempo de ejecución (esto es útil en la mediación interna), Vungle proporciona la siguiente cadena:

com.vungle.warren.BuildConfig.VERSION_NAME

Notas adicionales

Android Studios tiene un problema conocido en el que puede producir el bloqueo (“cuelgue“) que se muestra a continuación. Si tiene la versión más reciente de Android Studios Instant Run, deshabilite Android Studios Instant Run para eliminar este bloqueo.

1-20 13:53:03.649 27642-27828/com.publisher.sample W/GooglePlayServicesUtil: Google Play services out of date. Requires 10240000 but found 9879438 11-20 13:53:03.659 27642-27828/com.publisher.sample W/VungleDevice: Google Play Services not available: SERVICE_VERSION_UPDATE_REQUIRED 11-20 13:53:05.679 27642-27642/com.publisher.sample D/Event: No subscribers registered for event class com.vungle.publisher.lu 11-20 13:53:05.679 27642-27642/com.publisher.sample D/Event: No subscribers registered for event class de.greenrobot.event.NoSubscriberEvent
¿Tiene más preguntas? Enviar una solicitud

Comentarios