Saltar a: navegación, buscar

SDKs:SPS:iOS:index


Revisión del 10:00 17 ene 2019 de Deneb (discusión | contribuciones) (Posición y dimensiones del banner.)

CÓMO AGREGAR EL FRAMEWORK SPSLIB EN IOS

INTRODUCCIÓN.

El framework SpsLib se encarga de servir y controlar los anuncios a mostrar y la forma de mostrarlos.

SpsLib realiza una petición al Servidor SSP de Mobeleader en busca de anuncios que mostrar, y éste devuelve el anuncio más adecuado en función de dicha petición.

SpsLib se ejecuta en segundo plano, por lo que no influye en los procesos que se estén ejecutando en la aplicación del cliente.

VERSIONES DE IOS SOPORTADAS.

Este framework admite la versión 10.0 de iOS y superiores.

ESPACIOS.

El espacio es el elemento que gestiona las características del anuncio a mostrar en su aplicación, tales como el tamaño y posición en pantalla, frecuencia de impresión, tipo de anuncio, etc.

En una misma pantalla de la aplicación se puede establecer uno o varios espacios, en función de lo que desee el desarrollador. Un espacio sólo puede mostrar un anuncio a la vez.

Para que el framework SpsLib pueda mostrar un anuncio habrá que crear y configurar previamente el espacio con las características deseadas.

Creación de un espacio.

Este paso se realiza desde el Panel de Mobeleader. Podemos hacerlo bien desde la sección [Mis Aplicaciones](http://panel.mobeleader.com/index.php?sec=6) o bien desde la sección [Mis Espacios](http://panel.mobeleader.com/index.php?sec=34).

Recuerde que un espacio está asignado a una aplicación, por lo que ésta ha de haber sido creada previamente en el panel.

Si se encuentra en la sección [Mis Aplicaciones](http://panel.mobeleader.com/index.php?sec=6), elija aquella aplicación de la lista a la que quiera agregar un espacio. En la columna RTB pulse el icono plus.png de ["Crear Espacio"](http://panel.mobeleader.com/index.php?sec=35).

anadir_espacio_apps.png

Si se encuentra en la sección [Mis Espacios](http://panel.mobeleader.com/index.php?sec=34), pulse directamente el botón ["Crear Espacio"](http://panel.mobeleader.com/index.php?sec=35).

boton_crear_espacio.png

Una vez en la sección [Crear Espacio](http://panel.mobeleader.com/index.php?sec=35), rellene los campos del formulario y pulse el botón "Crear el espacio".

formu_crear_espacio.png

Configuración del espacio.

Configuración RTB del espacio.

Una vez creado el espacio, ha de configurarlo de cara a su comportamiento en nuestro Servidor SSP, que será el encargado de proveer los anuncios. Desde la sección [Mis Aplicaciones](http://panel.mobeleader.com/index.php?sec=6) pulse el botón "Espacios RTB" en la columna RTB de la aplicación a la que pertenece el espacio.

boton_espacios_RTB.png

Rellene los campos del formulario y pulse "Añadir Configuración".

formu_conf_RTB.png

A continuación aparecerá el espacio con su configuración en el "Listado de espacios configurados".

Configuración de los cappings.

Si desea limitar el comportamiento del espacio ha de asignarle las limitaciones o cappings correspondientes. Esta configuración no es obligatoria.

Desde la sección [Mis Espacios](http://panel.mobeleader.com/index.php?sec=34) pulse "Gestionar Cappigs".

boton_gest_cappings.png

Seleccione las características del capping a aplicar y pulse el botón "Añadir capping".

formu_gest_cappings.png

A continuación aparecerá el capping creado en la lista "Cappings aplicados". Puede eliminar un capping si lo desea pulsando el botón "Quitar capping".

Si los cappings están configurados correctamente pulse el botón "Configurar estos cappings" para que el sistema los reconozca.

config_cappings.png

MODIFICACION DEL INFO.PLIST.

Para que el visionado de los anuncios sea completo es necesario añadir el soporte a conexiones que no sean https, modificando el archivo info.plist del proyecto.

Directamente en la property list.

Añadiremos la key App Transport Security Settings:

info_plist_1.png

A continuación añadiremos a esta key la propiedad Allow Arbitrary Loads:

info_plist_2.png

Cambiamos el valor de la propiedad Allow Arbitrary Loads a YES:

info_plist_3.png

Manualmente por código.

Abrimos el código fuente del info.plist:

info_plist_4.png

Añadimos el siguiente código:

   <key>NSAppTransportSecurity</key>

<dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>


INSTALACION DEL FRAMEWORK.

Existen dos maneras de instalar el framework SpsLib: a través de CocoaPods o descargándolo directamente. Recomendamos hacerlo a través de la primera opción. SpsLib incorpora dos frameworks auxiliares, RegisterLib y UtilsLib.

Instalación con CocoaPods.

En caso de que su proyecto no incluya el archivo Podfile, incorpórelo. Si nunca ha trabajado con CocoaPods consulte la [documentación ofrecida en su web oficial](https://guides.cocoapods.org/using/using-cocoapods.html), en la que se explica paso a paso cómo instalar CocoaPods y cómo crear, actualizar y trabajar con los archivos Podfile.

Añada al archivo Podfile de su proyecto las siguientes dependencias:

   pod 'MobeleaderSps'
   pod 'MobeleaderUtils'
   pod 'MobeleaderRegister'

A continuación, en el directorio de su proyecto ejecute la siguiente línea de comandos:

   $ pod install --repo-update

Se creará el workspace de su proyecto de la siguiente manera:

Proyecto_nc_ios_8.png

Abra el proyecto desde el workspace para poder usar la librería correctamente.

Instalación manual del framework.

Descargue el framework SpsLib:


desc_sps_ios.png


desc_framework.png


Una vez descargado el framework instálelo en su proyecto.

LANZAMIENTO DEL FRAMEWORK.

Lo primero que debe hacer es elegir la pantalla en la que quiera mostrar la publicidad. Recuerde que puede hacerlo en tantas pantallas como desee. Una vez seleccionada la pantalla, importe el header de SpsLib:

   #import <MobeleaderSps/MobeleaderSps.h>

Puede lanzar la librería directamente, mostrando tanto un banner como un anuncio intersticial o modal, o puede hacerlo en diferido mostrando el anuncio en el momento que crea necesario.

Lanzamiento básico.

Si lo que desea es mostrar el enuncio a través de un banner, escriba lo siguiente en su código:

   Sps *sps = [[Sps alloc] init];
   sps.delegate=self;
   [sps setRootViewController:self];
   [sps setAppHash:@"appHash"];        	 // Campo obligatorio -> Código hash de la app.
   [sps setAppSpaceHash:@"spaceHash"]; // Campo obligatorio -> Código hash del espacio.
   [sps setSpsSize:@"BANNER"];
   [sps startSps:self.view];

Los campos setAppHash:@“appHash” y setAppSpaceHash:@“spaceHash” son obligatorios.

En el campo appHash ha de introducir el código hash de su aplicación, generado al registrar su aplicación en el Panel de Mobeleader. Lo puede obtener en la sección [Mis Aplicaciones](http://panel.mobeleader.com/index.php?sec=6), pulsando el icono de la columna "Hash" de su aplicación. app_hash.png


En el campo spaceHash ha de introducir el código hash del espacio que vaya a gestionar la publicidad, generado al crear dicho espacio en el Panel de Mobeleader. Lo puede obtener en la sección [Mis Espacios](http://panel.mobeleader.com/index.php?sec=34), pulsando el icono de la columna "Hash" de su espacio. space_hash.png


El campo setRootViewController no es obligatorio, pero es conveniente si existe complejidad en la estructura de sus vistas o en la navegación. Si no establece un valor para este campo se establecerá automáticamente el [[UIApplication sharedApplication] delegate].window.rootViewController como rootViewController del banner.

Posición y dimensiones del banner.

El campo setSpsSize determina el tipo de banner a mostrar, esto es, las dimensiones del banner que devolverá nuestro servidor SSP. A continuación se muestra una lista con los tipos de banner que ofrece Mobeleader:

  • @"IMAGE_SMALL_BANNER" (120 x 20).
  • @"IMAGE_SMALL_HIGH_BANNER" (120 x 30).
  • @"IMAGE_MEDIUM_BANNER" (168 x 28).
  • @"IMAGE_MEDIUM_HIGH_BANNER" (168 x 42).
  • @"IMAGE_LARGE_BANNER" (216 x 36).
  • @"IMAGE_LARGE_HIGH_BANNER" (216 x 54).
  • @"SMALL_BANNER" (300 x 5).
  • @"HIGH_BANNER" (300 x 75).
  • @"MOBILE_POP_UP" (300 x 250).
  • @"TABLET_FILM_STRIP" (300 x 600).
  • @"BANNER" (320 x 50).
  • @"SQUARE_BANNER" (320 x 320).
  • @"MOBILE_LARGE_BANNER" (320 x 300).
  • @"MOBILE_LARGE_POP_UP" (320 x 350).
  • @"TABLET_LARGE_BANNER" (320 x 480).
  • @"TABLET_BANNER" (480 x 80).
  • @"TABLET_POP_UP" (550 x 480).
  • @"SKYSCRAPER_HORIZONTAL" (728 x 90).
  • @"INTERSTITIAL" (pantalla completa).


Si no establece un valor para el campo setSpsSize, el framework establecerá por defecto el valor @"INTERSTITIAL", dando como resultado un banner intersticial o modal.

Existen tres maneras de establecer la posición y dimensiones del banner:

  • estableciendo la posición absoluta del banner.
  • estableciendo la posición relativa del banner.
  • a través de una vista auxiliar.


6.1.1.1- Establecer la posición absoluta del banner.

La posición absoluta se establece directamente mediante el campo setAdPosition:

   [sps setAdPosition:CGPointMake(20.0f, 150.0f)];

De esta manera, el banner aparecerá en su pantalla en esa posición y con las dimensiones establecidas en el campo setSpsSize.

6.1.1.2- Establecer la posición relativa del banner.

La posición relativa se establece directamente mediante el campo setAdRelativePosition, pudiendo seleccionar dos posiciones relativas:

  • @"TOP" (se mostrará en la parte superior de su pantalla).
  • @"BOTTOM" (se mostrará en la parte inferior de su pantalla).


   [sps setAdRelativePosition:@"BOTTOM"];

Las dimensiones del banner vendrán establecidas por el campo setSpsSize.

6.1.1.3- Establecer la posición y dimensiones del banner a través de una vista auxiliar.

Puede establecer la posición y las dimensiones del banner a través de una vista auxiliar utilizando el campo setAppSpace:

   [sps setAppSpace:myBannerView];

De esta manera, el banner aparecerá en su pantalla en la misma posición y con las mismas dimensiones que la vista enviada como valor del campo setAppSpace. Tenga en cuenta las dimensiones del anuncio enviado por nuestro servidor SSP vendrá determinado por el valor establecido en el campo setSpsSize, pudiendo suceder que el anuncio no se mostrará adecuadamente si no coincidieran las dimensiones del tipo de banner enviado con las de la vista auxiliar.

Lanzamiento diferido del banner.

Si desea lanzar el anuncio en un momento determinado lo que debe hacer es preparar el anuncio y mostrarlo en el momento que desee. Para ello escriba lo siguiente en su código para preparar el anuncio:

   Sps *sps = [[Sps alloc] init];
   sps.delegate=self;
   [sps setRootViewController:self];
   [sps setAppHash:@"appHash"];             // Campo obligatorio -> Código hash de la app.
   [sps setAppSpaceHash:@"spaceHash"]; // Campo obligatorio -> Código hash del espacio.
   [sps setSpsSize:@"BANNER"];
   [sps getReady:self.view];

Escriba lo siguiente para mostrar el anuncio:

   [sps showAd];

Puede usar el delegate onAdReadyToShow para saber si el anuncio está preparado para ser mostrado. Un ejemplo sería el siguiente:

   - (void)onAdReadyToShow:(NSString *) bannerType
   {
   	[sps showAd];
   }

Lanzamiento modal.

El lanzamiento modal consiste en mostrar automáticamente un anuncio interstitial o modal (pantalla completa) en la pantalla seleccionada. Si desea mostrar el anuncio directamente añada el siguiente código:

   Sps *sps = [[Sps alloc] init];
   sps.delegate=self;
   [sps setRootViewController:self];
   [sps setAppHash:@"appHash"];             // Campo obligatorio -> Código hash de la app.
   [sps setAppSpaceHash:@"spaceHash"]; // Campo obligatorio -> Código hash del espacio.
   [sps startSps:self.view];

setAppHash:@“appHash” y setAppSpaceHash:@“spaceHash” son campos obligatorios, y funcionan tal como se explica en el lanzamiento básico.

El lanzamiento diferido funciona de la misma manera que en el lanzamiento básico.

Delegates.

El framework SpsLib está dotado de varios delegates opcionales:

  • onActive: notifica si la aplicación tiene activado el framework.
  • onInactive: notifica en caso de que la aplicación tenga desactivado el framework.
  • onLibStart: notifica cuando el framework haya empezado a comprobar los anuncios.
  • onAdNotShow: notifica cuando el framework no vaya a mostrar ningún anuncio. Si el motivo por el cual no devuleve un anuncio es un error del framework, el delegate devolverá un objeto NSDictionary con los errores producidos.
  • onAdShow: notifica cuando el framework vaya a mostrar un anuncio.
  • onAdReadyToShow: notifica cuando el framework ya tenga elegido y preparado el anuncio a mostrar. Devuelve el tipo de banner (ej: "HIGH_BANNER") que se vaya a mostrar.
  • onPresentScreenAd: notifica cuando el anuncio esté en pantalla.
  • onActionShow: notifica cuando el anuncio haya realizado la acción de visualizado.
  • onActionUrlOpen: notifica cuando el anuncio haya realizado la acción de abrir una URL. Devuelve como string la URL abierta en el argumento .
  • onActionCloseButton: notifica cuando el anuncio haya realizado la acción de pulsar sobre el "botón cerrar".
  • onAdClose: notifica cuando el anuncio se haya cerrado.
  • onError: notifica cuando el framework haya tenido algún error. Devuelve un string con la descripción del error producido.
  • onWarning: notifica cuando el framework envía un aviso. Devuelve un string con la descripción del aviso.


Para acceder a los delegates, la llamada al framework SpsLib deberá realizarse de la siguiente forma (se pueden implementar tantos delegates como se quiera, no es necesario implementarlos todos):

   - (void)onActive
   {
       // Complete delegate
   }
   
   - (void)onInactive
   {
       // Complete delegate
   }
   
   - (void)onLibStart
   {
       // Complete delegate
   }
   
   - (void)onAdNotShow
   {
       // Complete delegate
   }
   
   - (void)onAdNotShow:(NSDictionary *) returnedDictionary
   {
       // Complete delegate
   }
   
   -(void)onAdShow
   {
       // Complete delegate
   }
   
   - (void)onPresentScreenAd
   {
       // Complete delegate
   }
   
   - (void)onActionShow
   {
       // Complete delegate
   }
   
   - (void)onActionUrlOpen:(NSString *)url
   {
       // Complete delegate
   }
   
   - (void)onActionCloseButton
   {
       // Complete delegate
   }
   
   - (void)onAdClose
   {
       // Complete delegate
   }
   
   - (void)onError:(NSString *)error
   {
       // Complete delegate
   }
   
   - (void)onWarning:(NSString *)warning
   {
       // Complete delegate
   }