Introducción al SDK de Vungle para iOS v. 6 (Swift)

Contenido

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

  • El SDK de Vungle para iOS v. 6.x solo es compatible con iOS 8+.
  • El SDK de Vungle para iOS v. 6.x es compatible con aplicaciones de 32 bits y 64 bits.
  • La integración requiere que tenga una cuenta de Vungle. Si aún no tiene una cuenta, cree una antes de continuar.
  • Nuestro SDK de iOS más novedoso (desde el v. 4.0.8) se lanzó junto al Xcode 8.0 más novedoso Asegúrese de utilizar Xcode 8.0 o superior para asegurar una integración fluida.
  • El código fuente de referencia está disponible en nuestro depósito público de GitHub.

 

Paso 1. Agregue el framework de Vungle a su proyecto de Xcode

Añada el VungleSDK.framework a su proyecto

Hay dos formas de añadir Vungle a su proyecto de Xcode: usando Cocoapods o mediante integración manual.

Cocoapods

El SDK de Vungle se encuentra disponible mediante Cocoapods. Añada Vungle a su proyecto añadiendo la siguiente línea en el archivo Podfile de su proyecto.

 pod "VungleSDK-iOS", "6.x"

Después de eso, pod install debería actualizar su proyecto con la última versión de nuestro SDK para iOS. En este momento, puede pasar al “Paso 2. Quite la barra de estado de iOS”.

Integración manual

Descargue el SDK de Vungle v6.x. Si está actualizando desde una versión anterior del SDK de Vungle, elimine primero el directorio completo VungleSDK.framework antes de agregar el nuevo SDK. A continuación, busque los archivos extraídos y arrastre el directorio VungleSDK.framework en Xcode bajo Frameworks. Asegúrese de agregar la carpeta VungleSDK.framework como un grupo (carpeta amarilla) y no como referencia (carpeta azul).

Añada otros frameworks obligatorios

El SDK de Vungle requiere vincular otros frameworks nativos a su proyecto, así que haga clic en su proyecto en el navegador de proyectos y diríjase a General → Bibliotecas y frameworks vinculados. Muchos de estos frameworks ya se incluyen por defecto en la mayoría de los proyectos de Xcode, pero asegúrese de agregar cualquiera de los siguientes que todavía no se haya incluido:

  • AdSupport.framework
  • AudioToolbox.framework
  • AVFoundation.framework
  • CFNetwork.framework
  • CoreGraphics.framework
  • CoreMedia.framework
  • Foundation.framework
  • libz.dylib or libz.tbd
  • libsqlite3.dylib or libsqlite3.tbd
  • MediaPlayer.framework
  • QuartzCore.framework
  • StoreKit.framework
  • SystemConfiguration.framework
  • UIKit.framework
  • WebKit.framework
    Nota: Establezca el WebKit.framework Estado como “Opcional” si está implementando sobre iOS 7.

Asegúrese de que el framework de VungleSDK aparezca bajo Bibliotecas y frameworks vinculados.

Añada el banderín de enlace “-ObjC”

Haga clic en su proyecto en Project Navigator y vaya a Build Settings → Linking → Other Linker Flags. Agregue -ObjC a Other Linker Flags.

Paso 2. Quite la barra de estado de iOS

A pesar de que no es obligatorio, recomendamos quitar la barra de estado de iOS para garantizar que la interacción y la presentación del anuncio de Vungle sean fluidas. Para quitar la barra de estado, abra Info.plist y añada la clave View controller-based status bar appearance y establezca la opción en No.

Paso 3. Añada el código

Crear un archivo de cabecera de vinculación

  1. Cree un nuevo archivo Objective-C en su proyecto (Archivo Nuevo Archivo [Archivo Objective-C]).
  2. Xcode le preguntará si le gustaría crear un archivo de cabecera de vinculación entre Objective-C y Swift. Acepte este mensaje.
  3. Elimine el nuevo archivo Objective-C file (${YOURPROJ}-Bridging-Header.m), pero conserve el archivo de cabecera de vinculación ${YOURPROJ}-Bridging-Header.h.
  4. En el archivo de cabecera de vinculación, importe el SDK de Vungle al agregar lo siguiente:
    #import <VungleSDK/VungleSDK.h> 

Inicialice el SDK

Inicialice el SDK tan pronto como se inicie su aplicación; si está utilizando una ubicación de almacenamiento automático en caché, esto le da al SDK el tiempo suficiente para almacenar en caché un anuncio para esa ubicación. Necesitará la id. de la aplicación para inicializar el SDK. Puede encontrarla en el Panel de control de Vungle.

- (BOOL)startWithAppId:(nonnull NSString *)appID placements:(nonnull NSArray *)placements error:(NSError **)error;

Ejemplo de código:

let appID = "Your_AppID_Here";
var placementIDsArray:Array<String> = ["<Your_PlacementID_1>", "<Your_PlacementID_2>", "<Your_PlacementID_3>"];

var sdk:VungleSDK = VungleSDK.shared()
do {
try sdk.start(withAppId: appID, placements: placementIDsArray)
}
catch let error as NSError {
print("Error while starting VungleSDK : \(error.domain)")
return;
}

Luego de que el SDK se inicializa correctamente, se invoca el siguiente método de devolución de llamada:

- (void)vungleSDKDidInitialize;

Consulte la sección “Devoluciones de llamadas de delegados” de este artículo.

También, puede comprobar el estado de la inicialización del SDK con la siguiente propiedad:

@property (atomic, readonly, getter=isInitialized) BOOL initialized;

Después de inicializar el SDK, si seleccionó una ubicación como de Auto Cached (Caché automático) en el Panel de control de Vungle, el SDK guarda automáticamente en caché un anuncio para esa ubicación. Si usa esta función, le recomendamos que seleccione la ubicación más vista para el almacenamiento automático en caché.

Luego de que un anuncio se almacena en caché correctamente, se activa el método de devolución de llamada vungleAdPlayabilityUpdate que contenga una id. de referencia de ubicación que coincida con su ubicación de almacenamiento automático en caché. (Consulte la sección “Comprobar la disponibilidad de un anuncio para una ubicación” de este artículo).

Cargar un anuncio para una ubicación

En el caso de las ubicaciones diferentes a la ubicación de almacenamiento automático en caché, invoque el método loadPlacementWithID para cargar un anuncio.

var sdk:VungleSDK = VungleSDK.shared()
do {
try sdk.loadPlacement(withID: <Your_PlacementID>)
}
catch let error as NSError {
print("Unable to load placement with reference ID :\(<Your_PlacementID>), Error: \(error)")

return
}

Consulte la sección “Comprobar la disponibilidad de un anuncio para una ubicación” de este artículo.

Comprobar la disponibilidad de un anuncio para una ubicación

Luego de que el SDK finalice el almacenamiento en caché de un anuncio para una ubicación, se invoca el siguiente método de devolución de llamada:

- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(nullable NSString *)placementID; 

Ejemplo de código:

func vungleAdPlayabilityUpdate(_ isAdPlayable: Bool, placementID: String?) {
if (placementID == <Your_PlacementID>) {
self.playButtonPlacement1.enabled = isAdPlayable;
}
}

Nota: en el caso de la ubicación de almacenamiento automático en caché, este método de devolución de llamada solo se activa cuando un anuncio está disponible. El SDK continuará solicitando anuncios para la ubicación de almacenamiento automático en caché. En el resto de las ubicaciones, este método de devolución de llamada se activa en caso de un “Error en la carga” (isAdPlayable devuelve un “NO” en este caso). También, puede comprobar la disponibilidad de un anuncio para una ubicación con la siguiente propiedad:

- (BOOL)isAdCachedForPlacementID:(nonnull NSString *)placementID;

Reproducir un anuncio

Tras comprobar que un anuncio publicitario está listo para una ubicación, puede reproducirlo con el siguiente método:

- (BOOL)playAd:(UIViewController *)controller options:(nullable NSDictionary *)options placementID:(nullable NSString *)placementID error:( NSError *__autoreleasing _Nullable *_Nullable)error;

Ejemplo de código:

var sdk:VungleSDK = VungleSDK.shared()
do {
try sdk.playAd(self, options: nil, placementID: kVungleTestPlacementID01)
}
catch let error as NSError {
print("Error encountered playing ad: + \(error)");
}

Devoluciones de llamadas de delegados

Puede recibir devoluciones de llamadas del SDK con VungleSDKDelegate. Existen cuatro métodos de devolución de llamadas en el delegado donde recibe las notificaciones de los eventos del SDK.

Puede vincular y desvincular su delegado con:

var sdk:VungleSDK = VungleSDK.shared()
// Attach
sdk.delegate = <yourDelegateInstance> as VungleSDKDelegate
// Detach
sdk.delegate = nil

Nota: Recuerde eliminar el delegado registrado cuando ya no sea necesario para evitar pérdidas de memoria.

El siguiente método se invoca cuando el SDK reproducirá un anuncio de video. Se trata de un lugar ideal para pausar la reproducción, los efectos de sonido, las animaciones, etc.

- (void)vungleWillShowAdForPlacementID:(nullable NSString *)placementID; 

El siguiente método se invoca cuando el SDK cerrará un anuncio. Se trata de un lugar ideal para recompensar a su usuario y reanudar la reproducción, los efectos de sonido, las animaciones, etc.

- (void)vungleWillCloseAdWithViewInfo:(VungleViewInfo *)info placementID:(NSString *)placementID;

Se llama al siguiente método cuando el SDK ha cerrado un anuncio:

- func vungleDidCloseAd(with info: VungleViewInfo, placementID: String);

VungleViewInfo incluye las siguientes propiedades que le permiten comprobar el resultado de la reproducción de un anuncio:

@interface VungleViewInfo : NSObject //Represents a BOOL whether or not the video can be considered a completed view. @property (nonatomic, readonly) NSNumber *completedView; //The time in seconds that the user watched the video. @property (nonatomic, readonly) NSNumber *playTime; //Represents a BOOL whether or not the user clicked the download button. @property (nonatomic, readonly) NSNumber *didDownload; @end 

El siguiente método se activa cuando el SDK modificó el estado de disponibilidad del anuncio. La expresión booleana isAdPlayable denota la nueva reproductibilidad de una placementID determinada.

- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(NSString *)placementID;

Consulte la sección “Comprobar la disponibilidad de un anuncio para una ubicación” de este artículo.

El siguiente método se invoca cuando el SDK se inicializa correctamente:

- (void)vungleSDKDidInitialize;

Opciones de personalización

Use estas opciones para personalizar la experiencia del anuncio durante la reproducción.

Nota: Los anuncios con recompensa se mencionan en algunos casos como anuncios incentivados; ambos términos se refieren siempre al mismo tipo de anuncio publicitario. En el código del SDK y en nuestra API de informes, usamos el término “anuncios incentivados”.

Claves de opciones

Tipo / Valor por defecto

Descripción

VunglePlayAdOptionKeyOrientations

autorotate (rotación automática)

UIInterfaceOrientationMaskAll

Un NSString que representa una máscara de bits con orientaciones

Establece la orientación del anuncio. Le recomendamos que permita que los anuncios roten automáticamente, incluso si su aplicación está en modo vertical. De esta manera, el usuario tiene la opción de visualizar videos a tamaño completo, lo que mejora la experiencia. Puede lograrlo ajustando la orientación al nivel de controlador de visualización (en lugar de a nivel de proyecto).

VunglePlayAdOptionKeyUser

nil

NSString

Establece su id. de usuario. El valor se pasa al servidor de Vungle y se envía a su servidor a través de un sistema de devolución de llamadas de servidor a servidor si se establece una ubicación como “con recompensa”.

VunglePlayAdOptionKeyIncentivizedAlertTitleText

nil

NSString

Cadena que se utiliza como título de un cuadro de diálogo de alerta que aparece cuando un usuario cierra un anuncio incentivado prematuramente.

VunglePlayAdOptionKeyIncentivizedAlertBodyText

“¿Está seguro de que desea saltar este anuncio? Si lo omite, es posible que no reciba recompensa”

NSString

Cadena que se utiliza como texto del cuerpo del cuadro de diálogo de alerta que se presenta cuando un usuario cierra un anuncio incentivado prematuramente.

VunglePlayAdOptionKeyIncentivizedAlertCloseButtonText

“Cerrar”

NSString

Título de la cadena del texto del botón de cierre del cuadro de diálogo de alerta que aparece cuando un usuario cierra un anuncio incentivado prematuramente

VunglePlayAdOptionKeyIncentivizedAlertContinueButtonText

“Continuar”

NSString

Título de la cadena del texto del botón de cierre del cuadro de diálogo de alerta que aparece cuando un usuario cierra un anuncio incentivado prematuramente

Ejemplo de código:

let options: NSDictionary = NSDictionary(dictionary: [VunglePlayAdOptionKeyUser: "test_user_id",
VunglePlayAdOptionKeyIncentivizedAlertBodyText: "If the video isn't completed you won't get your reward! Are you sure you want to close early?",
VunglePlayAdOptionKeyIncentivizedAlertCloseButtonText: "Close",
VunglePlayAdOptionKeyIncentivizedAlertContinueButtonText: "Keep Watching",
VunglePlayAdOptionKeyIncentivizedAlertTitleText: "Careful!"])
do {
try self.sdk.playAd(self, options: (options as! [AnyHashable : Any]), placementID: PlacementID)
}
catch let error as NSError {
print("Error encountered playing ad: + \(error)");
}

Opción de silencio

La instancia del SDK de Vungle ofrece la opción de reproducir los anuncios con el sonido desactivado. Puede establecer la propiedad de silencio como verdadero antes de invocar un playAd().

Ejemplo de código:

var sdk:VungleSDK = VungleSDK.shared()
sdk.muted = true

Nota: esta opción solo se aplica al tipo de anuncio estándar. La opción de silencio para los anuncios de plantilla dinámica se puede configurar en el panel de control.

Depuración

Si necesita información del SDK, puede obtenerla con esta propiedad:

- (NSDictionary *)debugInfo;

Si desea que el SDK genere registros, use el siguiente método:

- (void)setLoggingEnabled:(BOOL)enable;

Protocolo VungleSDKLogger

@protocol VungleSDKLogger - (void)vungleSDKLog:(NSString*)message; @end

La instancia única del VungleSDK envía eventos de registro a cualquier clase vinculada que siga el protocolo de VungleSDKLogger. El evento de registro contiene el valor NSString, que también se imprimirá en la consola (si se ha habilitado el registro). Para vincular su registrador, utilice lo siguiente:

- (void)attachLogger:(id<VungleSDKLogger>)logger;

Como se menciona anteriormente, es importante eliminar los registradores vinculados del SDK de Vungle. Los registradores se pueden desvincular de la siguiente manera:

- (void)detachLogger:(id<VungleSDKLogger>)logger;

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:

//This function returns the current consent status recorded in SDK. If status is not known return 0. sdk = VungleSDK.shared() sdk?.getCurrentConsentStatus() //This function sets the current consent status recorded in the SDK sdk = VungleSDK.shared() sdk?.update(status: VungleConsentStatus) 

VungleConsentStatus es una enumeración que contiene dos estados:

  • aceptado (VungleConsentStatus.accepted)
  • denegado (VungleConsentStatus.denied)
¿Tiene más preguntas? Enviar una solicitud

Comentarios