Empiece a utilizar el SDK v. 5.1 +de Vungle para iOS

Contenido

Antes de empezar

  • El SDK v. 5.1.0 de Vungle para iOS solo es compatible con iOS 8+.
  • El SDK v. 5.1.0 de Vungle para iOS 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 reciente (desde el 4.0.8) se lanzó junto al Xcode 8.0 más reciente. 8.0. Asegúrese de utilizar Xcode 8.0 o superior para asegurar una integración fluida.

Paso 1. Añada 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 una 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", "5.1.0"

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 v5.1.0. Si realiza una actualización desde una versión anterior del SDK de Vungle, elimine el directorio VungleSDK.framework completamente antes de añadir el nuevo SDK.

Si realiza una actualización desde una versión anterior del SDK de Vungle, elimine el directorio VungleSDK.framework completamente antes de añadir el nuevo SDK.

Encuentre los archivos extraídos y arrastre el directorio VungleSDK.framework a Xcode, bajo Frameworks. Asegúrese de añadir la carpeta VungleSDK.framework como un grupo (carpeta amarilla) y no como una 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 añadir 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

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

Añada la bandera de enlace “-ObjC”

Haga clic en su proyecto en el navegador de proyectos​ y diríjase a Ajustes de compilación → Enlaces → Otras banderas de enlace. Añada -ObjC​ a Otras banderas de enlace​.

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 Ver apariencia de la barra de estado basada en el controlador​ y luego cambie la opción a No.

Paso 3. Añada el código

Inicialice el SDK

Nota:​ una ubicación por defecto se crea automáticamente para cada aplicación. Debe proporcionar la ID de referencia de la ubicación en este paso de la inicialización independientemente de si desea aprovechar la funcionalidad de las ubicaciones. Si crea varias ubicaciones, proporcione todas las ID de referencia.

Inicialice el SDK en cuanto inicie la aplicación, de modo que el SDK tenga tiempo suficiente para almacenar un anuncio en caché para la ubicación de almacenamiento automático en caché. Necesitará la ID de la aplicación y todas las ID de referencia de ubicación que desea utilizar en su aplicación (activas e inactivas) para inicializar el SDK. Puede encontrar estas ID en el panel de control de Vungle (consulte Configurar ubicaciones en su panel de control de Vungle).

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

Ejemplo de código:

#import <VungleSDK/VungleSDK.h>
...
NSError* error;
NSString* appID = @"Your_AppID_Here"; NSArray* placementIDsArray = @[@"<Your_PlacementID_1>", @"<Your_PlacementID_2>", @"<Your_PlacementID_3>"]; VungleSDK* sdk = [VungleSDK sharedSDK]; [sdk startWithAppId:appID placements:placementIDsArray error:&error];

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;

Luego de que se inicialice el SDK, un anuncio se almacena en caché automáticamente para la ubicación de almacenamiento automático en caché que seleccionó en el panel de control de Vungle. Recomendamos seleccionar la ubicación más vista como la ubicación de almacenamiento automático en caché.

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

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 el método loadPlacementWithID para cargar un anuncio.

- (BOOL)loadPlacementWithID:(NSString *)placementID error:(NSError **)error;

Ejemplo de código:

NSError* error;
VungleSDK* sdk = [VungleSDK sharedSDK]; [sdk loadPlacementWithID:"<Your_PlacementID>" error:&error];

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

Compruebe 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:

- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(NSString *)placementID {
    if([placementID isEqualToString:@"<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 invoca 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 invoca 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;

Reproduzca un anuncio

Tras comprobar que un anuncio está listo para una ubicación, puede reproducir el anuncio 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:

VungleSDK* sdk = [VungleSDK sharedSDK];
NSError *error;
[self.sdk playAd:self options:nil placementID:@"<Your_PlacementID_1>" error:&error];
if (error) {
    NSLog(@"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:

// Attach
[[VungleSDK sharedSDK] setDelegate:yourDelegateInstance];
// Desvincular
[[VungleSDK sharedSDK] setDelegate: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;

VungleViewInfo includes the following properties for you to check a result of ad play:

@interface VungleViewInfo : NSObject 
//Representa un BOOL independientemente de si se considera que el video se visualizó completamente.
@property (nonatomic, readonly) NSNumber *completedView;
//El tiempo en segundos durante el cual el usuario vio el video.
@property (nonatomic, readonly) NSNumber *playTime;
//Representa un BOOL independientemente de si el usuario hizo clic en el botón de descarga.
@property (nonatomic, readonly) NSNumber *didDownload;
@end

El siguiente método se invoca 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 “Compruebe 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.

Claves de opciones

Tipo / Valor por defecto

Descripción

VunglePlayAdOptionKeyOrientations

rotación automática

UIInterfaceOrientationMaskAll

Un NSNumber 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 de retrato. De esta manera, el usuario tiene la opción de visualizar videos a tamaño completo, lo que se traduce en una mejor experiencia del usuario. Puede realizarlo ajustando la orientación en un nivel de controlador de visualización (en lugar de en un 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 el título de un diálogo de aviso que aparece cuando un usuario cierra una experiencia publicitaria incentivada de forma prematura.

VunglePlayAdOptionKeyIncentivizedAlertBodyText

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

NSString

(¿Está seguro de que quiere omitir este anuncio? Si es así, es posible que no reciba recompensa.) Cadena que se utiliza como el texto del cuerpo del diálogo de alerta que se presenta cuando un usuario cierra una experiencia publicitaria incentivada de forma prematura.

VunglePlayAdOptionKeyIncentivizedAlertCloseButtonText

“Cerrar”

NSString

Título de la cadena del texto del botón de cierre del diálogo de alerta que aparece cuando un usuario cierra una experiencia publicitaria incentivada de forma prematura.

VunglePlayAdOptionKeyIncentivizedAlertContinueButtonText

“Continuar”

NSString

Título de la cadena del texto del botón de cierre del diálogo de alerta que aparece cuando un usuario cierra una experiencia publicitaria incentivada de forma prematura.

Ejemplo de código:

NSDictionary *options = @{VunglePlayAdOptionKeyOrientations: @(UIInterfaceOrientationMaskLandscape),
                          VunglePlayAdOptionKeyUser: @"userGameID",
                          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!"};

// Pase un diccionario de opciones, reproduzca el anuncio
NSError *error;
[self.sdk playAd:self options:options placementID: error:&error];

if (error) {
    NSLog(@"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 a playAd().

Ejemplo de código:

VungleSDK* sdk = [VungleSDK sharedSDK];
self.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 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:

[sdk attachLogger:yourLoggerInstance];

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

[sdk detachLogger:yourLoggerInstance];

Protocolo assetLoader

@protocol VungleAssetLoader
/**
 * debe devolver un NSData que contenga los datos (brutos) de una imagen para la ruta específica o nil. */
- (NSData*)vungleLoadAsset:(NSString*)path;

/**
 * debe devolver un UIImage válido para la ruta específica o nil.
 */
- (UIImage*)vungleLoadImage:(NSString*)path;
@end
¿Tiene más preguntas? Enviar una solicitud

Comentarios