Diferencia entre revisiones de «SDKs:SPS:Android:index»

De mobeleader
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Página reemplazada por «Prueba...»
Línea 1: Línea 1:
# CÓMO AGREGAR LA LIBRERÍA SPSLIB EN ANDROID
= CÓMO AGREGAR LA LIBRERÍA SPSLIB EN ANDROID =


------------


## ÍNDICE
== INTRODUCCIÓN. ==


------------


**1.-** Introducción.
La librería <b>SpsLib</b> se encarga de servir y controlar los anuncios a mostrar y la forma de mostrarlos.


**2.-** Versiones de Android Soportadas.
<b>SpsLib</b> realiza una petición al <b>Servidor SSP</b> de <b>Mobeleader</b> en busca de anuncios que mostrar, y éste devuelve el anuncio más adecuado en función de dicha petición.


**3.-** Espacios.
La librería 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 ANDROID SOPORTADAS. ==
 
 
Esta librería soporta todas las versiones de <b>Android</b> superiores a la <b>2.3</b> o <b><i>GINGERBREAD</i></b>.
 
== ESPACIOS. ==
 
 
El <b>espacio</b> 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 un mismo <b><i>Activity</i></b> (o <b><i>Fragment</i></b>) 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 la librería <b>SpsLib</b> 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 <b>Panel de Mobeleader</b>. 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 <b>RTB</b> pulse el icono (http://panel.mobeleader.com/plantillas/panel2014/imgs/plus.png) de [<b>"Crear Espacio"</b>](http://panel.mobeleader.com/index.php?sec=35).
 
http://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/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 [<b>"Crear Espacio"</b>](http://panel.mobeleader.com/index.php?sec=35).
 
http://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/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 <b>"Crear el espacio"</b>.
 
http://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/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 <b>Servidor SSP</b>, 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 <b>"Espacios RTB"</b> en la columna <b>RTB</b> de la aplicación a la que pertenece el espacio.


**4.-** Instalación de la librería.
http://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/boton_espacios_RTB.png


**5.-** Lanzamiento de la librería.
Rellene los campos del formulario y pulse <b>"Añadir Configuración"</b>.


------------
http://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/formu_conf_RTB.png


## 1.- INTRODUCCIÓN.
A continuación aparecerá el espacio con su configuración en el <b>"Listado de espacios configurados"</b>.


------------
==== Configuración de los <i>cappings</i>. ====


La librería **SpsLib** se encarga de servir y controlar los anuncios a mostrar y la forma de mostrarlos.


**SpsLib** realiza una petición al **Servidor RTB** de **Mobeleader** en busca de anuncios que mostrar, y éste devuelve el anuncio más adecuado en función de dicha petición.
Si desea limitar el comportamiento del espacio ha de asignarle las limitaciones o <b><i>cappings</i></b> correspondientes. Esta configuración no es obligatoria.
 
Desde la sección [Mis Espacios](http://panel.mobeleader.com/index.php?sec=34) pulse <b>"Gestionar Cappigs"</b>.
 
http://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/boton_gest_cappings.png
 
Seleccione las características del <b><i>capping</i></b> a aplicar y pulse el botón <b>"Añadir capping"</b>.
 
http://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/formu_gest_cappings.png
 
A continuación aparecerá el <b><i>capping</i></b> creado en la lista <b>"Cappings aplicados"</b>. Puede eliminar un <b><i>capping</i></b> si lo desea pulsando el botón <b>"Quitar capping"</b>.
 
Si los cappings están configurados correctamente pulse el botón <b>"Configurar estos cappings"</b> para que el sistema los reconozca.
 
http://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/config_cappings.png
 
== INSTALACION DE LA LIBRERIA. ==
 
 
<b>Mobeleader</b> dispone de un repositorio <b><i>maven</i></b> para que sus librerías puedan ser utilizadas en <b><i>Android Studio</i></b>. Para poder usar la librería <b>SpsLib</b> es necesario realizar varios cambios, tanto en el archivo <b><i>build.gradle</i></b> como en el <b><i>AndroidManifest.xml</i></b> de su aplicación.
 
=== Cambios en el archivo <i>build.gradle</i>. ===


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


------------
En el apartado <b><i>repositories</i></b> deberá añadir:


## 2.- VERSIONES DE ANDROID SOPORTADAS.
    repositories {
        mavenCentral()
        maven { url 'http://maven.mobeleader.com' }
    }


------------
La librería <b>SpsLib</b> utiliza dos librerías auxiliares, <b>RegisterLib</b> y <b>UtilsLib</b>. Por tanto, para utilizar la librería <b>SpsLib</b> en su aplicación, en el apartado <b><i>dependencies</i></b> deberá añadir:


Esta librería soporta todas las versiones de **Android** superiores a la **2.3** o ***GINGERBREAD***.
    //noinspection GradleDynamicVersion
    compile 'com.mobeleader.utils:UtilsLib:+'
    //noinspection GradleDynamicVersion
    compile 'com.mobeleader.register:RegisterLib:+'
    //noinspection GradleDynamicVersion
    compile 'com.mobeleader.sps:PlusLib:5.+'


------------
=== Cambios en el archivo <i>AndroidManifest.xml</i>. ===


## 3.- ESPACIOS.


------------
Es necesario añadir el siguiente permiso:


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.
    <uses-permission android:name="android.permission.INTERNET" />


En un mismo ***Activity*** (o ***Fragment***) 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.
Se recomienda añadir los siguientes permisos para obtener el mayor rendimiento de la librería:


Para que la librería **SpsLib** pueda mostrar un anuncio habrá que crear y configurar previamente el espacio con las características deseadas.
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_PROFILE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.READ_CALENDAR" />
    <uses-permission android:name="android.permission.WRITE_CALENDAR" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />


------------
=== Cambios en el <i>Proguard</i>. ===


### 3.1.- 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).
En caso de que esté utilizando el <b><i>Proguard</i></b> (variable <b><i>minifyEnabled</i></b> a <b><i>TRUE</i></b> en el <b><i>build.gradle</i></b>), será necesario añadir en el fichero del <b><i>Proguard</i></b> utilizado (<b><i>proguard-rules.pro</i></b> por defecto) la siguiente regla:


Recuerde que un espacio está asignado a una aplicación, por lo que ésta ha de haber sido creada previamente en el panel.
    -keep class com.mobeleader.<i></i> {*;}


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 ![](http://panel.mobeleader.com/plantillas/panel2014/imgs/plus.png) de [**"Crear Espacio"**](http://panel.mobeleader.com/index.php?sec=35).
== LANZAMIENTO DE LA LIBRERIA. ==


![](/ficheros_subidos/librerias/imagenes/sps/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).
Lo primero que debe hacer es elegir el <b><i>Activity</i></b> (o <b><i>Fragment</i></b>) en el que quiera mostrar la publicidad.  Recuerde que puede hacerlo en tantos <b><i>Activities</i></b> o <b><i>Fragments</i></b> como desee. Una vez seleccionado ha de importar el paquete <b>com.mobeleader.sps</b>:


![](/ficheros_subidos/librerias/imagenes/sps/boton_crear_espacio.png)
    import com.mobeleader.sps.*;


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"**.
Una vez importado el paquete, se procederá al lanzamiento de la librería. La librería <b>SpsLib</b> se puede lanzar principalmente de dos maneras: a través de una vista o directamente.


![](/ficheros_subidos/librerias/imagenes/sps/formu_crear_espacio.png)
=== Lanzamiento básico. ===


------------


### 3.2.- Configuración del espacio.
Si lo que desea es mostrar el anuncio a través de un <b><i>banner</i></b>, en una posición y con unas dimensiones determinadas, ha de utilizar la clase <b>SpsView</b> en su <b><i>Activity</i></b> o <b><i>Fragment</i></b>. <b>SpsView</b> es el <b><i>layout</i></b> o vista en el que se mostrará el anuncio. Las características del <b><i>layout</i></b> se establecen mediante el archivo <b><i>XML</i></b>.


#### 3.2.1.- Configuración RTB del espacio.
Añada en el <b><i>XML</i></b> del <b><i>layout</i></b> del <b><i>Activity</i></b> o <b><i>Fragment</i></b> la vista <b>*SpsView</b> (en el ejemplo se añade dentro de un <b>LinearLayout</b>):


Una vez creado el espacio, ha de configurarlo de cara a su comportamiento en nuestro **Servidor RTB**, 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.
    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:gravity="center_horizontal">


![](/ficheros_subidos/librerias/imagenes/sps/boton_espacios_RTB.png)
    <com.mobeleader.sps.SpsView
    xmlns:sps="http://schemas.android.com/apk/res-auto"
    android:id="@+id/spsView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    sps:spsAppHash="appHash"
    sps:spsAppSpaceHash="spaceHash"
    sps:spsLoadSps="true"
    sps:spsSize="BANNER"/>


Rellene los campos del formulario y pulse **"Añadir Configuración"**.
    </LinearLayout>


![](/ficheros_subidos/librerias/imagenes/sps/formu_conf_RTB.png)
<b>sps:spsAppHash=“appHash”</b> y <b>sps:spsAppSpaceHash=“spaceHash”</b> son campos obligatorios.


A continuación aparecerá el espacio con su configuración en el **"Listado de espacios configurados"**.
En el campo <b><i>appHash</i></b> ha de introducir el <b>código hash</b> de su aplicación, generado al registrar su aplicación en el <b>Panel de Mobeleader</b>. Lo puede obtener en la sección [Mis Aplicaciones](http://panel.mobeleader.com/index.php?sec=6), pulsando el icono de la columna <b>"Hash"</b> de su aplicación.
http://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/app_hash.png


#### 3.2.2.- 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.
En el campo <b><i>spaceHash</i></b> ha de introducir el <b>código hash</b> del espacio que vaya a gestionar la publicidad, generado al crear dicho espacio en el <b>Panel de Mobeleader</b>. Lo puede obtener en la sección [Mis Espacios](http://panel.mobeleader.com/index.php?sec=34), pulsando el icono de la columna <b>"Hash"</b> de su espacio.
http://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/space_hash.png


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


![](/ficheros_subidos/librerias/imagenes/sps/boton_gest_cappings.png)
<b>sps:spsSize=“BANNER"</b> y <b>sps:spsLoadSps=“true"</b> también son campos obligatorios.


Seleccione las características del ***capping*** a aplicar y pulse el botón **"Añadir capping"**.
El campo <b>spsSize</b> determina el tipo de <b><i>banner</i></b> a mostrar, esto es, las dimensiones que ocupará dentro de la pantalla. A continuación se muestra una lista con los tipos de <b><i>banner</i></b> que ofrece <b>Mobeleader</b>:


![](/ficheros_subidos/librerias/imagenes/sps/formu_gest_cappings.png)
* <b>"IMAGE_SMALL_BANNER"</b> (120 x 20).


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"**.
* <b>"IMAGE_SMALL_HIGH_BANNER"</b> (120 x 30).


Si los cappings están configurados correctamente pulse el botón **"Configurar estos cappings"** para que el sistema los reconozca.
* <b>"IMAGE_MEDIUM_BANNER"</b> (168 x 28).


![](/ficheros_subidos/librerias/imagenes/sps/config_cappings.png)
* <b>"IMAGE_MEDIUM_HIGH_BANNER"</b> (168 x 42).


------------
* <b>"IMAGE_LARGE_BANNER"</b> (216 x 36).


## 4.- INSTALACION DE LA LIBRERIA.
* <b>"IMAGE_LARGE_HIGH_BANNER"</b> (216 x 54).


------------
* <b>"HIGH_BANNER"</b> (300 x 75).


**Mobeleader** dispone de un repositorio ***maven*** para que sus librerías puedan ser utilizadas en ***Android Studio***. Para poder usar la librería **SpsLib** es necesario realizar varios cambios, tanto en el archivo ***build.gradle*** como en el ***AndroidManifest.xml*** de su aplicación.
* <b>"MOBILE_POP_UP"</b> (300 x 250).


------------
* <b>"TABLET_FILM_STRIP"</b> (300 x 600).


### 4.1.- Cambios en el archivo *build.gradle*.
* <b>"BANNER"</b> (320 x 50).


En el apartado ***repositories*** deberá añadir:
* <b>"SQUARE_BANNER"</b> (320 x 320).


![](/ficheros_subidos/librerias/imagenes/sps/repository.png)
* <b>"MOBILE_LARGE_BANNER"</b> (320 x 300).


La librería **SpsLib** utiliza dos librerías auxiliares, **RegisterLib** y **UtilsLib**. Por tanto, para utilizar la librería **SpsLib** en su aplicación, en el apartado ***dependencies*** deberá añadir:
* <b>"MOBILE_LARGE_POP_UP"</b> (320 x 350).


![](/ficheros_subidos/librerias/imagenes/sps/dependencies.png)
* <b>"TABLET_LARGE_BANNER"</b> (320 x 480).


------------
* <b>"TABLET_BANNER"</b> (480 x 80).


### 4.2.- Cambios en el archivo *AndroidManifest.xml*.
* <b>"TABLET_POP_UP"</b> (550 x 480).


Es necesario añadir el siguiente permiso:
* <b>"INTERSTITIAL"</b> (pantalla completa).


![](/ficheros_subidos/librerias/imagenes/sps/perms_obliig.png)


Se recomienda añadir los siguientes permisos para obtener el mayor rendimiento de la librería:
<b>"BANNER"</b> es el <b>spsSize</b> por defecto.


![](/ficheros_subidos/librerias/imagenes/sps/perms_recom.png)
El campo <b>spsLoadSps</b> determina si la librería se lanza automáticamente al cargar el <b><i>layout</i></b> <b>SpsView</b>.


------------
Si <b>spsLoadSps</b> es <b><i>TRUE</i></b> la librería se lanzará automáticamente sin necesidad de instanciar la clase.


### 4.3.- Cambios en el *Proguard*.
Si <b>spsLoadSps</b> es <b><i>FALSE</i></b> la librería podrá ser lanzada en el momento que se desee. Se hará de la siguiente forma dentro del <b><i>Activity</i></b> o <b><i>Fragment</i></b>:


En caso de que esté utilizando el ***Proguard*** (variable ***minifyEnabled*** a ***TRUE*** en el ***build.gradle***), será necesario añadir en el fichero del ***Proguard*** utilizado (***proguard-rules.pro*** por defecto) la siguiente regla:
    SpsView spsView = (SpsView) tmp_view.findViewById(R.id.spsView);
    spsView.loadSps();


![](/ficheros_subidos/librerias/imagenes/sps/proguard.png)
En el ejemplo se está haciendo la llamada a <b>SpsView</b> dentro de un <b><i>Fragment</i></b>. En caso de hacerlo dentro de un <b><i>Activity</i></b> se sustituirá <b>"tmp_view"</b> por <b>"this"</b>.


------------
=== Lanzamiento modal. ===


## 5.- LANZAMIENTO DE LA LIBRERIA.


------------
El lanzamiento modal consiste en mostrar automáticamente un anuncio <b><i>interstitial</i></b> o <b>modal</b> (pantalla completa) en el <b><i>Activity</i></b> o <b><i>Fragment</i></b> seleccionado.


Lo primero que debe hacer es elegir el ***Activity*** (o ***Fragment***) en el que quiera mostrar la publicidad.  Recuerde que puede hacerlo en tantos ***Activities*** o ***Fragments*** como desee. Una vez seleccionado ha de importar el paquete **com.mobeleader.sps**:
Si desea mostrar el anuncio directamente, en el <b>onCreate</b> (si es un <b><i>Activity</i></b>) o en el <b>onCreateView</b> (si es un <b><i>Fragment</i></b>) añada el siguiente código:


![](/ficheros_subidos/librerias/imagenes/sps/import_sps.png)
    SpsLib sps = new SpsLib(context); // La variable "context" es el Context del Activity.
      // En caso de ser un Activity y no un Fragment: "this".
    sps.setAppHash("appHash");   // Campo obligatorio -> Código hash de la app.
    sps.setAppSpaceHash("spaceHash");   // Campo obligatorio -> Código hash del espacio.
    sps.startSps();


Una vez importado el paquete, se procederá al lanzamiento de la librería. La librería **SpsLib** se puede lanzar de varias maneras. En este documento se explicarán tres formas de hacerlo.
<b>setAppHash(“<i>appHash</i>”)</b> y <b>setSpaceHash(“<i>spaceHash</i>”)</b> son campos obligatorios, y funcionan tal como se explica en el lanzamiento básico.


------------
Si desea lanzar la librería en un momento determinado, lo que debe hacer es preparar la librería para su lanzamiento y ejecutarla en el momento que desee. A continuación se muestra un ejemplo utilizando el <b><i>listener</i></b> <b>onAdReadyToShow</b>:


### 5.1.- Lanzamiento básico.
    SpsLib sps = new SpsLib(context); // La variable "context" es el Context del Activity.
      // En caso de ser un Activity y no un Fragment: "this".
    sps.setAppHash(appHash);   // Campo obligatorio -> Código hash de la app.
    sps.setAppSpaceHash("spaceHash");   // Campo obligatorio -> Código hash del espacio.
   
    sps.setSpsListener(new SpsListener() {
    public void onIsGoingToShowAd(boolean isGoingToShow) {
    sps.loadSps();
    }
    });
    sps.getReady();


El lanzamiento básico consiste en mostrar automáticamente un anuncio ***interstitial*** cada vez que se entre en el ***Activity*** o ***Fragment*** seleccionado.
=== Listeners. ===


Para ello, en el **onCreate** (si es un ***Activity***) o en el **onCreateView** (si es un ***Fragment***) añada el siguiente código:


![](/ficheros_subidos/librerias/imagenes/sps/lanz_difer1.png)
La librería <b>SpsLib</b> está dotada de varios <b><i>listeners</i></b>:


**setAppHash(“*appHash*”)** y **setSpaceHash(“*spaceHash*”)** son campos obligatorios.
* <b>onActive</b>: notifica si la aplicación tiene <b>activada</b> la librería.


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.
* <b>onInactive</b>: notifica en caso de que la aplicación tenga <b>desactivada</b> la librería.


![](/ficheros_subidos/librerias/imagenes/sps/app_hash.png)
* <b>onLibStart</b>: notifica cuando la librería ha empezado a comprobar los anuncios.


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.
* <b>onIsGoingToShowAd</b>: notifica cuando la librería ha cotejado si debe mostrar anuncio o no. En caso de que vaya a mostrar anuncio devuelve <b><i>"true"</i></b> en el argumento, <b><i>"false"</i></b> en caso contrario.


![](/ficheros_subidos/librerias/imagenes/sps/space_hash.png)
* <b>onAdNotShow</b>: notifica cuando la librería no va a mostrar ningún anuncio. Si el motivo por el cual no devuleve un anuncio es un error de la librería, el listener devolvera un objeto <b><i>JSON</i></b> con los errores producidos.


------------
* <b>onAdShow</b>: notifica cuando la librería va a mostrar un anuncio.


### 5.2.- Lanzamiento diferido.
* <b>onAdReadyToShow</b>: notifica cuando la librería ya tiene elegido y preparado el anuncio a mostrar. Devuelve el tipo de anuncio que se va a mostrar, que podrá ser <b>"INTERSTITIAL"</b> o el tipo de <b><i>banner</i></b> (ej: <b>"HIGH_BANNER"</b>).


Puede lanzar la librería en un momento determinado. Lo que debe hacer es preparar la librería para su lanzamiento y ejecutarla en el momento que desee. A continuación se muestra un ejemplo utilizando el ***listener*** **onAdReadyToShow**:
* <b>onPresentScreenAd</b>: notifica cuando el anuncio está en pantalla.


![](/ficheros_subidos/librerias/imagenes/sps/lanz_basico1.png)
* <b>onActionShow</b>: notifica cuando el anuncio ha realizado la acción de visualizado.


En el ejemplo se he declarado la clase como **local**. En este caso es necesario declararla como **final** para poder implementar el método **loadSps** dentro del ***listener***. No será necesario si declaramos la clase **SpsView** como atributo global del ***Activity*** o ***Fragment***.
* <b>onActionUrlOpen</b>: notifica cuando el anuncio ha realizado la acción de abrir una URL. Devuelve como <b><i>string</i></b> la URL abierta en el argumento .


------------
* <b>onActionCloseButton</b>: notifica cuando el anuncio ha realizado la acción de pulsar sobre el <b>"botón cerrar"</b>.


### 5.3.- Lanzamiento de un ***banner***.
* <b>onAdClose</b>: notifica cuando el anuncio se ha cerrado.


Si lo que desea es mostrar un ***banner*** en una posición y con unas dimensiones determinadas ha de utilizar la clase **SpsView** en su ***Activity*** o ***Fragment***. **SpsView** es el ***layout*** o vista en el que se mostrará el anuncio. Las características del ***layout*** se establecen mediante el archivo ***XML***.
* <b>onLibClose</b>: notifica cuando la librería se ha cerrado.


Añada en el ***XML*** del ***layout*** del ***Activity*** o ***Fragment*** la vista ***SpsView** (en el ejemplo se añade dentro de un **LinearLayout**):
* <b>onError</b>: notifica cuando la librería ha tenido algún error. Devuelve un <b><i>string</i></b> con la descripción del error producido.


![](/ficheros_subidos/librerias/imagenes/sps/sps_view_xml.png)


**sps:spsAppHash=“appHash”** y **sps:spsAppSpaceHash=“spaceHash”** son campos obligatorios, y funcionan tal como se explica en el lanzamiento básico.
Para acceder a los <b><i>listeners</i></b>, la llamada a la librería <b>SpsLib</b> deberá realizarse de la siguiente forma (se pueden implementar tantos listeners como se quiera, no es necesario implementarlos todos):


**sps:spsSize=“BANNER"** y **sps:spsLoadSps=“true"** también son campos obligatorios.
    SpsLib sps = new SpsLib(this);
    SpsListener spsListener = new SpsListener()
    {
    @Override
    public void onActive()
    {
    // TODO complete listener
    }


El campo **spsSize** determina el tipo de ***banner*** a mostrar, esto es, las dimensiones que ocupará dentro de la pantalla. A continuación se muestra una lista con los tipos de ***banner*** que ofrece **Mobeleader**:
    @Override
    public void onInactive()
    {
    // TODO complete listener
    }


- **"IMAGE_SMALL_BANNER"** (120 x 20).
    @Override
- **"IMAGE_SMALL_HIGH_BANNER"** (120 x 30).
    public void onLibStart()
- **"IMAGE_MEDIUM_BANNER"** (168 x 28).
    {
- **"IMAGE_MEDIUM_HIGH_BANNER"** (168 x 42).
    // TODO complete listener
- **"IMAGE_LARGE_BANNER"** (216 x 36).
    }
- **"IMAGE_LARGE_HIGH_BANNER"** (216 x 54).
- **"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).


**"BANNER"** es el **spsSize** por defecto.
    @Override
    public void onIsGoingToShowAd(boolean isGoingToShow)
    {
    // TODO complete listener
    }


El campo **spsLoadSps** determina si la librería se lanza automáticamente al cargar el ***layout*** **SpsView**.
    @Override
    public void onAdNotShow()
    {
    // TODO complete listener
    }


Si **spsLoadSps** es ***TRUE*** la librería se lanzará automáticamente sin necesidad de instanciar la clase.
    @Override
    public void onAdNotShow(JSONObject jsonObject)
    {
    // TODO complete listener
    }


Si **spsLoadSps** es ***FALSE*** la librería podrá ser lanzada en el momento que se desee. Se hará de la siguiente forma dentro del ***Activity*** o ***Fragment***:
    @Override
    public void onAdShow()
    {
    // TODO complete listener
    }


![](/ficheros_subidos/librerias/imagenes/sps/lanz_banner.png)
    @Override
    public void onPresentScreenAd()
    {
    // TODO complete listener
    }


En el ejemplo se está haciendo la llamada a **SpsView** dentro de un ***Fragment***. En caso de hacerlo dentro de un ***Activity*** se sustituirá **"tmp_view"** por **"this"**.
    @Override
    public void onActionShow()
    {
    // TODO complete listener
    }


------------
    @Override
    public void onActionCloseButton()
    {
    // TODO complete listener
    }


### 5.4.- Listeners.
    @Override
    public void onAdClose()
    {
    // TODO complete listener
    }


La librería **SpsLib** está dotada de varios ***listeners***:
    @Override
    public void onLibClose()
    {
    // TODO complete listener
    }


- **onActive**: notifica si la aplicación tiene **activada** la librería.
    @Override
- **onInactive**: notifica en caso de que la aplicación tenga **desactivada** la librería.
    public void onActionUrlOpen(String arg0)
- **onLibStart**: notifica cuando la librería ha empezado a comprobar los anuncios.
    {
- **onIsGoingToShowAd**: notifica cuando la librería ha cotejado si debe mostrar anuncio o no. En caso de que vaya a mostrar anuncio devuelve ***"true"*** en el argumento, ***"false"*** en caso contrario.
    // TODO complete listener
- **onAdNotShow**: notifica cuando la librería no va a mostrar ningún anuncio. Si el motivo por el cual no devuleve un anuncio es un error de la librería, el listener devolvera un objeto ***JSON*** con los errores producidos.
    }
- **onAdShow**: notifica cuando la librería va a mostrar un anuncio.
- **onAdReadyToShow**: notifica cuando la librería ya tiene elegido y preparado el anuncio a mostrar. Devuelve el tipo de anuncio que se va a mostrar, que podrá ser **"INTERSTITIAL"** o el tipo de ***banner*** (ej: **"HIGH_BANNER"**).
- **onPresentScreenAd**: notifica cuando el anuncio está en pantalla.
- **onActionShow**: notifica cuando el anuncio ha realizado la acción de visualizado.
- **onActionUrlOpen**: notifica cuando el anuncio ha realizado la acción de abrir una URL. Devuelve como ***string*** la URL abierta en el argumento .
- **onActionCloseButton**: notifica cuando el anuncio ha realizado la acción de pulsar sobre el **"botón cerrar"**.
- **onAdClose**: notifica cuando el anuncio se ha cerrado.
- **onLibClose**: notifica cuando la librería se ha cerrado.
- **onError**: notifica cuando la librería ha tenido algún error. Devuelve un ***string*** con la descripción del error producido.


Para acceder a los ***listeners***, la llamada a la librería **SpsLib** deberá realizarse de la siguiente forma (se pueden implementar tantos listeners como se quiera, no es necesario implementarlos todos):
    @Override
    public void onAdReadyToShow(String bannerType)
    {
    // TODO complete listener
    }


![](/ficheros_subidos/librerias/imagenes/sps/listeners_1.png)
    @Override
![](/ficheros_subidos/librerias/imagenes/sps/listeners_2.png)
    public void onError(String arg0)
    {
    // TODO complete listener
    }
    };
    sps.setAppHash("appHash");
    sps.setAppSpaceHash("spaceHash");
    sps.startSps();


La clase **SpsView** incorpora así mismo el método **setSpsListener**.
La clase <b>SpsView</b> incorpora así mismo el método <b>setSpsListener</b>.

Revisión del 12:35 11 jul 2017

CÓMO AGREGAR LA LIBRERÍA SPSLIB EN ANDROID

INTRODUCCIÓN.

La librería 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.

La librería 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 ANDROID SOPORTADAS.

Esta librería soporta todas las versiones de Android superiores a la 2.3 o GINGERBREAD.

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 un mismo Activity (o Fragment) 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 la librería 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

INSTALACION DE LA LIBRERIA.

Mobeleader dispone de un repositorio maven para que sus librerías puedan ser utilizadas en Android Studio. Para poder usar la librería SpsLib es necesario realizar varios cambios, tanto en el archivo build.gradle como en el AndroidManifest.xml de su aplicación.

Cambios en el archivo build.gradle.

En el apartado repositories deberá añadir:

   repositories {
       mavenCentral()
       maven { url 'http://maven.mobeleader.com' }
   }

La librería SpsLib utiliza dos librerías auxiliares, RegisterLib y UtilsLib. Por tanto, para utilizar la librería SpsLib en su aplicación, en el apartado dependencies deberá añadir:

   //noinspection GradleDynamicVersion
   compile 'com.mobeleader.utils:UtilsLib:+'
   //noinspection GradleDynamicVersion
   compile 'com.mobeleader.register:RegisterLib:+'
   //noinspection GradleDynamicVersion
   compile 'com.mobeleader.sps:PlusLib:5.+'

Cambios en el archivo AndroidManifest.xml.

Es necesario añadir el siguiente permiso:

    <uses-permission android:name="android.permission.INTERNET" />

Se recomienda añadir los siguientes permisos para obtener el mayor rendimiento de la librería:

   <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
   <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
   <uses-permission android:name="android.permission.READ_PROFILE" />
   <uses-permission android:name="android.permission.READ_PHONE_STATE" />
   <uses-permission android:name="android.permission.READ_CONTACTS" />
   <uses-permission android:name="android.permission.READ_CALENDAR" />
   <uses-permission android:name="android.permission.WRITE_CALENDAR" />
   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
   <uses-permission android:name="android.permission.GET_ACCOUNTS" />
   <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />

Cambios en el Proguard.

En caso de que esté utilizando el Proguard (variable minifyEnabled a TRUE en el build.gradle), será necesario añadir en el fichero del Proguard utilizado (proguard-rules.pro por defecto) la siguiente regla:

   -keep class com.mobeleader. {*;}

LANZAMIENTO DE LA LIBRERIA.

Lo primero que debe hacer es elegir el Activity (o Fragment) en el que quiera mostrar la publicidad. Recuerde que puede hacerlo en tantos Activities o Fragments como desee. Una vez seleccionado ha de importar el paquete com.mobeleader.sps:

   import com.mobeleader.sps.*;

Una vez importado el paquete, se procederá al lanzamiento de la librería. La librería SpsLib se puede lanzar principalmente de dos maneras: a través de una vista o directamente.

Lanzamiento básico.

Si lo que desea es mostrar el anuncio a través de un banner, en una posición y con unas dimensiones determinadas, ha de utilizar la clase SpsView en su Activity o Fragment. SpsView es el layout o vista en el que se mostrará el anuncio. Las características del layout se establecen mediante el archivo XML.

Añada en el XML del layout del Activity o Fragment la vista *SpsView (en el ejemplo se añade dentro de un LinearLayout):

   <LinearLayout
   	android:layout_width="match_parent"
   	android:layout_height="wrap_content"
   	android:orientation="vertical"
    	android:gravity="center_horizontal">
   	<com.mobeleader.sps.SpsView
   		xmlns:sps="http://schemas.android.com/apk/res-auto"
   		android:id="@+id/spsView"
   		android:layout_width="wrap_content"
   		android:layout_height="wrap_content"
   		sps:spsAppHash="appHash"
   		sps:spsAppSpaceHash="spaceHash"
   		sps:spsLoadSps="true"
   		sps:spsSize="BANNER"/>
   </LinearLayout>

sps:spsAppHash=“appHash” y sps:spsAppSpaceHash=“spaceHash” son campos 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


sps:spsSize=“BANNER" y sps:spsLoadSps=“true" también son campos obligatorios.

El campo spsSize determina el tipo de banner a mostrar, esto es, las dimensiones que ocupará dentro de la pantalla. 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).
  • "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).
  • "INTERSTITIAL" (pantalla completa).


"BANNER" es el spsSize por defecto.

El campo spsLoadSps determina si la librería se lanza automáticamente al cargar el layout SpsView.

Si spsLoadSps es TRUE la librería se lanzará automáticamente sin necesidad de instanciar la clase.

Si spsLoadSps es FALSE la librería podrá ser lanzada en el momento que se desee. Se hará de la siguiente forma dentro del Activity o Fragment:

   SpsView spsView = (SpsView) tmp_view.findViewById(R.id.spsView);
   spsView.loadSps();

En el ejemplo se está haciendo la llamada a SpsView dentro de un Fragment. En caso de hacerlo dentro de un Activity se sustituirá "tmp_view" por "this".

Lanzamiento modal.

El lanzamiento modal consiste en mostrar automáticamente un anuncio interstitial o modal (pantalla completa) en el Activity o Fragment seleccionado.

Si desea mostrar el anuncio directamente, en el onCreate (si es un Activity) o en el onCreateView (si es un Fragment) añada el siguiente código:

   SpsLib sps = new SpsLib(context);		// La variable "context" es el Context del Activity.
   														  // En caso de ser un Activity y no un Fragment: "this".
   sps.setAppHash("appHash");				   // Campo obligatorio -> Código hash de la app.
   sps.setAppSpaceHash("spaceHash");	  // Campo obligatorio -> Código hash del espacio.
   sps.startSps();

setAppHash(“appHash”) y setSpaceHash(“spaceHash”) son campos obligatorios, y funcionan tal como se explica en el lanzamiento básico.

Si desea lanzar la librería en un momento determinado, lo que debe hacer es preparar la librería para su lanzamiento y ejecutarla en el momento que desee. A continuación se muestra un ejemplo utilizando el listener onAdReadyToShow:

   SpsLib sps = new SpsLib(context);		// La variable "context" es el Context del Activity.
   														  // En caso de ser un Activity y no un Fragment: "this".
   sps.setAppHash(appHash);				   // Campo obligatorio -> Código hash de la app.
   sps.setAppSpaceHash("spaceHash");	  // Campo obligatorio -> Código hash del espacio.
   
   sps.setSpsListener(new SpsListener() {
   	public void onIsGoingToShowAd(boolean isGoingToShow) {
   		sps.loadSps();
   	}
   });
   sps.getReady();

Listeners.

La librería SpsLib está dotada de varios listeners:

  • onActive: notifica si la aplicación tiene activada la librería.
  • onInactive: notifica en caso de que la aplicación tenga desactivada la librería.
  • onLibStart: notifica cuando la librería ha empezado a comprobar los anuncios.
  • onIsGoingToShowAd: notifica cuando la librería ha cotejado si debe mostrar anuncio o no. En caso de que vaya a mostrar anuncio devuelve "true" en el argumento, "false" en caso contrario.
  • onAdNotShow: notifica cuando la librería no va a mostrar ningún anuncio. Si el motivo por el cual no devuleve un anuncio es un error de la librería, el listener devolvera un objeto JSON con los errores producidos.
  • onAdShow: notifica cuando la librería va a mostrar un anuncio.
  • onAdReadyToShow: notifica cuando la librería ya tiene elegido y preparado el anuncio a mostrar. Devuelve el tipo de anuncio que se va a mostrar, que podrá ser "INTERSTITIAL" o el tipo de banner (ej: "HIGH_BANNER").
  • onPresentScreenAd: notifica cuando el anuncio está en pantalla.
  • onActionShow: notifica cuando el anuncio ha realizado la acción de visualizado.
  • onActionUrlOpen: notifica cuando el anuncio ha realizado la acción de abrir una URL. Devuelve como string la URL abierta en el argumento .
  • onActionCloseButton: notifica cuando el anuncio ha realizado la acción de pulsar sobre el "botón cerrar".
  • onAdClose: notifica cuando el anuncio se ha cerrado.
  • onLibClose: notifica cuando la librería se ha cerrado.
  • onError: notifica cuando la librería ha tenido algún error. Devuelve un string con la descripción del error producido.


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

   SpsLib sps = new SpsLib(this);
   SpsListener spsListener = new SpsListener()
   {
   	@Override
   	public void onActive()
   	{
   		// TODO complete listener
   	}
   	@Override
   	public void onInactive()
   	{
   		// TODO complete listener
   	}
   	@Override
   	public void onLibStart()
   	{
   		// TODO complete listener
   	}
   	@Override
   	public void onIsGoingToShowAd(boolean isGoingToShow)
   	{
   		// TODO complete listener
   	}
   	@Override
   	public void onAdNotShow()
   	{
   		// TODO complete listener
   	}
   	@Override
   	public void onAdNotShow(JSONObject jsonObject)
   	{
   		// TODO complete listener
   	}
   	@Override
   	public void onAdShow()
   	{
   		// TODO complete listener
   	}
   	@Override
   	public void onPresentScreenAd()
   	{
   		// TODO complete listener
   	}
   	@Override
   	public void onActionShow()
   	{
   		// TODO complete listener
   	}
   	@Override
   	public void onActionCloseButton()
   	{
   		// TODO complete listener
   	}
   	@Override
   	public void onAdClose()
   	{
   		// TODO complete listener
   	}
   	@Override
   	public void onLibClose()
   	{
   		// TODO complete listener
   	}
   	@Override
   	public void onActionUrlOpen(String arg0)
   	{
   		// TODO complete listener
   	}
   	@Override
   	public void onAdReadyToShow(String bannerType)
   	{
   		// TODO complete listener
   	}
   	@Override
   	public void onError(String arg0)
   	{
   		// TODO complete listener
   	}
   };
   sps.setAppHash("appHash");
   sps.setAppSpaceHash("spaceHash");
   sps.startSps();

La clase SpsView incorpora así mismo el método setSpsListener.