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
-
Antes de empezar
- Paso 1. Incluya el SDK de Vungle en su proyecto
- Paso 2. Importe el SDK de Vungle
- Paso 3. Inicialice el SDK de Vungle
- Paso 4. Monitor de eventos
- Paso 5. Cargar un anuncio
- Paso 6. Verificar la disponibilidad de anuncios
- Paso 7. Reproducir un anuncio
- Anuncios nativos Flex
- Configuración avanzada
- Notas adicionales
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
-
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 carpetalibs
del proyecto. - Abra el archivo
build.gradle
a nivel de proyecto y actualice la sección repositorios:allprojects {
repositories {
jcenter()
}
} - 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' … }
- Si incluye el SDK de Vungle manualmente, pase al “Paso 2. Importe el SDK de Vungle.”
- 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
siInitCallback
es nulo - devuelve
VungleException
si los argumentos requeridos faltan o no son válidos
- devuelve
-
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 |
|
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”) |
|
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 |
|
verdadero si el modo inmersivo se habilitará para los dispositivos KitKat +, de lo contrario será falso |
|
verdadero si se supone que el anuncio de video debe rotar automáticamente, falso para seguir la orientación del anuncio de video |
|
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 |
|
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 |
|
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 |
|
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
Comentarios