Empiece a utilizar el SDK v. 5 de Vungle para iOS

Contenido

Antes de empezar

  • El SDK v. 5 de Vungle para iOS es compatible con iOS 8+.
  • El SDK v. 5 de Vungle para iOS se ha probado con iOS 11 beta/GM Seed.
  • El SDK v. 5 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 para iOS es compatible con Xcode 9.0 o superior.

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", "5.4.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. Si realiza una actualización desde una versión anterior del SDK de Vungle, primero elimine el directorio VungleSDK.framework completamente antes de agregar 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 marcos (frameworks) nativos a su proyecto, así que haga clic en su proyecto en el Project Navigator (navegador de proyectos) y diríjase a General → Linked Frameworks and Libraries (Bibliotecas y frameworks vinculados).

Muchos de estos marcos 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
  • MediaPlayer.framework
  • QuartzCore.framework
  • StoreKit.framework
  • SystemConfiguration.framework
  • UIKit.framework
  • WebKit.framework
    Nota: El SDK de Vungle v.5 no es compatible con iOS 7. Si va a implementar sobre iOS 7, use el SDK de Vungle para iOS v.4.1 o anterior.

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

Inicialice el SDK

Nota: Se crea automáticamente una ubicación por defecto 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.)

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.

- (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 “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:

- (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;

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:

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); }

Anuncios de Flex Feed

Desde el SDK de Vungle v.5.3, admitimos anuncios Flex Feed. Este es el primer formato de anuncio que no requiere una pantalla completa; en cambio, 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.

Cargar un anuncio de Flex Feed

Cargar un anuncio publicitario es igual que cargar un anuncio de pantalla completa; sin embargo, la colocación debe configurarse para que sea compatible con Flex Feed. Comuníquese con el administrador de su cuenta de Vungle para que habilite Flex Feed para una colocación.

Exhibición de 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 una UIView. Usted puede colocar dicha UIView 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, usted debe llamar a la función addAdViewToView para asociar el contenedor con el anuncio de Flex Feed.

Descripción general de la función:

/** * Pass in an UIView which acts as a container for the ad experience. This view container may be placed in random positions. * @param publisherView container view in which an ad will be displayed * @param options A reference to an instance of NSDictionary with customized ad playback options * @param placementID The placement defined on the Vungle dashboard * @param error An optional double reference to an NSError. In case this method returns `NO` it will be non-nil * @return YES/NO in case of success/error while presenting an AdUnit */ - (BOOL)addAdViewToView:(UIView *)publisherView withOptions:(nullable NSDictionary *)options placementID:(nullable NSString *)placementID error:( NSError *__autoreleasing _Nullable *_Nullable)error; 

Ejemplo de código:

NSError *error; NSDictionary *options = @{}; VungleSDK* sdk = [VungleSDK sharedSDK]; [sdk addAdViewToView:_FlexFeedViewArea withOptions:options placementID: error:&error]; if (error) { NSLog(@"Error encountered while playing an ad: %@", error); } 

Cierre de un anuncio de Flex Feed

Debido a la naturaleza de los anuncios de Flex Feed, un usuario puede dejar de ver el video sin cerrar el anuncio. Por lo tanto, debe decirle al SDK que desestime el anuncio cuando ya no esté en la pantalla. Para ello, se debe llamar a la función finishedDisplayingAd. Esta función solo funciona con anuncios Flex Feed y Flex View. Tenga en cuenta que esta función no incluye una ubicación; simplemente cerrará cualquier anuncio nativo que se esté reproduciendo actualmente.

Descripción general de la función:

/** * This method must be called when the publisher is confident that they are finished displaying the ad unit. * This signals to the SDK that a new ad may be fetched or a different ad may be displayed. This will * be called in conjunction with `addViewToView:containedInViewController:withOptions:placementID:error:` */ - (void)finishedDisplayingAd; 

Ejemplo de código:

//Ad is no longer on screen VungleSDK* sdk = [VungleSDK sharedSDK]; [sdk finishedDisplayingAd]; 

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]; // Detach [[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 //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 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 “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 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 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

VunglePlayAdOptionKeyFlexViewAutoDismissSeconds

Int

Utilice esta opción para hacer que los anuncios Flex Fiew se descarten automáticamente después de la cantidad de segundos especificada.
Esta función solo trabaja con anuncios Flex View.

VunglePlayAdOptionKeyOrdinal

Int

Si recibe informes de datos ordinales de Vungle, use este campo para pasar el ordinal de mediación. Este es un número entero que indica el orden en que se mostró este anuncio en la sesión del juego (por ejemplo, si ya se mostraron dos anuncios en esta sesión, y este anuncio de Vungle se mostró tercero, pase “3”). Lea más sobre datos ordinales aquí.


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!"}; // Pass in dict of options, play ad 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 un 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 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:

[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