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
 
(No se muestran 11 ediciones intermedias de 3 usuarios)
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.


**2.-** Versiones de Android Soportadas.
La librería <b>SpsLib</b> se encarga de servir y controlar los anuncios a mostrar y la forma de mostrarlos.


**3.-** Espacios.
<b>SpsLib</b> realiza una petición a nuestro servidor en busca de anuncios que mostrar, y éste devuelve el anuncio más adecuado en función de dicha petición.


**4.-** Instalación de la librería.
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.


**5.-** Lanzamiento de la librería.
== VERSIONES DE ANDROID SOPORTADAS. ==


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


## 1.- INTRODUCCIÓN.
Esta librería soporta todas las versiones de <b>Android</b> superiores a la version <b>4.0</b> (API level  <b>14</b> y nombre en código <b><i>Ice Cream Sandwich</i></b>).


------------
== ESPACIOS. ==


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.
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.


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 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.


## 2.- VERSIONES DE ANDROID SOPORTADAS.
=== Creación de un espacio. ===


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


Esta librería soporta todas las versiones de **Android** superiores a la **2.3** o ***GINGERBREAD***.
{{:SDKs:SPS:creacion_espacio}}


------------
=== Configuración del espacio. ===


## 3.- ESPACIOS.


------------
==== Configuración RTB del espacio. ====


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.
{{:SDKs:SPS:configuracion_espacio}}


Para que la librería **SpsLib** pueda mostrar un anuncio habrá que crear y configurar previamente el espacio con las características deseadas.
==== Configuración de los <i>cappings</i>. ====


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


### 3.1.- Creación de un espacio.
{{:SDKs:SPS:configuracion_cappings}}


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).
== INSTALACION DE LA LIBRERIA. ==


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


![](/ficheros_subidos/librerias/imagenes/sps/anadir_espacio_apps.png)
=== Cambios en el archivo <i>build.gradle</i>. ===


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).


![](/ficheros_subidos/librerias/imagenes/sps/boton_crear_espacio.png)
En el apartado <b><i>repositories</i></b> deberá añadir:


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"**.
    repositories {
        mavenCentral()
        maven { url 'https://maven.mobeleader.com' }
    }


![](/ficheros_subidos/librerias/imagenes/sps/formu_crear_espacio.png)
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:


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


### 3.2.- Configuración del espacio.
=== Cambios en el archivo <i>AndroidManifest.xml</i>. ===


#### 3.2.1.- Configuración RTB del espacio.


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.
Es necesario añadir el siguiente permiso:


![](/ficheros_subidos/librerias/imagenes/sps/boton_espacios_RTB.png)
    <uses-permission android:name="android.permission.INTERNET" />


Rellene los campos del formulario y pulse **"Añadir Configuración"**.
Se recomienda añadir los siguientes permisos para obtener el mayor rendimiento de la librería:


![](/ficheros_subidos/librerias/imagenes/sps/formu_conf_RTB.png)
    <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" />


A continuación aparecerá el espacio con su configuración en el **"Listado de espacios configurados"**.
=== Cambios en el <i>Proguard</i>. ===


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


Desde la sección [Mis Espacios](http://panel.mobeleader.com/index.php?sec=34) pulse **"Gestionar Cappigs"**.
    -keep class com.mobeleader.<i></i> {*;}


![](/ficheros_subidos/librerias/imagenes/sps/boton_gest_cappings.png)
== LANZAMIENTO DE LA LIBRERIA. ==


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


![](/ficheros_subidos/librerias/imagenes/sps/formu_gest_cappings.png)
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. Importe el paquete <b>com.mobeleader.sps</b>:


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"**.
    import com.mobeleader.sps.*;


Si los cappings están configurados correctamente pulse el botón **"Configurar estos cappings"** para que el sistema los reconozca.
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/config_cappings.png)
=== Lanzamiento básico. ===


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


## 4.- INSTALACION DE LA LIBRERIA.
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>.


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


**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.
    <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>


------------
<b>sps:spsAppHash=“appHash”</b> y <b>sps:spsAppSpaceHash=“spaceHash”</b> son campos obligatorios.


### 4.1.- Cambios en el archivo *build.gradle*.
En el campo <b><i>appHash</i></b> ha de introducir el <b>código hash</b> de su aplicación, generado al registrarla en nuestro panel. Lo puede obtener en la sección [http://panel.mobeleader.com/index.php?sec=6 Mis Aplicaciones], pulsando el icono de la columna <b>"Hash"</b> de su aplicación.
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/app_hash.png


En el apartado ***repositories*** deberá añadir:


![](/ficheros_subidos/librerias/imagenes/sps/repository.png)
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 nuestro panel. Lo puede obtener en la sección [http://panel.mobeleader.com/index.php?sec=34 Mis Espacios], pulsando el icono de la columna <b>"Hash"</b> de su espacio.
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/space_hash.png


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:


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


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


### 4.2.- Cambios en el archivo *AndroidManifest.xml*.
* <b>"IMAGE_SMALL_BANNER"</b> (120 x 20).


Es necesario añadir el siguiente permiso:
* <b>"IMAGE_SMALL_HIGH_BANNER"</b> (120 x 30).
 
* <b>"IMAGE_MEDIUM_BANNER"</b> (168 x 28).


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


Se recomienda añadir los siguientes permisos para obtener el mayor rendimiento de la librería:
* <b>"IMAGE_LARGE_BANNER"</b> (216 x 36).


![](/ficheros_subidos/librerias/imagenes/sps/perms_recom.png)
* <b>"IMAGE_LARGE_HIGH_BANNER"</b> (216 x 54).


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


### 4.3.- Cambios en el *Proguard*.
* <b>"MOBILE_POP_UP"</b> (300 x 250).


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:
* <b>"TABLET_FILM_STRIP"</b> (300 x 600).


![](/ficheros_subidos/librerias/imagenes/sps/proguard.png)
* <b>"BANNER"</b> (320 x 50).


------------
* <b>"SQUARE_BANNER"</b> (320 x 320).


## 5.- LANZAMIENTO DE LA LIBRERIA.
* <b>"MOBILE_LARGE_BANNER"</b> (320 x 300).


------------
* <b>"MOBILE_LARGE_POP_UP"</b> (320 x 350).


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**:
* <b>"TABLET_LARGE_BANNER"</b> (320 x 480).


![](/ficheros_subidos/librerias/imagenes/sps/import_sps.png)
* <b>"TABLET_BANNER"</b> (480 x 80).


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>"TABLET_POP_UP"</b> (550 x 480).


------------
* <b>"INTERSTITIAL"</b> (pantalla completa).


### 5.1.- Lanzamiento básico.


El lanzamiento básico consiste en mostrar automáticamente un anuncio ***interstitial*** cada vez que se entre en el ***Activity*** o ***Fragment*** seleccionado.
<b>"BANNER"</b> es el <b>spsSize</b> por defecto.


Para ello, en el **onCreate** (si es un ***Activity***) o en el **onCreateView** (si es un ***Fragment***) añada el siguiente código:
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>.


![](/ficheros_subidos/librerias/imagenes/sps/lanz_difer1.png)
Si <b>spsLoadSps</b> es <b><i>TRUE</i></b> la librería se lanzará automáticamente sin necesidad de instanciar la clase.


**setAppHash(“*appHash*”)** y **setSpaceHash(“*spaceHash*”)** son campos obligatorios.
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 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.
    SpsView spsView = (SpsView) tmp_view.findViewById(R.id.spsView);
    spsView.loadSps();


![](/ficheros_subidos/librerias/imagenes/sps/app_hash.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>.


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.
=== Lanzamiento modal. ===


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


------------
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.


### 5.2.- Lanzamiento diferido.
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:


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**:
    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();


![](/ficheros_subidos/librerias/imagenes/sps/lanz_basico1.png)
<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.


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***.
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>:


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


### 5.3.- Lanzamiento de un ***banner***.
=== Listeners. ===


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***.


Añada en el ***XML*** del ***layout*** del ***Activity*** o ***Fragment*** la vista ***SpsView** (en el ejemplo se añade dentro de un **LinearLayout**):
La librería <b>SpsLib</b> está dotada de varios <b><i>listeners</i></b>:


![](/ficheros_subidos/librerias/imagenes/sps/sps_view_xml.png)
* <b>onActive</b>: notifica si la aplicación tiene <b>activada</b> la librería.


**sps:spsAppHash=“appHash”** y **sps:spsAppSpaceHash=“spaceHash”** son campos obligatorios, y funcionan tal como se explica en el lanzamiento básico.
* <b>onInactive</b>: notifica en caso de que la aplicación tenga <b>desactivada</b> la librería.


**sps:spsSize=“BANNER"** y **sps:spsLoadSps=“true"** también son campos obligatorios.
* <b>onLibStart</b>: notifica cuando la librería ha empezado a comprobar los anuncios.


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**:
* <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.


- **"IMAGE_SMALL_BANNER"** (120 x 20).
* <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.
- **"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).


**"BANNER"** es el **spsSize** por defecto.
* <b>onAdShow</b>: notifica cuando la librería va a mostrar un anuncio.


El campo **spsLoadSps** determina si la librería se lanza automáticamente al cargar el ***layout*** **SpsView**.
* <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>).


Si **spsLoadSps** es ***TRUE*** la librería se lanzará automáticamente sin necesidad de instanciar la clase.
* <b>onPresentScreenAd</b>: notifica cuando el anuncio está en pantalla.


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***:
* <b>onActionShow</b>: notifica cuando el anuncio ha realizado la acción de visualizado.


![](/ficheros_subidos/librerias/imagenes/sps/lanz_banner.png)
* <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 .


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


------------
* <b>onAdClose</b>: notifica cuando el anuncio se ha cerrado.


### 5.4.- Listeners.
* <b>onLibClose</b>: notifica cuando la librería se ha cerrado.


La librería **SpsLib** está dotada de varios ***listeners***:
* <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.


- **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):
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):


![](/ficheros_subidos/librerias/imagenes/sps/listeners_1.png)
    SpsLib sps = new SpsLib(this);
![](/ficheros_subidos/librerias/imagenes/sps/listeners_2.png)
    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**.
La clase <b>SpsView</b> incorpora así mismo el método <b>setSpsListener</b>.

Revisión actual - 16:55 25 nov 2019

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 a nuestro servidor 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 version 4.0 (API level 14 y nombre en código Ice Cream Sandwich).

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 nuestro panel. Podemos hacerlo bien desde la sección Mis Aplicaciones o bien desde la sección Mis Espacios.

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, elija aquella aplicación de la lista a la que quiera agregar un espacio. En la columna RTB pulse el icono de Crear Espacio.

anadir_espacio_apps.png

Si se encuentra en la sección Mis Espacios, pulse directamente el botón Crear Espacio.

boton_crear_espacio.png

Una vez en la sección Crear Espacio, 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 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 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.

Disponemos 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 'https://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. Importe 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 registrarla en nuestro panel. Lo puede obtener en la sección Mis Aplicaciones, 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 nuestro panel. Lo puede obtener en la sección Mis Espacios, 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 ofrecemos:

  • "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.