<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://wiki.mobeleader.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Deneb</id>
	<title>mobeleader - Contribuciones del usuario [es]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mobeleader.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Deneb"/>
	<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Especial:Contribuciones/Deneb"/>
	<updated>2026-06-14T00:48:34Z</updated>
	<subtitle>Contribuciones del usuario</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=SDKs:Push:configurar_android&amp;diff=3027</id>
		<title>SDKs:Push:configurar android</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=SDKs:Push:configurar_android&amp;diff=3027"/>
		<updated>2019-12-05T15:18:01Z</updated>

		<summary type="html">&lt;p&gt;Deneb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Seleccionamos nuestra aplicación y añadimos el &amp;lt;b&amp;gt;token&amp;lt;/b&amp;gt; de la &amp;lt;b&amp;gt;Clave de servidor&amp;lt;/b&amp;gt; proporcionado por &amp;lt;b&amp;gt;Google&amp;lt;/b&amp;gt; en la consola de &amp;lt;b&amp;gt;Firebase&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/panel_4.png&lt;br /&gt;
&lt;br /&gt;
Una vez añadida la app, procederemos a configurar nuestro proyecto en &amp;lt;b&amp;gt;Android Studio&amp;lt;/b&amp;gt; antes de comenzar con las notificaciones.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/panel_5.png&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=SDKs:Push:configurar_android&amp;diff=3026</id>
		<title>SDKs:Push:configurar android</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=SDKs:Push:configurar_android&amp;diff=3026"/>
		<updated>2019-12-05T15:17:43Z</updated>

		<summary type="html">&lt;p&gt;Deneb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Seleccionamos nuestra aplicación y añadimos el &amp;lt;b&amp;gt;token&amp;lt;/b&amp;gt; de la &amp;lt;b&amp;gt;Clave de servidor&amp;lt;/b&amp;gt; proporcionado por &amp;lt;b&amp;gt;Google&amp;lt;/b&amp;gt; en la consola de &amp;lt;b&amp;gt;Firebase&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/panel_4.png&lt;br /&gt;
&lt;br /&gt;
Una vez añadida la app, procederemos a configurar nuestro proyecto en Android Studio antes de comenzar con las notificaciones.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/panel_5.png&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=SDKs:Push:configurar_android&amp;diff=3025</id>
		<title>SDKs:Push:configurar android</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=SDKs:Push:configurar_android&amp;diff=3025"/>
		<updated>2019-12-05T11:52:53Z</updated>

		<summary type="html">&lt;p&gt;Deneb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Seleccionamos nuestra aplicación y añadimos el ***token*** de la **Clave de servidor*** proporcionado por **Google** en la consola de **Firebase**.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/panel_4.png&lt;br /&gt;
&lt;br /&gt;
Una vez añadida la app, procederemos a configurar nuestro proyecto en Android Studio antes de comenzar con las notificaciones.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/panel_5.png&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=SDKs:Push:pasos_panel&amp;diff=3024</id>
		<title>SDKs:Push:pasos panel</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=SDKs:Push:pasos_panel&amp;diff=3024"/>
		<updated>2019-12-05T11:48:41Z</updated>

		<summary type="html">&lt;p&gt;Deneb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Para poder configurar las notificaciones Push en una aplicación, debemos de haberla añadido previamente a nuestro panel. Si aún no la tenemos creada, lo haremos desde la sección [http://panel.mobeleader.com/index.php?sec=6 &#039;&#039;&#039;Mis Aplicaciones&#039;&#039;&#039;] del panel, pulsando en &#039;&#039;&#039;Crear Aplicación&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/panel_1.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Rellenamos los datos necesarios y enviamos el formulario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/panel_2.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez creada la aplicación, iremos a la sección [http://panel.mobeleader.com/index.php?sec=6 &#039;&#039;&#039;Mis Aplicaciones&#039;&#039;&#039;] del panel y pulsaremos [http://panel.mobeleader.com/index.php?sec=6 &#039;&#039;&#039;Añadir app a push&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/panel_3.png&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=SDKs:Push:pasos_panel&amp;diff=3023</id>
		<title>SDKs:Push:pasos panel</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=SDKs:Push:pasos_panel&amp;diff=3023"/>
		<updated>2019-12-05T11:44:26Z</updated>

		<summary type="html">&lt;p&gt;Deneb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Para poder configurar las notificaciones Push en una aplicación, debemos de haberla añadido previamente a nuestro panel. Si aún no la tenemos creada, lo haremos desde la sección [http://panel.mobeleader.com/index.php?sec=6 &#039;&#039;&#039;Mis Aplicaciones&#039;&#039;&#039;] del panel, pulsando en &#039;&#039;&#039;Crear Aplicación&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/panel_1.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Rellenamos los datos necesarios y enviamos el formulario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/panel_2.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez creada la aplicación, iremos a la sección [http://panel.mobeleader.com/index.php?sec=6 &#039;&#039;&#039;Mis Aplicaciones&#039;&#039;&#039;] del panel y pulsaremos &#039;&#039;&#039;Añadir app a push&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/panel_3.png&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=SDKs:Push:pasos_panel&amp;diff=3022</id>
		<title>SDKs:Push:pasos panel</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=SDKs:Push:pasos_panel&amp;diff=3022"/>
		<updated>2019-12-05T11:39:59Z</updated>

		<summary type="html">&lt;p&gt;Deneb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Para poder configurar las notificaciones Push en una aplicación, debemos de haberla añadido previamente a nuestro panel. Si aún no la tenemos creada, lo haremos desde la sección [http://panel.mobeleader.com/index.php?sec=6 &#039;&#039;&#039;Mis Aplicaciones&#039;&#039;&#039;] del panel, pulsando en &#039;&#039;&#039;Crear Aplicación&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/panel_1.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Rellenamos todos los datos necesarios y le damos a &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Crear la aplicación&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/Rellenar_datos_app.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez creada la aplicación, iremos a &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Notificaciones Push —&amp;gt; Añadir app a push&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;, ubicado dentro de la sección de &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Desarrolladores&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/CrearNotificacion_3.png&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=SDKs:Push:pasos_panel&amp;diff=3021</id>
		<title>SDKs:Push:pasos panel</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=SDKs:Push:pasos_panel&amp;diff=3021"/>
		<updated>2019-12-05T11:30:36Z</updated>

		<summary type="html">&lt;p&gt;Deneb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Para poder configurar las notificaciones Push en una aplicación, debemos de haberla añadido previamente a nuestro panel. Si aún no la tenemos creada, lo haremos desde la sección [http://panel.mobeleader.com/index.php?sec=6 &#039;&#039;&#039;Mis Aplicaciones&#039;&#039;&#039;] del panel, pulsando en &#039;&#039;&#039;Crear Aplicación&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/Panel_1.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Rellenamos todos los datos necesarios y le damos a &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Crear la aplicación&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/Rellenar_datos_app.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez creada la aplicación, iremos a &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Notificaciones Push —&amp;gt; Añadir app a push&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;, ubicado dentro de la sección de &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Desarrolladores&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/CrearNotificacion_3.png&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Archivo:Panel_1.png&amp;diff=3020</id>
		<title>Archivo:Panel 1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Archivo:Panel_1.png&amp;diff=3020"/>
		<updated>2019-12-05T11:30:01Z</updated>

		<summary type="html">&lt;p&gt;Deneb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Link_Management&amp;diff=2773</id>
		<title>Link Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Link_Management&amp;diff=2773"/>
		<updated>2019-06-07T11:34:12Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Consulta de las descargas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducción =&lt;br /&gt;
El &#039;&#039;&#039;Link Management&#039;&#039;&#039; permite realizar el seguimiento de las descargas de una aplicación realizadas a través de determinados enlaces o &#039;&#039;links&#039;&#039;.&lt;br /&gt;
= Funcionamiento =&lt;br /&gt;
El proceso de seguimiento se realiza en 3 fases:&lt;br /&gt;
#Creación del &#039;&#039;link&#039;&#039; de descarga y agregación de éste en el HTML.&lt;br /&gt;
#Click del &#039;&#039;link&#039;&#039; y descarga de la aplicación asociada a él.&lt;br /&gt;
#Registro de la descarga y consulta.&lt;br /&gt;
= Creación y agregación del link =&lt;br /&gt;
== Creación del link ==&lt;br /&gt;
El primer paso consiste en crear el enlace o &#039;&#039;link&#039;&#039; para su posterior utilización. Si no lo está, diríjase a la sección [https://panel.mobeleader.com/index.php?sec=45 Link Management] de nuestro panel y pulse el botón &#039;&#039;&#039;Añadir nuevo link&#039;&#039;&#039;. Se mostrará el formulario a través del cual crear el &#039;&#039;link&#039;&#039;.&lt;br /&gt;
[[Archivo: Link_select_0.png]]&lt;br /&gt;
&lt;br /&gt;
Seleccione la aplicación que desee descargar a través del enlace. Recuerde que es necesario haber añadido la aplicación a nuestro sistema previamente. Si no es así, puede crearla en la sección [https://panel.mobeleader.com/index.php?sec=6 Mis Apps] de nuestro panel. A continuación escriba un nombre que identifique el enlace o &#039;&#039;link&#039;&#039;.&lt;br /&gt;
Una vez seleccionada la app y el nombre del &#039;&#039;link&#039;&#039;, añada la tienda o tiendas (&#039;&#039;store&#039;&#039;) a las que redireccionará el &#039;&#039;link&#039;&#039;. Puede añadir los tipos de tienda que quiera. El sistema se encargará de redirigir a la &#039;&#039;store&#039;&#039; más apropiada, en función del terminal desde el que se clique el &#039;&#039;link&#039;&#039;. Recuerde que si añade dos tiendas para el sistema Android (Google Play y Amazon por ejemplo), primará siempre la &#039;&#039;store&#039;&#039; oficial.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Link_select_1.png]]&lt;br /&gt;
=== Campos opcionales ===&lt;br /&gt;
Puede añadir si lo desea hasta 3 campos opcionales con valores fijos para aportar mayor información al seguimiento de las descargas:&lt;br /&gt;
#Creando grupos de enlaces (enlaces para Facebook, descargas desde sus propias webs, etc.). Los campos y sus valores pueden repetirse o variar en cada uno de sus enlaces, en función de cómo quiera realizar el seguimiento de éstos.&lt;br /&gt;
#Añadiendo directamente estos campos a URLs de &#039;&#039;postback&#039;&#039; que quiera retornar a su propio sistema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Link_select_2.png]]&lt;br /&gt;
&lt;br /&gt;
=== URLs Postback ===&lt;br /&gt;
En caso de querer retornar la información del enlace a su propio sistema, puede añadir URLs de &#039;&#039;postback&#039;&#039; al propio enlace. Si lo desea también puede añadir los campos opcionales (en caso de haber creado alguno) para que retornen como variables dentro de la URL de &#039;&#039;postback&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Link_select_3.png]]&lt;br /&gt;
&lt;br /&gt;
== Agregación del link ==&lt;br /&gt;
Una vez creado el &#039;&#039;link&#039;&#039;, éste aparecerá en la tabla &#039;&#039;&#039;Mis Links&#039;&#039;&#039; junto a la información correspondiente. La cadena que debe usar para añadir el &#039;&#039;link&#039;&#039; en el HTML desde el cual quiera lanzarlo (anuncio, web, imagen, etc.) es la correspondiente al campo &#039;&#039;&#039;Tracking Link&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Link_select_4.png]]&lt;br /&gt;
&lt;br /&gt;
Añádalo en su HTML de la siguiente forma:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;https://referrer.mobeleader.com/api_referrer.php?a=d&amp;amp;r=5bacf404a21e3&amp;quot;&amp;gt;Download MyFirstApp!&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Una vez el usuario pulse en el enlace, el sistema abrirá automáticamente la &#039;&#039;store&#039;&#039; que le corresponda, de aquellas añadidas al crearlo.&lt;br /&gt;
=== Variables externas del Link ===&lt;br /&gt;
Si desea obtener datos dinámicos desde el terminal del usuario y registrarlos posteriormente, puede hacerlo añadiendo las variables que desee al enlace. Ejemplo:&lt;br /&gt;
URL Postback: https://postbackserver.com/receiver.php?postback=1&amp;amp;userip=[IP]&lt;br /&gt;
Enlace: https://referrer.mobeleader.com/api_referrer.php?a=d&amp;amp;r=5bacf404a21e3&amp;amp;userip=0.0.0.0&amp;amp;aid=1234&lt;br /&gt;
En el este caso, también se añadirá la variable &#039;&#039;&#039;aid&#039;&#039;&#039; a su URL Postback, resultando: https://postbackserver.com/receiver.php?postback=1&amp;amp;userip=0.0.0.0&amp;amp;aid=1234&lt;br /&gt;
&lt;br /&gt;
= Click del Link y descarga de la aplicación =&lt;br /&gt;
Una vez el &#039;&#039;link&#039;&#039; haya sido creado e implementado en el código correctamente, al clicar los usuarios en él, el sistema abrirá la tienda o &#039;&#039;store&#039;&#039; correspondiente en la que se mostrará la opción de descargar la aplicación.&lt;br /&gt;
Cada vez que se realice una descarga a través de éste proceso, el sistema registrará toda la información correspondiente a esa descarga y enviará la URL de &#039;&#039;postback&#039;&#039; en caso de que la haya. El sistema no registrará descargas realizadas desde otras URLs, o si la aplicación ya estuviera descargada y se abriera a través del enlace.&lt;br /&gt;
= Registro de la descarga y consulta =&lt;br /&gt;
== Registro de la descarga ==&lt;br /&gt;
Para que una aplicación pueda registrar descargas en nuestro sistema, es necesario lo siguiente:&lt;br /&gt;
#Haber añadido la aplicación a nuestro sistema desde la sección [https://panel.mobeleader.com/index.php?sec=6 Mis Apps] de nuestro panel.&lt;br /&gt;
#Haber implementado en la aplicación la librería Referrer (Android) o el Framework Referrer (iOS). Si aún no ha completado esta parte del proceso, diríjase a la documentación para agregar la [https://panel.mobeleader.com/index.php?sec=85&amp;amp;id=44&amp;amp;tipo=4 Librería en Android] o el [https://panel.mobeleader.com/index.php?sec=85&amp;amp;id=49&amp;amp;tipo=4 Framework en iOS] , en la que se explica detalladamente cómo realizar la implementación.&lt;br /&gt;
Una vez implementada la librería (o &#039;&#039;framework&#039;&#039;), ésta enviará al sistema la información cada vez que se realice una descarga.&lt;br /&gt;
&lt;br /&gt;
== Consulta de las descargas ==&lt;br /&gt;
Cada enlace o &#039;&#039;link&#039;&#039; mostrará, en la columna &#039;&#039;&#039;Descargas&#039;&#039;&#039; de la tabla &#039;&#039;&#039;Mis Links&#039;&#039;&#039;, las descargas totales de cada plataforma.&lt;br /&gt;
Si desea obtener información más detallada de las descargas, diríjase a la sección [https://panel.mobeleader.com/index.php?sec=67&amp;amp;bloque=6 Analytics Links] de nuestro panel. Desde esa sección podrá segmentar la información de sus descargas por aplicación, fecha, sistema operativo, etc.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Link_Management&amp;diff=2772</id>
		<title>Link Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Link_Management&amp;diff=2772"/>
		<updated>2019-06-07T11:33:26Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Registro de la descarga */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducción =&lt;br /&gt;
El &#039;&#039;&#039;Link Management&#039;&#039;&#039; permite realizar el seguimiento de las descargas de una aplicación realizadas a través de determinados enlaces o &#039;&#039;links&#039;&#039;.&lt;br /&gt;
= Funcionamiento =&lt;br /&gt;
El proceso de seguimiento se realiza en 3 fases:&lt;br /&gt;
#Creación del &#039;&#039;link&#039;&#039; de descarga y agregación de éste en el HTML.&lt;br /&gt;
#Click del &#039;&#039;link&#039;&#039; y descarga de la aplicación asociada a él.&lt;br /&gt;
#Registro de la descarga y consulta.&lt;br /&gt;
= Creación y agregación del link =&lt;br /&gt;
== Creación del link ==&lt;br /&gt;
El primer paso consiste en crear el enlace o &#039;&#039;link&#039;&#039; para su posterior utilización. Si no lo está, diríjase a la sección [https://panel.mobeleader.com/index.php?sec=45 Link Management] de nuestro panel y pulse el botón &#039;&#039;&#039;Añadir nuevo link&#039;&#039;&#039;. Se mostrará el formulario a través del cual crear el &#039;&#039;link&#039;&#039;.&lt;br /&gt;
[[Archivo: Link_select_0.png]]&lt;br /&gt;
&lt;br /&gt;
Seleccione la aplicación que desee descargar a través del enlace. Recuerde que es necesario haber añadido la aplicación a nuestro sistema previamente. Si no es así, puede crearla en la sección [https://panel.mobeleader.com/index.php?sec=6 Mis Apps] de nuestro panel. A continuación escriba un nombre que identifique el enlace o &#039;&#039;link&#039;&#039;.&lt;br /&gt;
Una vez seleccionada la app y el nombre del &#039;&#039;link&#039;&#039;, añada la tienda o tiendas (&#039;&#039;store&#039;&#039;) a las que redireccionará el &#039;&#039;link&#039;&#039;. Puede añadir los tipos de tienda que quiera. El sistema se encargará de redirigir a la &#039;&#039;store&#039;&#039; más apropiada, en función del terminal desde el que se clique el &#039;&#039;link&#039;&#039;. Recuerde que si añade dos tiendas para el sistema Android (Google Play y Amazon por ejemplo), primará siempre la &#039;&#039;store&#039;&#039; oficial.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Link_select_1.png]]&lt;br /&gt;
=== Campos opcionales ===&lt;br /&gt;
Puede añadir si lo desea hasta 3 campos opcionales con valores fijos para aportar mayor información al seguimiento de las descargas:&lt;br /&gt;
#Creando grupos de enlaces (enlaces para Facebook, descargas desde sus propias webs, etc.). Los campos y sus valores pueden repetirse o variar en cada uno de sus enlaces, en función de cómo quiera realizar el seguimiento de éstos.&lt;br /&gt;
#Añadiendo directamente estos campos a URLs de &#039;&#039;postback&#039;&#039; que quiera retornar a su propio sistema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Link_select_2.png]]&lt;br /&gt;
&lt;br /&gt;
=== URLs Postback ===&lt;br /&gt;
En caso de querer retornar la información del enlace a su propio sistema, puede añadir URLs de &#039;&#039;postback&#039;&#039; al propio enlace. Si lo desea también puede añadir los campos opcionales (en caso de haber creado alguno) para que retornen como variables dentro de la URL de &#039;&#039;postback&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Link_select_3.png]]&lt;br /&gt;
&lt;br /&gt;
== Agregación del link ==&lt;br /&gt;
Una vez creado el &#039;&#039;link&#039;&#039;, éste aparecerá en la tabla &#039;&#039;&#039;Mis Links&#039;&#039;&#039; junto a la información correspondiente. La cadena que debe usar para añadir el &#039;&#039;link&#039;&#039; en el HTML desde el cual quiera lanzarlo (anuncio, web, imagen, etc.) es la correspondiente al campo &#039;&#039;&#039;Tracking Link&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Link_select_4.png]]&lt;br /&gt;
&lt;br /&gt;
Añádalo en su HTML de la siguiente forma:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;https://referrer.mobeleader.com/api_referrer.php?a=d&amp;amp;r=5bacf404a21e3&amp;quot;&amp;gt;Download MyFirstApp!&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Una vez el usuario pulse en el enlace, el sistema abrirá automáticamente la &#039;&#039;store&#039;&#039; que le corresponda, de aquellas añadidas al crearlo.&lt;br /&gt;
=== Variables externas del Link ===&lt;br /&gt;
Si desea obtener datos dinámicos desde el terminal del usuario y registrarlos posteriormente, puede hacerlo añadiendo las variables que desee al enlace. Ejemplo:&lt;br /&gt;
URL Postback: https://postbackserver.com/receiver.php?postback=1&amp;amp;userip=[IP]&lt;br /&gt;
Enlace: https://referrer.mobeleader.com/api_referrer.php?a=d&amp;amp;r=5bacf404a21e3&amp;amp;userip=0.0.0.0&amp;amp;aid=1234&lt;br /&gt;
En el este caso, también se añadirá la variable &#039;&#039;&#039;aid&#039;&#039;&#039; a su URL Postback, resultando: https://postbackserver.com/receiver.php?postback=1&amp;amp;userip=0.0.0.0&amp;amp;aid=1234&lt;br /&gt;
&lt;br /&gt;
= Click del Link y descarga de la aplicación =&lt;br /&gt;
Una vez el &#039;&#039;link&#039;&#039; haya sido creado e implementado en el código correctamente, al clicar los usuarios en él, el sistema abrirá la tienda o &#039;&#039;store&#039;&#039; correspondiente en la que se mostrará la opción de descargar la aplicación.&lt;br /&gt;
Cada vez que se realice una descarga a través de éste proceso, el sistema registrará toda la información correspondiente a esa descarga y enviará la URL de &#039;&#039;postback&#039;&#039; en caso de que la haya. El sistema no registrará descargas realizadas desde otras URLs, o si la aplicación ya estuviera descargada y se abriera a través del enlace.&lt;br /&gt;
= Registro de la descarga y consulta =&lt;br /&gt;
== Registro de la descarga ==&lt;br /&gt;
Para que una aplicación pueda registrar descargas en nuestro sistema, es necesario lo siguiente:&lt;br /&gt;
#Haber añadido la aplicación a nuestro sistema desde la sección [https://panel.mobeleader.com/index.php?sec=6 Mis Apps] de nuestro panel.&lt;br /&gt;
#Haber implementado en la aplicación la librería Referrer (Android) o el Framework Referrer (iOS). Si aún no ha completado esta parte del proceso, diríjase a la documentación para agregar la [https://panel.mobeleader.com/index.php?sec=85&amp;amp;id=44&amp;amp;tipo=4 Librería en Android] o el [https://panel.mobeleader.com/index.php?sec=85&amp;amp;id=49&amp;amp;tipo=4 Framework en iOS] , en la que se explica detalladamente cómo realizar la implementación.&lt;br /&gt;
Una vez implementada la librería (o &#039;&#039;framework&#039;&#039;), ésta enviará al sistema la información cada vez que se realice una descarga.&lt;br /&gt;
&lt;br /&gt;
== Consulta de las descargas ==&lt;br /&gt;
Cada enlace o &#039;&#039;link&#039;&#039; mostrará, en la columna &#039;&#039;&#039;Descargas&#039;&#039;&#039; de la tabla &#039;&#039;&#039;Mis Links&#039;&#039;&#039;, las descargas totales de cada plataforma.&lt;br /&gt;
Si desea obtener información más detallada de las descargas, diríjase a la [https://panel.mobeleader.com/index.php?sec=67&amp;amp;bloque=6 sección Analytics Links] del Panel de Mobeleader. Desde esa sección podrá segmentar la información de sus descargas por aplicación, fecha, sistema operativo, etc.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Link_Management&amp;diff=2771</id>
		<title>Link Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Link_Management&amp;diff=2771"/>
		<updated>2019-06-07T11:30:44Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Creación del link */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducción =&lt;br /&gt;
El &#039;&#039;&#039;Link Management&#039;&#039;&#039; permite realizar el seguimiento de las descargas de una aplicación realizadas a través de determinados enlaces o &#039;&#039;links&#039;&#039;.&lt;br /&gt;
= Funcionamiento =&lt;br /&gt;
El proceso de seguimiento se realiza en 3 fases:&lt;br /&gt;
#Creación del &#039;&#039;link&#039;&#039; de descarga y agregación de éste en el HTML.&lt;br /&gt;
#Click del &#039;&#039;link&#039;&#039; y descarga de la aplicación asociada a él.&lt;br /&gt;
#Registro de la descarga y consulta.&lt;br /&gt;
= Creación y agregación del link =&lt;br /&gt;
== Creación del link ==&lt;br /&gt;
El primer paso consiste en crear el enlace o &#039;&#039;link&#039;&#039; para su posterior utilización. Si no lo está, diríjase a la sección [https://panel.mobeleader.com/index.php?sec=45 Link Management] de nuestro panel y pulse el botón &#039;&#039;&#039;Añadir nuevo link&#039;&#039;&#039;. Se mostrará el formulario a través del cual crear el &#039;&#039;link&#039;&#039;.&lt;br /&gt;
[[Archivo: Link_select_0.png]]&lt;br /&gt;
&lt;br /&gt;
Seleccione la aplicación que desee descargar a través del enlace. Recuerde que es necesario haber añadido la aplicación a nuestro sistema previamente. Si no es así, puede crearla en la sección [https://panel.mobeleader.com/index.php?sec=6 Mis Apps] de nuestro panel. A continuación escriba un nombre que identifique el enlace o &#039;&#039;link&#039;&#039;.&lt;br /&gt;
Una vez seleccionada la app y el nombre del &#039;&#039;link&#039;&#039;, añada la tienda o tiendas (&#039;&#039;store&#039;&#039;) a las que redireccionará el &#039;&#039;link&#039;&#039;. Puede añadir los tipos de tienda que quiera. El sistema se encargará de redirigir a la &#039;&#039;store&#039;&#039; más apropiada, en función del terminal desde el que se clique el &#039;&#039;link&#039;&#039;. Recuerde que si añade dos tiendas para el sistema Android (Google Play y Amazon por ejemplo), primará siempre la &#039;&#039;store&#039;&#039; oficial.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Link_select_1.png]]&lt;br /&gt;
=== Campos opcionales ===&lt;br /&gt;
Puede añadir si lo desea hasta 3 campos opcionales con valores fijos para aportar mayor información al seguimiento de las descargas:&lt;br /&gt;
#Creando grupos de enlaces (enlaces para Facebook, descargas desde sus propias webs, etc.). Los campos y sus valores pueden repetirse o variar en cada uno de sus enlaces, en función de cómo quiera realizar el seguimiento de éstos.&lt;br /&gt;
#Añadiendo directamente estos campos a URLs de &#039;&#039;postback&#039;&#039; que quiera retornar a su propio sistema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Link_select_2.png]]&lt;br /&gt;
&lt;br /&gt;
=== URLs Postback ===&lt;br /&gt;
En caso de querer retornar la información del enlace a su propio sistema, puede añadir URLs de &#039;&#039;postback&#039;&#039; al propio enlace. Si lo desea también puede añadir los campos opcionales (en caso de haber creado alguno) para que retornen como variables dentro de la URL de &#039;&#039;postback&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Link_select_3.png]]&lt;br /&gt;
&lt;br /&gt;
== Agregación del link ==&lt;br /&gt;
Una vez creado el &#039;&#039;link&#039;&#039;, éste aparecerá en la tabla &#039;&#039;&#039;Mis Links&#039;&#039;&#039; junto a la información correspondiente. La cadena que debe usar para añadir el &#039;&#039;link&#039;&#039; en el HTML desde el cual quiera lanzarlo (anuncio, web, imagen, etc.) es la correspondiente al campo &#039;&#039;&#039;Tracking Link&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Link_select_4.png]]&lt;br /&gt;
&lt;br /&gt;
Añádalo en su HTML de la siguiente forma:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;https://referrer.mobeleader.com/api_referrer.php?a=d&amp;amp;r=5bacf404a21e3&amp;quot;&amp;gt;Download MyFirstApp!&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Una vez el usuario pulse en el enlace, el sistema abrirá automáticamente la &#039;&#039;store&#039;&#039; que le corresponda, de aquellas añadidas al crearlo.&lt;br /&gt;
=== Variables externas del Link ===&lt;br /&gt;
Si desea obtener datos dinámicos desde el terminal del usuario y registrarlos posteriormente, puede hacerlo añadiendo las variables que desee al enlace. Ejemplo:&lt;br /&gt;
URL Postback: https://postbackserver.com/receiver.php?postback=1&amp;amp;userip=[IP]&lt;br /&gt;
Enlace: https://referrer.mobeleader.com/api_referrer.php?a=d&amp;amp;r=5bacf404a21e3&amp;amp;userip=0.0.0.0&amp;amp;aid=1234&lt;br /&gt;
En el este caso, también se añadirá la variable &#039;&#039;&#039;aid&#039;&#039;&#039; a su URL Postback, resultando: https://postbackserver.com/receiver.php?postback=1&amp;amp;userip=0.0.0.0&amp;amp;aid=1234&lt;br /&gt;
&lt;br /&gt;
= Click del Link y descarga de la aplicación =&lt;br /&gt;
Una vez el &#039;&#039;link&#039;&#039; haya sido creado e implementado en el código correctamente, al clicar los usuarios en él, el sistema abrirá la tienda o &#039;&#039;store&#039;&#039; correspondiente en la que se mostrará la opción de descargar la aplicación.&lt;br /&gt;
Cada vez que se realice una descarga a través de éste proceso, el sistema registrará toda la información correspondiente a esa descarga y enviará la URL de &#039;&#039;postback&#039;&#039; en caso de que la haya. El sistema no registrará descargas realizadas desde otras URLs, o si la aplicación ya estuviera descargada y se abriera a través del enlace.&lt;br /&gt;
= Registro de la descarga y consulta =&lt;br /&gt;
== Registro de la descarga ==&lt;br /&gt;
Para que una aplicación pueda registrar descargas en nuestro sistema, es necesario lo siguiente:&lt;br /&gt;
#Haber añadido la aplicación a nuestro sistema desde la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Apps] del Panel de Mobeleader.&lt;br /&gt;
#Haber implementado en la aplicación la librería Referrer (Android) o el Framework Referrer (iOS). Si aún no ha completado esta parte del proceso, diríjase a la documentación para agregar la [https://panel.mobeleader.com/index.php?sec=85&amp;amp;id=44&amp;amp;tipo=4 Librería en Android] o el [https://panel.mobeleader.com/index.php?sec=85&amp;amp;id=49&amp;amp;tipo=4 Framework en iOS] , en la que se explica detalladamente cómo realizar la implementación.&lt;br /&gt;
Una vez implementada la librería (o &#039;&#039;framework&#039;&#039;), ésta enviará al sistema la información cada vez que se realice una descarga.&lt;br /&gt;
&lt;br /&gt;
== Consulta de las descargas ==&lt;br /&gt;
Cada enlace o &#039;&#039;link&#039;&#039; mostrará, en la columna &#039;&#039;&#039;Descargas&#039;&#039;&#039; de la tabla &#039;&#039;&#039;Mis Links&#039;&#039;&#039;, las descargas totales de cada plataforma.&lt;br /&gt;
Si desea obtener información más detallada de las descargas, diríjase a la [https://panel.mobeleader.com/index.php?sec=67&amp;amp;bloque=6 sección Analytics Links] del Panel de Mobeleader. Desde esa sección podrá segmentar la información de sus descargas por aplicación, fecha, sistema operativo, etc.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Link_Management&amp;diff=2770</id>
		<title>Link Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Link_Management&amp;diff=2770"/>
		<updated>2019-06-07T11:30:17Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Creación del link */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducción =&lt;br /&gt;
El &#039;&#039;&#039;Link Management&#039;&#039;&#039; permite realizar el seguimiento de las descargas de una aplicación realizadas a través de determinados enlaces o &#039;&#039;links&#039;&#039;.&lt;br /&gt;
= Funcionamiento =&lt;br /&gt;
El proceso de seguimiento se realiza en 3 fases:&lt;br /&gt;
#Creación del &#039;&#039;link&#039;&#039; de descarga y agregación de éste en el HTML.&lt;br /&gt;
#Click del &#039;&#039;link&#039;&#039; y descarga de la aplicación asociada a él.&lt;br /&gt;
#Registro de la descarga y consulta.&lt;br /&gt;
= Creación y agregación del link =&lt;br /&gt;
== Creación del link ==&lt;br /&gt;
El primer paso consiste en crear el enlace o &#039;&#039;link&#039;&#039; para su posterior utilización. Si no lo está, diríjase a la sección [https://panel.mobeleader.com/index.php?sec=45 Link Management] de nuestro panel y pulse el botón &#039;&#039;&#039;Añadir nuevo link&#039;&#039;&#039;. Se mostrará el formulario a través del cual crear el &#039;&#039;link&#039;&#039;.&lt;br /&gt;
[[Archivo: Link_select_0.png]]&lt;br /&gt;
&lt;br /&gt;
Seleccione la aplicación que desee descargar a través del enlace. Recuerde que es necesario haber añadido la aplicación a nuestro sistema previamente. Si no es así, puede crearla en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Apps] de nuestro panel. A continuación escriba un nombre que identifique el enlace o &#039;&#039;link&#039;&#039;.&lt;br /&gt;
Una vez seleccionada la app y el nombre del &#039;&#039;link&#039;&#039;, añada la tienda o tiendas (&#039;&#039;store&#039;&#039;) a las que redireccionará el &#039;&#039;link&#039;&#039;. Puede añadir los tipos de tienda que quiera. El sistema se encargará de redirigir a la &#039;&#039;store&#039;&#039; más apropiada, en función del terminal desde el que se clique el &#039;&#039;link&#039;&#039;. Recuerde que si añade dos tiendas para el sistema Android (Google Play y Amazon por ejemplo), primará siempre la &#039;&#039;store&#039;&#039; oficial.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Link_select_1.png]]&lt;br /&gt;
=== Campos opcionales ===&lt;br /&gt;
Puede añadir si lo desea hasta 3 campos opcionales con valores fijos para aportar mayor información al seguimiento de las descargas:&lt;br /&gt;
#Creando grupos de enlaces (enlaces para Facebook, descargas desde sus propias webs, etc.). Los campos y sus valores pueden repetirse o variar en cada uno de sus enlaces, en función de cómo quiera realizar el seguimiento de éstos.&lt;br /&gt;
#Añadiendo directamente estos campos a URLs de &#039;&#039;postback&#039;&#039; que quiera retornar a su propio sistema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Link_select_2.png]]&lt;br /&gt;
&lt;br /&gt;
=== URLs Postback ===&lt;br /&gt;
En caso de querer retornar la información del enlace a su propio sistema, puede añadir URLs de &#039;&#039;postback&#039;&#039; al propio enlace. Si lo desea también puede añadir los campos opcionales (en caso de haber creado alguno) para que retornen como variables dentro de la URL de &#039;&#039;postback&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Link_select_3.png]]&lt;br /&gt;
&lt;br /&gt;
== Agregación del link ==&lt;br /&gt;
Una vez creado el &#039;&#039;link&#039;&#039;, éste aparecerá en la tabla &#039;&#039;&#039;Mis Links&#039;&#039;&#039; junto a la información correspondiente. La cadena que debe usar para añadir el &#039;&#039;link&#039;&#039; en el HTML desde el cual quiera lanzarlo (anuncio, web, imagen, etc.) es la correspondiente al campo &#039;&#039;&#039;Tracking Link&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Link_select_4.png]]&lt;br /&gt;
&lt;br /&gt;
Añádalo en su HTML de la siguiente forma:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;https://referrer.mobeleader.com/api_referrer.php?a=d&amp;amp;r=5bacf404a21e3&amp;quot;&amp;gt;Download MyFirstApp!&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Una vez el usuario pulse en el enlace, el sistema abrirá automáticamente la &#039;&#039;store&#039;&#039; que le corresponda, de aquellas añadidas al crearlo.&lt;br /&gt;
=== Variables externas del Link ===&lt;br /&gt;
Si desea obtener datos dinámicos desde el terminal del usuario y registrarlos posteriormente, puede hacerlo añadiendo las variables que desee al enlace. Ejemplo:&lt;br /&gt;
URL Postback: https://postbackserver.com/receiver.php?postback=1&amp;amp;userip=[IP]&lt;br /&gt;
Enlace: https://referrer.mobeleader.com/api_referrer.php?a=d&amp;amp;r=5bacf404a21e3&amp;amp;userip=0.0.0.0&amp;amp;aid=1234&lt;br /&gt;
En el este caso, también se añadirá la variable &#039;&#039;&#039;aid&#039;&#039;&#039; a su URL Postback, resultando: https://postbackserver.com/receiver.php?postback=1&amp;amp;userip=0.0.0.0&amp;amp;aid=1234&lt;br /&gt;
&lt;br /&gt;
= Click del Link y descarga de la aplicación =&lt;br /&gt;
Una vez el &#039;&#039;link&#039;&#039; haya sido creado e implementado en el código correctamente, al clicar los usuarios en él, el sistema abrirá la tienda o &#039;&#039;store&#039;&#039; correspondiente en la que se mostrará la opción de descargar la aplicación.&lt;br /&gt;
Cada vez que se realice una descarga a través de éste proceso, el sistema registrará toda la información correspondiente a esa descarga y enviará la URL de &#039;&#039;postback&#039;&#039; en caso de que la haya. El sistema no registrará descargas realizadas desde otras URLs, o si la aplicación ya estuviera descargada y se abriera a través del enlace.&lt;br /&gt;
= Registro de la descarga y consulta =&lt;br /&gt;
== Registro de la descarga ==&lt;br /&gt;
Para que una aplicación pueda registrar descargas en nuestro sistema, es necesario lo siguiente:&lt;br /&gt;
#Haber añadido la aplicación a nuestro sistema desde la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Apps] del Panel de Mobeleader.&lt;br /&gt;
#Haber implementado en la aplicación la librería Referrer (Android) o el Framework Referrer (iOS). Si aún no ha completado esta parte del proceso, diríjase a la documentación para agregar la [https://panel.mobeleader.com/index.php?sec=85&amp;amp;id=44&amp;amp;tipo=4 Librería en Android] o el [https://panel.mobeleader.com/index.php?sec=85&amp;amp;id=49&amp;amp;tipo=4 Framework en iOS] , en la que se explica detalladamente cómo realizar la implementación.&lt;br /&gt;
Una vez implementada la librería (o &#039;&#039;framework&#039;&#039;), ésta enviará al sistema la información cada vez que se realice una descarga.&lt;br /&gt;
&lt;br /&gt;
== Consulta de las descargas ==&lt;br /&gt;
Cada enlace o &#039;&#039;link&#039;&#039; mostrará, en la columna &#039;&#039;&#039;Descargas&#039;&#039;&#039; de la tabla &#039;&#039;&#039;Mis Links&#039;&#039;&#039;, las descargas totales de cada plataforma.&lt;br /&gt;
Si desea obtener información más detallada de las descargas, diríjase a la [https://panel.mobeleader.com/index.php?sec=67&amp;amp;bloque=6 sección Analytics Links] del Panel de Mobeleader. Desde esa sección podrá segmentar la información de sus descargas por aplicación, fecha, sistema operativo, etc.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Docu_push_exchange&amp;diff=2769</id>
		<title>Docu push exchange</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Docu_push_exchange&amp;diff=2769"/>
		<updated>2019-06-07T11:28:16Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Borrado de usuarios registrados en su aplicación */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introducción=&lt;br /&gt;
En este documento se va a mostrar como ha de ser el contenido que se mande al api-exchange para realizar las distintas acciones que ésta nos permite. Se expondrá brevemente como ha de realizarse la conexión a dicha API, como han de ser los campos obligatorios que han de ir para todos los casos y a continuación se procederá a tratar todos los casos con ejemplos para un mayor entendimiento.&lt;br /&gt;
&lt;br /&gt;
=Conectándonos a la API=&lt;br /&gt;
Lo primero que deberemos hacer es solicitar el token necesario para poder realizar la conexión a nuestro sistema. Dicho token es un identificador único para cada usuario desarrollador. Una vez obtenido dicho token, procederemos a hacer una breve prueba de conexión para comprobar que tenemos acceso a la API. En dicha prueba haremos uso de la tarea &#039;&#039;&#039;“ping”&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;ping&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Conexion_ping.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En la imagen vemos como ha de ser el código necesario para realizar dicha prueba y el resultado transformado a un array. Si la posición del &#039;&#039;&#039;responsecode&#039;&#039;&#039; es &#039;&#039;&#039;“OK”&#039;&#039;&#039; significa que todo ha ido correctamente y en la posición &#039;&#039;&#039;data&#039;&#039;&#039; deberemos ver &#039;&#039;&#039;“pong”&#039;&#039;&#039;. Mientras esta prueba no de este resultado no podremos hacer ninguna acción más sobre la API.&lt;br /&gt;
&lt;br /&gt;
=Campos Obligatorios y No Obligatorios para las notificaciones=&lt;br /&gt;
Para generar notificaciones desde nuestro sistema, en la conexión con la API deberá ir especificada la tarea &#039;&#039;&#039;“setPush”&#039;&#039;&#039;, junto un array de datos con una serie de campos.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Independientemente del sistema operativo al que vaya la notificación, hay unos campos que &#039;&#039;&#039;son obligatorios&#039;&#039;&#039;; son los siguientes:&lt;br /&gt;
#&#039;&#039;&#039;appHash:&#039;&#039;&#039; contendrá el hash de la aplicación registrada, automáticamente generado por nuestro panel.&lt;br /&gt;
#&#039;&#039;&#039;terminalTokens:&#039;&#039;&#039; este campo podrá tener más de un formato, de manera que los dispositivos que reciban la notificación puedan ser diferentes.&lt;br /&gt;
#*En caso de &#039;&#039;&#039;tratarse de un array&#039;&#039;&#039;, se mandará la notificación a todos los tokens de dicho array.&lt;br /&gt;
#*En caso de &#039;&#039;&#039;no ser un  array&#039;&#039;&#039;, podrá contener lo siguiente:&lt;br /&gt;
##&#039;&#039;&#039;all:&#039;&#039;&#039; En este caso se notificará a todos los dispositivos que estén registrados en la aplicación sin tener en cuenta el SO.&lt;br /&gt;
##&#039;&#039;&#039;onlyAndroid:&#039;&#039;&#039; Solo se notificará a los terminales con &#039;&#039;&#039;SO Android&#039;&#039;&#039; que estén registrados en la aplicación.&lt;br /&gt;
##&#039;&#039;&#039;onlyIOS:&#039;&#039;&#039; Solo se notificará a los terminales con &#039;&#039;&#039;SO IOs&#039;&#039;&#039; que estén registrados en la aplicación.&lt;br /&gt;
##&#039;&#039;&#039;Un token de un dispositivo en concreto,&#039;&#039;&#039; de manera que solo se le notifique a éste.&lt;br /&gt;
#&#039;&#039;&#039;message:&#039;&#039;&#039; contendrá el texto de la notificación.&lt;br /&gt;
#&#039;&#039;&#039;type:&#039;&#039;&#039; contendrá el tipo de notificación pudiendo ser este de de diversa índole.&lt;br /&gt;
#*&#039;&#039;&#039;normal:&#039;&#039;&#039; este tipo será el más común, el dispositivo recibirá la notificación y no se hará mas con ésta.&lt;br /&gt;
#*&#039;&#039;&#039;openApp:&#039;&#039;&#039; este tipo hará que al hacer click sobre la notificación se abra la aplicación encargada de mostrar dicha notificación.&lt;br /&gt;
#*&#039;&#039;&#039;openUrl:&#039;&#039;&#039; este tipo hará que al hacer click sobre la notificación se abra una URL especificada en otro campo que veremos más adelante.&lt;br /&gt;
#*&#039;&#039;&#039;openAppWithextras:&#039;&#039;&#039; este tipo hará lo mismo que el &#039;&#039;&#039;“openApp”&#039;&#039;&#039; pudiendo ademas añadir hasta cinco variables extra para poder tratarlas a nuestro gusto en la aplicación. Cabe destacar que este tipo de notificación, nos permitirá hacer uso de otro campo no obligatorio que más adelante trataremos, el cual se llama &#039;&#039;&#039;&amp;quot;customType”&#039;&#039;&#039; y nos permitirá lanzar notificaciones &#039;&#039;&#039;“personalizadas”&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez vistos los campos obligatorios, a continuación se expondrán todos los &#039;&#039;&#039;campos no obligatorios&#039;&#039;&#039; que darán forma a las notificaciones:&lt;br /&gt;
#&#039;&#039;&#039;tittle:&#039;&#039;&#039; contendrá el texto del título que se mostrara junto con el mensaje de la notificación.&lt;br /&gt;
#&#039;&#039;&#039;sendingId:&#039;&#039;&#039; en caso de querer lanzar una notificación para muchos terminales, como hemos expuesto en los campos obligatorios, inicialmente el campo &#039;&#039;&#039;”terminalTokens&amp;quot;&#039;&#039;&#039; deberá ser un array con dichos terminales. Debido a que la API no puede admitir un número ilimitado de tokens a la vez, deberemos &#039;&#039;&#039;segmentar&#039;&#039;&#039; dicho array en varios más pequeños y hacer tantos &#039;&#039;&#039;“setPush”&#039;&#039;&#039; como sean necesarios hasta finalizar con el número de dispositivos a notificar. Cada vez que nos conectemos a la API para hacer un &#039;&#039;&#039;“setPush”&#039;&#039;&#039; y generar una notificación, dicha conexión nos devolverá un JSON en el cual hay un campo denominado &#039;&#039;&#039;“sendingId”&#039;&#039;&#039; con el ID autonumérico generado en nuestro sistema para ese envío push. De ésta manera, si se recoge dicho ID y se pasa como campo en la posición &#039;&#039;&#039;“sendingId”&#039;&#039;&#039;, los siguientes tokens que se manden en el &#039;&#039;&#039;”terminalTokens”&#039;&#039;&#039; irán asociados al primer envío realizado.&lt;br /&gt;
#&#039;&#039;&#039;sandbox:&#039;&#039;&#039; este campo solo se usará cuando se vaya a notificar a algún dispositivo con &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá “yes” en caso de que dicho dispositivo este en el servidor de desarrollo de Apple, y un “no” en caso de que dicho dispositivo este en el servidor de producción de Apple.&lt;br /&gt;
#&#039;&#039;&#039;isTest:&#039;&#039;&#039; al igual que en el campo del &#039;&#039;&#039;“sandbox”&#039;&#039;&#039;, contendrá “yes” o “no” dependiendo de si el dispositivo esta en el servidor de desarrollo o el de producción de Apple.&lt;br /&gt;
#&#039;&#039;&#039;background:&#039;&#039;&#039; este campo solo irá en caso de ir a algún dispositivo que tenga &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá “yes” o “no”. En caso de ser afirmativo la notificación se mostrará sin hacer ruido ni vibrar. Para el caso de iOs esto generará un alert vació con el &#039;&#039;&#039;content-available a 1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;silent:&#039;&#039;&#039; Contendrá “yes” o “no”. En caso de ser afirmativo la notificación no se mostrará pero si lanzará el evento de la librería push encargado de escuchar si se ha recibido una notificación o no. De ésta manera podremos lanzar notificaciones que no se muestren, pero si hagan algo por detrás en la APP al recibirla. Para el caso de Android solo se usará este campo cuando el &#039;&#039;&#039;“type”&#039;&#039;&#039; de la notificación sea &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y se haga uso del campo no obligatorio &#039;&#039;&#039;“customType”&#039;&#039;&#039;. Para el caso de iOs esto generará un alert vació con el &#039;&#039;&#039;content-available a 1&#039;&#039;&#039; por defecto, pudiendo ser modificado por el siguiente campo que se expone a continuación ( &#039;&#039;&#039;silentNumber&#039;&#039;&#039; ). Como en el caso de Android esto solo tendrá sentido para las notificaciones de &#039;&#039;&#039;“type”&#039;&#039;&#039;  &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; , puesto que al no mostrar nada, se usarán para hacer cosas por detrás mediante los campos no obligatorios &#039;&#039;&#039;external1, external2, external3, external4 y external5&#039;&#039;&#039;. A diferencia de Android, en iOs se podrá usar con &#039;&#039;&#039;”customType”&#039;&#039;&#039; o sin el.&lt;br /&gt;
#&#039;&#039;&#039;silentNumber:&#039;&#039;&#039; este campo solo se usará para &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Es el número que aparecerá en el &#039;&#039;&#039;content-available&#039;&#039;&#039; en caso de que el campo &#039;&#039;&#039;silent&#039;&#039;&#039; sea &#039;&#039;&#039;&amp;quot;yes&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;customType:&#039;&#039;&#039; contendrá el texto del tipo de notificación personalizada que cada uno cree. Éste campo solo se podrá usar si previamente en el campo obligatorio &#039;&#039;&#039;“type”&#039;&#039;&#039; se ha puesto &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;badge:&#039;&#039;&#039; este campo será el número que se mostrará junto con la notificación en los dispositivos &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. A partir de iOs 10 las notificaciones &#039;&#039;&#039;no&#039;&#039;&#039; levantan la aplicación en caso de estar background, por lo que esto generará un &#039;&#039;&#039;content-available&#039;&#039;&#039; con el fin de despertar la aplicación y poder actualizar el icono de notificaciones pendientes en ésta.&lt;br /&gt;
#&#039;&#039;&#039;broadcast:&#039;&#039;&#039; esta variable solo será útil para dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;, contendrá el nombre de la clase instanciada en su aplicación para que se active al recibir la notificación.&lt;br /&gt;
#&#039;&#039;&#039;direct:&#039;&#039;&#039; contendra &amp;quot;yes&amp;quot; o &amp;quot;no&amp;quot;. En caso de ser afirmativo las notificaciones se enviarán al instante no pudiendo programarlas.&lt;br /&gt;
#&#039;&#039;&#039;whenSend:&#039;&#039;&#039; contendrá “immediately”, “programmatically” o “geolocation”. En caso de ser immediately el campo &#039;&#039;&#039;“direct”&#039;&#039;&#039; previamente descrito deberá ser &#039;&#039;&#039;“yes”&#039;&#039;&#039;. En caso de ser “programmatically” o “geolocation” el  campo &#039;&#039;&#039;“direct”&#039;&#039;&#039; previamente descrito deberá ser &#039;&#039;&#039;“no”&#039;&#039;&#039;, ademas el envío se programará según los siguientes campos no obligatorios que se le pase.&lt;br /&gt;
#*&#039;&#039;&#039;Programmatically:&#039;&#039;&#039; cuando la notificación  se quiera programar para una fecha en concreto , deberán existir los siguientes campos no obligatorios:&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyTime:&#039;&#039;&#039; contendrá la fecha en &#039;&#039;&#039;UNIXTIMESTAMP&#039;&#039;&#039; en la que se lanzará la notificación, si se usa este campo no obligatorio no deberemos usar los siguientes.&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronMinutes:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronHours:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronDays:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronMonths:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
#*&#039;&#039;&#039;Geolocation:&#039;&#039;&#039; cuando se quiera programar por geolocalización una notificación, deberán existir los siguientes campos no obligatorios:&lt;br /&gt;
##&#039;&#039;&#039;geolocationCoordinates:&#039;&#039;&#039; será un array en el que la posición &#039;&#039;&#039;cero&#039;&#039;&#039; será la &#039;&#039;&#039;latitud&#039;&#039;&#039; y la &#039;&#039;&#039;uno&#039;&#039;&#039; la &#039;&#039;&#039;longitud&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;geolocationMeters:&#039;&#039;&#039; contendrá los metros a los que hemos de estar de las coordenadas especificadas para que lance la notificación.&lt;br /&gt;
#&#039;&#039;&#039;languaje:&#039;&#039;&#039; contendrá el idioma del dispositivo. &#039;&#039;&#039;Ejemplo: es&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;country:&#039;&#039;&#039; contendrá el país del dispositivo. &#039;&#039;&#039;Ejemplo: ES&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;deviceType:&#039;&#039;&#039; contendrá el tipo de dispositivo al que se le mandará la notificación pudiendo ser:&lt;br /&gt;
#*&#039;&#039;&#039;Para Android:&#039;&#039;&#039;&lt;br /&gt;
##&#039;&#039;&#039;movil&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;tableta&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;reloj&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;tv&#039;&#039;&#039;.&lt;br /&gt;
#*&#039;&#039;&#039;Para iOs:&#039;&#039;&#039;&lt;br /&gt;
##&#039;&#039;&#039;iphone&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;ipad&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;iwatch&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;appletv&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;appVersion:&#039;&#039;&#039; contendrá la versión de la aplicación a la que esta dirigida la notificación. &#039;&#039;&#039;Ejemplo: 1.0.1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039; contendrá la versión del terminal al que ira dirigida la notificación. &#039;&#039;&#039;Ejemplo: 6.0.1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;urlToOpen:&#039;&#039;&#039; contendrá la URL a abrir al hacer click sobre una notificación de tipo &#039;&#039;&#039;“openUrl”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external1:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external2:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external3:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external4:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external5:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;androidNotyStyle:&#039;&#039;&#039; contendrá &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039; cuando queramos mostrar una imagen junto con la notificación en los dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;. En caso de no querer mostrar ninguna imagen no se utilizara este campo.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleUrlImage:&#039;&#039;&#039; contendrá la URL de la imagen que se quiera mostrar en los dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;, siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle&amp;quot;&#039;&#039;&#039;. Cabe destacar que la URL deberá ser segura ( https ) y deberá contener la extension del contenido en dicha URL.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleExpandedTitle:&#039;&#039;&#039; contendrá el texto que se mostrará como titulo al expandir una notificación que contenga una imagen en dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;,  siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleExpandedSumaryText:&#039;&#039;&#039; contendrá el texto que se mostrará como mensaje al expandir una notificación que contenga una imagen en dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039; ,  siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;extra-content:&#039;&#039;&#039; este campo solo se usará para notificaciones dirigidas a dispositivos con &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá la URL del contenido extra que se quiere mostrar junto con la notificación. En este caso y a diferencia de &#039;&#039;&#039;Android ( bigPictureStyleUrlImage )&#039;&#039;&#039;, dicho contenido podrá ser una imagen, un giff, un video o un audio. La URL también deberá ser segura ( https )  y deberá contener la extension del contenido en dicha URL.&lt;br /&gt;
#&#039;&#039;&#039;channel:&#039;&#039;&#039; A partir de Android O, las notificaciones deberán ir por un canal de notificaciones instanciado en su aplicación. Esta variable contendrá el nombre del canal por el que han de salir.&lt;br /&gt;
#&#039;&#039;&#039;thread-id:&#039;&#039;&#039; A partir de iOs 12, las notificaciones pueden ser agrupadas. Para ello deberemos mandar el mismo thread-id en todas las notificaciones que queramos agrupar.&lt;br /&gt;
&lt;br /&gt;
=Notificaciones Android=&lt;br /&gt;
En este apartado veremos los distintos tipos de notificaciones para dispositivos Android mas detalladamente complementándolo con ejemplos funcionales:&lt;br /&gt;
#&#039;&#039;&#039;normal:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApp:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenApp+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenApp+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenApp&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenApp&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openUrl:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenUrl+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenUrl+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;url_pagina_abrir&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenUrl&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenUrl&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;url_pagina_abrir&#039;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApppWithExtras:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con customType:&#039;&#039;&#039; Las notificaciones personalizadas, solo lanzarán la notificación si la APP se encuentra en background, en caso de estar en foreground (primer plano), no lanzará la notificación.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;no&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;no&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Push_a_extras_p.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin notificación:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Silent&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Silent&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external1&#039;] = &#039;variable1&#039;;&lt;br /&gt;
$arr_data[&#039;external3&#039;] = &#039;variable3&#039;;&lt;br /&gt;
$arr_data[&#039;external5&#039;] = &#039;variable5&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Independientemente de los anteriores tipos:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;sendingId:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token_exchange = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + sendingId&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + sendingId&#039;;&lt;br /&gt;
&lt;br /&gt;
$array_tokens = array(); // ARRAY CON TODOS LOS USUARIOS QUE QUEREMOS QUE RECIBAN LA NOTIFICACION&lt;br /&gt;
$array_tokens_enviar = array(); // ARRAY QUE SE USA PARA MANDAR DE 500 EN 500&lt;br /&gt;
$contador = 0; // VARIABLE DE CONTROL PARA ENVIAR 500 USUARIOS&lt;br /&gt;
$json_datos_devueltos = array(); // ARRAY QUE CONTENDRA LA RESPUESTA RECIBIDA DE LA API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
foreach( $array_tokens as $token ){ // 1.- MANDAMOS A LA API DE 500 EN 500 PARA NO SATURARLA&lt;br /&gt;
	&lt;br /&gt;
	if( $contador &amp;gt;= 500 ){&lt;br /&gt;
		&lt;br /&gt;
		$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
		&lt;br /&gt;
		$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
		$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
		&lt;br /&gt;
		if ( isset($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) AND !empty($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) ){ // ESTO SE OBTENDRA DESPUES DE LANZAR LOS PRIMEROS 500 USUARIOS&lt;br /&gt;
			&lt;br /&gt;
			$arr_data[&#039;sendingId&#039;] = $json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;];&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		$contador = 0;&lt;br /&gt;
		$array_tokens_enviar = array();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$array_tokens_enviar[] = $token[&#039;token_del_usuario&#039;]; // EN NUESTRO CASO LA VARIABLE $token ES UN ARRAY CON MAS DATOS&lt;br /&gt;
	$contador += 1;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if( count($array_tokens_enviar) &amp;gt; 0 ) { // 2.- MANDAMOS LOS QUE FALTEN, LOS RESTOS QUE NO HAYAN LLEGADO A 500&lt;br /&gt;
				&lt;br /&gt;
	$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
	$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
	&lt;br /&gt;
	$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;language:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;language&#039;] = &#039;es&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;country:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;country&#039;] = &#039;ES&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;deviceType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + TipoDispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + TipoDispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;deviceType&#039;] = &#039;movil&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;appVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + VersionAplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + VersionAplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;appVersion&#039;] = &#039;1.0&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + VersionTerminal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + VersionTerminal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;terminalVersion&#039;] = &#039;6.0.1&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Notificaciones iOs=&lt;br /&gt;
En este apartado veremos los distintos tipos de notificaciones para dispositivos iOs mas detalladamente complementándolo con ejemplos funcionales:&lt;br /&gt;
#&#039;&#039;&#039;normal:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApp:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir App Con Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir App Con Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir App&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir App&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openUrl:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;https://....&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir Url Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir Url Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;https://....&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir Url&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir Url&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApppWithExtras:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Silenciosa:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_eleccion_desarrollador&#039;;&lt;br /&gt;
$arr_data[&#039;external_1&#039;] = &#039;variable_extra_1&#039;;&lt;br /&gt;
$arr_data[&#039;external_2&#039;] = &#039;variable_extra_2&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;silentNumber&#039;] = &#039;6&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Push_i_extras_p_s.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Silenciosa:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;external_1&#039;] = &#039;variable_extra_1&#039;;&lt;br /&gt;
$arr_data[&#039;external_2&#039;] = &#039;variable_extra_2&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;silentNumber&#039;] = &#039;6&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Independientemente de los anteriores tipos:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;sendingId:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token_exchange = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + sendingId&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + sendingId&#039;;&lt;br /&gt;
&lt;br /&gt;
$array_tokens = array(); // ARRAY CON TODOS LOS USUARIOS QUE QUEREMOS QUE RECIBAN LA NOTIFICACION&lt;br /&gt;
$array_tokens_enviar = array(); // ARRAY QUE SE USA PARA MANDAR DE 500 EN 500&lt;br /&gt;
$contador = 0; // VARIABLE DE CONTROL PARA ENVIAR 500 USUARIOS&lt;br /&gt;
$json_datos_devueltos = array(); // ARRAY QUE CONTENDRA LA RESPUESTA RECIBIDA DE LA API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
foreach( $array_tokens as $token ){ // 1.- MANDAMOS A LA API DE 500 EN 500 PARA NO SATURARLA&lt;br /&gt;
	&lt;br /&gt;
	if( $contador &amp;gt;= 500 ){&lt;br /&gt;
		&lt;br /&gt;
		$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
		&lt;br /&gt;
		$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
		$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
		&lt;br /&gt;
		if ( isset($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) AND !empty($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) ){ // ESTO SE OBTENDRA DESPUES DE LANZAR LOS PRIMEROS 500 USUARIOS&lt;br /&gt;
			&lt;br /&gt;
			$arr_data[&#039;sendingId&#039;] = $json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;];&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		$contador = 0;&lt;br /&gt;
		$array_tokens_enviar = array();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$array_tokens_enviar[] = $token[&#039;token_del_usuario&#039;]; // EN NUESTRO CASO LA VARIABLE $token ES UN ARRAY CON MAS DATOS&lt;br /&gt;
	$contador += 1;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if( count($array_tokens_enviar) &amp;gt; 0 ) { // 2.- MANDAMOS LOS QUE FALTEN, LOS RESTOS QUE NO HAYAN LLEGADO A 500&lt;br /&gt;
				&lt;br /&gt;
	$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
	$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
	&lt;br /&gt;
	$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;language:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;language&#039;] = &#039;es&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;country:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;country&#039;] = &#039;ES&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;deviceType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Tipo Dispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Tipo Dispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;deviceType&#039;] = &#039;iphone&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;appVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Version Aplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Version Aplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;appVersion&#039;] = &#039;3.4&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Version Terminal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Version Terminal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;terminalVersion&#039;] = &#039;10.3&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Respuesta setPush=&lt;br /&gt;
La respuesta que recibiremos por parte de la API siempre será un JSON.  Dicho JSON contendrá de tres a cinco posiciones/elementos:&lt;br /&gt;
#&#039;&#039;&#039;responsecode:&#039;&#039;&#039; determinará si la acción a realizar sobre la API ha funcionado o no. En caso de ser &#039;&#039;&#039;negativo&#039;&#039;&#039; devolverá &#039;&#039;&#039;“KO”&#039;&#039;&#039; y en caso de ser &#039;&#039;&#039;positivo&#039;&#039;&#039; será &#039;&#039;&#039;“OK”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;errorcode:&#039;&#039;&#039; en caso de que el &#039;&#039;&#039;responsecode&#039;&#039;&#039; sea &#039;&#039;&#039;“KO”&#039;&#039;&#039;, devolverá el código de error en nuestro sistema. Por el contrario, si el &#039;&#039;&#039;responsecode&#039;&#039;&#039; es &#039;&#039;&#039;“OK”&#039;&#039;&#039;, devolverá un 0.&lt;br /&gt;
#&#039;&#039;&#039;errortext:&#039;&#039;&#039; contendrá el texto del error que se ha producido, por lo que como se deduce esto solo saldrá cuando la acción sobre la API no se haya podido ejecutar. &lt;br /&gt;
#&#039;&#039;&#039;data:&#039;&#039;&#039; contendrá el resultado de la acción realizada satisfactoriamente sobre la API. Si ha habido un error esta posición &#039;&#039;&#039;no se generará&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;timestamp:&#039;&#039;&#039; devolverá la fecha en timestamp en la que la acción sobre la API ha sido realizada correctamente. Si ha habido un error esta posición &#039;&#039;&#039;no se generará&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En resumen, si la acción a realizar sobre la API ha dado error, el JSON contendrá los elementos ( responsecode, errorcode y errortext).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_error.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Por el contrario si la acción ha finalizado correcta y satisfactoriamente, el JSON contendrá los elementos ( responsecode, errorcode, data y timestamp). &lt;br /&gt;
Para el caso de crear una notificación ( &#039;&#039;&#039;setPush&#039;&#039;&#039; ), y que haya funcionado correctamente, en la respuesta se generará algo tal que la siguiente imágen:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_noerror.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En el contenido del elemento &#039;&#039;&#039;data&#039;&#039;&#039;, se mostrara las notificaciones que se han podido enviar, las que no se han podido enviar, el ID que se genera en nuestro sistema asociado al envío solicitado y un array con los tokens enviados ( &#039;&#039;&#039;deletedArray&#039;&#039;&#039; ) y un array con los tokens que no se han podido enviar ( &#039;&#039;&#039;deletedWithoutSend&#039;&#039;&#039; ).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Este último caso, el del array con los tokens que no se han podido enviar solo se informará en el caso de que al enviar la acción &#039;&#039;&#039;setPush&#039;&#039;&#039;, en la posición &#039;&#039;&#039;terminalTokens&#039;&#039;&#039;, se mande &#039;&#039;&#039;un array con los terminales en concreto que se quieren notificar&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En el caso del array con los dispositivos notificados, se apreciará una segmentación por &#039;&#039;&#039;SO&#039;&#039;&#039;. En caso de que uno de estos dispositivos no haya podido recibir la notificación por problemas  como bien puede ser un token obsoleto, se borrará de nuestro sistema y el token se informará en la posición  ( &#039;&#039;&#039;deletedTokens&#039;&#039;&#039; ).&lt;br /&gt;
&lt;br /&gt;
=Obtención de usuarios registrados en su aplicación=&lt;br /&gt;
Para obtener un conteo de usuarios registrados en nuestra aplicación y los datos de estos, deberemos hacer uso de la tarea &#039;&#039;&#039;“getPushTokens”&#039;&#039;&#039; y el hash de la aplicación registrada en nuestro panel. Dicho hash podremos verlo en cualquier momento desde la sección [https://panel.mobeleader.com/index.php?sec=6 Mis Apps] de nuestro panel. Una vez obtengamos dicho hash procederemos a conectarnos a la API de la manera expuesta en la a continuación:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;getPushTokens&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_getPushTokens.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Como se puede apreciar en la respuesta, &#039;&#039;&#039;la posición respondecode es “OK”&#039;&#039;&#039;. Al igual que en el caso del &#039;&#039;&#039;“ping”&#039;&#039;&#039;, siempre que el &#039;&#039;&#039;responsecode&#039;&#039;&#039; sea &#039;&#039;&#039;”OK”&#039;&#039;&#039; significara que la acción a realizar sobre la API ha finalizado correctamente y que en la posición &#039;&#039;&#039;“data”&#039;&#039;&#039; vendrá los solicitado, en este caso los datos de los terminales registrados en la aplicación.&lt;br /&gt;
&lt;br /&gt;
=Borrado de usuarios registrados en su aplicación=&lt;br /&gt;
Una vez obtenidos los datos mediante la tarea &#039;&#039;&#039;“getPushTokens”&#039;&#039;&#039;, si quisiéramos  borrar alguno de dichos tokens de nuestro sistema, deberemos hacer uso de la tarea &#039;&#039;&#039;“deletePushTokens”&#039;&#039;&#039; usando el hash de la aplicación de la misma manera que en la obtención de usuarios, y pasándole el token o los tokens que quisiéramos borrar. Lo haremos de la siguiente manera:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;tokens&#039;][] = &#039;token_del_usuario_registrado&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;deletePushTokens&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_deletePushTokens.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Como siempre, en caso de que el &#039;&#039;&#039;responsecode sea “OK”&#039;&#039;&#039;, en la &#039;&#039;&#039;posición “data”&#039;&#039;&#039; veremos el número de tokens borrados.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Docu_push_exchange&amp;diff=2768</id>
		<title>Docu push exchange</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Docu_push_exchange&amp;diff=2768"/>
		<updated>2019-06-07T11:27:20Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Obtención de usuarios registrados en su aplicación */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introducción=&lt;br /&gt;
En este documento se va a mostrar como ha de ser el contenido que se mande al api-exchange para realizar las distintas acciones que ésta nos permite. Se expondrá brevemente como ha de realizarse la conexión a dicha API, como han de ser los campos obligatorios que han de ir para todos los casos y a continuación se procederá a tratar todos los casos con ejemplos para un mayor entendimiento.&lt;br /&gt;
&lt;br /&gt;
=Conectándonos a la API=&lt;br /&gt;
Lo primero que deberemos hacer es solicitar el token necesario para poder realizar la conexión a nuestro sistema. Dicho token es un identificador único para cada usuario desarrollador. Una vez obtenido dicho token, procederemos a hacer una breve prueba de conexión para comprobar que tenemos acceso a la API. En dicha prueba haremos uso de la tarea &#039;&#039;&#039;“ping”&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;ping&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Conexion_ping.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En la imagen vemos como ha de ser el código necesario para realizar dicha prueba y el resultado transformado a un array. Si la posición del &#039;&#039;&#039;responsecode&#039;&#039;&#039; es &#039;&#039;&#039;“OK”&#039;&#039;&#039; significa que todo ha ido correctamente y en la posición &#039;&#039;&#039;data&#039;&#039;&#039; deberemos ver &#039;&#039;&#039;“pong”&#039;&#039;&#039;. Mientras esta prueba no de este resultado no podremos hacer ninguna acción más sobre la API.&lt;br /&gt;
&lt;br /&gt;
=Campos Obligatorios y No Obligatorios para las notificaciones=&lt;br /&gt;
Para generar notificaciones desde nuestro sistema, en la conexión con la API deberá ir especificada la tarea &#039;&#039;&#039;“setPush”&#039;&#039;&#039;, junto un array de datos con una serie de campos.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Independientemente del sistema operativo al que vaya la notificación, hay unos campos que &#039;&#039;&#039;son obligatorios&#039;&#039;&#039;; son los siguientes:&lt;br /&gt;
#&#039;&#039;&#039;appHash:&#039;&#039;&#039; contendrá el hash de la aplicación registrada, automáticamente generado por nuestro panel.&lt;br /&gt;
#&#039;&#039;&#039;terminalTokens:&#039;&#039;&#039; este campo podrá tener más de un formato, de manera que los dispositivos que reciban la notificación puedan ser diferentes.&lt;br /&gt;
#*En caso de &#039;&#039;&#039;tratarse de un array&#039;&#039;&#039;, se mandará la notificación a todos los tokens de dicho array.&lt;br /&gt;
#*En caso de &#039;&#039;&#039;no ser un  array&#039;&#039;&#039;, podrá contener lo siguiente:&lt;br /&gt;
##&#039;&#039;&#039;all:&#039;&#039;&#039; En este caso se notificará a todos los dispositivos que estén registrados en la aplicación sin tener en cuenta el SO.&lt;br /&gt;
##&#039;&#039;&#039;onlyAndroid:&#039;&#039;&#039; Solo se notificará a los terminales con &#039;&#039;&#039;SO Android&#039;&#039;&#039; que estén registrados en la aplicación.&lt;br /&gt;
##&#039;&#039;&#039;onlyIOS:&#039;&#039;&#039; Solo se notificará a los terminales con &#039;&#039;&#039;SO IOs&#039;&#039;&#039; que estén registrados en la aplicación.&lt;br /&gt;
##&#039;&#039;&#039;Un token de un dispositivo en concreto,&#039;&#039;&#039; de manera que solo se le notifique a éste.&lt;br /&gt;
#&#039;&#039;&#039;message:&#039;&#039;&#039; contendrá el texto de la notificación.&lt;br /&gt;
#&#039;&#039;&#039;type:&#039;&#039;&#039; contendrá el tipo de notificación pudiendo ser este de de diversa índole.&lt;br /&gt;
#*&#039;&#039;&#039;normal:&#039;&#039;&#039; este tipo será el más común, el dispositivo recibirá la notificación y no se hará mas con ésta.&lt;br /&gt;
#*&#039;&#039;&#039;openApp:&#039;&#039;&#039; este tipo hará que al hacer click sobre la notificación se abra la aplicación encargada de mostrar dicha notificación.&lt;br /&gt;
#*&#039;&#039;&#039;openUrl:&#039;&#039;&#039; este tipo hará que al hacer click sobre la notificación se abra una URL especificada en otro campo que veremos más adelante.&lt;br /&gt;
#*&#039;&#039;&#039;openAppWithextras:&#039;&#039;&#039; este tipo hará lo mismo que el &#039;&#039;&#039;“openApp”&#039;&#039;&#039; pudiendo ademas añadir hasta cinco variables extra para poder tratarlas a nuestro gusto en la aplicación. Cabe destacar que este tipo de notificación, nos permitirá hacer uso de otro campo no obligatorio que más adelante trataremos, el cual se llama &#039;&#039;&#039;&amp;quot;customType”&#039;&#039;&#039; y nos permitirá lanzar notificaciones &#039;&#039;&#039;“personalizadas”&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez vistos los campos obligatorios, a continuación se expondrán todos los &#039;&#039;&#039;campos no obligatorios&#039;&#039;&#039; que darán forma a las notificaciones:&lt;br /&gt;
#&#039;&#039;&#039;tittle:&#039;&#039;&#039; contendrá el texto del título que se mostrara junto con el mensaje de la notificación.&lt;br /&gt;
#&#039;&#039;&#039;sendingId:&#039;&#039;&#039; en caso de querer lanzar una notificación para muchos terminales, como hemos expuesto en los campos obligatorios, inicialmente el campo &#039;&#039;&#039;”terminalTokens&amp;quot;&#039;&#039;&#039; deberá ser un array con dichos terminales. Debido a que la API no puede admitir un número ilimitado de tokens a la vez, deberemos &#039;&#039;&#039;segmentar&#039;&#039;&#039; dicho array en varios más pequeños y hacer tantos &#039;&#039;&#039;“setPush”&#039;&#039;&#039; como sean necesarios hasta finalizar con el número de dispositivos a notificar. Cada vez que nos conectemos a la API para hacer un &#039;&#039;&#039;“setPush”&#039;&#039;&#039; y generar una notificación, dicha conexión nos devolverá un JSON en el cual hay un campo denominado &#039;&#039;&#039;“sendingId”&#039;&#039;&#039; con el ID autonumérico generado en nuestro sistema para ese envío push. De ésta manera, si se recoge dicho ID y se pasa como campo en la posición &#039;&#039;&#039;“sendingId”&#039;&#039;&#039;, los siguientes tokens que se manden en el &#039;&#039;&#039;”terminalTokens”&#039;&#039;&#039; irán asociados al primer envío realizado.&lt;br /&gt;
#&#039;&#039;&#039;sandbox:&#039;&#039;&#039; este campo solo se usará cuando se vaya a notificar a algún dispositivo con &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá “yes” en caso de que dicho dispositivo este en el servidor de desarrollo de Apple, y un “no” en caso de que dicho dispositivo este en el servidor de producción de Apple.&lt;br /&gt;
#&#039;&#039;&#039;isTest:&#039;&#039;&#039; al igual que en el campo del &#039;&#039;&#039;“sandbox”&#039;&#039;&#039;, contendrá “yes” o “no” dependiendo de si el dispositivo esta en el servidor de desarrollo o el de producción de Apple.&lt;br /&gt;
#&#039;&#039;&#039;background:&#039;&#039;&#039; este campo solo irá en caso de ir a algún dispositivo que tenga &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá “yes” o “no”. En caso de ser afirmativo la notificación se mostrará sin hacer ruido ni vibrar. Para el caso de iOs esto generará un alert vació con el &#039;&#039;&#039;content-available a 1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;silent:&#039;&#039;&#039; Contendrá “yes” o “no”. En caso de ser afirmativo la notificación no se mostrará pero si lanzará el evento de la librería push encargado de escuchar si se ha recibido una notificación o no. De ésta manera podremos lanzar notificaciones que no se muestren, pero si hagan algo por detrás en la APP al recibirla. Para el caso de Android solo se usará este campo cuando el &#039;&#039;&#039;“type”&#039;&#039;&#039; de la notificación sea &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y se haga uso del campo no obligatorio &#039;&#039;&#039;“customType”&#039;&#039;&#039;. Para el caso de iOs esto generará un alert vació con el &#039;&#039;&#039;content-available a 1&#039;&#039;&#039; por defecto, pudiendo ser modificado por el siguiente campo que se expone a continuación ( &#039;&#039;&#039;silentNumber&#039;&#039;&#039; ). Como en el caso de Android esto solo tendrá sentido para las notificaciones de &#039;&#039;&#039;“type”&#039;&#039;&#039;  &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; , puesto que al no mostrar nada, se usarán para hacer cosas por detrás mediante los campos no obligatorios &#039;&#039;&#039;external1, external2, external3, external4 y external5&#039;&#039;&#039;. A diferencia de Android, en iOs se podrá usar con &#039;&#039;&#039;”customType”&#039;&#039;&#039; o sin el.&lt;br /&gt;
#&#039;&#039;&#039;silentNumber:&#039;&#039;&#039; este campo solo se usará para &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Es el número que aparecerá en el &#039;&#039;&#039;content-available&#039;&#039;&#039; en caso de que el campo &#039;&#039;&#039;silent&#039;&#039;&#039; sea &#039;&#039;&#039;&amp;quot;yes&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;customType:&#039;&#039;&#039; contendrá el texto del tipo de notificación personalizada que cada uno cree. Éste campo solo se podrá usar si previamente en el campo obligatorio &#039;&#039;&#039;“type”&#039;&#039;&#039; se ha puesto &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;badge:&#039;&#039;&#039; este campo será el número que se mostrará junto con la notificación en los dispositivos &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. A partir de iOs 10 las notificaciones &#039;&#039;&#039;no&#039;&#039;&#039; levantan la aplicación en caso de estar background, por lo que esto generará un &#039;&#039;&#039;content-available&#039;&#039;&#039; con el fin de despertar la aplicación y poder actualizar el icono de notificaciones pendientes en ésta.&lt;br /&gt;
#&#039;&#039;&#039;broadcast:&#039;&#039;&#039; esta variable solo será útil para dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;, contendrá el nombre de la clase instanciada en su aplicación para que se active al recibir la notificación.&lt;br /&gt;
#&#039;&#039;&#039;direct:&#039;&#039;&#039; contendra &amp;quot;yes&amp;quot; o &amp;quot;no&amp;quot;. En caso de ser afirmativo las notificaciones se enviarán al instante no pudiendo programarlas.&lt;br /&gt;
#&#039;&#039;&#039;whenSend:&#039;&#039;&#039; contendrá “immediately”, “programmatically” o “geolocation”. En caso de ser immediately el campo &#039;&#039;&#039;“direct”&#039;&#039;&#039; previamente descrito deberá ser &#039;&#039;&#039;“yes”&#039;&#039;&#039;. En caso de ser “programmatically” o “geolocation” el  campo &#039;&#039;&#039;“direct”&#039;&#039;&#039; previamente descrito deberá ser &#039;&#039;&#039;“no”&#039;&#039;&#039;, ademas el envío se programará según los siguientes campos no obligatorios que se le pase.&lt;br /&gt;
#*&#039;&#039;&#039;Programmatically:&#039;&#039;&#039; cuando la notificación  se quiera programar para una fecha en concreto , deberán existir los siguientes campos no obligatorios:&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyTime:&#039;&#039;&#039; contendrá la fecha en &#039;&#039;&#039;UNIXTIMESTAMP&#039;&#039;&#039; en la que se lanzará la notificación, si se usa este campo no obligatorio no deberemos usar los siguientes.&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronMinutes:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronHours:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronDays:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronMonths:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
#*&#039;&#039;&#039;Geolocation:&#039;&#039;&#039; cuando se quiera programar por geolocalización una notificación, deberán existir los siguientes campos no obligatorios:&lt;br /&gt;
##&#039;&#039;&#039;geolocationCoordinates:&#039;&#039;&#039; será un array en el que la posición &#039;&#039;&#039;cero&#039;&#039;&#039; será la &#039;&#039;&#039;latitud&#039;&#039;&#039; y la &#039;&#039;&#039;uno&#039;&#039;&#039; la &#039;&#039;&#039;longitud&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;geolocationMeters:&#039;&#039;&#039; contendrá los metros a los que hemos de estar de las coordenadas especificadas para que lance la notificación.&lt;br /&gt;
#&#039;&#039;&#039;languaje:&#039;&#039;&#039; contendrá el idioma del dispositivo. &#039;&#039;&#039;Ejemplo: es&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;country:&#039;&#039;&#039; contendrá el país del dispositivo. &#039;&#039;&#039;Ejemplo: ES&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;deviceType:&#039;&#039;&#039; contendrá el tipo de dispositivo al que se le mandará la notificación pudiendo ser:&lt;br /&gt;
#*&#039;&#039;&#039;Para Android:&#039;&#039;&#039;&lt;br /&gt;
##&#039;&#039;&#039;movil&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;tableta&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;reloj&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;tv&#039;&#039;&#039;.&lt;br /&gt;
#*&#039;&#039;&#039;Para iOs:&#039;&#039;&#039;&lt;br /&gt;
##&#039;&#039;&#039;iphone&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;ipad&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;iwatch&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;appletv&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;appVersion:&#039;&#039;&#039; contendrá la versión de la aplicación a la que esta dirigida la notificación. &#039;&#039;&#039;Ejemplo: 1.0.1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039; contendrá la versión del terminal al que ira dirigida la notificación. &#039;&#039;&#039;Ejemplo: 6.0.1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;urlToOpen:&#039;&#039;&#039; contendrá la URL a abrir al hacer click sobre una notificación de tipo &#039;&#039;&#039;“openUrl”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external1:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external2:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external3:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external4:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external5:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;androidNotyStyle:&#039;&#039;&#039; contendrá &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039; cuando queramos mostrar una imagen junto con la notificación en los dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;. En caso de no querer mostrar ninguna imagen no se utilizara este campo.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleUrlImage:&#039;&#039;&#039; contendrá la URL de la imagen que se quiera mostrar en los dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;, siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle&amp;quot;&#039;&#039;&#039;. Cabe destacar que la URL deberá ser segura ( https ) y deberá contener la extension del contenido en dicha URL.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleExpandedTitle:&#039;&#039;&#039; contendrá el texto que se mostrará como titulo al expandir una notificación que contenga una imagen en dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;,  siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleExpandedSumaryText:&#039;&#039;&#039; contendrá el texto que se mostrará como mensaje al expandir una notificación que contenga una imagen en dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039; ,  siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;extra-content:&#039;&#039;&#039; este campo solo se usará para notificaciones dirigidas a dispositivos con &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá la URL del contenido extra que se quiere mostrar junto con la notificación. En este caso y a diferencia de &#039;&#039;&#039;Android ( bigPictureStyleUrlImage )&#039;&#039;&#039;, dicho contenido podrá ser una imagen, un giff, un video o un audio. La URL también deberá ser segura ( https )  y deberá contener la extension del contenido en dicha URL.&lt;br /&gt;
#&#039;&#039;&#039;channel:&#039;&#039;&#039; A partir de Android O, las notificaciones deberán ir por un canal de notificaciones instanciado en su aplicación. Esta variable contendrá el nombre del canal por el que han de salir.&lt;br /&gt;
#&#039;&#039;&#039;thread-id:&#039;&#039;&#039; A partir de iOs 12, las notificaciones pueden ser agrupadas. Para ello deberemos mandar el mismo thread-id en todas las notificaciones que queramos agrupar.&lt;br /&gt;
&lt;br /&gt;
=Notificaciones Android=&lt;br /&gt;
En este apartado veremos los distintos tipos de notificaciones para dispositivos Android mas detalladamente complementándolo con ejemplos funcionales:&lt;br /&gt;
#&#039;&#039;&#039;normal:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApp:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenApp+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenApp+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenApp&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenApp&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openUrl:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenUrl+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenUrl+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;url_pagina_abrir&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenUrl&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenUrl&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;url_pagina_abrir&#039;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApppWithExtras:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con customType:&#039;&#039;&#039; Las notificaciones personalizadas, solo lanzarán la notificación si la APP se encuentra en background, en caso de estar en foreground (primer plano), no lanzará la notificación.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;no&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;no&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Push_a_extras_p.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin notificación:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Silent&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Silent&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external1&#039;] = &#039;variable1&#039;;&lt;br /&gt;
$arr_data[&#039;external3&#039;] = &#039;variable3&#039;;&lt;br /&gt;
$arr_data[&#039;external5&#039;] = &#039;variable5&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Independientemente de los anteriores tipos:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;sendingId:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token_exchange = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + sendingId&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + sendingId&#039;;&lt;br /&gt;
&lt;br /&gt;
$array_tokens = array(); // ARRAY CON TODOS LOS USUARIOS QUE QUEREMOS QUE RECIBAN LA NOTIFICACION&lt;br /&gt;
$array_tokens_enviar = array(); // ARRAY QUE SE USA PARA MANDAR DE 500 EN 500&lt;br /&gt;
$contador = 0; // VARIABLE DE CONTROL PARA ENVIAR 500 USUARIOS&lt;br /&gt;
$json_datos_devueltos = array(); // ARRAY QUE CONTENDRA LA RESPUESTA RECIBIDA DE LA API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
foreach( $array_tokens as $token ){ // 1.- MANDAMOS A LA API DE 500 EN 500 PARA NO SATURARLA&lt;br /&gt;
	&lt;br /&gt;
	if( $contador &amp;gt;= 500 ){&lt;br /&gt;
		&lt;br /&gt;
		$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
		&lt;br /&gt;
		$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
		$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
		&lt;br /&gt;
		if ( isset($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) AND !empty($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) ){ // ESTO SE OBTENDRA DESPUES DE LANZAR LOS PRIMEROS 500 USUARIOS&lt;br /&gt;
			&lt;br /&gt;
			$arr_data[&#039;sendingId&#039;] = $json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;];&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		$contador = 0;&lt;br /&gt;
		$array_tokens_enviar = array();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$array_tokens_enviar[] = $token[&#039;token_del_usuario&#039;]; // EN NUESTRO CASO LA VARIABLE $token ES UN ARRAY CON MAS DATOS&lt;br /&gt;
	$contador += 1;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if( count($array_tokens_enviar) &amp;gt; 0 ) { // 2.- MANDAMOS LOS QUE FALTEN, LOS RESTOS QUE NO HAYAN LLEGADO A 500&lt;br /&gt;
				&lt;br /&gt;
	$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
	$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
	&lt;br /&gt;
	$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;language:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;language&#039;] = &#039;es&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;country:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;country&#039;] = &#039;ES&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;deviceType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + TipoDispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + TipoDispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;deviceType&#039;] = &#039;movil&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;appVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + VersionAplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + VersionAplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;appVersion&#039;] = &#039;1.0&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + VersionTerminal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + VersionTerminal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;terminalVersion&#039;] = &#039;6.0.1&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Notificaciones iOs=&lt;br /&gt;
En este apartado veremos los distintos tipos de notificaciones para dispositivos iOs mas detalladamente complementándolo con ejemplos funcionales:&lt;br /&gt;
#&#039;&#039;&#039;normal:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApp:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir App Con Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir App Con Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir App&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir App&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openUrl:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;https://....&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir Url Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir Url Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;https://....&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir Url&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir Url&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApppWithExtras:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Silenciosa:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_eleccion_desarrollador&#039;;&lt;br /&gt;
$arr_data[&#039;external_1&#039;] = &#039;variable_extra_1&#039;;&lt;br /&gt;
$arr_data[&#039;external_2&#039;] = &#039;variable_extra_2&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;silentNumber&#039;] = &#039;6&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Push_i_extras_p_s.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Silenciosa:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;external_1&#039;] = &#039;variable_extra_1&#039;;&lt;br /&gt;
$arr_data[&#039;external_2&#039;] = &#039;variable_extra_2&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;silentNumber&#039;] = &#039;6&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Independientemente de los anteriores tipos:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;sendingId:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token_exchange = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + sendingId&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + sendingId&#039;;&lt;br /&gt;
&lt;br /&gt;
$array_tokens = array(); // ARRAY CON TODOS LOS USUARIOS QUE QUEREMOS QUE RECIBAN LA NOTIFICACION&lt;br /&gt;
$array_tokens_enviar = array(); // ARRAY QUE SE USA PARA MANDAR DE 500 EN 500&lt;br /&gt;
$contador = 0; // VARIABLE DE CONTROL PARA ENVIAR 500 USUARIOS&lt;br /&gt;
$json_datos_devueltos = array(); // ARRAY QUE CONTENDRA LA RESPUESTA RECIBIDA DE LA API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
foreach( $array_tokens as $token ){ // 1.- MANDAMOS A LA API DE 500 EN 500 PARA NO SATURARLA&lt;br /&gt;
	&lt;br /&gt;
	if( $contador &amp;gt;= 500 ){&lt;br /&gt;
		&lt;br /&gt;
		$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
		&lt;br /&gt;
		$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
		$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
		&lt;br /&gt;
		if ( isset($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) AND !empty($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) ){ // ESTO SE OBTENDRA DESPUES DE LANZAR LOS PRIMEROS 500 USUARIOS&lt;br /&gt;
			&lt;br /&gt;
			$arr_data[&#039;sendingId&#039;] = $json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;];&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		$contador = 0;&lt;br /&gt;
		$array_tokens_enviar = array();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$array_tokens_enviar[] = $token[&#039;token_del_usuario&#039;]; // EN NUESTRO CASO LA VARIABLE $token ES UN ARRAY CON MAS DATOS&lt;br /&gt;
	$contador += 1;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if( count($array_tokens_enviar) &amp;gt; 0 ) { // 2.- MANDAMOS LOS QUE FALTEN, LOS RESTOS QUE NO HAYAN LLEGADO A 500&lt;br /&gt;
				&lt;br /&gt;
	$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
	$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
	&lt;br /&gt;
	$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;language:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;language&#039;] = &#039;es&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;country:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;country&#039;] = &#039;ES&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;deviceType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Tipo Dispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Tipo Dispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;deviceType&#039;] = &#039;iphone&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;appVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Version Aplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Version Aplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;appVersion&#039;] = &#039;3.4&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Version Terminal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Version Terminal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;terminalVersion&#039;] = &#039;10.3&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Respuesta setPush=&lt;br /&gt;
La respuesta que recibiremos por parte de la API siempre será un JSON.  Dicho JSON contendrá de tres a cinco posiciones/elementos:&lt;br /&gt;
#&#039;&#039;&#039;responsecode:&#039;&#039;&#039; determinará si la acción a realizar sobre la API ha funcionado o no. En caso de ser &#039;&#039;&#039;negativo&#039;&#039;&#039; devolverá &#039;&#039;&#039;“KO”&#039;&#039;&#039; y en caso de ser &#039;&#039;&#039;positivo&#039;&#039;&#039; será &#039;&#039;&#039;“OK”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;errorcode:&#039;&#039;&#039; en caso de que el &#039;&#039;&#039;responsecode&#039;&#039;&#039; sea &#039;&#039;&#039;“KO”&#039;&#039;&#039;, devolverá el código de error en nuestro sistema. Por el contrario, si el &#039;&#039;&#039;responsecode&#039;&#039;&#039; es &#039;&#039;&#039;“OK”&#039;&#039;&#039;, devolverá un 0.&lt;br /&gt;
#&#039;&#039;&#039;errortext:&#039;&#039;&#039; contendrá el texto del error que se ha producido, por lo que como se deduce esto solo saldrá cuando la acción sobre la API no se haya podido ejecutar. &lt;br /&gt;
#&#039;&#039;&#039;data:&#039;&#039;&#039; contendrá el resultado de la acción realizada satisfactoriamente sobre la API. Si ha habido un error esta posición &#039;&#039;&#039;no se generará&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;timestamp:&#039;&#039;&#039; devolverá la fecha en timestamp en la que la acción sobre la API ha sido realizada correctamente. Si ha habido un error esta posición &#039;&#039;&#039;no se generará&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En resumen, si la acción a realizar sobre la API ha dado error, el JSON contendrá los elementos ( responsecode, errorcode y errortext).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_error.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Por el contrario si la acción ha finalizado correcta y satisfactoriamente, el JSON contendrá los elementos ( responsecode, errorcode, data y timestamp). &lt;br /&gt;
Para el caso de crear una notificación ( &#039;&#039;&#039;setPush&#039;&#039;&#039; ), y que haya funcionado correctamente, en la respuesta se generará algo tal que la siguiente imágen:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_noerror.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En el contenido del elemento &#039;&#039;&#039;data&#039;&#039;&#039;, se mostrara las notificaciones que se han podido enviar, las que no se han podido enviar, el ID que se genera en nuestro sistema asociado al envío solicitado y un array con los tokens enviados ( &#039;&#039;&#039;deletedArray&#039;&#039;&#039; ) y un array con los tokens que no se han podido enviar ( &#039;&#039;&#039;deletedWithoutSend&#039;&#039;&#039; ).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Este último caso, el del array con los tokens que no se han podido enviar solo se informará en el caso de que al enviar la acción &#039;&#039;&#039;setPush&#039;&#039;&#039;, en la posición &#039;&#039;&#039;terminalTokens&#039;&#039;&#039;, se mande &#039;&#039;&#039;un array con los terminales en concreto que se quieren notificar&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En el caso del array con los dispositivos notificados, se apreciará una segmentación por &#039;&#039;&#039;SO&#039;&#039;&#039;. En caso de que uno de estos dispositivos no haya podido recibir la notificación por problemas  como bien puede ser un token obsoleto, se borrará de nuestro sistema y el token se informará en la posición  ( &#039;&#039;&#039;deletedTokens&#039;&#039;&#039; ).&lt;br /&gt;
&lt;br /&gt;
=Obtención de usuarios registrados en su aplicación=&lt;br /&gt;
Para obtener un conteo de usuarios registrados en nuestra aplicación y los datos de estos, deberemos hacer uso de la tarea &#039;&#039;&#039;“getPushTokens”&#039;&#039;&#039; y el hash de la aplicación registrada en nuestro panel. Dicho hash podremos verlo en cualquier momento desde la sección [https://panel.mobeleader.com/index.php?sec=6 Mis Apps] de nuestro panel. Una vez obtengamos dicho hash procederemos a conectarnos a la API de la manera expuesta en la a continuación:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;getPushTokens&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_getPushTokens.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Como se puede apreciar en la respuesta, &#039;&#039;&#039;la posición respondecode es “OK”&#039;&#039;&#039;. Al igual que en el caso del &#039;&#039;&#039;“ping”&#039;&#039;&#039;, siempre que el &#039;&#039;&#039;responsecode&#039;&#039;&#039; sea &#039;&#039;&#039;”OK”&#039;&#039;&#039; significara que la acción a realizar sobre la API ha finalizado correctamente y que en la posición &#039;&#039;&#039;“data”&#039;&#039;&#039; vendrá los solicitado, en este caso los datos de los terminales registrados en la aplicación.&lt;br /&gt;
&lt;br /&gt;
=Borrado de usuarios registrados en su aplicación=&lt;br /&gt;
Una vez obtenidos los datos mediante la tarea &#039;&#039;&#039;“getPushTokens”&#039;&#039;&#039;, si quisiéramos  borrar alguno de dichos tokens del sistema de Mobeleader, deberemos hacer uso de la tarea &#039;&#039;&#039;“deletePushTokens”&#039;&#039;&#039; usando el hash de la aplicación de la misma manera que en la obtención de usuarios, y pasándole el token o los tokens que quisiéramos borrar. Lo haremos de la siguiente manera:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;tokens&#039;][] = &#039;token_del_usuario_registrado&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;deletePushTokens&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_deletePushTokens.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Como siempre, en caso de que el &#039;&#039;&#039;responsecode sea “OK”&#039;&#039;&#039;, en la &#039;&#039;&#039;posición “data”&#039;&#039;&#039; veremos el número de tokens borrados.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Docu_push_exchange&amp;diff=2767</id>
		<title>Docu push exchange</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Docu_push_exchange&amp;diff=2767"/>
		<updated>2019-06-07T11:24:42Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Notificaciones iOs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introducción=&lt;br /&gt;
En este documento se va a mostrar como ha de ser el contenido que se mande al api-exchange para realizar las distintas acciones que ésta nos permite. Se expondrá brevemente como ha de realizarse la conexión a dicha API, como han de ser los campos obligatorios que han de ir para todos los casos y a continuación se procederá a tratar todos los casos con ejemplos para un mayor entendimiento.&lt;br /&gt;
&lt;br /&gt;
=Conectándonos a la API=&lt;br /&gt;
Lo primero que deberemos hacer es solicitar el token necesario para poder realizar la conexión a nuestro sistema. Dicho token es un identificador único para cada usuario desarrollador. Una vez obtenido dicho token, procederemos a hacer una breve prueba de conexión para comprobar que tenemos acceso a la API. En dicha prueba haremos uso de la tarea &#039;&#039;&#039;“ping”&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;ping&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Conexion_ping.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En la imagen vemos como ha de ser el código necesario para realizar dicha prueba y el resultado transformado a un array. Si la posición del &#039;&#039;&#039;responsecode&#039;&#039;&#039; es &#039;&#039;&#039;“OK”&#039;&#039;&#039; significa que todo ha ido correctamente y en la posición &#039;&#039;&#039;data&#039;&#039;&#039; deberemos ver &#039;&#039;&#039;“pong”&#039;&#039;&#039;. Mientras esta prueba no de este resultado no podremos hacer ninguna acción más sobre la API.&lt;br /&gt;
&lt;br /&gt;
=Campos Obligatorios y No Obligatorios para las notificaciones=&lt;br /&gt;
Para generar notificaciones desde nuestro sistema, en la conexión con la API deberá ir especificada la tarea &#039;&#039;&#039;“setPush”&#039;&#039;&#039;, junto un array de datos con una serie de campos.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Independientemente del sistema operativo al que vaya la notificación, hay unos campos que &#039;&#039;&#039;son obligatorios&#039;&#039;&#039;; son los siguientes:&lt;br /&gt;
#&#039;&#039;&#039;appHash:&#039;&#039;&#039; contendrá el hash de la aplicación registrada, automáticamente generado por nuestro panel.&lt;br /&gt;
#&#039;&#039;&#039;terminalTokens:&#039;&#039;&#039; este campo podrá tener más de un formato, de manera que los dispositivos que reciban la notificación puedan ser diferentes.&lt;br /&gt;
#*En caso de &#039;&#039;&#039;tratarse de un array&#039;&#039;&#039;, se mandará la notificación a todos los tokens de dicho array.&lt;br /&gt;
#*En caso de &#039;&#039;&#039;no ser un  array&#039;&#039;&#039;, podrá contener lo siguiente:&lt;br /&gt;
##&#039;&#039;&#039;all:&#039;&#039;&#039; En este caso se notificará a todos los dispositivos que estén registrados en la aplicación sin tener en cuenta el SO.&lt;br /&gt;
##&#039;&#039;&#039;onlyAndroid:&#039;&#039;&#039; Solo se notificará a los terminales con &#039;&#039;&#039;SO Android&#039;&#039;&#039; que estén registrados en la aplicación.&lt;br /&gt;
##&#039;&#039;&#039;onlyIOS:&#039;&#039;&#039; Solo se notificará a los terminales con &#039;&#039;&#039;SO IOs&#039;&#039;&#039; que estén registrados en la aplicación.&lt;br /&gt;
##&#039;&#039;&#039;Un token de un dispositivo en concreto,&#039;&#039;&#039; de manera que solo se le notifique a éste.&lt;br /&gt;
#&#039;&#039;&#039;message:&#039;&#039;&#039; contendrá el texto de la notificación.&lt;br /&gt;
#&#039;&#039;&#039;type:&#039;&#039;&#039; contendrá el tipo de notificación pudiendo ser este de de diversa índole.&lt;br /&gt;
#*&#039;&#039;&#039;normal:&#039;&#039;&#039; este tipo será el más común, el dispositivo recibirá la notificación y no se hará mas con ésta.&lt;br /&gt;
#*&#039;&#039;&#039;openApp:&#039;&#039;&#039; este tipo hará que al hacer click sobre la notificación se abra la aplicación encargada de mostrar dicha notificación.&lt;br /&gt;
#*&#039;&#039;&#039;openUrl:&#039;&#039;&#039; este tipo hará que al hacer click sobre la notificación se abra una URL especificada en otro campo que veremos más adelante.&lt;br /&gt;
#*&#039;&#039;&#039;openAppWithextras:&#039;&#039;&#039; este tipo hará lo mismo que el &#039;&#039;&#039;“openApp”&#039;&#039;&#039; pudiendo ademas añadir hasta cinco variables extra para poder tratarlas a nuestro gusto en la aplicación. Cabe destacar que este tipo de notificación, nos permitirá hacer uso de otro campo no obligatorio que más adelante trataremos, el cual se llama &#039;&#039;&#039;&amp;quot;customType”&#039;&#039;&#039; y nos permitirá lanzar notificaciones &#039;&#039;&#039;“personalizadas”&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez vistos los campos obligatorios, a continuación se expondrán todos los &#039;&#039;&#039;campos no obligatorios&#039;&#039;&#039; que darán forma a las notificaciones:&lt;br /&gt;
#&#039;&#039;&#039;tittle:&#039;&#039;&#039; contendrá el texto del título que se mostrara junto con el mensaje de la notificación.&lt;br /&gt;
#&#039;&#039;&#039;sendingId:&#039;&#039;&#039; en caso de querer lanzar una notificación para muchos terminales, como hemos expuesto en los campos obligatorios, inicialmente el campo &#039;&#039;&#039;”terminalTokens&amp;quot;&#039;&#039;&#039; deberá ser un array con dichos terminales. Debido a que la API no puede admitir un número ilimitado de tokens a la vez, deberemos &#039;&#039;&#039;segmentar&#039;&#039;&#039; dicho array en varios más pequeños y hacer tantos &#039;&#039;&#039;“setPush”&#039;&#039;&#039; como sean necesarios hasta finalizar con el número de dispositivos a notificar. Cada vez que nos conectemos a la API para hacer un &#039;&#039;&#039;“setPush”&#039;&#039;&#039; y generar una notificación, dicha conexión nos devolverá un JSON en el cual hay un campo denominado &#039;&#039;&#039;“sendingId”&#039;&#039;&#039; con el ID autonumérico generado en nuestro sistema para ese envío push. De ésta manera, si se recoge dicho ID y se pasa como campo en la posición &#039;&#039;&#039;“sendingId”&#039;&#039;&#039;, los siguientes tokens que se manden en el &#039;&#039;&#039;”terminalTokens”&#039;&#039;&#039; irán asociados al primer envío realizado.&lt;br /&gt;
#&#039;&#039;&#039;sandbox:&#039;&#039;&#039; este campo solo se usará cuando se vaya a notificar a algún dispositivo con &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá “yes” en caso de que dicho dispositivo este en el servidor de desarrollo de Apple, y un “no” en caso de que dicho dispositivo este en el servidor de producción de Apple.&lt;br /&gt;
#&#039;&#039;&#039;isTest:&#039;&#039;&#039; al igual que en el campo del &#039;&#039;&#039;“sandbox”&#039;&#039;&#039;, contendrá “yes” o “no” dependiendo de si el dispositivo esta en el servidor de desarrollo o el de producción de Apple.&lt;br /&gt;
#&#039;&#039;&#039;background:&#039;&#039;&#039; este campo solo irá en caso de ir a algún dispositivo que tenga &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá “yes” o “no”. En caso de ser afirmativo la notificación se mostrará sin hacer ruido ni vibrar. Para el caso de iOs esto generará un alert vació con el &#039;&#039;&#039;content-available a 1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;silent:&#039;&#039;&#039; Contendrá “yes” o “no”. En caso de ser afirmativo la notificación no se mostrará pero si lanzará el evento de la librería push encargado de escuchar si se ha recibido una notificación o no. De ésta manera podremos lanzar notificaciones que no se muestren, pero si hagan algo por detrás en la APP al recibirla. Para el caso de Android solo se usará este campo cuando el &#039;&#039;&#039;“type”&#039;&#039;&#039; de la notificación sea &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y se haga uso del campo no obligatorio &#039;&#039;&#039;“customType”&#039;&#039;&#039;. Para el caso de iOs esto generará un alert vació con el &#039;&#039;&#039;content-available a 1&#039;&#039;&#039; por defecto, pudiendo ser modificado por el siguiente campo que se expone a continuación ( &#039;&#039;&#039;silentNumber&#039;&#039;&#039; ). Como en el caso de Android esto solo tendrá sentido para las notificaciones de &#039;&#039;&#039;“type”&#039;&#039;&#039;  &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; , puesto que al no mostrar nada, se usarán para hacer cosas por detrás mediante los campos no obligatorios &#039;&#039;&#039;external1, external2, external3, external4 y external5&#039;&#039;&#039;. A diferencia de Android, en iOs se podrá usar con &#039;&#039;&#039;”customType”&#039;&#039;&#039; o sin el.&lt;br /&gt;
#&#039;&#039;&#039;silentNumber:&#039;&#039;&#039; este campo solo se usará para &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Es el número que aparecerá en el &#039;&#039;&#039;content-available&#039;&#039;&#039; en caso de que el campo &#039;&#039;&#039;silent&#039;&#039;&#039; sea &#039;&#039;&#039;&amp;quot;yes&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;customType:&#039;&#039;&#039; contendrá el texto del tipo de notificación personalizada que cada uno cree. Éste campo solo se podrá usar si previamente en el campo obligatorio &#039;&#039;&#039;“type”&#039;&#039;&#039; se ha puesto &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;badge:&#039;&#039;&#039; este campo será el número que se mostrará junto con la notificación en los dispositivos &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. A partir de iOs 10 las notificaciones &#039;&#039;&#039;no&#039;&#039;&#039; levantan la aplicación en caso de estar background, por lo que esto generará un &#039;&#039;&#039;content-available&#039;&#039;&#039; con el fin de despertar la aplicación y poder actualizar el icono de notificaciones pendientes en ésta.&lt;br /&gt;
#&#039;&#039;&#039;broadcast:&#039;&#039;&#039; esta variable solo será útil para dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;, contendrá el nombre de la clase instanciada en su aplicación para que se active al recibir la notificación.&lt;br /&gt;
#&#039;&#039;&#039;direct:&#039;&#039;&#039; contendra &amp;quot;yes&amp;quot; o &amp;quot;no&amp;quot;. En caso de ser afirmativo las notificaciones se enviarán al instante no pudiendo programarlas.&lt;br /&gt;
#&#039;&#039;&#039;whenSend:&#039;&#039;&#039; contendrá “immediately”, “programmatically” o “geolocation”. En caso de ser immediately el campo &#039;&#039;&#039;“direct”&#039;&#039;&#039; previamente descrito deberá ser &#039;&#039;&#039;“yes”&#039;&#039;&#039;. En caso de ser “programmatically” o “geolocation” el  campo &#039;&#039;&#039;“direct”&#039;&#039;&#039; previamente descrito deberá ser &#039;&#039;&#039;“no”&#039;&#039;&#039;, ademas el envío se programará según los siguientes campos no obligatorios que se le pase.&lt;br /&gt;
#*&#039;&#039;&#039;Programmatically:&#039;&#039;&#039; cuando la notificación  se quiera programar para una fecha en concreto , deberán existir los siguientes campos no obligatorios:&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyTime:&#039;&#039;&#039; contendrá la fecha en &#039;&#039;&#039;UNIXTIMESTAMP&#039;&#039;&#039; en la que se lanzará la notificación, si se usa este campo no obligatorio no deberemos usar los siguientes.&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronMinutes:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronHours:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronDays:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronMonths:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
#*&#039;&#039;&#039;Geolocation:&#039;&#039;&#039; cuando se quiera programar por geolocalización una notificación, deberán existir los siguientes campos no obligatorios:&lt;br /&gt;
##&#039;&#039;&#039;geolocationCoordinates:&#039;&#039;&#039; será un array en el que la posición &#039;&#039;&#039;cero&#039;&#039;&#039; será la &#039;&#039;&#039;latitud&#039;&#039;&#039; y la &#039;&#039;&#039;uno&#039;&#039;&#039; la &#039;&#039;&#039;longitud&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;geolocationMeters:&#039;&#039;&#039; contendrá los metros a los que hemos de estar de las coordenadas especificadas para que lance la notificación.&lt;br /&gt;
#&#039;&#039;&#039;languaje:&#039;&#039;&#039; contendrá el idioma del dispositivo. &#039;&#039;&#039;Ejemplo: es&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;country:&#039;&#039;&#039; contendrá el país del dispositivo. &#039;&#039;&#039;Ejemplo: ES&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;deviceType:&#039;&#039;&#039; contendrá el tipo de dispositivo al que se le mandará la notificación pudiendo ser:&lt;br /&gt;
#*&#039;&#039;&#039;Para Android:&#039;&#039;&#039;&lt;br /&gt;
##&#039;&#039;&#039;movil&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;tableta&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;reloj&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;tv&#039;&#039;&#039;.&lt;br /&gt;
#*&#039;&#039;&#039;Para iOs:&#039;&#039;&#039;&lt;br /&gt;
##&#039;&#039;&#039;iphone&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;ipad&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;iwatch&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;appletv&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;appVersion:&#039;&#039;&#039; contendrá la versión de la aplicación a la que esta dirigida la notificación. &#039;&#039;&#039;Ejemplo: 1.0.1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039; contendrá la versión del terminal al que ira dirigida la notificación. &#039;&#039;&#039;Ejemplo: 6.0.1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;urlToOpen:&#039;&#039;&#039; contendrá la URL a abrir al hacer click sobre una notificación de tipo &#039;&#039;&#039;“openUrl”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external1:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external2:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external3:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external4:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external5:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;androidNotyStyle:&#039;&#039;&#039; contendrá &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039; cuando queramos mostrar una imagen junto con la notificación en los dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;. En caso de no querer mostrar ninguna imagen no se utilizara este campo.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleUrlImage:&#039;&#039;&#039; contendrá la URL de la imagen que se quiera mostrar en los dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;, siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle&amp;quot;&#039;&#039;&#039;. Cabe destacar que la URL deberá ser segura ( https ) y deberá contener la extension del contenido en dicha URL.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleExpandedTitle:&#039;&#039;&#039; contendrá el texto que se mostrará como titulo al expandir una notificación que contenga una imagen en dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;,  siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleExpandedSumaryText:&#039;&#039;&#039; contendrá el texto que se mostrará como mensaje al expandir una notificación que contenga una imagen en dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039; ,  siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;extra-content:&#039;&#039;&#039; este campo solo se usará para notificaciones dirigidas a dispositivos con &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá la URL del contenido extra que se quiere mostrar junto con la notificación. En este caso y a diferencia de &#039;&#039;&#039;Android ( bigPictureStyleUrlImage )&#039;&#039;&#039;, dicho contenido podrá ser una imagen, un giff, un video o un audio. La URL también deberá ser segura ( https )  y deberá contener la extension del contenido en dicha URL.&lt;br /&gt;
#&#039;&#039;&#039;channel:&#039;&#039;&#039; A partir de Android O, las notificaciones deberán ir por un canal de notificaciones instanciado en su aplicación. Esta variable contendrá el nombre del canal por el que han de salir.&lt;br /&gt;
#&#039;&#039;&#039;thread-id:&#039;&#039;&#039; A partir de iOs 12, las notificaciones pueden ser agrupadas. Para ello deberemos mandar el mismo thread-id en todas las notificaciones que queramos agrupar.&lt;br /&gt;
&lt;br /&gt;
=Notificaciones Android=&lt;br /&gt;
En este apartado veremos los distintos tipos de notificaciones para dispositivos Android mas detalladamente complementándolo con ejemplos funcionales:&lt;br /&gt;
#&#039;&#039;&#039;normal:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApp:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenApp+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenApp+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenApp&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenApp&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openUrl:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenUrl+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenUrl+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;url_pagina_abrir&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenUrl&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenUrl&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;url_pagina_abrir&#039;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApppWithExtras:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con customType:&#039;&#039;&#039; Las notificaciones personalizadas, solo lanzarán la notificación si la APP se encuentra en background, en caso de estar en foreground (primer plano), no lanzará la notificación.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;no&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;no&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Push_a_extras_p.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin notificación:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Silent&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Silent&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external1&#039;] = &#039;variable1&#039;;&lt;br /&gt;
$arr_data[&#039;external3&#039;] = &#039;variable3&#039;;&lt;br /&gt;
$arr_data[&#039;external5&#039;] = &#039;variable5&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Independientemente de los anteriores tipos:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;sendingId:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token_exchange = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + sendingId&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + sendingId&#039;;&lt;br /&gt;
&lt;br /&gt;
$array_tokens = array(); // ARRAY CON TODOS LOS USUARIOS QUE QUEREMOS QUE RECIBAN LA NOTIFICACION&lt;br /&gt;
$array_tokens_enviar = array(); // ARRAY QUE SE USA PARA MANDAR DE 500 EN 500&lt;br /&gt;
$contador = 0; // VARIABLE DE CONTROL PARA ENVIAR 500 USUARIOS&lt;br /&gt;
$json_datos_devueltos = array(); // ARRAY QUE CONTENDRA LA RESPUESTA RECIBIDA DE LA API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
foreach( $array_tokens as $token ){ // 1.- MANDAMOS A LA API DE 500 EN 500 PARA NO SATURARLA&lt;br /&gt;
	&lt;br /&gt;
	if( $contador &amp;gt;= 500 ){&lt;br /&gt;
		&lt;br /&gt;
		$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
		&lt;br /&gt;
		$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
		$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
		&lt;br /&gt;
		if ( isset($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) AND !empty($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) ){ // ESTO SE OBTENDRA DESPUES DE LANZAR LOS PRIMEROS 500 USUARIOS&lt;br /&gt;
			&lt;br /&gt;
			$arr_data[&#039;sendingId&#039;] = $json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;];&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		$contador = 0;&lt;br /&gt;
		$array_tokens_enviar = array();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$array_tokens_enviar[] = $token[&#039;token_del_usuario&#039;]; // EN NUESTRO CASO LA VARIABLE $token ES UN ARRAY CON MAS DATOS&lt;br /&gt;
	$contador += 1;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if( count($array_tokens_enviar) &amp;gt; 0 ) { // 2.- MANDAMOS LOS QUE FALTEN, LOS RESTOS QUE NO HAYAN LLEGADO A 500&lt;br /&gt;
				&lt;br /&gt;
	$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
	$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
	&lt;br /&gt;
	$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;language:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;language&#039;] = &#039;es&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;country:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;country&#039;] = &#039;ES&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;deviceType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + TipoDispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + TipoDispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;deviceType&#039;] = &#039;movil&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;appVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + VersionAplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + VersionAplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;appVersion&#039;] = &#039;1.0&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + VersionTerminal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + VersionTerminal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;terminalVersion&#039;] = &#039;6.0.1&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Notificaciones iOs=&lt;br /&gt;
En este apartado veremos los distintos tipos de notificaciones para dispositivos iOs mas detalladamente complementándolo con ejemplos funcionales:&lt;br /&gt;
#&#039;&#039;&#039;normal:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApp:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir App Con Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir App Con Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir App&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir App&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openUrl:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;https://....&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir Url Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir Url Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;https://....&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir Url&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir Url&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApppWithExtras:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Silenciosa:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_eleccion_desarrollador&#039;;&lt;br /&gt;
$arr_data[&#039;external_1&#039;] = &#039;variable_extra_1&#039;;&lt;br /&gt;
$arr_data[&#039;external_2&#039;] = &#039;variable_extra_2&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;silentNumber&#039;] = &#039;6&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Push_i_extras_p_s.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Silenciosa:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;external_1&#039;] = &#039;variable_extra_1&#039;;&lt;br /&gt;
$arr_data[&#039;external_2&#039;] = &#039;variable_extra_2&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;silentNumber&#039;] = &#039;6&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Independientemente de los anteriores tipos:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;sendingId:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token_exchange = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + sendingId&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + sendingId&#039;;&lt;br /&gt;
&lt;br /&gt;
$array_tokens = array(); // ARRAY CON TODOS LOS USUARIOS QUE QUEREMOS QUE RECIBAN LA NOTIFICACION&lt;br /&gt;
$array_tokens_enviar = array(); // ARRAY QUE SE USA PARA MANDAR DE 500 EN 500&lt;br /&gt;
$contador = 0; // VARIABLE DE CONTROL PARA ENVIAR 500 USUARIOS&lt;br /&gt;
$json_datos_devueltos = array(); // ARRAY QUE CONTENDRA LA RESPUESTA RECIBIDA DE LA API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
foreach( $array_tokens as $token ){ // 1.- MANDAMOS A LA API DE 500 EN 500 PARA NO SATURARLA&lt;br /&gt;
	&lt;br /&gt;
	if( $contador &amp;gt;= 500 ){&lt;br /&gt;
		&lt;br /&gt;
		$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
		&lt;br /&gt;
		$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
		$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
		&lt;br /&gt;
		if ( isset($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) AND !empty($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) ){ // ESTO SE OBTENDRA DESPUES DE LANZAR LOS PRIMEROS 500 USUARIOS&lt;br /&gt;
			&lt;br /&gt;
			$arr_data[&#039;sendingId&#039;] = $json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;];&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		$contador = 0;&lt;br /&gt;
		$array_tokens_enviar = array();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$array_tokens_enviar[] = $token[&#039;token_del_usuario&#039;]; // EN NUESTRO CASO LA VARIABLE $token ES UN ARRAY CON MAS DATOS&lt;br /&gt;
	$contador += 1;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if( count($array_tokens_enviar) &amp;gt; 0 ) { // 2.- MANDAMOS LOS QUE FALTEN, LOS RESTOS QUE NO HAYAN LLEGADO A 500&lt;br /&gt;
				&lt;br /&gt;
	$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
	$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
	&lt;br /&gt;
	$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;language:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;language&#039;] = &#039;es&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;country:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;country&#039;] = &#039;ES&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;deviceType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Tipo Dispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Tipo Dispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;deviceType&#039;] = &#039;iphone&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;appVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Version Aplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Version Aplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;appVersion&#039;] = &#039;3.4&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Version Terminal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Version Terminal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;terminalVersion&#039;] = &#039;10.3&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Respuesta setPush=&lt;br /&gt;
La respuesta que recibiremos por parte de la API siempre será un JSON.  Dicho JSON contendrá de tres a cinco posiciones/elementos:&lt;br /&gt;
#&#039;&#039;&#039;responsecode:&#039;&#039;&#039; determinará si la acción a realizar sobre la API ha funcionado o no. En caso de ser &#039;&#039;&#039;negativo&#039;&#039;&#039; devolverá &#039;&#039;&#039;“KO”&#039;&#039;&#039; y en caso de ser &#039;&#039;&#039;positivo&#039;&#039;&#039; será &#039;&#039;&#039;“OK”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;errorcode:&#039;&#039;&#039; en caso de que el &#039;&#039;&#039;responsecode&#039;&#039;&#039; sea &#039;&#039;&#039;“KO”&#039;&#039;&#039;, devolverá el código de error en nuestro sistema. Por el contrario, si el &#039;&#039;&#039;responsecode&#039;&#039;&#039; es &#039;&#039;&#039;“OK”&#039;&#039;&#039;, devolverá un 0.&lt;br /&gt;
#&#039;&#039;&#039;errortext:&#039;&#039;&#039; contendrá el texto del error que se ha producido, por lo que como se deduce esto solo saldrá cuando la acción sobre la API no se haya podido ejecutar. &lt;br /&gt;
#&#039;&#039;&#039;data:&#039;&#039;&#039; contendrá el resultado de la acción realizada satisfactoriamente sobre la API. Si ha habido un error esta posición &#039;&#039;&#039;no se generará&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;timestamp:&#039;&#039;&#039; devolverá la fecha en timestamp en la que la acción sobre la API ha sido realizada correctamente. Si ha habido un error esta posición &#039;&#039;&#039;no se generará&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En resumen, si la acción a realizar sobre la API ha dado error, el JSON contendrá los elementos ( responsecode, errorcode y errortext).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_error.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Por el contrario si la acción ha finalizado correcta y satisfactoriamente, el JSON contendrá los elementos ( responsecode, errorcode, data y timestamp). &lt;br /&gt;
Para el caso de crear una notificación ( &#039;&#039;&#039;setPush&#039;&#039;&#039; ), y que haya funcionado correctamente, en la respuesta se generará algo tal que la siguiente imágen:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_noerror.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En el contenido del elemento &#039;&#039;&#039;data&#039;&#039;&#039;, se mostrara las notificaciones que se han podido enviar, las que no se han podido enviar, el ID que se genera en nuestro sistema asociado al envío solicitado y un array con los tokens enviados ( &#039;&#039;&#039;deletedArray&#039;&#039;&#039; ) y un array con los tokens que no se han podido enviar ( &#039;&#039;&#039;deletedWithoutSend&#039;&#039;&#039; ).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Este último caso, el del array con los tokens que no se han podido enviar solo se informará en el caso de que al enviar la acción &#039;&#039;&#039;setPush&#039;&#039;&#039;, en la posición &#039;&#039;&#039;terminalTokens&#039;&#039;&#039;, se mande &#039;&#039;&#039;un array con los terminales en concreto que se quieren notificar&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En el caso del array con los dispositivos notificados, se apreciará una segmentación por &#039;&#039;&#039;SO&#039;&#039;&#039;. En caso de que uno de estos dispositivos no haya podido recibir la notificación por problemas  como bien puede ser un token obsoleto, se borrará de nuestro sistema y el token se informará en la posición  ( &#039;&#039;&#039;deletedTokens&#039;&#039;&#039; ).&lt;br /&gt;
&lt;br /&gt;
=Obtención de usuarios registrados en su aplicación=&lt;br /&gt;
Para obtener un conteo de usuarios registrados en nuestra aplicación y los datos de estos, deberemos hacer uso de la tarea &#039;&#039;&#039;“getPushTokens”&#039;&#039;&#039; y el hash de la aplicación registrada en el panel de Mobeleader. Dicho hash podremos verlo en cualquier momento desde la sección https://panel.mobeleader.com/index.php?sec=6. Una vez obtengamos dicho hash procederemos a conectarnos a la API de la manera expuesta en la a continuación:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;getPushTokens&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_getPushTokens.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Como se puede apreciar en la respuesta, &#039;&#039;&#039;la posición respondecode es “OK”&#039;&#039;&#039;. Al igual que en el caso del &#039;&#039;&#039;“ping”&#039;&#039;&#039;, siempre que el &#039;&#039;&#039;responsecode&#039;&#039;&#039; sea &#039;&#039;&#039;”OK”&#039;&#039;&#039; significara que la acción a realizar sobre la API ha finalizado correctamente y que en la posición &#039;&#039;&#039;“data”&#039;&#039;&#039; vendrá los solicitado, en este caso los datos de los terminales registrados en la aplicación.&lt;br /&gt;
&lt;br /&gt;
=Borrado de usuarios registrados en su aplicación=&lt;br /&gt;
Una vez obtenidos los datos mediante la tarea &#039;&#039;&#039;“getPushTokens”&#039;&#039;&#039;, si quisiéramos  borrar alguno de dichos tokens del sistema de Mobeleader, deberemos hacer uso de la tarea &#039;&#039;&#039;“deletePushTokens”&#039;&#039;&#039; usando el hash de la aplicación de la misma manera que en la obtención de usuarios, y pasándole el token o los tokens que quisiéramos borrar. Lo haremos de la siguiente manera:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;tokens&#039;][] = &#039;token_del_usuario_registrado&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;deletePushTokens&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_deletePushTokens.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Como siempre, en caso de que el &#039;&#039;&#039;responsecode sea “OK”&#039;&#039;&#039;, en la &#039;&#039;&#039;posición “data”&#039;&#039;&#039; veremos el número de tokens borrados.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Docu_push_exchange&amp;diff=2766</id>
		<title>Docu push exchange</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Docu_push_exchange&amp;diff=2766"/>
		<updated>2019-06-07T11:22:48Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Notificaciones Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introducción=&lt;br /&gt;
En este documento se va a mostrar como ha de ser el contenido que se mande al api-exchange para realizar las distintas acciones que ésta nos permite. Se expondrá brevemente como ha de realizarse la conexión a dicha API, como han de ser los campos obligatorios que han de ir para todos los casos y a continuación se procederá a tratar todos los casos con ejemplos para un mayor entendimiento.&lt;br /&gt;
&lt;br /&gt;
=Conectándonos a la API=&lt;br /&gt;
Lo primero que deberemos hacer es solicitar el token necesario para poder realizar la conexión a nuestro sistema. Dicho token es un identificador único para cada usuario desarrollador. Una vez obtenido dicho token, procederemos a hacer una breve prueba de conexión para comprobar que tenemos acceso a la API. En dicha prueba haremos uso de la tarea &#039;&#039;&#039;“ping”&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;ping&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Conexion_ping.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En la imagen vemos como ha de ser el código necesario para realizar dicha prueba y el resultado transformado a un array. Si la posición del &#039;&#039;&#039;responsecode&#039;&#039;&#039; es &#039;&#039;&#039;“OK”&#039;&#039;&#039; significa que todo ha ido correctamente y en la posición &#039;&#039;&#039;data&#039;&#039;&#039; deberemos ver &#039;&#039;&#039;“pong”&#039;&#039;&#039;. Mientras esta prueba no de este resultado no podremos hacer ninguna acción más sobre la API.&lt;br /&gt;
&lt;br /&gt;
=Campos Obligatorios y No Obligatorios para las notificaciones=&lt;br /&gt;
Para generar notificaciones desde nuestro sistema, en la conexión con la API deberá ir especificada la tarea &#039;&#039;&#039;“setPush”&#039;&#039;&#039;, junto un array de datos con una serie de campos.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Independientemente del sistema operativo al que vaya la notificación, hay unos campos que &#039;&#039;&#039;son obligatorios&#039;&#039;&#039;; son los siguientes:&lt;br /&gt;
#&#039;&#039;&#039;appHash:&#039;&#039;&#039; contendrá el hash de la aplicación registrada, automáticamente generado por nuestro panel.&lt;br /&gt;
#&#039;&#039;&#039;terminalTokens:&#039;&#039;&#039; este campo podrá tener más de un formato, de manera que los dispositivos que reciban la notificación puedan ser diferentes.&lt;br /&gt;
#*En caso de &#039;&#039;&#039;tratarse de un array&#039;&#039;&#039;, se mandará la notificación a todos los tokens de dicho array.&lt;br /&gt;
#*En caso de &#039;&#039;&#039;no ser un  array&#039;&#039;&#039;, podrá contener lo siguiente:&lt;br /&gt;
##&#039;&#039;&#039;all:&#039;&#039;&#039; En este caso se notificará a todos los dispositivos que estén registrados en la aplicación sin tener en cuenta el SO.&lt;br /&gt;
##&#039;&#039;&#039;onlyAndroid:&#039;&#039;&#039; Solo se notificará a los terminales con &#039;&#039;&#039;SO Android&#039;&#039;&#039; que estén registrados en la aplicación.&lt;br /&gt;
##&#039;&#039;&#039;onlyIOS:&#039;&#039;&#039; Solo se notificará a los terminales con &#039;&#039;&#039;SO IOs&#039;&#039;&#039; que estén registrados en la aplicación.&lt;br /&gt;
##&#039;&#039;&#039;Un token de un dispositivo en concreto,&#039;&#039;&#039; de manera que solo se le notifique a éste.&lt;br /&gt;
#&#039;&#039;&#039;message:&#039;&#039;&#039; contendrá el texto de la notificación.&lt;br /&gt;
#&#039;&#039;&#039;type:&#039;&#039;&#039; contendrá el tipo de notificación pudiendo ser este de de diversa índole.&lt;br /&gt;
#*&#039;&#039;&#039;normal:&#039;&#039;&#039; este tipo será el más común, el dispositivo recibirá la notificación y no se hará mas con ésta.&lt;br /&gt;
#*&#039;&#039;&#039;openApp:&#039;&#039;&#039; este tipo hará que al hacer click sobre la notificación se abra la aplicación encargada de mostrar dicha notificación.&lt;br /&gt;
#*&#039;&#039;&#039;openUrl:&#039;&#039;&#039; este tipo hará que al hacer click sobre la notificación se abra una URL especificada en otro campo que veremos más adelante.&lt;br /&gt;
#*&#039;&#039;&#039;openAppWithextras:&#039;&#039;&#039; este tipo hará lo mismo que el &#039;&#039;&#039;“openApp”&#039;&#039;&#039; pudiendo ademas añadir hasta cinco variables extra para poder tratarlas a nuestro gusto en la aplicación. Cabe destacar que este tipo de notificación, nos permitirá hacer uso de otro campo no obligatorio que más adelante trataremos, el cual se llama &#039;&#039;&#039;&amp;quot;customType”&#039;&#039;&#039; y nos permitirá lanzar notificaciones &#039;&#039;&#039;“personalizadas”&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez vistos los campos obligatorios, a continuación se expondrán todos los &#039;&#039;&#039;campos no obligatorios&#039;&#039;&#039; que darán forma a las notificaciones:&lt;br /&gt;
#&#039;&#039;&#039;tittle:&#039;&#039;&#039; contendrá el texto del título que se mostrara junto con el mensaje de la notificación.&lt;br /&gt;
#&#039;&#039;&#039;sendingId:&#039;&#039;&#039; en caso de querer lanzar una notificación para muchos terminales, como hemos expuesto en los campos obligatorios, inicialmente el campo &#039;&#039;&#039;”terminalTokens&amp;quot;&#039;&#039;&#039; deberá ser un array con dichos terminales. Debido a que la API no puede admitir un número ilimitado de tokens a la vez, deberemos &#039;&#039;&#039;segmentar&#039;&#039;&#039; dicho array en varios más pequeños y hacer tantos &#039;&#039;&#039;“setPush”&#039;&#039;&#039; como sean necesarios hasta finalizar con el número de dispositivos a notificar. Cada vez que nos conectemos a la API para hacer un &#039;&#039;&#039;“setPush”&#039;&#039;&#039; y generar una notificación, dicha conexión nos devolverá un JSON en el cual hay un campo denominado &#039;&#039;&#039;“sendingId”&#039;&#039;&#039; con el ID autonumérico generado en nuestro sistema para ese envío push. De ésta manera, si se recoge dicho ID y se pasa como campo en la posición &#039;&#039;&#039;“sendingId”&#039;&#039;&#039;, los siguientes tokens que se manden en el &#039;&#039;&#039;”terminalTokens”&#039;&#039;&#039; irán asociados al primer envío realizado.&lt;br /&gt;
#&#039;&#039;&#039;sandbox:&#039;&#039;&#039; este campo solo se usará cuando se vaya a notificar a algún dispositivo con &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá “yes” en caso de que dicho dispositivo este en el servidor de desarrollo de Apple, y un “no” en caso de que dicho dispositivo este en el servidor de producción de Apple.&lt;br /&gt;
#&#039;&#039;&#039;isTest:&#039;&#039;&#039; al igual que en el campo del &#039;&#039;&#039;“sandbox”&#039;&#039;&#039;, contendrá “yes” o “no” dependiendo de si el dispositivo esta en el servidor de desarrollo o el de producción de Apple.&lt;br /&gt;
#&#039;&#039;&#039;background:&#039;&#039;&#039; este campo solo irá en caso de ir a algún dispositivo que tenga &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá “yes” o “no”. En caso de ser afirmativo la notificación se mostrará sin hacer ruido ni vibrar. Para el caso de iOs esto generará un alert vació con el &#039;&#039;&#039;content-available a 1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;silent:&#039;&#039;&#039; Contendrá “yes” o “no”. En caso de ser afirmativo la notificación no se mostrará pero si lanzará el evento de la librería push encargado de escuchar si se ha recibido una notificación o no. De ésta manera podremos lanzar notificaciones que no se muestren, pero si hagan algo por detrás en la APP al recibirla. Para el caso de Android solo se usará este campo cuando el &#039;&#039;&#039;“type”&#039;&#039;&#039; de la notificación sea &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y se haga uso del campo no obligatorio &#039;&#039;&#039;“customType”&#039;&#039;&#039;. Para el caso de iOs esto generará un alert vació con el &#039;&#039;&#039;content-available a 1&#039;&#039;&#039; por defecto, pudiendo ser modificado por el siguiente campo que se expone a continuación ( &#039;&#039;&#039;silentNumber&#039;&#039;&#039; ). Como en el caso de Android esto solo tendrá sentido para las notificaciones de &#039;&#039;&#039;“type”&#039;&#039;&#039;  &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; , puesto que al no mostrar nada, se usarán para hacer cosas por detrás mediante los campos no obligatorios &#039;&#039;&#039;external1, external2, external3, external4 y external5&#039;&#039;&#039;. A diferencia de Android, en iOs se podrá usar con &#039;&#039;&#039;”customType”&#039;&#039;&#039; o sin el.&lt;br /&gt;
#&#039;&#039;&#039;silentNumber:&#039;&#039;&#039; este campo solo se usará para &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Es el número que aparecerá en el &#039;&#039;&#039;content-available&#039;&#039;&#039; en caso de que el campo &#039;&#039;&#039;silent&#039;&#039;&#039; sea &#039;&#039;&#039;&amp;quot;yes&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;customType:&#039;&#039;&#039; contendrá el texto del tipo de notificación personalizada que cada uno cree. Éste campo solo se podrá usar si previamente en el campo obligatorio &#039;&#039;&#039;“type”&#039;&#039;&#039; se ha puesto &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;badge:&#039;&#039;&#039; este campo será el número que se mostrará junto con la notificación en los dispositivos &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. A partir de iOs 10 las notificaciones &#039;&#039;&#039;no&#039;&#039;&#039; levantan la aplicación en caso de estar background, por lo que esto generará un &#039;&#039;&#039;content-available&#039;&#039;&#039; con el fin de despertar la aplicación y poder actualizar el icono de notificaciones pendientes en ésta.&lt;br /&gt;
#&#039;&#039;&#039;broadcast:&#039;&#039;&#039; esta variable solo será útil para dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;, contendrá el nombre de la clase instanciada en su aplicación para que se active al recibir la notificación.&lt;br /&gt;
#&#039;&#039;&#039;direct:&#039;&#039;&#039; contendra &amp;quot;yes&amp;quot; o &amp;quot;no&amp;quot;. En caso de ser afirmativo las notificaciones se enviarán al instante no pudiendo programarlas.&lt;br /&gt;
#&#039;&#039;&#039;whenSend:&#039;&#039;&#039; contendrá “immediately”, “programmatically” o “geolocation”. En caso de ser immediately el campo &#039;&#039;&#039;“direct”&#039;&#039;&#039; previamente descrito deberá ser &#039;&#039;&#039;“yes”&#039;&#039;&#039;. En caso de ser “programmatically” o “geolocation” el  campo &#039;&#039;&#039;“direct”&#039;&#039;&#039; previamente descrito deberá ser &#039;&#039;&#039;“no”&#039;&#039;&#039;, ademas el envío se programará según los siguientes campos no obligatorios que se le pase.&lt;br /&gt;
#*&#039;&#039;&#039;Programmatically:&#039;&#039;&#039; cuando la notificación  se quiera programar para una fecha en concreto , deberán existir los siguientes campos no obligatorios:&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyTime:&#039;&#039;&#039; contendrá la fecha en &#039;&#039;&#039;UNIXTIMESTAMP&#039;&#039;&#039; en la que se lanzará la notificación, si se usa este campo no obligatorio no deberemos usar los siguientes.&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronMinutes:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronHours:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronDays:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronMonths:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
#*&#039;&#039;&#039;Geolocation:&#039;&#039;&#039; cuando se quiera programar por geolocalización una notificación, deberán existir los siguientes campos no obligatorios:&lt;br /&gt;
##&#039;&#039;&#039;geolocationCoordinates:&#039;&#039;&#039; será un array en el que la posición &#039;&#039;&#039;cero&#039;&#039;&#039; será la &#039;&#039;&#039;latitud&#039;&#039;&#039; y la &#039;&#039;&#039;uno&#039;&#039;&#039; la &#039;&#039;&#039;longitud&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;geolocationMeters:&#039;&#039;&#039; contendrá los metros a los que hemos de estar de las coordenadas especificadas para que lance la notificación.&lt;br /&gt;
#&#039;&#039;&#039;languaje:&#039;&#039;&#039; contendrá el idioma del dispositivo. &#039;&#039;&#039;Ejemplo: es&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;country:&#039;&#039;&#039; contendrá el país del dispositivo. &#039;&#039;&#039;Ejemplo: ES&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;deviceType:&#039;&#039;&#039; contendrá el tipo de dispositivo al que se le mandará la notificación pudiendo ser:&lt;br /&gt;
#*&#039;&#039;&#039;Para Android:&#039;&#039;&#039;&lt;br /&gt;
##&#039;&#039;&#039;movil&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;tableta&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;reloj&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;tv&#039;&#039;&#039;.&lt;br /&gt;
#*&#039;&#039;&#039;Para iOs:&#039;&#039;&#039;&lt;br /&gt;
##&#039;&#039;&#039;iphone&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;ipad&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;iwatch&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;appletv&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;appVersion:&#039;&#039;&#039; contendrá la versión de la aplicación a la que esta dirigida la notificación. &#039;&#039;&#039;Ejemplo: 1.0.1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039; contendrá la versión del terminal al que ira dirigida la notificación. &#039;&#039;&#039;Ejemplo: 6.0.1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;urlToOpen:&#039;&#039;&#039; contendrá la URL a abrir al hacer click sobre una notificación de tipo &#039;&#039;&#039;“openUrl”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external1:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external2:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external3:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external4:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external5:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;androidNotyStyle:&#039;&#039;&#039; contendrá &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039; cuando queramos mostrar una imagen junto con la notificación en los dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;. En caso de no querer mostrar ninguna imagen no se utilizara este campo.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleUrlImage:&#039;&#039;&#039; contendrá la URL de la imagen que se quiera mostrar en los dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;, siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle&amp;quot;&#039;&#039;&#039;. Cabe destacar que la URL deberá ser segura ( https ) y deberá contener la extension del contenido en dicha URL.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleExpandedTitle:&#039;&#039;&#039; contendrá el texto que se mostrará como titulo al expandir una notificación que contenga una imagen en dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;,  siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleExpandedSumaryText:&#039;&#039;&#039; contendrá el texto que se mostrará como mensaje al expandir una notificación que contenga una imagen en dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039; ,  siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;extra-content:&#039;&#039;&#039; este campo solo se usará para notificaciones dirigidas a dispositivos con &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá la URL del contenido extra que se quiere mostrar junto con la notificación. En este caso y a diferencia de &#039;&#039;&#039;Android ( bigPictureStyleUrlImage )&#039;&#039;&#039;, dicho contenido podrá ser una imagen, un giff, un video o un audio. La URL también deberá ser segura ( https )  y deberá contener la extension del contenido en dicha URL.&lt;br /&gt;
#&#039;&#039;&#039;channel:&#039;&#039;&#039; A partir de Android O, las notificaciones deberán ir por un canal de notificaciones instanciado en su aplicación. Esta variable contendrá el nombre del canal por el que han de salir.&lt;br /&gt;
#&#039;&#039;&#039;thread-id:&#039;&#039;&#039; A partir de iOs 12, las notificaciones pueden ser agrupadas. Para ello deberemos mandar el mismo thread-id en todas las notificaciones que queramos agrupar.&lt;br /&gt;
&lt;br /&gt;
=Notificaciones Android=&lt;br /&gt;
En este apartado veremos los distintos tipos de notificaciones para dispositivos Android mas detalladamente complementándolo con ejemplos funcionales:&lt;br /&gt;
#&#039;&#039;&#039;normal:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApp:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenApp+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenApp+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenApp&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenApp&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openUrl:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenUrl+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenUrl+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;url_pagina_abrir&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenUrl&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenUrl&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;url_pagina_abrir&#039;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApppWithExtras:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con customType:&#039;&#039;&#039; Las notificaciones personalizadas, solo lanzarán la notificación si la APP se encuentra en background, en caso de estar en foreground (primer plano), no lanzará la notificación.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;no&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;no&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Push_a_extras_p.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin notificación:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Silent&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Silent&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external1&#039;] = &#039;variable1&#039;;&lt;br /&gt;
$arr_data[&#039;external3&#039;] = &#039;variable3&#039;;&lt;br /&gt;
$arr_data[&#039;external5&#039;] = &#039;variable5&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Independientemente de los anteriores tipos:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;sendingId:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token_exchange = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + sendingId&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + sendingId&#039;;&lt;br /&gt;
&lt;br /&gt;
$array_tokens = array(); // ARRAY CON TODOS LOS USUARIOS QUE QUEREMOS QUE RECIBAN LA NOTIFICACION&lt;br /&gt;
$array_tokens_enviar = array(); // ARRAY QUE SE USA PARA MANDAR DE 500 EN 500&lt;br /&gt;
$contador = 0; // VARIABLE DE CONTROL PARA ENVIAR 500 USUARIOS&lt;br /&gt;
$json_datos_devueltos = array(); // ARRAY QUE CONTENDRA LA RESPUESTA RECIBIDA DE LA API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
foreach( $array_tokens as $token ){ // 1.- MANDAMOS A LA API DE 500 EN 500 PARA NO SATURARLA&lt;br /&gt;
	&lt;br /&gt;
	if( $contador &amp;gt;= 500 ){&lt;br /&gt;
		&lt;br /&gt;
		$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
		&lt;br /&gt;
		$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
		$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
		&lt;br /&gt;
		if ( isset($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) AND !empty($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) ){ // ESTO SE OBTENDRA DESPUES DE LANZAR LOS PRIMEROS 500 USUARIOS&lt;br /&gt;
			&lt;br /&gt;
			$arr_data[&#039;sendingId&#039;] = $json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;];&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		$contador = 0;&lt;br /&gt;
		$array_tokens_enviar = array();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$array_tokens_enviar[] = $token[&#039;token_del_usuario&#039;]; // EN NUESTRO CASO LA VARIABLE $token ES UN ARRAY CON MAS DATOS&lt;br /&gt;
	$contador += 1;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if( count($array_tokens_enviar) &amp;gt; 0 ) { // 2.- MANDAMOS LOS QUE FALTEN, LOS RESTOS QUE NO HAYAN LLEGADO A 500&lt;br /&gt;
				&lt;br /&gt;
	$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
	$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
	&lt;br /&gt;
	$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;language:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;language&#039;] = &#039;es&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;country:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;country&#039;] = &#039;ES&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;deviceType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + TipoDispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + TipoDispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;deviceType&#039;] = &#039;movil&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;appVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + VersionAplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + VersionAplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;appVersion&#039;] = &#039;1.0&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_auto_generado&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + VersionTerminal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + VersionTerminal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;terminalVersion&#039;] = &#039;6.0.1&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Notificaciones iOs=&lt;br /&gt;
En este apartado veremos los distintos tipos de notificaciones para dispositivos iOs mas detalladamente complementándolo con ejemplos funcionales:&lt;br /&gt;
#&#039;&#039;&#039;normal:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApp:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir App Con Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir App Con Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir App&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir App&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openUrl:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;https://....&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir Url Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir Url Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;https://....&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir Url&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir Url&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApppWithExtras:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Silenciosa:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_eleccion_desarrollador&#039;;&lt;br /&gt;
$arr_data[&#039;external_1&#039;] = &#039;variable_extra_1&#039;;&lt;br /&gt;
$arr_data[&#039;external_2&#039;] = &#039;variable_extra_2&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;silentNumber&#039;] = &#039;6&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Push_i_extras_p_s.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Silenciosa:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;external_1&#039;] = &#039;variable_extra_1&#039;;&lt;br /&gt;
$arr_data[&#039;external_2&#039;] = &#039;variable_extra_2&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;silentNumber&#039;] = &#039;6&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Independientemente de los anteriores tipos:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;sendingId:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token_exchange = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + sendingId&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + sendingId&#039;;&lt;br /&gt;
&lt;br /&gt;
$array_tokens = array(); // ARRAY CON TODOS LOS USUARIOS QUE QUEREMOS QUE RECIBAN LA NOTIFICACION&lt;br /&gt;
$array_tokens_enviar = array(); // ARRAY QUE SE USA PARA MANDAR DE 500 EN 500&lt;br /&gt;
$contador = 0; // VARIABLE DE CONTROL PARA ENVIAR 500 USUARIOS&lt;br /&gt;
$json_datos_devueltos = array(); // ARRAY QUE CONTENDRA LA RESPUESTA RECIBIDA DE LA API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
foreach( $array_tokens as $token ){ // 1.- MANDAMOS A LA API DE 500 EN 500 PARA NO SATURARLA&lt;br /&gt;
	&lt;br /&gt;
	if( $contador &amp;gt;= 500 ){&lt;br /&gt;
		&lt;br /&gt;
		$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
		&lt;br /&gt;
		$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
		$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
		&lt;br /&gt;
		if ( isset($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) AND !empty($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) ){ // ESTO SE OBTENDRA DESPUES DE LANZAR LOS PRIMEROS 500 USUARIOS&lt;br /&gt;
			&lt;br /&gt;
			$arr_data[&#039;sendingId&#039;] = $json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;];&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		$contador = 0;&lt;br /&gt;
		$array_tokens_enviar = array();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$array_tokens_enviar[] = $token[&#039;token_del_usuario&#039;]; // EN NUESTRO CASO LA VARIABLE $token ES UN ARRAY CON MAS DATOS&lt;br /&gt;
	$contador += 1;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if( count($array_tokens_enviar) &amp;gt; 0 ) { // 2.- MANDAMOS LOS QUE FALTEN, LOS RESTOS QUE NO HAYAN LLEGADO A 500&lt;br /&gt;
				&lt;br /&gt;
	$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
	$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
	&lt;br /&gt;
	$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;language:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;language&#039;] = &#039;es&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;country:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;country&#039;] = &#039;ES&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;deviceType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Tipo Dispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Tipo Dispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;deviceType&#039;] = &#039;iphone&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;appVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Version Aplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Version Aplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;appVersion&#039;] = &#039;3.4&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Version Terminal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Version Terminal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;terminalVersion&#039;] = &#039;10.3&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Respuesta setPush=&lt;br /&gt;
La respuesta que recibiremos por parte de la API siempre será un JSON.  Dicho JSON contendrá de tres a cinco posiciones/elementos:&lt;br /&gt;
#&#039;&#039;&#039;responsecode:&#039;&#039;&#039; determinará si la acción a realizar sobre la API ha funcionado o no. En caso de ser &#039;&#039;&#039;negativo&#039;&#039;&#039; devolverá &#039;&#039;&#039;“KO”&#039;&#039;&#039; y en caso de ser &#039;&#039;&#039;positivo&#039;&#039;&#039; será &#039;&#039;&#039;“OK”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;errorcode:&#039;&#039;&#039; en caso de que el &#039;&#039;&#039;responsecode&#039;&#039;&#039; sea &#039;&#039;&#039;“KO”&#039;&#039;&#039;, devolverá el código de error en nuestro sistema. Por el contrario, si el &#039;&#039;&#039;responsecode&#039;&#039;&#039; es &#039;&#039;&#039;“OK”&#039;&#039;&#039;, devolverá un 0.&lt;br /&gt;
#&#039;&#039;&#039;errortext:&#039;&#039;&#039; contendrá el texto del error que se ha producido, por lo que como se deduce esto solo saldrá cuando la acción sobre la API no se haya podido ejecutar. &lt;br /&gt;
#&#039;&#039;&#039;data:&#039;&#039;&#039; contendrá el resultado de la acción realizada satisfactoriamente sobre la API. Si ha habido un error esta posición &#039;&#039;&#039;no se generará&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;timestamp:&#039;&#039;&#039; devolverá la fecha en timestamp en la que la acción sobre la API ha sido realizada correctamente. Si ha habido un error esta posición &#039;&#039;&#039;no se generará&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En resumen, si la acción a realizar sobre la API ha dado error, el JSON contendrá los elementos ( responsecode, errorcode y errortext).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_error.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Por el contrario si la acción ha finalizado correcta y satisfactoriamente, el JSON contendrá los elementos ( responsecode, errorcode, data y timestamp). &lt;br /&gt;
Para el caso de crear una notificación ( &#039;&#039;&#039;setPush&#039;&#039;&#039; ), y que haya funcionado correctamente, en la respuesta se generará algo tal que la siguiente imágen:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_noerror.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En el contenido del elemento &#039;&#039;&#039;data&#039;&#039;&#039;, se mostrara las notificaciones que se han podido enviar, las que no se han podido enviar, el ID que se genera en nuestro sistema asociado al envío solicitado y un array con los tokens enviados ( &#039;&#039;&#039;deletedArray&#039;&#039;&#039; ) y un array con los tokens que no se han podido enviar ( &#039;&#039;&#039;deletedWithoutSend&#039;&#039;&#039; ).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Este último caso, el del array con los tokens que no se han podido enviar solo se informará en el caso de que al enviar la acción &#039;&#039;&#039;setPush&#039;&#039;&#039;, en la posición &#039;&#039;&#039;terminalTokens&#039;&#039;&#039;, se mande &#039;&#039;&#039;un array con los terminales en concreto que se quieren notificar&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En el caso del array con los dispositivos notificados, se apreciará una segmentación por &#039;&#039;&#039;SO&#039;&#039;&#039;. En caso de que uno de estos dispositivos no haya podido recibir la notificación por problemas  como bien puede ser un token obsoleto, se borrará de nuestro sistema y el token se informará en la posición  ( &#039;&#039;&#039;deletedTokens&#039;&#039;&#039; ).&lt;br /&gt;
&lt;br /&gt;
=Obtención de usuarios registrados en su aplicación=&lt;br /&gt;
Para obtener un conteo de usuarios registrados en nuestra aplicación y los datos de estos, deberemos hacer uso de la tarea &#039;&#039;&#039;“getPushTokens”&#039;&#039;&#039; y el hash de la aplicación registrada en el panel de Mobeleader. Dicho hash podremos verlo en cualquier momento desde la sección https://panel.mobeleader.com/index.php?sec=6. Una vez obtengamos dicho hash procederemos a conectarnos a la API de la manera expuesta en la a continuación:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;getPushTokens&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_getPushTokens.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Como se puede apreciar en la respuesta, &#039;&#039;&#039;la posición respondecode es “OK”&#039;&#039;&#039;. Al igual que en el caso del &#039;&#039;&#039;“ping”&#039;&#039;&#039;, siempre que el &#039;&#039;&#039;responsecode&#039;&#039;&#039; sea &#039;&#039;&#039;”OK”&#039;&#039;&#039; significara que la acción a realizar sobre la API ha finalizado correctamente y que en la posición &#039;&#039;&#039;“data”&#039;&#039;&#039; vendrá los solicitado, en este caso los datos de los terminales registrados en la aplicación.&lt;br /&gt;
&lt;br /&gt;
=Borrado de usuarios registrados en su aplicación=&lt;br /&gt;
Una vez obtenidos los datos mediante la tarea &#039;&#039;&#039;“getPushTokens”&#039;&#039;&#039;, si quisiéramos  borrar alguno de dichos tokens del sistema de Mobeleader, deberemos hacer uso de la tarea &#039;&#039;&#039;“deletePushTokens”&#039;&#039;&#039; usando el hash de la aplicación de la misma manera que en la obtención de usuarios, y pasándole el token o los tokens que quisiéramos borrar. Lo haremos de la siguiente manera:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;tokens&#039;][] = &#039;token_del_usuario_registrado&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;deletePushTokens&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_deletePushTokens.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Como siempre, en caso de que el &#039;&#039;&#039;responsecode sea “OK”&#039;&#039;&#039;, en la &#039;&#039;&#039;posición “data”&#039;&#039;&#039; veremos el número de tokens borrados.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Docu_push_exchange&amp;diff=2765</id>
		<title>Docu push exchange</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Docu_push_exchange&amp;diff=2765"/>
		<updated>2019-06-07T11:19:29Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Campos Obligatorios y No Obligatorios para las notificaciones */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introducción=&lt;br /&gt;
En este documento se va a mostrar como ha de ser el contenido que se mande al api-exchange para realizar las distintas acciones que ésta nos permite. Se expondrá brevemente como ha de realizarse la conexión a dicha API, como han de ser los campos obligatorios que han de ir para todos los casos y a continuación se procederá a tratar todos los casos con ejemplos para un mayor entendimiento.&lt;br /&gt;
&lt;br /&gt;
=Conectándonos a la API=&lt;br /&gt;
Lo primero que deberemos hacer es solicitar el token necesario para poder realizar la conexión a nuestro sistema. Dicho token es un identificador único para cada usuario desarrollador. Una vez obtenido dicho token, procederemos a hacer una breve prueba de conexión para comprobar que tenemos acceso a la API. En dicha prueba haremos uso de la tarea &#039;&#039;&#039;“ping”&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;ping&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Conexion_ping.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En la imagen vemos como ha de ser el código necesario para realizar dicha prueba y el resultado transformado a un array. Si la posición del &#039;&#039;&#039;responsecode&#039;&#039;&#039; es &#039;&#039;&#039;“OK”&#039;&#039;&#039; significa que todo ha ido correctamente y en la posición &#039;&#039;&#039;data&#039;&#039;&#039; deberemos ver &#039;&#039;&#039;“pong”&#039;&#039;&#039;. Mientras esta prueba no de este resultado no podremos hacer ninguna acción más sobre la API.&lt;br /&gt;
&lt;br /&gt;
=Campos Obligatorios y No Obligatorios para las notificaciones=&lt;br /&gt;
Para generar notificaciones desde nuestro sistema, en la conexión con la API deberá ir especificada la tarea &#039;&#039;&#039;“setPush”&#039;&#039;&#039;, junto un array de datos con una serie de campos.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Independientemente del sistema operativo al que vaya la notificación, hay unos campos que &#039;&#039;&#039;son obligatorios&#039;&#039;&#039;; son los siguientes:&lt;br /&gt;
#&#039;&#039;&#039;appHash:&#039;&#039;&#039; contendrá el hash de la aplicación registrada, automáticamente generado por nuestro panel.&lt;br /&gt;
#&#039;&#039;&#039;terminalTokens:&#039;&#039;&#039; este campo podrá tener más de un formato, de manera que los dispositivos que reciban la notificación puedan ser diferentes.&lt;br /&gt;
#*En caso de &#039;&#039;&#039;tratarse de un array&#039;&#039;&#039;, se mandará la notificación a todos los tokens de dicho array.&lt;br /&gt;
#*En caso de &#039;&#039;&#039;no ser un  array&#039;&#039;&#039;, podrá contener lo siguiente:&lt;br /&gt;
##&#039;&#039;&#039;all:&#039;&#039;&#039; En este caso se notificará a todos los dispositivos que estén registrados en la aplicación sin tener en cuenta el SO.&lt;br /&gt;
##&#039;&#039;&#039;onlyAndroid:&#039;&#039;&#039; Solo se notificará a los terminales con &#039;&#039;&#039;SO Android&#039;&#039;&#039; que estén registrados en la aplicación.&lt;br /&gt;
##&#039;&#039;&#039;onlyIOS:&#039;&#039;&#039; Solo se notificará a los terminales con &#039;&#039;&#039;SO IOs&#039;&#039;&#039; que estén registrados en la aplicación.&lt;br /&gt;
##&#039;&#039;&#039;Un token de un dispositivo en concreto,&#039;&#039;&#039; de manera que solo se le notifique a éste.&lt;br /&gt;
#&#039;&#039;&#039;message:&#039;&#039;&#039; contendrá el texto de la notificación.&lt;br /&gt;
#&#039;&#039;&#039;type:&#039;&#039;&#039; contendrá el tipo de notificación pudiendo ser este de de diversa índole.&lt;br /&gt;
#*&#039;&#039;&#039;normal:&#039;&#039;&#039; este tipo será el más común, el dispositivo recibirá la notificación y no se hará mas con ésta.&lt;br /&gt;
#*&#039;&#039;&#039;openApp:&#039;&#039;&#039; este tipo hará que al hacer click sobre la notificación se abra la aplicación encargada de mostrar dicha notificación.&lt;br /&gt;
#*&#039;&#039;&#039;openUrl:&#039;&#039;&#039; este tipo hará que al hacer click sobre la notificación se abra una URL especificada en otro campo que veremos más adelante.&lt;br /&gt;
#*&#039;&#039;&#039;openAppWithextras:&#039;&#039;&#039; este tipo hará lo mismo que el &#039;&#039;&#039;“openApp”&#039;&#039;&#039; pudiendo ademas añadir hasta cinco variables extra para poder tratarlas a nuestro gusto en la aplicación. Cabe destacar que este tipo de notificación, nos permitirá hacer uso de otro campo no obligatorio que más adelante trataremos, el cual se llama &#039;&#039;&#039;&amp;quot;customType”&#039;&#039;&#039; y nos permitirá lanzar notificaciones &#039;&#039;&#039;“personalizadas”&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez vistos los campos obligatorios, a continuación se expondrán todos los &#039;&#039;&#039;campos no obligatorios&#039;&#039;&#039; que darán forma a las notificaciones:&lt;br /&gt;
#&#039;&#039;&#039;tittle:&#039;&#039;&#039; contendrá el texto del título que se mostrara junto con el mensaje de la notificación.&lt;br /&gt;
#&#039;&#039;&#039;sendingId:&#039;&#039;&#039; en caso de querer lanzar una notificación para muchos terminales, como hemos expuesto en los campos obligatorios, inicialmente el campo &#039;&#039;&#039;”terminalTokens&amp;quot;&#039;&#039;&#039; deberá ser un array con dichos terminales. Debido a que la API no puede admitir un número ilimitado de tokens a la vez, deberemos &#039;&#039;&#039;segmentar&#039;&#039;&#039; dicho array en varios más pequeños y hacer tantos &#039;&#039;&#039;“setPush”&#039;&#039;&#039; como sean necesarios hasta finalizar con el número de dispositivos a notificar. Cada vez que nos conectemos a la API para hacer un &#039;&#039;&#039;“setPush”&#039;&#039;&#039; y generar una notificación, dicha conexión nos devolverá un JSON en el cual hay un campo denominado &#039;&#039;&#039;“sendingId”&#039;&#039;&#039; con el ID autonumérico generado en nuestro sistema para ese envío push. De ésta manera, si se recoge dicho ID y se pasa como campo en la posición &#039;&#039;&#039;“sendingId”&#039;&#039;&#039;, los siguientes tokens que se manden en el &#039;&#039;&#039;”terminalTokens”&#039;&#039;&#039; irán asociados al primer envío realizado.&lt;br /&gt;
#&#039;&#039;&#039;sandbox:&#039;&#039;&#039; este campo solo se usará cuando se vaya a notificar a algún dispositivo con &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá “yes” en caso de que dicho dispositivo este en el servidor de desarrollo de Apple, y un “no” en caso de que dicho dispositivo este en el servidor de producción de Apple.&lt;br /&gt;
#&#039;&#039;&#039;isTest:&#039;&#039;&#039; al igual que en el campo del &#039;&#039;&#039;“sandbox”&#039;&#039;&#039;, contendrá “yes” o “no” dependiendo de si el dispositivo esta en el servidor de desarrollo o el de producción de Apple.&lt;br /&gt;
#&#039;&#039;&#039;background:&#039;&#039;&#039; este campo solo irá en caso de ir a algún dispositivo que tenga &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá “yes” o “no”. En caso de ser afirmativo la notificación se mostrará sin hacer ruido ni vibrar. Para el caso de iOs esto generará un alert vació con el &#039;&#039;&#039;content-available a 1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;silent:&#039;&#039;&#039; Contendrá “yes” o “no”. En caso de ser afirmativo la notificación no se mostrará pero si lanzará el evento de la librería push encargado de escuchar si se ha recibido una notificación o no. De ésta manera podremos lanzar notificaciones que no se muestren, pero si hagan algo por detrás en la APP al recibirla. Para el caso de Android solo se usará este campo cuando el &#039;&#039;&#039;“type”&#039;&#039;&#039; de la notificación sea &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y se haga uso del campo no obligatorio &#039;&#039;&#039;“customType”&#039;&#039;&#039;. Para el caso de iOs esto generará un alert vació con el &#039;&#039;&#039;content-available a 1&#039;&#039;&#039; por defecto, pudiendo ser modificado por el siguiente campo que se expone a continuación ( &#039;&#039;&#039;silentNumber&#039;&#039;&#039; ). Como en el caso de Android esto solo tendrá sentido para las notificaciones de &#039;&#039;&#039;“type”&#039;&#039;&#039;  &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; , puesto que al no mostrar nada, se usarán para hacer cosas por detrás mediante los campos no obligatorios &#039;&#039;&#039;external1, external2, external3, external4 y external5&#039;&#039;&#039;. A diferencia de Android, en iOs se podrá usar con &#039;&#039;&#039;”customType”&#039;&#039;&#039; o sin el.&lt;br /&gt;
#&#039;&#039;&#039;silentNumber:&#039;&#039;&#039; este campo solo se usará para &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Es el número que aparecerá en el &#039;&#039;&#039;content-available&#039;&#039;&#039; en caso de que el campo &#039;&#039;&#039;silent&#039;&#039;&#039; sea &#039;&#039;&#039;&amp;quot;yes&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;customType:&#039;&#039;&#039; contendrá el texto del tipo de notificación personalizada que cada uno cree. Éste campo solo se podrá usar si previamente en el campo obligatorio &#039;&#039;&#039;“type”&#039;&#039;&#039; se ha puesto &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;badge:&#039;&#039;&#039; este campo será el número que se mostrará junto con la notificación en los dispositivos &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. A partir de iOs 10 las notificaciones &#039;&#039;&#039;no&#039;&#039;&#039; levantan la aplicación en caso de estar background, por lo que esto generará un &#039;&#039;&#039;content-available&#039;&#039;&#039; con el fin de despertar la aplicación y poder actualizar el icono de notificaciones pendientes en ésta.&lt;br /&gt;
#&#039;&#039;&#039;broadcast:&#039;&#039;&#039; esta variable solo será útil para dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;, contendrá el nombre de la clase instanciada en su aplicación para que se active al recibir la notificación.&lt;br /&gt;
#&#039;&#039;&#039;direct:&#039;&#039;&#039; contendra &amp;quot;yes&amp;quot; o &amp;quot;no&amp;quot;. En caso de ser afirmativo las notificaciones se enviarán al instante no pudiendo programarlas.&lt;br /&gt;
#&#039;&#039;&#039;whenSend:&#039;&#039;&#039; contendrá “immediately”, “programmatically” o “geolocation”. En caso de ser immediately el campo &#039;&#039;&#039;“direct”&#039;&#039;&#039; previamente descrito deberá ser &#039;&#039;&#039;“yes”&#039;&#039;&#039;. En caso de ser “programmatically” o “geolocation” el  campo &#039;&#039;&#039;“direct”&#039;&#039;&#039; previamente descrito deberá ser &#039;&#039;&#039;“no”&#039;&#039;&#039;, ademas el envío se programará según los siguientes campos no obligatorios que se le pase.&lt;br /&gt;
#*&#039;&#039;&#039;Programmatically:&#039;&#039;&#039; cuando la notificación  se quiera programar para una fecha en concreto , deberán existir los siguientes campos no obligatorios:&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyTime:&#039;&#039;&#039; contendrá la fecha en &#039;&#039;&#039;UNIXTIMESTAMP&#039;&#039;&#039; en la que se lanzará la notificación, si se usa este campo no obligatorio no deberemos usar los siguientes.&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronMinutes:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronHours:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronDays:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronMonths:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
#*&#039;&#039;&#039;Geolocation:&#039;&#039;&#039; cuando se quiera programar por geolocalización una notificación, deberán existir los siguientes campos no obligatorios:&lt;br /&gt;
##&#039;&#039;&#039;geolocationCoordinates:&#039;&#039;&#039; será un array en el que la posición &#039;&#039;&#039;cero&#039;&#039;&#039; será la &#039;&#039;&#039;latitud&#039;&#039;&#039; y la &#039;&#039;&#039;uno&#039;&#039;&#039; la &#039;&#039;&#039;longitud&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;geolocationMeters:&#039;&#039;&#039; contendrá los metros a los que hemos de estar de las coordenadas especificadas para que lance la notificación.&lt;br /&gt;
#&#039;&#039;&#039;languaje:&#039;&#039;&#039; contendrá el idioma del dispositivo. &#039;&#039;&#039;Ejemplo: es&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;country:&#039;&#039;&#039; contendrá el país del dispositivo. &#039;&#039;&#039;Ejemplo: ES&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;deviceType:&#039;&#039;&#039; contendrá el tipo de dispositivo al que se le mandará la notificación pudiendo ser:&lt;br /&gt;
#*&#039;&#039;&#039;Para Android:&#039;&#039;&#039;&lt;br /&gt;
##&#039;&#039;&#039;movil&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;tableta&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;reloj&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;tv&#039;&#039;&#039;.&lt;br /&gt;
#*&#039;&#039;&#039;Para iOs:&#039;&#039;&#039;&lt;br /&gt;
##&#039;&#039;&#039;iphone&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;ipad&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;iwatch&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;appletv&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;appVersion:&#039;&#039;&#039; contendrá la versión de la aplicación a la que esta dirigida la notificación. &#039;&#039;&#039;Ejemplo: 1.0.1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039; contendrá la versión del terminal al que ira dirigida la notificación. &#039;&#039;&#039;Ejemplo: 6.0.1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;urlToOpen:&#039;&#039;&#039; contendrá la URL a abrir al hacer click sobre una notificación de tipo &#039;&#039;&#039;“openUrl”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external1:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external2:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external3:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external4:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external5:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;androidNotyStyle:&#039;&#039;&#039; contendrá &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039; cuando queramos mostrar una imagen junto con la notificación en los dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;. En caso de no querer mostrar ninguna imagen no se utilizara este campo.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleUrlImage:&#039;&#039;&#039; contendrá la URL de la imagen que se quiera mostrar en los dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;, siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle&amp;quot;&#039;&#039;&#039;. Cabe destacar que la URL deberá ser segura ( https ) y deberá contener la extension del contenido en dicha URL.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleExpandedTitle:&#039;&#039;&#039; contendrá el texto que se mostrará como titulo al expandir una notificación que contenga una imagen en dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;,  siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleExpandedSumaryText:&#039;&#039;&#039; contendrá el texto que se mostrará como mensaje al expandir una notificación que contenga una imagen en dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039; ,  siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;extra-content:&#039;&#039;&#039; este campo solo se usará para notificaciones dirigidas a dispositivos con &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá la URL del contenido extra que se quiere mostrar junto con la notificación. En este caso y a diferencia de &#039;&#039;&#039;Android ( bigPictureStyleUrlImage )&#039;&#039;&#039;, dicho contenido podrá ser una imagen, un giff, un video o un audio. La URL también deberá ser segura ( https )  y deberá contener la extension del contenido en dicha URL.&lt;br /&gt;
#&#039;&#039;&#039;channel:&#039;&#039;&#039; A partir de Android O, las notificaciones deberán ir por un canal de notificaciones instanciado en su aplicación. Esta variable contendrá el nombre del canal por el que han de salir.&lt;br /&gt;
#&#039;&#039;&#039;thread-id:&#039;&#039;&#039; A partir de iOs 12, las notificaciones pueden ser agrupadas. Para ello deberemos mandar el mismo thread-id en todas las notificaciones que queramos agrupar.&lt;br /&gt;
&lt;br /&gt;
=Notificaciones Android=&lt;br /&gt;
En este apartado veremos los distintos tipos de notificaciones para dispositivos Android mas detalladamente complementándolo con ejemplos funcionales:&lt;br /&gt;
#&#039;&#039;&#039;normal:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApp:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenApp+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenApp+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenApp&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenApp&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openUrl:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenUrl+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenUrl+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;url_pagina_abrir&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenUrl&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenUrl&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;url_pagina_abrir&#039;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApppWithExtras:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con customType:&#039;&#039;&#039; Las notificaciones personalizadas, solo lanzarán la notificación si la APP se encuentra en background, en caso de estar en foreground (primer plano), no lanzará la notificación.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;no&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;no&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Push_a_extras_p.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin notificación:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Silent&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Silent&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external1&#039;] = &#039;variable1&#039;;&lt;br /&gt;
$arr_data[&#039;external3&#039;] = &#039;variable3&#039;;&lt;br /&gt;
$arr_data[&#039;external5&#039;] = &#039;variable5&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Independientemente de los anteriores tipos:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;sendingId:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token_exchange = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + sendingId&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + sendingId&#039;;&lt;br /&gt;
&lt;br /&gt;
$array_tokens = array(); // ARRAY CON TODOS LOS USUARIOS QUE QUEREMOS QUE RECIBAN LA NOTIFICACION&lt;br /&gt;
$array_tokens_enviar = array(); // ARRAY QUE SE USA PARA MANDAR DE 500 EN 500&lt;br /&gt;
$contador = 0; // VARIABLE DE CONTROL PARA ENVIAR 500 USUARIOS&lt;br /&gt;
$json_datos_devueltos = array(); // ARRAY QUE CONTENDRA LA RESPUESTA RECIBIDA DE LA API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
foreach( $array_tokens as $token ){ // 1.- MANDAMOS A LA API DE 500 EN 500 PARA NO SATURARLA&lt;br /&gt;
	&lt;br /&gt;
	if( $contador &amp;gt;= 500 ){&lt;br /&gt;
		&lt;br /&gt;
		$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
		&lt;br /&gt;
		$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
		$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
		&lt;br /&gt;
		if ( isset($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) AND !empty($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) ){ // ESTO SE OBTENDRA DESPUES DE LANZAR LOS PRIMEROS 500 USUARIOS&lt;br /&gt;
			&lt;br /&gt;
			$arr_data[&#039;sendingId&#039;] = $json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;];&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		$contador = 0;&lt;br /&gt;
		$array_tokens_enviar = array();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$array_tokens_enviar[] = $token[&#039;token_del_usuario&#039;]; // EN NUESTRO CASO LA VARIABLE $token ES UN ARRAY CON MAS DATOS&lt;br /&gt;
	$contador += 1;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if( count($array_tokens_enviar) &amp;gt; 0 ) { // 2.- MANDAMOS LOS QUE FALTEN, LOS RESTOS QUE NO HAYAN LLEGADO A 500&lt;br /&gt;
				&lt;br /&gt;
	$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
	$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
	&lt;br /&gt;
	$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;language:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;language&#039;] = &#039;es&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;country:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;country&#039;] = &#039;ES&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;deviceType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + TipoDispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + TipoDispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;deviceType&#039;] = &#039;movil&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;appVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + VersionAplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + VersionAplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;appVersion&#039;] = &#039;1.0&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + VersionTerminal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + VersionTerminal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;terminalVersion&#039;] = &#039;6.0.1&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Notificaciones iOs=&lt;br /&gt;
En este apartado veremos los distintos tipos de notificaciones para dispositivos iOs mas detalladamente complementándolo con ejemplos funcionales:&lt;br /&gt;
#&#039;&#039;&#039;normal:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApp:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir App Con Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir App Con Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir App&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir App&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openUrl:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;https://....&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir Url Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir Url Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;https://....&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir Url&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir Url&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApppWithExtras:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Silenciosa:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_eleccion_desarrollador&#039;;&lt;br /&gt;
$arr_data[&#039;external_1&#039;] = &#039;variable_extra_1&#039;;&lt;br /&gt;
$arr_data[&#039;external_2&#039;] = &#039;variable_extra_2&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;silentNumber&#039;] = &#039;6&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Push_i_extras_p_s.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Silenciosa:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;external_1&#039;] = &#039;variable_extra_1&#039;;&lt;br /&gt;
$arr_data[&#039;external_2&#039;] = &#039;variable_extra_2&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;silentNumber&#039;] = &#039;6&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Independientemente de los anteriores tipos:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;sendingId:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token_exchange = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + sendingId&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + sendingId&#039;;&lt;br /&gt;
&lt;br /&gt;
$array_tokens = array(); // ARRAY CON TODOS LOS USUARIOS QUE QUEREMOS QUE RECIBAN LA NOTIFICACION&lt;br /&gt;
$array_tokens_enviar = array(); // ARRAY QUE SE USA PARA MANDAR DE 500 EN 500&lt;br /&gt;
$contador = 0; // VARIABLE DE CONTROL PARA ENVIAR 500 USUARIOS&lt;br /&gt;
$json_datos_devueltos = array(); // ARRAY QUE CONTENDRA LA RESPUESTA RECIBIDA DE LA API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
foreach( $array_tokens as $token ){ // 1.- MANDAMOS A LA API DE 500 EN 500 PARA NO SATURARLA&lt;br /&gt;
	&lt;br /&gt;
	if( $contador &amp;gt;= 500 ){&lt;br /&gt;
		&lt;br /&gt;
		$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
		&lt;br /&gt;
		$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
		$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
		&lt;br /&gt;
		if ( isset($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) AND !empty($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) ){ // ESTO SE OBTENDRA DESPUES DE LANZAR LOS PRIMEROS 500 USUARIOS&lt;br /&gt;
			&lt;br /&gt;
			$arr_data[&#039;sendingId&#039;] = $json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;];&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		$contador = 0;&lt;br /&gt;
		$array_tokens_enviar = array();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$array_tokens_enviar[] = $token[&#039;token_del_usuario&#039;]; // EN NUESTRO CASO LA VARIABLE $token ES UN ARRAY CON MAS DATOS&lt;br /&gt;
	$contador += 1;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if( count($array_tokens_enviar) &amp;gt; 0 ) { // 2.- MANDAMOS LOS QUE FALTEN, LOS RESTOS QUE NO HAYAN LLEGADO A 500&lt;br /&gt;
				&lt;br /&gt;
	$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
	$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
	&lt;br /&gt;
	$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;language:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;language&#039;] = &#039;es&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;country:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;country&#039;] = &#039;ES&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;deviceType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Tipo Dispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Tipo Dispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;deviceType&#039;] = &#039;iphone&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;appVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Version Aplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Version Aplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;appVersion&#039;] = &#039;3.4&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Version Terminal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Version Terminal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;terminalVersion&#039;] = &#039;10.3&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Respuesta setPush=&lt;br /&gt;
La respuesta que recibiremos por parte de la API siempre será un JSON.  Dicho JSON contendrá de tres a cinco posiciones/elementos:&lt;br /&gt;
#&#039;&#039;&#039;responsecode:&#039;&#039;&#039; determinará si la acción a realizar sobre la API ha funcionado o no. En caso de ser &#039;&#039;&#039;negativo&#039;&#039;&#039; devolverá &#039;&#039;&#039;“KO”&#039;&#039;&#039; y en caso de ser &#039;&#039;&#039;positivo&#039;&#039;&#039; será &#039;&#039;&#039;“OK”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;errorcode:&#039;&#039;&#039; en caso de que el &#039;&#039;&#039;responsecode&#039;&#039;&#039; sea &#039;&#039;&#039;“KO”&#039;&#039;&#039;, devolverá el código de error en nuestro sistema. Por el contrario, si el &#039;&#039;&#039;responsecode&#039;&#039;&#039; es &#039;&#039;&#039;“OK”&#039;&#039;&#039;, devolverá un 0.&lt;br /&gt;
#&#039;&#039;&#039;errortext:&#039;&#039;&#039; contendrá el texto del error que se ha producido, por lo que como se deduce esto solo saldrá cuando la acción sobre la API no se haya podido ejecutar. &lt;br /&gt;
#&#039;&#039;&#039;data:&#039;&#039;&#039; contendrá el resultado de la acción realizada satisfactoriamente sobre la API. Si ha habido un error esta posición &#039;&#039;&#039;no se generará&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;timestamp:&#039;&#039;&#039; devolverá la fecha en timestamp en la que la acción sobre la API ha sido realizada correctamente. Si ha habido un error esta posición &#039;&#039;&#039;no se generará&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En resumen, si la acción a realizar sobre la API ha dado error, el JSON contendrá los elementos ( responsecode, errorcode y errortext).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_error.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Por el contrario si la acción ha finalizado correcta y satisfactoriamente, el JSON contendrá los elementos ( responsecode, errorcode, data y timestamp). &lt;br /&gt;
Para el caso de crear una notificación ( &#039;&#039;&#039;setPush&#039;&#039;&#039; ), y que haya funcionado correctamente, en la respuesta se generará algo tal que la siguiente imágen:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_noerror.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En el contenido del elemento &#039;&#039;&#039;data&#039;&#039;&#039;, se mostrara las notificaciones que se han podido enviar, las que no se han podido enviar, el ID que se genera en nuestro sistema asociado al envío solicitado y un array con los tokens enviados ( &#039;&#039;&#039;deletedArray&#039;&#039;&#039; ) y un array con los tokens que no se han podido enviar ( &#039;&#039;&#039;deletedWithoutSend&#039;&#039;&#039; ).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Este último caso, el del array con los tokens que no se han podido enviar solo se informará en el caso de que al enviar la acción &#039;&#039;&#039;setPush&#039;&#039;&#039;, en la posición &#039;&#039;&#039;terminalTokens&#039;&#039;&#039;, se mande &#039;&#039;&#039;un array con los terminales en concreto que se quieren notificar&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En el caso del array con los dispositivos notificados, se apreciará una segmentación por &#039;&#039;&#039;SO&#039;&#039;&#039;. En caso de que uno de estos dispositivos no haya podido recibir la notificación por problemas  como bien puede ser un token obsoleto, se borrará de nuestro sistema y el token se informará en la posición  ( &#039;&#039;&#039;deletedTokens&#039;&#039;&#039; ).&lt;br /&gt;
&lt;br /&gt;
=Obtención de usuarios registrados en su aplicación=&lt;br /&gt;
Para obtener un conteo de usuarios registrados en nuestra aplicación y los datos de estos, deberemos hacer uso de la tarea &#039;&#039;&#039;“getPushTokens”&#039;&#039;&#039; y el hash de la aplicación registrada en el panel de Mobeleader. Dicho hash podremos verlo en cualquier momento desde la sección https://panel.mobeleader.com/index.php?sec=6. Una vez obtengamos dicho hash procederemos a conectarnos a la API de la manera expuesta en la a continuación:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;getPushTokens&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_getPushTokens.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Como se puede apreciar en la respuesta, &#039;&#039;&#039;la posición respondecode es “OK”&#039;&#039;&#039;. Al igual que en el caso del &#039;&#039;&#039;“ping”&#039;&#039;&#039;, siempre que el &#039;&#039;&#039;responsecode&#039;&#039;&#039; sea &#039;&#039;&#039;”OK”&#039;&#039;&#039; significara que la acción a realizar sobre la API ha finalizado correctamente y que en la posición &#039;&#039;&#039;“data”&#039;&#039;&#039; vendrá los solicitado, en este caso los datos de los terminales registrados en la aplicación.&lt;br /&gt;
&lt;br /&gt;
=Borrado de usuarios registrados en su aplicación=&lt;br /&gt;
Una vez obtenidos los datos mediante la tarea &#039;&#039;&#039;“getPushTokens”&#039;&#039;&#039;, si quisiéramos  borrar alguno de dichos tokens del sistema de Mobeleader, deberemos hacer uso de la tarea &#039;&#039;&#039;“deletePushTokens”&#039;&#039;&#039; usando el hash de la aplicación de la misma manera que en la obtención de usuarios, y pasándole el token o los tokens que quisiéramos borrar. Lo haremos de la siguiente manera:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;tokens&#039;][] = &#039;token_del_usuario_registrado&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;deletePushTokens&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_deletePushTokens.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Como siempre, en caso de que el &#039;&#039;&#039;responsecode sea “OK”&#039;&#039;&#039;, en la &#039;&#039;&#039;posición “data”&#039;&#039;&#039; veremos el número de tokens borrados.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Docu_push_exchange&amp;diff=2764</id>
		<title>Docu push exchange</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Docu_push_exchange&amp;diff=2764"/>
		<updated>2019-06-07T11:15:56Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Conectándonos a la API */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introducción=&lt;br /&gt;
En este documento se va a mostrar como ha de ser el contenido que se mande al api-exchange para realizar las distintas acciones que ésta nos permite. Se expondrá brevemente como ha de realizarse la conexión a dicha API, como han de ser los campos obligatorios que han de ir para todos los casos y a continuación se procederá a tratar todos los casos con ejemplos para un mayor entendimiento.&lt;br /&gt;
&lt;br /&gt;
=Conectándonos a la API=&lt;br /&gt;
Lo primero que deberemos hacer es solicitar el token necesario para poder realizar la conexión a nuestro sistema. Dicho token es un identificador único para cada usuario desarrollador. Una vez obtenido dicho token, procederemos a hacer una breve prueba de conexión para comprobar que tenemos acceso a la API. En dicha prueba haremos uso de la tarea &#039;&#039;&#039;“ping”&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;ping&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Conexion_ping.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En la imagen vemos como ha de ser el código necesario para realizar dicha prueba y el resultado transformado a un array. Si la posición del &#039;&#039;&#039;responsecode&#039;&#039;&#039; es &#039;&#039;&#039;“OK”&#039;&#039;&#039; significa que todo ha ido correctamente y en la posición &#039;&#039;&#039;data&#039;&#039;&#039; deberemos ver &#039;&#039;&#039;“pong”&#039;&#039;&#039;. Mientras esta prueba no de este resultado no podremos hacer ninguna acción más sobre la API.&lt;br /&gt;
&lt;br /&gt;
=Campos Obligatorios y No Obligatorios para las notificaciones=&lt;br /&gt;
Para generar notificaciones desde nuestro sistema, en la conexión con la API deberá ir especificada la tarea &#039;&#039;&#039;“setPush”&#039;&#039;&#039;, junto un array de datos con una serie de campos.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Independientemente del SO al que la notificación irá, hay unos campos que &#039;&#039;&#039;son obligatorios&#039;&#039;&#039;; son los siguientes:&lt;br /&gt;
#&#039;&#039;&#039;appHash:&#039;&#039;&#039; contendrá el hash autogenerado por el panel Mobeleader de la aplicación registrada.&lt;br /&gt;
#&#039;&#039;&#039;terminalTokens:&#039;&#039;&#039; este campo podrá tener más de un formato, de manera que los dispositivos que reciban la notificación puedan ser diferentes.&lt;br /&gt;
#*En caso de &#039;&#039;&#039;tratarse de un array&#039;&#039;&#039;, se mandará la notificación a todos los tokens de dicho array.&lt;br /&gt;
#*En caso de &#039;&#039;&#039;no ser un  array&#039;&#039;&#039;, podrá contener lo siguiente:&lt;br /&gt;
##&#039;&#039;&#039;all:&#039;&#039;&#039; En este caso se notificará a todos los dispositivos que estén registrados en la aplicación sin tener en cuenta el SO.&lt;br /&gt;
##&#039;&#039;&#039;onlyAndroid:&#039;&#039;&#039; Solo se notificará a los terminales con &#039;&#039;&#039;SO Android&#039;&#039;&#039; que estén registrados en la aplicación.&lt;br /&gt;
##&#039;&#039;&#039;onlyIOS:&#039;&#039;&#039; Solo se notificará a los terminales con &#039;&#039;&#039;SO IOs&#039;&#039;&#039; que estén registrados en la aplicación.&lt;br /&gt;
##&#039;&#039;&#039;Un token de un dispositivo en concreto,&#039;&#039;&#039; de manera que solo se le notifique a éste.&lt;br /&gt;
#&#039;&#039;&#039;message:&#039;&#039;&#039; contendrá el texto de la notificación.&lt;br /&gt;
#&#039;&#039;&#039;type:&#039;&#039;&#039; contendrá el tipo de notificación pudiendo ser este de de diversa índole.&lt;br /&gt;
#*&#039;&#039;&#039;normal:&#039;&#039;&#039; este tipo será el más común, el dispositivo recibirá la notificación y no se hará mas con ésta.&lt;br /&gt;
#*&#039;&#039;&#039;openApp:&#039;&#039;&#039; este tipo hará que al hacer click sobre la notificación se abra la aplicación encargada de mostrar dicha notificación.&lt;br /&gt;
#*&#039;&#039;&#039;openUrl:&#039;&#039;&#039; este tipo hará que al hacer click sobre la notificación se abra una URL especificada en otro campo que veremos más adelante.&lt;br /&gt;
#*&#039;&#039;&#039;openAppWithextras:&#039;&#039;&#039; este tipo hará lo mismo que el &#039;&#039;&#039;“openApp”&#039;&#039;&#039; pudiendo ademas añadir hasta cinco variables extra para poder tratarlas a nuestro gusto en la aplicación. Cabe destacar que este tipo de notificación, nos permitirá hacer uso de otro campo no obligatorio que más adelante trataremos, el cual se llama &#039;&#039;&#039;&amp;quot;customType”&#039;&#039;&#039; y nos permitirá lanzar notificaciones &#039;&#039;&#039;“personalizadas”&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez vistos los campos obligatorios, a continuación se expondrán todos los &#039;&#039;&#039;campos no obligatorios&#039;&#039;&#039; que darán forma a las notificaciones:&lt;br /&gt;
#&#039;&#039;&#039;tittle:&#039;&#039;&#039; contendrá el texto del título que se mostrara junto con el mensaje de la notificación.&lt;br /&gt;
#&#039;&#039;&#039;sendingId:&#039;&#039;&#039; en caso de querer lanzar una notificación para muchos terminales, como hemos expuesto en los campos obligatorios, inicialmente el campo &#039;&#039;&#039;”terminalTokens&amp;quot;&#039;&#039;&#039; deberá ser un array con dichos terminales. Debido a que la API no puede admitir un número ilimitado de tokens a la vez, deberemos &#039;&#039;&#039;segmentar&#039;&#039;&#039; dicho array en varios más pequeños y hacer tantos &#039;&#039;&#039;“setPush”&#039;&#039;&#039; como sean necesarios hasta finalizar con el número de dispositivos a notificar. Cada vez que nos conectemos a la API para hacer un &#039;&#039;&#039;“setPush”&#039;&#039;&#039; y generar una notificación, dicha conexión nos devolverá un JSON en el cual hay un campo denominado &#039;&#039;&#039;“sendingId”&#039;&#039;&#039; con el ID autonumérico generado en nuestro sistema para ese envío push. De ésta manera, si se recoge dicho ID y se pasa como campo en la posición &#039;&#039;&#039;“sendingId”&#039;&#039;&#039;, los siguientes tokens que se manden en el &#039;&#039;&#039;”terminalTokens”&#039;&#039;&#039; irán asociados al primer envío realizado.&lt;br /&gt;
#&#039;&#039;&#039;sandbox:&#039;&#039;&#039; este campo solo se usará cuando se vaya a notificar a algún dispositivo con &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá “yes” en caso de que dicho dispositivo este en el servidor de desarrollo de Apple, y un “no” en caso de que dicho dispositivo este en el servidor de producción de Apple.&lt;br /&gt;
#&#039;&#039;&#039;isTest:&#039;&#039;&#039; al igual que en el campo del &#039;&#039;&#039;“sandbox”&#039;&#039;&#039;, contendrá “yes” o “no” dependiendo de si el dispositivo esta en el servidor de desarrollo o el de producción de Apple.&lt;br /&gt;
#&#039;&#039;&#039;background:&#039;&#039;&#039; este campo solo irá en caso de ir a algún dispositivo que tenga &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá “yes” o “no”. En caso de ser afirmativo la notificación se mostrará sin hacer ruido ni vibrar. Para el caso de iOs esto generará un alert vació con el &#039;&#039;&#039;content-available a 1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;silent:&#039;&#039;&#039; Contendrá “yes” o “no”. En caso de ser afirmativo la notificación no se mostrará pero si lanzará el evento de la librería push encargado de escuchar si se ha recibido una notificación o no. De ésta manera podremos lanzar notificaciones que no se muestren, pero si hagan algo por detrás en la APP al recibirla. Para el caso de Android solo se usará este campo cuando el &#039;&#039;&#039;“type”&#039;&#039;&#039; de la notificación sea &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y se haga uso del campo no obligatorio &#039;&#039;&#039;“customType”&#039;&#039;&#039;. Para el caso de iOs esto generará un alert vació con el &#039;&#039;&#039;content-available a 1&#039;&#039;&#039; por defecto, pudiendo ser modificado por el siguiente campo que se expone a continuación ( &#039;&#039;&#039;silentNumber&#039;&#039;&#039; ). Como en el caso de Android esto solo tendrá sentido para las notificaciones de &#039;&#039;&#039;“type”&#039;&#039;&#039;  &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; , puesto que al no mostrar nada, se usarán para hacer cosas por detrás mediante los campos no obligatorios &#039;&#039;&#039;external1, external2, external3, external4 y external5&#039;&#039;&#039;. A diferencia de Android, en iOs se podrá usar con &#039;&#039;&#039;”customType”&#039;&#039;&#039; o sin el.&lt;br /&gt;
#&#039;&#039;&#039;silentNumber:&#039;&#039;&#039; este campo solo se usará para &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Es el número que aparecerá en el &#039;&#039;&#039;content-available&#039;&#039;&#039; en caso de que el campo &#039;&#039;&#039;silent&#039;&#039;&#039; sea &#039;&#039;&#039;&amp;quot;yes&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;customType:&#039;&#039;&#039; contendrá el texto del tipo de notificación personalizada que cada uno cree. Éste campo solo se podrá usar si previamente en el campo obligatorio &#039;&#039;&#039;“type”&#039;&#039;&#039; se ha puesto &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;badge:&#039;&#039;&#039; este campo será el número que se mostrará junto con la notificación en los dispositivos &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. A partir de iOs 10 las notificaciones &#039;&#039;&#039;no&#039;&#039;&#039; levantan la aplicación en caso de estar background, por lo que esto generará un &#039;&#039;&#039;content-available&#039;&#039;&#039; con el fin de despertar la aplicación y poder actualizar el icono de notificaciones pendientes en ésta.&lt;br /&gt;
#&#039;&#039;&#039;broadcast:&#039;&#039;&#039; esta variable solo será útil para dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;, contendrá el nombre de la clase instanciada en su aplicación para que se active al recibir la notificación.&lt;br /&gt;
#&#039;&#039;&#039;direct:&#039;&#039;&#039; contendra &amp;quot;yes&amp;quot; o &amp;quot;no&amp;quot;. En caso de ser afirmativo las notificaciones se enviarán al instante no pudiendo programarlas.&lt;br /&gt;
#&#039;&#039;&#039;whenSend:&#039;&#039;&#039; contendrá “immediately”, “programmatically” o “geolocation”. En caso de ser immediately el campo &#039;&#039;&#039;“direct”&#039;&#039;&#039; previamente descrito deberá ser &#039;&#039;&#039;“yes”&#039;&#039;&#039;. En caso de ser “programmatically” o “geolocation” el  campo &#039;&#039;&#039;“direct”&#039;&#039;&#039; previamente descrito deberá ser &#039;&#039;&#039;“no”&#039;&#039;&#039;, ademas el envío se programará según los siguientes campos no obligatorios que se le pase.&lt;br /&gt;
#*&#039;&#039;&#039;Programmatically:&#039;&#039;&#039; cuando la notificación  se quiera programar para una fecha en concreto , deberán existir los siguientes campos no obligatorios:&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyTime:&#039;&#039;&#039; contendrá la fecha en &#039;&#039;&#039;UNIXTIMESTAMP&#039;&#039;&#039; en la que se lanzará la notificación, si se usa este campo no obligatorio no deberemos usar los siguientes.&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronMinutes:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronHours:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronDays:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronMonths:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
#*&#039;&#039;&#039;Geolocation:&#039;&#039;&#039; cuando se quiera programar por geolocalización una notificación, deberán existir los siguientes campos no obligatorios:&lt;br /&gt;
##&#039;&#039;&#039;geolocationCoordinates:&#039;&#039;&#039; será un array en el que la posición &#039;&#039;&#039;cero&#039;&#039;&#039; será la &#039;&#039;&#039;latitud&#039;&#039;&#039; y la &#039;&#039;&#039;uno&#039;&#039;&#039; la &#039;&#039;&#039;longitud&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;geolocationMeters:&#039;&#039;&#039; contendrá los metros a los que hemos de estar de las coordenadas especificadas para que lance la notificación.&lt;br /&gt;
#&#039;&#039;&#039;languaje:&#039;&#039;&#039; contendrá el idioma del dispositivo. &#039;&#039;&#039;Ejemplo: es&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;country:&#039;&#039;&#039; contendrá el país del dispositivo. &#039;&#039;&#039;Ejemplo: ES&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;deviceType:&#039;&#039;&#039; contendrá el tipo de dispositivo al que se le mandará la notificación pudiendo ser:&lt;br /&gt;
#*&#039;&#039;&#039;Para Android:&#039;&#039;&#039;&lt;br /&gt;
##&#039;&#039;&#039;movil&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;tableta&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;reloj&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;tv&#039;&#039;&#039;.&lt;br /&gt;
#*&#039;&#039;&#039;Para iOs:&#039;&#039;&#039;&lt;br /&gt;
##&#039;&#039;&#039;iphone&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;ipad&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;iwatch&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;appletv&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;appVersion:&#039;&#039;&#039; contendrá la versión de la aplicación a la que esta dirigida la notificación. &#039;&#039;&#039;Ejemplo: 1.0.1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039; contendrá la versión del terminal al que ira dirigida la notificación. &#039;&#039;&#039;Ejemplo: 6.0.1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;urlToOpen:&#039;&#039;&#039; contendrá la URL a abrir al hacer click sobre una notificación de tipo &#039;&#039;&#039;“openUrl”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external1:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external2:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external3:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external4:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external5:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;androidNotyStyle:&#039;&#039;&#039; contendrá &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039; cuando queramos mostrar una imagen junto con la notificación en los dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;. En caso de no querer mostrar ninguna imagen no se utilizara este campo.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleUrlImage:&#039;&#039;&#039; contendrá la URL de la imagen que se quiera mostrar en los dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;, siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle&amp;quot;&#039;&#039;&#039;. Cabe destacar que la URL deberá ser segura ( https ) y deberá contener la extension del contenido en dicha URL.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleExpandedTitle:&#039;&#039;&#039; contendrá el texto que se mostrará como titulo al expandir una notificación que contenga una imagen en dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;,  siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleExpandedSumaryText:&#039;&#039;&#039; contendrá el texto que se mostrará como mensaje al expandir una notificación que contenga una imagen en dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039; ,  siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;extra-content:&#039;&#039;&#039; este campo solo se usará para notificaciones dirigidas a dispositivos con &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá la URL del contenido extra que se quiere mostrar junto con la notificación. En este caso y a diferencia de &#039;&#039;&#039;Android ( bigPictureStyleUrlImage )&#039;&#039;&#039;, dicho contenido podrá ser una imagen, un giff, un video o un audio. La URL también deberá ser segura ( https )  y deberá contener la extension del contenido en dicha URL.&lt;br /&gt;
#&#039;&#039;&#039;channel:&#039;&#039;&#039; A partir de Android O, las notificaciones deberán ir por un canal de notificaciones instanciado en su aplicación. Esta variable contendrá el nombre del canal por el que han de salir.&lt;br /&gt;
#&#039;&#039;&#039;thread-id:&#039;&#039;&#039; A partir de iOs 12, las notificaciones pueden ser agrupadas. Para ello deberemos mandar el mismo thread-id en todas las notificaciones que queramos agrupar.&lt;br /&gt;
&lt;br /&gt;
=Notificaciones Android=&lt;br /&gt;
En este apartado veremos los distintos tipos de notificaciones para dispositivos Android mas detalladamente complementándolo con ejemplos funcionales:&lt;br /&gt;
#&#039;&#039;&#039;normal:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApp:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenApp+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenApp+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenApp&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenApp&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openUrl:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenUrl+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenUrl+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;url_pagina_abrir&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenUrl&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenUrl&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;url_pagina_abrir&#039;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApppWithExtras:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con customType:&#039;&#039;&#039; Las notificaciones personalizadas, solo lanzarán la notificación si la APP se encuentra en background, en caso de estar en foreground (primer plano), no lanzará la notificación.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;no&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;no&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Push_a_extras_p.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin notificación:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Silent&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Silent&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external1&#039;] = &#039;variable1&#039;;&lt;br /&gt;
$arr_data[&#039;external3&#039;] = &#039;variable3&#039;;&lt;br /&gt;
$arr_data[&#039;external5&#039;] = &#039;variable5&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Independientemente de los anteriores tipos:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;sendingId:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token_exchange = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + sendingId&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + sendingId&#039;;&lt;br /&gt;
&lt;br /&gt;
$array_tokens = array(); // ARRAY CON TODOS LOS USUARIOS QUE QUEREMOS QUE RECIBAN LA NOTIFICACION&lt;br /&gt;
$array_tokens_enviar = array(); // ARRAY QUE SE USA PARA MANDAR DE 500 EN 500&lt;br /&gt;
$contador = 0; // VARIABLE DE CONTROL PARA ENVIAR 500 USUARIOS&lt;br /&gt;
$json_datos_devueltos = array(); // ARRAY QUE CONTENDRA LA RESPUESTA RECIBIDA DE LA API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
foreach( $array_tokens as $token ){ // 1.- MANDAMOS A LA API DE 500 EN 500 PARA NO SATURARLA&lt;br /&gt;
	&lt;br /&gt;
	if( $contador &amp;gt;= 500 ){&lt;br /&gt;
		&lt;br /&gt;
		$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
		&lt;br /&gt;
		$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
		$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
		&lt;br /&gt;
		if ( isset($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) AND !empty($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) ){ // ESTO SE OBTENDRA DESPUES DE LANZAR LOS PRIMEROS 500 USUARIOS&lt;br /&gt;
			&lt;br /&gt;
			$arr_data[&#039;sendingId&#039;] = $json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;];&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		$contador = 0;&lt;br /&gt;
		$array_tokens_enviar = array();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$array_tokens_enviar[] = $token[&#039;token_del_usuario&#039;]; // EN NUESTRO CASO LA VARIABLE $token ES UN ARRAY CON MAS DATOS&lt;br /&gt;
	$contador += 1;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if( count($array_tokens_enviar) &amp;gt; 0 ) { // 2.- MANDAMOS LOS QUE FALTEN, LOS RESTOS QUE NO HAYAN LLEGADO A 500&lt;br /&gt;
				&lt;br /&gt;
	$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
	$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
	&lt;br /&gt;
	$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;language:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;language&#039;] = &#039;es&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;country:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;country&#039;] = &#039;ES&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;deviceType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + TipoDispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + TipoDispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;deviceType&#039;] = &#039;movil&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;appVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + VersionAplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + VersionAplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;appVersion&#039;] = &#039;1.0&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + VersionTerminal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + VersionTerminal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;terminalVersion&#039;] = &#039;6.0.1&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Notificaciones iOs=&lt;br /&gt;
En este apartado veremos los distintos tipos de notificaciones para dispositivos iOs mas detalladamente complementándolo con ejemplos funcionales:&lt;br /&gt;
#&#039;&#039;&#039;normal:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApp:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir App Con Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir App Con Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir App&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir App&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openUrl:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;https://....&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir Url Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir Url Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;https://....&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir Url&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir Url&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApppWithExtras:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Silenciosa:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_eleccion_desarrollador&#039;;&lt;br /&gt;
$arr_data[&#039;external_1&#039;] = &#039;variable_extra_1&#039;;&lt;br /&gt;
$arr_data[&#039;external_2&#039;] = &#039;variable_extra_2&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;silentNumber&#039;] = &#039;6&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Push_i_extras_p_s.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Silenciosa:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;external_1&#039;] = &#039;variable_extra_1&#039;;&lt;br /&gt;
$arr_data[&#039;external_2&#039;] = &#039;variable_extra_2&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;silentNumber&#039;] = &#039;6&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Independientemente de los anteriores tipos:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;sendingId:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token_exchange = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + sendingId&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + sendingId&#039;;&lt;br /&gt;
&lt;br /&gt;
$array_tokens = array(); // ARRAY CON TODOS LOS USUARIOS QUE QUEREMOS QUE RECIBAN LA NOTIFICACION&lt;br /&gt;
$array_tokens_enviar = array(); // ARRAY QUE SE USA PARA MANDAR DE 500 EN 500&lt;br /&gt;
$contador = 0; // VARIABLE DE CONTROL PARA ENVIAR 500 USUARIOS&lt;br /&gt;
$json_datos_devueltos = array(); // ARRAY QUE CONTENDRA LA RESPUESTA RECIBIDA DE LA API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
foreach( $array_tokens as $token ){ // 1.- MANDAMOS A LA API DE 500 EN 500 PARA NO SATURARLA&lt;br /&gt;
	&lt;br /&gt;
	if( $contador &amp;gt;= 500 ){&lt;br /&gt;
		&lt;br /&gt;
		$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
		&lt;br /&gt;
		$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
		$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
		&lt;br /&gt;
		if ( isset($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) AND !empty($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) ){ // ESTO SE OBTENDRA DESPUES DE LANZAR LOS PRIMEROS 500 USUARIOS&lt;br /&gt;
			&lt;br /&gt;
			$arr_data[&#039;sendingId&#039;] = $json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;];&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		$contador = 0;&lt;br /&gt;
		$array_tokens_enviar = array();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$array_tokens_enviar[] = $token[&#039;token_del_usuario&#039;]; // EN NUESTRO CASO LA VARIABLE $token ES UN ARRAY CON MAS DATOS&lt;br /&gt;
	$contador += 1;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if( count($array_tokens_enviar) &amp;gt; 0 ) { // 2.- MANDAMOS LOS QUE FALTEN, LOS RESTOS QUE NO HAYAN LLEGADO A 500&lt;br /&gt;
				&lt;br /&gt;
	$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
	$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
	&lt;br /&gt;
	$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;language:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;language&#039;] = &#039;es&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;country:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;country&#039;] = &#039;ES&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;deviceType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Tipo Dispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Tipo Dispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;deviceType&#039;] = &#039;iphone&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;appVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Version Aplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Version Aplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;appVersion&#039;] = &#039;3.4&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Version Terminal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Version Terminal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;terminalVersion&#039;] = &#039;10.3&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Respuesta setPush=&lt;br /&gt;
La respuesta que recibiremos por parte de la API siempre será un JSON.  Dicho JSON contendrá de tres a cinco posiciones/elementos:&lt;br /&gt;
#&#039;&#039;&#039;responsecode:&#039;&#039;&#039; determinará si la acción a realizar sobre la API ha funcionado o no. En caso de ser &#039;&#039;&#039;negativo&#039;&#039;&#039; devolverá &#039;&#039;&#039;“KO”&#039;&#039;&#039; y en caso de ser &#039;&#039;&#039;positivo&#039;&#039;&#039; será &#039;&#039;&#039;“OK”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;errorcode:&#039;&#039;&#039; en caso de que el &#039;&#039;&#039;responsecode&#039;&#039;&#039; sea &#039;&#039;&#039;“KO”&#039;&#039;&#039;, devolverá el código de error en nuestro sistema. Por el contrario, si el &#039;&#039;&#039;responsecode&#039;&#039;&#039; es &#039;&#039;&#039;“OK”&#039;&#039;&#039;, devolverá un 0.&lt;br /&gt;
#&#039;&#039;&#039;errortext:&#039;&#039;&#039; contendrá el texto del error que se ha producido, por lo que como se deduce esto solo saldrá cuando la acción sobre la API no se haya podido ejecutar. &lt;br /&gt;
#&#039;&#039;&#039;data:&#039;&#039;&#039; contendrá el resultado de la acción realizada satisfactoriamente sobre la API. Si ha habido un error esta posición &#039;&#039;&#039;no se generará&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;timestamp:&#039;&#039;&#039; devolverá la fecha en timestamp en la que la acción sobre la API ha sido realizada correctamente. Si ha habido un error esta posición &#039;&#039;&#039;no se generará&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En resumen, si la acción a realizar sobre la API ha dado error, el JSON contendrá los elementos ( responsecode, errorcode y errortext).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_error.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Por el contrario si la acción ha finalizado correcta y satisfactoriamente, el JSON contendrá los elementos ( responsecode, errorcode, data y timestamp). &lt;br /&gt;
Para el caso de crear una notificación ( &#039;&#039;&#039;setPush&#039;&#039;&#039; ), y que haya funcionado correctamente, en la respuesta se generará algo tal que la siguiente imágen:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_noerror.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En el contenido del elemento &#039;&#039;&#039;data&#039;&#039;&#039;, se mostrara las notificaciones que se han podido enviar, las que no se han podido enviar, el ID que se genera en nuestro sistema asociado al envío solicitado y un array con los tokens enviados ( &#039;&#039;&#039;deletedArray&#039;&#039;&#039; ) y un array con los tokens que no se han podido enviar ( &#039;&#039;&#039;deletedWithoutSend&#039;&#039;&#039; ).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Este último caso, el del array con los tokens que no se han podido enviar solo se informará en el caso de que al enviar la acción &#039;&#039;&#039;setPush&#039;&#039;&#039;, en la posición &#039;&#039;&#039;terminalTokens&#039;&#039;&#039;, se mande &#039;&#039;&#039;un array con los terminales en concreto que se quieren notificar&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En el caso del array con los dispositivos notificados, se apreciará una segmentación por &#039;&#039;&#039;SO&#039;&#039;&#039;. En caso de que uno de estos dispositivos no haya podido recibir la notificación por problemas  como bien puede ser un token obsoleto, se borrará de nuestro sistema y el token se informará en la posición  ( &#039;&#039;&#039;deletedTokens&#039;&#039;&#039; ).&lt;br /&gt;
&lt;br /&gt;
=Obtención de usuarios registrados en su aplicación=&lt;br /&gt;
Para obtener un conteo de usuarios registrados en nuestra aplicación y los datos de estos, deberemos hacer uso de la tarea &#039;&#039;&#039;“getPushTokens”&#039;&#039;&#039; y el hash de la aplicación registrada en el panel de Mobeleader. Dicho hash podremos verlo en cualquier momento desde la sección https://panel.mobeleader.com/index.php?sec=6. Una vez obtengamos dicho hash procederemos a conectarnos a la API de la manera expuesta en la a continuación:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;getPushTokens&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_getPushTokens.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Como se puede apreciar en la respuesta, &#039;&#039;&#039;la posición respondecode es “OK”&#039;&#039;&#039;. Al igual que en el caso del &#039;&#039;&#039;“ping”&#039;&#039;&#039;, siempre que el &#039;&#039;&#039;responsecode&#039;&#039;&#039; sea &#039;&#039;&#039;”OK”&#039;&#039;&#039; significara que la acción a realizar sobre la API ha finalizado correctamente y que en la posición &#039;&#039;&#039;“data”&#039;&#039;&#039; vendrá los solicitado, en este caso los datos de los terminales registrados en la aplicación.&lt;br /&gt;
&lt;br /&gt;
=Borrado de usuarios registrados en su aplicación=&lt;br /&gt;
Una vez obtenidos los datos mediante la tarea &#039;&#039;&#039;“getPushTokens”&#039;&#039;&#039;, si quisiéramos  borrar alguno de dichos tokens del sistema de Mobeleader, deberemos hacer uso de la tarea &#039;&#039;&#039;“deletePushTokens”&#039;&#039;&#039; usando el hash de la aplicación de la misma manera que en la obtención de usuarios, y pasándole el token o los tokens que quisiéramos borrar. Lo haremos de la siguiente manera:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;tokens&#039;][] = &#039;token_del_usuario_registrado&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;deletePushTokens&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_deletePushTokens.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Como siempre, en caso de que el &#039;&#039;&#039;responsecode sea “OK”&#039;&#039;&#039;, en la &#039;&#039;&#039;posición “data”&#039;&#039;&#039; veremos el número de tokens borrados.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Docu_push_exchange&amp;diff=2763</id>
		<title>Docu push exchange</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Docu_push_exchange&amp;diff=2763"/>
		<updated>2019-06-07T11:03:24Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Introducción */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introducción=&lt;br /&gt;
En este documento se va a mostrar como ha de ser el contenido que se mande al api-exchange para realizar las distintas acciones que ésta nos permite. Se expondrá brevemente como ha de realizarse la conexión a dicha API, como han de ser los campos obligatorios que han de ir para todos los casos y a continuación se procederá a tratar todos los casos con ejemplos para un mayor entendimiento.&lt;br /&gt;
&lt;br /&gt;
=Conectándonos a la API=&lt;br /&gt;
Lo primero que deberemos hacer es solicitar el token necesario para la conexion a Mobeleader. Dicho token es un identificador único para cada usuario desarrollador. Una vez obtenido dicho token procederemos a hacer una breve prueba de conexión para comprobar que tenemos acceso a la API. En dicha prueba haremos uso de la tarea &#039;&#039;&#039;“ping”&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;ping&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Conexion_ping.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En la imagen vemos como ha de ser el código necesario para realizar dicha prueba y el resultado transformado a un array. Si la posición del &#039;&#039;&#039;responsecode&#039;&#039;&#039; es &#039;&#039;&#039;“OK”&#039;&#039;&#039; significa que todo ha ido correctamente y en la posición &#039;&#039;&#039;data&#039;&#039;&#039; deberemos ver &#039;&#039;&#039;“pong”&#039;&#039;&#039;. Mientras esta prueba no de este resultado no podremos hacer ninguna acción más sobre la API.&lt;br /&gt;
&lt;br /&gt;
=Campos Obligatorios y No Obligatorios para las notificaciones=&lt;br /&gt;
Para generar notificaciones desde nuestro sistema, en la conexión con la API deberá ir especificada la tarea &#039;&#039;&#039;“setPush”&#039;&#039;&#039;, junto un array de datos con una serie de campos.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Independientemente del SO al que la notificación irá, hay unos campos que &#039;&#039;&#039;son obligatorios&#039;&#039;&#039;; son los siguientes:&lt;br /&gt;
#&#039;&#039;&#039;appHash:&#039;&#039;&#039; contendrá el hash autogenerado por el panel Mobeleader de la aplicación registrada.&lt;br /&gt;
#&#039;&#039;&#039;terminalTokens:&#039;&#039;&#039; este campo podrá tener más de un formato, de manera que los dispositivos que reciban la notificación puedan ser diferentes.&lt;br /&gt;
#*En caso de &#039;&#039;&#039;tratarse de un array&#039;&#039;&#039;, se mandará la notificación a todos los tokens de dicho array.&lt;br /&gt;
#*En caso de &#039;&#039;&#039;no ser un  array&#039;&#039;&#039;, podrá contener lo siguiente:&lt;br /&gt;
##&#039;&#039;&#039;all:&#039;&#039;&#039; En este caso se notificará a todos los dispositivos que estén registrados en la aplicación sin tener en cuenta el SO.&lt;br /&gt;
##&#039;&#039;&#039;onlyAndroid:&#039;&#039;&#039; Solo se notificará a los terminales con &#039;&#039;&#039;SO Android&#039;&#039;&#039; que estén registrados en la aplicación.&lt;br /&gt;
##&#039;&#039;&#039;onlyIOS:&#039;&#039;&#039; Solo se notificará a los terminales con &#039;&#039;&#039;SO IOs&#039;&#039;&#039; que estén registrados en la aplicación.&lt;br /&gt;
##&#039;&#039;&#039;Un token de un dispositivo en concreto,&#039;&#039;&#039; de manera que solo se le notifique a éste.&lt;br /&gt;
#&#039;&#039;&#039;message:&#039;&#039;&#039; contendrá el texto de la notificación.&lt;br /&gt;
#&#039;&#039;&#039;type:&#039;&#039;&#039; contendrá el tipo de notificación pudiendo ser este de de diversa índole.&lt;br /&gt;
#*&#039;&#039;&#039;normal:&#039;&#039;&#039; este tipo será el más común, el dispositivo recibirá la notificación y no se hará mas con ésta.&lt;br /&gt;
#*&#039;&#039;&#039;openApp:&#039;&#039;&#039; este tipo hará que al hacer click sobre la notificación se abra la aplicación encargada de mostrar dicha notificación.&lt;br /&gt;
#*&#039;&#039;&#039;openUrl:&#039;&#039;&#039; este tipo hará que al hacer click sobre la notificación se abra una URL especificada en otro campo que veremos más adelante.&lt;br /&gt;
#*&#039;&#039;&#039;openAppWithextras:&#039;&#039;&#039; este tipo hará lo mismo que el &#039;&#039;&#039;“openApp”&#039;&#039;&#039; pudiendo ademas añadir hasta cinco variables extra para poder tratarlas a nuestro gusto en la aplicación. Cabe destacar que este tipo de notificación, nos permitirá hacer uso de otro campo no obligatorio que más adelante trataremos, el cual se llama &#039;&#039;&#039;&amp;quot;customType”&#039;&#039;&#039; y nos permitirá lanzar notificaciones &#039;&#039;&#039;“personalizadas”&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez vistos los campos obligatorios, a continuación se expondrán todos los &#039;&#039;&#039;campos no obligatorios&#039;&#039;&#039; que darán forma a las notificaciones:&lt;br /&gt;
#&#039;&#039;&#039;tittle:&#039;&#039;&#039; contendrá el texto del título que se mostrara junto con el mensaje de la notificación.&lt;br /&gt;
#&#039;&#039;&#039;sendingId:&#039;&#039;&#039; en caso de querer lanzar una notificación para muchos terminales, como hemos expuesto en los campos obligatorios, inicialmente el campo &#039;&#039;&#039;”terminalTokens&amp;quot;&#039;&#039;&#039; deberá ser un array con dichos terminales. Debido a que la API no puede admitir un número ilimitado de tokens a la vez, deberemos &#039;&#039;&#039;segmentar&#039;&#039;&#039; dicho array en varios más pequeños y hacer tantos &#039;&#039;&#039;“setPush”&#039;&#039;&#039; como sean necesarios hasta finalizar con el número de dispositivos a notificar. Cada vez que nos conectemos a la API para hacer un &#039;&#039;&#039;“setPush”&#039;&#039;&#039; y generar una notificación, dicha conexión nos devolverá un JSON en el cual hay un campo denominado &#039;&#039;&#039;“sendingId”&#039;&#039;&#039; con el ID autonumérico generado en nuestro sistema para ese envío push. De ésta manera, si se recoge dicho ID y se pasa como campo en la posición &#039;&#039;&#039;“sendingId”&#039;&#039;&#039;, los siguientes tokens que se manden en el &#039;&#039;&#039;”terminalTokens”&#039;&#039;&#039; irán asociados al primer envío realizado.&lt;br /&gt;
#&#039;&#039;&#039;sandbox:&#039;&#039;&#039; este campo solo se usará cuando se vaya a notificar a algún dispositivo con &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá “yes” en caso de que dicho dispositivo este en el servidor de desarrollo de Apple, y un “no” en caso de que dicho dispositivo este en el servidor de producción de Apple.&lt;br /&gt;
#&#039;&#039;&#039;isTest:&#039;&#039;&#039; al igual que en el campo del &#039;&#039;&#039;“sandbox”&#039;&#039;&#039;, contendrá “yes” o “no” dependiendo de si el dispositivo esta en el servidor de desarrollo o el de producción de Apple.&lt;br /&gt;
#&#039;&#039;&#039;background:&#039;&#039;&#039; este campo solo irá en caso de ir a algún dispositivo que tenga &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá “yes” o “no”. En caso de ser afirmativo la notificación se mostrará sin hacer ruido ni vibrar. Para el caso de iOs esto generará un alert vació con el &#039;&#039;&#039;content-available a 1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;silent:&#039;&#039;&#039; Contendrá “yes” o “no”. En caso de ser afirmativo la notificación no se mostrará pero si lanzará el evento de la librería push encargado de escuchar si se ha recibido una notificación o no. De ésta manera podremos lanzar notificaciones que no se muestren, pero si hagan algo por detrás en la APP al recibirla. Para el caso de Android solo se usará este campo cuando el &#039;&#039;&#039;“type”&#039;&#039;&#039; de la notificación sea &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y se haga uso del campo no obligatorio &#039;&#039;&#039;“customType”&#039;&#039;&#039;. Para el caso de iOs esto generará un alert vació con el &#039;&#039;&#039;content-available a 1&#039;&#039;&#039; por defecto, pudiendo ser modificado por el siguiente campo que se expone a continuación ( &#039;&#039;&#039;silentNumber&#039;&#039;&#039; ). Como en el caso de Android esto solo tendrá sentido para las notificaciones de &#039;&#039;&#039;“type”&#039;&#039;&#039;  &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; , puesto que al no mostrar nada, se usarán para hacer cosas por detrás mediante los campos no obligatorios &#039;&#039;&#039;external1, external2, external3, external4 y external5&#039;&#039;&#039;. A diferencia de Android, en iOs se podrá usar con &#039;&#039;&#039;”customType”&#039;&#039;&#039; o sin el.&lt;br /&gt;
#&#039;&#039;&#039;silentNumber:&#039;&#039;&#039; este campo solo se usará para &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Es el número que aparecerá en el &#039;&#039;&#039;content-available&#039;&#039;&#039; en caso de que el campo &#039;&#039;&#039;silent&#039;&#039;&#039; sea &#039;&#039;&#039;&amp;quot;yes&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;customType:&#039;&#039;&#039; contendrá el texto del tipo de notificación personalizada que cada uno cree. Éste campo solo se podrá usar si previamente en el campo obligatorio &#039;&#039;&#039;“type”&#039;&#039;&#039; se ha puesto &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;badge:&#039;&#039;&#039; este campo será el número que se mostrará junto con la notificación en los dispositivos &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. A partir de iOs 10 las notificaciones &#039;&#039;&#039;no&#039;&#039;&#039; levantan la aplicación en caso de estar background, por lo que esto generará un &#039;&#039;&#039;content-available&#039;&#039;&#039; con el fin de despertar la aplicación y poder actualizar el icono de notificaciones pendientes en ésta.&lt;br /&gt;
#&#039;&#039;&#039;broadcast:&#039;&#039;&#039; esta variable solo será útil para dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;, contendrá el nombre de la clase instanciada en su aplicación para que se active al recibir la notificación.&lt;br /&gt;
#&#039;&#039;&#039;direct:&#039;&#039;&#039; contendra &amp;quot;yes&amp;quot; o &amp;quot;no&amp;quot;. En caso de ser afirmativo las notificaciones se enviarán al instante no pudiendo programarlas.&lt;br /&gt;
#&#039;&#039;&#039;whenSend:&#039;&#039;&#039; contendrá “immediately”, “programmatically” o “geolocation”. En caso de ser immediately el campo &#039;&#039;&#039;“direct”&#039;&#039;&#039; previamente descrito deberá ser &#039;&#039;&#039;“yes”&#039;&#039;&#039;. En caso de ser “programmatically” o “geolocation” el  campo &#039;&#039;&#039;“direct”&#039;&#039;&#039; previamente descrito deberá ser &#039;&#039;&#039;“no”&#039;&#039;&#039;, ademas el envío se programará según los siguientes campos no obligatorios que se le pase.&lt;br /&gt;
#*&#039;&#039;&#039;Programmatically:&#039;&#039;&#039; cuando la notificación  se quiera programar para una fecha en concreto , deberán existir los siguientes campos no obligatorios:&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyTime:&#039;&#039;&#039; contendrá la fecha en &#039;&#039;&#039;UNIXTIMESTAMP&#039;&#039;&#039; en la que se lanzará la notificación, si se usa este campo no obligatorio no deberemos usar los siguientes.&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronMinutes:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronHours:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronDays:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
##&#039;&#039;&#039;programmaticallyCronMonths:&#039;&#039;&#039; ( FUNCIONALIDAD NO DISPONIBLE )&lt;br /&gt;
#*&#039;&#039;&#039;Geolocation:&#039;&#039;&#039; cuando se quiera programar por geolocalización una notificación, deberán existir los siguientes campos no obligatorios:&lt;br /&gt;
##&#039;&#039;&#039;geolocationCoordinates:&#039;&#039;&#039; será un array en el que la posición &#039;&#039;&#039;cero&#039;&#039;&#039; será la &#039;&#039;&#039;latitud&#039;&#039;&#039; y la &#039;&#039;&#039;uno&#039;&#039;&#039; la &#039;&#039;&#039;longitud&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;geolocationMeters:&#039;&#039;&#039; contendrá los metros a los que hemos de estar de las coordenadas especificadas para que lance la notificación.&lt;br /&gt;
#&#039;&#039;&#039;languaje:&#039;&#039;&#039; contendrá el idioma del dispositivo. &#039;&#039;&#039;Ejemplo: es&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;country:&#039;&#039;&#039; contendrá el país del dispositivo. &#039;&#039;&#039;Ejemplo: ES&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;deviceType:&#039;&#039;&#039; contendrá el tipo de dispositivo al que se le mandará la notificación pudiendo ser:&lt;br /&gt;
#*&#039;&#039;&#039;Para Android:&#039;&#039;&#039;&lt;br /&gt;
##&#039;&#039;&#039;movil&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;tableta&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;reloj&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;tv&#039;&#039;&#039;.&lt;br /&gt;
#*&#039;&#039;&#039;Para iOs:&#039;&#039;&#039;&lt;br /&gt;
##&#039;&#039;&#039;iphone&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;ipad&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;iwatch&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;appletv&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;appVersion:&#039;&#039;&#039; contendrá la versión de la aplicación a la que esta dirigida la notificación. &#039;&#039;&#039;Ejemplo: 1.0.1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039; contendrá la versión del terminal al que ira dirigida la notificación. &#039;&#039;&#039;Ejemplo: 6.0.1&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;urlToOpen:&#039;&#039;&#039; contendrá la URL a abrir al hacer click sobre una notificación de tipo &#039;&#039;&#039;“openUrl”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external1:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external2:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external3:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external4:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;external5:&#039;&#039;&#039; variable extra que contendrá lo que el usuario quiera para tratar en las notificaciones de tipo &#039;&#039;&#039;“openAppWithExtras”&#039;&#039;&#039; y/o &#039;&#039;&#039;“openAppWithExtras” con “customType”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;androidNotyStyle:&#039;&#039;&#039; contendrá &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039; cuando queramos mostrar una imagen junto con la notificación en los dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;. En caso de no querer mostrar ninguna imagen no se utilizara este campo.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleUrlImage:&#039;&#039;&#039; contendrá la URL de la imagen que se quiera mostrar en los dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;, siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle&amp;quot;&#039;&#039;&#039;. Cabe destacar que la URL deberá ser segura ( https ) y deberá contener la extension del contenido en dicha URL.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleExpandedTitle:&#039;&#039;&#039; contendrá el texto que se mostrará como titulo al expandir una notificación que contenga una imagen en dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039;,  siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;bigPictureStyleExpandedSumaryText:&#039;&#039;&#039; contendrá el texto que se mostrará como mensaje al expandir una notificación que contenga una imagen en dispositivos con &#039;&#039;&#039;SO Android&#039;&#039;&#039; ,  siempre habiendo hecho uso del campo previamente expuesto &#039;&#039;&#039;“androidNotyStyle”&#039;&#039;&#039; con el contenido &#039;&#039;&#039;“bigPictureStyle”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;extra-content:&#039;&#039;&#039; este campo solo se usará para notificaciones dirigidas a dispositivos con &#039;&#039;&#039;SO iOs&#039;&#039;&#039;. Contendrá la URL del contenido extra que se quiere mostrar junto con la notificación. En este caso y a diferencia de &#039;&#039;&#039;Android ( bigPictureStyleUrlImage )&#039;&#039;&#039;, dicho contenido podrá ser una imagen, un giff, un video o un audio. La URL también deberá ser segura ( https )  y deberá contener la extension del contenido en dicha URL.&lt;br /&gt;
#&#039;&#039;&#039;channel:&#039;&#039;&#039; A partir de Android O, las notificaciones deberán ir por un canal de notificaciones instanciado en su aplicación. Esta variable contendrá el nombre del canal por el que han de salir.&lt;br /&gt;
#&#039;&#039;&#039;thread-id:&#039;&#039;&#039; A partir de iOs 12, las notificaciones pueden ser agrupadas. Para ello deberemos mandar el mismo thread-id en todas las notificaciones que queramos agrupar.&lt;br /&gt;
&lt;br /&gt;
=Notificaciones Android=&lt;br /&gt;
En este apartado veremos los distintos tipos de notificaciones para dispositivos Android mas detalladamente complementándolo con ejemplos funcionales:&lt;br /&gt;
#&#039;&#039;&#039;normal:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApp:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenApp+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenApp+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenApp&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenApp&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openUrl:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenUrl+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenUrl+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;url_pagina_abrir&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenUrl&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenUrl&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;url_pagina_abrir&#039;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApppWithExtras:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con customType:&#039;&#039;&#039; Las notificaciones personalizadas, solo lanzarán la notificación si la APP se encuentra en background, en caso de estar en foreground (primer plano), no lanzará la notificación.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;no&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;no&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Push_a_extras_p.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin notificación:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_personalizado&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Silent&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Silent&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras+IMG&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external4&#039;] = &#039;variable4&#039;;&lt;br /&gt;
$arr_data[&#039;androidNotyStyle&#039;] = &#039;bigPictureStyle&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleUrlImage&#039;] = &#039;url_image&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStypeExpandedTittle&#039;] = &#039;Titulo Noti.Expandida&#039;;&lt;br /&gt;
$arr_data[&#039;bigPictureStyleExpandedSumaryText&#039;] = &#039;Mensaje Noti.Expandida&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.OpenAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;external1&#039;] = &#039;variable1&#039;;&lt;br /&gt;
$arr_data[&#039;external3&#039;] = &#039;variable3&#039;;&lt;br /&gt;
$arr_data[&#039;external5&#039;] = &#039;variable5&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Independientemente de los anteriores tipos:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;sendingId:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token_exchange = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + sendingId&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + sendingId&#039;;&lt;br /&gt;
&lt;br /&gt;
$array_tokens = array(); // ARRAY CON TODOS LOS USUARIOS QUE QUEREMOS QUE RECIBAN LA NOTIFICACION&lt;br /&gt;
$array_tokens_enviar = array(); // ARRAY QUE SE USA PARA MANDAR DE 500 EN 500&lt;br /&gt;
$contador = 0; // VARIABLE DE CONTROL PARA ENVIAR 500 USUARIOS&lt;br /&gt;
$json_datos_devueltos = array(); // ARRAY QUE CONTENDRA LA RESPUESTA RECIBIDA DE LA API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
foreach( $array_tokens as $token ){ // 1.- MANDAMOS A LA API DE 500 EN 500 PARA NO SATURARLA&lt;br /&gt;
	&lt;br /&gt;
	if( $contador &amp;gt;= 500 ){&lt;br /&gt;
		&lt;br /&gt;
		$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
		&lt;br /&gt;
		$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
		$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
		&lt;br /&gt;
		if ( isset($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) AND !empty($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) ){ // ESTO SE OBTENDRA DESPUES DE LANZAR LOS PRIMEROS 500 USUARIOS&lt;br /&gt;
			&lt;br /&gt;
			$arr_data[&#039;sendingId&#039;] = $json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;];&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		$contador = 0;&lt;br /&gt;
		$array_tokens_enviar = array();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$array_tokens_enviar[] = $token[&#039;token_del_usuario&#039;]; // EN NUESTRO CASO LA VARIABLE $token ES UN ARRAY CON MAS DATOS&lt;br /&gt;
	$contador += 1;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if( count($array_tokens_enviar) &amp;gt; 0 ) { // 2.- MANDAMOS LOS QUE FALTEN, LOS RESTOS QUE NO HAYAN LLEGADO A 500&lt;br /&gt;
				&lt;br /&gt;
	$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
	$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
	&lt;br /&gt;
	$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;language:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;language&#039;] = &#039;es&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;country:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;country&#039;] = &#039;ES&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;deviceType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + TipoDispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + TipoDispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;deviceType&#039;] = &#039;movil&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;appVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + VersionAplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + VersionAplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;appVersion&#039;] = &#039;1.0&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + VersionTerminal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + VersionTerminal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyAndroid&#039;;&lt;br /&gt;
$arr_data[&#039;terminalVersion&#039;] = &#039;6.0.1&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Notificaciones iOs=&lt;br /&gt;
En este apartado veremos los distintos tipos de notificaciones para dispositivos iOs mas detalladamente complementándolo con ejemplos funcionales:&lt;br /&gt;
#&#039;&#039;&#039;normal:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApp:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir App Con Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir App Con Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openApp&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir App&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir App&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openUrl:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;https://....&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir Url Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir Url Imagen&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;extra_content&#039;] = &#039;https://.....&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin imagen:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openUrl&#039;;&lt;br /&gt;
$arr_data[&#039;urlToOpen&#039;] = &#039;https://....&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Abrir Url&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Abrir Url&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;sandbox&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;isTest&#039;] = &#039;yes&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;openApppWithExtras:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Con customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Silenciosa:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;customType&#039;] = &#039;tipo_eleccion_desarrollador&#039;;&lt;br /&gt;
$arr_data[&#039;external_1&#039;] = &#039;variable_extra_1&#039;;&lt;br /&gt;
$arr_data[&#039;external_2&#039;] = &#039;variable_extra_2&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;silentNumber&#039;] = &#039;6&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Push_i_extras_p_s.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Sin customType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;Silenciosa:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;openAppWithExtras&#039;;&lt;br /&gt;
$arr_data[&#039;external_1&#039;] = &#039;variable_extra_1&#039;;&lt;br /&gt;
$arr_data[&#039;external_2&#039;] = &#039;variable_extra_2&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;SilentPush&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;silent&#039;] = &#039;yes&#039;;&lt;br /&gt;
$arr_data[&#039;silentNumber&#039;] = &#039;6&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Independientemente de los anteriores tipos:&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;sendingId:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token_exchange = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + sendingId&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + sendingId&#039;;&lt;br /&gt;
&lt;br /&gt;
$array_tokens = array(); // ARRAY CON TODOS LOS USUARIOS QUE QUEREMOS QUE RECIBAN LA NOTIFICACION&lt;br /&gt;
$array_tokens_enviar = array(); // ARRAY QUE SE USA PARA MANDAR DE 500 EN 500&lt;br /&gt;
$contador = 0; // VARIABLE DE CONTROL PARA ENVIAR 500 USUARIOS&lt;br /&gt;
$json_datos_devueltos = array(); // ARRAY QUE CONTENDRA LA RESPUESTA RECIBIDA DE LA API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
foreach( $array_tokens as $token ){ // 1.- MANDAMOS A LA API DE 500 EN 500 PARA NO SATURARLA&lt;br /&gt;
	&lt;br /&gt;
	if( $contador &amp;gt;= 500 ){&lt;br /&gt;
		&lt;br /&gt;
		$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
		&lt;br /&gt;
		$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
		$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
		&lt;br /&gt;
		if ( isset($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) AND !empty($json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;]) ){ // ESTO SE OBTENDRA DESPUES DE LANZAR LOS PRIMEROS 500 USUARIOS&lt;br /&gt;
			&lt;br /&gt;
			$arr_data[&#039;sendingId&#039;] = $json_datos_devueltos[&#039;data&#039;][&#039;sendingId&#039;];&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		$contador = 0;&lt;br /&gt;
		$array_tokens_enviar = array();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$array_tokens_enviar[] = $token[&#039;token_del_usuario&#039;]; // EN NUESTRO CASO LA VARIABLE $token ES UN ARRAY CON MAS DATOS&lt;br /&gt;
	$contador += 1;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if( count($array_tokens_enviar) &amp;gt; 0 ) { // 2.- MANDAMOS LOS QUE FALTEN, LOS RESTOS QUE NO HAYAN LLEGADO A 500&lt;br /&gt;
				&lt;br /&gt;
	$conexionapi = new spsapiXchange($token_exchange);&lt;br /&gt;
	$arr_data[&#039;terminalTokens&#039;] = $array_tokens_enviar; // ASIGNAMOS LOS USUARIOS A ENVIAR&lt;br /&gt;
	&lt;br /&gt;
	$json_datos_devueltos = json_decode($conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data), true);&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;language:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Idioma&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;language&#039;] = &#039;es&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;country:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Pais&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;country&#039;] = &#039;ES&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;deviceType:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Tipo Dispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Tipo Dispositivo&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;deviceType&#039;] = &#039;iphone&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;appVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Version Aplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Version Aplicacion&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;appVersion&#039;] = &#039;3.4&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;terminalVersion:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;direct&#039;] = &amp;quot;yes&amp;quot;;&lt;br /&gt;
$arr_data[&#039;whenSend&#039;] = &amp;quot;inmediately&amp;quot;;&lt;br /&gt;
$arr_data[&#039;type&#039;] = &#039;normal&#039;;&lt;br /&gt;
$arr_data[&#039;title&#039;] = &#039;Titulo Noti.Normal + Version Terminal&#039;;&lt;br /&gt;
$arr_data[&#039;message&#039;] = &#039;Mensaje Noti.Normal + Version Terminal&#039;;&lt;br /&gt;
$arr_data[&#039;terminalTokens&#039;] = &#039;onlyIOS&#039;;&lt;br /&gt;
$arr_data[&#039;terminalVersion&#039;] = &#039;10.3&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;setPush&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Respuesta setPush=&lt;br /&gt;
La respuesta que recibiremos por parte de la API siempre será un JSON.  Dicho JSON contendrá de tres a cinco posiciones/elementos:&lt;br /&gt;
#&#039;&#039;&#039;responsecode:&#039;&#039;&#039; determinará si la acción a realizar sobre la API ha funcionado o no. En caso de ser &#039;&#039;&#039;negativo&#039;&#039;&#039; devolverá &#039;&#039;&#039;“KO”&#039;&#039;&#039; y en caso de ser &#039;&#039;&#039;positivo&#039;&#039;&#039; será &#039;&#039;&#039;“OK”&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;errorcode:&#039;&#039;&#039; en caso de que el &#039;&#039;&#039;responsecode&#039;&#039;&#039; sea &#039;&#039;&#039;“KO”&#039;&#039;&#039;, devolverá el código de error en nuestro sistema. Por el contrario, si el &#039;&#039;&#039;responsecode&#039;&#039;&#039; es &#039;&#039;&#039;“OK”&#039;&#039;&#039;, devolverá un 0.&lt;br /&gt;
#&#039;&#039;&#039;errortext:&#039;&#039;&#039; contendrá el texto del error que se ha producido, por lo que como se deduce esto solo saldrá cuando la acción sobre la API no se haya podido ejecutar. &lt;br /&gt;
#&#039;&#039;&#039;data:&#039;&#039;&#039; contendrá el resultado de la acción realizada satisfactoriamente sobre la API. Si ha habido un error esta posición &#039;&#039;&#039;no se generará&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;timestamp:&#039;&#039;&#039; devolverá la fecha en timestamp en la que la acción sobre la API ha sido realizada correctamente. Si ha habido un error esta posición &#039;&#039;&#039;no se generará&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En resumen, si la acción a realizar sobre la API ha dado error, el JSON contendrá los elementos ( responsecode, errorcode y errortext).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_error.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Por el contrario si la acción ha finalizado correcta y satisfactoriamente, el JSON contendrá los elementos ( responsecode, errorcode, data y timestamp). &lt;br /&gt;
Para el caso de crear una notificación ( &#039;&#039;&#039;setPush&#039;&#039;&#039; ), y que haya funcionado correctamente, en la respuesta se generará algo tal que la siguiente imágen:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_noerror.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En el contenido del elemento &#039;&#039;&#039;data&#039;&#039;&#039;, se mostrara las notificaciones que se han podido enviar, las que no se han podido enviar, el ID que se genera en nuestro sistema asociado al envío solicitado y un array con los tokens enviados ( &#039;&#039;&#039;deletedArray&#039;&#039;&#039; ) y un array con los tokens que no se han podido enviar ( &#039;&#039;&#039;deletedWithoutSend&#039;&#039;&#039; ).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Este último caso, el del array con los tokens que no se han podido enviar solo se informará en el caso de que al enviar la acción &#039;&#039;&#039;setPush&#039;&#039;&#039;, en la posición &#039;&#039;&#039;terminalTokens&#039;&#039;&#039;, se mande &#039;&#039;&#039;un array con los terminales en concreto que se quieren notificar&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
En el caso del array con los dispositivos notificados, se apreciará una segmentación por &#039;&#039;&#039;SO&#039;&#039;&#039;. En caso de que uno de estos dispositivos no haya podido recibir la notificación por problemas  como bien puede ser un token obsoleto, se borrará de nuestro sistema y el token se informará en la posición  ( &#039;&#039;&#039;deletedTokens&#039;&#039;&#039; ).&lt;br /&gt;
&lt;br /&gt;
=Obtención de usuarios registrados en su aplicación=&lt;br /&gt;
Para obtener un conteo de usuarios registrados en nuestra aplicación y los datos de estos, deberemos hacer uso de la tarea &#039;&#039;&#039;“getPushTokens”&#039;&#039;&#039; y el hash de la aplicación registrada en el panel de Mobeleader. Dicho hash podremos verlo en cualquier momento desde la sección https://panel.mobeleader.com/index.php?sec=6. Una vez obtengamos dicho hash procederemos a conectarnos a la API de la manera expuesta en la a continuación:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;getPushTokens&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_getPushTokens.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Como se puede apreciar en la respuesta, &#039;&#039;&#039;la posición respondecode es “OK”&#039;&#039;&#039;. Al igual que en el caso del &#039;&#039;&#039;“ping”&#039;&#039;&#039;, siempre que el &#039;&#039;&#039;responsecode&#039;&#039;&#039; sea &#039;&#039;&#039;”OK”&#039;&#039;&#039; significara que la acción a realizar sobre la API ha finalizado correctamente y que en la posición &#039;&#039;&#039;“data”&#039;&#039;&#039; vendrá los solicitado, en este caso los datos de los terminales registrados en la aplicación.&lt;br /&gt;
&lt;br /&gt;
=Borrado de usuarios registrados en su aplicación=&lt;br /&gt;
Una vez obtenidos los datos mediante la tarea &#039;&#039;&#039;“getPushTokens”&#039;&#039;&#039;, si quisiéramos  borrar alguno de dichos tokens del sistema de Mobeleader, deberemos hacer uso de la tarea &#039;&#039;&#039;“deletePushTokens”&#039;&#039;&#039; usando el hash de la aplicación de la misma manera que en la obtención de usuarios, y pasándole el token o los tokens que quisiéramos borrar. Lo haremos de la siguiente manera:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$token = &#039;token_generado_por_mobeleader&#039;;&lt;br /&gt;
$conexionapi = new spsapiXchange($token);&lt;br /&gt;
&lt;br /&gt;
$arr_data = array();&lt;br /&gt;
$arr_data[&#039;appHash&#039;] = &#039;token_de_la_aplicacion_registrada&#039;;&lt;br /&gt;
$arr_data[&#039;tokens&#039;][] = &#039;token_del_usuario_registrado&#039;;&lt;br /&gt;
&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;deletePushTokens&#039;, $arr_data);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Archivo:Api_exchange_deletePushTokens.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Como siempre, en caso de que el &#039;&#039;&#039;responsecode sea “OK”&#039;&#039;&#039;, en la &#039;&#039;&#039;posición “data”&#039;&#039;&#039; veremos el número de tokens borrados.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2762</id>
		<title>Documentación API Analytics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2762"/>
		<updated>2019-06-07T11:02:09Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Error en la petición de estadísticas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
La &#039;&#039;&#039;API Analytics&#039;&#039;&#039; es la plataforma a través de la cual obtener las estadísticas de un usuario. Los datos obtenidos corresponderán a los datos que se obtendrían en las secciones de Analytics de nuestro panel. Las estadísticas serán devueltas en formato JSON.&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar la &#039;&#039;&#039;API Analytics&#039;&#039;&#039; y poder obtener tanto el identificador de usuario como las claves RSA, deberá solicitarlo a su administrador.&lt;br /&gt;
&lt;br /&gt;
En esta documentación se explicará cómo conectar con la API y cómo preparar los datos para realizar la petición de las estadísticas. Los ejemplos ofrecidos están en lenguaje PHP.&lt;br /&gt;
&lt;br /&gt;
=Registro de usuario=&lt;br /&gt;
Al solicitar el acceso a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, es necesario reportar las direcciones IP desde las que se realizarán las peticiones de estadísticas. Así mismo, el usuario deberá actualizar el registro de direcciones IP cuando éstas cambien. El sistema registrará las direcciones IP junto al identificador del usuario, por lo que no permitirá al usuario realizar peticiones si éste no está asociado a las direcciones IP registradas.&lt;br /&gt;
&lt;br /&gt;
=Conexión con la API=&lt;br /&gt;
La conexión con la API para realizar la petición de estadísticas se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa a la API. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa a la API==&lt;br /&gt;
Si desea realizar la petición a la API sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, deberá conectarse mediante POST a la siguiente URL: &#039;&#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;&#039;, añadiendo los parámetros &#039;&#039;&#039;data&#039;&#039;&#039; (JSON con los datos de la petición) y &#039;&#039;&#039;user&#039;&#039;&#039; (string o cadena con el identificador del usuario). En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explicará como obtener el identificador de usuario y como construir el JSON de la petición.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode($requestJson).&#039;&amp;amp;user=&#039;.$userIdString);&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en su carpeta vendor, lo primero que deberá hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras modificar la ruta, para poder instanciar la clase, será necesario obtener la clave &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Boton_rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pulsando en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;, se abrirá un popup en el que podrá obtener las claves RSA.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ha de copiar la cadena perteneciente al campo &#039;&#039;&#039;Private RSA key&#039;&#039;&#039;. Es necesario copiar la cadena completa, incluyendo -----BEGIN RSA PRIVATE KEY----- y -----END RSA PRIVATE KEY-----. Se añadirá la cadena como parámetro (string) del constructor de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;,  tal y como se muestra en el ejemplo siguiente:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez realizadas correctamente la instalación de la librería, la modificación de la ruta de acceso a ésta, y la inserción en el código de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, las llamadas a la API se realizarán a través de la función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;, añadiendo el JSON con los datos de la petición y la cadena con el identificador del usuario. La función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; será la encargada de realizar todas las conexiones a la API, de cifrar los datos que se envíen a ésta y de descifrar los datos que devuelva.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
$responseJson = $apiconnection-&amp;gt;getApiData($userIdString, $requestJson)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explica cómo obtenerla cadena con el identificador de usuario y cómo construir el JSON de la petición&lt;br /&gt;
&lt;br /&gt;
=Petición de estadísticas=&lt;br /&gt;
Para que la petición de estadísticas se realice correctamente, es necesario enviar, dentro de la petición, su identificador de usuario y un JSON en el cual especificar las estadísticas que quiera obtener (campos de las estadísticas, filtros, fechas, etc.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Las peticiones a la API son limitadas&#039;&#039;&#039;. Una vez recibida la respuesta de estadísticas (a excepción de haber devuelto un error), deberá esperar un minuto para hacer la siguiente consulta.&lt;br /&gt;
&lt;br /&gt;
==Identificador de usuario==&lt;br /&gt;
Para realizar la petición de estadísticas a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, lo primero que debe hacer es obtener el identificador de usuario. Para ello diríjase a la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] del Panel de Mobeleader y pulse en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;. Una vez dentro del popup, copie la cadena perteneciente al campo &#039;&#039;&#039;Public Identifier&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Public_id.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JSON de petición de estadísticas==&lt;br /&gt;
Para obtener las estadísticas deseadas, es necesario crear un JSON en el que se especifique:&lt;br /&gt;
#El tipo de petición, especificado en el campo &#039;&#039;&#039;type&#039;&#039;&#039;: minería, desarrollo, etc.&lt;br /&gt;
#Los elementos de los cuales quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;require&#039;&#039;&#039;: por anuncio, por app, por sistema operativo, etc.&lt;br /&gt;
#Las estadísticas que quiera mostrar, especificadas en el campo &#039;&#039;&#039;fields&#039;&#039;&#039;: impresiones, descargas, hashes minados, etc.&lt;br /&gt;
#Los filtros o elementos concretos de los que quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;filters&#039;&#039;&#039;: determinadas apps, bases de datos, etc.&lt;br /&gt;
#Las fechas entre las que quiera delimitar la petición, especificadas en el campo &#039;&#039;&#039;dates&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Tipos==&lt;br /&gt;
Cada tipo de petición devolverá un tipo de estadísticas, en función del tipo de usuario que realice la petición, así como los permisos que le hayan sido otorgados. El tipo de petición se especificará en el campo &#039;&#039;&#039;type&#039;&#039;&#039; del JSON. Los diferentes valores para el tipo de petición son:&lt;br /&gt;
*&#039;&#039;&#039;mailing:&#039;&#039;&#039; Devuelve las estadísticas de los envíos de Mailing. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Mailing&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;marketing:&#039;&#039;&#039; Devuelve las estadísticas de los anuncios. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Agencias&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;miner:&#039;&#039;&#039; Devuelve las estadísticas minería. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Minería&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;developer:&#039;&#039;&#039; Devuelve las estadísticas de las aplicaciones. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Desarrolladores&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;nickcenter:&#039;&#039;&#039; Devuelve las estadísticas de los registros realizados a través de &#039;&#039;&#039;NickCenter&#039;&#039;&#039;. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;NickCenter&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;push:&#039;&#039;&#039; Devuelve las estadísticas generadas por las &#039;&#039;&#039;notificaciones Push&#039;&#039;&#039; de sus aplicaciones enviadas a través de nuestro sistema. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Notificaciones Push&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;linkTracking:&#039;&#039;&#039; Devuelve las estadísticas de descargas por URL tracking. El usuario ha de tener acceso a las sección &#039;&#039;&#039;Link Management&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
&lt;br /&gt;
==Mailing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;db:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Base de datos&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mail:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;envío&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;campaign:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dominio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;sender:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sender&#039;&#039;&#039; (enviador).&lt;br /&gt;
**&#039;&#039;&#039;emailAdress:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dirección de email&#039;&#039;&#039; desde la que se hayan realizado los envíos.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; emails enviados.&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones totales obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;unique_views:&#039;&#039;&#039; impresiones únicas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;leads:&#039;&#039;&#039; registros totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_leads:&#039;&#039;&#039; registros únicos.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; bajas ejecutadas.&lt;br /&gt;
**&#039;&#039;&#039;soft_bounces:&#039;&#039;&#039; soft bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;hard_bounces:&#039;&#039;&#039; hard bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;or:&#039;&#039;&#039; tasa de aperturas.&lt;br /&gt;
**&#039;&#039;&#039;cr:&#039;&#039;&#039; tasa de clicks.&lt;br /&gt;
**&#039;&#039;&#039;ur:&#039;&#039;&#039; tasa de bajas.&lt;br /&gt;
**&#039;&#039;&#039;br:&#039;&#039;&#039; tasa de bonces o rebotados.&lt;br /&gt;
**&#039;&#039;&#039;rr:&#039;&#039;&#039; tasa de reactividad.&lt;br /&gt;
**&#039;&#039;&#039;dr:&#039;&#039;&#039; tasa de entregabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;senders:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;senders&#039;&#039;&#039; o enviadores de los que se quieren obtener las estadísticas. Puede añadir los identificadores &#039;MailingCP&#039; y &#039;AmazonSES&#039;.&lt;br /&gt;
**&#039;&#039;&#039;dataBases:&#039;&#039;&#039; Array que especifica las bases de datos de las que se quieren obtener las estadísticas. Los identificadores de sus bases de datos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada base de datos en la [https://panel.mobeleader.com/index.php?sec=105 sección BBDD] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica las campañas de las que se quieren obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=135 sección Campañas] denuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica los dominios de los que se quieren obtener las estadísticas. Los identificadores de sus dominios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dominio en la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaignType:&#039;&#039;&#039; Valor que especifica el tipo de campaña de la que se quiere obtener las estadísticas. Puede elegir entre uno de los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos transaccionales.&lt;br /&gt;
***&#039;&#039;&#039;autoresponder:&#039;&#039;&#039; Para envíos automáticos.&lt;br /&gt;
***&#039;&#039;&#039;newsletter:&#039;&#039;&#039; Para envíos boletín.&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos de marketing.&lt;br /&gt;
**&#039;&#039;&#039;emails:&#039;&#039;&#039; Array que especifica las direcciones de email de las que se quieren obtener las estadísticas. Para obtener los identificadores de sus direcciones de email deberá dirigirse a la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel. Una vez ahí, pulse en el icono &#039;&#039;&#039;Ver emails&#039;&#039;&#039; en la columna &#039;&#039;&#039;Emails&#039;&#039;&#039;. Dentro del popup en el que se muestran las direcciones de email del dominio seleccionado, podrá obtener el identificador en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dirección de email.&lt;br /&gt;
**&#039;&#039;&#039;mailings:&#039;&#039;&#039; Array que especifica los envíos de los que se quieren obtener las estadísticas. Los identificadores de sus envíos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada envío en la [https://panel.mobeleader.com/index.php?sec=134 sección Envíos Transaccionales] para  los envíos transaccionales, en la [https://panel.mobeleader.com/index.php?sec=148 sección Envíos Auto-Responder] para  los envíos autoresponder, en la [https://panel.mobeleader.com/index.php?sec=139 sección Envíos Boletín] para  los envíos boletín y en la [https://panel.mobeleader.com/index.php?sec=138 sección Envíos Marketing] para  los envíos de marketing de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;campaign&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;unique_views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unique_leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;,&amp;quot;soft_bounces&amp;quot;,&amp;quot;hard_bounces&amp;quot;,&amp;quot;or&amp;quot;,&amp;quot;cr&amp;quot;,&amp;quot;ur&amp;quot;,&amp;quot;br&amp;quot;,&amp;quot;rr&amp;quot;,&amp;quot;dr&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;senders&amp;quot;:[&amp;quot;MailingCP&amp;quot;],&lt;br /&gt;
          &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
          &amp;quot;campaignType&amp;quot;:&amp;quot;newsletter&amp;quot;,&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[3,25,27],&lt;br /&gt;
          &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
          &amp;quot;mailings&amp;quot;:[324,17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-02&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por envío con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;mail&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
           &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
           &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
           &amp;quot;campaignType&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
           &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
           &amp;quot;mailings&amp;quot;:[17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Marketing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;ad:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Anuncio&#039;&#039;&#039; o &#039;&#039;&#039;Campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Web&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;creativity:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Creatividad&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;ctr:&#039;&#039;&#039; CTR.&lt;br /&gt;
**&#039;&#039;&#039;validated_leads:&#039;&#039;&#039; registros validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_leads:&#039;&#039;&#039; registros pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_leads:&#039;&#039;&#039; registros totales.&lt;br /&gt;
**&#039;&#039;&#039;rejected_leads:&#039;&#039;&#039; registros rechazados.&lt;br /&gt;
**&#039;&#039;&#039;validated_expenditures:&#039;&#039;&#039; gastos validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_expenditures:&#039;&#039;&#039; gastos pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_expenditures:&#039;&#039;&#039; gastos totales.&lt;br /&gt;
**&#039;&#039;&#039;validated_profits:&#039;&#039;&#039; beneficios validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_profits:&#039;&#039;&#039; beneficios pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_profits:&#039;&#039;&#039; beneficios totales.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica los anuncios o campañas de las que se quiere obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=9 sección Mis Anuncios] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica las webs de las que se quiere obtener las estadísticas. Los identificadores de sus webs los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada web en la [https://panel.mobeleader.com/index.php?sec=17 sección Mis Webs] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;creativities:&#039;&#039;&#039; Array que especifica las creatividades de las que se quiere obtener las estadísticas. Los identificadores de sus creatividades los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada creatividad en la [https://panel.mobeleader.com/index.php?sec=173 sección Mis Creatividades] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;,&amp;quot;creativity&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;ctr&amp;quot;,&amp;quot;validated_leads&amp;quot;,&amp;quot;pending_leads&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;rejected_leads&amp;quot;,&amp;quot;validated_expenditures&amp;quot;,&amp;quot;pending_expenditures&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;validated_profits&amp;quot;,&amp;quot;pending_profits&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3,125,408],&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[95,512],&lt;br /&gt;
          &amp;quot;creativities&amp;quot;:[27,135]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-11&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña y web, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3],&amp;quot;domains&amp;quot;:[95,512]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Miner==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;worker:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;worker&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;wallet:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;wallet&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;workerType:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;tipo de worker&#039;&#039;&#039; (app, web, link, etc).&lt;br /&gt;
**&#039;&#039;&#039;coin:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;divisa&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;payout:&#039;&#039;&#039; pago estimado.&lt;br /&gt;
**&#039;&#039;&#039;hashes:&#039;&#039;&#039; hashes minados.&lt;br /&gt;
**&#039;&#039;&#039;shares:&#039;&#039;&#039; hashes validados.&lt;br /&gt;
**&#039;&#039;&#039;hashrate:&#039;&#039;&#039; hashes por segundo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;workers:&#039;&#039;&#039; Array que especifica los workers de los que se quiere obtener las estadísticas. Los identificadores de sus workers los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada workers en la [https://panel.mobeleader.com/index.php?sec=5 sección Mis Workers] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;wallets:&#039;&#039;&#039; Array que especifica los wallets de los que se quiere obtener las estadísticas. Los identificadores de sus wallets los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada wallet en la [https://panel.mobeleader.com/index.php?sec=1 sección Mis Wallets] denuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;coins:&#039;&#039;&#039; Array que especifica las divisas de las que se quiere obtener las estadísticas. Puede añadir las siguientes divisas:&lt;br /&gt;
***&#039;&#039;&#039;bcn:&#039;&#039;&#039; Bytecoin.&lt;br /&gt;
***&#039;&#039;&#039;xmr:&#039;&#039;&#039; Monero.&lt;br /&gt;
**&#039;&#039;&#039;workerTypes:&#039;&#039;&#039; Array que especifica los diferentes tipos de workers de los que se quiere obtener las estadísticas. Puede añadir los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;app:&#039;&#039;&#039; aplicación.&lt;br /&gt;
***&#039;&#039;&#039;web:&#039;&#039;&#039; web.&lt;br /&gt;
***&#039;&#039;&#039;wallet:&#039;&#039;&#039; wallet.&lt;br /&gt;
***&#039;&#039;&#039;link:&#039;&#039;&#039; link de redireccionamiento.&lt;br /&gt;
***&#039;&#039;&#039;captcha:&#039;&#039;&#039; captcha de validación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;coin&amp;quot;,&amp;quot;workerType&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;payout&amp;quot;,&amp;quot;hashes&amp;quot;,&amp;quot;shares&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;wallets&amp;quot;:[1,5,6],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;link&amp;quot;,&amp;quot;captcha&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;bcn&amp;quot;,&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-30&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por worker y wallet, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;hashes&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Developer==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;place:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;espacio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;osVersion:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;versión del sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;brand:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;marca del terminal&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks realizados.&lt;br /&gt;
**&#039;&#039;&#039;downloads:&#039;&#039;&#039; descargas obtenidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;oss:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;places:&#039;&#039;&#039; Array que especifica los espacios de los que se quiere obtener las estadísticas. Los identificadores de sus espacios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada espacio en la [https://panel.mobeleader.com/index.php?sec=34 sección Mis Espacios] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;app&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;downloads&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;oss&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por país con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;country&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NickCenter==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;. Este campo solo podrá ser requerido por aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;users:&#039;&#039;&#039; Usuarios dados de alta en cada aplicación. Solo contabiliza el primer registro en NickCenter, no contabiliza otro registro del mismo usuario en otras aplicaciones.&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; Todos los usuarios registrados en base dentro de las fechas seleccionadas, incluidos los que se hayan dado de baja.&lt;br /&gt;
**&#039;&#039;&#039;registered:&#039;&#039;&#039; Usuarios que están registrados en la base de datos.&lt;br /&gt;
**&#039;&#039;&#039;valid:&#039;&#039;&#039; Usuarios que están registrados en la base de datos, con todos los campos requeridos completados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; Usuarios que estuvieron registrados en la base de datos y que se dieron de baja dentro de las fechas seleccionadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] de nuestro panel. Este filtro solo ser á válido para aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo y fecha, con todos los filtros, excepto links:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;,&amp;quot;registered&amp;quot;,&amp;quot;valid&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;US&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;],&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Push==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse, exceptuando los campos &#039;&#039;&#039;notification&#039;&#039;&#039; y &#039;&#039;&#039;app&#039;&#039;&#039; (solo podrá seleccionar uno de estos dos campos en una consulta). Si selecciona el campo &#039;&#039;&#039;notification&#039;&#039;&#039;, deberá establecer una app en el campo &#039;&#039;&#039;apps&#039;&#039;&#039; de los filtros. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;notification:&#039;&#039;&#039; Devolverá las estadísticas por cada &#039;&#039;&#039;notificación Push&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;estado&#039;&#039;&#039; de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; el total de los mensajes enviados de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; mensajes enviados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;failed:&#039;&#039;&#039; mensajes enviados y que no han llegado al terminal de destino.&lt;br /&gt;
**&#039;&#039;&#039;erased:&#039;&#039;&#039; mensajes borrados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Especifique una única aplicación en caso de haber seleccionado el campo &#039;&#039;&#039;notification&#039;&#039;&#039; en los filtros. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Array que especifica los estados de las notificaciones de los que se quiere obtener las estadísticas.&lt;br /&gt;
***&#039;&#039;&#039;ready:&#039;&#039;&#039; indica que la notificación ha sido creada correctamente y está en espera de ser verificada.&lt;br /&gt;
***&#039;&#039;&#039;starting:&#039;&#039;&#039;  indica que la notificación ha sido verificada y va ser enviada.&lt;br /&gt;
***&#039;&#039;&#039;sending:&#039;&#039;&#039; indica que la notificación está siendo enviada.&lt;br /&gt;
***&#039;&#039;&#039;finished:&#039;&#039;&#039; indica que el envío de la notificación ha finalizado.&lt;br /&gt;
***&#039;&#039;&#039;stoped:&#039;&#039;&#039; indica que el envío de la notificación ha sido detenido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, estado y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;status&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;,&amp;quot;erased&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;FR&amp;quot;],&lt;br /&gt;
          &amp;quot;estados&amp;quot;:[&amp;quot;sending&amp;quot;,&amp;quot;finished&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por notificación y estado, con algunos de los campos y filtros (en el filtro de &#039;&#039;&#039;apps&#039;&#039;&#039; solo establece una aplicación):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;notification&amp;quot;,&amp;quot;status&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Link Tracking==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. No puede combinarse el campo &#039;&#039;&#039;link&#039;&#039;&#039; con los campos &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;, por lo que si decide incluir el campo &#039;&#039;&#039;link&#039;&#039;&#039; no se mostrarán las estadísticas por &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;field:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;value:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;valor&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] de nuestro panel&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; Array que especifica los campos de los que se quiere obtener las estadísticas. Los nombres de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;values:&#039;&#039;&#039; Array que especifica los valores de los campos de los que se quiere obtener las estadísticas. Los valores de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, campo, valor y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;field&amp;quot;,&amp;quot;value&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;fields&amp;quot;:[&amp;quot;campo1&amp;quot;,&amp;quot;campo2&amp;quot;],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;,&amp;quot;valor2&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resultado de las estadísticas=&lt;br /&gt;
Una vez realizada la conexión con la API correctamente, ésta devolverá una respuesta en formato JSON. La respuesta puede contener:&lt;br /&gt;
*Un resultado sin estadísticas.&lt;br /&gt;
*Las estadísticas resultantes de la petición.&lt;br /&gt;
*Un mensaje de error.&lt;br /&gt;
==Resultado vacío==&lt;br /&gt;
Si la petición se ha realizado correctamente, pero la API no ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el siguiente resultado:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;result&amp;quot;:&amp;quot;No result for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resultado con estadísticas==&lt;br /&gt;
Si la petición se ha realizado correctamente, y la API ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el resultado de las estadísticas desglosado por campo, en función de los valores indicados en los campos &#039;&#039;&#039;require&#039;&#039;&#039; y &#039;&#039;&#039;fields&#039;&#039;&#039;. Si además se ha establecido el valor &#039;date&#039; en el campo &#039;&#039;&#039;require&#039;&#039;&#039;, el resultado vendrá desglosado por campo y fecha.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de estadísticas sin fechas:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;0&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;20&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;1&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;23&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;18&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de las mismas estadísticas por fecha:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;2018-10-10&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;2&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;7&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;10&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;2018-10-03&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;4&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;12&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;11&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;9&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;date&amp;quot;:2,&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Error en la petición de estadísticas==&lt;br /&gt;
Si la petición no se ha realizado correctamente, la API devolverá un mensaje, dentro del campo &#039;&#039;&#039;error&#039;&#039;&#039;, indicando la causa de error en la petición. A continuación se muestra los diferentes errores que la API puede devolver:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address. Please ask your account manager for a valid IP.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la IP no está registrada en el sistema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address for the user key sent. Please check and set &#039;user&#039; parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la dirección IP desde la que se realiza la petición es correcta, pero no está registrada para el usuario introducido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request user found. Please set user parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No data post field found. Please set data post field.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request data found. Please fill your request with proper parameters.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; está vacío.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request type found. Please set type parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong type set, &#039;type_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong user set, &#039;user_key_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request fields found. Please set the fields you want to check.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User has no permission for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario introducido no tiene permisos para realizar ese tipo de consulta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User must wait at least 1 minute for the next request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario ha de esperar al menos un minuto desde la última consulta hasta la siguiente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not found or not properly set. Please set require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not properly set, &#039;require_value_for_error_test&#039; is not a valid require. Please set a valid require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;require&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Some required fields are not correct. &#039;fields_value_for_error_test&#039; is not a valid field. Please set the required fields properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
==Error en las claves RSA==&lt;br /&gt;
Si las claves RSA no han sido configuradas correctamente, el sistema mostrará los siguientes errores:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000d - Missing public RSA Key for user key &#039;my_user_key&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el sistema no ha podido verificar las claves RSA del usuario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000c - Empty or invalid user key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; no se ha enviado correctamente.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2761</id>
		<title>Documentación API Analytics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2761"/>
		<updated>2019-06-07T11:00:56Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Link Tracking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
La &#039;&#039;&#039;API Analytics&#039;&#039;&#039; es la plataforma a través de la cual obtener las estadísticas de un usuario. Los datos obtenidos corresponderán a los datos que se obtendrían en las secciones de Analytics de nuestro panel. Las estadísticas serán devueltas en formato JSON.&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar la &#039;&#039;&#039;API Analytics&#039;&#039;&#039; y poder obtener tanto el identificador de usuario como las claves RSA, deberá solicitarlo a su administrador.&lt;br /&gt;
&lt;br /&gt;
En esta documentación se explicará cómo conectar con la API y cómo preparar los datos para realizar la petición de las estadísticas. Los ejemplos ofrecidos están en lenguaje PHP.&lt;br /&gt;
&lt;br /&gt;
=Registro de usuario=&lt;br /&gt;
Al solicitar el acceso a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, es necesario reportar las direcciones IP desde las que se realizarán las peticiones de estadísticas. Así mismo, el usuario deberá actualizar el registro de direcciones IP cuando éstas cambien. El sistema registrará las direcciones IP junto al identificador del usuario, por lo que no permitirá al usuario realizar peticiones si éste no está asociado a las direcciones IP registradas.&lt;br /&gt;
&lt;br /&gt;
=Conexión con la API=&lt;br /&gt;
La conexión con la API para realizar la petición de estadísticas se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa a la API. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa a la API==&lt;br /&gt;
Si desea realizar la petición a la API sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, deberá conectarse mediante POST a la siguiente URL: &#039;&#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;&#039;, añadiendo los parámetros &#039;&#039;&#039;data&#039;&#039;&#039; (JSON con los datos de la petición) y &#039;&#039;&#039;user&#039;&#039;&#039; (string o cadena con el identificador del usuario). En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explicará como obtener el identificador de usuario y como construir el JSON de la petición.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode($requestJson).&#039;&amp;amp;user=&#039;.$userIdString);&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en su carpeta vendor, lo primero que deberá hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras modificar la ruta, para poder instanciar la clase, será necesario obtener la clave &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Boton_rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pulsando en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;, se abrirá un popup en el que podrá obtener las claves RSA.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ha de copiar la cadena perteneciente al campo &#039;&#039;&#039;Private RSA key&#039;&#039;&#039;. Es necesario copiar la cadena completa, incluyendo -----BEGIN RSA PRIVATE KEY----- y -----END RSA PRIVATE KEY-----. Se añadirá la cadena como parámetro (string) del constructor de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;,  tal y como se muestra en el ejemplo siguiente:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez realizadas correctamente la instalación de la librería, la modificación de la ruta de acceso a ésta, y la inserción en el código de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, las llamadas a la API se realizarán a través de la función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;, añadiendo el JSON con los datos de la petición y la cadena con el identificador del usuario. La función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; será la encargada de realizar todas las conexiones a la API, de cifrar los datos que se envíen a ésta y de descifrar los datos que devuelva.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
$responseJson = $apiconnection-&amp;gt;getApiData($userIdString, $requestJson)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explica cómo obtenerla cadena con el identificador de usuario y cómo construir el JSON de la petición&lt;br /&gt;
&lt;br /&gt;
=Petición de estadísticas=&lt;br /&gt;
Para que la petición de estadísticas se realice correctamente, es necesario enviar, dentro de la petición, su identificador de usuario y un JSON en el cual especificar las estadísticas que quiera obtener (campos de las estadísticas, filtros, fechas, etc.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Las peticiones a la API son limitadas&#039;&#039;&#039;. Una vez recibida la respuesta de estadísticas (a excepción de haber devuelto un error), deberá esperar un minuto para hacer la siguiente consulta.&lt;br /&gt;
&lt;br /&gt;
==Identificador de usuario==&lt;br /&gt;
Para realizar la petición de estadísticas a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, lo primero que debe hacer es obtener el identificador de usuario. Para ello diríjase a la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] del Panel de Mobeleader y pulse en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;. Una vez dentro del popup, copie la cadena perteneciente al campo &#039;&#039;&#039;Public Identifier&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Public_id.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JSON de petición de estadísticas==&lt;br /&gt;
Para obtener las estadísticas deseadas, es necesario crear un JSON en el que se especifique:&lt;br /&gt;
#El tipo de petición, especificado en el campo &#039;&#039;&#039;type&#039;&#039;&#039;: minería, desarrollo, etc.&lt;br /&gt;
#Los elementos de los cuales quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;require&#039;&#039;&#039;: por anuncio, por app, por sistema operativo, etc.&lt;br /&gt;
#Las estadísticas que quiera mostrar, especificadas en el campo &#039;&#039;&#039;fields&#039;&#039;&#039;: impresiones, descargas, hashes minados, etc.&lt;br /&gt;
#Los filtros o elementos concretos de los que quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;filters&#039;&#039;&#039;: determinadas apps, bases de datos, etc.&lt;br /&gt;
#Las fechas entre las que quiera delimitar la petición, especificadas en el campo &#039;&#039;&#039;dates&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Tipos==&lt;br /&gt;
Cada tipo de petición devolverá un tipo de estadísticas, en función del tipo de usuario que realice la petición, así como los permisos que le hayan sido otorgados. El tipo de petición se especificará en el campo &#039;&#039;&#039;type&#039;&#039;&#039; del JSON. Los diferentes valores para el tipo de petición son:&lt;br /&gt;
*&#039;&#039;&#039;mailing:&#039;&#039;&#039; Devuelve las estadísticas de los envíos de Mailing. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Mailing&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;marketing:&#039;&#039;&#039; Devuelve las estadísticas de los anuncios. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Agencias&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;miner:&#039;&#039;&#039; Devuelve las estadísticas minería. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Minería&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;developer:&#039;&#039;&#039; Devuelve las estadísticas de las aplicaciones. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Desarrolladores&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;nickcenter:&#039;&#039;&#039; Devuelve las estadísticas de los registros realizados a través de &#039;&#039;&#039;NickCenter&#039;&#039;&#039;. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;NickCenter&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;push:&#039;&#039;&#039; Devuelve las estadísticas generadas por las &#039;&#039;&#039;notificaciones Push&#039;&#039;&#039; de sus aplicaciones enviadas a través de nuestro sistema. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Notificaciones Push&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;linkTracking:&#039;&#039;&#039; Devuelve las estadísticas de descargas por URL tracking. El usuario ha de tener acceso a las sección &#039;&#039;&#039;Link Management&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
&lt;br /&gt;
==Mailing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;db:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Base de datos&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mail:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;envío&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;campaign:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dominio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;sender:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sender&#039;&#039;&#039; (enviador).&lt;br /&gt;
**&#039;&#039;&#039;emailAdress:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dirección de email&#039;&#039;&#039; desde la que se hayan realizado los envíos.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; emails enviados.&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones totales obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;unique_views:&#039;&#039;&#039; impresiones únicas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;leads:&#039;&#039;&#039; registros totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_leads:&#039;&#039;&#039; registros únicos.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; bajas ejecutadas.&lt;br /&gt;
**&#039;&#039;&#039;soft_bounces:&#039;&#039;&#039; soft bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;hard_bounces:&#039;&#039;&#039; hard bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;or:&#039;&#039;&#039; tasa de aperturas.&lt;br /&gt;
**&#039;&#039;&#039;cr:&#039;&#039;&#039; tasa de clicks.&lt;br /&gt;
**&#039;&#039;&#039;ur:&#039;&#039;&#039; tasa de bajas.&lt;br /&gt;
**&#039;&#039;&#039;br:&#039;&#039;&#039; tasa de bonces o rebotados.&lt;br /&gt;
**&#039;&#039;&#039;rr:&#039;&#039;&#039; tasa de reactividad.&lt;br /&gt;
**&#039;&#039;&#039;dr:&#039;&#039;&#039; tasa de entregabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;senders:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;senders&#039;&#039;&#039; o enviadores de los que se quieren obtener las estadísticas. Puede añadir los identificadores &#039;MailingCP&#039; y &#039;AmazonSES&#039;.&lt;br /&gt;
**&#039;&#039;&#039;dataBases:&#039;&#039;&#039; Array que especifica las bases de datos de las que se quieren obtener las estadísticas. Los identificadores de sus bases de datos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada base de datos en la [https://panel.mobeleader.com/index.php?sec=105 sección BBDD] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica las campañas de las que se quieren obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=135 sección Campañas] denuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica los dominios de los que se quieren obtener las estadísticas. Los identificadores de sus dominios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dominio en la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaignType:&#039;&#039;&#039; Valor que especifica el tipo de campaña de la que se quiere obtener las estadísticas. Puede elegir entre uno de los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos transaccionales.&lt;br /&gt;
***&#039;&#039;&#039;autoresponder:&#039;&#039;&#039; Para envíos automáticos.&lt;br /&gt;
***&#039;&#039;&#039;newsletter:&#039;&#039;&#039; Para envíos boletín.&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos de marketing.&lt;br /&gt;
**&#039;&#039;&#039;emails:&#039;&#039;&#039; Array que especifica las direcciones de email de las que se quieren obtener las estadísticas. Para obtener los identificadores de sus direcciones de email deberá dirigirse a la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel. Una vez ahí, pulse en el icono &#039;&#039;&#039;Ver emails&#039;&#039;&#039; en la columna &#039;&#039;&#039;Emails&#039;&#039;&#039;. Dentro del popup en el que se muestran las direcciones de email del dominio seleccionado, podrá obtener el identificador en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dirección de email.&lt;br /&gt;
**&#039;&#039;&#039;mailings:&#039;&#039;&#039; Array que especifica los envíos de los que se quieren obtener las estadísticas. Los identificadores de sus envíos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada envío en la [https://panel.mobeleader.com/index.php?sec=134 sección Envíos Transaccionales] para  los envíos transaccionales, en la [https://panel.mobeleader.com/index.php?sec=148 sección Envíos Auto-Responder] para  los envíos autoresponder, en la [https://panel.mobeleader.com/index.php?sec=139 sección Envíos Boletín] para  los envíos boletín y en la [https://panel.mobeleader.com/index.php?sec=138 sección Envíos Marketing] para  los envíos de marketing de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;campaign&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;unique_views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unique_leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;,&amp;quot;soft_bounces&amp;quot;,&amp;quot;hard_bounces&amp;quot;,&amp;quot;or&amp;quot;,&amp;quot;cr&amp;quot;,&amp;quot;ur&amp;quot;,&amp;quot;br&amp;quot;,&amp;quot;rr&amp;quot;,&amp;quot;dr&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;senders&amp;quot;:[&amp;quot;MailingCP&amp;quot;],&lt;br /&gt;
          &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
          &amp;quot;campaignType&amp;quot;:&amp;quot;newsletter&amp;quot;,&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[3,25,27],&lt;br /&gt;
          &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
          &amp;quot;mailings&amp;quot;:[324,17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-02&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por envío con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;mail&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
           &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
           &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
           &amp;quot;campaignType&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
           &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
           &amp;quot;mailings&amp;quot;:[17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Marketing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;ad:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Anuncio&#039;&#039;&#039; o &#039;&#039;&#039;Campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Web&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;creativity:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Creatividad&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;ctr:&#039;&#039;&#039; CTR.&lt;br /&gt;
**&#039;&#039;&#039;validated_leads:&#039;&#039;&#039; registros validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_leads:&#039;&#039;&#039; registros pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_leads:&#039;&#039;&#039; registros totales.&lt;br /&gt;
**&#039;&#039;&#039;rejected_leads:&#039;&#039;&#039; registros rechazados.&lt;br /&gt;
**&#039;&#039;&#039;validated_expenditures:&#039;&#039;&#039; gastos validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_expenditures:&#039;&#039;&#039; gastos pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_expenditures:&#039;&#039;&#039; gastos totales.&lt;br /&gt;
**&#039;&#039;&#039;validated_profits:&#039;&#039;&#039; beneficios validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_profits:&#039;&#039;&#039; beneficios pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_profits:&#039;&#039;&#039; beneficios totales.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica los anuncios o campañas de las que se quiere obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=9 sección Mis Anuncios] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica las webs de las que se quiere obtener las estadísticas. Los identificadores de sus webs los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada web en la [https://panel.mobeleader.com/index.php?sec=17 sección Mis Webs] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;creativities:&#039;&#039;&#039; Array que especifica las creatividades de las que se quiere obtener las estadísticas. Los identificadores de sus creatividades los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada creatividad en la [https://panel.mobeleader.com/index.php?sec=173 sección Mis Creatividades] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;,&amp;quot;creativity&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;ctr&amp;quot;,&amp;quot;validated_leads&amp;quot;,&amp;quot;pending_leads&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;rejected_leads&amp;quot;,&amp;quot;validated_expenditures&amp;quot;,&amp;quot;pending_expenditures&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;validated_profits&amp;quot;,&amp;quot;pending_profits&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3,125,408],&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[95,512],&lt;br /&gt;
          &amp;quot;creativities&amp;quot;:[27,135]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-11&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña y web, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3],&amp;quot;domains&amp;quot;:[95,512]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Miner==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;worker:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;worker&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;wallet:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;wallet&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;workerType:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;tipo de worker&#039;&#039;&#039; (app, web, link, etc).&lt;br /&gt;
**&#039;&#039;&#039;coin:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;divisa&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;payout:&#039;&#039;&#039; pago estimado.&lt;br /&gt;
**&#039;&#039;&#039;hashes:&#039;&#039;&#039; hashes minados.&lt;br /&gt;
**&#039;&#039;&#039;shares:&#039;&#039;&#039; hashes validados.&lt;br /&gt;
**&#039;&#039;&#039;hashrate:&#039;&#039;&#039; hashes por segundo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;workers:&#039;&#039;&#039; Array que especifica los workers de los que se quiere obtener las estadísticas. Los identificadores de sus workers los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada workers en la [https://panel.mobeleader.com/index.php?sec=5 sección Mis Workers] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;wallets:&#039;&#039;&#039; Array que especifica los wallets de los que se quiere obtener las estadísticas. Los identificadores de sus wallets los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada wallet en la [https://panel.mobeleader.com/index.php?sec=1 sección Mis Wallets] denuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;coins:&#039;&#039;&#039; Array que especifica las divisas de las que se quiere obtener las estadísticas. Puede añadir las siguientes divisas:&lt;br /&gt;
***&#039;&#039;&#039;bcn:&#039;&#039;&#039; Bytecoin.&lt;br /&gt;
***&#039;&#039;&#039;xmr:&#039;&#039;&#039; Monero.&lt;br /&gt;
**&#039;&#039;&#039;workerTypes:&#039;&#039;&#039; Array que especifica los diferentes tipos de workers de los que se quiere obtener las estadísticas. Puede añadir los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;app:&#039;&#039;&#039; aplicación.&lt;br /&gt;
***&#039;&#039;&#039;web:&#039;&#039;&#039; web.&lt;br /&gt;
***&#039;&#039;&#039;wallet:&#039;&#039;&#039; wallet.&lt;br /&gt;
***&#039;&#039;&#039;link:&#039;&#039;&#039; link de redireccionamiento.&lt;br /&gt;
***&#039;&#039;&#039;captcha:&#039;&#039;&#039; captcha de validación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;coin&amp;quot;,&amp;quot;workerType&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;payout&amp;quot;,&amp;quot;hashes&amp;quot;,&amp;quot;shares&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;wallets&amp;quot;:[1,5,6],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;link&amp;quot;,&amp;quot;captcha&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;bcn&amp;quot;,&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-30&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por worker y wallet, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;hashes&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Developer==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;place:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;espacio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;osVersion:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;versión del sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;brand:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;marca del terminal&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks realizados.&lt;br /&gt;
**&#039;&#039;&#039;downloads:&#039;&#039;&#039; descargas obtenidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;oss:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;places:&#039;&#039;&#039; Array que especifica los espacios de los que se quiere obtener las estadísticas. Los identificadores de sus espacios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada espacio en la [https://panel.mobeleader.com/index.php?sec=34 sección Mis Espacios] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;app&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;downloads&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;oss&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por país con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;country&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NickCenter==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;. Este campo solo podrá ser requerido por aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;users:&#039;&#039;&#039; Usuarios dados de alta en cada aplicación. Solo contabiliza el primer registro en NickCenter, no contabiliza otro registro del mismo usuario en otras aplicaciones.&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; Todos los usuarios registrados en base dentro de las fechas seleccionadas, incluidos los que se hayan dado de baja.&lt;br /&gt;
**&#039;&#039;&#039;registered:&#039;&#039;&#039; Usuarios que están registrados en la base de datos.&lt;br /&gt;
**&#039;&#039;&#039;valid:&#039;&#039;&#039; Usuarios que están registrados en la base de datos, con todos los campos requeridos completados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; Usuarios que estuvieron registrados en la base de datos y que se dieron de baja dentro de las fechas seleccionadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] de nuestro panel. Este filtro solo ser á válido para aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo y fecha, con todos los filtros, excepto links:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;,&amp;quot;registered&amp;quot;,&amp;quot;valid&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;US&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;],&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Push==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse, exceptuando los campos &#039;&#039;&#039;notification&#039;&#039;&#039; y &#039;&#039;&#039;app&#039;&#039;&#039; (solo podrá seleccionar uno de estos dos campos en una consulta). Si selecciona el campo &#039;&#039;&#039;notification&#039;&#039;&#039;, deberá establecer una app en el campo &#039;&#039;&#039;apps&#039;&#039;&#039; de los filtros. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;notification:&#039;&#039;&#039; Devolverá las estadísticas por cada &#039;&#039;&#039;notificación Push&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;estado&#039;&#039;&#039; de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; el total de los mensajes enviados de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; mensajes enviados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;failed:&#039;&#039;&#039; mensajes enviados y que no han llegado al terminal de destino.&lt;br /&gt;
**&#039;&#039;&#039;erased:&#039;&#039;&#039; mensajes borrados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Especifique una única aplicación en caso de haber seleccionado el campo &#039;&#039;&#039;notification&#039;&#039;&#039; en los filtros. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Array que especifica los estados de las notificaciones de los que se quiere obtener las estadísticas.&lt;br /&gt;
***&#039;&#039;&#039;ready:&#039;&#039;&#039; indica que la notificación ha sido creada correctamente y está en espera de ser verificada.&lt;br /&gt;
***&#039;&#039;&#039;starting:&#039;&#039;&#039;  indica que la notificación ha sido verificada y va ser enviada.&lt;br /&gt;
***&#039;&#039;&#039;sending:&#039;&#039;&#039; indica que la notificación está siendo enviada.&lt;br /&gt;
***&#039;&#039;&#039;finished:&#039;&#039;&#039; indica que el envío de la notificación ha finalizado.&lt;br /&gt;
***&#039;&#039;&#039;stoped:&#039;&#039;&#039; indica que el envío de la notificación ha sido detenido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, estado y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;status&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;,&amp;quot;erased&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;FR&amp;quot;],&lt;br /&gt;
          &amp;quot;estados&amp;quot;:[&amp;quot;sending&amp;quot;,&amp;quot;finished&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por notificación y estado, con algunos de los campos y filtros (en el filtro de &#039;&#039;&#039;apps&#039;&#039;&#039; solo establece una aplicación):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;notification&amp;quot;,&amp;quot;status&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Link Tracking==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. No puede combinarse el campo &#039;&#039;&#039;link&#039;&#039;&#039; con los campos &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;, por lo que si decide incluir el campo &#039;&#039;&#039;link&#039;&#039;&#039; no se mostrarán las estadísticas por &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;field:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;value:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;valor&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] de nuestro panel&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; Array que especifica los campos de los que se quiere obtener las estadísticas. Los nombres de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;values:&#039;&#039;&#039; Array que especifica los valores de los campos de los que se quiere obtener las estadísticas. Los valores de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, campo, valor y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;field&amp;quot;,&amp;quot;value&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;fields&amp;quot;:[&amp;quot;campo1&amp;quot;,&amp;quot;campo2&amp;quot;],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;,&amp;quot;valor2&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resultado de las estadísticas=&lt;br /&gt;
Una vez realizada la conexión con la API correctamente, ésta devolverá una respuesta en formato JSON. La respuesta puede contener:&lt;br /&gt;
*Un resultado sin estadísticas.&lt;br /&gt;
*Las estadísticas resultantes de la petición.&lt;br /&gt;
*Un mensaje de error.&lt;br /&gt;
==Resultado vacío==&lt;br /&gt;
Si la petición se ha realizado correctamente, pero la API no ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el siguiente resultado:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;result&amp;quot;:&amp;quot;No result for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resultado con estadísticas==&lt;br /&gt;
Si la petición se ha realizado correctamente, y la API ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el resultado de las estadísticas desglosado por campo, en función de los valores indicados en los campos &#039;&#039;&#039;require&#039;&#039;&#039; y &#039;&#039;&#039;fields&#039;&#039;&#039;. Si además se ha establecido el valor &#039;date&#039; en el campo &#039;&#039;&#039;require&#039;&#039;&#039;, el resultado vendrá desglosado por campo y fecha.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de estadísticas sin fechas:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;0&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;20&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;1&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;23&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;18&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de las mismas estadísticas por fecha:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;2018-10-10&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;2&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;7&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;10&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;2018-10-03&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;4&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;12&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;11&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;9&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;date&amp;quot;:2,&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Error en la petición de estadísticas==&lt;br /&gt;
Si la petición no se ha realizado correctamente, la API devolverá un mensaje, dentro del campo &#039;&#039;&#039;error&#039;&#039;&#039;, indicando la causa de error en la petición. A continuación se muestra los diferentes errores que la API puede devolver:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address. Please ask your account manager for a valid IP.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la IP no está registrada en el sistema de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address for the user key sent. Please check and set &#039;user&#039; parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la dirección IP desde la que se realiza la petición es correcta, pero no está registrada para el usuario introducido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request user found. Please set user parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No data post field found. Please set data post field.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request data found. Please fill your request with proper parameters.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; está vacío.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request type found. Please set type parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong type set, &#039;type_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong user set, &#039;user_key_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request fields found. Please set the fields you want to check.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User has no permission for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario introducido no tiene permisos para realizar ese tipo de consulta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User must wait at least 1 minute for the next request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario ha de esperar al menos un minuto desde la última consulta hasta la siguiente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not found or not properly set. Please set require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not properly set, &#039;require_value_for_error_test&#039; is not a valid require. Please set a valid require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;require&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Some required fields are not correct. &#039;fields_value_for_error_test&#039; is not a valid field. Please set the required fields properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
==Error en las claves RSA==&lt;br /&gt;
Si las claves RSA no han sido configuradas correctamente, el sistema mostrará los siguientes errores:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000d - Missing public RSA Key for user key &#039;my_user_key&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el sistema no ha podido verificar las claves RSA del usuario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000c - Empty or invalid user key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; no se ha enviado correctamente.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2760</id>
		<title>Documentación API Analytics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2760"/>
		<updated>2019-06-07T10:56:54Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Push */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
La &#039;&#039;&#039;API Analytics&#039;&#039;&#039; es la plataforma a través de la cual obtener las estadísticas de un usuario. Los datos obtenidos corresponderán a los datos que se obtendrían en las secciones de Analytics de nuestro panel. Las estadísticas serán devueltas en formato JSON.&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar la &#039;&#039;&#039;API Analytics&#039;&#039;&#039; y poder obtener tanto el identificador de usuario como las claves RSA, deberá solicitarlo a su administrador.&lt;br /&gt;
&lt;br /&gt;
En esta documentación se explicará cómo conectar con la API y cómo preparar los datos para realizar la petición de las estadísticas. Los ejemplos ofrecidos están en lenguaje PHP.&lt;br /&gt;
&lt;br /&gt;
=Registro de usuario=&lt;br /&gt;
Al solicitar el acceso a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, es necesario reportar las direcciones IP desde las que se realizarán las peticiones de estadísticas. Así mismo, el usuario deberá actualizar el registro de direcciones IP cuando éstas cambien. El sistema registrará las direcciones IP junto al identificador del usuario, por lo que no permitirá al usuario realizar peticiones si éste no está asociado a las direcciones IP registradas.&lt;br /&gt;
&lt;br /&gt;
=Conexión con la API=&lt;br /&gt;
La conexión con la API para realizar la petición de estadísticas se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa a la API. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa a la API==&lt;br /&gt;
Si desea realizar la petición a la API sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, deberá conectarse mediante POST a la siguiente URL: &#039;&#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;&#039;, añadiendo los parámetros &#039;&#039;&#039;data&#039;&#039;&#039; (JSON con los datos de la petición) y &#039;&#039;&#039;user&#039;&#039;&#039; (string o cadena con el identificador del usuario). En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explicará como obtener el identificador de usuario y como construir el JSON de la petición.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode($requestJson).&#039;&amp;amp;user=&#039;.$userIdString);&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en su carpeta vendor, lo primero que deberá hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras modificar la ruta, para poder instanciar la clase, será necesario obtener la clave &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Boton_rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pulsando en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;, se abrirá un popup en el que podrá obtener las claves RSA.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ha de copiar la cadena perteneciente al campo &#039;&#039;&#039;Private RSA key&#039;&#039;&#039;. Es necesario copiar la cadena completa, incluyendo -----BEGIN RSA PRIVATE KEY----- y -----END RSA PRIVATE KEY-----. Se añadirá la cadena como parámetro (string) del constructor de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;,  tal y como se muestra en el ejemplo siguiente:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez realizadas correctamente la instalación de la librería, la modificación de la ruta de acceso a ésta, y la inserción en el código de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, las llamadas a la API se realizarán a través de la función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;, añadiendo el JSON con los datos de la petición y la cadena con el identificador del usuario. La función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; será la encargada de realizar todas las conexiones a la API, de cifrar los datos que se envíen a ésta y de descifrar los datos que devuelva.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
$responseJson = $apiconnection-&amp;gt;getApiData($userIdString, $requestJson)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explica cómo obtenerla cadena con el identificador de usuario y cómo construir el JSON de la petición&lt;br /&gt;
&lt;br /&gt;
=Petición de estadísticas=&lt;br /&gt;
Para que la petición de estadísticas se realice correctamente, es necesario enviar, dentro de la petición, su identificador de usuario y un JSON en el cual especificar las estadísticas que quiera obtener (campos de las estadísticas, filtros, fechas, etc.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Las peticiones a la API son limitadas&#039;&#039;&#039;. Una vez recibida la respuesta de estadísticas (a excepción de haber devuelto un error), deberá esperar un minuto para hacer la siguiente consulta.&lt;br /&gt;
&lt;br /&gt;
==Identificador de usuario==&lt;br /&gt;
Para realizar la petición de estadísticas a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, lo primero que debe hacer es obtener el identificador de usuario. Para ello diríjase a la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] del Panel de Mobeleader y pulse en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;. Una vez dentro del popup, copie la cadena perteneciente al campo &#039;&#039;&#039;Public Identifier&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Public_id.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JSON de petición de estadísticas==&lt;br /&gt;
Para obtener las estadísticas deseadas, es necesario crear un JSON en el que se especifique:&lt;br /&gt;
#El tipo de petición, especificado en el campo &#039;&#039;&#039;type&#039;&#039;&#039;: minería, desarrollo, etc.&lt;br /&gt;
#Los elementos de los cuales quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;require&#039;&#039;&#039;: por anuncio, por app, por sistema operativo, etc.&lt;br /&gt;
#Las estadísticas que quiera mostrar, especificadas en el campo &#039;&#039;&#039;fields&#039;&#039;&#039;: impresiones, descargas, hashes minados, etc.&lt;br /&gt;
#Los filtros o elementos concretos de los que quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;filters&#039;&#039;&#039;: determinadas apps, bases de datos, etc.&lt;br /&gt;
#Las fechas entre las que quiera delimitar la petición, especificadas en el campo &#039;&#039;&#039;dates&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Tipos==&lt;br /&gt;
Cada tipo de petición devolverá un tipo de estadísticas, en función del tipo de usuario que realice la petición, así como los permisos que le hayan sido otorgados. El tipo de petición se especificará en el campo &#039;&#039;&#039;type&#039;&#039;&#039; del JSON. Los diferentes valores para el tipo de petición son:&lt;br /&gt;
*&#039;&#039;&#039;mailing:&#039;&#039;&#039; Devuelve las estadísticas de los envíos de Mailing. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Mailing&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;marketing:&#039;&#039;&#039; Devuelve las estadísticas de los anuncios. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Agencias&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;miner:&#039;&#039;&#039; Devuelve las estadísticas minería. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Minería&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;developer:&#039;&#039;&#039; Devuelve las estadísticas de las aplicaciones. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Desarrolladores&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;nickcenter:&#039;&#039;&#039; Devuelve las estadísticas de los registros realizados a través de &#039;&#039;&#039;NickCenter&#039;&#039;&#039;. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;NickCenter&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;push:&#039;&#039;&#039; Devuelve las estadísticas generadas por las &#039;&#039;&#039;notificaciones Push&#039;&#039;&#039; de sus aplicaciones enviadas a través de nuestro sistema. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Notificaciones Push&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;linkTracking:&#039;&#039;&#039; Devuelve las estadísticas de descargas por URL tracking. El usuario ha de tener acceso a las sección &#039;&#039;&#039;Link Management&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
&lt;br /&gt;
==Mailing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;db:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Base de datos&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mail:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;envío&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;campaign:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dominio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;sender:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sender&#039;&#039;&#039; (enviador).&lt;br /&gt;
**&#039;&#039;&#039;emailAdress:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dirección de email&#039;&#039;&#039; desde la que se hayan realizado los envíos.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; emails enviados.&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones totales obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;unique_views:&#039;&#039;&#039; impresiones únicas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;leads:&#039;&#039;&#039; registros totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_leads:&#039;&#039;&#039; registros únicos.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; bajas ejecutadas.&lt;br /&gt;
**&#039;&#039;&#039;soft_bounces:&#039;&#039;&#039; soft bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;hard_bounces:&#039;&#039;&#039; hard bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;or:&#039;&#039;&#039; tasa de aperturas.&lt;br /&gt;
**&#039;&#039;&#039;cr:&#039;&#039;&#039; tasa de clicks.&lt;br /&gt;
**&#039;&#039;&#039;ur:&#039;&#039;&#039; tasa de bajas.&lt;br /&gt;
**&#039;&#039;&#039;br:&#039;&#039;&#039; tasa de bonces o rebotados.&lt;br /&gt;
**&#039;&#039;&#039;rr:&#039;&#039;&#039; tasa de reactividad.&lt;br /&gt;
**&#039;&#039;&#039;dr:&#039;&#039;&#039; tasa de entregabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;senders:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;senders&#039;&#039;&#039; o enviadores de los que se quieren obtener las estadísticas. Puede añadir los identificadores &#039;MailingCP&#039; y &#039;AmazonSES&#039;.&lt;br /&gt;
**&#039;&#039;&#039;dataBases:&#039;&#039;&#039; Array que especifica las bases de datos de las que se quieren obtener las estadísticas. Los identificadores de sus bases de datos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada base de datos en la [https://panel.mobeleader.com/index.php?sec=105 sección BBDD] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica las campañas de las que se quieren obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=135 sección Campañas] denuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica los dominios de los que se quieren obtener las estadísticas. Los identificadores de sus dominios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dominio en la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaignType:&#039;&#039;&#039; Valor que especifica el tipo de campaña de la que se quiere obtener las estadísticas. Puede elegir entre uno de los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos transaccionales.&lt;br /&gt;
***&#039;&#039;&#039;autoresponder:&#039;&#039;&#039; Para envíos automáticos.&lt;br /&gt;
***&#039;&#039;&#039;newsletter:&#039;&#039;&#039; Para envíos boletín.&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos de marketing.&lt;br /&gt;
**&#039;&#039;&#039;emails:&#039;&#039;&#039; Array que especifica las direcciones de email de las que se quieren obtener las estadísticas. Para obtener los identificadores de sus direcciones de email deberá dirigirse a la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel. Una vez ahí, pulse en el icono &#039;&#039;&#039;Ver emails&#039;&#039;&#039; en la columna &#039;&#039;&#039;Emails&#039;&#039;&#039;. Dentro del popup en el que se muestran las direcciones de email del dominio seleccionado, podrá obtener el identificador en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dirección de email.&lt;br /&gt;
**&#039;&#039;&#039;mailings:&#039;&#039;&#039; Array que especifica los envíos de los que se quieren obtener las estadísticas. Los identificadores de sus envíos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada envío en la [https://panel.mobeleader.com/index.php?sec=134 sección Envíos Transaccionales] para  los envíos transaccionales, en la [https://panel.mobeleader.com/index.php?sec=148 sección Envíos Auto-Responder] para  los envíos autoresponder, en la [https://panel.mobeleader.com/index.php?sec=139 sección Envíos Boletín] para  los envíos boletín y en la [https://panel.mobeleader.com/index.php?sec=138 sección Envíos Marketing] para  los envíos de marketing de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;campaign&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;unique_views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unique_leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;,&amp;quot;soft_bounces&amp;quot;,&amp;quot;hard_bounces&amp;quot;,&amp;quot;or&amp;quot;,&amp;quot;cr&amp;quot;,&amp;quot;ur&amp;quot;,&amp;quot;br&amp;quot;,&amp;quot;rr&amp;quot;,&amp;quot;dr&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;senders&amp;quot;:[&amp;quot;MailingCP&amp;quot;],&lt;br /&gt;
          &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
          &amp;quot;campaignType&amp;quot;:&amp;quot;newsletter&amp;quot;,&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[3,25,27],&lt;br /&gt;
          &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
          &amp;quot;mailings&amp;quot;:[324,17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-02&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por envío con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;mail&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
           &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
           &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
           &amp;quot;campaignType&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
           &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
           &amp;quot;mailings&amp;quot;:[17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Marketing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;ad:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Anuncio&#039;&#039;&#039; o &#039;&#039;&#039;Campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Web&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;creativity:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Creatividad&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;ctr:&#039;&#039;&#039; CTR.&lt;br /&gt;
**&#039;&#039;&#039;validated_leads:&#039;&#039;&#039; registros validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_leads:&#039;&#039;&#039; registros pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_leads:&#039;&#039;&#039; registros totales.&lt;br /&gt;
**&#039;&#039;&#039;rejected_leads:&#039;&#039;&#039; registros rechazados.&lt;br /&gt;
**&#039;&#039;&#039;validated_expenditures:&#039;&#039;&#039; gastos validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_expenditures:&#039;&#039;&#039; gastos pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_expenditures:&#039;&#039;&#039; gastos totales.&lt;br /&gt;
**&#039;&#039;&#039;validated_profits:&#039;&#039;&#039; beneficios validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_profits:&#039;&#039;&#039; beneficios pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_profits:&#039;&#039;&#039; beneficios totales.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica los anuncios o campañas de las que se quiere obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=9 sección Mis Anuncios] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica las webs de las que se quiere obtener las estadísticas. Los identificadores de sus webs los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada web en la [https://panel.mobeleader.com/index.php?sec=17 sección Mis Webs] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;creativities:&#039;&#039;&#039; Array que especifica las creatividades de las que se quiere obtener las estadísticas. Los identificadores de sus creatividades los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada creatividad en la [https://panel.mobeleader.com/index.php?sec=173 sección Mis Creatividades] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;,&amp;quot;creativity&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;ctr&amp;quot;,&amp;quot;validated_leads&amp;quot;,&amp;quot;pending_leads&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;rejected_leads&amp;quot;,&amp;quot;validated_expenditures&amp;quot;,&amp;quot;pending_expenditures&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;validated_profits&amp;quot;,&amp;quot;pending_profits&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3,125,408],&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[95,512],&lt;br /&gt;
          &amp;quot;creativities&amp;quot;:[27,135]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-11&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña y web, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3],&amp;quot;domains&amp;quot;:[95,512]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Miner==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;worker:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;worker&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;wallet:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;wallet&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;workerType:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;tipo de worker&#039;&#039;&#039; (app, web, link, etc).&lt;br /&gt;
**&#039;&#039;&#039;coin:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;divisa&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;payout:&#039;&#039;&#039; pago estimado.&lt;br /&gt;
**&#039;&#039;&#039;hashes:&#039;&#039;&#039; hashes minados.&lt;br /&gt;
**&#039;&#039;&#039;shares:&#039;&#039;&#039; hashes validados.&lt;br /&gt;
**&#039;&#039;&#039;hashrate:&#039;&#039;&#039; hashes por segundo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;workers:&#039;&#039;&#039; Array que especifica los workers de los que se quiere obtener las estadísticas. Los identificadores de sus workers los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada workers en la [https://panel.mobeleader.com/index.php?sec=5 sección Mis Workers] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;wallets:&#039;&#039;&#039; Array que especifica los wallets de los que se quiere obtener las estadísticas. Los identificadores de sus wallets los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada wallet en la [https://panel.mobeleader.com/index.php?sec=1 sección Mis Wallets] denuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;coins:&#039;&#039;&#039; Array que especifica las divisas de las que se quiere obtener las estadísticas. Puede añadir las siguientes divisas:&lt;br /&gt;
***&#039;&#039;&#039;bcn:&#039;&#039;&#039; Bytecoin.&lt;br /&gt;
***&#039;&#039;&#039;xmr:&#039;&#039;&#039; Monero.&lt;br /&gt;
**&#039;&#039;&#039;workerTypes:&#039;&#039;&#039; Array que especifica los diferentes tipos de workers de los que se quiere obtener las estadísticas. Puede añadir los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;app:&#039;&#039;&#039; aplicación.&lt;br /&gt;
***&#039;&#039;&#039;web:&#039;&#039;&#039; web.&lt;br /&gt;
***&#039;&#039;&#039;wallet:&#039;&#039;&#039; wallet.&lt;br /&gt;
***&#039;&#039;&#039;link:&#039;&#039;&#039; link de redireccionamiento.&lt;br /&gt;
***&#039;&#039;&#039;captcha:&#039;&#039;&#039; captcha de validación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;coin&amp;quot;,&amp;quot;workerType&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;payout&amp;quot;,&amp;quot;hashes&amp;quot;,&amp;quot;shares&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;wallets&amp;quot;:[1,5,6],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;link&amp;quot;,&amp;quot;captcha&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;bcn&amp;quot;,&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-30&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por worker y wallet, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;hashes&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Developer==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;place:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;espacio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;osVersion:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;versión del sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;brand:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;marca del terminal&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks realizados.&lt;br /&gt;
**&#039;&#039;&#039;downloads:&#039;&#039;&#039; descargas obtenidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;oss:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;places:&#039;&#039;&#039; Array que especifica los espacios de los que se quiere obtener las estadísticas. Los identificadores de sus espacios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada espacio en la [https://panel.mobeleader.com/index.php?sec=34 sección Mis Espacios] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;app&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;downloads&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;oss&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por país con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;country&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NickCenter==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;. Este campo solo podrá ser requerido por aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;users:&#039;&#039;&#039; Usuarios dados de alta en cada aplicación. Solo contabiliza el primer registro en NickCenter, no contabiliza otro registro del mismo usuario en otras aplicaciones.&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; Todos los usuarios registrados en base dentro de las fechas seleccionadas, incluidos los que se hayan dado de baja.&lt;br /&gt;
**&#039;&#039;&#039;registered:&#039;&#039;&#039; Usuarios que están registrados en la base de datos.&lt;br /&gt;
**&#039;&#039;&#039;valid:&#039;&#039;&#039; Usuarios que están registrados en la base de datos, con todos los campos requeridos completados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; Usuarios que estuvieron registrados en la base de datos y que se dieron de baja dentro de las fechas seleccionadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] de nuestro panel. Este filtro solo ser á válido para aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo y fecha, con todos los filtros, excepto links:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;,&amp;quot;registered&amp;quot;,&amp;quot;valid&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;US&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;],&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Push==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse, exceptuando los campos &#039;&#039;&#039;notification&#039;&#039;&#039; y &#039;&#039;&#039;app&#039;&#039;&#039; (solo podrá seleccionar uno de estos dos campos en una consulta). Si selecciona el campo &#039;&#039;&#039;notification&#039;&#039;&#039;, deberá establecer una app en el campo &#039;&#039;&#039;apps&#039;&#039;&#039; de los filtros. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;notification:&#039;&#039;&#039; Devolverá las estadísticas por cada &#039;&#039;&#039;notificación Push&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;estado&#039;&#039;&#039; de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; el total de los mensajes enviados de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; mensajes enviados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;failed:&#039;&#039;&#039; mensajes enviados y que no han llegado al terminal de destino.&lt;br /&gt;
**&#039;&#039;&#039;erased:&#039;&#039;&#039; mensajes borrados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Especifique una única aplicación en caso de haber seleccionado el campo &#039;&#039;&#039;notification&#039;&#039;&#039; en los filtros. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Array que especifica los estados de las notificaciones de los que se quiere obtener las estadísticas.&lt;br /&gt;
***&#039;&#039;&#039;ready:&#039;&#039;&#039; indica que la notificación ha sido creada correctamente y está en espera de ser verificada.&lt;br /&gt;
***&#039;&#039;&#039;starting:&#039;&#039;&#039;  indica que la notificación ha sido verificada y va ser enviada.&lt;br /&gt;
***&#039;&#039;&#039;sending:&#039;&#039;&#039; indica que la notificación está siendo enviada.&lt;br /&gt;
***&#039;&#039;&#039;finished:&#039;&#039;&#039; indica que el envío de la notificación ha finalizado.&lt;br /&gt;
***&#039;&#039;&#039;stoped:&#039;&#039;&#039; indica que el envío de la notificación ha sido detenido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, estado y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;status&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;,&amp;quot;erased&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;FR&amp;quot;],&lt;br /&gt;
          &amp;quot;estados&amp;quot;:[&amp;quot;sending&amp;quot;,&amp;quot;finished&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por notificación y estado, con algunos de los campos y filtros (en el filtro de &#039;&#039;&#039;apps&#039;&#039;&#039; solo establece una aplicación):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;notification&amp;quot;,&amp;quot;status&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Link Tracking==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. No puede combinarse el campo &#039;&#039;&#039;link&#039;&#039;&#039; con los campos &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;, por lo que si decide incluir el campo &#039;&#039;&#039;link&#039;&#039;&#039; no se mostrarán las estadísticas por &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;field:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;value:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;valor&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; Array que especifica los campos de los que se quiere obtener las estadísticas. Los nombres de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;values:&#039;&#039;&#039; Array que especifica los valores de los campos de los que se quiere obtener las estadísticas. Los valores de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, campo, valor y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;field&amp;quot;,&amp;quot;value&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;fields&amp;quot;:[&amp;quot;campo1&amp;quot;,&amp;quot;campo2&amp;quot;],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;,&amp;quot;valor2&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resultado de las estadísticas=&lt;br /&gt;
Una vez realizada la conexión con la API correctamente, ésta devolverá una respuesta en formato JSON. La respuesta puede contener:&lt;br /&gt;
*Un resultado sin estadísticas.&lt;br /&gt;
*Las estadísticas resultantes de la petición.&lt;br /&gt;
*Un mensaje de error.&lt;br /&gt;
==Resultado vacío==&lt;br /&gt;
Si la petición se ha realizado correctamente, pero la API no ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el siguiente resultado:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;result&amp;quot;:&amp;quot;No result for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resultado con estadísticas==&lt;br /&gt;
Si la petición se ha realizado correctamente, y la API ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el resultado de las estadísticas desglosado por campo, en función de los valores indicados en los campos &#039;&#039;&#039;require&#039;&#039;&#039; y &#039;&#039;&#039;fields&#039;&#039;&#039;. Si además se ha establecido el valor &#039;date&#039; en el campo &#039;&#039;&#039;require&#039;&#039;&#039;, el resultado vendrá desglosado por campo y fecha.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de estadísticas sin fechas:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;0&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;20&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;1&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;23&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;18&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de las mismas estadísticas por fecha:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;2018-10-10&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;2&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;7&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;10&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;2018-10-03&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;4&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;12&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;11&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;9&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;date&amp;quot;:2,&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Error en la petición de estadísticas==&lt;br /&gt;
Si la petición no se ha realizado correctamente, la API devolverá un mensaje, dentro del campo &#039;&#039;&#039;error&#039;&#039;&#039;, indicando la causa de error en la petición. A continuación se muestra los diferentes errores que la API puede devolver:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address. Please ask your account manager for a valid IP.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la IP no está registrada en el sistema de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address for the user key sent. Please check and set &#039;user&#039; parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la dirección IP desde la que se realiza la petición es correcta, pero no está registrada para el usuario introducido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request user found. Please set user parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No data post field found. Please set data post field.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request data found. Please fill your request with proper parameters.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; está vacío.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request type found. Please set type parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong type set, &#039;type_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong user set, &#039;user_key_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request fields found. Please set the fields you want to check.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User has no permission for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario introducido no tiene permisos para realizar ese tipo de consulta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User must wait at least 1 minute for the next request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario ha de esperar al menos un minuto desde la última consulta hasta la siguiente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not found or not properly set. Please set require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not properly set, &#039;require_value_for_error_test&#039; is not a valid require. Please set a valid require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;require&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Some required fields are not correct. &#039;fields_value_for_error_test&#039; is not a valid field. Please set the required fields properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
==Error en las claves RSA==&lt;br /&gt;
Si las claves RSA no han sido configuradas correctamente, el sistema mostrará los siguientes errores:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000d - Missing public RSA Key for user key &#039;my_user_key&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el sistema no ha podido verificar las claves RSA del usuario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000c - Empty or invalid user key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; no se ha enviado correctamente.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2759</id>
		<title>Documentación API Analytics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2759"/>
		<updated>2019-06-07T10:55:29Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* NickCenter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
La &#039;&#039;&#039;API Analytics&#039;&#039;&#039; es la plataforma a través de la cual obtener las estadísticas de un usuario. Los datos obtenidos corresponderán a los datos que se obtendrían en las secciones de Analytics de nuestro panel. Las estadísticas serán devueltas en formato JSON.&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar la &#039;&#039;&#039;API Analytics&#039;&#039;&#039; y poder obtener tanto el identificador de usuario como las claves RSA, deberá solicitarlo a su administrador.&lt;br /&gt;
&lt;br /&gt;
En esta documentación se explicará cómo conectar con la API y cómo preparar los datos para realizar la petición de las estadísticas. Los ejemplos ofrecidos están en lenguaje PHP.&lt;br /&gt;
&lt;br /&gt;
=Registro de usuario=&lt;br /&gt;
Al solicitar el acceso a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, es necesario reportar las direcciones IP desde las que se realizarán las peticiones de estadísticas. Así mismo, el usuario deberá actualizar el registro de direcciones IP cuando éstas cambien. El sistema registrará las direcciones IP junto al identificador del usuario, por lo que no permitirá al usuario realizar peticiones si éste no está asociado a las direcciones IP registradas.&lt;br /&gt;
&lt;br /&gt;
=Conexión con la API=&lt;br /&gt;
La conexión con la API para realizar la petición de estadísticas se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa a la API. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa a la API==&lt;br /&gt;
Si desea realizar la petición a la API sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, deberá conectarse mediante POST a la siguiente URL: &#039;&#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;&#039;, añadiendo los parámetros &#039;&#039;&#039;data&#039;&#039;&#039; (JSON con los datos de la petición) y &#039;&#039;&#039;user&#039;&#039;&#039; (string o cadena con el identificador del usuario). En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explicará como obtener el identificador de usuario y como construir el JSON de la petición.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode($requestJson).&#039;&amp;amp;user=&#039;.$userIdString);&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en su carpeta vendor, lo primero que deberá hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras modificar la ruta, para poder instanciar la clase, será necesario obtener la clave &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Boton_rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pulsando en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;, se abrirá un popup en el que podrá obtener las claves RSA.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ha de copiar la cadena perteneciente al campo &#039;&#039;&#039;Private RSA key&#039;&#039;&#039;. Es necesario copiar la cadena completa, incluyendo -----BEGIN RSA PRIVATE KEY----- y -----END RSA PRIVATE KEY-----. Se añadirá la cadena como parámetro (string) del constructor de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;,  tal y como se muestra en el ejemplo siguiente:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez realizadas correctamente la instalación de la librería, la modificación de la ruta de acceso a ésta, y la inserción en el código de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, las llamadas a la API se realizarán a través de la función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;, añadiendo el JSON con los datos de la petición y la cadena con el identificador del usuario. La función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; será la encargada de realizar todas las conexiones a la API, de cifrar los datos que se envíen a ésta y de descifrar los datos que devuelva.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
$responseJson = $apiconnection-&amp;gt;getApiData($userIdString, $requestJson)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explica cómo obtenerla cadena con el identificador de usuario y cómo construir el JSON de la petición&lt;br /&gt;
&lt;br /&gt;
=Petición de estadísticas=&lt;br /&gt;
Para que la petición de estadísticas se realice correctamente, es necesario enviar, dentro de la petición, su identificador de usuario y un JSON en el cual especificar las estadísticas que quiera obtener (campos de las estadísticas, filtros, fechas, etc.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Las peticiones a la API son limitadas&#039;&#039;&#039;. Una vez recibida la respuesta de estadísticas (a excepción de haber devuelto un error), deberá esperar un minuto para hacer la siguiente consulta.&lt;br /&gt;
&lt;br /&gt;
==Identificador de usuario==&lt;br /&gt;
Para realizar la petición de estadísticas a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, lo primero que debe hacer es obtener el identificador de usuario. Para ello diríjase a la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] del Panel de Mobeleader y pulse en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;. Una vez dentro del popup, copie la cadena perteneciente al campo &#039;&#039;&#039;Public Identifier&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Public_id.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JSON de petición de estadísticas==&lt;br /&gt;
Para obtener las estadísticas deseadas, es necesario crear un JSON en el que se especifique:&lt;br /&gt;
#El tipo de petición, especificado en el campo &#039;&#039;&#039;type&#039;&#039;&#039;: minería, desarrollo, etc.&lt;br /&gt;
#Los elementos de los cuales quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;require&#039;&#039;&#039;: por anuncio, por app, por sistema operativo, etc.&lt;br /&gt;
#Las estadísticas que quiera mostrar, especificadas en el campo &#039;&#039;&#039;fields&#039;&#039;&#039;: impresiones, descargas, hashes minados, etc.&lt;br /&gt;
#Los filtros o elementos concretos de los que quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;filters&#039;&#039;&#039;: determinadas apps, bases de datos, etc.&lt;br /&gt;
#Las fechas entre las que quiera delimitar la petición, especificadas en el campo &#039;&#039;&#039;dates&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Tipos==&lt;br /&gt;
Cada tipo de petición devolverá un tipo de estadísticas, en función del tipo de usuario que realice la petición, así como los permisos que le hayan sido otorgados. El tipo de petición se especificará en el campo &#039;&#039;&#039;type&#039;&#039;&#039; del JSON. Los diferentes valores para el tipo de petición son:&lt;br /&gt;
*&#039;&#039;&#039;mailing:&#039;&#039;&#039; Devuelve las estadísticas de los envíos de Mailing. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Mailing&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;marketing:&#039;&#039;&#039; Devuelve las estadísticas de los anuncios. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Agencias&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;miner:&#039;&#039;&#039; Devuelve las estadísticas minería. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Minería&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;developer:&#039;&#039;&#039; Devuelve las estadísticas de las aplicaciones. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Desarrolladores&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;nickcenter:&#039;&#039;&#039; Devuelve las estadísticas de los registros realizados a través de &#039;&#039;&#039;NickCenter&#039;&#039;&#039;. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;NickCenter&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;push:&#039;&#039;&#039; Devuelve las estadísticas generadas por las &#039;&#039;&#039;notificaciones Push&#039;&#039;&#039; de sus aplicaciones enviadas a través de nuestro sistema. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Notificaciones Push&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;linkTracking:&#039;&#039;&#039; Devuelve las estadísticas de descargas por URL tracking. El usuario ha de tener acceso a las sección &#039;&#039;&#039;Link Management&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
&lt;br /&gt;
==Mailing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;db:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Base de datos&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mail:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;envío&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;campaign:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dominio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;sender:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sender&#039;&#039;&#039; (enviador).&lt;br /&gt;
**&#039;&#039;&#039;emailAdress:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dirección de email&#039;&#039;&#039; desde la que se hayan realizado los envíos.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; emails enviados.&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones totales obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;unique_views:&#039;&#039;&#039; impresiones únicas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;leads:&#039;&#039;&#039; registros totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_leads:&#039;&#039;&#039; registros únicos.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; bajas ejecutadas.&lt;br /&gt;
**&#039;&#039;&#039;soft_bounces:&#039;&#039;&#039; soft bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;hard_bounces:&#039;&#039;&#039; hard bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;or:&#039;&#039;&#039; tasa de aperturas.&lt;br /&gt;
**&#039;&#039;&#039;cr:&#039;&#039;&#039; tasa de clicks.&lt;br /&gt;
**&#039;&#039;&#039;ur:&#039;&#039;&#039; tasa de bajas.&lt;br /&gt;
**&#039;&#039;&#039;br:&#039;&#039;&#039; tasa de bonces o rebotados.&lt;br /&gt;
**&#039;&#039;&#039;rr:&#039;&#039;&#039; tasa de reactividad.&lt;br /&gt;
**&#039;&#039;&#039;dr:&#039;&#039;&#039; tasa de entregabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;senders:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;senders&#039;&#039;&#039; o enviadores de los que se quieren obtener las estadísticas. Puede añadir los identificadores &#039;MailingCP&#039; y &#039;AmazonSES&#039;.&lt;br /&gt;
**&#039;&#039;&#039;dataBases:&#039;&#039;&#039; Array que especifica las bases de datos de las que se quieren obtener las estadísticas. Los identificadores de sus bases de datos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada base de datos en la [https://panel.mobeleader.com/index.php?sec=105 sección BBDD] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica las campañas de las que se quieren obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=135 sección Campañas] denuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica los dominios de los que se quieren obtener las estadísticas. Los identificadores de sus dominios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dominio en la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaignType:&#039;&#039;&#039; Valor que especifica el tipo de campaña de la que se quiere obtener las estadísticas. Puede elegir entre uno de los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos transaccionales.&lt;br /&gt;
***&#039;&#039;&#039;autoresponder:&#039;&#039;&#039; Para envíos automáticos.&lt;br /&gt;
***&#039;&#039;&#039;newsletter:&#039;&#039;&#039; Para envíos boletín.&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos de marketing.&lt;br /&gt;
**&#039;&#039;&#039;emails:&#039;&#039;&#039; Array que especifica las direcciones de email de las que se quieren obtener las estadísticas. Para obtener los identificadores de sus direcciones de email deberá dirigirse a la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel. Una vez ahí, pulse en el icono &#039;&#039;&#039;Ver emails&#039;&#039;&#039; en la columna &#039;&#039;&#039;Emails&#039;&#039;&#039;. Dentro del popup en el que se muestran las direcciones de email del dominio seleccionado, podrá obtener el identificador en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dirección de email.&lt;br /&gt;
**&#039;&#039;&#039;mailings:&#039;&#039;&#039; Array que especifica los envíos de los que se quieren obtener las estadísticas. Los identificadores de sus envíos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada envío en la [https://panel.mobeleader.com/index.php?sec=134 sección Envíos Transaccionales] para  los envíos transaccionales, en la [https://panel.mobeleader.com/index.php?sec=148 sección Envíos Auto-Responder] para  los envíos autoresponder, en la [https://panel.mobeleader.com/index.php?sec=139 sección Envíos Boletín] para  los envíos boletín y en la [https://panel.mobeleader.com/index.php?sec=138 sección Envíos Marketing] para  los envíos de marketing de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;campaign&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;unique_views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unique_leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;,&amp;quot;soft_bounces&amp;quot;,&amp;quot;hard_bounces&amp;quot;,&amp;quot;or&amp;quot;,&amp;quot;cr&amp;quot;,&amp;quot;ur&amp;quot;,&amp;quot;br&amp;quot;,&amp;quot;rr&amp;quot;,&amp;quot;dr&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;senders&amp;quot;:[&amp;quot;MailingCP&amp;quot;],&lt;br /&gt;
          &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
          &amp;quot;campaignType&amp;quot;:&amp;quot;newsletter&amp;quot;,&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[3,25,27],&lt;br /&gt;
          &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
          &amp;quot;mailings&amp;quot;:[324,17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-02&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por envío con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;mail&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
           &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
           &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
           &amp;quot;campaignType&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
           &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
           &amp;quot;mailings&amp;quot;:[17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Marketing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;ad:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Anuncio&#039;&#039;&#039; o &#039;&#039;&#039;Campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Web&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;creativity:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Creatividad&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;ctr:&#039;&#039;&#039; CTR.&lt;br /&gt;
**&#039;&#039;&#039;validated_leads:&#039;&#039;&#039; registros validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_leads:&#039;&#039;&#039; registros pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_leads:&#039;&#039;&#039; registros totales.&lt;br /&gt;
**&#039;&#039;&#039;rejected_leads:&#039;&#039;&#039; registros rechazados.&lt;br /&gt;
**&#039;&#039;&#039;validated_expenditures:&#039;&#039;&#039; gastos validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_expenditures:&#039;&#039;&#039; gastos pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_expenditures:&#039;&#039;&#039; gastos totales.&lt;br /&gt;
**&#039;&#039;&#039;validated_profits:&#039;&#039;&#039; beneficios validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_profits:&#039;&#039;&#039; beneficios pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_profits:&#039;&#039;&#039; beneficios totales.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica los anuncios o campañas de las que se quiere obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=9 sección Mis Anuncios] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica las webs de las que se quiere obtener las estadísticas. Los identificadores de sus webs los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada web en la [https://panel.mobeleader.com/index.php?sec=17 sección Mis Webs] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;creativities:&#039;&#039;&#039; Array que especifica las creatividades de las que se quiere obtener las estadísticas. Los identificadores de sus creatividades los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada creatividad en la [https://panel.mobeleader.com/index.php?sec=173 sección Mis Creatividades] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;,&amp;quot;creativity&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;ctr&amp;quot;,&amp;quot;validated_leads&amp;quot;,&amp;quot;pending_leads&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;rejected_leads&amp;quot;,&amp;quot;validated_expenditures&amp;quot;,&amp;quot;pending_expenditures&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;validated_profits&amp;quot;,&amp;quot;pending_profits&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3,125,408],&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[95,512],&lt;br /&gt;
          &amp;quot;creativities&amp;quot;:[27,135]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-11&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña y web, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3],&amp;quot;domains&amp;quot;:[95,512]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Miner==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;worker:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;worker&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;wallet:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;wallet&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;workerType:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;tipo de worker&#039;&#039;&#039; (app, web, link, etc).&lt;br /&gt;
**&#039;&#039;&#039;coin:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;divisa&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;payout:&#039;&#039;&#039; pago estimado.&lt;br /&gt;
**&#039;&#039;&#039;hashes:&#039;&#039;&#039; hashes minados.&lt;br /&gt;
**&#039;&#039;&#039;shares:&#039;&#039;&#039; hashes validados.&lt;br /&gt;
**&#039;&#039;&#039;hashrate:&#039;&#039;&#039; hashes por segundo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;workers:&#039;&#039;&#039; Array que especifica los workers de los que se quiere obtener las estadísticas. Los identificadores de sus workers los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada workers en la [https://panel.mobeleader.com/index.php?sec=5 sección Mis Workers] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;wallets:&#039;&#039;&#039; Array que especifica los wallets de los que se quiere obtener las estadísticas. Los identificadores de sus wallets los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada wallet en la [https://panel.mobeleader.com/index.php?sec=1 sección Mis Wallets] denuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;coins:&#039;&#039;&#039; Array que especifica las divisas de las que se quiere obtener las estadísticas. Puede añadir las siguientes divisas:&lt;br /&gt;
***&#039;&#039;&#039;bcn:&#039;&#039;&#039; Bytecoin.&lt;br /&gt;
***&#039;&#039;&#039;xmr:&#039;&#039;&#039; Monero.&lt;br /&gt;
**&#039;&#039;&#039;workerTypes:&#039;&#039;&#039; Array que especifica los diferentes tipos de workers de los que se quiere obtener las estadísticas. Puede añadir los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;app:&#039;&#039;&#039; aplicación.&lt;br /&gt;
***&#039;&#039;&#039;web:&#039;&#039;&#039; web.&lt;br /&gt;
***&#039;&#039;&#039;wallet:&#039;&#039;&#039; wallet.&lt;br /&gt;
***&#039;&#039;&#039;link:&#039;&#039;&#039; link de redireccionamiento.&lt;br /&gt;
***&#039;&#039;&#039;captcha:&#039;&#039;&#039; captcha de validación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;coin&amp;quot;,&amp;quot;workerType&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;payout&amp;quot;,&amp;quot;hashes&amp;quot;,&amp;quot;shares&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;wallets&amp;quot;:[1,5,6],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;link&amp;quot;,&amp;quot;captcha&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;bcn&amp;quot;,&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-30&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por worker y wallet, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;hashes&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Developer==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;place:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;espacio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;osVersion:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;versión del sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;brand:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;marca del terminal&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks realizados.&lt;br /&gt;
**&#039;&#039;&#039;downloads:&#039;&#039;&#039; descargas obtenidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;oss:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;places:&#039;&#039;&#039; Array que especifica los espacios de los que se quiere obtener las estadísticas. Los identificadores de sus espacios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada espacio en la [https://panel.mobeleader.com/index.php?sec=34 sección Mis Espacios] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;app&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;downloads&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;oss&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por país con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;country&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NickCenter==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;. Este campo solo podrá ser requerido por aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;users:&#039;&#039;&#039; Usuarios dados de alta en cada aplicación. Solo contabiliza el primer registro en NickCenter, no contabiliza otro registro del mismo usuario en otras aplicaciones.&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; Todos los usuarios registrados en base dentro de las fechas seleccionadas, incluidos los que se hayan dado de baja.&lt;br /&gt;
**&#039;&#039;&#039;registered:&#039;&#039;&#039; Usuarios que están registrados en la base de datos.&lt;br /&gt;
**&#039;&#039;&#039;valid:&#039;&#039;&#039; Usuarios que están registrados en la base de datos, con todos los campos requeridos completados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; Usuarios que estuvieron registrados en la base de datos y que se dieron de baja dentro de las fechas seleccionadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] de nuestro panel. Este filtro solo ser á válido para aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo y fecha, con todos los filtros, excepto links:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;,&amp;quot;registered&amp;quot;,&amp;quot;valid&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;US&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;],&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Push==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse, exceptuando los campos &#039;&#039;&#039;notification&#039;&#039;&#039; y &#039;&#039;&#039;app&#039;&#039;&#039; (solo podrá seleccionar uno de estos dos campos en una consulta). Si selecciona el campo &#039;&#039;&#039;notification&#039;&#039;&#039;, deberá establecer una app en el campo &#039;&#039;&#039;apps&#039;&#039;&#039; de los filtros. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;notification:&#039;&#039;&#039; Devolverá las estadísticas por cada &#039;&#039;&#039;notificación Push&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;estado&#039;&#039;&#039; de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; el total de los mensajes enviados de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; mensajes enviados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;failed:&#039;&#039;&#039; mensajes enviados y que no han llegado al terminal de destino.&lt;br /&gt;
**&#039;&#039;&#039;erased:&#039;&#039;&#039; mensajes borrados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Especifique una única aplicación en caso de haber seleccionado el campo &#039;&#039;&#039;notification&#039;&#039;&#039; en los filtros. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Array que especifica los estados de las notificaciones de los que se quiere obtener las estadísticas.&lt;br /&gt;
***&#039;&#039;&#039;ready:&#039;&#039;&#039; indica que la notificación ha sido creada correctamente y está en espera de ser verificada.&lt;br /&gt;
***&#039;&#039;&#039;starting:&#039;&#039;&#039;  indica que la notificación ha sido verificada y va ser enviada.&lt;br /&gt;
***&#039;&#039;&#039;sending:&#039;&#039;&#039; indica que la notificación está siendo enviada.&lt;br /&gt;
***&#039;&#039;&#039;finished:&#039;&#039;&#039; indica que el envío de la notificación ha finalizado.&lt;br /&gt;
***&#039;&#039;&#039;stoped:&#039;&#039;&#039; indica que el envío de la notificación ha sido detenido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, estado y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;status&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;,&amp;quot;erased&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;FR&amp;quot;],&lt;br /&gt;
          &amp;quot;estados&amp;quot;:[&amp;quot;sending&amp;quot;,&amp;quot;finished&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por notificación y estado, con algunos de los campos y filtros (en el filtro de &#039;&#039;&#039;apps&#039;&#039;&#039; solo establece una aplicación):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;notification&amp;quot;,&amp;quot;status&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Link Tracking==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. No puede combinarse el campo &#039;&#039;&#039;link&#039;&#039;&#039; con los campos &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;, por lo que si decide incluir el campo &#039;&#039;&#039;link&#039;&#039;&#039; no se mostrarán las estadísticas por &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;field:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;value:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;valor&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; Array que especifica los campos de los que se quiere obtener las estadísticas. Los nombres de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;values:&#039;&#039;&#039; Array que especifica los valores de los campos de los que se quiere obtener las estadísticas. Los valores de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, campo, valor y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;field&amp;quot;,&amp;quot;value&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;fields&amp;quot;:[&amp;quot;campo1&amp;quot;,&amp;quot;campo2&amp;quot;],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;,&amp;quot;valor2&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resultado de las estadísticas=&lt;br /&gt;
Una vez realizada la conexión con la API correctamente, ésta devolverá una respuesta en formato JSON. La respuesta puede contener:&lt;br /&gt;
*Un resultado sin estadísticas.&lt;br /&gt;
*Las estadísticas resultantes de la petición.&lt;br /&gt;
*Un mensaje de error.&lt;br /&gt;
==Resultado vacío==&lt;br /&gt;
Si la petición se ha realizado correctamente, pero la API no ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el siguiente resultado:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;result&amp;quot;:&amp;quot;No result for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resultado con estadísticas==&lt;br /&gt;
Si la petición se ha realizado correctamente, y la API ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el resultado de las estadísticas desglosado por campo, en función de los valores indicados en los campos &#039;&#039;&#039;require&#039;&#039;&#039; y &#039;&#039;&#039;fields&#039;&#039;&#039;. Si además se ha establecido el valor &#039;date&#039; en el campo &#039;&#039;&#039;require&#039;&#039;&#039;, el resultado vendrá desglosado por campo y fecha.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de estadísticas sin fechas:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;0&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;20&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;1&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;23&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;18&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de las mismas estadísticas por fecha:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;2018-10-10&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;2&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;7&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;10&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;2018-10-03&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;4&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;12&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;11&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;9&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;date&amp;quot;:2,&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Error en la petición de estadísticas==&lt;br /&gt;
Si la petición no se ha realizado correctamente, la API devolverá un mensaje, dentro del campo &#039;&#039;&#039;error&#039;&#039;&#039;, indicando la causa de error en la petición. A continuación se muestra los diferentes errores que la API puede devolver:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address. Please ask your account manager for a valid IP.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la IP no está registrada en el sistema de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address for the user key sent. Please check and set &#039;user&#039; parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la dirección IP desde la que se realiza la petición es correcta, pero no está registrada para el usuario introducido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request user found. Please set user parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No data post field found. Please set data post field.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request data found. Please fill your request with proper parameters.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; está vacío.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request type found. Please set type parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong type set, &#039;type_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong user set, &#039;user_key_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request fields found. Please set the fields you want to check.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User has no permission for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario introducido no tiene permisos para realizar ese tipo de consulta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User must wait at least 1 minute for the next request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario ha de esperar al menos un minuto desde la última consulta hasta la siguiente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not found or not properly set. Please set require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not properly set, &#039;require_value_for_error_test&#039; is not a valid require. Please set a valid require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;require&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Some required fields are not correct. &#039;fields_value_for_error_test&#039; is not a valid field. Please set the required fields properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
==Error en las claves RSA==&lt;br /&gt;
Si las claves RSA no han sido configuradas correctamente, el sistema mostrará los siguientes errores:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000d - Missing public RSA Key for user key &#039;my_user_key&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el sistema no ha podido verificar las claves RSA del usuario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000c - Empty or invalid user key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; no se ha enviado correctamente.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2758</id>
		<title>Documentación API Analytics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2758"/>
		<updated>2019-06-07T10:54:16Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Developer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
La &#039;&#039;&#039;API Analytics&#039;&#039;&#039; es la plataforma a través de la cual obtener las estadísticas de un usuario. Los datos obtenidos corresponderán a los datos que se obtendrían en las secciones de Analytics de nuestro panel. Las estadísticas serán devueltas en formato JSON.&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar la &#039;&#039;&#039;API Analytics&#039;&#039;&#039; y poder obtener tanto el identificador de usuario como las claves RSA, deberá solicitarlo a su administrador.&lt;br /&gt;
&lt;br /&gt;
En esta documentación se explicará cómo conectar con la API y cómo preparar los datos para realizar la petición de las estadísticas. Los ejemplos ofrecidos están en lenguaje PHP.&lt;br /&gt;
&lt;br /&gt;
=Registro de usuario=&lt;br /&gt;
Al solicitar el acceso a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, es necesario reportar las direcciones IP desde las que se realizarán las peticiones de estadísticas. Así mismo, el usuario deberá actualizar el registro de direcciones IP cuando éstas cambien. El sistema registrará las direcciones IP junto al identificador del usuario, por lo que no permitirá al usuario realizar peticiones si éste no está asociado a las direcciones IP registradas.&lt;br /&gt;
&lt;br /&gt;
=Conexión con la API=&lt;br /&gt;
La conexión con la API para realizar la petición de estadísticas se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa a la API. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa a la API==&lt;br /&gt;
Si desea realizar la petición a la API sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, deberá conectarse mediante POST a la siguiente URL: &#039;&#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;&#039;, añadiendo los parámetros &#039;&#039;&#039;data&#039;&#039;&#039; (JSON con los datos de la petición) y &#039;&#039;&#039;user&#039;&#039;&#039; (string o cadena con el identificador del usuario). En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explicará como obtener el identificador de usuario y como construir el JSON de la petición.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode($requestJson).&#039;&amp;amp;user=&#039;.$userIdString);&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en su carpeta vendor, lo primero que deberá hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras modificar la ruta, para poder instanciar la clase, será necesario obtener la clave &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Boton_rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pulsando en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;, se abrirá un popup en el que podrá obtener las claves RSA.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ha de copiar la cadena perteneciente al campo &#039;&#039;&#039;Private RSA key&#039;&#039;&#039;. Es necesario copiar la cadena completa, incluyendo -----BEGIN RSA PRIVATE KEY----- y -----END RSA PRIVATE KEY-----. Se añadirá la cadena como parámetro (string) del constructor de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;,  tal y como se muestra en el ejemplo siguiente:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez realizadas correctamente la instalación de la librería, la modificación de la ruta de acceso a ésta, y la inserción en el código de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, las llamadas a la API se realizarán a través de la función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;, añadiendo el JSON con los datos de la petición y la cadena con el identificador del usuario. La función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; será la encargada de realizar todas las conexiones a la API, de cifrar los datos que se envíen a ésta y de descifrar los datos que devuelva.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
$responseJson = $apiconnection-&amp;gt;getApiData($userIdString, $requestJson)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explica cómo obtenerla cadena con el identificador de usuario y cómo construir el JSON de la petición&lt;br /&gt;
&lt;br /&gt;
=Petición de estadísticas=&lt;br /&gt;
Para que la petición de estadísticas se realice correctamente, es necesario enviar, dentro de la petición, su identificador de usuario y un JSON en el cual especificar las estadísticas que quiera obtener (campos de las estadísticas, filtros, fechas, etc.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Las peticiones a la API son limitadas&#039;&#039;&#039;. Una vez recibida la respuesta de estadísticas (a excepción de haber devuelto un error), deberá esperar un minuto para hacer la siguiente consulta.&lt;br /&gt;
&lt;br /&gt;
==Identificador de usuario==&lt;br /&gt;
Para realizar la petición de estadísticas a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, lo primero que debe hacer es obtener el identificador de usuario. Para ello diríjase a la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] del Panel de Mobeleader y pulse en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;. Una vez dentro del popup, copie la cadena perteneciente al campo &#039;&#039;&#039;Public Identifier&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Public_id.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JSON de petición de estadísticas==&lt;br /&gt;
Para obtener las estadísticas deseadas, es necesario crear un JSON en el que se especifique:&lt;br /&gt;
#El tipo de petición, especificado en el campo &#039;&#039;&#039;type&#039;&#039;&#039;: minería, desarrollo, etc.&lt;br /&gt;
#Los elementos de los cuales quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;require&#039;&#039;&#039;: por anuncio, por app, por sistema operativo, etc.&lt;br /&gt;
#Las estadísticas que quiera mostrar, especificadas en el campo &#039;&#039;&#039;fields&#039;&#039;&#039;: impresiones, descargas, hashes minados, etc.&lt;br /&gt;
#Los filtros o elementos concretos de los que quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;filters&#039;&#039;&#039;: determinadas apps, bases de datos, etc.&lt;br /&gt;
#Las fechas entre las que quiera delimitar la petición, especificadas en el campo &#039;&#039;&#039;dates&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Tipos==&lt;br /&gt;
Cada tipo de petición devolverá un tipo de estadísticas, en función del tipo de usuario que realice la petición, así como los permisos que le hayan sido otorgados. El tipo de petición se especificará en el campo &#039;&#039;&#039;type&#039;&#039;&#039; del JSON. Los diferentes valores para el tipo de petición son:&lt;br /&gt;
*&#039;&#039;&#039;mailing:&#039;&#039;&#039; Devuelve las estadísticas de los envíos de Mailing. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Mailing&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;marketing:&#039;&#039;&#039; Devuelve las estadísticas de los anuncios. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Agencias&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;miner:&#039;&#039;&#039; Devuelve las estadísticas minería. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Minería&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;developer:&#039;&#039;&#039; Devuelve las estadísticas de las aplicaciones. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Desarrolladores&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;nickcenter:&#039;&#039;&#039; Devuelve las estadísticas de los registros realizados a través de &#039;&#039;&#039;NickCenter&#039;&#039;&#039;. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;NickCenter&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;push:&#039;&#039;&#039; Devuelve las estadísticas generadas por las &#039;&#039;&#039;notificaciones Push&#039;&#039;&#039; de sus aplicaciones enviadas a través de nuestro sistema. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Notificaciones Push&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;linkTracking:&#039;&#039;&#039; Devuelve las estadísticas de descargas por URL tracking. El usuario ha de tener acceso a las sección &#039;&#039;&#039;Link Management&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
&lt;br /&gt;
==Mailing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;db:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Base de datos&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mail:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;envío&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;campaign:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dominio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;sender:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sender&#039;&#039;&#039; (enviador).&lt;br /&gt;
**&#039;&#039;&#039;emailAdress:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dirección de email&#039;&#039;&#039; desde la que se hayan realizado los envíos.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; emails enviados.&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones totales obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;unique_views:&#039;&#039;&#039; impresiones únicas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;leads:&#039;&#039;&#039; registros totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_leads:&#039;&#039;&#039; registros únicos.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; bajas ejecutadas.&lt;br /&gt;
**&#039;&#039;&#039;soft_bounces:&#039;&#039;&#039; soft bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;hard_bounces:&#039;&#039;&#039; hard bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;or:&#039;&#039;&#039; tasa de aperturas.&lt;br /&gt;
**&#039;&#039;&#039;cr:&#039;&#039;&#039; tasa de clicks.&lt;br /&gt;
**&#039;&#039;&#039;ur:&#039;&#039;&#039; tasa de bajas.&lt;br /&gt;
**&#039;&#039;&#039;br:&#039;&#039;&#039; tasa de bonces o rebotados.&lt;br /&gt;
**&#039;&#039;&#039;rr:&#039;&#039;&#039; tasa de reactividad.&lt;br /&gt;
**&#039;&#039;&#039;dr:&#039;&#039;&#039; tasa de entregabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;senders:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;senders&#039;&#039;&#039; o enviadores de los que se quieren obtener las estadísticas. Puede añadir los identificadores &#039;MailingCP&#039; y &#039;AmazonSES&#039;.&lt;br /&gt;
**&#039;&#039;&#039;dataBases:&#039;&#039;&#039; Array que especifica las bases de datos de las que se quieren obtener las estadísticas. Los identificadores de sus bases de datos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada base de datos en la [https://panel.mobeleader.com/index.php?sec=105 sección BBDD] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica las campañas de las que se quieren obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=135 sección Campañas] denuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica los dominios de los que se quieren obtener las estadísticas. Los identificadores de sus dominios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dominio en la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaignType:&#039;&#039;&#039; Valor que especifica el tipo de campaña de la que se quiere obtener las estadísticas. Puede elegir entre uno de los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos transaccionales.&lt;br /&gt;
***&#039;&#039;&#039;autoresponder:&#039;&#039;&#039; Para envíos automáticos.&lt;br /&gt;
***&#039;&#039;&#039;newsletter:&#039;&#039;&#039; Para envíos boletín.&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos de marketing.&lt;br /&gt;
**&#039;&#039;&#039;emails:&#039;&#039;&#039; Array que especifica las direcciones de email de las que se quieren obtener las estadísticas. Para obtener los identificadores de sus direcciones de email deberá dirigirse a la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel. Una vez ahí, pulse en el icono &#039;&#039;&#039;Ver emails&#039;&#039;&#039; en la columna &#039;&#039;&#039;Emails&#039;&#039;&#039;. Dentro del popup en el que se muestran las direcciones de email del dominio seleccionado, podrá obtener el identificador en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dirección de email.&lt;br /&gt;
**&#039;&#039;&#039;mailings:&#039;&#039;&#039; Array que especifica los envíos de los que se quieren obtener las estadísticas. Los identificadores de sus envíos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada envío en la [https://panel.mobeleader.com/index.php?sec=134 sección Envíos Transaccionales] para  los envíos transaccionales, en la [https://panel.mobeleader.com/index.php?sec=148 sección Envíos Auto-Responder] para  los envíos autoresponder, en la [https://panel.mobeleader.com/index.php?sec=139 sección Envíos Boletín] para  los envíos boletín y en la [https://panel.mobeleader.com/index.php?sec=138 sección Envíos Marketing] para  los envíos de marketing de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;campaign&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;unique_views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unique_leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;,&amp;quot;soft_bounces&amp;quot;,&amp;quot;hard_bounces&amp;quot;,&amp;quot;or&amp;quot;,&amp;quot;cr&amp;quot;,&amp;quot;ur&amp;quot;,&amp;quot;br&amp;quot;,&amp;quot;rr&amp;quot;,&amp;quot;dr&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;senders&amp;quot;:[&amp;quot;MailingCP&amp;quot;],&lt;br /&gt;
          &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
          &amp;quot;campaignType&amp;quot;:&amp;quot;newsletter&amp;quot;,&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[3,25,27],&lt;br /&gt;
          &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
          &amp;quot;mailings&amp;quot;:[324,17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-02&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por envío con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;mail&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
           &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
           &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
           &amp;quot;campaignType&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
           &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
           &amp;quot;mailings&amp;quot;:[17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Marketing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;ad:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Anuncio&#039;&#039;&#039; o &#039;&#039;&#039;Campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Web&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;creativity:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Creatividad&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;ctr:&#039;&#039;&#039; CTR.&lt;br /&gt;
**&#039;&#039;&#039;validated_leads:&#039;&#039;&#039; registros validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_leads:&#039;&#039;&#039; registros pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_leads:&#039;&#039;&#039; registros totales.&lt;br /&gt;
**&#039;&#039;&#039;rejected_leads:&#039;&#039;&#039; registros rechazados.&lt;br /&gt;
**&#039;&#039;&#039;validated_expenditures:&#039;&#039;&#039; gastos validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_expenditures:&#039;&#039;&#039; gastos pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_expenditures:&#039;&#039;&#039; gastos totales.&lt;br /&gt;
**&#039;&#039;&#039;validated_profits:&#039;&#039;&#039; beneficios validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_profits:&#039;&#039;&#039; beneficios pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_profits:&#039;&#039;&#039; beneficios totales.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica los anuncios o campañas de las que se quiere obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=9 sección Mis Anuncios] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica las webs de las que se quiere obtener las estadísticas. Los identificadores de sus webs los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada web en la [https://panel.mobeleader.com/index.php?sec=17 sección Mis Webs] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;creativities:&#039;&#039;&#039; Array que especifica las creatividades de las que se quiere obtener las estadísticas. Los identificadores de sus creatividades los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada creatividad en la [https://panel.mobeleader.com/index.php?sec=173 sección Mis Creatividades] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;,&amp;quot;creativity&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;ctr&amp;quot;,&amp;quot;validated_leads&amp;quot;,&amp;quot;pending_leads&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;rejected_leads&amp;quot;,&amp;quot;validated_expenditures&amp;quot;,&amp;quot;pending_expenditures&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;validated_profits&amp;quot;,&amp;quot;pending_profits&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3,125,408],&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[95,512],&lt;br /&gt;
          &amp;quot;creativities&amp;quot;:[27,135]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-11&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña y web, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3],&amp;quot;domains&amp;quot;:[95,512]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Miner==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;worker:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;worker&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;wallet:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;wallet&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;workerType:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;tipo de worker&#039;&#039;&#039; (app, web, link, etc).&lt;br /&gt;
**&#039;&#039;&#039;coin:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;divisa&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;payout:&#039;&#039;&#039; pago estimado.&lt;br /&gt;
**&#039;&#039;&#039;hashes:&#039;&#039;&#039; hashes minados.&lt;br /&gt;
**&#039;&#039;&#039;shares:&#039;&#039;&#039; hashes validados.&lt;br /&gt;
**&#039;&#039;&#039;hashrate:&#039;&#039;&#039; hashes por segundo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;workers:&#039;&#039;&#039; Array que especifica los workers de los que se quiere obtener las estadísticas. Los identificadores de sus workers los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada workers en la [https://panel.mobeleader.com/index.php?sec=5 sección Mis Workers] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;wallets:&#039;&#039;&#039; Array que especifica los wallets de los que se quiere obtener las estadísticas. Los identificadores de sus wallets los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada wallet en la [https://panel.mobeleader.com/index.php?sec=1 sección Mis Wallets] denuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;coins:&#039;&#039;&#039; Array que especifica las divisas de las que se quiere obtener las estadísticas. Puede añadir las siguientes divisas:&lt;br /&gt;
***&#039;&#039;&#039;bcn:&#039;&#039;&#039; Bytecoin.&lt;br /&gt;
***&#039;&#039;&#039;xmr:&#039;&#039;&#039; Monero.&lt;br /&gt;
**&#039;&#039;&#039;workerTypes:&#039;&#039;&#039; Array que especifica los diferentes tipos de workers de los que se quiere obtener las estadísticas. Puede añadir los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;app:&#039;&#039;&#039; aplicación.&lt;br /&gt;
***&#039;&#039;&#039;web:&#039;&#039;&#039; web.&lt;br /&gt;
***&#039;&#039;&#039;wallet:&#039;&#039;&#039; wallet.&lt;br /&gt;
***&#039;&#039;&#039;link:&#039;&#039;&#039; link de redireccionamiento.&lt;br /&gt;
***&#039;&#039;&#039;captcha:&#039;&#039;&#039; captcha de validación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;coin&amp;quot;,&amp;quot;workerType&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;payout&amp;quot;,&amp;quot;hashes&amp;quot;,&amp;quot;shares&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;wallets&amp;quot;:[1,5,6],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;link&amp;quot;,&amp;quot;captcha&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;bcn&amp;quot;,&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-30&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por worker y wallet, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;hashes&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Developer==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;place:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;espacio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;osVersion:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;versión del sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;brand:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;marca del terminal&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks realizados.&lt;br /&gt;
**&#039;&#039;&#039;downloads:&#039;&#039;&#039; descargas obtenidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;oss:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;places:&#039;&#039;&#039; Array que especifica los espacios de los que se quiere obtener las estadísticas. Los identificadores de sus espacios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada espacio en la [https://panel.mobeleader.com/index.php?sec=34 sección Mis Espacios] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;app&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;downloads&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;oss&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por país con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;country&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NickCenter==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;. Este campo solo podrá ser requerido por aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;users:&#039;&#039;&#039; Usuarios dados de alta en cada aplicación. Solo contabiliza el primer registro en NickCenter, no contabiliza otro registro del mismo usuario en otras aplicaciones.&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; Todos los usuarios registrados en base dentro de las fechas seleccionadas, incluidos los que se hayan dado de baja.&lt;br /&gt;
**&#039;&#039;&#039;registered:&#039;&#039;&#039; Usuarios que están registrados en la base de datos.&lt;br /&gt;
**&#039;&#039;&#039;valid:&#039;&#039;&#039; Usuarios que están registrados en la base de datos, con todos los campos requeridos completados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; Usuarios que estuvieron registrados en la base de datos y que se dieron de baja dentro de las fechas seleccionadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader. Este filtro solo ser á válido para aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo y fecha, con todos los filtros, excepto links:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;,&amp;quot;registered&amp;quot;,&amp;quot;valid&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;US&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;],&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Push==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse, exceptuando los campos &#039;&#039;&#039;notification&#039;&#039;&#039; y &#039;&#039;&#039;app&#039;&#039;&#039; (solo podrá seleccionar uno de estos dos campos en una consulta). Si selecciona el campo &#039;&#039;&#039;notification&#039;&#039;&#039;, deberá establecer una app en el campo &#039;&#039;&#039;apps&#039;&#039;&#039; de los filtros. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;notification:&#039;&#039;&#039; Devolverá las estadísticas por cada &#039;&#039;&#039;notificación Push&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;estado&#039;&#039;&#039; de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; el total de los mensajes enviados de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; mensajes enviados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;failed:&#039;&#039;&#039; mensajes enviados y que no han llegado al terminal de destino.&lt;br /&gt;
**&#039;&#039;&#039;erased:&#039;&#039;&#039; mensajes borrados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Especifique una única aplicación en caso de haber seleccionado el campo &#039;&#039;&#039;notification&#039;&#039;&#039; en los filtros. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Array que especifica los estados de las notificaciones de los que se quiere obtener las estadísticas.&lt;br /&gt;
***&#039;&#039;&#039;ready:&#039;&#039;&#039; indica que la notificación ha sido creada correctamente y está en espera de ser verificada.&lt;br /&gt;
***&#039;&#039;&#039;starting:&#039;&#039;&#039;  indica que la notificación ha sido verificada y va ser enviada.&lt;br /&gt;
***&#039;&#039;&#039;sending:&#039;&#039;&#039; indica que la notificación está siendo enviada.&lt;br /&gt;
***&#039;&#039;&#039;finished:&#039;&#039;&#039; indica que el envío de la notificación ha finalizado.&lt;br /&gt;
***&#039;&#039;&#039;stoped:&#039;&#039;&#039; indica que el envío de la notificación ha sido detenido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, estado y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;status&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;,&amp;quot;erased&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;FR&amp;quot;],&lt;br /&gt;
          &amp;quot;estados&amp;quot;:[&amp;quot;sending&amp;quot;,&amp;quot;finished&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por notificación y estado, con algunos de los campos y filtros (en el filtro de &#039;&#039;&#039;apps&#039;&#039;&#039; solo establece una aplicación):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;notification&amp;quot;,&amp;quot;status&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Link Tracking==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. No puede combinarse el campo &#039;&#039;&#039;link&#039;&#039;&#039; con los campos &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;, por lo que si decide incluir el campo &#039;&#039;&#039;link&#039;&#039;&#039; no se mostrarán las estadísticas por &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;field:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;value:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;valor&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; Array que especifica los campos de los que se quiere obtener las estadísticas. Los nombres de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;values:&#039;&#039;&#039; Array que especifica los valores de los campos de los que se quiere obtener las estadísticas. Los valores de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, campo, valor y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;field&amp;quot;,&amp;quot;value&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;fields&amp;quot;:[&amp;quot;campo1&amp;quot;,&amp;quot;campo2&amp;quot;],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;,&amp;quot;valor2&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resultado de las estadísticas=&lt;br /&gt;
Una vez realizada la conexión con la API correctamente, ésta devolverá una respuesta en formato JSON. La respuesta puede contener:&lt;br /&gt;
*Un resultado sin estadísticas.&lt;br /&gt;
*Las estadísticas resultantes de la petición.&lt;br /&gt;
*Un mensaje de error.&lt;br /&gt;
==Resultado vacío==&lt;br /&gt;
Si la petición se ha realizado correctamente, pero la API no ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el siguiente resultado:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;result&amp;quot;:&amp;quot;No result for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resultado con estadísticas==&lt;br /&gt;
Si la petición se ha realizado correctamente, y la API ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el resultado de las estadísticas desglosado por campo, en función de los valores indicados en los campos &#039;&#039;&#039;require&#039;&#039;&#039; y &#039;&#039;&#039;fields&#039;&#039;&#039;. Si además se ha establecido el valor &#039;date&#039; en el campo &#039;&#039;&#039;require&#039;&#039;&#039;, el resultado vendrá desglosado por campo y fecha.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de estadísticas sin fechas:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;0&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;20&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;1&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;23&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;18&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de las mismas estadísticas por fecha:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;2018-10-10&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;2&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;7&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;10&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;2018-10-03&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;4&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;12&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;11&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;9&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;date&amp;quot;:2,&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Error en la petición de estadísticas==&lt;br /&gt;
Si la petición no se ha realizado correctamente, la API devolverá un mensaje, dentro del campo &#039;&#039;&#039;error&#039;&#039;&#039;, indicando la causa de error en la petición. A continuación se muestra los diferentes errores que la API puede devolver:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address. Please ask your account manager for a valid IP.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la IP no está registrada en el sistema de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address for the user key sent. Please check and set &#039;user&#039; parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la dirección IP desde la que se realiza la petición es correcta, pero no está registrada para el usuario introducido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request user found. Please set user parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No data post field found. Please set data post field.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request data found. Please fill your request with proper parameters.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; está vacío.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request type found. Please set type parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong type set, &#039;type_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong user set, &#039;user_key_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request fields found. Please set the fields you want to check.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User has no permission for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario introducido no tiene permisos para realizar ese tipo de consulta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User must wait at least 1 minute for the next request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario ha de esperar al menos un minuto desde la última consulta hasta la siguiente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not found or not properly set. Please set require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not properly set, &#039;require_value_for_error_test&#039; is not a valid require. Please set a valid require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;require&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Some required fields are not correct. &#039;fields_value_for_error_test&#039; is not a valid field. Please set the required fields properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
==Error en las claves RSA==&lt;br /&gt;
Si las claves RSA no han sido configuradas correctamente, el sistema mostrará los siguientes errores:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000d - Missing public RSA Key for user key &#039;my_user_key&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el sistema no ha podido verificar las claves RSA del usuario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000c - Empty or invalid user key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; no se ha enviado correctamente.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2757</id>
		<title>Documentación API Analytics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2757"/>
		<updated>2019-06-07T10:53:46Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Developer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
La &#039;&#039;&#039;API Analytics&#039;&#039;&#039; es la plataforma a través de la cual obtener las estadísticas de un usuario. Los datos obtenidos corresponderán a los datos que se obtendrían en las secciones de Analytics de nuestro panel. Las estadísticas serán devueltas en formato JSON.&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar la &#039;&#039;&#039;API Analytics&#039;&#039;&#039; y poder obtener tanto el identificador de usuario como las claves RSA, deberá solicitarlo a su administrador.&lt;br /&gt;
&lt;br /&gt;
En esta documentación se explicará cómo conectar con la API y cómo preparar los datos para realizar la petición de las estadísticas. Los ejemplos ofrecidos están en lenguaje PHP.&lt;br /&gt;
&lt;br /&gt;
=Registro de usuario=&lt;br /&gt;
Al solicitar el acceso a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, es necesario reportar las direcciones IP desde las que se realizarán las peticiones de estadísticas. Así mismo, el usuario deberá actualizar el registro de direcciones IP cuando éstas cambien. El sistema registrará las direcciones IP junto al identificador del usuario, por lo que no permitirá al usuario realizar peticiones si éste no está asociado a las direcciones IP registradas.&lt;br /&gt;
&lt;br /&gt;
=Conexión con la API=&lt;br /&gt;
La conexión con la API para realizar la petición de estadísticas se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa a la API. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa a la API==&lt;br /&gt;
Si desea realizar la petición a la API sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, deberá conectarse mediante POST a la siguiente URL: &#039;&#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;&#039;, añadiendo los parámetros &#039;&#039;&#039;data&#039;&#039;&#039; (JSON con los datos de la petición) y &#039;&#039;&#039;user&#039;&#039;&#039; (string o cadena con el identificador del usuario). En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explicará como obtener el identificador de usuario y como construir el JSON de la petición.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode($requestJson).&#039;&amp;amp;user=&#039;.$userIdString);&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en su carpeta vendor, lo primero que deberá hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras modificar la ruta, para poder instanciar la clase, será necesario obtener la clave &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Boton_rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pulsando en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;, se abrirá un popup en el que podrá obtener las claves RSA.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ha de copiar la cadena perteneciente al campo &#039;&#039;&#039;Private RSA key&#039;&#039;&#039;. Es necesario copiar la cadena completa, incluyendo -----BEGIN RSA PRIVATE KEY----- y -----END RSA PRIVATE KEY-----. Se añadirá la cadena como parámetro (string) del constructor de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;,  tal y como se muestra en el ejemplo siguiente:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez realizadas correctamente la instalación de la librería, la modificación de la ruta de acceso a ésta, y la inserción en el código de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, las llamadas a la API se realizarán a través de la función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;, añadiendo el JSON con los datos de la petición y la cadena con el identificador del usuario. La función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; será la encargada de realizar todas las conexiones a la API, de cifrar los datos que se envíen a ésta y de descifrar los datos que devuelva.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
$responseJson = $apiconnection-&amp;gt;getApiData($userIdString, $requestJson)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explica cómo obtenerla cadena con el identificador de usuario y cómo construir el JSON de la petición&lt;br /&gt;
&lt;br /&gt;
=Petición de estadísticas=&lt;br /&gt;
Para que la petición de estadísticas se realice correctamente, es necesario enviar, dentro de la petición, su identificador de usuario y un JSON en el cual especificar las estadísticas que quiera obtener (campos de las estadísticas, filtros, fechas, etc.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Las peticiones a la API son limitadas&#039;&#039;&#039;. Una vez recibida la respuesta de estadísticas (a excepción de haber devuelto un error), deberá esperar un minuto para hacer la siguiente consulta.&lt;br /&gt;
&lt;br /&gt;
==Identificador de usuario==&lt;br /&gt;
Para realizar la petición de estadísticas a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, lo primero que debe hacer es obtener el identificador de usuario. Para ello diríjase a la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] del Panel de Mobeleader y pulse en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;. Una vez dentro del popup, copie la cadena perteneciente al campo &#039;&#039;&#039;Public Identifier&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Public_id.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JSON de petición de estadísticas==&lt;br /&gt;
Para obtener las estadísticas deseadas, es necesario crear un JSON en el que se especifique:&lt;br /&gt;
#El tipo de petición, especificado en el campo &#039;&#039;&#039;type&#039;&#039;&#039;: minería, desarrollo, etc.&lt;br /&gt;
#Los elementos de los cuales quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;require&#039;&#039;&#039;: por anuncio, por app, por sistema operativo, etc.&lt;br /&gt;
#Las estadísticas que quiera mostrar, especificadas en el campo &#039;&#039;&#039;fields&#039;&#039;&#039;: impresiones, descargas, hashes minados, etc.&lt;br /&gt;
#Los filtros o elementos concretos de los que quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;filters&#039;&#039;&#039;: determinadas apps, bases de datos, etc.&lt;br /&gt;
#Las fechas entre las que quiera delimitar la petición, especificadas en el campo &#039;&#039;&#039;dates&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Tipos==&lt;br /&gt;
Cada tipo de petición devolverá un tipo de estadísticas, en función del tipo de usuario que realice la petición, así como los permisos que le hayan sido otorgados. El tipo de petición se especificará en el campo &#039;&#039;&#039;type&#039;&#039;&#039; del JSON. Los diferentes valores para el tipo de petición son:&lt;br /&gt;
*&#039;&#039;&#039;mailing:&#039;&#039;&#039; Devuelve las estadísticas de los envíos de Mailing. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Mailing&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;marketing:&#039;&#039;&#039; Devuelve las estadísticas de los anuncios. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Agencias&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;miner:&#039;&#039;&#039; Devuelve las estadísticas minería. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Minería&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;developer:&#039;&#039;&#039; Devuelve las estadísticas de las aplicaciones. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Desarrolladores&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;nickcenter:&#039;&#039;&#039; Devuelve las estadísticas de los registros realizados a través de &#039;&#039;&#039;NickCenter&#039;&#039;&#039;. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;NickCenter&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;push:&#039;&#039;&#039; Devuelve las estadísticas generadas por las &#039;&#039;&#039;notificaciones Push&#039;&#039;&#039; de sus aplicaciones enviadas a través de nuestro sistema. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Notificaciones Push&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;linkTracking:&#039;&#039;&#039; Devuelve las estadísticas de descargas por URL tracking. El usuario ha de tener acceso a las sección &#039;&#039;&#039;Link Management&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
&lt;br /&gt;
==Mailing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;db:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Base de datos&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mail:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;envío&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;campaign:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dominio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;sender:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sender&#039;&#039;&#039; (enviador).&lt;br /&gt;
**&#039;&#039;&#039;emailAdress:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dirección de email&#039;&#039;&#039; desde la que se hayan realizado los envíos.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; emails enviados.&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones totales obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;unique_views:&#039;&#039;&#039; impresiones únicas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;leads:&#039;&#039;&#039; registros totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_leads:&#039;&#039;&#039; registros únicos.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; bajas ejecutadas.&lt;br /&gt;
**&#039;&#039;&#039;soft_bounces:&#039;&#039;&#039; soft bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;hard_bounces:&#039;&#039;&#039; hard bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;or:&#039;&#039;&#039; tasa de aperturas.&lt;br /&gt;
**&#039;&#039;&#039;cr:&#039;&#039;&#039; tasa de clicks.&lt;br /&gt;
**&#039;&#039;&#039;ur:&#039;&#039;&#039; tasa de bajas.&lt;br /&gt;
**&#039;&#039;&#039;br:&#039;&#039;&#039; tasa de bonces o rebotados.&lt;br /&gt;
**&#039;&#039;&#039;rr:&#039;&#039;&#039; tasa de reactividad.&lt;br /&gt;
**&#039;&#039;&#039;dr:&#039;&#039;&#039; tasa de entregabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;senders:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;senders&#039;&#039;&#039; o enviadores de los que se quieren obtener las estadísticas. Puede añadir los identificadores &#039;MailingCP&#039; y &#039;AmazonSES&#039;.&lt;br /&gt;
**&#039;&#039;&#039;dataBases:&#039;&#039;&#039; Array que especifica las bases de datos de las que se quieren obtener las estadísticas. Los identificadores de sus bases de datos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada base de datos en la [https://panel.mobeleader.com/index.php?sec=105 sección BBDD] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica las campañas de las que se quieren obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=135 sección Campañas] denuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica los dominios de los que se quieren obtener las estadísticas. Los identificadores de sus dominios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dominio en la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaignType:&#039;&#039;&#039; Valor que especifica el tipo de campaña de la que se quiere obtener las estadísticas. Puede elegir entre uno de los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos transaccionales.&lt;br /&gt;
***&#039;&#039;&#039;autoresponder:&#039;&#039;&#039; Para envíos automáticos.&lt;br /&gt;
***&#039;&#039;&#039;newsletter:&#039;&#039;&#039; Para envíos boletín.&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos de marketing.&lt;br /&gt;
**&#039;&#039;&#039;emails:&#039;&#039;&#039; Array que especifica las direcciones de email de las que se quieren obtener las estadísticas. Para obtener los identificadores de sus direcciones de email deberá dirigirse a la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel. Una vez ahí, pulse en el icono &#039;&#039;&#039;Ver emails&#039;&#039;&#039; en la columna &#039;&#039;&#039;Emails&#039;&#039;&#039;. Dentro del popup en el que se muestran las direcciones de email del dominio seleccionado, podrá obtener el identificador en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dirección de email.&lt;br /&gt;
**&#039;&#039;&#039;mailings:&#039;&#039;&#039; Array que especifica los envíos de los que se quieren obtener las estadísticas. Los identificadores de sus envíos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada envío en la [https://panel.mobeleader.com/index.php?sec=134 sección Envíos Transaccionales] para  los envíos transaccionales, en la [https://panel.mobeleader.com/index.php?sec=148 sección Envíos Auto-Responder] para  los envíos autoresponder, en la [https://panel.mobeleader.com/index.php?sec=139 sección Envíos Boletín] para  los envíos boletín y en la [https://panel.mobeleader.com/index.php?sec=138 sección Envíos Marketing] para  los envíos de marketing de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;campaign&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;unique_views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unique_leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;,&amp;quot;soft_bounces&amp;quot;,&amp;quot;hard_bounces&amp;quot;,&amp;quot;or&amp;quot;,&amp;quot;cr&amp;quot;,&amp;quot;ur&amp;quot;,&amp;quot;br&amp;quot;,&amp;quot;rr&amp;quot;,&amp;quot;dr&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;senders&amp;quot;:[&amp;quot;MailingCP&amp;quot;],&lt;br /&gt;
          &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
          &amp;quot;campaignType&amp;quot;:&amp;quot;newsletter&amp;quot;,&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[3,25,27],&lt;br /&gt;
          &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
          &amp;quot;mailings&amp;quot;:[324,17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-02&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por envío con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;mail&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
           &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
           &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
           &amp;quot;campaignType&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
           &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
           &amp;quot;mailings&amp;quot;:[17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Marketing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;ad:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Anuncio&#039;&#039;&#039; o &#039;&#039;&#039;Campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Web&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;creativity:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Creatividad&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;ctr:&#039;&#039;&#039; CTR.&lt;br /&gt;
**&#039;&#039;&#039;validated_leads:&#039;&#039;&#039; registros validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_leads:&#039;&#039;&#039; registros pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_leads:&#039;&#039;&#039; registros totales.&lt;br /&gt;
**&#039;&#039;&#039;rejected_leads:&#039;&#039;&#039; registros rechazados.&lt;br /&gt;
**&#039;&#039;&#039;validated_expenditures:&#039;&#039;&#039; gastos validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_expenditures:&#039;&#039;&#039; gastos pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_expenditures:&#039;&#039;&#039; gastos totales.&lt;br /&gt;
**&#039;&#039;&#039;validated_profits:&#039;&#039;&#039; beneficios validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_profits:&#039;&#039;&#039; beneficios pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_profits:&#039;&#039;&#039; beneficios totales.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica los anuncios o campañas de las que se quiere obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=9 sección Mis Anuncios] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica las webs de las que se quiere obtener las estadísticas. Los identificadores de sus webs los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada web en la [https://panel.mobeleader.com/index.php?sec=17 sección Mis Webs] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;creativities:&#039;&#039;&#039; Array que especifica las creatividades de las que se quiere obtener las estadísticas. Los identificadores de sus creatividades los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada creatividad en la [https://panel.mobeleader.com/index.php?sec=173 sección Mis Creatividades] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;,&amp;quot;creativity&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;ctr&amp;quot;,&amp;quot;validated_leads&amp;quot;,&amp;quot;pending_leads&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;rejected_leads&amp;quot;,&amp;quot;validated_expenditures&amp;quot;,&amp;quot;pending_expenditures&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;validated_profits&amp;quot;,&amp;quot;pending_profits&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3,125,408],&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[95,512],&lt;br /&gt;
          &amp;quot;creativities&amp;quot;:[27,135]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-11&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña y web, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3],&amp;quot;domains&amp;quot;:[95,512]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Miner==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;worker:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;worker&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;wallet:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;wallet&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;workerType:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;tipo de worker&#039;&#039;&#039; (app, web, link, etc).&lt;br /&gt;
**&#039;&#039;&#039;coin:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;divisa&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;payout:&#039;&#039;&#039; pago estimado.&lt;br /&gt;
**&#039;&#039;&#039;hashes:&#039;&#039;&#039; hashes minados.&lt;br /&gt;
**&#039;&#039;&#039;shares:&#039;&#039;&#039; hashes validados.&lt;br /&gt;
**&#039;&#039;&#039;hashrate:&#039;&#039;&#039; hashes por segundo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;workers:&#039;&#039;&#039; Array que especifica los workers de los que se quiere obtener las estadísticas. Los identificadores de sus workers los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada workers en la [https://panel.mobeleader.com/index.php?sec=5 sección Mis Workers] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;wallets:&#039;&#039;&#039; Array que especifica los wallets de los que se quiere obtener las estadísticas. Los identificadores de sus wallets los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada wallet en la [https://panel.mobeleader.com/index.php?sec=1 sección Mis Wallets] denuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;coins:&#039;&#039;&#039; Array que especifica las divisas de las que se quiere obtener las estadísticas. Puede añadir las siguientes divisas:&lt;br /&gt;
***&#039;&#039;&#039;bcn:&#039;&#039;&#039; Bytecoin.&lt;br /&gt;
***&#039;&#039;&#039;xmr:&#039;&#039;&#039; Monero.&lt;br /&gt;
**&#039;&#039;&#039;workerTypes:&#039;&#039;&#039; Array que especifica los diferentes tipos de workers de los que se quiere obtener las estadísticas. Puede añadir los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;app:&#039;&#039;&#039; aplicación.&lt;br /&gt;
***&#039;&#039;&#039;web:&#039;&#039;&#039; web.&lt;br /&gt;
***&#039;&#039;&#039;wallet:&#039;&#039;&#039; wallet.&lt;br /&gt;
***&#039;&#039;&#039;link:&#039;&#039;&#039; link de redireccionamiento.&lt;br /&gt;
***&#039;&#039;&#039;captcha:&#039;&#039;&#039; captcha de validación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;coin&amp;quot;,&amp;quot;workerType&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;payout&amp;quot;,&amp;quot;hashes&amp;quot;,&amp;quot;shares&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;wallets&amp;quot;:[1,5,6],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;link&amp;quot;,&amp;quot;captcha&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;bcn&amp;quot;,&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-30&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por worker y wallet, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;hashes&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Developer==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;place:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;espacio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;osVersion:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;versión del sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;brand:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;marca del terminal&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks realizados.&lt;br /&gt;
**&#039;&#039;&#039;downloads:&#039;&#039;&#039; descargas obtenidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;oss:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;places:&#039;&#039;&#039; Array que especifica los espacios de los que se quiere obtener las estadísticas. Los identificadores de sus espacios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada espacio en la [https://panel.mobeleader.com/index.php?sec=34 sección Mis Espacios] denuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;app&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;downloads&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;oss&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por país con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;country&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NickCenter==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;. Este campo solo podrá ser requerido por aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;users:&#039;&#039;&#039; Usuarios dados de alta en cada aplicación. Solo contabiliza el primer registro en NickCenter, no contabiliza otro registro del mismo usuario en otras aplicaciones.&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; Todos los usuarios registrados en base dentro de las fechas seleccionadas, incluidos los que se hayan dado de baja.&lt;br /&gt;
**&#039;&#039;&#039;registered:&#039;&#039;&#039; Usuarios que están registrados en la base de datos.&lt;br /&gt;
**&#039;&#039;&#039;valid:&#039;&#039;&#039; Usuarios que están registrados en la base de datos, con todos los campos requeridos completados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; Usuarios que estuvieron registrados en la base de datos y que se dieron de baja dentro de las fechas seleccionadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader. Este filtro solo ser á válido para aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo y fecha, con todos los filtros, excepto links:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;,&amp;quot;registered&amp;quot;,&amp;quot;valid&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;US&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;],&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Push==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse, exceptuando los campos &#039;&#039;&#039;notification&#039;&#039;&#039; y &#039;&#039;&#039;app&#039;&#039;&#039; (solo podrá seleccionar uno de estos dos campos en una consulta). Si selecciona el campo &#039;&#039;&#039;notification&#039;&#039;&#039;, deberá establecer una app en el campo &#039;&#039;&#039;apps&#039;&#039;&#039; de los filtros. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;notification:&#039;&#039;&#039; Devolverá las estadísticas por cada &#039;&#039;&#039;notificación Push&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;estado&#039;&#039;&#039; de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; el total de los mensajes enviados de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; mensajes enviados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;failed:&#039;&#039;&#039; mensajes enviados y que no han llegado al terminal de destino.&lt;br /&gt;
**&#039;&#039;&#039;erased:&#039;&#039;&#039; mensajes borrados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Especifique una única aplicación en caso de haber seleccionado el campo &#039;&#039;&#039;notification&#039;&#039;&#039; en los filtros. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Array que especifica los estados de las notificaciones de los que se quiere obtener las estadísticas.&lt;br /&gt;
***&#039;&#039;&#039;ready:&#039;&#039;&#039; indica que la notificación ha sido creada correctamente y está en espera de ser verificada.&lt;br /&gt;
***&#039;&#039;&#039;starting:&#039;&#039;&#039;  indica que la notificación ha sido verificada y va ser enviada.&lt;br /&gt;
***&#039;&#039;&#039;sending:&#039;&#039;&#039; indica que la notificación está siendo enviada.&lt;br /&gt;
***&#039;&#039;&#039;finished:&#039;&#039;&#039; indica que el envío de la notificación ha finalizado.&lt;br /&gt;
***&#039;&#039;&#039;stoped:&#039;&#039;&#039; indica que el envío de la notificación ha sido detenido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, estado y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;status&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;,&amp;quot;erased&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;FR&amp;quot;],&lt;br /&gt;
          &amp;quot;estados&amp;quot;:[&amp;quot;sending&amp;quot;,&amp;quot;finished&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por notificación y estado, con algunos de los campos y filtros (en el filtro de &#039;&#039;&#039;apps&#039;&#039;&#039; solo establece una aplicación):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;notification&amp;quot;,&amp;quot;status&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Link Tracking==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. No puede combinarse el campo &#039;&#039;&#039;link&#039;&#039;&#039; con los campos &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;, por lo que si decide incluir el campo &#039;&#039;&#039;link&#039;&#039;&#039; no se mostrarán las estadísticas por &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;field:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;value:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;valor&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; Array que especifica los campos de los que se quiere obtener las estadísticas. Los nombres de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;values:&#039;&#039;&#039; Array que especifica los valores de los campos de los que se quiere obtener las estadísticas. Los valores de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, campo, valor y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;field&amp;quot;,&amp;quot;value&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;fields&amp;quot;:[&amp;quot;campo1&amp;quot;,&amp;quot;campo2&amp;quot;],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;,&amp;quot;valor2&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resultado de las estadísticas=&lt;br /&gt;
Una vez realizada la conexión con la API correctamente, ésta devolverá una respuesta en formato JSON. La respuesta puede contener:&lt;br /&gt;
*Un resultado sin estadísticas.&lt;br /&gt;
*Las estadísticas resultantes de la petición.&lt;br /&gt;
*Un mensaje de error.&lt;br /&gt;
==Resultado vacío==&lt;br /&gt;
Si la petición se ha realizado correctamente, pero la API no ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el siguiente resultado:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;result&amp;quot;:&amp;quot;No result for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resultado con estadísticas==&lt;br /&gt;
Si la petición se ha realizado correctamente, y la API ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el resultado de las estadísticas desglosado por campo, en función de los valores indicados en los campos &#039;&#039;&#039;require&#039;&#039;&#039; y &#039;&#039;&#039;fields&#039;&#039;&#039;. Si además se ha establecido el valor &#039;date&#039; en el campo &#039;&#039;&#039;require&#039;&#039;&#039;, el resultado vendrá desglosado por campo y fecha.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de estadísticas sin fechas:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;0&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;20&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;1&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;23&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;18&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de las mismas estadísticas por fecha:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;2018-10-10&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;2&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;7&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;10&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;2018-10-03&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;4&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;12&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;11&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;9&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;date&amp;quot;:2,&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Error en la petición de estadísticas==&lt;br /&gt;
Si la petición no se ha realizado correctamente, la API devolverá un mensaje, dentro del campo &#039;&#039;&#039;error&#039;&#039;&#039;, indicando la causa de error en la petición. A continuación se muestra los diferentes errores que la API puede devolver:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address. Please ask your account manager for a valid IP.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la IP no está registrada en el sistema de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address for the user key sent. Please check and set &#039;user&#039; parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la dirección IP desde la que se realiza la petición es correcta, pero no está registrada para el usuario introducido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request user found. Please set user parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No data post field found. Please set data post field.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request data found. Please fill your request with proper parameters.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; está vacío.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request type found. Please set type parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong type set, &#039;type_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong user set, &#039;user_key_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request fields found. Please set the fields you want to check.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User has no permission for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario introducido no tiene permisos para realizar ese tipo de consulta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User must wait at least 1 minute for the next request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario ha de esperar al menos un minuto desde la última consulta hasta la siguiente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not found or not properly set. Please set require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not properly set, &#039;require_value_for_error_test&#039; is not a valid require. Please set a valid require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;require&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Some required fields are not correct. &#039;fields_value_for_error_test&#039; is not a valid field. Please set the required fields properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
==Error en las claves RSA==&lt;br /&gt;
Si las claves RSA no han sido configuradas correctamente, el sistema mostrará los siguientes errores:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000d - Missing public RSA Key for user key &#039;my_user_key&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el sistema no ha podido verificar las claves RSA del usuario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000c - Empty or invalid user key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; no se ha enviado correctamente.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2756</id>
		<title>Documentación API Analytics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2756"/>
		<updated>2019-06-07T10:52:41Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Miner */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
La &#039;&#039;&#039;API Analytics&#039;&#039;&#039; es la plataforma a través de la cual obtener las estadísticas de un usuario. Los datos obtenidos corresponderán a los datos que se obtendrían en las secciones de Analytics de nuestro panel. Las estadísticas serán devueltas en formato JSON.&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar la &#039;&#039;&#039;API Analytics&#039;&#039;&#039; y poder obtener tanto el identificador de usuario como las claves RSA, deberá solicitarlo a su administrador.&lt;br /&gt;
&lt;br /&gt;
En esta documentación se explicará cómo conectar con la API y cómo preparar los datos para realizar la petición de las estadísticas. Los ejemplos ofrecidos están en lenguaje PHP.&lt;br /&gt;
&lt;br /&gt;
=Registro de usuario=&lt;br /&gt;
Al solicitar el acceso a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, es necesario reportar las direcciones IP desde las que se realizarán las peticiones de estadísticas. Así mismo, el usuario deberá actualizar el registro de direcciones IP cuando éstas cambien. El sistema registrará las direcciones IP junto al identificador del usuario, por lo que no permitirá al usuario realizar peticiones si éste no está asociado a las direcciones IP registradas.&lt;br /&gt;
&lt;br /&gt;
=Conexión con la API=&lt;br /&gt;
La conexión con la API para realizar la petición de estadísticas se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa a la API. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa a la API==&lt;br /&gt;
Si desea realizar la petición a la API sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, deberá conectarse mediante POST a la siguiente URL: &#039;&#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;&#039;, añadiendo los parámetros &#039;&#039;&#039;data&#039;&#039;&#039; (JSON con los datos de la petición) y &#039;&#039;&#039;user&#039;&#039;&#039; (string o cadena con el identificador del usuario). En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explicará como obtener el identificador de usuario y como construir el JSON de la petición.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode($requestJson).&#039;&amp;amp;user=&#039;.$userIdString);&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en su carpeta vendor, lo primero que deberá hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras modificar la ruta, para poder instanciar la clase, será necesario obtener la clave &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Boton_rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pulsando en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;, se abrirá un popup en el que podrá obtener las claves RSA.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ha de copiar la cadena perteneciente al campo &#039;&#039;&#039;Private RSA key&#039;&#039;&#039;. Es necesario copiar la cadena completa, incluyendo -----BEGIN RSA PRIVATE KEY----- y -----END RSA PRIVATE KEY-----. Se añadirá la cadena como parámetro (string) del constructor de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;,  tal y como se muestra en el ejemplo siguiente:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez realizadas correctamente la instalación de la librería, la modificación de la ruta de acceso a ésta, y la inserción en el código de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, las llamadas a la API se realizarán a través de la función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;, añadiendo el JSON con los datos de la petición y la cadena con el identificador del usuario. La función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; será la encargada de realizar todas las conexiones a la API, de cifrar los datos que se envíen a ésta y de descifrar los datos que devuelva.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
$responseJson = $apiconnection-&amp;gt;getApiData($userIdString, $requestJson)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explica cómo obtenerla cadena con el identificador de usuario y cómo construir el JSON de la petición&lt;br /&gt;
&lt;br /&gt;
=Petición de estadísticas=&lt;br /&gt;
Para que la petición de estadísticas se realice correctamente, es necesario enviar, dentro de la petición, su identificador de usuario y un JSON en el cual especificar las estadísticas que quiera obtener (campos de las estadísticas, filtros, fechas, etc.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Las peticiones a la API son limitadas&#039;&#039;&#039;. Una vez recibida la respuesta de estadísticas (a excepción de haber devuelto un error), deberá esperar un minuto para hacer la siguiente consulta.&lt;br /&gt;
&lt;br /&gt;
==Identificador de usuario==&lt;br /&gt;
Para realizar la petición de estadísticas a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, lo primero que debe hacer es obtener el identificador de usuario. Para ello diríjase a la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] del Panel de Mobeleader y pulse en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;. Una vez dentro del popup, copie la cadena perteneciente al campo &#039;&#039;&#039;Public Identifier&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Public_id.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JSON de petición de estadísticas==&lt;br /&gt;
Para obtener las estadísticas deseadas, es necesario crear un JSON en el que se especifique:&lt;br /&gt;
#El tipo de petición, especificado en el campo &#039;&#039;&#039;type&#039;&#039;&#039;: minería, desarrollo, etc.&lt;br /&gt;
#Los elementos de los cuales quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;require&#039;&#039;&#039;: por anuncio, por app, por sistema operativo, etc.&lt;br /&gt;
#Las estadísticas que quiera mostrar, especificadas en el campo &#039;&#039;&#039;fields&#039;&#039;&#039;: impresiones, descargas, hashes minados, etc.&lt;br /&gt;
#Los filtros o elementos concretos de los que quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;filters&#039;&#039;&#039;: determinadas apps, bases de datos, etc.&lt;br /&gt;
#Las fechas entre las que quiera delimitar la petición, especificadas en el campo &#039;&#039;&#039;dates&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Tipos==&lt;br /&gt;
Cada tipo de petición devolverá un tipo de estadísticas, en función del tipo de usuario que realice la petición, así como los permisos que le hayan sido otorgados. El tipo de petición se especificará en el campo &#039;&#039;&#039;type&#039;&#039;&#039; del JSON. Los diferentes valores para el tipo de petición son:&lt;br /&gt;
*&#039;&#039;&#039;mailing:&#039;&#039;&#039; Devuelve las estadísticas de los envíos de Mailing. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Mailing&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;marketing:&#039;&#039;&#039; Devuelve las estadísticas de los anuncios. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Agencias&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;miner:&#039;&#039;&#039; Devuelve las estadísticas minería. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Minería&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;developer:&#039;&#039;&#039; Devuelve las estadísticas de las aplicaciones. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Desarrolladores&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;nickcenter:&#039;&#039;&#039; Devuelve las estadísticas de los registros realizados a través de &#039;&#039;&#039;NickCenter&#039;&#039;&#039;. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;NickCenter&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;push:&#039;&#039;&#039; Devuelve las estadísticas generadas por las &#039;&#039;&#039;notificaciones Push&#039;&#039;&#039; de sus aplicaciones enviadas a través de nuestro sistema. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Notificaciones Push&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;linkTracking:&#039;&#039;&#039; Devuelve las estadísticas de descargas por URL tracking. El usuario ha de tener acceso a las sección &#039;&#039;&#039;Link Management&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
&lt;br /&gt;
==Mailing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;db:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Base de datos&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mail:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;envío&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;campaign:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dominio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;sender:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sender&#039;&#039;&#039; (enviador).&lt;br /&gt;
**&#039;&#039;&#039;emailAdress:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dirección de email&#039;&#039;&#039; desde la que se hayan realizado los envíos.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; emails enviados.&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones totales obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;unique_views:&#039;&#039;&#039; impresiones únicas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;leads:&#039;&#039;&#039; registros totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_leads:&#039;&#039;&#039; registros únicos.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; bajas ejecutadas.&lt;br /&gt;
**&#039;&#039;&#039;soft_bounces:&#039;&#039;&#039; soft bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;hard_bounces:&#039;&#039;&#039; hard bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;or:&#039;&#039;&#039; tasa de aperturas.&lt;br /&gt;
**&#039;&#039;&#039;cr:&#039;&#039;&#039; tasa de clicks.&lt;br /&gt;
**&#039;&#039;&#039;ur:&#039;&#039;&#039; tasa de bajas.&lt;br /&gt;
**&#039;&#039;&#039;br:&#039;&#039;&#039; tasa de bonces o rebotados.&lt;br /&gt;
**&#039;&#039;&#039;rr:&#039;&#039;&#039; tasa de reactividad.&lt;br /&gt;
**&#039;&#039;&#039;dr:&#039;&#039;&#039; tasa de entregabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;senders:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;senders&#039;&#039;&#039; o enviadores de los que se quieren obtener las estadísticas. Puede añadir los identificadores &#039;MailingCP&#039; y &#039;AmazonSES&#039;.&lt;br /&gt;
**&#039;&#039;&#039;dataBases:&#039;&#039;&#039; Array que especifica las bases de datos de las que se quieren obtener las estadísticas. Los identificadores de sus bases de datos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada base de datos en la [https://panel.mobeleader.com/index.php?sec=105 sección BBDD] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica las campañas de las que se quieren obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=135 sección Campañas] denuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica los dominios de los que se quieren obtener las estadísticas. Los identificadores de sus dominios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dominio en la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaignType:&#039;&#039;&#039; Valor que especifica el tipo de campaña de la que se quiere obtener las estadísticas. Puede elegir entre uno de los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos transaccionales.&lt;br /&gt;
***&#039;&#039;&#039;autoresponder:&#039;&#039;&#039; Para envíos automáticos.&lt;br /&gt;
***&#039;&#039;&#039;newsletter:&#039;&#039;&#039; Para envíos boletín.&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos de marketing.&lt;br /&gt;
**&#039;&#039;&#039;emails:&#039;&#039;&#039; Array que especifica las direcciones de email de las que se quieren obtener las estadísticas. Para obtener los identificadores de sus direcciones de email deberá dirigirse a la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel. Una vez ahí, pulse en el icono &#039;&#039;&#039;Ver emails&#039;&#039;&#039; en la columna &#039;&#039;&#039;Emails&#039;&#039;&#039;. Dentro del popup en el que se muestran las direcciones de email del dominio seleccionado, podrá obtener el identificador en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dirección de email.&lt;br /&gt;
**&#039;&#039;&#039;mailings:&#039;&#039;&#039; Array que especifica los envíos de los que se quieren obtener las estadísticas. Los identificadores de sus envíos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada envío en la [https://panel.mobeleader.com/index.php?sec=134 sección Envíos Transaccionales] para  los envíos transaccionales, en la [https://panel.mobeleader.com/index.php?sec=148 sección Envíos Auto-Responder] para  los envíos autoresponder, en la [https://panel.mobeleader.com/index.php?sec=139 sección Envíos Boletín] para  los envíos boletín y en la [https://panel.mobeleader.com/index.php?sec=138 sección Envíos Marketing] para  los envíos de marketing de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;campaign&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;unique_views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unique_leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;,&amp;quot;soft_bounces&amp;quot;,&amp;quot;hard_bounces&amp;quot;,&amp;quot;or&amp;quot;,&amp;quot;cr&amp;quot;,&amp;quot;ur&amp;quot;,&amp;quot;br&amp;quot;,&amp;quot;rr&amp;quot;,&amp;quot;dr&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;senders&amp;quot;:[&amp;quot;MailingCP&amp;quot;],&lt;br /&gt;
          &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
          &amp;quot;campaignType&amp;quot;:&amp;quot;newsletter&amp;quot;,&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[3,25,27],&lt;br /&gt;
          &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
          &amp;quot;mailings&amp;quot;:[324,17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-02&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por envío con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;mail&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
           &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
           &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
           &amp;quot;campaignType&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
           &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
           &amp;quot;mailings&amp;quot;:[17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Marketing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;ad:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Anuncio&#039;&#039;&#039; o &#039;&#039;&#039;Campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Web&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;creativity:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Creatividad&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;ctr:&#039;&#039;&#039; CTR.&lt;br /&gt;
**&#039;&#039;&#039;validated_leads:&#039;&#039;&#039; registros validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_leads:&#039;&#039;&#039; registros pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_leads:&#039;&#039;&#039; registros totales.&lt;br /&gt;
**&#039;&#039;&#039;rejected_leads:&#039;&#039;&#039; registros rechazados.&lt;br /&gt;
**&#039;&#039;&#039;validated_expenditures:&#039;&#039;&#039; gastos validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_expenditures:&#039;&#039;&#039; gastos pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_expenditures:&#039;&#039;&#039; gastos totales.&lt;br /&gt;
**&#039;&#039;&#039;validated_profits:&#039;&#039;&#039; beneficios validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_profits:&#039;&#039;&#039; beneficios pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_profits:&#039;&#039;&#039; beneficios totales.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica los anuncios o campañas de las que se quiere obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=9 sección Mis Anuncios] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica las webs de las que se quiere obtener las estadísticas. Los identificadores de sus webs los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada web en la [https://panel.mobeleader.com/index.php?sec=17 sección Mis Webs] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;creativities:&#039;&#039;&#039; Array que especifica las creatividades de las que se quiere obtener las estadísticas. Los identificadores de sus creatividades los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada creatividad en la [https://panel.mobeleader.com/index.php?sec=173 sección Mis Creatividades] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;,&amp;quot;creativity&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;ctr&amp;quot;,&amp;quot;validated_leads&amp;quot;,&amp;quot;pending_leads&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;rejected_leads&amp;quot;,&amp;quot;validated_expenditures&amp;quot;,&amp;quot;pending_expenditures&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;validated_profits&amp;quot;,&amp;quot;pending_profits&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3,125,408],&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[95,512],&lt;br /&gt;
          &amp;quot;creativities&amp;quot;:[27,135]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-11&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña y web, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3],&amp;quot;domains&amp;quot;:[95,512]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Miner==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;worker:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;worker&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;wallet:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;wallet&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;workerType:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;tipo de worker&#039;&#039;&#039; (app, web, link, etc).&lt;br /&gt;
**&#039;&#039;&#039;coin:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;divisa&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;payout:&#039;&#039;&#039; pago estimado.&lt;br /&gt;
**&#039;&#039;&#039;hashes:&#039;&#039;&#039; hashes minados.&lt;br /&gt;
**&#039;&#039;&#039;shares:&#039;&#039;&#039; hashes validados.&lt;br /&gt;
**&#039;&#039;&#039;hashrate:&#039;&#039;&#039; hashes por segundo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;workers:&#039;&#039;&#039; Array que especifica los workers de los que se quiere obtener las estadísticas. Los identificadores de sus workers los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada workers en la [https://panel.mobeleader.com/index.php?sec=5 sección Mis Workers] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;wallets:&#039;&#039;&#039; Array que especifica los wallets de los que se quiere obtener las estadísticas. Los identificadores de sus wallets los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada wallet en la [https://panel.mobeleader.com/index.php?sec=1 sección Mis Wallets] denuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;coins:&#039;&#039;&#039; Array que especifica las divisas de las que se quiere obtener las estadísticas. Puede añadir las siguientes divisas:&lt;br /&gt;
***&#039;&#039;&#039;bcn:&#039;&#039;&#039; Bytecoin.&lt;br /&gt;
***&#039;&#039;&#039;xmr:&#039;&#039;&#039; Monero.&lt;br /&gt;
**&#039;&#039;&#039;workerTypes:&#039;&#039;&#039; Array que especifica los diferentes tipos de workers de los que se quiere obtener las estadísticas. Puede añadir los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;app:&#039;&#039;&#039; aplicación.&lt;br /&gt;
***&#039;&#039;&#039;web:&#039;&#039;&#039; web.&lt;br /&gt;
***&#039;&#039;&#039;wallet:&#039;&#039;&#039; wallet.&lt;br /&gt;
***&#039;&#039;&#039;link:&#039;&#039;&#039; link de redireccionamiento.&lt;br /&gt;
***&#039;&#039;&#039;captcha:&#039;&#039;&#039; captcha de validación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;coin&amp;quot;,&amp;quot;workerType&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;payout&amp;quot;,&amp;quot;hashes&amp;quot;,&amp;quot;shares&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;wallets&amp;quot;:[1,5,6],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;link&amp;quot;,&amp;quot;captcha&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;bcn&amp;quot;,&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-30&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por worker y wallet, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;hashes&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Developer==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;place:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;espacio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;osVersion:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;versión del sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;brand:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;marca del terminal&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks realizados.&lt;br /&gt;
**&#039;&#039;&#039;downloads:&#039;&#039;&#039; descargas obtenidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;oss:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;places:&#039;&#039;&#039; Array que especifica los espacios de los que se quiere obtener las estadísticas. Los identificadores de sus espacios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada espacio en la [https://panel.mobeleader.com/index.php?sec=34 sección Mis Espacios] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;app&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;downloads&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;oss&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por país con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;country&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NickCenter==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;. Este campo solo podrá ser requerido por aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;users:&#039;&#039;&#039; Usuarios dados de alta en cada aplicación. Solo contabiliza el primer registro en NickCenter, no contabiliza otro registro del mismo usuario en otras aplicaciones.&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; Todos los usuarios registrados en base dentro de las fechas seleccionadas, incluidos los que se hayan dado de baja.&lt;br /&gt;
**&#039;&#039;&#039;registered:&#039;&#039;&#039; Usuarios que están registrados en la base de datos.&lt;br /&gt;
**&#039;&#039;&#039;valid:&#039;&#039;&#039; Usuarios que están registrados en la base de datos, con todos los campos requeridos completados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; Usuarios que estuvieron registrados en la base de datos y que se dieron de baja dentro de las fechas seleccionadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader. Este filtro solo ser á válido para aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo y fecha, con todos los filtros, excepto links:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;,&amp;quot;registered&amp;quot;,&amp;quot;valid&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;US&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;],&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Push==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse, exceptuando los campos &#039;&#039;&#039;notification&#039;&#039;&#039; y &#039;&#039;&#039;app&#039;&#039;&#039; (solo podrá seleccionar uno de estos dos campos en una consulta). Si selecciona el campo &#039;&#039;&#039;notification&#039;&#039;&#039;, deberá establecer una app en el campo &#039;&#039;&#039;apps&#039;&#039;&#039; de los filtros. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;notification:&#039;&#039;&#039; Devolverá las estadísticas por cada &#039;&#039;&#039;notificación Push&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;estado&#039;&#039;&#039; de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; el total de los mensajes enviados de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; mensajes enviados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;failed:&#039;&#039;&#039; mensajes enviados y que no han llegado al terminal de destino.&lt;br /&gt;
**&#039;&#039;&#039;erased:&#039;&#039;&#039; mensajes borrados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Especifique una única aplicación en caso de haber seleccionado el campo &#039;&#039;&#039;notification&#039;&#039;&#039; en los filtros. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Array que especifica los estados de las notificaciones de los que se quiere obtener las estadísticas.&lt;br /&gt;
***&#039;&#039;&#039;ready:&#039;&#039;&#039; indica que la notificación ha sido creada correctamente y está en espera de ser verificada.&lt;br /&gt;
***&#039;&#039;&#039;starting:&#039;&#039;&#039;  indica que la notificación ha sido verificada y va ser enviada.&lt;br /&gt;
***&#039;&#039;&#039;sending:&#039;&#039;&#039; indica que la notificación está siendo enviada.&lt;br /&gt;
***&#039;&#039;&#039;finished:&#039;&#039;&#039; indica que el envío de la notificación ha finalizado.&lt;br /&gt;
***&#039;&#039;&#039;stoped:&#039;&#039;&#039; indica que el envío de la notificación ha sido detenido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, estado y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;status&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;,&amp;quot;erased&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;FR&amp;quot;],&lt;br /&gt;
          &amp;quot;estados&amp;quot;:[&amp;quot;sending&amp;quot;,&amp;quot;finished&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por notificación y estado, con algunos de los campos y filtros (en el filtro de &#039;&#039;&#039;apps&#039;&#039;&#039; solo establece una aplicación):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;notification&amp;quot;,&amp;quot;status&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Link Tracking==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. No puede combinarse el campo &#039;&#039;&#039;link&#039;&#039;&#039; con los campos &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;, por lo que si decide incluir el campo &#039;&#039;&#039;link&#039;&#039;&#039; no se mostrarán las estadísticas por &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;field:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;value:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;valor&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; Array que especifica los campos de los que se quiere obtener las estadísticas. Los nombres de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;values:&#039;&#039;&#039; Array que especifica los valores de los campos de los que se quiere obtener las estadísticas. Los valores de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, campo, valor y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;field&amp;quot;,&amp;quot;value&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;fields&amp;quot;:[&amp;quot;campo1&amp;quot;,&amp;quot;campo2&amp;quot;],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;,&amp;quot;valor2&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resultado de las estadísticas=&lt;br /&gt;
Una vez realizada la conexión con la API correctamente, ésta devolverá una respuesta en formato JSON. La respuesta puede contener:&lt;br /&gt;
*Un resultado sin estadísticas.&lt;br /&gt;
*Las estadísticas resultantes de la petición.&lt;br /&gt;
*Un mensaje de error.&lt;br /&gt;
==Resultado vacío==&lt;br /&gt;
Si la petición se ha realizado correctamente, pero la API no ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el siguiente resultado:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;result&amp;quot;:&amp;quot;No result for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resultado con estadísticas==&lt;br /&gt;
Si la petición se ha realizado correctamente, y la API ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el resultado de las estadísticas desglosado por campo, en función de los valores indicados en los campos &#039;&#039;&#039;require&#039;&#039;&#039; y &#039;&#039;&#039;fields&#039;&#039;&#039;. Si además se ha establecido el valor &#039;date&#039; en el campo &#039;&#039;&#039;require&#039;&#039;&#039;, el resultado vendrá desglosado por campo y fecha.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de estadísticas sin fechas:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;0&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;20&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;1&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;23&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;18&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de las mismas estadísticas por fecha:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;2018-10-10&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;2&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;7&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;10&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;2018-10-03&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;4&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;12&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;11&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;9&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;date&amp;quot;:2,&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Error en la petición de estadísticas==&lt;br /&gt;
Si la petición no se ha realizado correctamente, la API devolverá un mensaje, dentro del campo &#039;&#039;&#039;error&#039;&#039;&#039;, indicando la causa de error en la petición. A continuación se muestra los diferentes errores que la API puede devolver:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address. Please ask your account manager for a valid IP.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la IP no está registrada en el sistema de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address for the user key sent. Please check and set &#039;user&#039; parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la dirección IP desde la que se realiza la petición es correcta, pero no está registrada para el usuario introducido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request user found. Please set user parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No data post field found. Please set data post field.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request data found. Please fill your request with proper parameters.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; está vacío.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request type found. Please set type parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong type set, &#039;type_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong user set, &#039;user_key_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request fields found. Please set the fields you want to check.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User has no permission for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario introducido no tiene permisos para realizar ese tipo de consulta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User must wait at least 1 minute for the next request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario ha de esperar al menos un minuto desde la última consulta hasta la siguiente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not found or not properly set. Please set require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not properly set, &#039;require_value_for_error_test&#039; is not a valid require. Please set a valid require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;require&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Some required fields are not correct. &#039;fields_value_for_error_test&#039; is not a valid field. Please set the required fields properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
==Error en las claves RSA==&lt;br /&gt;
Si las claves RSA no han sido configuradas correctamente, el sistema mostrará los siguientes errores:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000d - Missing public RSA Key for user key &#039;my_user_key&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el sistema no ha podido verificar las claves RSA del usuario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000c - Empty or invalid user key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; no se ha enviado correctamente.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2755</id>
		<title>Documentación API Analytics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2755"/>
		<updated>2019-06-07T10:51:36Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Marketing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
La &#039;&#039;&#039;API Analytics&#039;&#039;&#039; es la plataforma a través de la cual obtener las estadísticas de un usuario. Los datos obtenidos corresponderán a los datos que se obtendrían en las secciones de Analytics de nuestro panel. Las estadísticas serán devueltas en formato JSON.&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar la &#039;&#039;&#039;API Analytics&#039;&#039;&#039; y poder obtener tanto el identificador de usuario como las claves RSA, deberá solicitarlo a su administrador.&lt;br /&gt;
&lt;br /&gt;
En esta documentación se explicará cómo conectar con la API y cómo preparar los datos para realizar la petición de las estadísticas. Los ejemplos ofrecidos están en lenguaje PHP.&lt;br /&gt;
&lt;br /&gt;
=Registro de usuario=&lt;br /&gt;
Al solicitar el acceso a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, es necesario reportar las direcciones IP desde las que se realizarán las peticiones de estadísticas. Así mismo, el usuario deberá actualizar el registro de direcciones IP cuando éstas cambien. El sistema registrará las direcciones IP junto al identificador del usuario, por lo que no permitirá al usuario realizar peticiones si éste no está asociado a las direcciones IP registradas.&lt;br /&gt;
&lt;br /&gt;
=Conexión con la API=&lt;br /&gt;
La conexión con la API para realizar la petición de estadísticas se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa a la API. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa a la API==&lt;br /&gt;
Si desea realizar la petición a la API sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, deberá conectarse mediante POST a la siguiente URL: &#039;&#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;&#039;, añadiendo los parámetros &#039;&#039;&#039;data&#039;&#039;&#039; (JSON con los datos de la petición) y &#039;&#039;&#039;user&#039;&#039;&#039; (string o cadena con el identificador del usuario). En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explicará como obtener el identificador de usuario y como construir el JSON de la petición.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode($requestJson).&#039;&amp;amp;user=&#039;.$userIdString);&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en su carpeta vendor, lo primero que deberá hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras modificar la ruta, para poder instanciar la clase, será necesario obtener la clave &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Boton_rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pulsando en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;, se abrirá un popup en el que podrá obtener las claves RSA.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ha de copiar la cadena perteneciente al campo &#039;&#039;&#039;Private RSA key&#039;&#039;&#039;. Es necesario copiar la cadena completa, incluyendo -----BEGIN RSA PRIVATE KEY----- y -----END RSA PRIVATE KEY-----. Se añadirá la cadena como parámetro (string) del constructor de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;,  tal y como se muestra en el ejemplo siguiente:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez realizadas correctamente la instalación de la librería, la modificación de la ruta de acceso a ésta, y la inserción en el código de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, las llamadas a la API se realizarán a través de la función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;, añadiendo el JSON con los datos de la petición y la cadena con el identificador del usuario. La función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; será la encargada de realizar todas las conexiones a la API, de cifrar los datos que se envíen a ésta y de descifrar los datos que devuelva.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
$responseJson = $apiconnection-&amp;gt;getApiData($userIdString, $requestJson)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explica cómo obtenerla cadena con el identificador de usuario y cómo construir el JSON de la petición&lt;br /&gt;
&lt;br /&gt;
=Petición de estadísticas=&lt;br /&gt;
Para que la petición de estadísticas se realice correctamente, es necesario enviar, dentro de la petición, su identificador de usuario y un JSON en el cual especificar las estadísticas que quiera obtener (campos de las estadísticas, filtros, fechas, etc.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Las peticiones a la API son limitadas&#039;&#039;&#039;. Una vez recibida la respuesta de estadísticas (a excepción de haber devuelto un error), deberá esperar un minuto para hacer la siguiente consulta.&lt;br /&gt;
&lt;br /&gt;
==Identificador de usuario==&lt;br /&gt;
Para realizar la petición de estadísticas a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, lo primero que debe hacer es obtener el identificador de usuario. Para ello diríjase a la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] del Panel de Mobeleader y pulse en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;. Una vez dentro del popup, copie la cadena perteneciente al campo &#039;&#039;&#039;Public Identifier&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Public_id.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JSON de petición de estadísticas==&lt;br /&gt;
Para obtener las estadísticas deseadas, es necesario crear un JSON en el que se especifique:&lt;br /&gt;
#El tipo de petición, especificado en el campo &#039;&#039;&#039;type&#039;&#039;&#039;: minería, desarrollo, etc.&lt;br /&gt;
#Los elementos de los cuales quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;require&#039;&#039;&#039;: por anuncio, por app, por sistema operativo, etc.&lt;br /&gt;
#Las estadísticas que quiera mostrar, especificadas en el campo &#039;&#039;&#039;fields&#039;&#039;&#039;: impresiones, descargas, hashes minados, etc.&lt;br /&gt;
#Los filtros o elementos concretos de los que quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;filters&#039;&#039;&#039;: determinadas apps, bases de datos, etc.&lt;br /&gt;
#Las fechas entre las que quiera delimitar la petición, especificadas en el campo &#039;&#039;&#039;dates&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Tipos==&lt;br /&gt;
Cada tipo de petición devolverá un tipo de estadísticas, en función del tipo de usuario que realice la petición, así como los permisos que le hayan sido otorgados. El tipo de petición se especificará en el campo &#039;&#039;&#039;type&#039;&#039;&#039; del JSON. Los diferentes valores para el tipo de petición son:&lt;br /&gt;
*&#039;&#039;&#039;mailing:&#039;&#039;&#039; Devuelve las estadísticas de los envíos de Mailing. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Mailing&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;marketing:&#039;&#039;&#039; Devuelve las estadísticas de los anuncios. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Agencias&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;miner:&#039;&#039;&#039; Devuelve las estadísticas minería. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Minería&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;developer:&#039;&#039;&#039; Devuelve las estadísticas de las aplicaciones. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Desarrolladores&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;nickcenter:&#039;&#039;&#039; Devuelve las estadísticas de los registros realizados a través de &#039;&#039;&#039;NickCenter&#039;&#039;&#039;. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;NickCenter&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;push:&#039;&#039;&#039; Devuelve las estadísticas generadas por las &#039;&#039;&#039;notificaciones Push&#039;&#039;&#039; de sus aplicaciones enviadas a través de nuestro sistema. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Notificaciones Push&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;linkTracking:&#039;&#039;&#039; Devuelve las estadísticas de descargas por URL tracking. El usuario ha de tener acceso a las sección &#039;&#039;&#039;Link Management&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
&lt;br /&gt;
==Mailing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;db:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Base de datos&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mail:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;envío&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;campaign:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dominio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;sender:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sender&#039;&#039;&#039; (enviador).&lt;br /&gt;
**&#039;&#039;&#039;emailAdress:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dirección de email&#039;&#039;&#039; desde la que se hayan realizado los envíos.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; emails enviados.&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones totales obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;unique_views:&#039;&#039;&#039; impresiones únicas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;leads:&#039;&#039;&#039; registros totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_leads:&#039;&#039;&#039; registros únicos.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; bajas ejecutadas.&lt;br /&gt;
**&#039;&#039;&#039;soft_bounces:&#039;&#039;&#039; soft bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;hard_bounces:&#039;&#039;&#039; hard bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;or:&#039;&#039;&#039; tasa de aperturas.&lt;br /&gt;
**&#039;&#039;&#039;cr:&#039;&#039;&#039; tasa de clicks.&lt;br /&gt;
**&#039;&#039;&#039;ur:&#039;&#039;&#039; tasa de bajas.&lt;br /&gt;
**&#039;&#039;&#039;br:&#039;&#039;&#039; tasa de bonces o rebotados.&lt;br /&gt;
**&#039;&#039;&#039;rr:&#039;&#039;&#039; tasa de reactividad.&lt;br /&gt;
**&#039;&#039;&#039;dr:&#039;&#039;&#039; tasa de entregabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;senders:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;senders&#039;&#039;&#039; o enviadores de los que se quieren obtener las estadísticas. Puede añadir los identificadores &#039;MailingCP&#039; y &#039;AmazonSES&#039;.&lt;br /&gt;
**&#039;&#039;&#039;dataBases:&#039;&#039;&#039; Array que especifica las bases de datos de las que se quieren obtener las estadísticas. Los identificadores de sus bases de datos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada base de datos en la [https://panel.mobeleader.com/index.php?sec=105 sección BBDD] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica las campañas de las que se quieren obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=135 sección Campañas] denuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica los dominios de los que se quieren obtener las estadísticas. Los identificadores de sus dominios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dominio en la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaignType:&#039;&#039;&#039; Valor que especifica el tipo de campaña de la que se quiere obtener las estadísticas. Puede elegir entre uno de los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos transaccionales.&lt;br /&gt;
***&#039;&#039;&#039;autoresponder:&#039;&#039;&#039; Para envíos automáticos.&lt;br /&gt;
***&#039;&#039;&#039;newsletter:&#039;&#039;&#039; Para envíos boletín.&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos de marketing.&lt;br /&gt;
**&#039;&#039;&#039;emails:&#039;&#039;&#039; Array que especifica las direcciones de email de las que se quieren obtener las estadísticas. Para obtener los identificadores de sus direcciones de email deberá dirigirse a la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel. Una vez ahí, pulse en el icono &#039;&#039;&#039;Ver emails&#039;&#039;&#039; en la columna &#039;&#039;&#039;Emails&#039;&#039;&#039;. Dentro del popup en el que se muestran las direcciones de email del dominio seleccionado, podrá obtener el identificador en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dirección de email.&lt;br /&gt;
**&#039;&#039;&#039;mailings:&#039;&#039;&#039; Array que especifica los envíos de los que se quieren obtener las estadísticas. Los identificadores de sus envíos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada envío en la [https://panel.mobeleader.com/index.php?sec=134 sección Envíos Transaccionales] para  los envíos transaccionales, en la [https://panel.mobeleader.com/index.php?sec=148 sección Envíos Auto-Responder] para  los envíos autoresponder, en la [https://panel.mobeleader.com/index.php?sec=139 sección Envíos Boletín] para  los envíos boletín y en la [https://panel.mobeleader.com/index.php?sec=138 sección Envíos Marketing] para  los envíos de marketing de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;campaign&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;unique_views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unique_leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;,&amp;quot;soft_bounces&amp;quot;,&amp;quot;hard_bounces&amp;quot;,&amp;quot;or&amp;quot;,&amp;quot;cr&amp;quot;,&amp;quot;ur&amp;quot;,&amp;quot;br&amp;quot;,&amp;quot;rr&amp;quot;,&amp;quot;dr&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;senders&amp;quot;:[&amp;quot;MailingCP&amp;quot;],&lt;br /&gt;
          &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
          &amp;quot;campaignType&amp;quot;:&amp;quot;newsletter&amp;quot;,&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[3,25,27],&lt;br /&gt;
          &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
          &amp;quot;mailings&amp;quot;:[324,17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-02&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por envío con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;mail&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
           &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
           &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
           &amp;quot;campaignType&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
           &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
           &amp;quot;mailings&amp;quot;:[17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Marketing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;ad:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Anuncio&#039;&#039;&#039; o &#039;&#039;&#039;Campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Web&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;creativity:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Creatividad&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;ctr:&#039;&#039;&#039; CTR.&lt;br /&gt;
**&#039;&#039;&#039;validated_leads:&#039;&#039;&#039; registros validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_leads:&#039;&#039;&#039; registros pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_leads:&#039;&#039;&#039; registros totales.&lt;br /&gt;
**&#039;&#039;&#039;rejected_leads:&#039;&#039;&#039; registros rechazados.&lt;br /&gt;
**&#039;&#039;&#039;validated_expenditures:&#039;&#039;&#039; gastos validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_expenditures:&#039;&#039;&#039; gastos pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_expenditures:&#039;&#039;&#039; gastos totales.&lt;br /&gt;
**&#039;&#039;&#039;validated_profits:&#039;&#039;&#039; beneficios validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_profits:&#039;&#039;&#039; beneficios pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_profits:&#039;&#039;&#039; beneficios totales.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica los anuncios o campañas de las que se quiere obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=9 sección Mis Anuncios] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica las webs de las que se quiere obtener las estadísticas. Los identificadores de sus webs los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada web en la [https://panel.mobeleader.com/index.php?sec=17 sección Mis Webs] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;creativities:&#039;&#039;&#039; Array que especifica las creatividades de las que se quiere obtener las estadísticas. Los identificadores de sus creatividades los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada creatividad en la [https://panel.mobeleader.com/index.php?sec=173 sección Mis Creatividades] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;,&amp;quot;creativity&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;ctr&amp;quot;,&amp;quot;validated_leads&amp;quot;,&amp;quot;pending_leads&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;rejected_leads&amp;quot;,&amp;quot;validated_expenditures&amp;quot;,&amp;quot;pending_expenditures&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;validated_profits&amp;quot;,&amp;quot;pending_profits&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3,125,408],&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[95,512],&lt;br /&gt;
          &amp;quot;creativities&amp;quot;:[27,135]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-11&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña y web, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3],&amp;quot;domains&amp;quot;:[95,512]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Miner==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;worker:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;worker&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;wallet:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;wallet&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;workerType:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;tipo de worker&#039;&#039;&#039; (app, web, link, etc).&lt;br /&gt;
**&#039;&#039;&#039;coin:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;divisa&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;payout:&#039;&#039;&#039; pago estimado.&lt;br /&gt;
**&#039;&#039;&#039;hashes:&#039;&#039;&#039; hashes minados.&lt;br /&gt;
**&#039;&#039;&#039;shares:&#039;&#039;&#039; hashes validados.&lt;br /&gt;
**&#039;&#039;&#039;hashrate:&#039;&#039;&#039; hashes por segundo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;workers:&#039;&#039;&#039; Array que especifica los workers de los que se quiere obtener las estadísticas. Los identificadores de sus workers los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada workers en la [https://panel.mobeleader.com/index.php?sec=5 sección Mis Workers] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;wallets:&#039;&#039;&#039; Array que especifica los wallets de los que se quiere obtener las estadísticas. Los identificadores de sus wallets los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada wallet en la [https://panel.mobeleader.com/index.php?sec=1 sección Mis Wallets] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;coins:&#039;&#039;&#039; Array que especifica las divisas de las que se quiere obtener las estadísticas. Puede añadir las siguientes divisas:&lt;br /&gt;
***&#039;&#039;&#039;bcn:&#039;&#039;&#039; Bytecoin.&lt;br /&gt;
***&#039;&#039;&#039;xmr:&#039;&#039;&#039; Monero.&lt;br /&gt;
**&#039;&#039;&#039;workerTypes:&#039;&#039;&#039; Array que especifica los diferentes tipos de workers de los que se quiere obtener las estadísticas. Puede añadir los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;app:&#039;&#039;&#039; aplicación.&lt;br /&gt;
***&#039;&#039;&#039;web:&#039;&#039;&#039; web.&lt;br /&gt;
***&#039;&#039;&#039;wallet:&#039;&#039;&#039; wallet.&lt;br /&gt;
***&#039;&#039;&#039;link:&#039;&#039;&#039; link de redireccionamiento.&lt;br /&gt;
***&#039;&#039;&#039;captcha:&#039;&#039;&#039; captcha de validación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;coin&amp;quot;,&amp;quot;workerType&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;payout&amp;quot;,&amp;quot;hashes&amp;quot;,&amp;quot;shares&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;wallets&amp;quot;:[1,5,6],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;link&amp;quot;,&amp;quot;captcha&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;bcn&amp;quot;,&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-30&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por worker y wallet, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;hashes&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Developer==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;place:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;espacio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;osVersion:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;versión del sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;brand:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;marca del terminal&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks realizados.&lt;br /&gt;
**&#039;&#039;&#039;downloads:&#039;&#039;&#039; descargas obtenidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;oss:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;places:&#039;&#039;&#039; Array que especifica los espacios de los que se quiere obtener las estadísticas. Los identificadores de sus espacios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada espacio en la [https://panel.mobeleader.com/index.php?sec=34 sección Mis Espacios] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;app&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;downloads&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;oss&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por país con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;country&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NickCenter==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;. Este campo solo podrá ser requerido por aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;users:&#039;&#039;&#039; Usuarios dados de alta en cada aplicación. Solo contabiliza el primer registro en NickCenter, no contabiliza otro registro del mismo usuario en otras aplicaciones.&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; Todos los usuarios registrados en base dentro de las fechas seleccionadas, incluidos los que se hayan dado de baja.&lt;br /&gt;
**&#039;&#039;&#039;registered:&#039;&#039;&#039; Usuarios que están registrados en la base de datos.&lt;br /&gt;
**&#039;&#039;&#039;valid:&#039;&#039;&#039; Usuarios que están registrados en la base de datos, con todos los campos requeridos completados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; Usuarios que estuvieron registrados en la base de datos y que se dieron de baja dentro de las fechas seleccionadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader. Este filtro solo ser á válido para aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo y fecha, con todos los filtros, excepto links:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;,&amp;quot;registered&amp;quot;,&amp;quot;valid&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;US&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;],&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Push==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse, exceptuando los campos &#039;&#039;&#039;notification&#039;&#039;&#039; y &#039;&#039;&#039;app&#039;&#039;&#039; (solo podrá seleccionar uno de estos dos campos en una consulta). Si selecciona el campo &#039;&#039;&#039;notification&#039;&#039;&#039;, deberá establecer una app en el campo &#039;&#039;&#039;apps&#039;&#039;&#039; de los filtros. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;notification:&#039;&#039;&#039; Devolverá las estadísticas por cada &#039;&#039;&#039;notificación Push&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;estado&#039;&#039;&#039; de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; el total de los mensajes enviados de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; mensajes enviados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;failed:&#039;&#039;&#039; mensajes enviados y que no han llegado al terminal de destino.&lt;br /&gt;
**&#039;&#039;&#039;erased:&#039;&#039;&#039; mensajes borrados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Especifique una única aplicación en caso de haber seleccionado el campo &#039;&#039;&#039;notification&#039;&#039;&#039; en los filtros. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Array que especifica los estados de las notificaciones de los que se quiere obtener las estadísticas.&lt;br /&gt;
***&#039;&#039;&#039;ready:&#039;&#039;&#039; indica que la notificación ha sido creada correctamente y está en espera de ser verificada.&lt;br /&gt;
***&#039;&#039;&#039;starting:&#039;&#039;&#039;  indica que la notificación ha sido verificada y va ser enviada.&lt;br /&gt;
***&#039;&#039;&#039;sending:&#039;&#039;&#039; indica que la notificación está siendo enviada.&lt;br /&gt;
***&#039;&#039;&#039;finished:&#039;&#039;&#039; indica que el envío de la notificación ha finalizado.&lt;br /&gt;
***&#039;&#039;&#039;stoped:&#039;&#039;&#039; indica que el envío de la notificación ha sido detenido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, estado y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;status&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;,&amp;quot;erased&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;FR&amp;quot;],&lt;br /&gt;
          &amp;quot;estados&amp;quot;:[&amp;quot;sending&amp;quot;,&amp;quot;finished&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por notificación y estado, con algunos de los campos y filtros (en el filtro de &#039;&#039;&#039;apps&#039;&#039;&#039; solo establece una aplicación):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;notification&amp;quot;,&amp;quot;status&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Link Tracking==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. No puede combinarse el campo &#039;&#039;&#039;link&#039;&#039;&#039; con los campos &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;, por lo que si decide incluir el campo &#039;&#039;&#039;link&#039;&#039;&#039; no se mostrarán las estadísticas por &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;field:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;value:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;valor&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; Array que especifica los campos de los que se quiere obtener las estadísticas. Los nombres de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;values:&#039;&#039;&#039; Array que especifica los valores de los campos de los que se quiere obtener las estadísticas. Los valores de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, campo, valor y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;field&amp;quot;,&amp;quot;value&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;fields&amp;quot;:[&amp;quot;campo1&amp;quot;,&amp;quot;campo2&amp;quot;],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;,&amp;quot;valor2&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resultado de las estadísticas=&lt;br /&gt;
Una vez realizada la conexión con la API correctamente, ésta devolverá una respuesta en formato JSON. La respuesta puede contener:&lt;br /&gt;
*Un resultado sin estadísticas.&lt;br /&gt;
*Las estadísticas resultantes de la petición.&lt;br /&gt;
*Un mensaje de error.&lt;br /&gt;
==Resultado vacío==&lt;br /&gt;
Si la petición se ha realizado correctamente, pero la API no ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el siguiente resultado:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;result&amp;quot;:&amp;quot;No result for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resultado con estadísticas==&lt;br /&gt;
Si la petición se ha realizado correctamente, y la API ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el resultado de las estadísticas desglosado por campo, en función de los valores indicados en los campos &#039;&#039;&#039;require&#039;&#039;&#039; y &#039;&#039;&#039;fields&#039;&#039;&#039;. Si además se ha establecido el valor &#039;date&#039; en el campo &#039;&#039;&#039;require&#039;&#039;&#039;, el resultado vendrá desglosado por campo y fecha.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de estadísticas sin fechas:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;0&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;20&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;1&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;23&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;18&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de las mismas estadísticas por fecha:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;2018-10-10&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;2&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;7&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;10&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;2018-10-03&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;4&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;12&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;11&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;9&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;date&amp;quot;:2,&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Error en la petición de estadísticas==&lt;br /&gt;
Si la petición no se ha realizado correctamente, la API devolverá un mensaje, dentro del campo &#039;&#039;&#039;error&#039;&#039;&#039;, indicando la causa de error en la petición. A continuación se muestra los diferentes errores que la API puede devolver:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address. Please ask your account manager for a valid IP.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la IP no está registrada en el sistema de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address for the user key sent. Please check and set &#039;user&#039; parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la dirección IP desde la que se realiza la petición es correcta, pero no está registrada para el usuario introducido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request user found. Please set user parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No data post field found. Please set data post field.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request data found. Please fill your request with proper parameters.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; está vacío.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request type found. Please set type parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong type set, &#039;type_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong user set, &#039;user_key_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request fields found. Please set the fields you want to check.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User has no permission for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario introducido no tiene permisos para realizar ese tipo de consulta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User must wait at least 1 minute for the next request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario ha de esperar al menos un minuto desde la última consulta hasta la siguiente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not found or not properly set. Please set require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not properly set, &#039;require_value_for_error_test&#039; is not a valid require. Please set a valid require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;require&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Some required fields are not correct. &#039;fields_value_for_error_test&#039; is not a valid field. Please set the required fields properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
==Error en las claves RSA==&lt;br /&gt;
Si las claves RSA no han sido configuradas correctamente, el sistema mostrará los siguientes errores:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000d - Missing public RSA Key for user key &#039;my_user_key&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el sistema no ha podido verificar las claves RSA del usuario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000c - Empty or invalid user key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; no se ha enviado correctamente.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2754</id>
		<title>Documentación API Analytics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2754"/>
		<updated>2019-06-07T10:49:29Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Mailing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
La &#039;&#039;&#039;API Analytics&#039;&#039;&#039; es la plataforma a través de la cual obtener las estadísticas de un usuario. Los datos obtenidos corresponderán a los datos que se obtendrían en las secciones de Analytics de nuestro panel. Las estadísticas serán devueltas en formato JSON.&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar la &#039;&#039;&#039;API Analytics&#039;&#039;&#039; y poder obtener tanto el identificador de usuario como las claves RSA, deberá solicitarlo a su administrador.&lt;br /&gt;
&lt;br /&gt;
En esta documentación se explicará cómo conectar con la API y cómo preparar los datos para realizar la petición de las estadísticas. Los ejemplos ofrecidos están en lenguaje PHP.&lt;br /&gt;
&lt;br /&gt;
=Registro de usuario=&lt;br /&gt;
Al solicitar el acceso a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, es necesario reportar las direcciones IP desde las que se realizarán las peticiones de estadísticas. Así mismo, el usuario deberá actualizar el registro de direcciones IP cuando éstas cambien. El sistema registrará las direcciones IP junto al identificador del usuario, por lo que no permitirá al usuario realizar peticiones si éste no está asociado a las direcciones IP registradas.&lt;br /&gt;
&lt;br /&gt;
=Conexión con la API=&lt;br /&gt;
La conexión con la API para realizar la petición de estadísticas se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa a la API. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa a la API==&lt;br /&gt;
Si desea realizar la petición a la API sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, deberá conectarse mediante POST a la siguiente URL: &#039;&#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;&#039;, añadiendo los parámetros &#039;&#039;&#039;data&#039;&#039;&#039; (JSON con los datos de la petición) y &#039;&#039;&#039;user&#039;&#039;&#039; (string o cadena con el identificador del usuario). En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explicará como obtener el identificador de usuario y como construir el JSON de la petición.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode($requestJson).&#039;&amp;amp;user=&#039;.$userIdString);&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en su carpeta vendor, lo primero que deberá hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras modificar la ruta, para poder instanciar la clase, será necesario obtener la clave &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Boton_rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pulsando en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;, se abrirá un popup en el que podrá obtener las claves RSA.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ha de copiar la cadena perteneciente al campo &#039;&#039;&#039;Private RSA key&#039;&#039;&#039;. Es necesario copiar la cadena completa, incluyendo -----BEGIN RSA PRIVATE KEY----- y -----END RSA PRIVATE KEY-----. Se añadirá la cadena como parámetro (string) del constructor de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;,  tal y como se muestra en el ejemplo siguiente:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez realizadas correctamente la instalación de la librería, la modificación de la ruta de acceso a ésta, y la inserción en el código de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, las llamadas a la API se realizarán a través de la función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;, añadiendo el JSON con los datos de la petición y la cadena con el identificador del usuario. La función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; será la encargada de realizar todas las conexiones a la API, de cifrar los datos que se envíen a ésta y de descifrar los datos que devuelva.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
$responseJson = $apiconnection-&amp;gt;getApiData($userIdString, $requestJson)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explica cómo obtenerla cadena con el identificador de usuario y cómo construir el JSON de la petición&lt;br /&gt;
&lt;br /&gt;
=Petición de estadísticas=&lt;br /&gt;
Para que la petición de estadísticas se realice correctamente, es necesario enviar, dentro de la petición, su identificador de usuario y un JSON en el cual especificar las estadísticas que quiera obtener (campos de las estadísticas, filtros, fechas, etc.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Las peticiones a la API son limitadas&#039;&#039;&#039;. Una vez recibida la respuesta de estadísticas (a excepción de haber devuelto un error), deberá esperar un minuto para hacer la siguiente consulta.&lt;br /&gt;
&lt;br /&gt;
==Identificador de usuario==&lt;br /&gt;
Para realizar la petición de estadísticas a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, lo primero que debe hacer es obtener el identificador de usuario. Para ello diríjase a la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] del Panel de Mobeleader y pulse en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;. Una vez dentro del popup, copie la cadena perteneciente al campo &#039;&#039;&#039;Public Identifier&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Public_id.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JSON de petición de estadísticas==&lt;br /&gt;
Para obtener las estadísticas deseadas, es necesario crear un JSON en el que se especifique:&lt;br /&gt;
#El tipo de petición, especificado en el campo &#039;&#039;&#039;type&#039;&#039;&#039;: minería, desarrollo, etc.&lt;br /&gt;
#Los elementos de los cuales quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;require&#039;&#039;&#039;: por anuncio, por app, por sistema operativo, etc.&lt;br /&gt;
#Las estadísticas que quiera mostrar, especificadas en el campo &#039;&#039;&#039;fields&#039;&#039;&#039;: impresiones, descargas, hashes minados, etc.&lt;br /&gt;
#Los filtros o elementos concretos de los que quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;filters&#039;&#039;&#039;: determinadas apps, bases de datos, etc.&lt;br /&gt;
#Las fechas entre las que quiera delimitar la petición, especificadas en el campo &#039;&#039;&#039;dates&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Tipos==&lt;br /&gt;
Cada tipo de petición devolverá un tipo de estadísticas, en función del tipo de usuario que realice la petición, así como los permisos que le hayan sido otorgados. El tipo de petición se especificará en el campo &#039;&#039;&#039;type&#039;&#039;&#039; del JSON. Los diferentes valores para el tipo de petición son:&lt;br /&gt;
*&#039;&#039;&#039;mailing:&#039;&#039;&#039; Devuelve las estadísticas de los envíos de Mailing. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Mailing&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;marketing:&#039;&#039;&#039; Devuelve las estadísticas de los anuncios. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Agencias&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;miner:&#039;&#039;&#039; Devuelve las estadísticas minería. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Minería&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;developer:&#039;&#039;&#039; Devuelve las estadísticas de las aplicaciones. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Desarrolladores&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;nickcenter:&#039;&#039;&#039; Devuelve las estadísticas de los registros realizados a través de &#039;&#039;&#039;NickCenter&#039;&#039;&#039;. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;NickCenter&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;push:&#039;&#039;&#039; Devuelve las estadísticas generadas por las &#039;&#039;&#039;notificaciones Push&#039;&#039;&#039; de sus aplicaciones enviadas a través de nuestro sistema. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Notificaciones Push&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;linkTracking:&#039;&#039;&#039; Devuelve las estadísticas de descargas por URL tracking. El usuario ha de tener acceso a las sección &#039;&#039;&#039;Link Management&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
&lt;br /&gt;
==Mailing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;db:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Base de datos&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mail:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;envío&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;campaign:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dominio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;sender:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sender&#039;&#039;&#039; (enviador).&lt;br /&gt;
**&#039;&#039;&#039;emailAdress:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dirección de email&#039;&#039;&#039; desde la que se hayan realizado los envíos.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; emails enviados.&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones totales obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;unique_views:&#039;&#039;&#039; impresiones únicas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;leads:&#039;&#039;&#039; registros totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_leads:&#039;&#039;&#039; registros únicos.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; bajas ejecutadas.&lt;br /&gt;
**&#039;&#039;&#039;soft_bounces:&#039;&#039;&#039; soft bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;hard_bounces:&#039;&#039;&#039; hard bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;or:&#039;&#039;&#039; tasa de aperturas.&lt;br /&gt;
**&#039;&#039;&#039;cr:&#039;&#039;&#039; tasa de clicks.&lt;br /&gt;
**&#039;&#039;&#039;ur:&#039;&#039;&#039; tasa de bajas.&lt;br /&gt;
**&#039;&#039;&#039;br:&#039;&#039;&#039; tasa de bonces o rebotados.&lt;br /&gt;
**&#039;&#039;&#039;rr:&#039;&#039;&#039; tasa de reactividad.&lt;br /&gt;
**&#039;&#039;&#039;dr:&#039;&#039;&#039; tasa de entregabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;senders:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;senders&#039;&#039;&#039; o enviadores de los que se quieren obtener las estadísticas. Puede añadir los identificadores &#039;MailingCP&#039; y &#039;AmazonSES&#039;.&lt;br /&gt;
**&#039;&#039;&#039;dataBases:&#039;&#039;&#039; Array que especifica las bases de datos de las que se quieren obtener las estadísticas. Los identificadores de sus bases de datos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada base de datos en la [https://panel.mobeleader.com/index.php?sec=105 sección BBDD] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica las campañas de las que se quieren obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=135 sección Campañas] denuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica los dominios de los que se quieren obtener las estadísticas. Los identificadores de sus dominios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dominio en la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;campaignType:&#039;&#039;&#039; Valor que especifica el tipo de campaña de la que se quiere obtener las estadísticas. Puede elegir entre uno de los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos transaccionales.&lt;br /&gt;
***&#039;&#039;&#039;autoresponder:&#039;&#039;&#039; Para envíos automáticos.&lt;br /&gt;
***&#039;&#039;&#039;newsletter:&#039;&#039;&#039; Para envíos boletín.&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos de marketing.&lt;br /&gt;
**&#039;&#039;&#039;emails:&#039;&#039;&#039; Array que especifica las direcciones de email de las que se quieren obtener las estadísticas. Para obtener los identificadores de sus direcciones de email deberá dirigirse a la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] de nuestro panel. Una vez ahí, pulse en el icono &#039;&#039;&#039;Ver emails&#039;&#039;&#039; en la columna &#039;&#039;&#039;Emails&#039;&#039;&#039;. Dentro del popup en el que se muestran las direcciones de email del dominio seleccionado, podrá obtener el identificador en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dirección de email.&lt;br /&gt;
**&#039;&#039;&#039;mailings:&#039;&#039;&#039; Array que especifica los envíos de los que se quieren obtener las estadísticas. Los identificadores de sus envíos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada envío en la [https://panel.mobeleader.com/index.php?sec=134 sección Envíos Transaccionales] para  los envíos transaccionales, en la [https://panel.mobeleader.com/index.php?sec=148 sección Envíos Auto-Responder] para  los envíos autoresponder, en la [https://panel.mobeleader.com/index.php?sec=139 sección Envíos Boletín] para  los envíos boletín y en la [https://panel.mobeleader.com/index.php?sec=138 sección Envíos Marketing] para  los envíos de marketing de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;campaign&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;unique_views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unique_leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;,&amp;quot;soft_bounces&amp;quot;,&amp;quot;hard_bounces&amp;quot;,&amp;quot;or&amp;quot;,&amp;quot;cr&amp;quot;,&amp;quot;ur&amp;quot;,&amp;quot;br&amp;quot;,&amp;quot;rr&amp;quot;,&amp;quot;dr&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;senders&amp;quot;:[&amp;quot;MailingCP&amp;quot;],&lt;br /&gt;
          &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
          &amp;quot;campaignType&amp;quot;:&amp;quot;newsletter&amp;quot;,&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[3,25,27],&lt;br /&gt;
          &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
          &amp;quot;mailings&amp;quot;:[324,17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-02&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por envío con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;mail&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
           &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
           &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
           &amp;quot;campaignType&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
           &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
           &amp;quot;mailings&amp;quot;:[17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Marketing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;ad:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Anuncio&#039;&#039;&#039; o &#039;&#039;&#039;Campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Web&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;creativity:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Creatividad&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;ctr:&#039;&#039;&#039; CTR.&lt;br /&gt;
**&#039;&#039;&#039;validated_leads:&#039;&#039;&#039; registros validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_leads:&#039;&#039;&#039; registros pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_leads:&#039;&#039;&#039; registros totales.&lt;br /&gt;
**&#039;&#039;&#039;rejected_leads:&#039;&#039;&#039; registros rechazados.&lt;br /&gt;
**&#039;&#039;&#039;validated_expenditures:&#039;&#039;&#039; gastos validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_expenditures:&#039;&#039;&#039; gastos pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_expenditures:&#039;&#039;&#039; gastos totales.&lt;br /&gt;
**&#039;&#039;&#039;validated_profits:&#039;&#039;&#039; beneficios validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_profits:&#039;&#039;&#039; beneficios pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_profits:&#039;&#039;&#039; beneficios totales.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica los anuncios o campañas de las que se quiere obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=9 sección Mis Anuncios] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica las webs de las que se quiere obtener las estadísticas. Los identificadores de sus webs los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada web en la [https://panel.mobeleader.com/index.php?sec=17 sección Mis Webs] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;creativities:&#039;&#039;&#039; Array que especifica las creatividades de las que se quiere obtener las estadísticas. Los identificadores de sus creatividades los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada creatividad en la [https://panel.mobeleader.com/index.php?sec=173 sección Mis Creatividades] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;,&amp;quot;creativity&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;ctr&amp;quot;,&amp;quot;validated_leads&amp;quot;,&amp;quot;pending_leads&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;rejected_leads&amp;quot;,&amp;quot;validated_expenditures&amp;quot;,&amp;quot;pending_expenditures&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;validated_profits&amp;quot;,&amp;quot;pending_profits&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3,125,408],&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[95,512],&lt;br /&gt;
          &amp;quot;creativities&amp;quot;:[27,135]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-11&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña y web, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3],&amp;quot;domains&amp;quot;:[95,512]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Miner==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;worker:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;worker&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;wallet:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;wallet&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;workerType:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;tipo de worker&#039;&#039;&#039; (app, web, link, etc).&lt;br /&gt;
**&#039;&#039;&#039;coin:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;divisa&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;payout:&#039;&#039;&#039; pago estimado.&lt;br /&gt;
**&#039;&#039;&#039;hashes:&#039;&#039;&#039; hashes minados.&lt;br /&gt;
**&#039;&#039;&#039;shares:&#039;&#039;&#039; hashes validados.&lt;br /&gt;
**&#039;&#039;&#039;hashrate:&#039;&#039;&#039; hashes por segundo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;workers:&#039;&#039;&#039; Array que especifica los workers de los que se quiere obtener las estadísticas. Los identificadores de sus workers los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada workers en la [https://panel.mobeleader.com/index.php?sec=5 sección Mis Workers] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;wallets:&#039;&#039;&#039; Array que especifica los wallets de los que se quiere obtener las estadísticas. Los identificadores de sus wallets los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada wallet en la [https://panel.mobeleader.com/index.php?sec=1 sección Mis Wallets] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;coins:&#039;&#039;&#039; Array que especifica las divisas de las que se quiere obtener las estadísticas. Puede añadir las siguientes divisas:&lt;br /&gt;
***&#039;&#039;&#039;bcn:&#039;&#039;&#039; Bytecoin.&lt;br /&gt;
***&#039;&#039;&#039;xmr:&#039;&#039;&#039; Monero.&lt;br /&gt;
**&#039;&#039;&#039;workerTypes:&#039;&#039;&#039; Array que especifica los diferentes tipos de workers de los que se quiere obtener las estadísticas. Puede añadir los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;app:&#039;&#039;&#039; aplicación.&lt;br /&gt;
***&#039;&#039;&#039;web:&#039;&#039;&#039; web.&lt;br /&gt;
***&#039;&#039;&#039;wallet:&#039;&#039;&#039; wallet.&lt;br /&gt;
***&#039;&#039;&#039;link:&#039;&#039;&#039; link de redireccionamiento.&lt;br /&gt;
***&#039;&#039;&#039;captcha:&#039;&#039;&#039; captcha de validación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;coin&amp;quot;,&amp;quot;workerType&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;payout&amp;quot;,&amp;quot;hashes&amp;quot;,&amp;quot;shares&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;wallets&amp;quot;:[1,5,6],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;link&amp;quot;,&amp;quot;captcha&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;bcn&amp;quot;,&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-30&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por worker y wallet, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;hashes&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Developer==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;place:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;espacio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;osVersion:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;versión del sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;brand:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;marca del terminal&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks realizados.&lt;br /&gt;
**&#039;&#039;&#039;downloads:&#039;&#039;&#039; descargas obtenidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;oss:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;places:&#039;&#039;&#039; Array que especifica los espacios de los que se quiere obtener las estadísticas. Los identificadores de sus espacios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada espacio en la [https://panel.mobeleader.com/index.php?sec=34 sección Mis Espacios] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;app&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;downloads&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;oss&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por país con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;country&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NickCenter==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;. Este campo solo podrá ser requerido por aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;users:&#039;&#039;&#039; Usuarios dados de alta en cada aplicación. Solo contabiliza el primer registro en NickCenter, no contabiliza otro registro del mismo usuario en otras aplicaciones.&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; Todos los usuarios registrados en base dentro de las fechas seleccionadas, incluidos los que se hayan dado de baja.&lt;br /&gt;
**&#039;&#039;&#039;registered:&#039;&#039;&#039; Usuarios que están registrados en la base de datos.&lt;br /&gt;
**&#039;&#039;&#039;valid:&#039;&#039;&#039; Usuarios que están registrados en la base de datos, con todos los campos requeridos completados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; Usuarios que estuvieron registrados en la base de datos y que se dieron de baja dentro de las fechas seleccionadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader. Este filtro solo ser á válido para aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo y fecha, con todos los filtros, excepto links:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;,&amp;quot;registered&amp;quot;,&amp;quot;valid&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;US&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;],&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Push==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse, exceptuando los campos &#039;&#039;&#039;notification&#039;&#039;&#039; y &#039;&#039;&#039;app&#039;&#039;&#039; (solo podrá seleccionar uno de estos dos campos en una consulta). Si selecciona el campo &#039;&#039;&#039;notification&#039;&#039;&#039;, deberá establecer una app en el campo &#039;&#039;&#039;apps&#039;&#039;&#039; de los filtros. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;notification:&#039;&#039;&#039; Devolverá las estadísticas por cada &#039;&#039;&#039;notificación Push&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;estado&#039;&#039;&#039; de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; el total de los mensajes enviados de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; mensajes enviados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;failed:&#039;&#039;&#039; mensajes enviados y que no han llegado al terminal de destino.&lt;br /&gt;
**&#039;&#039;&#039;erased:&#039;&#039;&#039; mensajes borrados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Especifique una única aplicación en caso de haber seleccionado el campo &#039;&#039;&#039;notification&#039;&#039;&#039; en los filtros. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Array que especifica los estados de las notificaciones de los que se quiere obtener las estadísticas.&lt;br /&gt;
***&#039;&#039;&#039;ready:&#039;&#039;&#039; indica que la notificación ha sido creada correctamente y está en espera de ser verificada.&lt;br /&gt;
***&#039;&#039;&#039;starting:&#039;&#039;&#039;  indica que la notificación ha sido verificada y va ser enviada.&lt;br /&gt;
***&#039;&#039;&#039;sending:&#039;&#039;&#039; indica que la notificación está siendo enviada.&lt;br /&gt;
***&#039;&#039;&#039;finished:&#039;&#039;&#039; indica que el envío de la notificación ha finalizado.&lt;br /&gt;
***&#039;&#039;&#039;stoped:&#039;&#039;&#039; indica que el envío de la notificación ha sido detenido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, estado y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;status&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;,&amp;quot;erased&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;FR&amp;quot;],&lt;br /&gt;
          &amp;quot;estados&amp;quot;:[&amp;quot;sending&amp;quot;,&amp;quot;finished&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por notificación y estado, con algunos de los campos y filtros (en el filtro de &#039;&#039;&#039;apps&#039;&#039;&#039; solo establece una aplicación):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;notification&amp;quot;,&amp;quot;status&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Link Tracking==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. No puede combinarse el campo &#039;&#039;&#039;link&#039;&#039;&#039; con los campos &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;, por lo que si decide incluir el campo &#039;&#039;&#039;link&#039;&#039;&#039; no se mostrarán las estadísticas por &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;field:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;value:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;valor&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; Array que especifica los campos de los que se quiere obtener las estadísticas. Los nombres de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;values:&#039;&#039;&#039; Array que especifica los valores de los campos de los que se quiere obtener las estadísticas. Los valores de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, campo, valor y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;field&amp;quot;,&amp;quot;value&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;fields&amp;quot;:[&amp;quot;campo1&amp;quot;,&amp;quot;campo2&amp;quot;],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;,&amp;quot;valor2&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resultado de las estadísticas=&lt;br /&gt;
Una vez realizada la conexión con la API correctamente, ésta devolverá una respuesta en formato JSON. La respuesta puede contener:&lt;br /&gt;
*Un resultado sin estadísticas.&lt;br /&gt;
*Las estadísticas resultantes de la petición.&lt;br /&gt;
*Un mensaje de error.&lt;br /&gt;
==Resultado vacío==&lt;br /&gt;
Si la petición se ha realizado correctamente, pero la API no ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el siguiente resultado:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;result&amp;quot;:&amp;quot;No result for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resultado con estadísticas==&lt;br /&gt;
Si la petición se ha realizado correctamente, y la API ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el resultado de las estadísticas desglosado por campo, en función de los valores indicados en los campos &#039;&#039;&#039;require&#039;&#039;&#039; y &#039;&#039;&#039;fields&#039;&#039;&#039;. Si además se ha establecido el valor &#039;date&#039; en el campo &#039;&#039;&#039;require&#039;&#039;&#039;, el resultado vendrá desglosado por campo y fecha.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de estadísticas sin fechas:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;0&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;20&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;1&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;23&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;18&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de las mismas estadísticas por fecha:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;2018-10-10&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;2&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;7&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;10&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;2018-10-03&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;4&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;12&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;11&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;9&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;date&amp;quot;:2,&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Error en la petición de estadísticas==&lt;br /&gt;
Si la petición no se ha realizado correctamente, la API devolverá un mensaje, dentro del campo &#039;&#039;&#039;error&#039;&#039;&#039;, indicando la causa de error en la petición. A continuación se muestra los diferentes errores que la API puede devolver:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address. Please ask your account manager for a valid IP.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la IP no está registrada en el sistema de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address for the user key sent. Please check and set &#039;user&#039; parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la dirección IP desde la que se realiza la petición es correcta, pero no está registrada para el usuario introducido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request user found. Please set user parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No data post field found. Please set data post field.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request data found. Please fill your request with proper parameters.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; está vacío.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request type found. Please set type parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong type set, &#039;type_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong user set, &#039;user_key_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request fields found. Please set the fields you want to check.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User has no permission for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario introducido no tiene permisos para realizar ese tipo de consulta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User must wait at least 1 minute for the next request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario ha de esperar al menos un minuto desde la última consulta hasta la siguiente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not found or not properly set. Please set require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not properly set, &#039;require_value_for_error_test&#039; is not a valid require. Please set a valid require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;require&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Some required fields are not correct. &#039;fields_value_for_error_test&#039; is not a valid field. Please set the required fields properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
==Error en las claves RSA==&lt;br /&gt;
Si las claves RSA no han sido configuradas correctamente, el sistema mostrará los siguientes errores:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000d - Missing public RSA Key for user key &#039;my_user_key&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el sistema no ha podido verificar las claves RSA del usuario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000c - Empty or invalid user key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; no se ha enviado correctamente.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2753</id>
		<title>Documentación API Analytics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2753"/>
		<updated>2019-06-07T10:44:14Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Tipos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
La &#039;&#039;&#039;API Analytics&#039;&#039;&#039; es la plataforma a través de la cual obtener las estadísticas de un usuario. Los datos obtenidos corresponderán a los datos que se obtendrían en las secciones de Analytics de nuestro panel. Las estadísticas serán devueltas en formato JSON.&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar la &#039;&#039;&#039;API Analytics&#039;&#039;&#039; y poder obtener tanto el identificador de usuario como las claves RSA, deberá solicitarlo a su administrador.&lt;br /&gt;
&lt;br /&gt;
En esta documentación se explicará cómo conectar con la API y cómo preparar los datos para realizar la petición de las estadísticas. Los ejemplos ofrecidos están en lenguaje PHP.&lt;br /&gt;
&lt;br /&gt;
=Registro de usuario=&lt;br /&gt;
Al solicitar el acceso a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, es necesario reportar las direcciones IP desde las que se realizarán las peticiones de estadísticas. Así mismo, el usuario deberá actualizar el registro de direcciones IP cuando éstas cambien. El sistema registrará las direcciones IP junto al identificador del usuario, por lo que no permitirá al usuario realizar peticiones si éste no está asociado a las direcciones IP registradas.&lt;br /&gt;
&lt;br /&gt;
=Conexión con la API=&lt;br /&gt;
La conexión con la API para realizar la petición de estadísticas se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa a la API. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa a la API==&lt;br /&gt;
Si desea realizar la petición a la API sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, deberá conectarse mediante POST a la siguiente URL: &#039;&#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;&#039;, añadiendo los parámetros &#039;&#039;&#039;data&#039;&#039;&#039; (JSON con los datos de la petición) y &#039;&#039;&#039;user&#039;&#039;&#039; (string o cadena con el identificador del usuario). En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explicará como obtener el identificador de usuario y como construir el JSON de la petición.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode($requestJson).&#039;&amp;amp;user=&#039;.$userIdString);&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en su carpeta vendor, lo primero que deberá hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras modificar la ruta, para poder instanciar la clase, será necesario obtener la clave &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Boton_rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pulsando en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;, se abrirá un popup en el que podrá obtener las claves RSA.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ha de copiar la cadena perteneciente al campo &#039;&#039;&#039;Private RSA key&#039;&#039;&#039;. Es necesario copiar la cadena completa, incluyendo -----BEGIN RSA PRIVATE KEY----- y -----END RSA PRIVATE KEY-----. Se añadirá la cadena como parámetro (string) del constructor de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;,  tal y como se muestra en el ejemplo siguiente:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez realizadas correctamente la instalación de la librería, la modificación de la ruta de acceso a ésta, y la inserción en el código de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, las llamadas a la API se realizarán a través de la función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;, añadiendo el JSON con los datos de la petición y la cadena con el identificador del usuario. La función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; será la encargada de realizar todas las conexiones a la API, de cifrar los datos que se envíen a ésta y de descifrar los datos que devuelva.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
$responseJson = $apiconnection-&amp;gt;getApiData($userIdString, $requestJson)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explica cómo obtenerla cadena con el identificador de usuario y cómo construir el JSON de la petición&lt;br /&gt;
&lt;br /&gt;
=Petición de estadísticas=&lt;br /&gt;
Para que la petición de estadísticas se realice correctamente, es necesario enviar, dentro de la petición, su identificador de usuario y un JSON en el cual especificar las estadísticas que quiera obtener (campos de las estadísticas, filtros, fechas, etc.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Las peticiones a la API son limitadas&#039;&#039;&#039;. Una vez recibida la respuesta de estadísticas (a excepción de haber devuelto un error), deberá esperar un minuto para hacer la siguiente consulta.&lt;br /&gt;
&lt;br /&gt;
==Identificador de usuario==&lt;br /&gt;
Para realizar la petición de estadísticas a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, lo primero que debe hacer es obtener el identificador de usuario. Para ello diríjase a la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] del Panel de Mobeleader y pulse en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;. Una vez dentro del popup, copie la cadena perteneciente al campo &#039;&#039;&#039;Public Identifier&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Public_id.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JSON de petición de estadísticas==&lt;br /&gt;
Para obtener las estadísticas deseadas, es necesario crear un JSON en el que se especifique:&lt;br /&gt;
#El tipo de petición, especificado en el campo &#039;&#039;&#039;type&#039;&#039;&#039;: minería, desarrollo, etc.&lt;br /&gt;
#Los elementos de los cuales quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;require&#039;&#039;&#039;: por anuncio, por app, por sistema operativo, etc.&lt;br /&gt;
#Las estadísticas que quiera mostrar, especificadas en el campo &#039;&#039;&#039;fields&#039;&#039;&#039;: impresiones, descargas, hashes minados, etc.&lt;br /&gt;
#Los filtros o elementos concretos de los que quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;filters&#039;&#039;&#039;: determinadas apps, bases de datos, etc.&lt;br /&gt;
#Las fechas entre las que quiera delimitar la petición, especificadas en el campo &#039;&#039;&#039;dates&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Tipos==&lt;br /&gt;
Cada tipo de petición devolverá un tipo de estadísticas, en función del tipo de usuario que realice la petición, así como los permisos que le hayan sido otorgados. El tipo de petición se especificará en el campo &#039;&#039;&#039;type&#039;&#039;&#039; del JSON. Los diferentes valores para el tipo de petición son:&lt;br /&gt;
*&#039;&#039;&#039;mailing:&#039;&#039;&#039; Devuelve las estadísticas de los envíos de Mailing. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Mailing&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;marketing:&#039;&#039;&#039; Devuelve las estadísticas de los anuncios. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Agencias&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;miner:&#039;&#039;&#039; Devuelve las estadísticas minería. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Minería&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;developer:&#039;&#039;&#039; Devuelve las estadísticas de las aplicaciones. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Desarrolladores&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;nickcenter:&#039;&#039;&#039; Devuelve las estadísticas de los registros realizados a través de &#039;&#039;&#039;NickCenter&#039;&#039;&#039;. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;NickCenter&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;push:&#039;&#039;&#039; Devuelve las estadísticas generadas por las &#039;&#039;&#039;notificaciones Push&#039;&#039;&#039; de sus aplicaciones enviadas a través de nuestro sistema. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Notificaciones Push&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
*&#039;&#039;&#039;linkTracking:&#039;&#039;&#039; Devuelve las estadísticas de descargas por URL tracking. El usuario ha de tener acceso a las sección &#039;&#039;&#039;Link Management&#039;&#039;&#039; en nuestro panel.&lt;br /&gt;
&lt;br /&gt;
==Mailing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;db:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Base de datos&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mail:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;envío&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;campaign:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dominio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;sender:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sender&#039;&#039;&#039; (enviador).&lt;br /&gt;
**&#039;&#039;&#039;emailAdress:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dirección de email&#039;&#039;&#039; desde la que se hayan realizado los envíos.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; emails enviados.&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones totales obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;unique_views:&#039;&#039;&#039; impresiones únicas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;leads:&#039;&#039;&#039; registros totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_leads:&#039;&#039;&#039; registros únicos.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; bajas ejecutadas.&lt;br /&gt;
**&#039;&#039;&#039;soft_bounces:&#039;&#039;&#039; soft bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;hard_bounces:&#039;&#039;&#039; hard bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;or:&#039;&#039;&#039; tasa de aperturas.&lt;br /&gt;
**&#039;&#039;&#039;cr:&#039;&#039;&#039; tasa de clicks.&lt;br /&gt;
**&#039;&#039;&#039;ur:&#039;&#039;&#039; tasa de bajas.&lt;br /&gt;
**&#039;&#039;&#039;br:&#039;&#039;&#039; tasa de bonces o rebotados.&lt;br /&gt;
**&#039;&#039;&#039;rr:&#039;&#039;&#039; tasa de reactividad.&lt;br /&gt;
**&#039;&#039;&#039;dr:&#039;&#039;&#039; tasa de entregabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;senders:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;senders&#039;&#039;&#039; o enviadores de los que se quieren obtener las estadísticas. Puede añadir los identificadores &#039;MailingCP&#039; y &#039;AmazonSES&#039;.&lt;br /&gt;
**&#039;&#039;&#039;dataBases:&#039;&#039;&#039; Array que especifica las bases de datos de las que se quieren obtener las estadísticas. Los identificadores de sus bases de datos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada base de datos en la [https://panel.mobeleader.com/index.php?sec=105 sección BBDD] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica las campañas de las que se quieren obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=135 sección Campañas] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica los dominios de los que se quieren obtener las estadísticas. Los identificadores de sus dominios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dominio en la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;campaignType:&#039;&#039;&#039; Valor que especifica el tipo de campaña de la que se quiere obtener las estadísticas. Puede elegir entre uno de los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos transaccionales.&lt;br /&gt;
***&#039;&#039;&#039;autoresponder:&#039;&#039;&#039; Para envíos automáticos.&lt;br /&gt;
***&#039;&#039;&#039;newsletter:&#039;&#039;&#039; Para envíos boletín.&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos de marketing.&lt;br /&gt;
**&#039;&#039;&#039;emails:&#039;&#039;&#039; Array que especifica las direcciones de email de las que se quieren obtener las estadísticas. Para obtener los identificadores de sus direcciones de email deberá dirigirse a la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] del Panel de Mobeleader. Una vez ahí, pulse en el icono &#039;&#039;&#039;Ver emails&#039;&#039;&#039; en la columna &#039;&#039;&#039;Emails&#039;&#039;&#039;. Dentro del popup en el que se muestran las direcciones de email del dominio seleccionado, podrá obtener el identificador en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dirección de email.&lt;br /&gt;
**&#039;&#039;&#039;mailings:&#039;&#039;&#039; Array que especifica los envíos de los que se quieren obtener las estadísticas. Los identificadores de sus envíos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada envío en la [https://panel.mobeleader.com/index.php?sec=134 sección Envíos Transaccionales] para  los envíos transaccionales, en la [https://panel.mobeleader.com/index.php?sec=148 sección Envíos Auto-Responder] para  los envíos autoresponder, en la [https://panel.mobeleader.com/index.php?sec=139 sección Envíos Boletín] para  los envíos boletín y en la [https://panel.mobeleader.com/index.php?sec=138 sección Envíos Marketing] para  los envíos de marketing del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;campaign&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;unique_views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unique_leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;,&amp;quot;soft_bounces&amp;quot;,&amp;quot;hard_bounces&amp;quot;,&amp;quot;or&amp;quot;,&amp;quot;cr&amp;quot;,&amp;quot;ur&amp;quot;,&amp;quot;br&amp;quot;,&amp;quot;rr&amp;quot;,&amp;quot;dr&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;senders&amp;quot;:[&amp;quot;MailingCP&amp;quot;],&lt;br /&gt;
          &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
          &amp;quot;campaignType&amp;quot;:&amp;quot;newsletter&amp;quot;,&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[3,25,27],&lt;br /&gt;
          &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
          &amp;quot;mailings&amp;quot;:[324,17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-02&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por envío con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;mail&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
           &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
           &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
           &amp;quot;campaignType&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
           &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
           &amp;quot;mailings&amp;quot;:[17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Marketing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;ad:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Anuncio&#039;&#039;&#039; o &#039;&#039;&#039;Campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Web&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;creativity:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Creatividad&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;ctr:&#039;&#039;&#039; CTR.&lt;br /&gt;
**&#039;&#039;&#039;validated_leads:&#039;&#039;&#039; registros validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_leads:&#039;&#039;&#039; registros pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_leads:&#039;&#039;&#039; registros totales.&lt;br /&gt;
**&#039;&#039;&#039;rejected_leads:&#039;&#039;&#039; registros rechazados.&lt;br /&gt;
**&#039;&#039;&#039;validated_expenditures:&#039;&#039;&#039; gastos validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_expenditures:&#039;&#039;&#039; gastos pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_expenditures:&#039;&#039;&#039; gastos totales.&lt;br /&gt;
**&#039;&#039;&#039;validated_profits:&#039;&#039;&#039; beneficios validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_profits:&#039;&#039;&#039; beneficios pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_profits:&#039;&#039;&#039; beneficios totales.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica los anuncios o campañas de las que se quiere obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=9 sección Mis Anuncios] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica las webs de las que se quiere obtener las estadísticas. Los identificadores de sus webs los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada web en la [https://panel.mobeleader.com/index.php?sec=17 sección Mis Webs] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;creativities:&#039;&#039;&#039; Array que especifica las creatividades de las que se quiere obtener las estadísticas. Los identificadores de sus creatividades los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada creatividad en la [https://panel.mobeleader.com/index.php?sec=173 sección Mis Creatividades] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;,&amp;quot;creativity&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;ctr&amp;quot;,&amp;quot;validated_leads&amp;quot;,&amp;quot;pending_leads&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;rejected_leads&amp;quot;,&amp;quot;validated_expenditures&amp;quot;,&amp;quot;pending_expenditures&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;validated_profits&amp;quot;,&amp;quot;pending_profits&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3,125,408],&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[95,512],&lt;br /&gt;
          &amp;quot;creativities&amp;quot;:[27,135]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-11&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña y web, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3],&amp;quot;domains&amp;quot;:[95,512]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Miner==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;worker:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;worker&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;wallet:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;wallet&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;workerType:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;tipo de worker&#039;&#039;&#039; (app, web, link, etc).&lt;br /&gt;
**&#039;&#039;&#039;coin:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;divisa&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;payout:&#039;&#039;&#039; pago estimado.&lt;br /&gt;
**&#039;&#039;&#039;hashes:&#039;&#039;&#039; hashes minados.&lt;br /&gt;
**&#039;&#039;&#039;shares:&#039;&#039;&#039; hashes validados.&lt;br /&gt;
**&#039;&#039;&#039;hashrate:&#039;&#039;&#039; hashes por segundo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;workers:&#039;&#039;&#039; Array que especifica los workers de los que se quiere obtener las estadísticas. Los identificadores de sus workers los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada workers en la [https://panel.mobeleader.com/index.php?sec=5 sección Mis Workers] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;wallets:&#039;&#039;&#039; Array que especifica los wallets de los que se quiere obtener las estadísticas. Los identificadores de sus wallets los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada wallet en la [https://panel.mobeleader.com/index.php?sec=1 sección Mis Wallets] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;coins:&#039;&#039;&#039; Array que especifica las divisas de las que se quiere obtener las estadísticas. Puede añadir las siguientes divisas:&lt;br /&gt;
***&#039;&#039;&#039;bcn:&#039;&#039;&#039; Bytecoin.&lt;br /&gt;
***&#039;&#039;&#039;xmr:&#039;&#039;&#039; Monero.&lt;br /&gt;
**&#039;&#039;&#039;workerTypes:&#039;&#039;&#039; Array que especifica los diferentes tipos de workers de los que se quiere obtener las estadísticas. Puede añadir los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;app:&#039;&#039;&#039; aplicación.&lt;br /&gt;
***&#039;&#039;&#039;web:&#039;&#039;&#039; web.&lt;br /&gt;
***&#039;&#039;&#039;wallet:&#039;&#039;&#039; wallet.&lt;br /&gt;
***&#039;&#039;&#039;link:&#039;&#039;&#039; link de redireccionamiento.&lt;br /&gt;
***&#039;&#039;&#039;captcha:&#039;&#039;&#039; captcha de validación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;coin&amp;quot;,&amp;quot;workerType&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;payout&amp;quot;,&amp;quot;hashes&amp;quot;,&amp;quot;shares&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;wallets&amp;quot;:[1,5,6],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;link&amp;quot;,&amp;quot;captcha&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;bcn&amp;quot;,&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-30&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por worker y wallet, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;hashes&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Developer==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;place:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;espacio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;osVersion:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;versión del sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;brand:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;marca del terminal&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks realizados.&lt;br /&gt;
**&#039;&#039;&#039;downloads:&#039;&#039;&#039; descargas obtenidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;oss:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;places:&#039;&#039;&#039; Array que especifica los espacios de los que se quiere obtener las estadísticas. Los identificadores de sus espacios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada espacio en la [https://panel.mobeleader.com/index.php?sec=34 sección Mis Espacios] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;app&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;downloads&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;oss&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por país con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;country&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NickCenter==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;. Este campo solo podrá ser requerido por aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;users:&#039;&#039;&#039; Usuarios dados de alta en cada aplicación. Solo contabiliza el primer registro en NickCenter, no contabiliza otro registro del mismo usuario en otras aplicaciones.&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; Todos los usuarios registrados en base dentro de las fechas seleccionadas, incluidos los que se hayan dado de baja.&lt;br /&gt;
**&#039;&#039;&#039;registered:&#039;&#039;&#039; Usuarios que están registrados en la base de datos.&lt;br /&gt;
**&#039;&#039;&#039;valid:&#039;&#039;&#039; Usuarios que están registrados en la base de datos, con todos los campos requeridos completados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; Usuarios que estuvieron registrados en la base de datos y que se dieron de baja dentro de las fechas seleccionadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader. Este filtro solo ser á válido para aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo y fecha, con todos los filtros, excepto links:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;,&amp;quot;registered&amp;quot;,&amp;quot;valid&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;US&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;],&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Push==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse, exceptuando los campos &#039;&#039;&#039;notification&#039;&#039;&#039; y &#039;&#039;&#039;app&#039;&#039;&#039; (solo podrá seleccionar uno de estos dos campos en una consulta). Si selecciona el campo &#039;&#039;&#039;notification&#039;&#039;&#039;, deberá establecer una app en el campo &#039;&#039;&#039;apps&#039;&#039;&#039; de los filtros. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;notification:&#039;&#039;&#039; Devolverá las estadísticas por cada &#039;&#039;&#039;notificación Push&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;estado&#039;&#039;&#039; de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; el total de los mensajes enviados de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; mensajes enviados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;failed:&#039;&#039;&#039; mensajes enviados y que no han llegado al terminal de destino.&lt;br /&gt;
**&#039;&#039;&#039;erased:&#039;&#039;&#039; mensajes borrados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Especifique una única aplicación en caso de haber seleccionado el campo &#039;&#039;&#039;notification&#039;&#039;&#039; en los filtros. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Array que especifica los estados de las notificaciones de los que se quiere obtener las estadísticas.&lt;br /&gt;
***&#039;&#039;&#039;ready:&#039;&#039;&#039; indica que la notificación ha sido creada correctamente y está en espera de ser verificada.&lt;br /&gt;
***&#039;&#039;&#039;starting:&#039;&#039;&#039;  indica que la notificación ha sido verificada y va ser enviada.&lt;br /&gt;
***&#039;&#039;&#039;sending:&#039;&#039;&#039; indica que la notificación está siendo enviada.&lt;br /&gt;
***&#039;&#039;&#039;finished:&#039;&#039;&#039; indica que el envío de la notificación ha finalizado.&lt;br /&gt;
***&#039;&#039;&#039;stoped:&#039;&#039;&#039; indica que el envío de la notificación ha sido detenido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, estado y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;status&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;,&amp;quot;erased&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;FR&amp;quot;],&lt;br /&gt;
          &amp;quot;estados&amp;quot;:[&amp;quot;sending&amp;quot;,&amp;quot;finished&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por notificación y estado, con algunos de los campos y filtros (en el filtro de &#039;&#039;&#039;apps&#039;&#039;&#039; solo establece una aplicación):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;notification&amp;quot;,&amp;quot;status&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Link Tracking==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. No puede combinarse el campo &#039;&#039;&#039;link&#039;&#039;&#039; con los campos &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;, por lo que si decide incluir el campo &#039;&#039;&#039;link&#039;&#039;&#039; no se mostrarán las estadísticas por &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;field:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;value:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;valor&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; Array que especifica los campos de los que se quiere obtener las estadísticas. Los nombres de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;values:&#039;&#039;&#039; Array que especifica los valores de los campos de los que se quiere obtener las estadísticas. Los valores de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, campo, valor y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;field&amp;quot;,&amp;quot;value&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;fields&amp;quot;:[&amp;quot;campo1&amp;quot;,&amp;quot;campo2&amp;quot;],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;,&amp;quot;valor2&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resultado de las estadísticas=&lt;br /&gt;
Una vez realizada la conexión con la API correctamente, ésta devolverá una respuesta en formato JSON. La respuesta puede contener:&lt;br /&gt;
*Un resultado sin estadísticas.&lt;br /&gt;
*Las estadísticas resultantes de la petición.&lt;br /&gt;
*Un mensaje de error.&lt;br /&gt;
==Resultado vacío==&lt;br /&gt;
Si la petición se ha realizado correctamente, pero la API no ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el siguiente resultado:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;result&amp;quot;:&amp;quot;No result for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resultado con estadísticas==&lt;br /&gt;
Si la petición se ha realizado correctamente, y la API ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el resultado de las estadísticas desglosado por campo, en función de los valores indicados en los campos &#039;&#039;&#039;require&#039;&#039;&#039; y &#039;&#039;&#039;fields&#039;&#039;&#039;. Si además se ha establecido el valor &#039;date&#039; en el campo &#039;&#039;&#039;require&#039;&#039;&#039;, el resultado vendrá desglosado por campo y fecha.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de estadísticas sin fechas:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;0&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;20&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;1&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;23&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;18&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de las mismas estadísticas por fecha:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;2018-10-10&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;2&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;7&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;10&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;2018-10-03&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;4&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;12&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;11&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;9&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;date&amp;quot;:2,&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Error en la petición de estadísticas==&lt;br /&gt;
Si la petición no se ha realizado correctamente, la API devolverá un mensaje, dentro del campo &#039;&#039;&#039;error&#039;&#039;&#039;, indicando la causa de error en la petición. A continuación se muestra los diferentes errores que la API puede devolver:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address. Please ask your account manager for a valid IP.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la IP no está registrada en el sistema de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address for the user key sent. Please check and set &#039;user&#039; parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la dirección IP desde la que se realiza la petición es correcta, pero no está registrada para el usuario introducido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request user found. Please set user parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No data post field found. Please set data post field.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request data found. Please fill your request with proper parameters.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; está vacío.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request type found. Please set type parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong type set, &#039;type_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong user set, &#039;user_key_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request fields found. Please set the fields you want to check.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User has no permission for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario introducido no tiene permisos para realizar ese tipo de consulta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User must wait at least 1 minute for the next request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario ha de esperar al menos un minuto desde la última consulta hasta la siguiente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not found or not properly set. Please set require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not properly set, &#039;require_value_for_error_test&#039; is not a valid require. Please set a valid require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;require&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Some required fields are not correct. &#039;fields_value_for_error_test&#039; is not a valid field. Please set the required fields properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
==Error en las claves RSA==&lt;br /&gt;
Si las claves RSA no han sido configuradas correctamente, el sistema mostrará los siguientes errores:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000d - Missing public RSA Key for user key &#039;my_user_key&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el sistema no ha podido verificar las claves RSA del usuario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000c - Empty or invalid user key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; no se ha enviado correctamente.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2752</id>
		<title>Documentación API Analytics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2752"/>
		<updated>2019-06-07T10:42:07Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Conexión con la API */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
La &#039;&#039;&#039;API Analytics&#039;&#039;&#039; es la plataforma a través de la cual obtener las estadísticas de un usuario. Los datos obtenidos corresponderán a los datos que se obtendrían en las secciones de Analytics de nuestro panel. Las estadísticas serán devueltas en formato JSON.&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar la &#039;&#039;&#039;API Analytics&#039;&#039;&#039; y poder obtener tanto el identificador de usuario como las claves RSA, deberá solicitarlo a su administrador.&lt;br /&gt;
&lt;br /&gt;
En esta documentación se explicará cómo conectar con la API y cómo preparar los datos para realizar la petición de las estadísticas. Los ejemplos ofrecidos están en lenguaje PHP.&lt;br /&gt;
&lt;br /&gt;
=Registro de usuario=&lt;br /&gt;
Al solicitar el acceso a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, es necesario reportar las direcciones IP desde las que se realizarán las peticiones de estadísticas. Así mismo, el usuario deberá actualizar el registro de direcciones IP cuando éstas cambien. El sistema registrará las direcciones IP junto al identificador del usuario, por lo que no permitirá al usuario realizar peticiones si éste no está asociado a las direcciones IP registradas.&lt;br /&gt;
&lt;br /&gt;
=Conexión con la API=&lt;br /&gt;
La conexión con la API para realizar la petición de estadísticas se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa a la API. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa a la API==&lt;br /&gt;
Si desea realizar la petición a la API sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, deberá conectarse mediante POST a la siguiente URL: &#039;&#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;&#039;, añadiendo los parámetros &#039;&#039;&#039;data&#039;&#039;&#039; (JSON con los datos de la petición) y &#039;&#039;&#039;user&#039;&#039;&#039; (string o cadena con el identificador del usuario). En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explicará como obtener el identificador de usuario y como construir el JSON de la petición.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode($requestJson).&#039;&amp;amp;user=&#039;.$userIdString);&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en su carpeta vendor, lo primero que deberá hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras modificar la ruta, para poder instanciar la clase, será necesario obtener la clave &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] de nuestro panel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Boton_rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pulsando en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;, se abrirá un popup en el que podrá obtener las claves RSA.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ha de copiar la cadena perteneciente al campo &#039;&#039;&#039;Private RSA key&#039;&#039;&#039;. Es necesario copiar la cadena completa, incluyendo -----BEGIN RSA PRIVATE KEY----- y -----END RSA PRIVATE KEY-----. Se añadirá la cadena como parámetro (string) del constructor de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;,  tal y como se muestra en el ejemplo siguiente:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez realizadas correctamente la instalación de la librería, la modificación de la ruta de acceso a ésta, y la inserción en el código de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, las llamadas a la API se realizarán a través de la función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;, añadiendo el JSON con los datos de la petición y la cadena con el identificador del usuario. La función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; será la encargada de realizar todas las conexiones a la API, de cifrar los datos que se envíen a ésta y de descifrar los datos que devuelva.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
$responseJson = $apiconnection-&amp;gt;getApiData($userIdString, $requestJson)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explica cómo obtenerla cadena con el identificador de usuario y cómo construir el JSON de la petición&lt;br /&gt;
&lt;br /&gt;
=Petición de estadísticas=&lt;br /&gt;
Para que la petición de estadísticas se realice correctamente, es necesario enviar, dentro de la petición, su identificador de usuario y un JSON en el cual especificar las estadísticas que quiera obtener (campos de las estadísticas, filtros, fechas, etc.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Las peticiones a la API son limitadas&#039;&#039;&#039;. Una vez recibida la respuesta de estadísticas (a excepción de haber devuelto un error), deberá esperar un minuto para hacer la siguiente consulta.&lt;br /&gt;
&lt;br /&gt;
==Identificador de usuario==&lt;br /&gt;
Para realizar la petición de estadísticas a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, lo primero que debe hacer es obtener el identificador de usuario. Para ello diríjase a la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] del Panel de Mobeleader y pulse en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;. Una vez dentro del popup, copie la cadena perteneciente al campo &#039;&#039;&#039;Public Identifier&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Public_id.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JSON de petición de estadísticas==&lt;br /&gt;
Para obtener las estadísticas deseadas, es necesario crear un JSON en el que se especifique:&lt;br /&gt;
#El tipo de petición, especificado en el campo &#039;&#039;&#039;type&#039;&#039;&#039;: minería, desarrollo, etc.&lt;br /&gt;
#Los elementos de los cuales quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;require&#039;&#039;&#039;: por anuncio, por app, por sistema operativo, etc.&lt;br /&gt;
#Las estadísticas que quiera mostrar, especificadas en el campo &#039;&#039;&#039;fields&#039;&#039;&#039;: impresiones, descargas, hashes minados, etc.&lt;br /&gt;
#Los filtros o elementos concretos de los que quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;filters&#039;&#039;&#039;: determinadas apps, bases de datos, etc.&lt;br /&gt;
#Las fechas entre las que quiera delimitar la petición, especificadas en el campo &#039;&#039;&#039;dates&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Tipos==&lt;br /&gt;
Cada tipo de petición devolverá un tipo de estadísticas, en función del tipo de usuario que realice la petición, así como los permisos que le hayan sido otorgados. El tipo de petición se especificará en el campo &#039;&#039;&#039;type&#039;&#039;&#039; del JSON. Los diferentes valores para el tipo de petición son:&lt;br /&gt;
*&#039;&#039;&#039;mailing:&#039;&#039;&#039; Devuelve las estadísticas de los envíos de Mailing. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Mailing&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;marketing:&#039;&#039;&#039; Devuelve las estadísticas de los anuncios. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Agencias&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;miner:&#039;&#039;&#039; Devuelve las estadísticas minería. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Minería&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;developer:&#039;&#039;&#039; Devuelve las estadísticas de las aplicaciones. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Desarrolladores&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;nickcenter:&#039;&#039;&#039; Devuelve las estadísticas de los registros realizados a través de &#039;&#039;&#039;NickCenter&#039;&#039;&#039;. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;NickCenter&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;push:&#039;&#039;&#039; Devuelve las estadísticas generadas por las &#039;&#039;&#039;notificaciones Push&#039;&#039;&#039; de sus aplicaciones enviadas a través de Mobeleader. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Notificaciones Push&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;linkTracking:&#039;&#039;&#039; Devuelve las estadísticas de descargas por URL tracking. El usuario ha de tener acceso a las sección &#039;&#039;&#039;Link Management&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
==Mailing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;db:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Base de datos&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mail:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;envío&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;campaign:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dominio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;sender:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sender&#039;&#039;&#039; (enviador).&lt;br /&gt;
**&#039;&#039;&#039;emailAdress:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dirección de email&#039;&#039;&#039; desde la que se hayan realizado los envíos.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; emails enviados.&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones totales obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;unique_views:&#039;&#039;&#039; impresiones únicas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;leads:&#039;&#039;&#039; registros totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_leads:&#039;&#039;&#039; registros únicos.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; bajas ejecutadas.&lt;br /&gt;
**&#039;&#039;&#039;soft_bounces:&#039;&#039;&#039; soft bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;hard_bounces:&#039;&#039;&#039; hard bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;or:&#039;&#039;&#039; tasa de aperturas.&lt;br /&gt;
**&#039;&#039;&#039;cr:&#039;&#039;&#039; tasa de clicks.&lt;br /&gt;
**&#039;&#039;&#039;ur:&#039;&#039;&#039; tasa de bajas.&lt;br /&gt;
**&#039;&#039;&#039;br:&#039;&#039;&#039; tasa de bonces o rebotados.&lt;br /&gt;
**&#039;&#039;&#039;rr:&#039;&#039;&#039; tasa de reactividad.&lt;br /&gt;
**&#039;&#039;&#039;dr:&#039;&#039;&#039; tasa de entregabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;senders:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;senders&#039;&#039;&#039; o enviadores de los que se quieren obtener las estadísticas. Puede añadir los identificadores &#039;MailingCP&#039; y &#039;AmazonSES&#039;.&lt;br /&gt;
**&#039;&#039;&#039;dataBases:&#039;&#039;&#039; Array que especifica las bases de datos de las que se quieren obtener las estadísticas. Los identificadores de sus bases de datos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada base de datos en la [https://panel.mobeleader.com/index.php?sec=105 sección BBDD] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica las campañas de las que se quieren obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=135 sección Campañas] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica los dominios de los que se quieren obtener las estadísticas. Los identificadores de sus dominios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dominio en la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;campaignType:&#039;&#039;&#039; Valor que especifica el tipo de campaña de la que se quiere obtener las estadísticas. Puede elegir entre uno de los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos transaccionales.&lt;br /&gt;
***&#039;&#039;&#039;autoresponder:&#039;&#039;&#039; Para envíos automáticos.&lt;br /&gt;
***&#039;&#039;&#039;newsletter:&#039;&#039;&#039; Para envíos boletín.&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos de marketing.&lt;br /&gt;
**&#039;&#039;&#039;emails:&#039;&#039;&#039; Array que especifica las direcciones de email de las que se quieren obtener las estadísticas. Para obtener los identificadores de sus direcciones de email deberá dirigirse a la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] del Panel de Mobeleader. Una vez ahí, pulse en el icono &#039;&#039;&#039;Ver emails&#039;&#039;&#039; en la columna &#039;&#039;&#039;Emails&#039;&#039;&#039;. Dentro del popup en el que se muestran las direcciones de email del dominio seleccionado, podrá obtener el identificador en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dirección de email.&lt;br /&gt;
**&#039;&#039;&#039;mailings:&#039;&#039;&#039; Array que especifica los envíos de los que se quieren obtener las estadísticas. Los identificadores de sus envíos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada envío en la [https://panel.mobeleader.com/index.php?sec=134 sección Envíos Transaccionales] para  los envíos transaccionales, en la [https://panel.mobeleader.com/index.php?sec=148 sección Envíos Auto-Responder] para  los envíos autoresponder, en la [https://panel.mobeleader.com/index.php?sec=139 sección Envíos Boletín] para  los envíos boletín y en la [https://panel.mobeleader.com/index.php?sec=138 sección Envíos Marketing] para  los envíos de marketing del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;campaign&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;unique_views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unique_leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;,&amp;quot;soft_bounces&amp;quot;,&amp;quot;hard_bounces&amp;quot;,&amp;quot;or&amp;quot;,&amp;quot;cr&amp;quot;,&amp;quot;ur&amp;quot;,&amp;quot;br&amp;quot;,&amp;quot;rr&amp;quot;,&amp;quot;dr&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;senders&amp;quot;:[&amp;quot;MailingCP&amp;quot;],&lt;br /&gt;
          &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
          &amp;quot;campaignType&amp;quot;:&amp;quot;newsletter&amp;quot;,&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[3,25,27],&lt;br /&gt;
          &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
          &amp;quot;mailings&amp;quot;:[324,17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-02&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por envío con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;mail&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
           &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
           &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
           &amp;quot;campaignType&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
           &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
           &amp;quot;mailings&amp;quot;:[17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Marketing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;ad:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Anuncio&#039;&#039;&#039; o &#039;&#039;&#039;Campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Web&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;creativity:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Creatividad&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;ctr:&#039;&#039;&#039; CTR.&lt;br /&gt;
**&#039;&#039;&#039;validated_leads:&#039;&#039;&#039; registros validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_leads:&#039;&#039;&#039; registros pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_leads:&#039;&#039;&#039; registros totales.&lt;br /&gt;
**&#039;&#039;&#039;rejected_leads:&#039;&#039;&#039; registros rechazados.&lt;br /&gt;
**&#039;&#039;&#039;validated_expenditures:&#039;&#039;&#039; gastos validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_expenditures:&#039;&#039;&#039; gastos pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_expenditures:&#039;&#039;&#039; gastos totales.&lt;br /&gt;
**&#039;&#039;&#039;validated_profits:&#039;&#039;&#039; beneficios validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_profits:&#039;&#039;&#039; beneficios pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_profits:&#039;&#039;&#039; beneficios totales.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica los anuncios o campañas de las que se quiere obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=9 sección Mis Anuncios] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica las webs de las que se quiere obtener las estadísticas. Los identificadores de sus webs los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada web en la [https://panel.mobeleader.com/index.php?sec=17 sección Mis Webs] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;creativities:&#039;&#039;&#039; Array que especifica las creatividades de las que se quiere obtener las estadísticas. Los identificadores de sus creatividades los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada creatividad en la [https://panel.mobeleader.com/index.php?sec=173 sección Mis Creatividades] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;,&amp;quot;creativity&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;ctr&amp;quot;,&amp;quot;validated_leads&amp;quot;,&amp;quot;pending_leads&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;rejected_leads&amp;quot;,&amp;quot;validated_expenditures&amp;quot;,&amp;quot;pending_expenditures&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;validated_profits&amp;quot;,&amp;quot;pending_profits&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3,125,408],&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[95,512],&lt;br /&gt;
          &amp;quot;creativities&amp;quot;:[27,135]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-11&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña y web, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3],&amp;quot;domains&amp;quot;:[95,512]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Miner==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;worker:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;worker&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;wallet:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;wallet&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;workerType:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;tipo de worker&#039;&#039;&#039; (app, web, link, etc).&lt;br /&gt;
**&#039;&#039;&#039;coin:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;divisa&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;payout:&#039;&#039;&#039; pago estimado.&lt;br /&gt;
**&#039;&#039;&#039;hashes:&#039;&#039;&#039; hashes minados.&lt;br /&gt;
**&#039;&#039;&#039;shares:&#039;&#039;&#039; hashes validados.&lt;br /&gt;
**&#039;&#039;&#039;hashrate:&#039;&#039;&#039; hashes por segundo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;workers:&#039;&#039;&#039; Array que especifica los workers de los que se quiere obtener las estadísticas. Los identificadores de sus workers los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada workers en la [https://panel.mobeleader.com/index.php?sec=5 sección Mis Workers] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;wallets:&#039;&#039;&#039; Array que especifica los wallets de los que se quiere obtener las estadísticas. Los identificadores de sus wallets los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada wallet en la [https://panel.mobeleader.com/index.php?sec=1 sección Mis Wallets] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;coins:&#039;&#039;&#039; Array que especifica las divisas de las que se quiere obtener las estadísticas. Puede añadir las siguientes divisas:&lt;br /&gt;
***&#039;&#039;&#039;bcn:&#039;&#039;&#039; Bytecoin.&lt;br /&gt;
***&#039;&#039;&#039;xmr:&#039;&#039;&#039; Monero.&lt;br /&gt;
**&#039;&#039;&#039;workerTypes:&#039;&#039;&#039; Array que especifica los diferentes tipos de workers de los que se quiere obtener las estadísticas. Puede añadir los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;app:&#039;&#039;&#039; aplicación.&lt;br /&gt;
***&#039;&#039;&#039;web:&#039;&#039;&#039; web.&lt;br /&gt;
***&#039;&#039;&#039;wallet:&#039;&#039;&#039; wallet.&lt;br /&gt;
***&#039;&#039;&#039;link:&#039;&#039;&#039; link de redireccionamiento.&lt;br /&gt;
***&#039;&#039;&#039;captcha:&#039;&#039;&#039; captcha de validación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;coin&amp;quot;,&amp;quot;workerType&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;payout&amp;quot;,&amp;quot;hashes&amp;quot;,&amp;quot;shares&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;wallets&amp;quot;:[1,5,6],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;link&amp;quot;,&amp;quot;captcha&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;bcn&amp;quot;,&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-30&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por worker y wallet, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;hashes&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Developer==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;place:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;espacio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;osVersion:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;versión del sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;brand:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;marca del terminal&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks realizados.&lt;br /&gt;
**&#039;&#039;&#039;downloads:&#039;&#039;&#039; descargas obtenidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;oss:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;places:&#039;&#039;&#039; Array que especifica los espacios de los que se quiere obtener las estadísticas. Los identificadores de sus espacios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada espacio en la [https://panel.mobeleader.com/index.php?sec=34 sección Mis Espacios] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;app&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;downloads&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;oss&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por país con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;country&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NickCenter==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;. Este campo solo podrá ser requerido por aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;users:&#039;&#039;&#039; Usuarios dados de alta en cada aplicación. Solo contabiliza el primer registro en NickCenter, no contabiliza otro registro del mismo usuario en otras aplicaciones.&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; Todos los usuarios registrados en base dentro de las fechas seleccionadas, incluidos los que se hayan dado de baja.&lt;br /&gt;
**&#039;&#039;&#039;registered:&#039;&#039;&#039; Usuarios que están registrados en la base de datos.&lt;br /&gt;
**&#039;&#039;&#039;valid:&#039;&#039;&#039; Usuarios que están registrados en la base de datos, con todos los campos requeridos completados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; Usuarios que estuvieron registrados en la base de datos y que se dieron de baja dentro de las fechas seleccionadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader. Este filtro solo ser á válido para aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo y fecha, con todos los filtros, excepto links:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;,&amp;quot;registered&amp;quot;,&amp;quot;valid&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;US&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;],&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Push==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse, exceptuando los campos &#039;&#039;&#039;notification&#039;&#039;&#039; y &#039;&#039;&#039;app&#039;&#039;&#039; (solo podrá seleccionar uno de estos dos campos en una consulta). Si selecciona el campo &#039;&#039;&#039;notification&#039;&#039;&#039;, deberá establecer una app en el campo &#039;&#039;&#039;apps&#039;&#039;&#039; de los filtros. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;notification:&#039;&#039;&#039; Devolverá las estadísticas por cada &#039;&#039;&#039;notificación Push&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;estado&#039;&#039;&#039; de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; el total de los mensajes enviados de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; mensajes enviados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;failed:&#039;&#039;&#039; mensajes enviados y que no han llegado al terminal de destino.&lt;br /&gt;
**&#039;&#039;&#039;erased:&#039;&#039;&#039; mensajes borrados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Especifique una única aplicación en caso de haber seleccionado el campo &#039;&#039;&#039;notification&#039;&#039;&#039; en los filtros. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Array que especifica los estados de las notificaciones de los que se quiere obtener las estadísticas.&lt;br /&gt;
***&#039;&#039;&#039;ready:&#039;&#039;&#039; indica que la notificación ha sido creada correctamente y está en espera de ser verificada.&lt;br /&gt;
***&#039;&#039;&#039;starting:&#039;&#039;&#039;  indica que la notificación ha sido verificada y va ser enviada.&lt;br /&gt;
***&#039;&#039;&#039;sending:&#039;&#039;&#039; indica que la notificación está siendo enviada.&lt;br /&gt;
***&#039;&#039;&#039;finished:&#039;&#039;&#039; indica que el envío de la notificación ha finalizado.&lt;br /&gt;
***&#039;&#039;&#039;stoped:&#039;&#039;&#039; indica que el envío de la notificación ha sido detenido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, estado y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;status&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;,&amp;quot;erased&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;FR&amp;quot;],&lt;br /&gt;
          &amp;quot;estados&amp;quot;:[&amp;quot;sending&amp;quot;,&amp;quot;finished&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por notificación y estado, con algunos de los campos y filtros (en el filtro de &#039;&#039;&#039;apps&#039;&#039;&#039; solo establece una aplicación):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;notification&amp;quot;,&amp;quot;status&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Link Tracking==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. No puede combinarse el campo &#039;&#039;&#039;link&#039;&#039;&#039; con los campos &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;, por lo que si decide incluir el campo &#039;&#039;&#039;link&#039;&#039;&#039; no se mostrarán las estadísticas por &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;field:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;value:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;valor&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; Array que especifica los campos de los que se quiere obtener las estadísticas. Los nombres de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;values:&#039;&#039;&#039; Array que especifica los valores de los campos de los que se quiere obtener las estadísticas. Los valores de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, campo, valor y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;field&amp;quot;,&amp;quot;value&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;fields&amp;quot;:[&amp;quot;campo1&amp;quot;,&amp;quot;campo2&amp;quot;],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;,&amp;quot;valor2&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resultado de las estadísticas=&lt;br /&gt;
Una vez realizada la conexión con la API correctamente, ésta devolverá una respuesta en formato JSON. La respuesta puede contener:&lt;br /&gt;
*Un resultado sin estadísticas.&lt;br /&gt;
*Las estadísticas resultantes de la petición.&lt;br /&gt;
*Un mensaje de error.&lt;br /&gt;
==Resultado vacío==&lt;br /&gt;
Si la petición se ha realizado correctamente, pero la API no ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el siguiente resultado:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;result&amp;quot;:&amp;quot;No result for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resultado con estadísticas==&lt;br /&gt;
Si la petición se ha realizado correctamente, y la API ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el resultado de las estadísticas desglosado por campo, en función de los valores indicados en los campos &#039;&#039;&#039;require&#039;&#039;&#039; y &#039;&#039;&#039;fields&#039;&#039;&#039;. Si además se ha establecido el valor &#039;date&#039; en el campo &#039;&#039;&#039;require&#039;&#039;&#039;, el resultado vendrá desglosado por campo y fecha.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de estadísticas sin fechas:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;0&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;20&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;1&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;23&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;18&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de las mismas estadísticas por fecha:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;2018-10-10&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;2&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;7&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;10&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;2018-10-03&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;4&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;12&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;11&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;9&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;date&amp;quot;:2,&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Error en la petición de estadísticas==&lt;br /&gt;
Si la petición no se ha realizado correctamente, la API devolverá un mensaje, dentro del campo &#039;&#039;&#039;error&#039;&#039;&#039;, indicando la causa de error en la petición. A continuación se muestra los diferentes errores que la API puede devolver:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address. Please ask your account manager for a valid IP.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la IP no está registrada en el sistema de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address for the user key sent. Please check and set &#039;user&#039; parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la dirección IP desde la que se realiza la petición es correcta, pero no está registrada para el usuario introducido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request user found. Please set user parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No data post field found. Please set data post field.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request data found. Please fill your request with proper parameters.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; está vacío.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request type found. Please set type parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong type set, &#039;type_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong user set, &#039;user_key_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request fields found. Please set the fields you want to check.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User has no permission for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario introducido no tiene permisos para realizar ese tipo de consulta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User must wait at least 1 minute for the next request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario ha de esperar al menos un minuto desde la última consulta hasta la siguiente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not found or not properly set. Please set require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not properly set, &#039;require_value_for_error_test&#039; is not a valid require. Please set a valid require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;require&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Some required fields are not correct. &#039;fields_value_for_error_test&#039; is not a valid field. Please set the required fields properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
==Error en las claves RSA==&lt;br /&gt;
Si las claves RSA no han sido configuradas correctamente, el sistema mostrará los siguientes errores:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000d - Missing public RSA Key for user key &#039;my_user_key&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el sistema no ha podido verificar las claves RSA del usuario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000c - Empty or invalid user key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; no se ha enviado correctamente.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2751</id>
		<title>Documentación API Analytics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2751"/>
		<updated>2019-06-07T10:40:12Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Registro de usuario */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
La &#039;&#039;&#039;API Analytics&#039;&#039;&#039; es la plataforma a través de la cual obtener las estadísticas de un usuario. Los datos obtenidos corresponderán a los datos que se obtendrían en las secciones de Analytics de nuestro panel. Las estadísticas serán devueltas en formato JSON.&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar la &#039;&#039;&#039;API Analytics&#039;&#039;&#039; y poder obtener tanto el identificador de usuario como las claves RSA, deberá solicitarlo a su administrador.&lt;br /&gt;
&lt;br /&gt;
En esta documentación se explicará cómo conectar con la API y cómo preparar los datos para realizar la petición de las estadísticas. Los ejemplos ofrecidos están en lenguaje PHP.&lt;br /&gt;
&lt;br /&gt;
=Registro de usuario=&lt;br /&gt;
Al solicitar el acceso a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, es necesario reportar las direcciones IP desde las que se realizarán las peticiones de estadísticas. Así mismo, el usuario deberá actualizar el registro de direcciones IP cuando éstas cambien. El sistema registrará las direcciones IP junto al identificador del usuario, por lo que no permitirá al usuario realizar peticiones si éste no está asociado a las direcciones IP registradas.&lt;br /&gt;
&lt;br /&gt;
=Conexión con la API=&lt;br /&gt;
La conexión con la API para realizar la petición de estadísticas se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa a la API. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039; creada por Mobeleader. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa a la API==&lt;br /&gt;
Si desea realizar la petición a la API sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, deberá conectarse mediante POST a la siguiente URL: &#039;&#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;&#039;, añadiendo los parámetros &#039;&#039;&#039;data&#039;&#039;&#039; (JSON con los datos de la petición) y &#039;&#039;&#039;user&#039;&#039;&#039; (string o cadena con el identificador del usuario). En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explicará como obtener el identificador de usuario y como construir el JSON de la petición.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode($requestJson).&#039;&amp;amp;user=&#039;.$userIdString);&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en su carpeta vendor, lo primero que deberá hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras modificar la ruta, para poder instanciar la clase, será necesario obtener la clave &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Boton_rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pulsando en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;, se abrirá un popup en el que podrá obtener las claves RSA.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ha de copiar la cadena perteneciente al campo &#039;&#039;&#039;Private RSA key&#039;&#039;&#039;. Es necesario copiar la cadena completa, incluyendo -----BEGIN RSA PRIVATE KEY----- y -----END RSA PRIVATE KEY-----. Se añadirá la cadena como parámetro (string) del constructor de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;,  tal y como se muestra en el ejemplo siguiente:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez realizadas correctamente la instalación de la librería, la modificación de la ruta de acceso a ésta, y la inserción en el código de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, las llamadas a la API se realizarán a través de la función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;, añadiendo el JSON con los datos de la petición y la cadena con el identificador del usuario. La función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; será la encargada de realizar todas las conexiones a la API, de cifrar los datos que se envíen a ésta y de descifrar los datos que devuelva.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
$responseJson = $apiconnection-&amp;gt;getApiData($userIdString, $requestJson)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explica cómo obtenerla cadena con el identificador de usuario y cómo construir el JSON de la petición&lt;br /&gt;
&lt;br /&gt;
=Petición de estadísticas=&lt;br /&gt;
Para que la petición de estadísticas se realice correctamente, es necesario enviar, dentro de la petición, su identificador de usuario y un JSON en el cual especificar las estadísticas que quiera obtener (campos de las estadísticas, filtros, fechas, etc.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Las peticiones a la API son limitadas&#039;&#039;&#039;. Una vez recibida la respuesta de estadísticas (a excepción de haber devuelto un error), deberá esperar un minuto para hacer la siguiente consulta.&lt;br /&gt;
&lt;br /&gt;
==Identificador de usuario==&lt;br /&gt;
Para realizar la petición de estadísticas a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, lo primero que debe hacer es obtener el identificador de usuario. Para ello diríjase a la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] del Panel de Mobeleader y pulse en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;. Una vez dentro del popup, copie la cadena perteneciente al campo &#039;&#039;&#039;Public Identifier&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Public_id.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JSON de petición de estadísticas==&lt;br /&gt;
Para obtener las estadísticas deseadas, es necesario crear un JSON en el que se especifique:&lt;br /&gt;
#El tipo de petición, especificado en el campo &#039;&#039;&#039;type&#039;&#039;&#039;: minería, desarrollo, etc.&lt;br /&gt;
#Los elementos de los cuales quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;require&#039;&#039;&#039;: por anuncio, por app, por sistema operativo, etc.&lt;br /&gt;
#Las estadísticas que quiera mostrar, especificadas en el campo &#039;&#039;&#039;fields&#039;&#039;&#039;: impresiones, descargas, hashes minados, etc.&lt;br /&gt;
#Los filtros o elementos concretos de los que quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;filters&#039;&#039;&#039;: determinadas apps, bases de datos, etc.&lt;br /&gt;
#Las fechas entre las que quiera delimitar la petición, especificadas en el campo &#039;&#039;&#039;dates&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Tipos==&lt;br /&gt;
Cada tipo de petición devolverá un tipo de estadísticas, en función del tipo de usuario que realice la petición, así como los permisos que le hayan sido otorgados. El tipo de petición se especificará en el campo &#039;&#039;&#039;type&#039;&#039;&#039; del JSON. Los diferentes valores para el tipo de petición son:&lt;br /&gt;
*&#039;&#039;&#039;mailing:&#039;&#039;&#039; Devuelve las estadísticas de los envíos de Mailing. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Mailing&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;marketing:&#039;&#039;&#039; Devuelve las estadísticas de los anuncios. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Agencias&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;miner:&#039;&#039;&#039; Devuelve las estadísticas minería. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Minería&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;developer:&#039;&#039;&#039; Devuelve las estadísticas de las aplicaciones. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Desarrolladores&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;nickcenter:&#039;&#039;&#039; Devuelve las estadísticas de los registros realizados a través de &#039;&#039;&#039;NickCenter&#039;&#039;&#039;. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;NickCenter&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;push:&#039;&#039;&#039; Devuelve las estadísticas generadas por las &#039;&#039;&#039;notificaciones Push&#039;&#039;&#039; de sus aplicaciones enviadas a través de Mobeleader. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Notificaciones Push&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;linkTracking:&#039;&#039;&#039; Devuelve las estadísticas de descargas por URL tracking. El usuario ha de tener acceso a las sección &#039;&#039;&#039;Link Management&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
==Mailing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;db:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Base de datos&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mail:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;envío&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;campaign:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dominio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;sender:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sender&#039;&#039;&#039; (enviador).&lt;br /&gt;
**&#039;&#039;&#039;emailAdress:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dirección de email&#039;&#039;&#039; desde la que se hayan realizado los envíos.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; emails enviados.&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones totales obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;unique_views:&#039;&#039;&#039; impresiones únicas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;leads:&#039;&#039;&#039; registros totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_leads:&#039;&#039;&#039; registros únicos.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; bajas ejecutadas.&lt;br /&gt;
**&#039;&#039;&#039;soft_bounces:&#039;&#039;&#039; soft bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;hard_bounces:&#039;&#039;&#039; hard bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;or:&#039;&#039;&#039; tasa de aperturas.&lt;br /&gt;
**&#039;&#039;&#039;cr:&#039;&#039;&#039; tasa de clicks.&lt;br /&gt;
**&#039;&#039;&#039;ur:&#039;&#039;&#039; tasa de bajas.&lt;br /&gt;
**&#039;&#039;&#039;br:&#039;&#039;&#039; tasa de bonces o rebotados.&lt;br /&gt;
**&#039;&#039;&#039;rr:&#039;&#039;&#039; tasa de reactividad.&lt;br /&gt;
**&#039;&#039;&#039;dr:&#039;&#039;&#039; tasa de entregabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;senders:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;senders&#039;&#039;&#039; o enviadores de los que se quieren obtener las estadísticas. Puede añadir los identificadores &#039;MailingCP&#039; y &#039;AmazonSES&#039;.&lt;br /&gt;
**&#039;&#039;&#039;dataBases:&#039;&#039;&#039; Array que especifica las bases de datos de las que se quieren obtener las estadísticas. Los identificadores de sus bases de datos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada base de datos en la [https://panel.mobeleader.com/index.php?sec=105 sección BBDD] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica las campañas de las que se quieren obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=135 sección Campañas] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica los dominios de los que se quieren obtener las estadísticas. Los identificadores de sus dominios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dominio en la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;campaignType:&#039;&#039;&#039; Valor que especifica el tipo de campaña de la que se quiere obtener las estadísticas. Puede elegir entre uno de los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos transaccionales.&lt;br /&gt;
***&#039;&#039;&#039;autoresponder:&#039;&#039;&#039; Para envíos automáticos.&lt;br /&gt;
***&#039;&#039;&#039;newsletter:&#039;&#039;&#039; Para envíos boletín.&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos de marketing.&lt;br /&gt;
**&#039;&#039;&#039;emails:&#039;&#039;&#039; Array que especifica las direcciones de email de las que se quieren obtener las estadísticas. Para obtener los identificadores de sus direcciones de email deberá dirigirse a la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] del Panel de Mobeleader. Una vez ahí, pulse en el icono &#039;&#039;&#039;Ver emails&#039;&#039;&#039; en la columna &#039;&#039;&#039;Emails&#039;&#039;&#039;. Dentro del popup en el que se muestran las direcciones de email del dominio seleccionado, podrá obtener el identificador en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dirección de email.&lt;br /&gt;
**&#039;&#039;&#039;mailings:&#039;&#039;&#039; Array que especifica los envíos de los que se quieren obtener las estadísticas. Los identificadores de sus envíos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada envío en la [https://panel.mobeleader.com/index.php?sec=134 sección Envíos Transaccionales] para  los envíos transaccionales, en la [https://panel.mobeleader.com/index.php?sec=148 sección Envíos Auto-Responder] para  los envíos autoresponder, en la [https://panel.mobeleader.com/index.php?sec=139 sección Envíos Boletín] para  los envíos boletín y en la [https://panel.mobeleader.com/index.php?sec=138 sección Envíos Marketing] para  los envíos de marketing del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;campaign&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;unique_views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unique_leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;,&amp;quot;soft_bounces&amp;quot;,&amp;quot;hard_bounces&amp;quot;,&amp;quot;or&amp;quot;,&amp;quot;cr&amp;quot;,&amp;quot;ur&amp;quot;,&amp;quot;br&amp;quot;,&amp;quot;rr&amp;quot;,&amp;quot;dr&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;senders&amp;quot;:[&amp;quot;MailingCP&amp;quot;],&lt;br /&gt;
          &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
          &amp;quot;campaignType&amp;quot;:&amp;quot;newsletter&amp;quot;,&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[3,25,27],&lt;br /&gt;
          &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
          &amp;quot;mailings&amp;quot;:[324,17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-02&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por envío con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;mail&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
           &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
           &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
           &amp;quot;campaignType&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
           &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
           &amp;quot;mailings&amp;quot;:[17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Marketing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;ad:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Anuncio&#039;&#039;&#039; o &#039;&#039;&#039;Campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Web&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;creativity:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Creatividad&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;ctr:&#039;&#039;&#039; CTR.&lt;br /&gt;
**&#039;&#039;&#039;validated_leads:&#039;&#039;&#039; registros validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_leads:&#039;&#039;&#039; registros pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_leads:&#039;&#039;&#039; registros totales.&lt;br /&gt;
**&#039;&#039;&#039;rejected_leads:&#039;&#039;&#039; registros rechazados.&lt;br /&gt;
**&#039;&#039;&#039;validated_expenditures:&#039;&#039;&#039; gastos validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_expenditures:&#039;&#039;&#039; gastos pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_expenditures:&#039;&#039;&#039; gastos totales.&lt;br /&gt;
**&#039;&#039;&#039;validated_profits:&#039;&#039;&#039; beneficios validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_profits:&#039;&#039;&#039; beneficios pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_profits:&#039;&#039;&#039; beneficios totales.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica los anuncios o campañas de las que se quiere obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=9 sección Mis Anuncios] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica las webs de las que se quiere obtener las estadísticas. Los identificadores de sus webs los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada web en la [https://panel.mobeleader.com/index.php?sec=17 sección Mis Webs] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;creativities:&#039;&#039;&#039; Array que especifica las creatividades de las que se quiere obtener las estadísticas. Los identificadores de sus creatividades los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada creatividad en la [https://panel.mobeleader.com/index.php?sec=173 sección Mis Creatividades] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;,&amp;quot;creativity&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;ctr&amp;quot;,&amp;quot;validated_leads&amp;quot;,&amp;quot;pending_leads&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;rejected_leads&amp;quot;,&amp;quot;validated_expenditures&amp;quot;,&amp;quot;pending_expenditures&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;validated_profits&amp;quot;,&amp;quot;pending_profits&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3,125,408],&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[95,512],&lt;br /&gt;
          &amp;quot;creativities&amp;quot;:[27,135]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-11&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña y web, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3],&amp;quot;domains&amp;quot;:[95,512]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Miner==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;worker:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;worker&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;wallet:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;wallet&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;workerType:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;tipo de worker&#039;&#039;&#039; (app, web, link, etc).&lt;br /&gt;
**&#039;&#039;&#039;coin:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;divisa&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;payout:&#039;&#039;&#039; pago estimado.&lt;br /&gt;
**&#039;&#039;&#039;hashes:&#039;&#039;&#039; hashes minados.&lt;br /&gt;
**&#039;&#039;&#039;shares:&#039;&#039;&#039; hashes validados.&lt;br /&gt;
**&#039;&#039;&#039;hashrate:&#039;&#039;&#039; hashes por segundo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;workers:&#039;&#039;&#039; Array que especifica los workers de los que se quiere obtener las estadísticas. Los identificadores de sus workers los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada workers en la [https://panel.mobeleader.com/index.php?sec=5 sección Mis Workers] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;wallets:&#039;&#039;&#039; Array que especifica los wallets de los que se quiere obtener las estadísticas. Los identificadores de sus wallets los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada wallet en la [https://panel.mobeleader.com/index.php?sec=1 sección Mis Wallets] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;coins:&#039;&#039;&#039; Array que especifica las divisas de las que se quiere obtener las estadísticas. Puede añadir las siguientes divisas:&lt;br /&gt;
***&#039;&#039;&#039;bcn:&#039;&#039;&#039; Bytecoin.&lt;br /&gt;
***&#039;&#039;&#039;xmr:&#039;&#039;&#039; Monero.&lt;br /&gt;
**&#039;&#039;&#039;workerTypes:&#039;&#039;&#039; Array que especifica los diferentes tipos de workers de los que se quiere obtener las estadísticas. Puede añadir los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;app:&#039;&#039;&#039; aplicación.&lt;br /&gt;
***&#039;&#039;&#039;web:&#039;&#039;&#039; web.&lt;br /&gt;
***&#039;&#039;&#039;wallet:&#039;&#039;&#039; wallet.&lt;br /&gt;
***&#039;&#039;&#039;link:&#039;&#039;&#039; link de redireccionamiento.&lt;br /&gt;
***&#039;&#039;&#039;captcha:&#039;&#039;&#039; captcha de validación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;coin&amp;quot;,&amp;quot;workerType&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;payout&amp;quot;,&amp;quot;hashes&amp;quot;,&amp;quot;shares&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;wallets&amp;quot;:[1,5,6],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;link&amp;quot;,&amp;quot;captcha&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;bcn&amp;quot;,&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-30&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por worker y wallet, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;hashes&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Developer==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;place:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;espacio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;osVersion:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;versión del sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;brand:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;marca del terminal&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks realizados.&lt;br /&gt;
**&#039;&#039;&#039;downloads:&#039;&#039;&#039; descargas obtenidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;oss:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;places:&#039;&#039;&#039; Array que especifica los espacios de los que se quiere obtener las estadísticas. Los identificadores de sus espacios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada espacio en la [https://panel.mobeleader.com/index.php?sec=34 sección Mis Espacios] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;app&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;downloads&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;oss&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por país con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;country&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NickCenter==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;. Este campo solo podrá ser requerido por aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;users:&#039;&#039;&#039; Usuarios dados de alta en cada aplicación. Solo contabiliza el primer registro en NickCenter, no contabiliza otro registro del mismo usuario en otras aplicaciones.&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; Todos los usuarios registrados en base dentro de las fechas seleccionadas, incluidos los que se hayan dado de baja.&lt;br /&gt;
**&#039;&#039;&#039;registered:&#039;&#039;&#039; Usuarios que están registrados en la base de datos.&lt;br /&gt;
**&#039;&#039;&#039;valid:&#039;&#039;&#039; Usuarios que están registrados en la base de datos, con todos los campos requeridos completados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; Usuarios que estuvieron registrados en la base de datos y que se dieron de baja dentro de las fechas seleccionadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader. Este filtro solo ser á válido para aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo y fecha, con todos los filtros, excepto links:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;,&amp;quot;registered&amp;quot;,&amp;quot;valid&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;US&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;],&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Push==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse, exceptuando los campos &#039;&#039;&#039;notification&#039;&#039;&#039; y &#039;&#039;&#039;app&#039;&#039;&#039; (solo podrá seleccionar uno de estos dos campos en una consulta). Si selecciona el campo &#039;&#039;&#039;notification&#039;&#039;&#039;, deberá establecer una app en el campo &#039;&#039;&#039;apps&#039;&#039;&#039; de los filtros. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;notification:&#039;&#039;&#039; Devolverá las estadísticas por cada &#039;&#039;&#039;notificación Push&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;estado&#039;&#039;&#039; de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; el total de los mensajes enviados de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; mensajes enviados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;failed:&#039;&#039;&#039; mensajes enviados y que no han llegado al terminal de destino.&lt;br /&gt;
**&#039;&#039;&#039;erased:&#039;&#039;&#039; mensajes borrados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Especifique una única aplicación en caso de haber seleccionado el campo &#039;&#039;&#039;notification&#039;&#039;&#039; en los filtros. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Array que especifica los estados de las notificaciones de los que se quiere obtener las estadísticas.&lt;br /&gt;
***&#039;&#039;&#039;ready:&#039;&#039;&#039; indica que la notificación ha sido creada correctamente y está en espera de ser verificada.&lt;br /&gt;
***&#039;&#039;&#039;starting:&#039;&#039;&#039;  indica que la notificación ha sido verificada y va ser enviada.&lt;br /&gt;
***&#039;&#039;&#039;sending:&#039;&#039;&#039; indica que la notificación está siendo enviada.&lt;br /&gt;
***&#039;&#039;&#039;finished:&#039;&#039;&#039; indica que el envío de la notificación ha finalizado.&lt;br /&gt;
***&#039;&#039;&#039;stoped:&#039;&#039;&#039; indica que el envío de la notificación ha sido detenido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, estado y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;status&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;,&amp;quot;erased&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;FR&amp;quot;],&lt;br /&gt;
          &amp;quot;estados&amp;quot;:[&amp;quot;sending&amp;quot;,&amp;quot;finished&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por notificación y estado, con algunos de los campos y filtros (en el filtro de &#039;&#039;&#039;apps&#039;&#039;&#039; solo establece una aplicación):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;notification&amp;quot;,&amp;quot;status&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Link Tracking==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. No puede combinarse el campo &#039;&#039;&#039;link&#039;&#039;&#039; con los campos &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;, por lo que si decide incluir el campo &#039;&#039;&#039;link&#039;&#039;&#039; no se mostrarán las estadísticas por &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;field:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;value:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;valor&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; Array que especifica los campos de los que se quiere obtener las estadísticas. Los nombres de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;values:&#039;&#039;&#039; Array que especifica los valores de los campos de los que se quiere obtener las estadísticas. Los valores de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, campo, valor y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;field&amp;quot;,&amp;quot;value&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;fields&amp;quot;:[&amp;quot;campo1&amp;quot;,&amp;quot;campo2&amp;quot;],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;,&amp;quot;valor2&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resultado de las estadísticas=&lt;br /&gt;
Una vez realizada la conexión con la API correctamente, ésta devolverá una respuesta en formato JSON. La respuesta puede contener:&lt;br /&gt;
*Un resultado sin estadísticas.&lt;br /&gt;
*Las estadísticas resultantes de la petición.&lt;br /&gt;
*Un mensaje de error.&lt;br /&gt;
==Resultado vacío==&lt;br /&gt;
Si la petición se ha realizado correctamente, pero la API no ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el siguiente resultado:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;result&amp;quot;:&amp;quot;No result for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resultado con estadísticas==&lt;br /&gt;
Si la petición se ha realizado correctamente, y la API ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el resultado de las estadísticas desglosado por campo, en función de los valores indicados en los campos &#039;&#039;&#039;require&#039;&#039;&#039; y &#039;&#039;&#039;fields&#039;&#039;&#039;. Si además se ha establecido el valor &#039;date&#039; en el campo &#039;&#039;&#039;require&#039;&#039;&#039;, el resultado vendrá desglosado por campo y fecha.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de estadísticas sin fechas:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;0&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;20&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;1&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;23&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;18&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de las mismas estadísticas por fecha:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;2018-10-10&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;2&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;7&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;10&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;2018-10-03&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;4&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;12&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;11&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;9&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;date&amp;quot;:2,&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Error en la petición de estadísticas==&lt;br /&gt;
Si la petición no se ha realizado correctamente, la API devolverá un mensaje, dentro del campo &#039;&#039;&#039;error&#039;&#039;&#039;, indicando la causa de error en la petición. A continuación se muestra los diferentes errores que la API puede devolver:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address. Please ask your account manager for a valid IP.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la IP no está registrada en el sistema de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address for the user key sent. Please check and set &#039;user&#039; parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la dirección IP desde la que se realiza la petición es correcta, pero no está registrada para el usuario introducido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request user found. Please set user parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No data post field found. Please set data post field.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request data found. Please fill your request with proper parameters.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; está vacío.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request type found. Please set type parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong type set, &#039;type_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong user set, &#039;user_key_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request fields found. Please set the fields you want to check.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User has no permission for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario introducido no tiene permisos para realizar ese tipo de consulta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User must wait at least 1 minute for the next request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario ha de esperar al menos un minuto desde la última consulta hasta la siguiente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not found or not properly set. Please set require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not properly set, &#039;require_value_for_error_test&#039; is not a valid require. Please set a valid require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;require&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Some required fields are not correct. &#039;fields_value_for_error_test&#039; is not a valid field. Please set the required fields properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
==Error en las claves RSA==&lt;br /&gt;
Si las claves RSA no han sido configuradas correctamente, el sistema mostrará los siguientes errores:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000d - Missing public RSA Key for user key &#039;my_user_key&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el sistema no ha podido verificar las claves RSA del usuario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000c - Empty or invalid user key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; no se ha enviado correctamente.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2750</id>
		<title>Documentación API Analytics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_API_Analytics&amp;diff=2750"/>
		<updated>2019-06-07T10:38:24Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Introduccion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
La &#039;&#039;&#039;API Analytics&#039;&#039;&#039; es la plataforma a través de la cual obtener las estadísticas de un usuario. Los datos obtenidos corresponderán a los datos que se obtendrían en las secciones de Analytics de nuestro panel. Las estadísticas serán devueltas en formato JSON.&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar la &#039;&#039;&#039;API Analytics&#039;&#039;&#039; y poder obtener tanto el identificador de usuario como las claves RSA, deberá solicitarlo a su administrador.&lt;br /&gt;
&lt;br /&gt;
En esta documentación se explicará cómo conectar con la API y cómo preparar los datos para realizar la petición de las estadísticas. Los ejemplos ofrecidos están en lenguaje PHP.&lt;br /&gt;
&lt;br /&gt;
=Registro de usuario=&lt;br /&gt;
Al solicitar el acceso a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, es necesario reportar las direcciones IP desde las que se realizarán las peticiones de estadísticas. Así mismo, el usuario deberá actualizar el registro de direcciones IP cuando éstas cambien. El sistema de Mobeleader registrará las direcciones IP junto al identificador del usuario, por lo que no permitirá al usuario realizar peticiones si éste no está asociado a las direcciones IP registradas.&lt;br /&gt;
&lt;br /&gt;
=Conexión con la API=&lt;br /&gt;
La conexión con la API para realizar la petición de estadísticas se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa a la API. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039; creada por Mobeleader. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa a la API==&lt;br /&gt;
Si desea realizar la petición a la API sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, deberá conectarse mediante POST a la siguiente URL: &#039;&#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;&#039;, añadiendo los parámetros &#039;&#039;&#039;data&#039;&#039;&#039; (JSON con los datos de la petición) y &#039;&#039;&#039;user&#039;&#039;&#039; (string o cadena con el identificador del usuario). En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explicará como obtener el identificador de usuario y como construir el JSON de la petición.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://panel.mobeleader.com/webservices/analytics/api_analytics.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode($requestJson).&#039;&amp;amp;user=&#039;.$userIdString);&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en su carpeta vendor, lo primero que deberá hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras modificar la ruta, para poder instanciar la clase, será necesario obtener la clave &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Boton_rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pulsando en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;, se abrirá un popup en el que podrá obtener las claves RSA.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Rsa_keys.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ha de copiar la cadena perteneciente al campo &#039;&#039;&#039;Private RSA key&#039;&#039;&#039;. Es necesario copiar la cadena completa, incluyendo -----BEGIN RSA PRIVATE KEY----- y -----END RSA PRIVATE KEY-----. Se añadirá la cadena como parámetro (string) del constructor de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;,  tal y como se muestra en el ejemplo siguiente:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez realizadas correctamente la instalación de la librería, la modificación de la ruta de acceso a ésta, y la inserción en el código de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, las llamadas a la API se realizarán a través de la función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;, añadiendo el JSON con los datos de la petición y la cadena con el identificador del usuario. La función &#039;&#039;&#039;getApiData()&#039;&#039;&#039; será la encargada de realizar todas las conexiones a la API, de cifrar los datos que se envíen a ésta y de descifrar los datos que devuelva.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);&lt;br /&gt;
$responseJson = $apiconnection-&amp;gt;getApiData($userIdString, $requestJson)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
En el apartado &#039;&#039;&#039;Petición de estadísticas&#039;&#039;&#039; se explica cómo obtenerla cadena con el identificador de usuario y cómo construir el JSON de la petición&lt;br /&gt;
&lt;br /&gt;
=Petición de estadísticas=&lt;br /&gt;
Para que la petición de estadísticas se realice correctamente, es necesario enviar, dentro de la petición, su identificador de usuario y un JSON en el cual especificar las estadísticas que quiera obtener (campos de las estadísticas, filtros, fechas, etc.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Las peticiones a la API son limitadas&#039;&#039;&#039;. Una vez recibida la respuesta de estadísticas (a excepción de haber devuelto un error), deberá esperar un minuto para hacer la siguiente consulta.&lt;br /&gt;
&lt;br /&gt;
==Identificador de usuario==&lt;br /&gt;
Para realizar la petición de estadísticas a la &#039;&#039;&#039;API Analytics&#039;&#039;&#039;, lo primero que debe hacer es obtener el identificador de usuario. Para ello diríjase a la [https://panel.mobeleader.com/index.php?sec=2 sección Mis Datos] del Panel de Mobeleader y pulse en &#039;&#039;&#039;Ver claves RSA&#039;&#039;&#039;. Una vez dentro del popup, copie la cadena perteneciente al campo &#039;&#039;&#039;Public Identifier&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Public_id.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JSON de petición de estadísticas==&lt;br /&gt;
Para obtener las estadísticas deseadas, es necesario crear un JSON en el que se especifique:&lt;br /&gt;
#El tipo de petición, especificado en el campo &#039;&#039;&#039;type&#039;&#039;&#039;: minería, desarrollo, etc.&lt;br /&gt;
#Los elementos de los cuales quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;require&#039;&#039;&#039;: por anuncio, por app, por sistema operativo, etc.&lt;br /&gt;
#Las estadísticas que quiera mostrar, especificadas en el campo &#039;&#039;&#039;fields&#039;&#039;&#039;: impresiones, descargas, hashes minados, etc.&lt;br /&gt;
#Los filtros o elementos concretos de los que quiera obtener las estadísticas, especificados en el campo &#039;&#039;&#039;filters&#039;&#039;&#039;: determinadas apps, bases de datos, etc.&lt;br /&gt;
#Las fechas entre las que quiera delimitar la petición, especificadas en el campo &#039;&#039;&#039;dates&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Tipos==&lt;br /&gt;
Cada tipo de petición devolverá un tipo de estadísticas, en función del tipo de usuario que realice la petición, así como los permisos que le hayan sido otorgados. El tipo de petición se especificará en el campo &#039;&#039;&#039;type&#039;&#039;&#039; del JSON. Los diferentes valores para el tipo de petición son:&lt;br /&gt;
*&#039;&#039;&#039;mailing:&#039;&#039;&#039; Devuelve las estadísticas de los envíos de Mailing. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Mailing&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;marketing:&#039;&#039;&#039; Devuelve las estadísticas de los anuncios. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Agencias&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;miner:&#039;&#039;&#039; Devuelve las estadísticas minería. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Minería&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;developer:&#039;&#039;&#039; Devuelve las estadísticas de las aplicaciones. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Desarrolladores&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;nickcenter:&#039;&#039;&#039; Devuelve las estadísticas de los registros realizados a través de &#039;&#039;&#039;NickCenter&#039;&#039;&#039;. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;NickCenter&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;push:&#039;&#039;&#039; Devuelve las estadísticas generadas por las &#039;&#039;&#039;notificaciones Push&#039;&#039;&#039; de sus aplicaciones enviadas a través de Mobeleader. El usuario ha de tener acceso a las secciones de &#039;&#039;&#039;Notificaciones Push&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
*&#039;&#039;&#039;linkTracking:&#039;&#039;&#039; Devuelve las estadísticas de descargas por URL tracking. El usuario ha de tener acceso a las sección &#039;&#039;&#039;Link Management&#039;&#039;&#039; en el Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
==Mailing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;db:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Base de datos&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mail:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;envío&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;campaign:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dominio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;sender:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sender&#039;&#039;&#039; (enviador).&lt;br /&gt;
**&#039;&#039;&#039;emailAdress:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;dirección de email&#039;&#039;&#039; desde la que se hayan realizado los envíos.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; emails enviados.&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones totales obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;unique_views:&#039;&#039;&#039; impresiones únicas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;leads:&#039;&#039;&#039; registros totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_leads:&#039;&#039;&#039; registros únicos.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; bajas ejecutadas.&lt;br /&gt;
**&#039;&#039;&#039;soft_bounces:&#039;&#039;&#039; soft bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;hard_bounces:&#039;&#039;&#039; hard bonces devueltos.&lt;br /&gt;
**&#039;&#039;&#039;or:&#039;&#039;&#039; tasa de aperturas.&lt;br /&gt;
**&#039;&#039;&#039;cr:&#039;&#039;&#039; tasa de clicks.&lt;br /&gt;
**&#039;&#039;&#039;ur:&#039;&#039;&#039; tasa de bajas.&lt;br /&gt;
**&#039;&#039;&#039;br:&#039;&#039;&#039; tasa de bonces o rebotados.&lt;br /&gt;
**&#039;&#039;&#039;rr:&#039;&#039;&#039; tasa de reactividad.&lt;br /&gt;
**&#039;&#039;&#039;dr:&#039;&#039;&#039; tasa de entregabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;senders:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;senders&#039;&#039;&#039; o enviadores de los que se quieren obtener las estadísticas. Puede añadir los identificadores &#039;MailingCP&#039; y &#039;AmazonSES&#039;.&lt;br /&gt;
**&#039;&#039;&#039;dataBases:&#039;&#039;&#039; Array que especifica las bases de datos de las que se quieren obtener las estadísticas. Los identificadores de sus bases de datos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada base de datos en la [https://panel.mobeleader.com/index.php?sec=105 sección BBDD] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica las campañas de las que se quieren obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=135 sección Campañas] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica los dominios de los que se quieren obtener las estadísticas. Los identificadores de sus dominios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dominio en la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;campaignType:&#039;&#039;&#039; Valor que especifica el tipo de campaña de la que se quiere obtener las estadísticas. Puede elegir entre uno de los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos transaccionales.&lt;br /&gt;
***&#039;&#039;&#039;autoresponder:&#039;&#039;&#039; Para envíos automáticos.&lt;br /&gt;
***&#039;&#039;&#039;newsletter:&#039;&#039;&#039; Para envíos boletín.&lt;br /&gt;
***&#039;&#039;&#039;transactional:&#039;&#039;&#039; Para envíos de marketing.&lt;br /&gt;
**&#039;&#039;&#039;emails:&#039;&#039;&#039; Array que especifica las direcciones de email de las que se quieren obtener las estadísticas. Para obtener los identificadores de sus direcciones de email deberá dirigirse a la [https://panel.mobeleader.com/index.php?sec=126 sección Dominios] del Panel de Mobeleader. Una vez ahí, pulse en el icono &#039;&#039;&#039;Ver emails&#039;&#039;&#039; en la columna &#039;&#039;&#039;Emails&#039;&#039;&#039;. Dentro del popup en el que se muestran las direcciones de email del dominio seleccionado, podrá obtener el identificador en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada dirección de email.&lt;br /&gt;
**&#039;&#039;&#039;mailings:&#039;&#039;&#039; Array que especifica los envíos de los que se quieren obtener las estadísticas. Los identificadores de sus envíos los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada envío en la [https://panel.mobeleader.com/index.php?sec=134 sección Envíos Transaccionales] para  los envíos transaccionales, en la [https://panel.mobeleader.com/index.php?sec=148 sección Envíos Auto-Responder] para  los envíos autoresponder, en la [https://panel.mobeleader.com/index.php?sec=139 sección Envíos Boletín] para  los envíos boletín y en la [https://panel.mobeleader.com/index.php?sec=138 sección Envíos Marketing] para  los envíos de marketing del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;campaign&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;unique_views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unique_leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;,&amp;quot;soft_bounces&amp;quot;,&amp;quot;hard_bounces&amp;quot;,&amp;quot;or&amp;quot;,&amp;quot;cr&amp;quot;,&amp;quot;ur&amp;quot;,&amp;quot;br&amp;quot;,&amp;quot;rr&amp;quot;,&amp;quot;dr&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;senders&amp;quot;:[&amp;quot;MailingCP&amp;quot;],&lt;br /&gt;
          &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
          &amp;quot;campaignType&amp;quot;:&amp;quot;newsletter&amp;quot;,&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[3,25,27],&lt;br /&gt;
          &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
          &amp;quot;mailings&amp;quot;:[324,17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-02&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por envío con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;mailing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;mail&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;sent&amp;quot;,&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;leads&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
           &amp;quot;dataBases&amp;quot;:[1,3,4],&lt;br /&gt;
           &amp;quot;campaigns&amp;quot;:[221,302,357],&lt;br /&gt;
           &amp;quot;campaignType&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
           &amp;quot;emails&amp;quot;:[59,162],&lt;br /&gt;
           &amp;quot;mailings&amp;quot;:[17835]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Marketing==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;ad:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Anuncio&#039;&#039;&#039; o &#039;&#039;&#039;Campaña&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;domain:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Web&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;creativity:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;Creatividad&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks totales realizados.&lt;br /&gt;
**&#039;&#039;&#039;unique_clicks:&#039;&#039;&#039; clicks únicos.&lt;br /&gt;
**&#039;&#039;&#039;ctr:&#039;&#039;&#039; CTR.&lt;br /&gt;
**&#039;&#039;&#039;validated_leads:&#039;&#039;&#039; registros validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_leads:&#039;&#039;&#039; registros pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_leads:&#039;&#039;&#039; registros totales.&lt;br /&gt;
**&#039;&#039;&#039;rejected_leads:&#039;&#039;&#039; registros rechazados.&lt;br /&gt;
**&#039;&#039;&#039;validated_expenditures:&#039;&#039;&#039; gastos validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_expenditures:&#039;&#039;&#039; gastos pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_expenditures:&#039;&#039;&#039; gastos totales.&lt;br /&gt;
**&#039;&#039;&#039;validated_profits:&#039;&#039;&#039; beneficios validados.&lt;br /&gt;
**&#039;&#039;&#039;pending_profits:&#039;&#039;&#039; beneficios pendientes.&lt;br /&gt;
**&#039;&#039;&#039;total_profits:&#039;&#039;&#039; beneficios totales.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;campaigns:&#039;&#039;&#039; Array que especifica los anuncios o campañas de las que se quiere obtener las estadísticas. Los identificadores de sus campañas los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada campaña en la [https://panel.mobeleader.com/index.php?sec=9 sección Mis Anuncios] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;domains:&#039;&#039;&#039; Array que especifica las webs de las que se quiere obtener las estadísticas. Los identificadores de sus webs los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada web en la [https://panel.mobeleader.com/index.php?sec=17 sección Mis Webs] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;creativities:&#039;&#039;&#039; Array que especifica las creatividades de las que se quiere obtener las estadísticas. Los identificadores de sus creatividades los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada creatividad en la [https://panel.mobeleader.com/index.php?sec=173 sección Mis Creatividades] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;,&amp;quot;creativity&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;ctr&amp;quot;,&amp;quot;validated_leads&amp;quot;,&amp;quot;pending_leads&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;rejected_leads&amp;quot;,&amp;quot;validated_expenditures&amp;quot;,&amp;quot;pending_expenditures&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;validated_profits&amp;quot;,&amp;quot;pending_profits&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3,125,408],&lt;br /&gt;
          &amp;quot;domains&amp;quot;:[95,512],&lt;br /&gt;
          &amp;quot;creativities&amp;quot;:[27,135]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-11&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por campaña y web, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;marketing&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;ad&amp;quot;,&amp;quot;domain&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;clicks&amp;quot;,&amp;quot;unique_clicks&amp;quot;,&amp;quot;total_leads&amp;quot;,&amp;quot;total_expenditures&amp;quot;,&amp;quot;total_profits&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;campaigns&amp;quot;:[3],&amp;quot;domains&amp;quot;:[95,512]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-03&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Miner==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;worker:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;worker&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;wallet:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;wallet&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;workerType:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;tipo de worker&#039;&#039;&#039; (app, web, link, etc).&lt;br /&gt;
**&#039;&#039;&#039;coin:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;divisa&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;payout:&#039;&#039;&#039; pago estimado.&lt;br /&gt;
**&#039;&#039;&#039;hashes:&#039;&#039;&#039; hashes minados.&lt;br /&gt;
**&#039;&#039;&#039;shares:&#039;&#039;&#039; hashes validados.&lt;br /&gt;
**&#039;&#039;&#039;hashrate:&#039;&#039;&#039; hashes por segundo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;workers:&#039;&#039;&#039; Array que especifica los workers de los que se quiere obtener las estadísticas. Los identificadores de sus workers los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada workers en la [https://panel.mobeleader.com/index.php?sec=5 sección Mis Workers] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;wallets:&#039;&#039;&#039; Array que especifica los wallets de los que se quiere obtener las estadísticas. Los identificadores de sus wallets los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada wallet en la [https://panel.mobeleader.com/index.php?sec=1 sección Mis Wallets] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;coins:&#039;&#039;&#039; Array que especifica las divisas de las que se quiere obtener las estadísticas. Puede añadir las siguientes divisas:&lt;br /&gt;
***&#039;&#039;&#039;bcn:&#039;&#039;&#039; Bytecoin.&lt;br /&gt;
***&#039;&#039;&#039;xmr:&#039;&#039;&#039; Monero.&lt;br /&gt;
**&#039;&#039;&#039;workerTypes:&#039;&#039;&#039; Array que especifica los diferentes tipos de workers de los que se quiere obtener las estadísticas. Puede añadir los siguientes tipos:&lt;br /&gt;
***&#039;&#039;&#039;app:&#039;&#039;&#039; aplicación.&lt;br /&gt;
***&#039;&#039;&#039;web:&#039;&#039;&#039; web.&lt;br /&gt;
***&#039;&#039;&#039;wallet:&#039;&#039;&#039; wallet.&lt;br /&gt;
***&#039;&#039;&#039;link:&#039;&#039;&#039; link de redireccionamiento.&lt;br /&gt;
***&#039;&#039;&#039;captcha:&#039;&#039;&#039; captcha de validación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;coin&amp;quot;,&amp;quot;workerType&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;payout&amp;quot;,&amp;quot;hashes&amp;quot;,&amp;quot;shares&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;wallets&amp;quot;:[1,5,6],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;,&amp;quot;wallet&amp;quot;,&amp;quot;link&amp;quot;,&amp;quot;captcha&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;bcn&amp;quot;,&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-30&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por worker y wallet, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;miner&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;worker&amp;quot;,&amp;quot;wallet&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;hashes&amp;quot;,&amp;quot;hashrate&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;workers&amp;quot;:[39,62],&lt;br /&gt;
          &amp;quot;workerTypes&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;web&amp;quot;],&lt;br /&gt;
          &amp;quot;coins&amp;quot;:[&amp;quot;xmr&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Developer==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;place:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;espacio&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;osVersion:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;versión del sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;brand:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;marca del terminal&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;país&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;views:&#039;&#039;&#039; impresiones obtenidas.&lt;br /&gt;
**&#039;&#039;&#039;clicks:&#039;&#039;&#039; clicks realizados.&lt;br /&gt;
**&#039;&#039;&#039;downloads:&#039;&#039;&#039; descargas obtenidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;oss:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;places:&#039;&#039;&#039; Array que especifica los espacios de los que se quiere obtener las estadísticas. Los identificadores de sus espacios los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada espacio en la [https://panel.mobeleader.com/index.php?sec=34 sección Mis Espacios] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación con todos los campos y los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;app&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;,&amp;quot;downloads&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;oss&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-09-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por país con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;developer&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:&amp;quot;country&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;views&amp;quot;,&amp;quot;clicks&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[63],&lt;br /&gt;
          &amp;quot;places&amp;quot;:[85,125,198]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-09-07&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NickCenter==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;. Este campo solo podrá ser requerido por aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;users:&#039;&#039;&#039; Usuarios dados de alta en cada aplicación. Solo contabiliza el primer registro en NickCenter, no contabiliza otro registro del mismo usuario en otras aplicaciones.&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; Todos los usuarios registrados en base dentro de las fechas seleccionadas, incluidos los que se hayan dado de baja.&lt;br /&gt;
**&#039;&#039;&#039;registered:&#039;&#039;&#039; Usuarios que están registrados en la base de datos.&lt;br /&gt;
**&#039;&#039;&#039;valid:&#039;&#039;&#039; Usuarios que están registrados en la base de datos, con todos los campos requeridos completados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;unsubscribes:&#039;&#039;&#039; Usuarios que estuvieron registrados en la base de datos y que se dieron de baja dentro de las fechas seleccionadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader. Este filtro solo ser á válido para aquellos usuarios con acceso al &#039;&#039;&#039;Link Management&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo y fecha, con todos los filtros, excepto links:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;,&amp;quot;registered&amp;quot;,&amp;quot;valid&amp;quot;,&amp;quot;unsubscribes&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;US&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;nickcenter&amp;quot;,&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;users&amp;quot;,&amp;quot;total&amp;quot;],&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Push==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse, exceptuando los campos &#039;&#039;&#039;notification&#039;&#039;&#039; y &#039;&#039;&#039;app&#039;&#039;&#039; (solo podrá seleccionar uno de estos dos campos en una consulta). Si selecciona el campo &#039;&#039;&#039;notification&#039;&#039;&#039;, deberá establecer una app en el campo &#039;&#039;&#039;apps&#039;&#039;&#039; de los filtros. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;notification:&#039;&#039;&#039; Devolverá las estadísticas por cada &#039;&#039;&#039;notificación Push&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;estado&#039;&#039;&#039; de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;fields&#039;&#039;&#039; es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo &#039;&#039;&#039;fields&#039;&#039;&#039; irán especificados dentro de un array y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;total:&#039;&#039;&#039; el total de los mensajes enviados de la notificación.&lt;br /&gt;
**&#039;&#039;&#039;sent:&#039;&#039;&#039; mensajes enviados correctamente.&lt;br /&gt;
**&#039;&#039;&#039;failed:&#039;&#039;&#039; mensajes enviados y que no han llegado al terminal de destino.&lt;br /&gt;
**&#039;&#039;&#039;erased:&#039;&#039;&#039; mensajes borrados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Especifique una única aplicación en caso de haber seleccionado el campo &#039;&#039;&#039;notification&#039;&#039;&#039; en los filtros. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;countries:&#039;&#039;&#039; Array que especifica los países de los que se quiere obtener las estadísticas. Ha de añadir el código del país que desee. Puede consultar los códigos en el [https://wiki.mobeleader.com/index.php?title=Apendice_paises apéndice de países].&lt;br /&gt;
**&#039;&#039;&#039;status:&#039;&#039;&#039; Array que especifica los estados de las notificaciones de los que se quiere obtener las estadísticas.&lt;br /&gt;
***&#039;&#039;&#039;ready:&#039;&#039;&#039; indica que la notificación ha sido creada correctamente y está en espera de ser verificada.&lt;br /&gt;
***&#039;&#039;&#039;starting:&#039;&#039;&#039;  indica que la notificación ha sido verificada y va ser enviada.&lt;br /&gt;
***&#039;&#039;&#039;sending:&#039;&#039;&#039; indica que la notificación está siendo enviada.&lt;br /&gt;
***&#039;&#039;&#039;finished:&#039;&#039;&#039; indica que el envío de la notificación ha finalizado.&lt;br /&gt;
***&#039;&#039;&#039;stoped:&#039;&#039;&#039; indica que el envío de la notificación ha sido detenido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, estado y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;status&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;,&amp;quot;erased&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;countries&amp;quot;:[&amp;quot;ES&amp;quot;,&amp;quot;FR&amp;quot;],&lt;br /&gt;
          &amp;quot;estados&amp;quot;:[&amp;quot;sending&amp;quot;,&amp;quot;finished&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por notificación y estado, con algunos de los campos y filtros (en el filtro de &#039;&#039;&#039;apps&#039;&#039;&#039; solo establece una aplicación):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;push&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;notification&amp;quot;,&amp;quot;status&amp;quot;],&lt;br /&gt;
     &amp;quot;fields&amp;quot;:[&amp;quot;total&amp;quot;,&amp;quot;sent&amp;quot;,&amp;quot;failed&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Link Tracking==&lt;br /&gt;
*El campo &#039;&#039;&#039;require&#039;&#039;&#039; es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;require&#039;&#039;&#039; irán especificados dentro de un array y podrán combinarse. No puede combinarse el campo &#039;&#039;&#039;link&#039;&#039;&#039; con los campos &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;, por lo que si decide incluir el campo &#039;&#039;&#039;link&#039;&#039;&#039; no se mostrarán las estadísticas por &#039;&#039;&#039;field&#039;&#039;&#039; y &#039;&#039;&#039;value&#039;&#039;&#039;. Los valore son los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;aplicación&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;sistema operativo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;date:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;fecha&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;link:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;link&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;field:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;campo&#039;&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;value:&#039;&#039;&#039; Devolverá las estadísticas por &#039;&#039;&#039;valor&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;filters&#039;&#039;&#039; es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo &#039;&#039;&#039;filters&#039;&#039;&#039; irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro del Panel de Mobeleader. Podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;apps:&#039;&#039;&#039; Array que especifica las aplicaciones de las que se quiere obtener las estadísticas. Los identificadores de sus aplicaciones los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada aplicación en la [https://panel.mobeleader.com/index.php?sec=6 sección Mis Aplicaciones] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;links:&#039;&#039;&#039; Array que especifica los links de los que se quiere obtener las estadísticas. Los identificadores de sus links los podrá obtener en la columna &#039;&#039;&#039;Id&#039;&#039;&#039; correspondiente a cada link en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Array que especifica los &#039;&#039;&#039;sistemas operativos&#039;&#039;&#039; de los que se quiere obtener las estadísticas. Puede añadir los identificadores &#039;android&#039; e &#039;ios&#039;.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; Array que especifica los campos de los que se quiere obtener las estadísticas. Los nombres de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;values:&#039;&#039;&#039; Array que especifica los valores de los campos de los que se quiere obtener las estadísticas. Los valores de cada campo los podrá obtener en el recuadro &#039;&#039;&#039;Campos opcionales&#039;&#039;&#039; correspondiente a cada link (en caso de haber sido configurados) en la [https://panel.mobeleader.com/index.php?sec=45 sección Link Management] del Panel de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*El campo &#039;&#039;&#039;dates&#039;&#039;&#039; es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo &#039;&#039;&#039;dates&#039;&#039;&#039; irán especificados dentro de un array, en formato &#039;YYYY-MM-DD&#039; y podrán ser los siguientes:&lt;br /&gt;
**&#039;&#039;&#039;firstDate:&#039;&#039;&#039; fecha de inicio.&lt;br /&gt;
**&#039;&#039;&#039;lastDate:&#039;&#039;&#039; fecha de fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación, sistema operativo, campo, valor y fecha, con todos los filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;os&amp;quot;,&amp;quot;field&amp;quot;,&amp;quot;value&amp;quot;,&amp;quot;date&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;os&amp;quot;:&amp;quot;android&amp;quot;,&lt;br /&gt;
          &amp;quot;fields&amp;quot;:[&amp;quot;campo1&amp;quot;,&amp;quot;campo2&amp;quot;],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;,&amp;quot;valor2&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;firstDate&amp;quot;:&amp;quot;2018-10-01&amp;quot;,&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;type&amp;quot;:&amp;quot;linkTracking&amp;quot;,&lt;br /&gt;
     &amp;quot;require&amp;quot;:[&amp;quot;app&amp;quot;,&amp;quot;link&amp;quot;],&lt;br /&gt;
     &amp;quot;filters&amp;quot;:{&lt;br /&gt;
          &amp;quot;apps&amp;quot;:[13,63],&lt;br /&gt;
          &amp;quot;links&amp;quot;:[2,10],&lt;br /&gt;
          &amp;quot;values&amp;quot;:[&amp;quot;valor1&amp;quot;]&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;dates&amp;quot;:{&lt;br /&gt;
          &amp;quot;lastDate&amp;quot;:&amp;quot;2018-10-12&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resultado de las estadísticas=&lt;br /&gt;
Una vez realizada la conexión con la API correctamente, ésta devolverá una respuesta en formato JSON. La respuesta puede contener:&lt;br /&gt;
*Un resultado sin estadísticas.&lt;br /&gt;
*Las estadísticas resultantes de la petición.&lt;br /&gt;
*Un mensaje de error.&lt;br /&gt;
==Resultado vacío==&lt;br /&gt;
Si la petición se ha realizado correctamente, pero la API no ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el siguiente resultado:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;result&amp;quot;:&amp;quot;No result for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resultado con estadísticas==&lt;br /&gt;
Si la petición se ha realizado correctamente, y la API ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo &#039;&#039;&#039;result&#039;&#039;&#039;, el resultado de las estadísticas desglosado por campo, en función de los valores indicados en los campos &#039;&#039;&#039;require&#039;&#039;&#039; y &#039;&#039;&#039;fields&#039;&#039;&#039;. Si además se ha establecido el valor &#039;date&#039; en el campo &#039;&#039;&#039;require&#039;&#039;&#039;, el resultado vendrá desglosado por campo y fecha.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de estadísticas sin fechas:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;0&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;20&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;1&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;23&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;18&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Ejemplo de resultado de las mismas estadísticas por fecha:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;result&amp;quot;:{&lt;br /&gt;
          &amp;quot;2018-10-10&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;5&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;2&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;7&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;7&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;10&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;2018-10-03&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;10&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;4&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;12&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                    &amp;quot;require1&amp;quot;:&amp;quot;require1 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;require2&amp;quot;:&amp;quot;require2 value&amp;quot;,&lt;br /&gt;
                    &amp;quot;field1&amp;quot;:&amp;quot;11&amp;quot;,&lt;br /&gt;
                    &amp;quot;field2&amp;quot;:&amp;quot;3&amp;quot;,&lt;br /&gt;
                    &amp;quot;field3&amp;quot;:&amp;quot;9&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;total&amp;quot;:{&lt;br /&gt;
               &amp;quot;date&amp;quot;:2,&lt;br /&gt;
               &amp;quot;require1&amp;quot;:&amp;quot;require1 total&amp;quot;,&lt;br /&gt;
               &amp;quot;require2&amp;quot;:&amp;quot;require2 total&amp;quot;,&lt;br /&gt;
               &amp;quot;field1&amp;quot;:&amp;quot;33&amp;quot;,&lt;br /&gt;
               &amp;quot;field2&amp;quot;:&amp;quot;12&amp;quot;,&lt;br /&gt;
               &amp;quot;field3&amp;quot;:&amp;quot;38&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Error en la petición de estadísticas==&lt;br /&gt;
Si la petición no se ha realizado correctamente, la API devolverá un mensaje, dentro del campo &#039;&#039;&#039;error&#039;&#039;&#039;, indicando la causa de error en la petición. A continuación se muestra los diferentes errores que la API puede devolver:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address. Please ask your account manager for a valid IP.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la IP no está registrada en el sistema de Mobeleader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;This is not a valid IP address for the user key sent. Please check and set &#039;user&#039; parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que la dirección IP desde la que se realiza la petición es correcta, pero no está registrada para el usuario introducido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request user found. Please set user parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No data post field found. Please set data post field.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request data found. Please fill your request with proper parameters.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;data&#039;&#039;&#039; está vacío.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request type found. Please set type parameter properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong type set, &#039;type_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;type&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Wrong user set, &#039;user_key_for_error_test&#039; is not a valid type.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; se ha introducido incorrectamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;No request fields found. Please set the fields you want to check.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User has no permission for this request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario introducido no tiene permisos para realizar ese tipo de consulta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;User must wait at least 1 minute for the next request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el usuario ha de esperar al menos un minuto desde la última consulta hasta la siguiente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not found or not properly set. Please set require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; está vacío o no se ha enviado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Request require parameter not properly set, &#039;require_value_for_error_test&#039; is not a valid require. Please set a valid require parameter in your request.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;require&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
{&amp;quot;error&amp;quot;:&amp;quot;Some required fields are not correct. &#039;fields_value_for_error_test&#039; is not a valid field. Please set the required fields properly.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el valor indicado del parámetro &#039;&#039;&#039;fields&#039;&#039;&#039; no es correcto para la consulta deseada.&lt;br /&gt;
&lt;br /&gt;
==Error en las claves RSA==&lt;br /&gt;
Si las claves RSA no han sido configuradas correctamente, el sistema mostrará los siguientes errores:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000d - Missing public RSA Key for user key &#039;my_user_key&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el sistema no ha podido verificar las claves RSA del usuario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
Error 000c - Empty or invalid user key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que el parámetro &#039;&#039;&#039;user&#039;&#039;&#039; no se ha enviado correctamente.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Panel:Desarrolladores:AppExchange&amp;diff=2749</id>
		<title>Panel:Desarrolladores:AppExchange</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Panel:Desarrolladores:AppExchange&amp;diff=2749"/>
		<updated>2019-06-07T10:35:23Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* App Exchange: intercambio de espacios publicitarios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== App Exchange: intercambio de espacios publicitarios ==&lt;br /&gt;
&lt;br /&gt;
La librería o framework &#039;&#039;&#039;SPS&#039;&#039;&#039; permite monetizar sus aplicaciones mostrando banners publicitarios dentro de éstas. Con el &#039;&#039;&#039;App Exchange&#039;&#039;&#039; usted puede convertirse en &#039;&#039;&#039;Anunciante&#039;&#039;&#039; de sus propias aplicaciones. Usando el servicio de &#039;&#039;&#039;App Exchange&#039;&#039;&#039;, sus aplicaciones aparecerán anunciadas en los &#039;&#039;banners&#039;&#039; publicitarios, tanto de su aplicaciones, como de aplicaciones externas.&lt;br /&gt;
&lt;br /&gt;
La esencia del &#039;&#039;&#039;App Exchange&#039;&#039;&#039; es el &#039;&#039;&#039;intercambio de espacios publicitarios entre los desarrolladores&#039;&#039;&#039;, de tal manera que pueda anunciar sus aplicaciones en los espacios de aplicaciones de otros desarrolladores, a la vez que ellos puedan publicitar sus aplicaciones en los de usted.&lt;br /&gt;
&lt;br /&gt;
El anuncio de una de sus aplicaciones aparecerá en un &#039;&#039;banner&#039;&#039; publicitario como una creatividad en formato HTML, a la que denominaremos &#039;&#039;&#039;auto-promoción&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Sistema de puntos ==&lt;br /&gt;
&lt;br /&gt;
El sistema de &#039;&#039;&#039;puntos&#039;&#039;&#039; o &#039;&#039;&#039;Saldo de App Exchange&#039;&#039;&#039; establece una relación equitativa de las auto-promociones. Es necesaria la incorporación de la &#039;&#039;&#039;librería Referrer&#039;&#039;&#039; para poder obtener las estadísticas de descargas.&lt;br /&gt;
&lt;br /&gt;
Cada vez que una de sus auto-promociones se muestre en una aplicación que no sea de su propiedad, si el usuario clica en el anuncio para dirigirse a la URL de la tienda (Google Play, Apple Store, etc.) o web, y descarga la aplicación, &#039;&#039;&#039;disminuirá&#039;&#039;&#039; su &#039;&#039;&#039;saldo de App Exchange en 1 punto&#039;&#039;&#039;. Por el contrario, en caso de que se realice la descarga de una aplicación externa a través de una auto-promoción suya, &#039;&#039;&#039;aumentará&#039;&#039;&#039; su &#039;&#039;&#039;saldo de App Exchange en 1 punto&#039;&#039;&#039;.&lt;br /&gt;
Si tanto la aplicación que ha mostrado la auto-promoción como la aplicación descargada son suyas, el saldo no cambiará.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Puntos.png |center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La primera vez que active el &#039;&#039;&#039;App Exchange&#039;&#039;&#039; se le serán asignados 30 puntos. Este saldo irá aumentando o disminuyendo en función de si son sus aplicaciones las descargadas o son las aplicaciones de otros desarrolladores. Si su saldo es &#039;&#039;&#039;0&#039;&#039;&#039; no se mostrarán sus auto-promociones en las aplicaciones que no sean suyas.&lt;br /&gt;
&lt;br /&gt;
== Activación del servicio ==&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar el &#039;&#039;&#039;servicio App Exchange&#039;&#039;&#039; en una de sus aplicaciones, debe instalar previamente las [http://panel.mobeleader.com/index.php?sec=82 librerías SPS y Referrer], así como tener creado al menos un [http://panel.mobeleader.com/index.php?sec=34 espacio] para poder mostrar la publicidad.&lt;br /&gt;
&lt;br /&gt;
Si ya tiene un espacio creado previamente diríjase a la sección [http://panel.mobeleader.com/index.php?sec=34 Mis Espacios] y pulse en el icono &#039;&#039;&#039;Editar espacio&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Editar_espacio.png |center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si aún no ha creado un espacio para mostrar publicidad hágalo pulsando el botón &#039;&#039;&#039;Crear Espacio&#039;&#039;&#039; en la sección [http://panel.mobeleader.com/index.php?sec=34 Mis Espacios].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Crear_espacio.png |center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Antes de finalizar la configuración del espacio encontrará la opción &#039;&#039;&#039;Activar soporte para App Exchange&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[Archivo: Appex_no.png |center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si pulsa en el &#039;&#039;checkbox&#039;&#039;, &#039;&#039;&#039;activará el App Exchange&#039;&#039;&#039; para el espacio que está siendo configurado y se desplegarán las diferentes opciones de configuración del &#039;&#039;&#039;App Exchange&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[Archivo: Appex_si.png |center]]&lt;br /&gt;
&lt;br /&gt;
== Configuración del servicio ==&lt;br /&gt;
&lt;br /&gt;
Una vez activado el &#039;&#039;&#039;App Exchange&#039;&#039;&#039; para el espacio, podrá configurarlo in situ, o más adelante desde la sección [http://panel.mobeleader.com/index.php?sec=78 Configuración del App Exchange] pulsando en el botón &#039;&#039;&#039;Configurar App Exchange&#039;&#039;&#039; en la aplicación correspondiente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Config_appex.png |center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Porcentaje del App Exchange ===&lt;br /&gt;
&lt;br /&gt;
Establece la relación entre el número de veces que aparecerán auto-promociones respecto al resto de anuncios. Si por ejemplo seleccionara un porcentaje de 20 se mostraría una auto-promoción por cada 5 impresiones en un espacio. Este porcentaje no podrá ser superior al 60%.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Config_appex_1.png |center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Activación de aplicaciones propias ===&lt;br /&gt;
&lt;br /&gt;
Si tiene auto-promociones de otras aplicaciones de su propiedad, active esta opción si quiere que se muestren dentro del espacio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Config_appex_2.png |center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Activación de aplicaciones externas ===&lt;br /&gt;
&lt;br /&gt;
Si desea intercambiar sus auto-promociones con aplicaciones de otros desarrolladores active esta opción. Recuerde que su saldo ha de ser mayor de 0 para que esta condición se cumpla.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Config_appex_3.png |center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Porcentaje de intercambio entre aplicaciones externas e internas ===&lt;br /&gt;
&lt;br /&gt;
Puede especificar el porcentaje de veces que quiere que aparezcan auto-promociones propias respecto a las de aplicaciones de otros desarrolladores. Si seleccionara un porcentaje de 100 en esta opción se mostrarían únicamente sus propias auto-promociones. Por el contrario, si seleccionara un 0%, todas las auto-promociones mostradas en su espacio serían de aplicaciones de otros desarrolladores. Seleccionando un porcentaje de 20, por cada 5 auto-promociones mostradas en el espacio, 1 sería de su propiedad y 4 externas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Config_appex_4.png |center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto-promociones ==&lt;br /&gt;
Una vez activado y configurado el &#039;&#039;&#039;App Exchange&#039;&#039;&#039; en el espacio deseado, cree la auto-promoción de su aplicación. En la sección [http://panel.mobeleader.com/index.php?sec=66 App Exchange], pulse el botón &#039;&#039;&#039;Crear auto-promoción&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Boton_2.png |center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Siga los pasos que se indican para configurar su auto-promoción y automáticamente se creará una creatividad HTML de 320 x 50 &#039;&#039;pixels&#039;&#039;. Podrá ver una &#039;&#039;preview&#039;&#039; de la auto-promoción en la tabla &#039;&#039;&#039;Mis auto-promociones&#039;&#039;&#039; de la sección [http://panel.mobeleader.com/index.php?sec=66 App Exchange] pulsando en &#039;&#039;&#039;Ver preview&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Autoad preview.png |center]]&lt;br /&gt;
&lt;br /&gt;
== Lanzamiento de una auto-promoción ==&lt;br /&gt;
&lt;br /&gt;
El lanzamiento de de las auto-promociones se realiza a través de la &#039;&#039;&#039;librería SPS&#039;&#039;&#039;. Las auto-promociones son creatividades con un tamaño de &#039;&#039;&#039;320 x 50&#039;&#039;&#039;, por lo que si quiere que se muestren en su espacio éste debe ser del tipo &#039;&#039;&#039;&amp;quot;BANNER&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Si ha seguido los pasos previamente indicados y el espacio esté correctamente configurado para mostrar anuncios y auto-promociones, éstas se mostrarán con la frecuencia establecida en los porcentajes de configuración.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Estadísticas del App Exchange ==&lt;br /&gt;
&lt;br /&gt;
En la sección [http://panel.mobeleader.com/index.php?sec=66 App Exchange], la tabla &#039;&#039;&#039;Aplicaciones con App Exchange&#039;&#039;&#039; le mostrará las estadísticas de acciones de sus aplicaciones.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Impresiones entregadas&#039;&#039;&#039;: impresiones o visualizaciones de auto-promociones en los espacios de la aplicación.&lt;br /&gt;
*&#039;&#039;&#039;Impresiones recibidas&#039;&#039;&#039;: visualizaciones de auto-promociones de la aplicación mostradas en otras aplicaciones.&lt;br /&gt;
*&#039;&#039;&#039;Clicks entregados&#039;&#039;&#039;: clicks realizados en las Impresiones entregadas.&lt;br /&gt;
*&#039;&#039;&#039;Clicks recibidos&#039;&#039;&#039;: clicks realizados en las Impresiones recibidas.&lt;br /&gt;
*&#039;&#039;&#039;Descargas entregadas&#039;&#039;&#039;: descargas de otras aplicaciones a través de sus auto-promociones.&lt;br /&gt;
*&#039;&#039;&#039;Descargas recibidas&#039;&#039;&#039;: descargas de sus aplicaciones a través de auto-promociones de otros desarrolladores.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo: Appex_stat.png |center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En cada campo de estadísticas se mostrarán, si es que lo hay, el número total de acciones, el valor del número de acciones que corresponden a auto-promociones de aplicaciones externas, así como el valor correspondiente a cada aplicación propia.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_Webservice_NickCenter&amp;diff=2748</id>
		<title>Documentación Webservice NickCenter</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_Webservice_NickCenter&amp;diff=2748"/>
		<updated>2019-06-07T10:31:34Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Campos y Formatos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
En ésta documentación se expondrá como deberemos hacer uso del Webservice de NickCenter, de manera que emule la propia librería de NickCenter y así no haya la necesidad de usarla ni implementarla en las aplicaciones. A pesar de ello, la configuración en nuestro panel será la misma, siendo necesario dar de alta la aplicación en éste, y configurandola para el uso de NickCenter. Podremos hacer uso de dicho Webservice de dos maneras:&lt;br /&gt;
#Llamada directa al Webservice. Ésta opción será menos segura debido a que los datos irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiNickcenter&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante RSA Keys generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
=Conexión con el Webservice=&lt;br /&gt;
La conexión con el Webservice se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa al Webservice. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa==&lt;br /&gt;
Si queremos usar directamente el Webservice de Nickcenter sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, esta será la URL a la que deberemos conectarnos mediante POST &#039;&#039;https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=&#039;&#039;. Más adelante se expondrán que tareas hay disponibles y como hay que mandar los datos para su ejecución.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa con task (tarea) &#039;&#039;&#039;checkActive&#039;&#039;&#039;, una app concreta (añadiendo el hash que le correspondiera) y country (país) &#039;&#039;&#039;ES&#039;&#039;&#039; (España):&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://nickcenter.mobeleader.com/webservice_nickcenter.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode(&#039;task=checkActive&amp;amp;app=my_app_hash&amp;amp;country=ES&#039;));&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en nuestra carpeta vendor, lo primero que debemos hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez modificada la ruta, para poder instanciar la clase deberemos coger la cadena de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde [https://panel.mobeleader.com/index.php?sec=6 nuestro panel], y reemplazarla en el siguiente codigo.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$conexionapi = new spsApiConnection([RSA KEY PRIVADA]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Si la instalación de la librería es correcta, la ruta de acceso a ésta ha sido cambiada y es correcta, y la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039; es correcta, para realizar las llamadas al Webservice usaremos la funcion &#039;&#039;&#039;getWebserviceData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Dicha función será la encargada de realizar todas las conexiones al Webservice, de cifrar los datos que enviaremos a éste y de descifrar los que datos que nos retorne.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$conexionapi = new spsApiConnection([RSA KEY PRIVADA]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getWebserviceData(tarea, array_datos)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
A continuación se exponen cuales son las distintas tareas ejecutables, y como ha de ser el array de datos para posibilitar dicha ejecución.&lt;br /&gt;
&lt;br /&gt;
=Tareas=&lt;br /&gt;
La clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039; consta de la función &#039;&#039;getData(&#039;&#039;&#039;tarea, array_datos&#039;&#039;&#039;)&#039;&#039;, con la que ejecutaremos las distintas operaciones que el Webservice permite y a la que le deberemos mandar los siguientes parámetros:&lt;br /&gt;
#&#039;&#039;&#039;tarea:&#039;&#039;&#039; Sera la propia tarea a realizar, puediendo ser:&lt;br /&gt;
##&#039;&#039;&#039;checkActive&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;requestFields&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;register&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;update&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;login&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;rescuePassword&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;array_datos:&#039;&#039;&#039; Contendrá un array con los datos necesarios para la ejecución de la tarea.&lt;br /&gt;
===Llamadas al Webservice===&lt;br /&gt;
&#039;&#039;Recuerde reemplazar el contenido de los ejemplos por los valores reales&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;checkActive:&#039;&#039;&#039; Esta tarea comprobará que la aplicación tenga NickCenter activo, independientemente de usarla directamente o no, el resto de tareas harán uso de ella antes de realizar sus operaciones propias.&lt;br /&gt;
:*&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en nuestro panel.&lt;br /&gt;
:*&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=checkActive&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;country=[código país, ej: ES]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;checkActive&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;requestFields:&#039;&#039;&#039; Mediante ésta tarea obtendremos la configuración de campos y traducciones para una determinada vista.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;view:&#039;&#039;&#039; Indicará los campos de que vista solicitamos.&lt;br /&gt;
***&#039;&#039;&#039;register:&#039;&#039;&#039; Pantalla inicial del registro.&lt;br /&gt;
***&#039;&#039;&#039;login:&#039;&#039;&#039; Pantalla de login.&lt;br /&gt;
***&#039;&#039;&#039;rescue:&#039;&#039;&#039; Pantalla de recuperación de contraseña.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo, necesario para las traducciones y las configuraciones de los campos que se retornarán.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=requestFields&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;view=[vista, ej: register]&amp;amp;country=[código país, ej: ES]&amp;amp;language=[código idioma, ej: es]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;view&#039;] = [vista, ej: register];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
$array_datos[&#039;language&#039;] = [código idioma, ej: es];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;requestFields&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;register:&#039;&#039;&#039; Esta tarea servirá para registrar un usuario en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=register&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información a registrar del usuario]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información a registrar del usuario];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;register&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;update:&#039;&#039;&#039; Esta tarea servirá para actualizar un usuario que previamente haya sido registrado en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=update&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información a actualizar del usuario]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información a actualizar del usuario];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;update&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;login:&#039;&#039;&#039; Esta tarea servirá para hacer login en las aplicaciones registradas en NickCenter, con usuarios previamente registrados en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=login&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información necesaria para el login]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información necesaria para el login];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;login&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;rescuePassword:&#039;&#039;&#039; Mediante ésta tarea restauraremos la contraseña de usuarios previamente registrados en nuestro sistema y que no esten dados de baja.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo, necesario para las traducciones que se retornarán.&lt;br /&gt;
**&#039;&#039;&#039;email:&#039;&#039;&#039; Email al que hay que restaurar la contraseña.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=rescuePassword&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;country=[código país, ej: ES]&amp;amp;language=[código idioma, ej: es]&amp;amp;email=[email a recuperar, ej: prueba@prueba.com]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
$array_datos[&#039;language&#039;] = [código idioma, ej: es];&lt;br /&gt;
$array_datos[&#039;email&#039;] = [email a recuperar, ej: prueba@prueba.com];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;rescuePassword&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Retornos del Webservice===&lt;br /&gt;
Cada tarea tendrá su propio JSON de retorno:&lt;br /&gt;
*&#039;&#039;&#039;checkActive:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;active:&#039;&#039;&#039; Indicará si la aplicación esta activa o no.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;requestFields:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;general:&#039;&#039;&#039; En caso de no haber ningún error devolverá un array con todas las traducciones generales para el idioma seleccionado.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; En caso de no haber ningún error devolverá un array con todos los campos y sus traducciones para el idioma seleccionado.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;register:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que el registro se ha completado.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;update:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que se ha actualizado correctamente.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;login:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que se ha logeado correctamente.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;rescuePassword:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de que no haya habido un error, se mandará una cadena en el idioma seleccionado, con las instrucciones para recuperar la contraseña.&lt;br /&gt;
&lt;br /&gt;
=Campos y Formatos=&lt;br /&gt;
*&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;ua:&#039;&#039;&#039; User Agent. Es la cadena de texto que identifica al usuario ante el servidor que se esta conectando mediante HTTP. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;lmt:&#039;&#039;&#039; Limit Ad Tracking. Indicará si esta permitido el acceso al ifa del dispositivo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; Inactivo/Permitido.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Activo/No permitido.&lt;br /&gt;
**&#039;&#039;&#039;devicetype:&#039;&#039;&#039; Tipo de dispositivo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;4:&#039;&#039;&#039; Smartphone.&lt;br /&gt;
***&#039;&#039;&#039;5:&#039;&#039;&#039; Tablet/iPad.&lt;br /&gt;
**&#039;&#039;&#039;make:&#039;&#039;&#039; Marca del dispositivo. &#039;&#039;Ejemplo: bq&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;model:&#039;&#039;&#039; Modelo del dispositivo. &#039;&#039;Ejemplo: Aquaris E5&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Sistema operativo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;Android:&#039;&#039;&#039; Android.&lt;br /&gt;
***&#039;&#039;&#039;iOs:&#039;&#039;&#039; ios.&lt;br /&gt;
**&#039;&#039;&#039;osv:&#039;&#039;&#039; Version del sistema operativo. &#039;&#039;Ejemplo: 6.0.1&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;hwv:&#039;&#039;&#039; Version del hardware. &#039;&#039;Ejemplo: Aquaris_E5&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;h:&#039;&#039;&#039; Altura de pantalla. &#039;&#039;Ejemplo: 1920&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;w:&#039;&#039;&#039; Anchura de pantalla. &#039;&#039;Ejemplo: 1080&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;ppi:&#039;&#039;&#039; Pixeles por pulgada. &#039;&#039;Ejemplo: 480&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;pxratio:&#039;&#039;&#039; Densidad de pixeles. &#039;&#039;Ejemplo: 3&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;inches:&#039;&#039;&#039; Pulgadas. &#039;&#039;Ejemplo: 4.9&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;js:&#039;&#039;&#039; Soporte para JavaScript. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; No.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Si.&lt;br /&gt;
**&#039;&#039;&#039;connectiontype:&#039;&#039;&#039; Tipo de conexión. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; Unknown.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Ethernet.&lt;br /&gt;
***&#039;&#039;&#039;2:&#039;&#039;&#039; WiFI.&lt;br /&gt;
***&#039;&#039;&#039;3:&#039;&#039;&#039; Cellular Network - Unkown Generation.&lt;br /&gt;
***&#039;&#039;&#039;4:&#039;&#039;&#039; Cellular Network - 2G.&lt;br /&gt;
***&#039;&#039;&#039;5:&#039;&#039;&#039; Cellular Network - 3G.&lt;br /&gt;
***&#039;&#039;&#039;6:&#039;&#039;&#039; Cellular Network - 4G.&lt;br /&gt;
**&#039;&#039;&#039;ifa:&#039;&#039;&#039; Identificador para la publicidad.  &#039;&#039;&#039;Campo obligatorio, debe de estar o el ifa o el uuid.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;Android:&#039;&#039;&#039; Google AID (Google Advertising Identifier). &#039;&#039;Ejemplo: 38400000-8cf0-11bd-b23e-10b96e40000d&#039;&#039;.&lt;br /&gt;
***&#039;&#039;&#039;iOs:&#039;&#039;&#039; iOS IFA (Apple Identifier for Advertiser). &#039;&#039;Ejemplo: AAAAAAAAA-BBBB-CCCC-1111-222222220000&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;uuid:&#039;&#039;&#039; Identificador único universal. &#039;&#039;Ejemplo: 550e8400-e29b-41d4-a716-446655440000&#039;&#039;. &#039;&#039;&#039;Campo obligatorio, debe estar el uuid o el ifa.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo ( locale ). &#039;&#039;Ejemplo: es&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Pais del dispositivo ( locale ). &#039;&#039;Ejemplo: ES&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;carrier:&#039;&#039;&#039; Operador Telefónico del dispositivo. &#039;&#039;Ejemplo: Movistar&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;carriercode:&#039;&#039;&#039; Código del operador telefónico. &#039;&#039;Ejemplo: 21407&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;carriercountry:&#039;&#039;&#039; País del operador telefónico. &#039;&#039;Ejemplo: ES&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mac: ( Solo para Android )&#039;&#039;&#039; Mac del dispositivo. &#039;&#039;Ejemplo: 00:1B:44:11:3A:B7&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;imsi: ( Solo para Android )&#039;&#039;&#039; Identidad Internacional del Abonado Móvil. &#039;&#039;Ejemplo: 7160652952503786&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;did: ( Solo para Android )&#039;&#039;&#039; Identificador Direct inward dialing (DID).&lt;br /&gt;
**&#039;&#039;&#039;dpid: ( Solo para Android )&#039;&#039;&#039; Plataform device id (Android id).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;jsonUser:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;name:&#039;&#039;&#039; Nombre del usuario. Máximo 100 caracteres. &#039;&#039;Ejemplo: John&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;surname:&#039;&#039;&#039; Apellido del usuario. Máximo 100 caracteres. &#039;&#039;Ejemplo: Smith&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;email:&#039;&#039;&#039; Email del usuario. Máximo 250 caracteres. &#039;&#039;Ejemplo: xxxx@xxx.com&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;password:&#039;&#039;&#039; Password del usuario. Deberá ir en md5(). Máximo 50 caracteres. &#039;&#039;Ejemplo: e10adc3949ba59abbe56e057f20f883e&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;nick:&#039;&#039;&#039; Nick del usuario. Máximo 50 caracteres. &#039;&#039;Ejemplo: CocoNilo&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;phone:&#039;&#039;&#039; Teléfono móvil del usuario. Máximo 15 caracteres. &#039;&#039;Ejemplo: 6XX XXX XXX&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;birthDate:&#039;&#039;&#039; Fecha de nacimiento del usuario. &#039;&#039;Ejemplo : 1992-01-12&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;gender:&#039;&#039;&#039; Sexo del usuario.&lt;br /&gt;
***&#039;&#039;&#039;Masculino:&#039;&#039;&#039; M.&lt;br /&gt;
***&#039;&#039;&#039;Femenino:&#039;&#039;&#039; F.&lt;br /&gt;
**&#039;&#039;&#039;allowsCommercials:&#039;&#039;&#039; Termino de privacidad con el que el usuario permite recibir comunicaciones comerciales.&lt;br /&gt;
***&#039;&#039;&#039;Permite:&#039;&#039;&#039; yes.&lt;br /&gt;
***&#039;&#039;&#039;Deniega:&#039;&#039;&#039; no.&lt;br /&gt;
**&#039;&#039;&#039;allowsCession:&#039;&#039;&#039; Termino de privacidad con el que el usuario permite que sus datos sean cedidos a terceras empresas relacionadas con el sector.&lt;br /&gt;
***&#039;&#039;&#039;Permite:&#039;&#039;&#039; yes.&lt;br /&gt;
***&#039;&#039;&#039;Deniega:&#039;&#039;&#039; no.&lt;br /&gt;
**Dependiendo de la tarea que estemos ejecutando los campos obligatorios variarán:&lt;br /&gt;
***&#039;&#039;&#039;register:&#039;&#039;&#039; Dependerá de los campos que hayamos configurado en el apartado de NickCenter en el panel de Mobeleader, como mínimo siempre será obligatorio el &#039;&#039;&#039;email&#039;&#039;&#039; y el &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
***&#039;&#039;&#039;update:&#039;&#039;&#039; El único campo obligatorio para las actualizaciones será el &#039;&#039;&#039;email&#039;&#039;&#039;, el resto de campos que se añadan serán los campos a actualizar.&lt;br /&gt;
***&#039;&#039;&#039;login:&#039;&#039;&#039; Dependerá de los campos que hayamos configurado en el apartado de NickCenter en el panel de Mobeleader, será obligatorio el &#039;&#039;&#039;email&#039;&#039;&#039; o el &#039;&#039;&#039;nick&#039;&#039;&#039;, junto con el &#039;&#039;&#039;password&#039;&#039;&#039;. En cualquiera de los casos el &#039;&#039;&#039;password&#039;&#039;&#039; siempre será obligatorio.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;jsonApp&#039;&#039;&#039;: Todos los campos son obligatorios&lt;br /&gt;
**&#039;&#039;&#039;name&#039;&#039;&#039;: Nombre de la aplicación dada de alta en nuestro panel. &#039;&#039;Ejemplo: MyApp&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;bundle&#039;&#039;&#039;: Nombre del paquete de la aplicación. &#039;&#039;Ejemplo: com.mypackage&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;version&#039;&#039;&#039;: Version de la aplicación. &#039;&#039;Ejemplo: 1.0&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;versioncode&#039;&#039;&#039;: Código de versión de la aplicación. &#039;&#039;Ejemplo: 1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Códigos de Errores=&lt;br /&gt;
A continuación se expondrá una lista con los posibles errores que devolverá el Webservice en caso de que los datos no sean correctos:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Errores generales:&#039;&#039;&#039; Estos errores se deben a un mal uso de la clase &#039;&#039;&#039;spsApiNickcenter&#039;&#039;&#039; y/o su cifrado, por lo que al no poder devolver la cadena cifrada con la RSA Key pública que le corresponde a la aplicación, se mandarán en texto plano sin cifrar y sin formato JSON.&lt;br /&gt;
**Error 000a - Failure decrypting&lt;br /&gt;
**Error 000b - Invalid Task&lt;br /&gt;
**Error 000c - Empty or invalid app hash&lt;br /&gt;
**Error 000d - Missing public RSA Key for app hash X&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea checkActive:&#039;&#039;&#039;&lt;br /&gt;
**Error 001a - Failure checking app active&lt;br /&gt;
**Error 001b - Failure checking app active&lt;br /&gt;
**Error 001c - Failure checking app active&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea rescuePassword:&#039;&#039;&#039;&lt;br /&gt;
**Error 002a - Failure on rescuePassword&lt;br /&gt;
**Error 002b - Failure on rescuePassword&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea requestFields:&#039;&#039;&#039;&lt;br /&gt;
**Error 003a - Failure on requestFields&lt;br /&gt;
**Error 003b - Failure on requestFields&lt;br /&gt;
**Error 003c - Failure on requestFields&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 004a - Failure validating user json, there are no fields configured in your application&lt;br /&gt;
**Error 004b - Failure validating user json, incorrect json format&lt;br /&gt;
**Error 004c - Failure validating user json&lt;br /&gt;
**Error 004d - X is missing or empty in user json.&lt;br /&gt;
**Error 004e - Invalid format for X field in user json.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 005a - Failure validating device json, incorrect json format&lt;br /&gt;
**Error 005b - Failure validating device json&lt;br /&gt;
**Error 005c - Field X is missing or empty in device json&lt;br /&gt;
**Error 005c - Field ifa/uuid are missing or empty in device json, one of them must be informed&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 006a - Failure validating app json, incorrect json format&lt;br /&gt;
**Error 006b - Field X is empty in app json&lt;br /&gt;
**Error 006c - The bundle X for os Y, does not exist&lt;br /&gt;
**Error 006c - Invalid X in app json, it must be numeric&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 007a - Failure generating library json, incorrect device json format&lt;br /&gt;
**Error 007b - Failure generating library json, wrong os in device json&lt;br /&gt;
**Error 007c - Failure generating library json, wrong os in device json&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register:&#039;&#039;&#039;&lt;br /&gt;
**Error 008a - Failure registering&lt;br /&gt;
**Error 008b - Failure registering&lt;br /&gt;
**Error 008c - Email already exists&lt;br /&gt;
**Error 008c - Nick already exists&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea login:&#039;&#039;&#039;&lt;br /&gt;
**Error 009 - Failure on login&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea update:&#039;&#039;&#039;&lt;br /&gt;
**Error 010 - Failure updating&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Sin tarea/Tarea erronea:&#039;&#039;&#039;&lt;br /&gt;
**Error 011a - Empty Task&lt;br /&gt;
**Error 011b - Invalid Task&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_Webservice_NickCenter&amp;diff=2747</id>
		<title>Documentación Webservice NickCenter</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_Webservice_NickCenter&amp;diff=2747"/>
		<updated>2019-06-07T10:29:41Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Llamadas al Webservice */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
En ésta documentación se expondrá como deberemos hacer uso del Webservice de NickCenter, de manera que emule la propia librería de NickCenter y así no haya la necesidad de usarla ni implementarla en las aplicaciones. A pesar de ello, la configuración en nuestro panel será la misma, siendo necesario dar de alta la aplicación en éste, y configurandola para el uso de NickCenter. Podremos hacer uso de dicho Webservice de dos maneras:&lt;br /&gt;
#Llamada directa al Webservice. Ésta opción será menos segura debido a que los datos irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiNickcenter&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante RSA Keys generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
=Conexión con el Webservice=&lt;br /&gt;
La conexión con el Webservice se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa al Webservice. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa==&lt;br /&gt;
Si queremos usar directamente el Webservice de Nickcenter sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, esta será la URL a la que deberemos conectarnos mediante POST &#039;&#039;https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=&#039;&#039;. Más adelante se expondrán que tareas hay disponibles y como hay que mandar los datos para su ejecución.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa con task (tarea) &#039;&#039;&#039;checkActive&#039;&#039;&#039;, una app concreta (añadiendo el hash que le correspondiera) y country (país) &#039;&#039;&#039;ES&#039;&#039;&#039; (España):&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://nickcenter.mobeleader.com/webservice_nickcenter.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode(&#039;task=checkActive&amp;amp;app=my_app_hash&amp;amp;country=ES&#039;));&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en nuestra carpeta vendor, lo primero que debemos hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez modificada la ruta, para poder instanciar la clase deberemos coger la cadena de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde [https://panel.mobeleader.com/index.php?sec=6 nuestro panel], y reemplazarla en el siguiente codigo.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$conexionapi = new spsApiConnection([RSA KEY PRIVADA]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Si la instalación de la librería es correcta, la ruta de acceso a ésta ha sido cambiada y es correcta, y la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039; es correcta, para realizar las llamadas al Webservice usaremos la funcion &#039;&#039;&#039;getWebserviceData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Dicha función será la encargada de realizar todas las conexiones al Webservice, de cifrar los datos que enviaremos a éste y de descifrar los que datos que nos retorne.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$conexionapi = new spsApiConnection([RSA KEY PRIVADA]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getWebserviceData(tarea, array_datos)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
A continuación se exponen cuales son las distintas tareas ejecutables, y como ha de ser el array de datos para posibilitar dicha ejecución.&lt;br /&gt;
&lt;br /&gt;
=Tareas=&lt;br /&gt;
La clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039; consta de la función &#039;&#039;getData(&#039;&#039;&#039;tarea, array_datos&#039;&#039;&#039;)&#039;&#039;, con la que ejecutaremos las distintas operaciones que el Webservice permite y a la que le deberemos mandar los siguientes parámetros:&lt;br /&gt;
#&#039;&#039;&#039;tarea:&#039;&#039;&#039; Sera la propia tarea a realizar, puediendo ser:&lt;br /&gt;
##&#039;&#039;&#039;checkActive&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;requestFields&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;register&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;update&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;login&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;rescuePassword&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;array_datos:&#039;&#039;&#039; Contendrá un array con los datos necesarios para la ejecución de la tarea.&lt;br /&gt;
===Llamadas al Webservice===&lt;br /&gt;
&#039;&#039;Recuerde reemplazar el contenido de los ejemplos por los valores reales&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;checkActive:&#039;&#039;&#039; Esta tarea comprobará que la aplicación tenga NickCenter activo, independientemente de usarla directamente o no, el resto de tareas harán uso de ella antes de realizar sus operaciones propias.&lt;br /&gt;
:*&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en nuestro panel.&lt;br /&gt;
:*&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=checkActive&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;country=[código país, ej: ES]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;checkActive&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;requestFields:&#039;&#039;&#039; Mediante ésta tarea obtendremos la configuración de campos y traducciones para una determinada vista.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;view:&#039;&#039;&#039; Indicará los campos de que vista solicitamos.&lt;br /&gt;
***&#039;&#039;&#039;register:&#039;&#039;&#039; Pantalla inicial del registro.&lt;br /&gt;
***&#039;&#039;&#039;login:&#039;&#039;&#039; Pantalla de login.&lt;br /&gt;
***&#039;&#039;&#039;rescue:&#039;&#039;&#039; Pantalla de recuperación de contraseña.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo, necesario para las traducciones y las configuraciones de los campos que se retornarán.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=requestFields&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;view=[vista, ej: register]&amp;amp;country=[código país, ej: ES]&amp;amp;language=[código idioma, ej: es]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;view&#039;] = [vista, ej: register];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
$array_datos[&#039;language&#039;] = [código idioma, ej: es];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;requestFields&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;register:&#039;&#039;&#039; Esta tarea servirá para registrar un usuario en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=register&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información a registrar del usuario]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información a registrar del usuario];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;register&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;update:&#039;&#039;&#039; Esta tarea servirá para actualizar un usuario que previamente haya sido registrado en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=update&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información a actualizar del usuario]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información a actualizar del usuario];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;update&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;login:&#039;&#039;&#039; Esta tarea servirá para hacer login en las aplicaciones registradas en NickCenter, con usuarios previamente registrados en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=login&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información necesaria para el login]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información necesaria para el login];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;login&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;rescuePassword:&#039;&#039;&#039; Mediante ésta tarea restauraremos la contraseña de usuarios previamente registrados en nuestro sistema y que no esten dados de baja.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en nuestro panel.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo, necesario para las traducciones que se retornarán.&lt;br /&gt;
**&#039;&#039;&#039;email:&#039;&#039;&#039; Email al que hay que restaurar la contraseña.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=rescuePassword&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;country=[código país, ej: ES]&amp;amp;language=[código idioma, ej: es]&amp;amp;email=[email a recuperar, ej: prueba@prueba.com]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
$array_datos[&#039;language&#039;] = [código idioma, ej: es];&lt;br /&gt;
$array_datos[&#039;email&#039;] = [email a recuperar, ej: prueba@prueba.com];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;rescuePassword&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Retornos del Webservice===&lt;br /&gt;
Cada tarea tendrá su propio JSON de retorno:&lt;br /&gt;
*&#039;&#039;&#039;checkActive:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;active:&#039;&#039;&#039; Indicará si la aplicación esta activa o no.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;requestFields:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;general:&#039;&#039;&#039; En caso de no haber ningún error devolverá un array con todas las traducciones generales para el idioma seleccionado.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; En caso de no haber ningún error devolverá un array con todos los campos y sus traducciones para el idioma seleccionado.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;register:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que el registro se ha completado.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;update:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que se ha actualizado correctamente.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;login:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que se ha logeado correctamente.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;rescuePassword:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de que no haya habido un error, se mandará una cadena en el idioma seleccionado, con las instrucciones para recuperar la contraseña.&lt;br /&gt;
&lt;br /&gt;
=Campos y Formatos=&lt;br /&gt;
*&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;ua:&#039;&#039;&#039; User Agent. Es la cadena de texto que identifica al usuario ante el servidor que se esta conectando mediante HTTP. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;lmt:&#039;&#039;&#039; Limit Ad Tracking. Indicará si esta permitido el acceso al ifa del dispositivo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; Inactivo/Permitido.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Activo/No permitido.&lt;br /&gt;
**&#039;&#039;&#039;devicetype:&#039;&#039;&#039; Tipo de dispositivo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;4:&#039;&#039;&#039; Smartphone.&lt;br /&gt;
***&#039;&#039;&#039;5:&#039;&#039;&#039; Tablet/iPad.&lt;br /&gt;
**&#039;&#039;&#039;make:&#039;&#039;&#039; Marca del dispositivo. &#039;&#039;Ejemplo: bq&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;model:&#039;&#039;&#039; Modelo del dispositivo. &#039;&#039;Ejemplo: Aquaris E5&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Sistema operativo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;Android:&#039;&#039;&#039; Android.&lt;br /&gt;
***&#039;&#039;&#039;iOs:&#039;&#039;&#039; ios.&lt;br /&gt;
**&#039;&#039;&#039;osv:&#039;&#039;&#039; Version del sistema operativo. &#039;&#039;Ejemplo: 6.0.1&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;hwv:&#039;&#039;&#039; Version del hardware. &#039;&#039;Ejemplo: Aquaris_E5&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;h:&#039;&#039;&#039; Altura de pantalla. &#039;&#039;Ejemplo: 1920&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;w:&#039;&#039;&#039; Anchura de pantalla. &#039;&#039;Ejemplo: 1080&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;ppi:&#039;&#039;&#039; Pixeles por pulgada. &#039;&#039;Ejemplo: 480&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;pxratio:&#039;&#039;&#039; Densidad de pixeles. &#039;&#039;Ejemplo: 3&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;inches:&#039;&#039;&#039; Pulgadas. &#039;&#039;Ejemplo: 4.9&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;js:&#039;&#039;&#039; Soporte para JavaScript. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; No.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Si.&lt;br /&gt;
**&#039;&#039;&#039;connectiontype:&#039;&#039;&#039; Tipo de conexión. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; Unknown.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Ethernet.&lt;br /&gt;
***&#039;&#039;&#039;2:&#039;&#039;&#039; WiFI.&lt;br /&gt;
***&#039;&#039;&#039;3:&#039;&#039;&#039; Cellular Network - Unkown Generation.&lt;br /&gt;
***&#039;&#039;&#039;4:&#039;&#039;&#039; Cellular Network - 2G.&lt;br /&gt;
***&#039;&#039;&#039;5:&#039;&#039;&#039; Cellular Network - 3G.&lt;br /&gt;
***&#039;&#039;&#039;6:&#039;&#039;&#039; Cellular Network - 4G.&lt;br /&gt;
**&#039;&#039;&#039;ifa:&#039;&#039;&#039; Identificador para la publicidad.  &#039;&#039;&#039;Campo obligatorio, debe de estar o el ifa o el uuid.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;Android:&#039;&#039;&#039; Google AID (Google Advertising Identifier). &#039;&#039;Ejemplo: 38400000-8cf0-11bd-b23e-10b96e40000d&#039;&#039;.&lt;br /&gt;
***&#039;&#039;&#039;iOs:&#039;&#039;&#039; iOS IFA (Apple Identifier for Advertiser). &#039;&#039;Ejemplo: AAAAAAAAA-BBBB-CCCC-1111-222222220000&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;uuid:&#039;&#039;&#039; Identificador único universal. &#039;&#039;Ejemplo: 550e8400-e29b-41d4-a716-446655440000&#039;&#039;. &#039;&#039;&#039;Campo obligatorio, debe estar el uuid o el ifa.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo ( locale ). &#039;&#039;Ejemplo: es&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Pais del dispositivo ( locale ). &#039;&#039;Ejemplo: ES&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;carrier:&#039;&#039;&#039; Operador Telefónico del dispositivo. &#039;&#039;Ejemplo: Movistar&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;carriercode:&#039;&#039;&#039; Código del operador telefónico. &#039;&#039;Ejemplo: 21407&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;carriercountry:&#039;&#039;&#039; País del operador telefónico. &#039;&#039;Ejemplo: ES&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mac: ( Solo para Android )&#039;&#039;&#039; Mac del dispositivo. &#039;&#039;Ejemplo: 00:1B:44:11:3A:B7&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;imsi: ( Solo para Android )&#039;&#039;&#039; Identidad Internacional del Abonado Móvil. &#039;&#039;Ejemplo: 7160652952503786&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;did: ( Solo para Android )&#039;&#039;&#039; Identificador Direct inward dialing (DID).&lt;br /&gt;
**&#039;&#039;&#039;dpid: ( Solo para Android )&#039;&#039;&#039; Plataform device id (Android id).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;jsonUser:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;name:&#039;&#039;&#039; Nombre del usuario. Máximo 100 caracteres. &#039;&#039;Ejemplo: Kevin&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;surname:&#039;&#039;&#039; Apellido del usuario. Máximo 100 caracteres. &#039;&#039;Ejemplo: Lancharro&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;email:&#039;&#039;&#039; Email del usuario. Máximo 250 caracteres. &#039;&#039;Ejemplo: xxxx@xxx.com&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;password:&#039;&#039;&#039; Password del usuario. Deberá ir en md5(). Máximo 50 caracteres. &#039;&#039;Ejemplo: e10adc3949ba59abbe56e057f20f883e&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;nick:&#039;&#039;&#039; Nick del usuario. Máximo 50 caracteres. &#039;&#039;Ejemplo: CocoNilo&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;phone:&#039;&#039;&#039; Teléfono móvil del usuario. Máximo 15 caracteres. &#039;&#039;Ejemplo: 6XX XXX XXX&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;birthDate:&#039;&#039;&#039; Fecha de nacimiento del usuario. &#039;&#039;Ejemplo : 1992-01-12&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;gender:&#039;&#039;&#039; Sexo del usuario.&lt;br /&gt;
***&#039;&#039;&#039;Masculino:&#039;&#039;&#039; M.&lt;br /&gt;
***&#039;&#039;&#039;Femenino:&#039;&#039;&#039; F.&lt;br /&gt;
**&#039;&#039;&#039;allowsCommercials:&#039;&#039;&#039; Termino de privacidad con el que el usuario permite recibir comunicaciones comerciales.&lt;br /&gt;
***&#039;&#039;&#039;Permite:&#039;&#039;&#039; yes.&lt;br /&gt;
***&#039;&#039;&#039;Deniega:&#039;&#039;&#039; no.&lt;br /&gt;
**&#039;&#039;&#039;allowsCession:&#039;&#039;&#039; Termino de privacidad con el que el usuario permite que sus datos sean cedidos a terceras empresas relacionadas con el sector.&lt;br /&gt;
***&#039;&#039;&#039;Permite:&#039;&#039;&#039; yes.&lt;br /&gt;
***&#039;&#039;&#039;Deniega:&#039;&#039;&#039; no.&lt;br /&gt;
**Dependiendo de la tarea que estemos ejecutando los campos obligatorios variarán:&lt;br /&gt;
***&#039;&#039;&#039;register:&#039;&#039;&#039; Dependerá de los campos que hayamos configurado en el apartado de NickCenter en el panel de Mobeleader, como mínimo siempre será obligatorio el &#039;&#039;&#039;email&#039;&#039;&#039; y el &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
***&#039;&#039;&#039;update:&#039;&#039;&#039; El único campo obligatorio para las actualizaciones será el &#039;&#039;&#039;email&#039;&#039;&#039;, el resto de campos que se añadan serán los campos a actualizar.&lt;br /&gt;
***&#039;&#039;&#039;login:&#039;&#039;&#039; Dependerá de los campos que hayamos configurado en el apartado de NickCenter en el panel de Mobeleader, será obligatorio el &#039;&#039;&#039;email&#039;&#039;&#039; o el &#039;&#039;&#039;nick&#039;&#039;&#039;, junto con el &#039;&#039;&#039;password&#039;&#039;&#039;. En cualquiera de los casos el &#039;&#039;&#039;password&#039;&#039;&#039; siempre será obligatorio.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;jsonApp&#039;&#039;&#039;: Todos los campos son obligatorios&lt;br /&gt;
**&#039;&#039;&#039;name&#039;&#039;&#039;: Nombre de la aplicación dada de alta en el panel de Mobeleader. &#039;&#039;Ejemplo: Mobeleader&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;bundle&#039;&#039;&#039;: Nombre del paquete de la aplicación. &#039;&#039;Ejemplo: com.mobeleader&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;version&#039;&#039;&#039;: Version de la aplicación. &#039;&#039;Ejemplo: 1.0&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;versioncode&#039;&#039;&#039;: Código de versión de la aplicación. &#039;&#039;Ejemplo: 1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Códigos de Errores=&lt;br /&gt;
A continuación se expondrá una lista con los posibles errores que devolverá el Webservice en caso de que los datos no sean correctos:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Errores generales:&#039;&#039;&#039; Estos errores se deben a un mal uso de la clase &#039;&#039;&#039;spsApiNickcenter&#039;&#039;&#039; y/o su cifrado, por lo que al no poder devolver la cadena cifrada con la RSA Key pública que le corresponde a la aplicación, se mandarán en texto plano sin cifrar y sin formato JSON.&lt;br /&gt;
**Error 000a - Failure decrypting&lt;br /&gt;
**Error 000b - Invalid Task&lt;br /&gt;
**Error 000c - Empty or invalid app hash&lt;br /&gt;
**Error 000d - Missing public RSA Key for app hash X&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea checkActive:&#039;&#039;&#039;&lt;br /&gt;
**Error 001a - Failure checking app active&lt;br /&gt;
**Error 001b - Failure checking app active&lt;br /&gt;
**Error 001c - Failure checking app active&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea rescuePassword:&#039;&#039;&#039;&lt;br /&gt;
**Error 002a - Failure on rescuePassword&lt;br /&gt;
**Error 002b - Failure on rescuePassword&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea requestFields:&#039;&#039;&#039;&lt;br /&gt;
**Error 003a - Failure on requestFields&lt;br /&gt;
**Error 003b - Failure on requestFields&lt;br /&gt;
**Error 003c - Failure on requestFields&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 004a - Failure validating user json, there are no fields configured in your application&lt;br /&gt;
**Error 004b - Failure validating user json, incorrect json format&lt;br /&gt;
**Error 004c - Failure validating user json&lt;br /&gt;
**Error 004d - X is missing or empty in user json.&lt;br /&gt;
**Error 004e - Invalid format for X field in user json.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 005a - Failure validating device json, incorrect json format&lt;br /&gt;
**Error 005b - Failure validating device json&lt;br /&gt;
**Error 005c - Field X is missing or empty in device json&lt;br /&gt;
**Error 005c - Field ifa/uuid are missing or empty in device json, one of them must be informed&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 006a - Failure validating app json, incorrect json format&lt;br /&gt;
**Error 006b - Field X is empty in app json&lt;br /&gt;
**Error 006c - The bundle X for os Y, does not exist&lt;br /&gt;
**Error 006c - Invalid X in app json, it must be numeric&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 007a - Failure generating library json, incorrect device json format&lt;br /&gt;
**Error 007b - Failure generating library json, wrong os in device json&lt;br /&gt;
**Error 007c - Failure generating library json, wrong os in device json&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register:&#039;&#039;&#039;&lt;br /&gt;
**Error 008a - Failure registering&lt;br /&gt;
**Error 008b - Failure registering&lt;br /&gt;
**Error 008c - Email already exists&lt;br /&gt;
**Error 008c - Nick already exists&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea login:&#039;&#039;&#039;&lt;br /&gt;
**Error 009 - Failure on login&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea update:&#039;&#039;&#039;&lt;br /&gt;
**Error 010 - Failure updating&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Sin tarea/Tarea erronea:&#039;&#039;&#039;&lt;br /&gt;
**Error 011a - Empty Task&lt;br /&gt;
**Error 011b - Invalid Task&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_Webservice_NickCenter&amp;diff=2746</id>
		<title>Documentación Webservice NickCenter</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_Webservice_NickCenter&amp;diff=2746"/>
		<updated>2019-06-07T10:27:54Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Llamadas al Webservice */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
En ésta documentación se expondrá como deberemos hacer uso del Webservice de NickCenter, de manera que emule la propia librería de NickCenter y así no haya la necesidad de usarla ni implementarla en las aplicaciones. A pesar de ello, la configuración en nuestro panel será la misma, siendo necesario dar de alta la aplicación en éste, y configurandola para el uso de NickCenter. Podremos hacer uso de dicho Webservice de dos maneras:&lt;br /&gt;
#Llamada directa al Webservice. Ésta opción será menos segura debido a que los datos irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiNickcenter&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante RSA Keys generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
=Conexión con el Webservice=&lt;br /&gt;
La conexión con el Webservice se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa al Webservice. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa==&lt;br /&gt;
Si queremos usar directamente el Webservice de Nickcenter sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, esta será la URL a la que deberemos conectarnos mediante POST &#039;&#039;https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=&#039;&#039;. Más adelante se expondrán que tareas hay disponibles y como hay que mandar los datos para su ejecución.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa con task (tarea) &#039;&#039;&#039;checkActive&#039;&#039;&#039;, una app concreta (añadiendo el hash que le correspondiera) y country (país) &#039;&#039;&#039;ES&#039;&#039;&#039; (España):&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://nickcenter.mobeleader.com/webservice_nickcenter.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode(&#039;task=checkActive&amp;amp;app=my_app_hash&amp;amp;country=ES&#039;));&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en nuestra carpeta vendor, lo primero que debemos hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez modificada la ruta, para poder instanciar la clase deberemos coger la cadena de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde [https://panel.mobeleader.com/index.php?sec=6 nuestro panel], y reemplazarla en el siguiente codigo.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$conexionapi = new spsApiConnection([RSA KEY PRIVADA]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Si la instalación de la librería es correcta, la ruta de acceso a ésta ha sido cambiada y es correcta, y la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039; es correcta, para realizar las llamadas al Webservice usaremos la funcion &#039;&#039;&#039;getWebserviceData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Dicha función será la encargada de realizar todas las conexiones al Webservice, de cifrar los datos que enviaremos a éste y de descifrar los que datos que nos retorne.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$conexionapi = new spsApiConnection([RSA KEY PRIVADA]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getWebserviceData(tarea, array_datos)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
A continuación se exponen cuales son las distintas tareas ejecutables, y como ha de ser el array de datos para posibilitar dicha ejecución.&lt;br /&gt;
&lt;br /&gt;
=Tareas=&lt;br /&gt;
La clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039; consta de la función &#039;&#039;getData(&#039;&#039;&#039;tarea, array_datos&#039;&#039;&#039;)&#039;&#039;, con la que ejecutaremos las distintas operaciones que el Webservice permite y a la que le deberemos mandar los siguientes parámetros:&lt;br /&gt;
#&#039;&#039;&#039;tarea:&#039;&#039;&#039; Sera la propia tarea a realizar, puediendo ser:&lt;br /&gt;
##&#039;&#039;&#039;checkActive&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;requestFields&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;register&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;update&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;login&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;rescuePassword&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;array_datos:&#039;&#039;&#039; Contendrá un array con los datos necesarios para la ejecución de la tarea.&lt;br /&gt;
===Llamadas al Webservice===&lt;br /&gt;
&#039;&#039;Recuerde reemplazar el contenido de los ejemplos por los valores reales&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;checkActive:&#039;&#039;&#039; Esta tarea comprobará que la aplicación tenga NickCenter activo, independientemente de usarla directamente o no, el resto de tareas harán uso de ella antes de realizar sus operaciones propias.&lt;br /&gt;
:*&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en nuestro panel.&lt;br /&gt;
:*&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=checkActive&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;country=[código país, ej: ES]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;checkActive&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;requestFields:&#039;&#039;&#039; Mediante ésta tarea obtendremos la configuración de campos y traducciones para una determinada vista.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en el panel de  Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;view:&#039;&#039;&#039; Indicará los campos de que vista solicitamos.&lt;br /&gt;
***&#039;&#039;&#039;register:&#039;&#039;&#039; Pantalla inicial del registro.&lt;br /&gt;
***&#039;&#039;&#039;login:&#039;&#039;&#039; Pantalla de login.&lt;br /&gt;
***&#039;&#039;&#039;rescue:&#039;&#039;&#039; Pantalla de recuperación de contraseña.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo, necesario para las traducciones y las configuraciones de los campos que se retornarán.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=requestFields&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;view=[vista, ej: register]&amp;amp;country=[código país, ej: ES]&amp;amp;language=[código idioma, ej: es]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;view&#039;] = [vista, ej: register];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
$array_datos[&#039;language&#039;] = [código idioma, ej: es];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;requestFields&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;register:&#039;&#039;&#039; Esta tarea servirá para registrar un usuario en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en el panel de  Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=register&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información a registrar del usuario]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información a registrar del usuario];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;register&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;update:&#039;&#039;&#039; Esta tarea servirá para actualizar un usuario que previamente haya sido registrado en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en el panel de  Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=update&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información a actualizar del usuario]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información a actualizar del usuario];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;update&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;login:&#039;&#039;&#039; Esta tarea servirá para hacer login en las aplicaciones registradas en NickCenter, con usuarios previamente registrados en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta el panel de  en Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=login&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información necesaria para el login]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información necesaria para el login];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;login&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;rescuePassword:&#039;&#039;&#039; Mediante ésta tarea restauraremos la contraseña de usuarios previamente registrados en nuestro sistema y que no esten dados de baja.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta el panel de  en Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo, necesario para las traducciones que se retornarán.&lt;br /&gt;
**&#039;&#039;&#039;email:&#039;&#039;&#039; Email al que hay que restaurar la contraseña.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=rescuePassword&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;country=[código país, ej: ES]&amp;amp;language=[código idioma, ej: es]&amp;amp;email=[email a recuperar, ej: prueba@prueba.com]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
$array_datos[&#039;language&#039;] = [código idioma, ej: es];&lt;br /&gt;
$array_datos[&#039;email&#039;] = [email a recuperar, ej: prueba@prueba.com];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;rescuePassword&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Retornos del Webservice===&lt;br /&gt;
Cada tarea tendrá su propio JSON de retorno:&lt;br /&gt;
*&#039;&#039;&#039;checkActive:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;active:&#039;&#039;&#039; Indicará si la aplicación esta activa o no.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;requestFields:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;general:&#039;&#039;&#039; En caso de no haber ningún error devolverá un array con todas las traducciones generales para el idioma seleccionado.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; En caso de no haber ningún error devolverá un array con todos los campos y sus traducciones para el idioma seleccionado.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;register:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que el registro se ha completado.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;update:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que se ha actualizado correctamente.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;login:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que se ha logeado correctamente.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;rescuePassword:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de que no haya habido un error, se mandará una cadena en el idioma seleccionado, con las instrucciones para recuperar la contraseña.&lt;br /&gt;
&lt;br /&gt;
=Campos y Formatos=&lt;br /&gt;
*&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;ua:&#039;&#039;&#039; User Agent. Es la cadena de texto que identifica al usuario ante el servidor que se esta conectando mediante HTTP. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;lmt:&#039;&#039;&#039; Limit Ad Tracking. Indicará si esta permitido el acceso al ifa del dispositivo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; Inactivo/Permitido.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Activo/No permitido.&lt;br /&gt;
**&#039;&#039;&#039;devicetype:&#039;&#039;&#039; Tipo de dispositivo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;4:&#039;&#039;&#039; Smartphone.&lt;br /&gt;
***&#039;&#039;&#039;5:&#039;&#039;&#039; Tablet/iPad.&lt;br /&gt;
**&#039;&#039;&#039;make:&#039;&#039;&#039; Marca del dispositivo. &#039;&#039;Ejemplo: bq&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;model:&#039;&#039;&#039; Modelo del dispositivo. &#039;&#039;Ejemplo: Aquaris E5&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Sistema operativo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;Android:&#039;&#039;&#039; Android.&lt;br /&gt;
***&#039;&#039;&#039;iOs:&#039;&#039;&#039; ios.&lt;br /&gt;
**&#039;&#039;&#039;osv:&#039;&#039;&#039; Version del sistema operativo. &#039;&#039;Ejemplo: 6.0.1&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;hwv:&#039;&#039;&#039; Version del hardware. &#039;&#039;Ejemplo: Aquaris_E5&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;h:&#039;&#039;&#039; Altura de pantalla. &#039;&#039;Ejemplo: 1920&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;w:&#039;&#039;&#039; Anchura de pantalla. &#039;&#039;Ejemplo: 1080&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;ppi:&#039;&#039;&#039; Pixeles por pulgada. &#039;&#039;Ejemplo: 480&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;pxratio:&#039;&#039;&#039; Densidad de pixeles. &#039;&#039;Ejemplo: 3&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;inches:&#039;&#039;&#039; Pulgadas. &#039;&#039;Ejemplo: 4.9&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;js:&#039;&#039;&#039; Soporte para JavaScript. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; No.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Si.&lt;br /&gt;
**&#039;&#039;&#039;connectiontype:&#039;&#039;&#039; Tipo de conexión. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; Unknown.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Ethernet.&lt;br /&gt;
***&#039;&#039;&#039;2:&#039;&#039;&#039; WiFI.&lt;br /&gt;
***&#039;&#039;&#039;3:&#039;&#039;&#039; Cellular Network - Unkown Generation.&lt;br /&gt;
***&#039;&#039;&#039;4:&#039;&#039;&#039; Cellular Network - 2G.&lt;br /&gt;
***&#039;&#039;&#039;5:&#039;&#039;&#039; Cellular Network - 3G.&lt;br /&gt;
***&#039;&#039;&#039;6:&#039;&#039;&#039; Cellular Network - 4G.&lt;br /&gt;
**&#039;&#039;&#039;ifa:&#039;&#039;&#039; Identificador para la publicidad.  &#039;&#039;&#039;Campo obligatorio, debe de estar o el ifa o el uuid.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;Android:&#039;&#039;&#039; Google AID (Google Advertising Identifier). &#039;&#039;Ejemplo: 38400000-8cf0-11bd-b23e-10b96e40000d&#039;&#039;.&lt;br /&gt;
***&#039;&#039;&#039;iOs:&#039;&#039;&#039; iOS IFA (Apple Identifier for Advertiser). &#039;&#039;Ejemplo: AAAAAAAAA-BBBB-CCCC-1111-222222220000&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;uuid:&#039;&#039;&#039; Identificador único universal. &#039;&#039;Ejemplo: 550e8400-e29b-41d4-a716-446655440000&#039;&#039;. &#039;&#039;&#039;Campo obligatorio, debe estar el uuid o el ifa.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo ( locale ). &#039;&#039;Ejemplo: es&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Pais del dispositivo ( locale ). &#039;&#039;Ejemplo: ES&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;carrier:&#039;&#039;&#039; Operador Telefónico del dispositivo. &#039;&#039;Ejemplo: Movistar&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;carriercode:&#039;&#039;&#039; Código del operador telefónico. &#039;&#039;Ejemplo: 21407&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;carriercountry:&#039;&#039;&#039; País del operador telefónico. &#039;&#039;Ejemplo: ES&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mac: ( Solo para Android )&#039;&#039;&#039; Mac del dispositivo. &#039;&#039;Ejemplo: 00:1B:44:11:3A:B7&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;imsi: ( Solo para Android )&#039;&#039;&#039; Identidad Internacional del Abonado Móvil. &#039;&#039;Ejemplo: 7160652952503786&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;did: ( Solo para Android )&#039;&#039;&#039; Identificador Direct inward dialing (DID).&lt;br /&gt;
**&#039;&#039;&#039;dpid: ( Solo para Android )&#039;&#039;&#039; Plataform device id (Android id).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;jsonUser:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;name:&#039;&#039;&#039; Nombre del usuario. Máximo 100 caracteres. &#039;&#039;Ejemplo: Kevin&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;surname:&#039;&#039;&#039; Apellido del usuario. Máximo 100 caracteres. &#039;&#039;Ejemplo: Lancharro&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;email:&#039;&#039;&#039; Email del usuario. Máximo 250 caracteres. &#039;&#039;Ejemplo: xxxx@xxx.com&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;password:&#039;&#039;&#039; Password del usuario. Deberá ir en md5(). Máximo 50 caracteres. &#039;&#039;Ejemplo: e10adc3949ba59abbe56e057f20f883e&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;nick:&#039;&#039;&#039; Nick del usuario. Máximo 50 caracteres. &#039;&#039;Ejemplo: CocoNilo&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;phone:&#039;&#039;&#039; Teléfono móvil del usuario. Máximo 15 caracteres. &#039;&#039;Ejemplo: 6XX XXX XXX&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;birthDate:&#039;&#039;&#039; Fecha de nacimiento del usuario. &#039;&#039;Ejemplo : 1992-01-12&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;gender:&#039;&#039;&#039; Sexo del usuario.&lt;br /&gt;
***&#039;&#039;&#039;Masculino:&#039;&#039;&#039; M.&lt;br /&gt;
***&#039;&#039;&#039;Femenino:&#039;&#039;&#039; F.&lt;br /&gt;
**&#039;&#039;&#039;allowsCommercials:&#039;&#039;&#039; Termino de privacidad con el que el usuario permite recibir comunicaciones comerciales.&lt;br /&gt;
***&#039;&#039;&#039;Permite:&#039;&#039;&#039; yes.&lt;br /&gt;
***&#039;&#039;&#039;Deniega:&#039;&#039;&#039; no.&lt;br /&gt;
**&#039;&#039;&#039;allowsCession:&#039;&#039;&#039; Termino de privacidad con el que el usuario permite que sus datos sean cedidos a terceras empresas relacionadas con el sector.&lt;br /&gt;
***&#039;&#039;&#039;Permite:&#039;&#039;&#039; yes.&lt;br /&gt;
***&#039;&#039;&#039;Deniega:&#039;&#039;&#039; no.&lt;br /&gt;
**Dependiendo de la tarea que estemos ejecutando los campos obligatorios variarán:&lt;br /&gt;
***&#039;&#039;&#039;register:&#039;&#039;&#039; Dependerá de los campos que hayamos configurado en el apartado de NickCenter en el panel de Mobeleader, como mínimo siempre será obligatorio el &#039;&#039;&#039;email&#039;&#039;&#039; y el &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
***&#039;&#039;&#039;update:&#039;&#039;&#039; El único campo obligatorio para las actualizaciones será el &#039;&#039;&#039;email&#039;&#039;&#039;, el resto de campos que se añadan serán los campos a actualizar.&lt;br /&gt;
***&#039;&#039;&#039;login:&#039;&#039;&#039; Dependerá de los campos que hayamos configurado en el apartado de NickCenter en el panel de Mobeleader, será obligatorio el &#039;&#039;&#039;email&#039;&#039;&#039; o el &#039;&#039;&#039;nick&#039;&#039;&#039;, junto con el &#039;&#039;&#039;password&#039;&#039;&#039;. En cualquiera de los casos el &#039;&#039;&#039;password&#039;&#039;&#039; siempre será obligatorio.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;jsonApp&#039;&#039;&#039;: Todos los campos son obligatorios&lt;br /&gt;
**&#039;&#039;&#039;name&#039;&#039;&#039;: Nombre de la aplicación dada de alta en el panel de Mobeleader. &#039;&#039;Ejemplo: Mobeleader&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;bundle&#039;&#039;&#039;: Nombre del paquete de la aplicación. &#039;&#039;Ejemplo: com.mobeleader&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;version&#039;&#039;&#039;: Version de la aplicación. &#039;&#039;Ejemplo: 1.0&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;versioncode&#039;&#039;&#039;: Código de versión de la aplicación. &#039;&#039;Ejemplo: 1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Códigos de Errores=&lt;br /&gt;
A continuación se expondrá una lista con los posibles errores que devolverá el Webservice en caso de que los datos no sean correctos:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Errores generales:&#039;&#039;&#039; Estos errores se deben a un mal uso de la clase &#039;&#039;&#039;spsApiNickcenter&#039;&#039;&#039; y/o su cifrado, por lo que al no poder devolver la cadena cifrada con la RSA Key pública que le corresponde a la aplicación, se mandarán en texto plano sin cifrar y sin formato JSON.&lt;br /&gt;
**Error 000a - Failure decrypting&lt;br /&gt;
**Error 000b - Invalid Task&lt;br /&gt;
**Error 000c - Empty or invalid app hash&lt;br /&gt;
**Error 000d - Missing public RSA Key for app hash X&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea checkActive:&#039;&#039;&#039;&lt;br /&gt;
**Error 001a - Failure checking app active&lt;br /&gt;
**Error 001b - Failure checking app active&lt;br /&gt;
**Error 001c - Failure checking app active&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea rescuePassword:&#039;&#039;&#039;&lt;br /&gt;
**Error 002a - Failure on rescuePassword&lt;br /&gt;
**Error 002b - Failure on rescuePassword&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea requestFields:&#039;&#039;&#039;&lt;br /&gt;
**Error 003a - Failure on requestFields&lt;br /&gt;
**Error 003b - Failure on requestFields&lt;br /&gt;
**Error 003c - Failure on requestFields&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 004a - Failure validating user json, there are no fields configured in your application&lt;br /&gt;
**Error 004b - Failure validating user json, incorrect json format&lt;br /&gt;
**Error 004c - Failure validating user json&lt;br /&gt;
**Error 004d - X is missing or empty in user json.&lt;br /&gt;
**Error 004e - Invalid format for X field in user json.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 005a - Failure validating device json, incorrect json format&lt;br /&gt;
**Error 005b - Failure validating device json&lt;br /&gt;
**Error 005c - Field X is missing or empty in device json&lt;br /&gt;
**Error 005c - Field ifa/uuid are missing or empty in device json, one of them must be informed&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 006a - Failure validating app json, incorrect json format&lt;br /&gt;
**Error 006b - Field X is empty in app json&lt;br /&gt;
**Error 006c - The bundle X for os Y, does not exist&lt;br /&gt;
**Error 006c - Invalid X in app json, it must be numeric&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 007a - Failure generating library json, incorrect device json format&lt;br /&gt;
**Error 007b - Failure generating library json, wrong os in device json&lt;br /&gt;
**Error 007c - Failure generating library json, wrong os in device json&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register:&#039;&#039;&#039;&lt;br /&gt;
**Error 008a - Failure registering&lt;br /&gt;
**Error 008b - Failure registering&lt;br /&gt;
**Error 008c - Email already exists&lt;br /&gt;
**Error 008c - Nick already exists&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea login:&#039;&#039;&#039;&lt;br /&gt;
**Error 009 - Failure on login&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea update:&#039;&#039;&#039;&lt;br /&gt;
**Error 010 - Failure updating&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Sin tarea/Tarea erronea:&#039;&#039;&#039;&lt;br /&gt;
**Error 011a - Empty Task&lt;br /&gt;
**Error 011b - Invalid Task&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_Webservice_NickCenter&amp;diff=2745</id>
		<title>Documentación Webservice NickCenter</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_Webservice_NickCenter&amp;diff=2745"/>
		<updated>2019-06-07T10:26:44Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Conexión con el Webservice */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
En ésta documentación se expondrá como deberemos hacer uso del Webservice de NickCenter, de manera que emule la propia librería de NickCenter y así no haya la necesidad de usarla ni implementarla en las aplicaciones. A pesar de ello, la configuración en nuestro panel será la misma, siendo necesario dar de alta la aplicación en éste, y configurandola para el uso de NickCenter. Podremos hacer uso de dicho Webservice de dos maneras:&lt;br /&gt;
#Llamada directa al Webservice. Ésta opción será menos segura debido a que los datos irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiNickcenter&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante RSA Keys generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
=Conexión con el Webservice=&lt;br /&gt;
La conexión con el Webservice se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa al Webservice. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa==&lt;br /&gt;
Si queremos usar directamente el Webservice de Nickcenter sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, esta será la URL a la que deberemos conectarnos mediante POST &#039;&#039;https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=&#039;&#039;. Más adelante se expondrán que tareas hay disponibles y como hay que mandar los datos para su ejecución.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa con task (tarea) &#039;&#039;&#039;checkActive&#039;&#039;&#039;, una app concreta (añadiendo el hash que le correspondiera) y country (país) &#039;&#039;&#039;ES&#039;&#039;&#039; (España):&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://nickcenter.mobeleader.com/webservice_nickcenter.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode(&#039;task=checkActive&amp;amp;app=my_app_hash&amp;amp;country=ES&#039;));&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en nuestra carpeta vendor, lo primero que debemos hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez modificada la ruta, para poder instanciar la clase deberemos coger la cadena de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde [https://panel.mobeleader.com/index.php?sec=6 nuestro panel], y reemplazarla en el siguiente codigo.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$conexionapi = new spsApiConnection([RSA KEY PRIVADA]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Si la instalación de la librería es correcta, la ruta de acceso a ésta ha sido cambiada y es correcta, y la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039; es correcta, para realizar las llamadas al Webservice usaremos la funcion &#039;&#039;&#039;getWebserviceData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Dicha función será la encargada de realizar todas las conexiones al Webservice, de cifrar los datos que enviaremos a éste y de descifrar los que datos que nos retorne.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$conexionapi = new spsApiConnection([RSA KEY PRIVADA]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getWebserviceData(tarea, array_datos)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
A continuación se exponen cuales son las distintas tareas ejecutables, y como ha de ser el array de datos para posibilitar dicha ejecución.&lt;br /&gt;
&lt;br /&gt;
=Tareas=&lt;br /&gt;
La clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039; consta de la función &#039;&#039;getData(&#039;&#039;&#039;tarea, array_datos&#039;&#039;&#039;)&#039;&#039;, con la que ejecutaremos las distintas operaciones que el Webservice permite y a la que le deberemos mandar los siguientes parámetros:&lt;br /&gt;
#&#039;&#039;&#039;tarea:&#039;&#039;&#039; Sera la propia tarea a realizar, puediendo ser:&lt;br /&gt;
##&#039;&#039;&#039;checkActive&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;requestFields&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;register&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;update&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;login&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;rescuePassword&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;array_datos:&#039;&#039;&#039; Contendrá un array con los datos necesarios para la ejecución de la tarea.&lt;br /&gt;
===Llamadas al Webservice===&lt;br /&gt;
&#039;&#039;Recuerde reemplazar el contenido de los ejemplos por los valores reales&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;checkActive:&#039;&#039;&#039; Esta tarea comprobará que la aplicación tenga NickCenter activo, independientemente de usarla directamente o no, el resto de tareas harán uso de ella antes de realizar sus operaciones propias.&lt;br /&gt;
:*&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en el panel de Mobeleader.&lt;br /&gt;
:*&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=checkActive&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;country=[código país, ej: ES]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;checkActive&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;requestFields:&#039;&#039;&#039; Mediante ésta tarea obtendremos la configuración de campos y traducciones para una determinada vista.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en el panel de  Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;view:&#039;&#039;&#039; Indicará los campos de que vista solicitamos.&lt;br /&gt;
***&#039;&#039;&#039;register:&#039;&#039;&#039; Pantalla inicial del registro.&lt;br /&gt;
***&#039;&#039;&#039;login:&#039;&#039;&#039; Pantalla de login.&lt;br /&gt;
***&#039;&#039;&#039;rescue:&#039;&#039;&#039; Pantalla de recuperación de contraseña.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo, necesario para las traducciones y las configuraciones de los campos que se retornarán.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=requestFields&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;view=[vista, ej: register]&amp;amp;country=[código país, ej: ES]&amp;amp;language=[código idioma, ej: es]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;view&#039;] = [vista, ej: register];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
$array_datos[&#039;language&#039;] = [código idioma, ej: es];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;requestFields&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;register:&#039;&#039;&#039; Esta tarea servirá para registrar un usuario en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en el panel de  Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=register&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información a registrar del usuario]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información a registrar del usuario];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;register&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;update:&#039;&#039;&#039; Esta tarea servirá para actualizar un usuario que previamente haya sido registrado en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en el panel de  Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=update&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información a actualizar del usuario]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información a actualizar del usuario];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;update&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;login:&#039;&#039;&#039; Esta tarea servirá para hacer login en las aplicaciones registradas en NickCenter, con usuarios previamente registrados en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta el panel de  en Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=login&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información necesaria para el login]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información necesaria para el login];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;login&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;rescuePassword:&#039;&#039;&#039; Mediante ésta tarea restauraremos la contraseña de usuarios previamente registrados en nuestro sistema y que no esten dados de baja.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta el panel de  en Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo, necesario para las traducciones que se retornarán.&lt;br /&gt;
**&#039;&#039;&#039;email:&#039;&#039;&#039; Email al que hay que restaurar la contraseña.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=rescuePassword&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;country=[código país, ej: ES]&amp;amp;language=[código idioma, ej: es]&amp;amp;email=[email a recuperar, ej: prueba@prueba.com]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
$array_datos[&#039;language&#039;] = [código idioma, ej: es];&lt;br /&gt;
$array_datos[&#039;email&#039;] = [email a recuperar, ej: prueba@prueba.com];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;rescuePassword&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Retornos del Webservice===&lt;br /&gt;
Cada tarea tendrá su propio JSON de retorno:&lt;br /&gt;
*&#039;&#039;&#039;checkActive:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;active:&#039;&#039;&#039; Indicará si la aplicación esta activa o no.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;requestFields:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;general:&#039;&#039;&#039; En caso de no haber ningún error devolverá un array con todas las traducciones generales para el idioma seleccionado.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; En caso de no haber ningún error devolverá un array con todos los campos y sus traducciones para el idioma seleccionado.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;register:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que el registro se ha completado.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;update:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que se ha actualizado correctamente.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;login:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que se ha logeado correctamente.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;rescuePassword:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de que no haya habido un error, se mandará una cadena en el idioma seleccionado, con las instrucciones para recuperar la contraseña.&lt;br /&gt;
&lt;br /&gt;
=Campos y Formatos=&lt;br /&gt;
*&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;ua:&#039;&#039;&#039; User Agent. Es la cadena de texto que identifica al usuario ante el servidor que se esta conectando mediante HTTP. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;lmt:&#039;&#039;&#039; Limit Ad Tracking. Indicará si esta permitido el acceso al ifa del dispositivo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; Inactivo/Permitido.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Activo/No permitido.&lt;br /&gt;
**&#039;&#039;&#039;devicetype:&#039;&#039;&#039; Tipo de dispositivo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;4:&#039;&#039;&#039; Smartphone.&lt;br /&gt;
***&#039;&#039;&#039;5:&#039;&#039;&#039; Tablet/iPad.&lt;br /&gt;
**&#039;&#039;&#039;make:&#039;&#039;&#039; Marca del dispositivo. &#039;&#039;Ejemplo: bq&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;model:&#039;&#039;&#039; Modelo del dispositivo. &#039;&#039;Ejemplo: Aquaris E5&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Sistema operativo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;Android:&#039;&#039;&#039; Android.&lt;br /&gt;
***&#039;&#039;&#039;iOs:&#039;&#039;&#039; ios.&lt;br /&gt;
**&#039;&#039;&#039;osv:&#039;&#039;&#039; Version del sistema operativo. &#039;&#039;Ejemplo: 6.0.1&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;hwv:&#039;&#039;&#039; Version del hardware. &#039;&#039;Ejemplo: Aquaris_E5&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;h:&#039;&#039;&#039; Altura de pantalla. &#039;&#039;Ejemplo: 1920&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;w:&#039;&#039;&#039; Anchura de pantalla. &#039;&#039;Ejemplo: 1080&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;ppi:&#039;&#039;&#039; Pixeles por pulgada. &#039;&#039;Ejemplo: 480&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;pxratio:&#039;&#039;&#039; Densidad de pixeles. &#039;&#039;Ejemplo: 3&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;inches:&#039;&#039;&#039; Pulgadas. &#039;&#039;Ejemplo: 4.9&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;js:&#039;&#039;&#039; Soporte para JavaScript. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; No.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Si.&lt;br /&gt;
**&#039;&#039;&#039;connectiontype:&#039;&#039;&#039; Tipo de conexión. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; Unknown.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Ethernet.&lt;br /&gt;
***&#039;&#039;&#039;2:&#039;&#039;&#039; WiFI.&lt;br /&gt;
***&#039;&#039;&#039;3:&#039;&#039;&#039; Cellular Network - Unkown Generation.&lt;br /&gt;
***&#039;&#039;&#039;4:&#039;&#039;&#039; Cellular Network - 2G.&lt;br /&gt;
***&#039;&#039;&#039;5:&#039;&#039;&#039; Cellular Network - 3G.&lt;br /&gt;
***&#039;&#039;&#039;6:&#039;&#039;&#039; Cellular Network - 4G.&lt;br /&gt;
**&#039;&#039;&#039;ifa:&#039;&#039;&#039; Identificador para la publicidad.  &#039;&#039;&#039;Campo obligatorio, debe de estar o el ifa o el uuid.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;Android:&#039;&#039;&#039; Google AID (Google Advertising Identifier). &#039;&#039;Ejemplo: 38400000-8cf0-11bd-b23e-10b96e40000d&#039;&#039;.&lt;br /&gt;
***&#039;&#039;&#039;iOs:&#039;&#039;&#039; iOS IFA (Apple Identifier for Advertiser). &#039;&#039;Ejemplo: AAAAAAAAA-BBBB-CCCC-1111-222222220000&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;uuid:&#039;&#039;&#039; Identificador único universal. &#039;&#039;Ejemplo: 550e8400-e29b-41d4-a716-446655440000&#039;&#039;. &#039;&#039;&#039;Campo obligatorio, debe estar el uuid o el ifa.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo ( locale ). &#039;&#039;Ejemplo: es&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Pais del dispositivo ( locale ). &#039;&#039;Ejemplo: ES&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;carrier:&#039;&#039;&#039; Operador Telefónico del dispositivo. &#039;&#039;Ejemplo: Movistar&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;carriercode:&#039;&#039;&#039; Código del operador telefónico. &#039;&#039;Ejemplo: 21407&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;carriercountry:&#039;&#039;&#039; País del operador telefónico. &#039;&#039;Ejemplo: ES&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mac: ( Solo para Android )&#039;&#039;&#039; Mac del dispositivo. &#039;&#039;Ejemplo: 00:1B:44:11:3A:B7&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;imsi: ( Solo para Android )&#039;&#039;&#039; Identidad Internacional del Abonado Móvil. &#039;&#039;Ejemplo: 7160652952503786&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;did: ( Solo para Android )&#039;&#039;&#039; Identificador Direct inward dialing (DID).&lt;br /&gt;
**&#039;&#039;&#039;dpid: ( Solo para Android )&#039;&#039;&#039; Plataform device id (Android id).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;jsonUser:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;name:&#039;&#039;&#039; Nombre del usuario. Máximo 100 caracteres. &#039;&#039;Ejemplo: Kevin&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;surname:&#039;&#039;&#039; Apellido del usuario. Máximo 100 caracteres. &#039;&#039;Ejemplo: Lancharro&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;email:&#039;&#039;&#039; Email del usuario. Máximo 250 caracteres. &#039;&#039;Ejemplo: xxxx@xxx.com&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;password:&#039;&#039;&#039; Password del usuario. Deberá ir en md5(). Máximo 50 caracteres. &#039;&#039;Ejemplo: e10adc3949ba59abbe56e057f20f883e&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;nick:&#039;&#039;&#039; Nick del usuario. Máximo 50 caracteres. &#039;&#039;Ejemplo: CocoNilo&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;phone:&#039;&#039;&#039; Teléfono móvil del usuario. Máximo 15 caracteres. &#039;&#039;Ejemplo: 6XX XXX XXX&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;birthDate:&#039;&#039;&#039; Fecha de nacimiento del usuario. &#039;&#039;Ejemplo : 1992-01-12&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;gender:&#039;&#039;&#039; Sexo del usuario.&lt;br /&gt;
***&#039;&#039;&#039;Masculino:&#039;&#039;&#039; M.&lt;br /&gt;
***&#039;&#039;&#039;Femenino:&#039;&#039;&#039; F.&lt;br /&gt;
**&#039;&#039;&#039;allowsCommercials:&#039;&#039;&#039; Termino de privacidad con el que el usuario permite recibir comunicaciones comerciales.&lt;br /&gt;
***&#039;&#039;&#039;Permite:&#039;&#039;&#039; yes.&lt;br /&gt;
***&#039;&#039;&#039;Deniega:&#039;&#039;&#039; no.&lt;br /&gt;
**&#039;&#039;&#039;allowsCession:&#039;&#039;&#039; Termino de privacidad con el que el usuario permite que sus datos sean cedidos a terceras empresas relacionadas con el sector.&lt;br /&gt;
***&#039;&#039;&#039;Permite:&#039;&#039;&#039; yes.&lt;br /&gt;
***&#039;&#039;&#039;Deniega:&#039;&#039;&#039; no.&lt;br /&gt;
**Dependiendo de la tarea que estemos ejecutando los campos obligatorios variarán:&lt;br /&gt;
***&#039;&#039;&#039;register:&#039;&#039;&#039; Dependerá de los campos que hayamos configurado en el apartado de NickCenter en el panel de Mobeleader, como mínimo siempre será obligatorio el &#039;&#039;&#039;email&#039;&#039;&#039; y el &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
***&#039;&#039;&#039;update:&#039;&#039;&#039; El único campo obligatorio para las actualizaciones será el &#039;&#039;&#039;email&#039;&#039;&#039;, el resto de campos que se añadan serán los campos a actualizar.&lt;br /&gt;
***&#039;&#039;&#039;login:&#039;&#039;&#039; Dependerá de los campos que hayamos configurado en el apartado de NickCenter en el panel de Mobeleader, será obligatorio el &#039;&#039;&#039;email&#039;&#039;&#039; o el &#039;&#039;&#039;nick&#039;&#039;&#039;, junto con el &#039;&#039;&#039;password&#039;&#039;&#039;. En cualquiera de los casos el &#039;&#039;&#039;password&#039;&#039;&#039; siempre será obligatorio.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;jsonApp&#039;&#039;&#039;: Todos los campos son obligatorios&lt;br /&gt;
**&#039;&#039;&#039;name&#039;&#039;&#039;: Nombre de la aplicación dada de alta en el panel de Mobeleader. &#039;&#039;Ejemplo: Mobeleader&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;bundle&#039;&#039;&#039;: Nombre del paquete de la aplicación. &#039;&#039;Ejemplo: com.mobeleader&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;version&#039;&#039;&#039;: Version de la aplicación. &#039;&#039;Ejemplo: 1.0&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;versioncode&#039;&#039;&#039;: Código de versión de la aplicación. &#039;&#039;Ejemplo: 1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Códigos de Errores=&lt;br /&gt;
A continuación se expondrá una lista con los posibles errores que devolverá el Webservice en caso de que los datos no sean correctos:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Errores generales:&#039;&#039;&#039; Estos errores se deben a un mal uso de la clase &#039;&#039;&#039;spsApiNickcenter&#039;&#039;&#039; y/o su cifrado, por lo que al no poder devolver la cadena cifrada con la RSA Key pública que le corresponde a la aplicación, se mandarán en texto plano sin cifrar y sin formato JSON.&lt;br /&gt;
**Error 000a - Failure decrypting&lt;br /&gt;
**Error 000b - Invalid Task&lt;br /&gt;
**Error 000c - Empty or invalid app hash&lt;br /&gt;
**Error 000d - Missing public RSA Key for app hash X&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea checkActive:&#039;&#039;&#039;&lt;br /&gt;
**Error 001a - Failure checking app active&lt;br /&gt;
**Error 001b - Failure checking app active&lt;br /&gt;
**Error 001c - Failure checking app active&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea rescuePassword:&#039;&#039;&#039;&lt;br /&gt;
**Error 002a - Failure on rescuePassword&lt;br /&gt;
**Error 002b - Failure on rescuePassword&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea requestFields:&#039;&#039;&#039;&lt;br /&gt;
**Error 003a - Failure on requestFields&lt;br /&gt;
**Error 003b - Failure on requestFields&lt;br /&gt;
**Error 003c - Failure on requestFields&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 004a - Failure validating user json, there are no fields configured in your application&lt;br /&gt;
**Error 004b - Failure validating user json, incorrect json format&lt;br /&gt;
**Error 004c - Failure validating user json&lt;br /&gt;
**Error 004d - X is missing or empty in user json.&lt;br /&gt;
**Error 004e - Invalid format for X field in user json.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 005a - Failure validating device json, incorrect json format&lt;br /&gt;
**Error 005b - Failure validating device json&lt;br /&gt;
**Error 005c - Field X is missing or empty in device json&lt;br /&gt;
**Error 005c - Field ifa/uuid are missing or empty in device json, one of them must be informed&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 006a - Failure validating app json, incorrect json format&lt;br /&gt;
**Error 006b - Field X is empty in app json&lt;br /&gt;
**Error 006c - The bundle X for os Y, does not exist&lt;br /&gt;
**Error 006c - Invalid X in app json, it must be numeric&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 007a - Failure generating library json, incorrect device json format&lt;br /&gt;
**Error 007b - Failure generating library json, wrong os in device json&lt;br /&gt;
**Error 007c - Failure generating library json, wrong os in device json&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register:&#039;&#039;&#039;&lt;br /&gt;
**Error 008a - Failure registering&lt;br /&gt;
**Error 008b - Failure registering&lt;br /&gt;
**Error 008c - Email already exists&lt;br /&gt;
**Error 008c - Nick already exists&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea login:&#039;&#039;&#039;&lt;br /&gt;
**Error 009 - Failure on login&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea update:&#039;&#039;&#039;&lt;br /&gt;
**Error 010 - Failure updating&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Sin tarea/Tarea erronea:&#039;&#039;&#039;&lt;br /&gt;
**Error 011a - Empty Task&lt;br /&gt;
**Error 011b - Invalid Task&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_Webservice_NickCenter&amp;diff=2744</id>
		<title>Documentación Webservice NickCenter</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_Webservice_NickCenter&amp;diff=2744"/>
		<updated>2019-06-07T10:26:02Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Introduccion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
En ésta documentación se expondrá como deberemos hacer uso del Webservice de NickCenter, de manera que emule la propia librería de NickCenter y así no haya la necesidad de usarla ni implementarla en las aplicaciones. A pesar de ello, la configuración en nuestro panel será la misma, siendo necesario dar de alta la aplicación en éste, y configurandola para el uso de NickCenter. Podremos hacer uso de dicho Webservice de dos maneras:&lt;br /&gt;
#Llamada directa al Webservice. Ésta opción será menos segura debido a que los datos irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiNickcenter&#039;&#039;&#039;. Esta opción será mas segura ya que cuenta con un cifrado mediante RSA Keys generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
=Conexión con el Webservice=&lt;br /&gt;
La conexión con el Webservice se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa al Webservice. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039; creada por Mobeleader. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa==&lt;br /&gt;
Si queremos usar directamente el Webservice de Nickcenter sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, esta será la URL a la que deberemos conectarnos mediante POST &#039;&#039;https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=&#039;&#039;. Más adelante se expondrán que tareas hay disponibles y como hay que mandar los datos para su ejecución.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa con task (tarea) &#039;&#039;&#039;checkActive&#039;&#039;&#039;, una app concreta (añadiendo el hash que le correspondiera) y country (país) &#039;&#039;&#039;ES&#039;&#039;&#039; (España):&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://nickcenter.mobeleader.com/webservice_nickcenter.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode(&#039;task=checkActive&amp;amp;app=my_app_hash&amp;amp;country=ES&#039;));&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en nuestra carpeta vendor, lo primero que debemos hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez modificada la ruta, para poder instanciar la clase deberemos coger la cadena de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde [https://panel.mobeleader.com/index.php?sec=6 nuestro panel], y reemplazarla en el siguiente codigo.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$conexionapi = new spsApiConnection([RSA KEY PRIVADA]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Si la instalación de la librería es correcta, la ruta de acceso a ésta ha sido cambiada y es correcta, y la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039; es correcta, para realizar las llamadas al Webservice usaremos la funcion &#039;&#039;&#039;getWebserviceData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Dicha función será la encargada de realizar todas las conexiones al Webservice, de cifrar los datos que enviaremos a éste y de descifrar los que datos que nos retorne.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$conexionapi = new spsApiConnection([RSA KEY PRIVADA]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getWebserviceData(tarea, array_datos)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
A continuación se exponen cuales son las distintas tareas ejecutables, y como ha de ser el array de datos para posibilitar dicha ejecución.&lt;br /&gt;
&lt;br /&gt;
=Tareas=&lt;br /&gt;
La clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039; consta de la función &#039;&#039;getData(&#039;&#039;&#039;tarea, array_datos&#039;&#039;&#039;)&#039;&#039;, con la que ejecutaremos las distintas operaciones que el Webservice permite y a la que le deberemos mandar los siguientes parámetros:&lt;br /&gt;
#&#039;&#039;&#039;tarea:&#039;&#039;&#039; Sera la propia tarea a realizar, puediendo ser:&lt;br /&gt;
##&#039;&#039;&#039;checkActive&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;requestFields&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;register&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;update&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;login&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;rescuePassword&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;array_datos:&#039;&#039;&#039; Contendrá un array con los datos necesarios para la ejecución de la tarea.&lt;br /&gt;
===Llamadas al Webservice===&lt;br /&gt;
&#039;&#039;Recuerde reemplazar el contenido de los ejemplos por los valores reales&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;checkActive:&#039;&#039;&#039; Esta tarea comprobará que la aplicación tenga NickCenter activo, independientemente de usarla directamente o no, el resto de tareas harán uso de ella antes de realizar sus operaciones propias.&lt;br /&gt;
:*&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en el panel de Mobeleader.&lt;br /&gt;
:*&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=checkActive&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;country=[código país, ej: ES]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;checkActive&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;requestFields:&#039;&#039;&#039; Mediante ésta tarea obtendremos la configuración de campos y traducciones para una determinada vista.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en el panel de  Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;view:&#039;&#039;&#039; Indicará los campos de que vista solicitamos.&lt;br /&gt;
***&#039;&#039;&#039;register:&#039;&#039;&#039; Pantalla inicial del registro.&lt;br /&gt;
***&#039;&#039;&#039;login:&#039;&#039;&#039; Pantalla de login.&lt;br /&gt;
***&#039;&#039;&#039;rescue:&#039;&#039;&#039; Pantalla de recuperación de contraseña.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo, necesario para las traducciones y las configuraciones de los campos que se retornarán.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=requestFields&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;view=[vista, ej: register]&amp;amp;country=[código país, ej: ES]&amp;amp;language=[código idioma, ej: es]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;view&#039;] = [vista, ej: register];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
$array_datos[&#039;language&#039;] = [código idioma, ej: es];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;requestFields&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;register:&#039;&#039;&#039; Esta tarea servirá para registrar un usuario en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en el panel de  Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=register&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información a registrar del usuario]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información a registrar del usuario];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;register&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;update:&#039;&#039;&#039; Esta tarea servirá para actualizar un usuario que previamente haya sido registrado en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en el panel de  Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=update&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información a actualizar del usuario]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información a actualizar del usuario];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;update&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;login:&#039;&#039;&#039; Esta tarea servirá para hacer login en las aplicaciones registradas en NickCenter, con usuarios previamente registrados en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta el panel de  en Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=login&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información necesaria para el login]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información necesaria para el login];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;login&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;rescuePassword:&#039;&#039;&#039; Mediante ésta tarea restauraremos la contraseña de usuarios previamente registrados en nuestro sistema y que no esten dados de baja.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta el panel de  en Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo, necesario para las traducciones que se retornarán.&lt;br /&gt;
**&#039;&#039;&#039;email:&#039;&#039;&#039; Email al que hay que restaurar la contraseña.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=rescuePassword&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;country=[código país, ej: ES]&amp;amp;language=[código idioma, ej: es]&amp;amp;email=[email a recuperar, ej: prueba@prueba.com]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
$array_datos[&#039;language&#039;] = [código idioma, ej: es];&lt;br /&gt;
$array_datos[&#039;email&#039;] = [email a recuperar, ej: prueba@prueba.com];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;rescuePassword&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Retornos del Webservice===&lt;br /&gt;
Cada tarea tendrá su propio JSON de retorno:&lt;br /&gt;
*&#039;&#039;&#039;checkActive:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;active:&#039;&#039;&#039; Indicará si la aplicación esta activa o no.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;requestFields:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;general:&#039;&#039;&#039; En caso de no haber ningún error devolverá un array con todas las traducciones generales para el idioma seleccionado.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; En caso de no haber ningún error devolverá un array con todos los campos y sus traducciones para el idioma seleccionado.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;register:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que el registro se ha completado.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;update:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que se ha actualizado correctamente.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;login:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que se ha logeado correctamente.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;rescuePassword:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de que no haya habido un error, se mandará una cadena en el idioma seleccionado, con las instrucciones para recuperar la contraseña.&lt;br /&gt;
&lt;br /&gt;
=Campos y Formatos=&lt;br /&gt;
*&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;ua:&#039;&#039;&#039; User Agent. Es la cadena de texto que identifica al usuario ante el servidor que se esta conectando mediante HTTP. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;lmt:&#039;&#039;&#039; Limit Ad Tracking. Indicará si esta permitido el acceso al ifa del dispositivo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; Inactivo/Permitido.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Activo/No permitido.&lt;br /&gt;
**&#039;&#039;&#039;devicetype:&#039;&#039;&#039; Tipo de dispositivo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;4:&#039;&#039;&#039; Smartphone.&lt;br /&gt;
***&#039;&#039;&#039;5:&#039;&#039;&#039; Tablet/iPad.&lt;br /&gt;
**&#039;&#039;&#039;make:&#039;&#039;&#039; Marca del dispositivo. &#039;&#039;Ejemplo: bq&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;model:&#039;&#039;&#039; Modelo del dispositivo. &#039;&#039;Ejemplo: Aquaris E5&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Sistema operativo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;Android:&#039;&#039;&#039; Android.&lt;br /&gt;
***&#039;&#039;&#039;iOs:&#039;&#039;&#039; ios.&lt;br /&gt;
**&#039;&#039;&#039;osv:&#039;&#039;&#039; Version del sistema operativo. &#039;&#039;Ejemplo: 6.0.1&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;hwv:&#039;&#039;&#039; Version del hardware. &#039;&#039;Ejemplo: Aquaris_E5&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;h:&#039;&#039;&#039; Altura de pantalla. &#039;&#039;Ejemplo: 1920&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;w:&#039;&#039;&#039; Anchura de pantalla. &#039;&#039;Ejemplo: 1080&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;ppi:&#039;&#039;&#039; Pixeles por pulgada. &#039;&#039;Ejemplo: 480&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;pxratio:&#039;&#039;&#039; Densidad de pixeles. &#039;&#039;Ejemplo: 3&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;inches:&#039;&#039;&#039; Pulgadas. &#039;&#039;Ejemplo: 4.9&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;js:&#039;&#039;&#039; Soporte para JavaScript. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; No.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Si.&lt;br /&gt;
**&#039;&#039;&#039;connectiontype:&#039;&#039;&#039; Tipo de conexión. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; Unknown.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Ethernet.&lt;br /&gt;
***&#039;&#039;&#039;2:&#039;&#039;&#039; WiFI.&lt;br /&gt;
***&#039;&#039;&#039;3:&#039;&#039;&#039; Cellular Network - Unkown Generation.&lt;br /&gt;
***&#039;&#039;&#039;4:&#039;&#039;&#039; Cellular Network - 2G.&lt;br /&gt;
***&#039;&#039;&#039;5:&#039;&#039;&#039; Cellular Network - 3G.&lt;br /&gt;
***&#039;&#039;&#039;6:&#039;&#039;&#039; Cellular Network - 4G.&lt;br /&gt;
**&#039;&#039;&#039;ifa:&#039;&#039;&#039; Identificador para la publicidad.  &#039;&#039;&#039;Campo obligatorio, debe de estar o el ifa o el uuid.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;Android:&#039;&#039;&#039; Google AID (Google Advertising Identifier). &#039;&#039;Ejemplo: 38400000-8cf0-11bd-b23e-10b96e40000d&#039;&#039;.&lt;br /&gt;
***&#039;&#039;&#039;iOs:&#039;&#039;&#039; iOS IFA (Apple Identifier for Advertiser). &#039;&#039;Ejemplo: AAAAAAAAA-BBBB-CCCC-1111-222222220000&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;uuid:&#039;&#039;&#039; Identificador único universal. &#039;&#039;Ejemplo: 550e8400-e29b-41d4-a716-446655440000&#039;&#039;. &#039;&#039;&#039;Campo obligatorio, debe estar el uuid o el ifa.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo ( locale ). &#039;&#039;Ejemplo: es&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Pais del dispositivo ( locale ). &#039;&#039;Ejemplo: ES&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;carrier:&#039;&#039;&#039; Operador Telefónico del dispositivo. &#039;&#039;Ejemplo: Movistar&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;carriercode:&#039;&#039;&#039; Código del operador telefónico. &#039;&#039;Ejemplo: 21407&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;carriercountry:&#039;&#039;&#039; País del operador telefónico. &#039;&#039;Ejemplo: ES&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mac: ( Solo para Android )&#039;&#039;&#039; Mac del dispositivo. &#039;&#039;Ejemplo: 00:1B:44:11:3A:B7&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;imsi: ( Solo para Android )&#039;&#039;&#039; Identidad Internacional del Abonado Móvil. &#039;&#039;Ejemplo: 7160652952503786&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;did: ( Solo para Android )&#039;&#039;&#039; Identificador Direct inward dialing (DID).&lt;br /&gt;
**&#039;&#039;&#039;dpid: ( Solo para Android )&#039;&#039;&#039; Plataform device id (Android id).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;jsonUser:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;name:&#039;&#039;&#039; Nombre del usuario. Máximo 100 caracteres. &#039;&#039;Ejemplo: Kevin&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;surname:&#039;&#039;&#039; Apellido del usuario. Máximo 100 caracteres. &#039;&#039;Ejemplo: Lancharro&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;email:&#039;&#039;&#039; Email del usuario. Máximo 250 caracteres. &#039;&#039;Ejemplo: xxxx@xxx.com&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;password:&#039;&#039;&#039; Password del usuario. Deberá ir en md5(). Máximo 50 caracteres. &#039;&#039;Ejemplo: e10adc3949ba59abbe56e057f20f883e&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;nick:&#039;&#039;&#039; Nick del usuario. Máximo 50 caracteres. &#039;&#039;Ejemplo: CocoNilo&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;phone:&#039;&#039;&#039; Teléfono móvil del usuario. Máximo 15 caracteres. &#039;&#039;Ejemplo: 6XX XXX XXX&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;birthDate:&#039;&#039;&#039; Fecha de nacimiento del usuario. &#039;&#039;Ejemplo : 1992-01-12&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;gender:&#039;&#039;&#039; Sexo del usuario.&lt;br /&gt;
***&#039;&#039;&#039;Masculino:&#039;&#039;&#039; M.&lt;br /&gt;
***&#039;&#039;&#039;Femenino:&#039;&#039;&#039; F.&lt;br /&gt;
**&#039;&#039;&#039;allowsCommercials:&#039;&#039;&#039; Termino de privacidad con el que el usuario permite recibir comunicaciones comerciales.&lt;br /&gt;
***&#039;&#039;&#039;Permite:&#039;&#039;&#039; yes.&lt;br /&gt;
***&#039;&#039;&#039;Deniega:&#039;&#039;&#039; no.&lt;br /&gt;
**&#039;&#039;&#039;allowsCession:&#039;&#039;&#039; Termino de privacidad con el que el usuario permite que sus datos sean cedidos a terceras empresas relacionadas con el sector.&lt;br /&gt;
***&#039;&#039;&#039;Permite:&#039;&#039;&#039; yes.&lt;br /&gt;
***&#039;&#039;&#039;Deniega:&#039;&#039;&#039; no.&lt;br /&gt;
**Dependiendo de la tarea que estemos ejecutando los campos obligatorios variarán:&lt;br /&gt;
***&#039;&#039;&#039;register:&#039;&#039;&#039; Dependerá de los campos que hayamos configurado en el apartado de NickCenter en el panel de Mobeleader, como mínimo siempre será obligatorio el &#039;&#039;&#039;email&#039;&#039;&#039; y el &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
***&#039;&#039;&#039;update:&#039;&#039;&#039; El único campo obligatorio para las actualizaciones será el &#039;&#039;&#039;email&#039;&#039;&#039;, el resto de campos que se añadan serán los campos a actualizar.&lt;br /&gt;
***&#039;&#039;&#039;login:&#039;&#039;&#039; Dependerá de los campos que hayamos configurado en el apartado de NickCenter en el panel de Mobeleader, será obligatorio el &#039;&#039;&#039;email&#039;&#039;&#039; o el &#039;&#039;&#039;nick&#039;&#039;&#039;, junto con el &#039;&#039;&#039;password&#039;&#039;&#039;. En cualquiera de los casos el &#039;&#039;&#039;password&#039;&#039;&#039; siempre será obligatorio.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;jsonApp&#039;&#039;&#039;: Todos los campos son obligatorios&lt;br /&gt;
**&#039;&#039;&#039;name&#039;&#039;&#039;: Nombre de la aplicación dada de alta en el panel de Mobeleader. &#039;&#039;Ejemplo: Mobeleader&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;bundle&#039;&#039;&#039;: Nombre del paquete de la aplicación. &#039;&#039;Ejemplo: com.mobeleader&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;version&#039;&#039;&#039;: Version de la aplicación. &#039;&#039;Ejemplo: 1.0&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;versioncode&#039;&#039;&#039;: Código de versión de la aplicación. &#039;&#039;Ejemplo: 1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Códigos de Errores=&lt;br /&gt;
A continuación se expondrá una lista con los posibles errores que devolverá el Webservice en caso de que los datos no sean correctos:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Errores generales:&#039;&#039;&#039; Estos errores se deben a un mal uso de la clase &#039;&#039;&#039;spsApiNickcenter&#039;&#039;&#039; y/o su cifrado, por lo que al no poder devolver la cadena cifrada con la RSA Key pública que le corresponde a la aplicación, se mandarán en texto plano sin cifrar y sin formato JSON.&lt;br /&gt;
**Error 000a - Failure decrypting&lt;br /&gt;
**Error 000b - Invalid Task&lt;br /&gt;
**Error 000c - Empty or invalid app hash&lt;br /&gt;
**Error 000d - Missing public RSA Key for app hash X&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea checkActive:&#039;&#039;&#039;&lt;br /&gt;
**Error 001a - Failure checking app active&lt;br /&gt;
**Error 001b - Failure checking app active&lt;br /&gt;
**Error 001c - Failure checking app active&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea rescuePassword:&#039;&#039;&#039;&lt;br /&gt;
**Error 002a - Failure on rescuePassword&lt;br /&gt;
**Error 002b - Failure on rescuePassword&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea requestFields:&#039;&#039;&#039;&lt;br /&gt;
**Error 003a - Failure on requestFields&lt;br /&gt;
**Error 003b - Failure on requestFields&lt;br /&gt;
**Error 003c - Failure on requestFields&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 004a - Failure validating user json, there are no fields configured in your application&lt;br /&gt;
**Error 004b - Failure validating user json, incorrect json format&lt;br /&gt;
**Error 004c - Failure validating user json&lt;br /&gt;
**Error 004d - X is missing or empty in user json.&lt;br /&gt;
**Error 004e - Invalid format for X field in user json.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 005a - Failure validating device json, incorrect json format&lt;br /&gt;
**Error 005b - Failure validating device json&lt;br /&gt;
**Error 005c - Field X is missing or empty in device json&lt;br /&gt;
**Error 005c - Field ifa/uuid are missing or empty in device json, one of them must be informed&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 006a - Failure validating app json, incorrect json format&lt;br /&gt;
**Error 006b - Field X is empty in app json&lt;br /&gt;
**Error 006c - The bundle X for os Y, does not exist&lt;br /&gt;
**Error 006c - Invalid X in app json, it must be numeric&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 007a - Failure generating library json, incorrect device json format&lt;br /&gt;
**Error 007b - Failure generating library json, wrong os in device json&lt;br /&gt;
**Error 007c - Failure generating library json, wrong os in device json&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register:&#039;&#039;&#039;&lt;br /&gt;
**Error 008a - Failure registering&lt;br /&gt;
**Error 008b - Failure registering&lt;br /&gt;
**Error 008c - Email already exists&lt;br /&gt;
**Error 008c - Nick already exists&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea login:&#039;&#039;&#039;&lt;br /&gt;
**Error 009 - Failure on login&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea update:&#039;&#039;&#039;&lt;br /&gt;
**Error 010 - Failure updating&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Sin tarea/Tarea erronea:&#039;&#039;&#039;&lt;br /&gt;
**Error 011a - Empty Task&lt;br /&gt;
**Error 011b - Invalid Task&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_Webservice_NickCenter&amp;diff=2743</id>
		<title>Documentación Webservice NickCenter</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=Documentaci%C3%B3n_Webservice_NickCenter&amp;diff=2743"/>
		<updated>2019-06-07T10:24:50Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Clase spsApiConnection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduccion=&lt;br /&gt;
En ésta documentación se expondrá como deberemos hacer uso del Webservice de NickCenter, de manera que emule la propia librería de NickCenter y así no haya la necesidad de usarla ni implementarla en las aplicaciones. A pesar de ello, la configuración en el panel de Mobeleader será la misma, siendo necesario dar de alta la aplicación en éste, y configurandola para el uso de NickCenter. Podremos hacer uso de dicho Webservice de dos maneras:&lt;br /&gt;
#Llamada directa al Webservice. Ésta opción será menos segura debido a que los datos irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiNickcenter&#039;&#039;&#039; creada por Mobeleader. Esta opción será mas segura ya que cuenta con un cifrado mediante RSA Keys generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
=Conexión con el Webservice=&lt;br /&gt;
La conexión con el Webservice se puede realizar de dos maneras:&lt;br /&gt;
#Mediante llamada directa al Webservice. Esta opción será menos segura debido a que los datos de la petición irán sin cifrar.&lt;br /&gt;
#Usando la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039; creada por Mobeleader. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
==Llamada directa==&lt;br /&gt;
Si queremos usar directamente el Webservice de Nickcenter sin la necesidad de usar la clase &#039;&#039;&#039;analyticsConnection&#039;&#039;&#039;, esta será la URL a la que deberemos conectarnos mediante POST &#039;&#039;https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=&#039;&#039;. Más adelante se expondrán que tareas hay disponibles y como hay que mandar los datos para su ejecución.&lt;br /&gt;
:*&#039;&#039;Ejemplo de petición directa con task (tarea) &#039;&#039;&#039;checkActive&#039;&#039;&#039;, una app concreta (añadiendo el hash que le correspondiera) y country (país) &#039;&#039;&#039;ES&#039;&#039;&#039; (España):&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$url = &#039;https://nickcenter.mobeleader.com/webservice_nickcenter.php&#039;;&lt;br /&gt;
$curl = curl_init($url);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_HTTPHEADER, array(&#039;Content-Type:application/x-www-form-urlencoded&#039;) );&lt;br /&gt;
curl_setopt($curl, CURLOPT_POST, true);&lt;br /&gt;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);&lt;br /&gt;
curl_setopt($curl, CURLOPT_POSTFIELDS, &#039;data=&#039;.urlencode(&#039;task=checkActive&amp;amp;app=my_app_hash&amp;amp;country=ES&#039;));&lt;br /&gt;
$responseJson = curl_exec($curl);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:APIs_webservices:clase_api_connection}}&lt;br /&gt;
&lt;br /&gt;
===Clase spsApiConnection ===&lt;br /&gt;
Una vez instalada la librería &#039;&#039;&#039;PHPSECLIB&#039;&#039;&#039; en nuestra carpeta vendor, lo primero que debemos hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;PATH..../vendor/autoload.php&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Una vez modificada la ruta, para poder instanciar la clase deberemos coger la cadena de la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039;, accesible desde [https://panel.mobeleader.com/index.php?sec=6 nuestro panel], y reemplazarla en el siguiente codigo.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$conexionapi = new spsApiConnection([RSA KEY PRIVADA]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Si la instalación de la librería es correcta, la ruta de acceso a ésta ha sido cambiada y es correcta, y la &#039;&#039;&#039;RSA KEY Privada&#039;&#039;&#039; es correcta, para realizar las llamadas al Webservice usaremos la funcion &#039;&#039;&#039;getWebserviceData()&#039;&#039;&#039; de la clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039;. Dicha función será la encargada de realizar todas las conexiones al Webservice, de cifrar los datos que enviaremos a éste y de descifrar los que datos que nos retorne.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
require_once &amp;quot;PATH..../api_connection_class.php&amp;quot;;&lt;br /&gt;
$conexionapi = new spsApiConnection([RSA KEY PRIVADA]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getWebserviceData(tarea, array_datos)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
A continuación se exponen cuales son las distintas tareas ejecutables, y como ha de ser el array de datos para posibilitar dicha ejecución.&lt;br /&gt;
&lt;br /&gt;
=Tareas=&lt;br /&gt;
La clase &#039;&#039;&#039;spsApiConnection&#039;&#039;&#039; consta de la función &#039;&#039;getData(&#039;&#039;&#039;tarea, array_datos&#039;&#039;&#039;)&#039;&#039;, con la que ejecutaremos las distintas operaciones que el Webservice permite y a la que le deberemos mandar los siguientes parámetros:&lt;br /&gt;
#&#039;&#039;&#039;tarea:&#039;&#039;&#039; Sera la propia tarea a realizar, puediendo ser:&lt;br /&gt;
##&#039;&#039;&#039;checkActive&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;requestFields&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;register&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;update&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;login&#039;&#039;&#039;.&lt;br /&gt;
##&#039;&#039;&#039;rescuePassword&#039;&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;array_datos:&#039;&#039;&#039; Contendrá un array con los datos necesarios para la ejecución de la tarea.&lt;br /&gt;
===Llamadas al Webservice===&lt;br /&gt;
&#039;&#039;Recuerde reemplazar el contenido de los ejemplos por los valores reales&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;checkActive:&#039;&#039;&#039; Esta tarea comprobará que la aplicación tenga NickCenter activo, independientemente de usarla directamente o no, el resto de tareas harán uso de ella antes de realizar sus operaciones propias.&lt;br /&gt;
:*&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en el panel de Mobeleader.&lt;br /&gt;
:*&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=checkActive&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;country=[código país, ej: ES]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;checkActive&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;requestFields:&#039;&#039;&#039; Mediante ésta tarea obtendremos la configuración de campos y traducciones para una determinada vista.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en el panel de  Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;view:&#039;&#039;&#039; Indicará los campos de que vista solicitamos.&lt;br /&gt;
***&#039;&#039;&#039;register:&#039;&#039;&#039; Pantalla inicial del registro.&lt;br /&gt;
***&#039;&#039;&#039;login:&#039;&#039;&#039; Pantalla de login.&lt;br /&gt;
***&#039;&#039;&#039;rescue:&#039;&#039;&#039; Pantalla de recuperación de contraseña.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo, necesario para las traducciones y las configuraciones de los campos que se retornarán.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=requestFields&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;view=[vista, ej: register]&amp;amp;country=[código país, ej: ES]&amp;amp;language=[código idioma, ej: es]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;view&#039;] = [vista, ej: register];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
$array_datos[&#039;language&#039;] = [código idioma, ej: es];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;requestFields&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;register:&#039;&#039;&#039; Esta tarea servirá para registrar un usuario en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en el panel de  Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=register&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información a registrar del usuario]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información a registrar del usuario];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;register&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;update:&#039;&#039;&#039; Esta tarea servirá para actualizar un usuario que previamente haya sido registrado en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta en el panel de  Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=update&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información a actualizar del usuario]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información a actualizar del usuario];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;update&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;login:&#039;&#039;&#039; Esta tarea servirá para hacer login en las aplicaciones registradas en NickCenter, con usuarios previamente registrados en nuestro sistema.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta el panel de  en Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039; Contendrá los datos del dispositivo. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonApp:&#039;&#039;&#039; Contendrá los datos de la aplicación. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
**&#039;&#039;&#039;jsonUser:&#039;&#039;&#039; Contendrá los datos del usuario. Más adelante se exponen que campos son obligatorios.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=login&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;jsonDevice=[json con toda la información del dispositivo]&amp;amp;jsonApp=[json con toda la información de la app]&amp;amp;jsonUser=[json con toda la información necesaria para el login]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;jsonDevice&#039;] = [json con toda la información del dispositivo];&lt;br /&gt;
$array_datos[&#039;jsonApp&#039;] = [json con toda la información de la app];&lt;br /&gt;
$array_datos[&#039;jsonUser&#039;] = [json con toda la información necesaria para el login];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;login&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;rescuePassword:&#039;&#039;&#039; Mediante ésta tarea restauraremos la contraseña de usuarios previamente registrados en nuestro sistema y que no esten dados de baja.&lt;br /&gt;
**&#039;&#039;&#039;app:&#039;&#039;&#039; Contendrá el hash de la aplicación dada de alta el panel de  en Mobeleader.&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Contendrá el país del dispositivo, necesario para comprobar si NickCenter esta activo para esa aplicación en ese país.&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo, necesario para las traducciones que se retornarán.&lt;br /&gt;
**&#039;&#039;&#039;email:&#039;&#039;&#039; Email al que hay que restaurar la contraseña.&lt;br /&gt;
:*&#039;&#039;Ejemplo llamada directa:&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
https://nickcenter.mobeleader.com/webservice_nickcenter.php?data=task=rescuePassword&amp;amp;app=[hash aplicacion, ej: 1234567890ABCDEF]&amp;amp;country=[código país, ej: ES]&amp;amp;language=[código idioma, ej: es]&amp;amp;email=[email a recuperar, ej: prueba@prueba.com]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:*&#039;&#039;Ejemplo spsApiNickcenter:&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$array_datos = array();&lt;br /&gt;
$array_datos[&#039;app&#039;] = [hash aplicacion, ej: 1234567890ABCDEF];&lt;br /&gt;
$array_datos[&#039;country&#039;] = [código país, ej: ES];&lt;br /&gt;
$array_datos[&#039;language&#039;] = [código idioma, ej: es];&lt;br /&gt;
$array_datos[&#039;email&#039;] = [email a recuperar, ej: prueba@prueba.com];&lt;br /&gt;
&lt;br /&gt;
$conexionapi = new spsApiNickcenter([RSA KEY PRIVADA asociada a su aplicación]);&lt;br /&gt;
$json_datos_devueltos = $conexionapi-&amp;gt;getData(&#039;rescuePassword&#039;, $array_datos);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Retornos del Webservice===&lt;br /&gt;
Cada tarea tendrá su propio JSON de retorno:&lt;br /&gt;
*&#039;&#039;&#039;checkActive:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;active:&#039;&#039;&#039; Indicará si la aplicación esta activa o no.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;requestFields:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;general:&#039;&#039;&#039; En caso de no haber ningún error devolverá un array con todas las traducciones generales para el idioma seleccionado.&lt;br /&gt;
**&#039;&#039;&#039;fields:&#039;&#039;&#039; En caso de no haber ningún error devolverá un array con todos los campos y sus traducciones para el idioma seleccionado.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;register:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que el registro se ha completado.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;update:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que se ha actualizado correctamente.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;login:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de no haber error indicará que se ha logeado correctamente.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;rescuePassword:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;error:&#039;&#039;&#039; Indicará si ha habido un error o no.&lt;br /&gt;
**&#039;&#039;&#039;errorTxt:&#039;&#039;&#039; En caso de haber un error indicará a que se debe dicho error.&lt;br /&gt;
**&#039;&#039;&#039;okTxt:&#039;&#039;&#039; En caso de que no haya habido un error, se mandará una cadena en el idioma seleccionado, con las instrucciones para recuperar la contraseña.&lt;br /&gt;
&lt;br /&gt;
=Campos y Formatos=&lt;br /&gt;
*&#039;&#039;&#039;jsonDevice:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;ua:&#039;&#039;&#039; User Agent. Es la cadena de texto que identifica al usuario ante el servidor que se esta conectando mediante HTTP. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;lmt:&#039;&#039;&#039; Limit Ad Tracking. Indicará si esta permitido el acceso al ifa del dispositivo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; Inactivo/Permitido.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Activo/No permitido.&lt;br /&gt;
**&#039;&#039;&#039;devicetype:&#039;&#039;&#039; Tipo de dispositivo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;4:&#039;&#039;&#039; Smartphone.&lt;br /&gt;
***&#039;&#039;&#039;5:&#039;&#039;&#039; Tablet/iPad.&lt;br /&gt;
**&#039;&#039;&#039;make:&#039;&#039;&#039; Marca del dispositivo. &#039;&#039;Ejemplo: bq&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;model:&#039;&#039;&#039; Modelo del dispositivo. &#039;&#039;Ejemplo: Aquaris E5&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;os:&#039;&#039;&#039; Sistema operativo. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;Android:&#039;&#039;&#039; Android.&lt;br /&gt;
***&#039;&#039;&#039;iOs:&#039;&#039;&#039; ios.&lt;br /&gt;
**&#039;&#039;&#039;osv:&#039;&#039;&#039; Version del sistema operativo. &#039;&#039;Ejemplo: 6.0.1&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;hwv:&#039;&#039;&#039; Version del hardware. &#039;&#039;Ejemplo: Aquaris_E5&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;h:&#039;&#039;&#039; Altura de pantalla. &#039;&#039;Ejemplo: 1920&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;w:&#039;&#039;&#039; Anchura de pantalla. &#039;&#039;Ejemplo: 1080&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;ppi:&#039;&#039;&#039; Pixeles por pulgada. &#039;&#039;Ejemplo: 480&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;pxratio:&#039;&#039;&#039; Densidad de pixeles. &#039;&#039;Ejemplo: 3&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;inches:&#039;&#039;&#039; Pulgadas. &#039;&#039;Ejemplo: 4.9&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;js:&#039;&#039;&#039; Soporte para JavaScript. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; No.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Si.&lt;br /&gt;
**&#039;&#039;&#039;connectiontype:&#039;&#039;&#039; Tipo de conexión. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;0:&#039;&#039;&#039; Unknown.&lt;br /&gt;
***&#039;&#039;&#039;1:&#039;&#039;&#039; Ethernet.&lt;br /&gt;
***&#039;&#039;&#039;2:&#039;&#039;&#039; WiFI.&lt;br /&gt;
***&#039;&#039;&#039;3:&#039;&#039;&#039; Cellular Network - Unkown Generation.&lt;br /&gt;
***&#039;&#039;&#039;4:&#039;&#039;&#039; Cellular Network - 2G.&lt;br /&gt;
***&#039;&#039;&#039;5:&#039;&#039;&#039; Cellular Network - 3G.&lt;br /&gt;
***&#039;&#039;&#039;6:&#039;&#039;&#039; Cellular Network - 4G.&lt;br /&gt;
**&#039;&#039;&#039;ifa:&#039;&#039;&#039; Identificador para la publicidad.  &#039;&#039;&#039;Campo obligatorio, debe de estar o el ifa o el uuid.&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;Android:&#039;&#039;&#039; Google AID (Google Advertising Identifier). &#039;&#039;Ejemplo: 38400000-8cf0-11bd-b23e-10b96e40000d&#039;&#039;.&lt;br /&gt;
***&#039;&#039;&#039;iOs:&#039;&#039;&#039; iOS IFA (Apple Identifier for Advertiser). &#039;&#039;Ejemplo: AAAAAAAAA-BBBB-CCCC-1111-222222220000&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;uuid:&#039;&#039;&#039; Identificador único universal. &#039;&#039;Ejemplo: 550e8400-e29b-41d4-a716-446655440000&#039;&#039;. &#039;&#039;&#039;Campo obligatorio, debe estar el uuid o el ifa.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;language:&#039;&#039;&#039; Idioma del dispositivo ( locale ). &#039;&#039;Ejemplo: es&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;country:&#039;&#039;&#039; Pais del dispositivo ( locale ). &#039;&#039;Ejemplo: ES&#039;&#039;. &#039;&#039;&#039;Campo obligatorio.&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;carrier:&#039;&#039;&#039; Operador Telefónico del dispositivo. &#039;&#039;Ejemplo: Movistar&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;carriercode:&#039;&#039;&#039; Código del operador telefónico. &#039;&#039;Ejemplo: 21407&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;carriercountry:&#039;&#039;&#039; País del operador telefónico. &#039;&#039;Ejemplo: ES&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;mac: ( Solo para Android )&#039;&#039;&#039; Mac del dispositivo. &#039;&#039;Ejemplo: 00:1B:44:11:3A:B7&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;imsi: ( Solo para Android )&#039;&#039;&#039; Identidad Internacional del Abonado Móvil. &#039;&#039;Ejemplo: 7160652952503786&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;did: ( Solo para Android )&#039;&#039;&#039; Identificador Direct inward dialing (DID).&lt;br /&gt;
**&#039;&#039;&#039;dpid: ( Solo para Android )&#039;&#039;&#039; Plataform device id (Android id).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;jsonUser:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;name:&#039;&#039;&#039; Nombre del usuario. Máximo 100 caracteres. &#039;&#039;Ejemplo: Kevin&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;surname:&#039;&#039;&#039; Apellido del usuario. Máximo 100 caracteres. &#039;&#039;Ejemplo: Lancharro&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;email:&#039;&#039;&#039; Email del usuario. Máximo 250 caracteres. &#039;&#039;Ejemplo: xxxx@xxx.com&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;password:&#039;&#039;&#039; Password del usuario. Deberá ir en md5(). Máximo 50 caracteres. &#039;&#039;Ejemplo: e10adc3949ba59abbe56e057f20f883e&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;nick:&#039;&#039;&#039; Nick del usuario. Máximo 50 caracteres. &#039;&#039;Ejemplo: CocoNilo&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;phone:&#039;&#039;&#039; Teléfono móvil del usuario. Máximo 15 caracteres. &#039;&#039;Ejemplo: 6XX XXX XXX&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;birthDate:&#039;&#039;&#039; Fecha de nacimiento del usuario. &#039;&#039;Ejemplo : 1992-01-12&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;gender:&#039;&#039;&#039; Sexo del usuario.&lt;br /&gt;
***&#039;&#039;&#039;Masculino:&#039;&#039;&#039; M.&lt;br /&gt;
***&#039;&#039;&#039;Femenino:&#039;&#039;&#039; F.&lt;br /&gt;
**&#039;&#039;&#039;allowsCommercials:&#039;&#039;&#039; Termino de privacidad con el que el usuario permite recibir comunicaciones comerciales.&lt;br /&gt;
***&#039;&#039;&#039;Permite:&#039;&#039;&#039; yes.&lt;br /&gt;
***&#039;&#039;&#039;Deniega:&#039;&#039;&#039; no.&lt;br /&gt;
**&#039;&#039;&#039;allowsCession:&#039;&#039;&#039; Termino de privacidad con el que el usuario permite que sus datos sean cedidos a terceras empresas relacionadas con el sector.&lt;br /&gt;
***&#039;&#039;&#039;Permite:&#039;&#039;&#039; yes.&lt;br /&gt;
***&#039;&#039;&#039;Deniega:&#039;&#039;&#039; no.&lt;br /&gt;
**Dependiendo de la tarea que estemos ejecutando los campos obligatorios variarán:&lt;br /&gt;
***&#039;&#039;&#039;register:&#039;&#039;&#039; Dependerá de los campos que hayamos configurado en el apartado de NickCenter en el panel de Mobeleader, como mínimo siempre será obligatorio el &#039;&#039;&#039;email&#039;&#039;&#039; y el &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
***&#039;&#039;&#039;update:&#039;&#039;&#039; El único campo obligatorio para las actualizaciones será el &#039;&#039;&#039;email&#039;&#039;&#039;, el resto de campos que se añadan serán los campos a actualizar.&lt;br /&gt;
***&#039;&#039;&#039;login:&#039;&#039;&#039; Dependerá de los campos que hayamos configurado en el apartado de NickCenter en el panel de Mobeleader, será obligatorio el &#039;&#039;&#039;email&#039;&#039;&#039; o el &#039;&#039;&#039;nick&#039;&#039;&#039;, junto con el &#039;&#039;&#039;password&#039;&#039;&#039;. En cualquiera de los casos el &#039;&#039;&#039;password&#039;&#039;&#039; siempre será obligatorio.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;jsonApp&#039;&#039;&#039;: Todos los campos son obligatorios&lt;br /&gt;
**&#039;&#039;&#039;name&#039;&#039;&#039;: Nombre de la aplicación dada de alta en el panel de Mobeleader. &#039;&#039;Ejemplo: Mobeleader&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;bundle&#039;&#039;&#039;: Nombre del paquete de la aplicación. &#039;&#039;Ejemplo: com.mobeleader&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;version&#039;&#039;&#039;: Version de la aplicación. &#039;&#039;Ejemplo: 1.0&#039;&#039;.&lt;br /&gt;
**&#039;&#039;&#039;versioncode&#039;&#039;&#039;: Código de versión de la aplicación. &#039;&#039;Ejemplo: 1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Códigos de Errores=&lt;br /&gt;
A continuación se expondrá una lista con los posibles errores que devolverá el Webservice en caso de que los datos no sean correctos:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Errores generales:&#039;&#039;&#039; Estos errores se deben a un mal uso de la clase &#039;&#039;&#039;spsApiNickcenter&#039;&#039;&#039; y/o su cifrado, por lo que al no poder devolver la cadena cifrada con la RSA Key pública que le corresponde a la aplicación, se mandarán en texto plano sin cifrar y sin formato JSON.&lt;br /&gt;
**Error 000a - Failure decrypting&lt;br /&gt;
**Error 000b - Invalid Task&lt;br /&gt;
**Error 000c - Empty or invalid app hash&lt;br /&gt;
**Error 000d - Missing public RSA Key for app hash X&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea checkActive:&#039;&#039;&#039;&lt;br /&gt;
**Error 001a - Failure checking app active&lt;br /&gt;
**Error 001b - Failure checking app active&lt;br /&gt;
**Error 001c - Failure checking app active&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea rescuePassword:&#039;&#039;&#039;&lt;br /&gt;
**Error 002a - Failure on rescuePassword&lt;br /&gt;
**Error 002b - Failure on rescuePassword&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea requestFields:&#039;&#039;&#039;&lt;br /&gt;
**Error 003a - Failure on requestFields&lt;br /&gt;
**Error 003b - Failure on requestFields&lt;br /&gt;
**Error 003c - Failure on requestFields&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 004a - Failure validating user json, there are no fields configured in your application&lt;br /&gt;
**Error 004b - Failure validating user json, incorrect json format&lt;br /&gt;
**Error 004c - Failure validating user json&lt;br /&gt;
**Error 004d - X is missing or empty in user json.&lt;br /&gt;
**Error 004e - Invalid format for X field in user json.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 005a - Failure validating device json, incorrect json format&lt;br /&gt;
**Error 005b - Failure validating device json&lt;br /&gt;
**Error 005c - Field X is missing or empty in device json&lt;br /&gt;
**Error 005c - Field ifa/uuid are missing or empty in device json, one of them must be informed&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 006a - Failure validating app json, incorrect json format&lt;br /&gt;
**Error 006b - Field X is empty in app json&lt;br /&gt;
**Error 006c - The bundle X for os Y, does not exist&lt;br /&gt;
**Error 006c - Invalid X in app json, it must be numeric&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register/update/login:&#039;&#039;&#039;&lt;br /&gt;
**Error 007a - Failure generating library json, incorrect device json format&lt;br /&gt;
**Error 007b - Failure generating library json, wrong os in device json&lt;br /&gt;
**Error 007c - Failure generating library json, wrong os in device json&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea register:&#039;&#039;&#039;&lt;br /&gt;
**Error 008a - Failure registering&lt;br /&gt;
**Error 008b - Failure registering&lt;br /&gt;
**Error 008c - Email already exists&lt;br /&gt;
**Error 008c - Nick already exists&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea login:&#039;&#039;&#039;&lt;br /&gt;
**Error 009 - Failure on login&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Tarea update:&#039;&#039;&#039;&lt;br /&gt;
**Error 010 - Failure updating&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Sin tarea/Tarea erronea:&#039;&#039;&#039;&lt;br /&gt;
**Error 011a - Empty Task&lt;br /&gt;
**Error 011b - Invalid Task&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=SDKs:NickCenter:iOS:index&amp;diff=2742</id>
		<title>SDKs:NickCenter:iOS:index</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=SDKs:NickCenter:iOS:index&amp;diff=2742"/>
		<updated>2019-06-07T10:15:42Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* PASOS A REALIZAR EN NUESTRO PANEL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= CÓMO AGREGAR EL FRAMEWORK NICKCENTER EN iOS =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{:SDKs:NickCenter:Intro}}&lt;br /&gt;
&lt;br /&gt;
== VERSIONES DE iOs SOPORTADAS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Este framework soporta todas las versiones de iOs superiores a las &amp;lt;b&amp;gt;10.0&amp;lt;/b&amp;gt;, en caso de que detecte una versión inferior no se lanzará.&lt;br /&gt;
&lt;br /&gt;
== PASOS A REALIZAR EN NUESTRO PANEL ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez nuestra aplicación esté registrada en nuestro panel, iremos a la sección de de &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Desarrolladores&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; y hacemos click en &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;NickCenter —&amp;gt; Añadir app a NickCenter&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Anadir_app_nc_1.png&lt;br /&gt;
&lt;br /&gt;
Para añadir nuestra aplicación a &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;NickCenter&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; deberemos seguir cinco sencillos pasos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;1.- Selección de app:&amp;lt;/b&amp;gt; En este apartado tendremos que elegír la aplicación que queremos añadir a &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;NickCenter&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; y decidir si la librería estará activa o no al lanzar la aplicación seleccionada. Esto se podrá activar y desactivar siempre que se desee.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_2.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;2.- Pantalla de registro:&amp;lt;/b&amp;gt; En este paso configuraremos lo referente a la vista de registro para los usuarios. Podremos elegir entre varios campos de los cuales, como se indica, el &amp;lt;b&amp;gt;email&amp;lt;/b&amp;gt; y &amp;lt;b&amp;gt;password&amp;lt;/b&amp;gt; siempre serán obligatorios, el resto, será al gusto del desarrollador; pudiendo elegir que el usuario &amp;lt;i&amp;gt;PUEDA&amp;lt;/i&amp;gt;  introducir su nombre, pero no siendo obligatorio para el registro.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_3.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;3.- Pantalla de inicio de sesión:&amp;lt;/b&amp;gt; Como en el anterior paso, aquí, configuraremos lo referente a la pantalla de inicio de sesión para los usuarios. En este caso, como se indica, solo será obligatorio el campo &amp;lt;b&amp;gt;password&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_4.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;4.- Pantalla de recuperación de contraseña:&amp;lt;/b&amp;gt; En este caso, para la pantalla de recuperación de contraseña tan solo se pedira el &amp;lt;b&amp;gt;email&amp;lt;/b&amp;gt; del usuario y por tanto, dicho &amp;lt;b&amp;gt;email&amp;lt;/b&amp;gt; sera un campo obligatorio.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_5.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;5.- Traducción:&amp;lt;/b&amp;gt; Este será el último paso para configurar nuestra aplicación, aquí deberemos seleccionar tanto los idiomas a los que estarán traducidos todos los campos que hemos configurado previamente; como su propia traducción a dichos idiomas. Una vez seleccionado el primer idioma, se pondrá como idioma por defecto de dicha aplicación. Para cambiar el idioma por defecto no tendremos más que generar las traducciones en más idiomas y modificar el campo &amp;lt;b&amp;gt;&amp;quot;Traducción por defecto&amp;quot;&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_6.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;5.1.- Cabeceras y botones:&amp;lt;/b&amp;gt; En este primer paso generaremos las traducciones de las cabeceras de las pantallas y de sus botones.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_7.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;5.2.- Configuración de campos:&amp;lt;/b&amp;gt; En el segúndo paso generaremos las traducciones de los campos seleccionados previamente para cada pantalla y de sus posibles errores.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_8.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;5.3.- Traducciones generales:&amp;lt;/b&amp;gt;  En el tercer y último paso generaremos las traducciones generales, traducciones que van asociadas a todas las pantallas y no a una/s en concreto como en los anteriores pasos.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_9.png&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_10.png&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_11.png&lt;br /&gt;
&lt;br /&gt;
Una vez finalizadas las traducciones, como se ha indicado previamente, aparecerá el idioma al que se han realizado las traducciones y se pondrá por defecto.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_12.png&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_13.png&lt;br /&gt;
&lt;br /&gt;
Si al finalizar dicha configuración no hemos quedado satisfechos con los campos seleccionados en alguna de sus pantallas, cuando procedamos a editar dicha pantalla y añadamos un nuevo campo que previamente no ha sido traducido, automáticamente se abrirá una pantalla para generar las traducciones para el &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;IDIOMA POR DEFECTO&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;. Si queremos generar la traducción para el resto de idiomas hemos de volver a realizar lo especificado en el paso &amp;lt;b&amp;gt;5.-Traducción&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Anadir_nuevo_campo_14.png&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Anadir_nuevo_campo_15.png&lt;br /&gt;
&lt;br /&gt;
== PASOS A REALIZAR PARA LA INTALACIÓN DEL FRAMEWORK EN LA APLICACIÓN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== INSTALACIÓN: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Existen dos maneras de instalar el &amp;lt;i&amp;gt;FrameWork&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;NickCenter&amp;lt;/b&amp;gt;: a través de &amp;lt;b&amp;gt;CocoaPods&amp;lt;/b&amp;gt; o descargándolo directamente. Recomendamos hacerlo a través de la primera opción. &amp;lt;b&amp;gt;NickCenter&amp;lt;/b&amp;gt; incorpora dos &amp;lt;i&amp;gt;frameworks&amp;lt;/i&amp;gt; auxiliares, &amp;lt;b&amp;gt;RegisterLib&amp;lt;/b&amp;gt; y &amp;lt;b&amp;gt;UtilsLib&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== INSTALACIÓN CON COCOAPODS: ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En caso de que su proyecto no incluya el archivo &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Podfile&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;, incorpórelo. Si nunca ha trabajado con &amp;lt;b&amp;gt;CocoaPods&amp;lt;/b&amp;gt; consulte la [https://guides.cocoapods.org/using/using-cocoapods.html documentación ofrecida en su web oficial], en la que se explica paso a paso cómo instalar &amp;lt;b&amp;gt;CocoaPods&amp;lt;/b&amp;gt; y cómo crear, actualizar y trabajar con los archivos &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Podfile&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
    target &#039;NameTarget&#039; do&lt;br /&gt;
       use_frameworks!&lt;br /&gt;
        pod &#039;MobeleaderNC&#039;&lt;br /&gt;
        pod &#039;MobeleaderUtils&#039;&lt;br /&gt;
        pod &#039;MobeleaderRegister&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
Cabe destacar que &amp;lt;b&amp;gt;NameTarget&amp;lt;/b&amp;gt; deberá ser reemplazado por el nombre real del target de la aplicación en la que se quiere añadir el framework.&lt;br /&gt;
&lt;br /&gt;
Una vez creado y configurado el archivo haremos uso del siguiente comando desde el terminal sobre la ruta en la que se encuentra dicho archivo.&lt;br /&gt;
&lt;br /&gt;
    $ pod install --repo-update&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Y veremos como se crea un proyecto tal que el siguiente:&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Proyecto_nc_ios_8.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Deberemos abrir el proyecto desde dicho archivo&amp;lt;/b&amp;gt; para que pueda usar el framework correctamente.&lt;br /&gt;
&lt;br /&gt;
==== INSTALACIÓN MANUAL: ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Descargue el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;NickCenter&amp;lt;/b&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* Desde la [http://panel.mobeleader.com/index.php?sec=82 página principal de las librerías]:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/descarga_general_nc_ios.png&lt;br /&gt;
&lt;br /&gt;
* Desde la página de información de la libreria(http://panel.mobeleader.com/index.php?sec=85&amp;amp;id=45&amp;amp;tipo=3):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/descarga_especifica_nc_ios_1.png&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/referrer/descargar_framework.png&lt;br /&gt;
&lt;br /&gt;
* Directamente desde [https://repos.mobeleader.com/MobeleaderNC/1.0.23/MobeleaderNC.zip aquí].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez descargado el &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;, descomprímalo e instálelo en su proyecto.&lt;br /&gt;
=== LANZAMIENTO: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez configurada la instalación, crearemos un objeto de la clase &amp;lt;b&amp;gt;NickCenter&amp;lt;/b&amp;gt; en donde vayamos a usarla, en el ejemplo se hace en la implementacion de la clase &amp;lt;b&amp;gt;DatosIniciales&amp;lt;/b&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
    @implementation DatosIniciales{&lt;br /&gt;
    	NickCenter *nickCenter;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para su lanzamiento se insertarán las siguientes lineas de código.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    nickCenter = [[NickCenter alloc] init];&lt;br /&gt;
    [nickCenter setDelegate:self];&lt;br /&gt;
    [nickCenter setRootViewController:self];&lt;br /&gt;
    [nickCenter setAppHash:@&amp;quot;Hash de la APP en el Panel de Mobeleader&amp;quot;];&lt;br /&gt;
    [nickCenter checkAndLaunch];&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;appHash&amp;lt;/b&amp;gt;: Será el hash dado por nuestro panel al dar de alta la aplicación en éste.  Para acceder a el deberemos ir a la sección &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Desarrolladores&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; --&amp;gt; &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Mis Apps&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; y hacer click sobre la columna &amp;lt;b&amp;gt;Hash&amp;lt;/b&amp;gt; de nuestra aplicación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setRootViewController&amp;lt;/b&amp;gt;: Ésta función será opcional, con ella le diremos al framework desde que ViewController se lanzará y se recogerán las respuestas en los delegates.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Obtener_hash_app_14.png&lt;br /&gt;
&lt;br /&gt;
Por defecto las pantallas de &amp;lt;b&amp;gt;NickCenter&amp;lt;/b&amp;gt; presentan el siguiente formato:&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/nc_ios_default.jpeg&lt;br /&gt;
&lt;br /&gt;
Si desea modificar las pantallas para que sean lo más parecidas a su aplicación el framework de &amp;lt;b&amp;gt;NickCenter&amp;lt;/b&amp;gt; esta dotado de una serie de funciones que le permitirán maquetarlas a su gusto:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setViewsBackgroundColor:(UIColor \*):&amp;lt;/b&amp;gt; Determina el color de fondo de las pantallas.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setViewsBackgroundImage:(UIImage \*):&amp;lt;/b&amp;gt; Determina la imagen de fondo de cada pantalla.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setHeaderBackgroundColor:(UIColor \*):&amp;lt;/b&amp;gt; Determina el color de fondo de la cabecera de las pantallas.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setHeaderBackgroundImage:(UIImage \*):&amp;lt;/b&amp;gt; Determina la imagen de fondo de la cabecera de cada pantalla.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setHeaderBottomLineColor:(UIColor \*):&amp;lt;/b&amp;gt; Determina el color de la linea que separa la cabecera con el resto de la pantalla.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setHeaderTextColor:(UIColor \*):&amp;lt;/b&amp;gt; Determina el color del texto de la cabecera de las pantallas.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setHeaderFont:(UIFont \*):&amp;lt;/b&amp;gt; Determina la fuente de los textos de las cabeceras.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setTextFieldsBackgroundColor:(UIColor \*):&amp;lt;/b&amp;gt; Determina el color de fondo de los textfields donde se ubican los campos de cada pantalla.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setTextFieldsPlaceholderColor:(UIColor \*):&amp;lt;/b&amp;gt; Determina el color del texto descriptivo de cada textfield.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setTextFieldsTextColor:(UIColor \*):&amp;lt;/b&amp;gt; Determina el color del texto de los textfields donde se ubican los campos de cada pantalla.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setTextFieldsFont:(UIFont \*):&amp;lt;/b&amp;gt; Determina la fuente del texto de los textfields.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setButtonsNormalBackgroundColor:(UIColor \*):&amp;lt;/b&amp;gt; Determina el color de fondo de los botones de cada pantalla.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setButtonsHighlightedBackgroundColor:(UIColor \*):&amp;lt;/b&amp;gt; Determina el color de fondo de los botones de cada pantalla cuando se ha hecho click en éstos.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setButtonsNormalTextColor:(UIColor \*):&amp;lt;/b&amp;gt; Determina el color del texto de cada boton cuando no se ha hecho click en éstos.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setButtonsHighlightedTextColor:(UIColor \*):&amp;lt;/b&amp;gt; Determina el color del texto de cada boton cuando se ha hecho click en éstos.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setButtonsBorderColor:(UIColor \*):&amp;lt;/b&amp;gt; Determina el color del borde de los botones.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setButtonsFont:(UIFont \*):&amp;lt;/b&amp;gt; Determina la fuente de los textos de los botones.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setTermsFontColor:(UIColor \*):&amp;lt;/b&amp;gt; Determina el color de la fuente de los textos de los terminos y condiciones.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setTermsSwitchActiveColor:(UIColor \*):&amp;lt;/b&amp;gt; Determina el color de los botones activos en los terminos y condiciones.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setTermsSwitchInactiveColor:(UIColor \*):&amp;lt;/b&amp;gt; Determina el color de los botones inactivos en los terminos y condiciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se expone un ejemplo en el que se maqueta a gusto del desarrollador las pantallas de &amp;lt;b&amp;gt;NickCenter&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
    nickCenter = [[NickCenter alloc] init];&lt;br /&gt;
    [nickCenter setDelegate:self];&lt;br /&gt;
    [nickCenter setRootViewController:self];&lt;br /&gt;
    [nickCenter setAppHash:@&amp;quot;Hash de la APP en el Panel de Mobeleader&amp;quot;];&lt;br /&gt;
    [nickCenter setViewsBackgroundColor:[UIColor whiteColor]];&lt;br /&gt;
    [nickCenter setViewsBackgroundImage:[UIImage imageNamed:@&amp;quot;logo&amp;quot;]];&lt;br /&gt;
    [nickCenter setHeaderBackgroundColor:[UIColor orangeColor]];&lt;br /&gt;
    [nickCenter setHeaderBottomLineColor:[UIColor orangeColor]];&lt;br /&gt;
    [nickCenter setHeaderTextColor:[UIColor whiteColor]];&lt;br /&gt;
    [nickCenter setTextFieldsBackgroundColor:[UIColor colorWithRed:217.0/255 green:217.0/255 blue:217.0/255 alpha:1]];&lt;br /&gt;
    [nickCenter setTextFieldsPlaceholderColor:[UIColor grayColor]];&lt;br /&gt;
    [nickCenter setTextFieldsTextColor:[UIColor blackColor]];&lt;br /&gt;
    [nickCenter setButtonsNormalBackgroundColor:[UIColor orangeColor]];&lt;br /&gt;
    [nickCenter setButtonsHighlightedBackgroundColor:[UIColor orangeColor]];&lt;br /&gt;
    [nickCenter setButtonsNormalTextColor:[UIColor whiteColor]];&lt;br /&gt;
    [nickCenter setButtonsHighlightedTextColor:[UIColor colorWithRed:249.0/255 green:203.0/255 blue:156.0/255 alpha:1]];&lt;br /&gt;
    [nickCenter setTermsFontColor:[UIColor orangeColor]];&lt;br /&gt;
    [nickCenter checkAndLaunch];&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/nc_ios_desarrollador.jpeg&lt;br /&gt;
&lt;br /&gt;
=== COMPLETAR REGISTRO: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez un usuario haya sido registrado en una de nuestras aplicaciones, cuando otra lance &amp;lt;b&amp;gt;NickCenter&amp;lt;/b&amp;gt;, dicho usuario tan soló debera &amp;lt;b&amp;gt;logearse&amp;lt;/b&amp;gt; sin necesidad de tener que registrarse otra vez para ésta última aplicación. Se puede dar el caso de que al registrarte en la primera aplicación tán solo fuera necesario &amp;lt;b&amp;gt;email y contraseña&amp;lt;/b&amp;gt;, y que para la segunda aplicación fuera necesario registrarse con el &amp;lt;b&amp;gt;telefono&amp;lt;/b&amp;gt;, cuando este tipo de casos se den, al logearte en la segunda aplicación se abrirá una nueva vista para completar el registro. Una vez completado dicho registro se tratará como un login normal.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/nc_ios_completar.jpeg&lt;br /&gt;
&lt;br /&gt;
=== FUNCIONES UTILES: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NickCenter&amp;lt;/b&amp;gt; está dotada de una función que permite al desarrollador cerrar la sesión ya iniciada por el usuario de manera que la siguiente vez que abra la aplicación y pase por donde se lanza la librería, el usuario deba volver a loguearse. Dicha funcion es :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;closeSession&amp;lt;/b&amp;gt;: ( [nickCenter closeSession]; )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== FUNCIONES DE PRECARGA DE DATOS: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NickCenter&amp;lt;/b&amp;gt; está dotada de una serie de funciones que permite al desarrollador precargar los datos del usuario en la pantalla del registro. De ésta manera si el desarrollador conoce los datos de los usuarios, al lanzar la librería los campos se autorellenarán en la pantalla del registro. Dichas funciones son:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setUserName(NString \*name):&amp;lt;/b&amp;gt; Rellenará el campo &amp;quot;Nombre&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setUserSurname(NString \*surName):&amp;lt;/b&amp;gt; Rellenará el campo &amp;quot;Apellidos&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setUserEmail(NString \*email):&amp;lt;/b&amp;gt; Rellenará el campo &amp;quot;Email&amp;quot;. El email ha de ser real, se comprobará tanto el formato de la cadena como la veracidad del propio email. Ejemplo: user@domain.com&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setUserPhone(NString \*phone):&amp;lt;/b&amp;gt; Rellenará el campo &amp;quot;Teléfono&amp;quot;. Se validará el formato del teléfono; ha de ser un teléfono sin prefijo internacional. Ejemplo: 666777888&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setUserNick(NString \*nick):&amp;lt;/b&amp;gt; Rellenará el campo &amp;quot;Nick&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setUserGender(NString \*gender):&amp;lt;/b&amp;gt; Rellenará el campo &amp;quot;Sexo&amp;quot;. Será M para Hombre y F para mujer.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;setUserBirthDate(NString \*birthDate):&amp;lt;/b&amp;gt; Rellenará el campo &amp;quot;Fecha de Nacimiento&amp;quot;. Ha de ser una fecha en formato inglés separado por /. Ejemplo: 1992/01/12.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DELEGATES: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NickCenter&amp;lt;/b&amp;gt; cuenta con una serie de delegates que permiten al desarrollador saber que parte del &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; se esta ejecutando y cual es su resultado. A continuación se expondrán éstos y para que sirven.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onRegisterViewOpened&amp;lt;/b&amp;gt;: Notifica cuando la vista de registro se ha lanzado.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onLoginViewOpened&amp;lt;/b&amp;gt;: Notifica cuando la vista del login se ha lanzado.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onRescueViewOpened&amp;lt;/b&amp;gt;: Notifica cuando la vista de recuperación de contraseña se ha lanzado.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onError:(NSString \*)error&amp;lt;/b&amp;gt;: Notificará cuando haya habido un error, normalmente se lanzará cuando el registro o el login hayan sido incorrectos, o cuando al recuperar la contraseña el email sea incorrecto. Se puede dar el caso de que de otro tipo de error como bien puede ser al conectarnos al sevidor.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onWarning:(NSString \*)warning&amp;lt;/b&amp;gt;: Notificará de alguna advertencia al desarrollador.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onFinished&amp;lt;/b&amp;gt;: Notificará cuando la librería haya finalizado algun proceso. Inicio de sesión, registro o recuperación de contraseña correcto.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onSessionClosed&amp;lt;/b&amp;gt;: Notificará cuando se haya cerrado la sesión de NickCenter.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onActive&amp;lt;/b&amp;gt;: Notificará cuando detecte que NickCenter esta activa para la aplicación.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onInactive&amp;lt;/b&amp;gt;: Notificará cuando detecte que NickCenter esta inactiva para la aplicación.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onRegisterRegisterButtonClicked&amp;lt;/b&amp;gt;: Notificará cuando se haga click en el botón de registarse en la vista de registro de usuario.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onRegisterLoginButtonClicked&amp;lt;/b&amp;gt;: Notificará cuando se haga click en el botón de inicio de sesión en la vista de registro de usuario.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onRegisterCloseButtonClicked&amp;lt;/b&amp;gt;: Notificará cuando se haga click en el botón de cerrar en la vista de registro de usuario.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onRegisterPerformed:(NCUser \&amp;lt;i&amp;gt;) user dictionary:(NSMutableDictionary \&amp;lt;/i&amp;gt;) userDictionary&amp;lt;/b&amp;gt;: Notificará cuando haya habido un registro correcto. Se mandará la información recogida del usuario tanto en formato NCUser como en formato NSMutableDictionary.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onLoginPerformed:(NCUser \&amp;lt;i&amp;gt;) user dictionary:(NSMutableDictionary \&amp;lt;/i&amp;gt;) userDictionary&amp;lt;/b&amp;gt;: Notificará cuando haya habido un login correcto. Se mandará la información recogida del usuario tanto en formato NCUser como en formato NSMutableDictionary.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onLoginLoginButtonClicked&amp;lt;/b&amp;gt;: Notificará cuando se haga click en el botón de inicio de sesión en la vista de inicio de sesión.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onLoginRegisterButtonClicked&amp;lt;/b&amp;gt;: Notificará cuando se haga click en el botón de registrarse en la vista de inicio de sesión.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onLoginRescueButtonClicked&amp;lt;/b&amp;gt;: Notificará cuando se haga click en el botón de recuperar contraseña en la vista de inicio de sesión.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onLoginCloseButtonClicked&amp;lt;/b&amp;gt;: Notificará cuando se haga click en el botón de cerrar en la vista de inicio de sesión.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onRescueRescueButtonClicked&amp;lt;/b&amp;gt;: Notificará cuando se haga click en el botón de recuperar contraseña en la vista de recuperar contraseña.&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;b&amp;gt;onRescueCloseButtonClicked&amp;lt;/b&amp;gt;: Notificará cuando se haga click en el botón de cerrar en la vista de recuperar contraseña.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=SDKs:NickCenter:PanelControl&amp;diff=2741</id>
		<title>SDKs:NickCenter:PanelControl</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=SDKs:NickCenter:PanelControl&amp;diff=2741"/>
		<updated>2019-06-07T10:14:09Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* PASOS A REALIZAR EN NUESTRO PANEL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== PASOS A REALIZAR EN NUESTRO PANEL ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez nuestra aplicación esté registrada en nuestro panel, iremos a la sección de de &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Desarrolladores&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; y hacemos click en &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;NickCenter —&amp;gt; Añadir app a NickCenter&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Anadir_app_nc_1.png&lt;br /&gt;
&lt;br /&gt;
Para añadir nuestra aplicación a &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;NickCenter&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; deberemos seguir cinco sencillos pasos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;1.- Selección de app:&amp;lt;/b&amp;gt; En este apartado tendremos que elegír la aplicación que queremos añadir a &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;NickCenter&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; y decidir si la librería estará activa o no al lanzar la aplicación seleccionada. Esto se podrá activar y desactivar siempre que se desee.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_2.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;2.- Pantalla de registro:&amp;lt;/b&amp;gt; En este paso configuraremos lo referente a la vista de registro para los usuarios. Podremos elegir entre varios campos de los cuales, como se indica, el &amp;lt;b&amp;gt;email&amp;lt;/b&amp;gt; y &amp;lt;b&amp;gt;password&amp;lt;/b&amp;gt; siempre serán obligatorios, el resto, será al gusto del desarrollador; pudiendo elegir que el usuario pueda  introducir su nombre, pero no siendo obligatorio para el registro.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_3.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;3.- Pantalla de inicio de sesión:&amp;lt;/b&amp;gt; Como en el anterior paso, aquí, configuraremos lo referente a la pantalla de inicio de sesión para los usuarios. En este caso, como se indica, solo será obligatorio el campo &amp;lt;b&amp;gt;password&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_4.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;4.- Pantalla de recuperación de contraseña:&amp;lt;/b&amp;gt; En este caso, para la pantalla de recuperación de contraseña tan solo se pedira el &amp;lt;b&amp;gt;email&amp;lt;/b&amp;gt; del usuario y por tanto, dicho &amp;lt;b&amp;gt;email&amp;lt;/b&amp;gt; sera un campo obligatorio.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_5.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;5.- Traducción:&amp;lt;/b&amp;gt; Este será el último paso para configurar nuestra aplicación, aquí deberemos seleccionar tanto los idiomas a los que estarán traducidos todos los campos que hemos configurado previamente; como su propia traducción a dichos idiomas. Una vez seleccionado el primer idioma, se pondrá como idioma por defecto de dicha aplicación. Para cambiar el idioma por defecto no tendremos más que generar las traducciones en más idiomas y modificar el campo &amp;lt;b&amp;gt;&amp;quot;Traducción por defecto&amp;quot;&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_6.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;5.1.- Cabeceras y botones:&amp;lt;/b&amp;gt; En este primer paso generaremos las traducciones de las cabeceras de las pantallas y de sus botones.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_7.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;5.2.- Configuración de campos:&amp;lt;/b&amp;gt; En el segúndo paso generaremos las traducciones de los campos seleccionados previamente para cada pantalla y de sus posibles errores.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_8.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;5.3.- Traducciones generales:&amp;lt;/b&amp;gt;  En el tercer y último paso generaremos las traducciones generales, traducciones que van asociadas a todas las pantallas y no a una/s en concreto como en los anteriores pasos.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_9.png&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_10.png&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_11.png&lt;br /&gt;
&lt;br /&gt;
Una vez finalizadas las traducciones, como se ha indicado previamente, aparecerá el idioma al que se han realizado las traducciones y se pondrá por defecto.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_12.png&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Configurar_app_nc_13.png&lt;br /&gt;
&lt;br /&gt;
Si al finalizar dicha configuración no hemos quedado satisfechos con los campos seleccionados en alguna de sus pantallas, cuando procedamos a editar dicha pantalla y añadamos un nuevo campo que previamente no ha sido traducido, automáticamente se abrirá una pantalla para generar las traducciones para el &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;IDIOMA POR DEFECTO&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;. Si queremos generar la traducción para el resto de idiomas hemos de volver a realizar lo especificado en el paso &amp;lt;b&amp;gt;5.-Traducción&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Anadir_nuevo_campo_14.png&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Anadir_nuevo_campo_15.png&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=SDKs:Push:iOS:index&amp;diff=2740</id>
		<title>SDKs:Push:iOS:index</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=SDKs:Push:iOS:index&amp;diff=2740"/>
		<updated>2019-06-07T10:12:27Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* INSTALACIÓN MANUAL DEL FRAMEWORK: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= CÓMO AGREGAR EL FRAMEWORK PUSHLIB EN iOS =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== INTRODUCCIÓN. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Este framework usa el sistema Push de iOs, denominado &amp;lt;b&amp;gt;APNS&amp;lt;/b&amp;gt;. Lo primero que realiza es la recogida del Token de cada terminal por aplicación para registrarlo en nuestro sistema. Una vez registrado, se le pueden enviar las notificaciones que desee y que el framework las reciba y las muestre.&lt;br /&gt;
&lt;br /&gt;
== VERSIONES SOPORTADAS DE iOS. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El framework &amp;lt;b&amp;gt;Push&amp;lt;/b&amp;gt; soporta versiones de iOs 10 en adelante, en caso de ser menor que iOs 10 no se lanzará.&lt;br /&gt;
&lt;br /&gt;
== PASOS A REALIZAR EN APPLE DEVELOPER CENTER. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para poder enviar notificaciones push lo primero que deberemos hacer es crear los certificados para cada aplicación en [https://developer.apple.com/membercenter/ Apple Developer Center].&lt;br /&gt;
&lt;br /&gt;
Una vez hayamos accedido nos dirigiremos a la sección &amp;lt;b&amp;gt;Identifiers --&amp;gt; App IDs&amp;lt;/b&amp;gt; y pincharemos sobre el simbolo del &amp;lt;b&amp;gt;+&amp;lt;/b&amp;gt; parar agregar uno nuevo.&lt;br /&gt;
&lt;br /&gt;
A continuación, debemos crear los certificados, para ello pinchamos en &amp;lt;b&amp;gt;Create Certificate&amp;lt;/b&amp;gt; y seguimos&lt;br /&gt;
las instrucciones que nos indican:&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/certificados.png&lt;br /&gt;
&lt;br /&gt;
Una vez creados los dos certificados de &amp;lt;b&amp;gt;APNS&amp;lt;/b&amp;gt;, tanto el de &amp;lt;i&amp;gt;Development&amp;lt;/i&amp;gt;, como el de &amp;lt;i&amp;gt;Production&amp;lt;/i&amp;gt;, podremos configurarlos en nuestro panel. Supongamos que queremos usar el de producción&lt;br /&gt;
directamente, entonces lo que tenemos que hacer es pinchar dos veces en el certificado para que se nos habrá&lt;br /&gt;
el keychain.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/keychain.png&lt;br /&gt;
&lt;br /&gt;
Seleccionamos el certificado y damos en el menú &amp;lt;b&amp;gt;Archivo --&amp;gt; Exportar items&amp;lt;/b&amp;gt; y se nos dará la opción de&lt;br /&gt;
exportarlo como &amp;lt;b&amp;gt;.p12 Archivo de Intercambio de Información Personal&amp;lt;/b&amp;gt;. Cuando os pregunté por la&lt;br /&gt;
contraseña pincháis a &amp;lt;b&amp;gt;Aceptar y no insertáis ninguna contraseña&amp;lt;/b&amp;gt;. Una vez que tenemos el Archivo .p12&lt;br /&gt;
habrá que configurarlo en nuestro panel.&lt;br /&gt;
&lt;br /&gt;
== PASOS A REALIZAR EN NUESTRO PANEL ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{:SDKs:Push:pasos_panel}}&lt;br /&gt;
&lt;br /&gt;
{{:SDKs:Push:configurar_ios}}&lt;br /&gt;
&lt;br /&gt;
== PASOS A REALIZAR PARA LA INSTALACIÓN DEL FRAMEWORK EN LA APLICACIÓN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Existen dos maneras de instalar el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;Push&amp;lt;/b&amp;gt;: a través de &amp;lt;b&amp;gt;CocoaPods&amp;lt;/b&amp;gt; o descargándolo directamente. Recomendamos hacerlo a través de la primera opción. &amp;lt;b&amp;gt;Push&amp;lt;/b&amp;gt; incorpora dos &amp;lt;i&amp;gt;frameworks&amp;lt;/i&amp;gt; auxiliares, &amp;lt;b&amp;gt;RegisterLib&amp;lt;/b&amp;gt; y &amp;lt;b&amp;gt;UtilsLib&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== INSTALACIÓN CON COCOAPODS: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En caso de que su proyecto no incluya el archivo &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Podfile&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;, incorpórelo. Si nunca ha trabajado con &amp;lt;b&amp;gt;CocoaPods&amp;lt;/b&amp;gt; consulte la [https://guides.cocoapods.org/using/using-cocoapods.html documentación ofrecida en su web oficial], en la que se explica paso a paso cómo instalar &amp;lt;b&amp;gt;CocoaPods&amp;lt;/b&amp;gt; y cómo crear, actualizar y trabajar con los archivos &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Podfile&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Añada al archivo &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Podfile&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; de su proyecto las siguientes dependencias:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    target &#039;NameTarget&#039; do&lt;br /&gt;
       use_frameworks!&lt;br /&gt;
        pod &#039;MobeleaderPush&#039;&lt;br /&gt;
        pod &#039;MobeleaderUtils&#039;&lt;br /&gt;
        pod &#039;MobeleaderRegister&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cabe destacar que &amp;lt;b&amp;gt;NameTarget&amp;lt;/b&amp;gt; deberá ser reemplazado por el nombre real del target de la aplicación en la que se quiere añadir el framework.&lt;br /&gt;
&lt;br /&gt;
Una vez creado y configurado el archivo haremos uso del siguiente comando desde el terminal sobre la ruta en la que se encuentra dicho archivo.&lt;br /&gt;
&lt;br /&gt;
    $ pod install --repo-update&lt;br /&gt;
&lt;br /&gt;
Y veremos como se crea un proyecto tal que el siguiente:&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Proyecto_nc_ios_8.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Deberemos abrir el proyecto desde dicho archivo&amp;lt;/b&amp;gt; para que pueda usar el framework correctamente.&lt;br /&gt;
&lt;br /&gt;
=== INSTALACIÓN MANUAL DEL FRAMEWORK: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Descargue el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;Push&amp;lt;/b&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* Desde la [http://panel.mobeleader.com/index.php?sec=82 página principal de las librerías]:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/descargar_ios_push_general.png&lt;br /&gt;
&lt;br /&gt;
* Desde la página de [http://panel.mobeleader.com/index.php?sec=85&amp;amp;id=47&amp;amp;tipo=2 información de la libreria]:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/descargar_ios_push_especifica_1.png&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/referrer/descargar_framework.png&lt;br /&gt;
&lt;br /&gt;
* Directamente desde [https://repos.mobeleader.com/MobeleaderPush/1.61.XX/MobeleaderPush.zip aquí].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez descargado el &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;, descomprímalo e instálelo en su proyecto.&lt;br /&gt;
&lt;br /&gt;
=== LANZAMIENTO ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez configurada correctamente la aplicación en nuestro panel con sus respectivos certificados, e instalado el framework, procederemos a realizar las siguientes configuraciones en nuestro proyecto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;1.-&amp;lt;/b&amp;gt; Desde la sección &amp;lt;b&amp;gt;Captabilities&amp;lt;/b&amp;gt; de nuestro &amp;quot;target&amp;quot; principal en el proyecto. Deberemos realizar las siguientes configuraciones:&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/captabilities_ios.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;1.1.-&amp;lt;/b&amp;gt; Activaremos las &amp;lt;b&amp;gt; Notificaciones Push&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/active_push_ios.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;1.2-&amp;lt;/b&amp;gt; Activaremos el &amp;lt;b&amp;gt;Background Mode&amp;lt;/b&amp;gt;, de manera que nos deje activar las notificaciones remotas tal que se muestra en la siguiente imagen.&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/background_mode_ios_push.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;2.-&amp;lt;/b&amp;gt; Desde la sección &amp;lt;b&amp;gt;Info&amp;lt;/b&amp;gt; de nuestro &amp;quot;target&amp;quot; principal en el proyecto. Deberemos añadir la siguiente key con el fin de añadir soporte a conexiones que no sean https &amp;lt;i&amp;gt;( obligatorio a partir de iOs 9 )&amp;lt;/i&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/seccion_info.png&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/info_plist_ios.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;3.-&amp;lt;/b&amp;gt; El framework &amp;lt;b&amp;gt;Push&amp;lt;/b&amp;gt; esta dotado de la capacidad de mostrar &amp;lt;b&amp;gt;notificaciones enriquecidas&amp;lt;/b&amp;gt;; es decir, es capaz de mostrar notificaciones con contenido como &amp;lt;i&amp;gt;imagenes, videos y audios&amp;lt;/i&amp;gt;. Para ello deberemos añadir a nuestro &amp;lt;i&amp;gt;target principal&amp;lt;/i&amp;gt; una &amp;lt;b&amp;gt;nueva extensión&amp;lt;/b&amp;gt; siguiendo los pasos expuestos a continuación:&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/add_ns_1.png&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/add_ns_2.png&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/RichNotifications_edited.png&lt;br /&gt;
&lt;br /&gt;
Por motivos de seguridad y privacidad en ésta última imagen se han protegido los datos relacionados con el desarollador y la compañia desarrolladora. Cabe destacar, que en el apartado &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Embed in Application&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; deberemos seleccionador el &amp;lt;i&amp;gt;target de la aplicación&amp;lt;/i&amp;gt; configurada previamente en los pasos 1 y 2 de éste mismo apartado.&lt;br /&gt;
&lt;br /&gt;
Al añadir la extensión se generará algo tal que lo siguiente en nuestro proyecto:&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/push/RichNotifications_folders.png&lt;br /&gt;
&lt;br /&gt;
Deberemos reemplazar el código del metodo &amp;lt;b&amp;gt;didReceiveNotificationRequest&amp;lt;/b&amp;gt; del archivo &amp;lt;b&amp;gt;NotificationService.m&amp;lt;/b&amp;gt;, dicho código será el siguiente:&lt;br /&gt;
&lt;br /&gt;
    - (void)didReceiveNotificationRequest:(UNNotificationRequest &amp;lt;i&amp;gt;)request withContentHandler:(void (^)(UNNotificationContent &amp;lt;/i&amp;gt; _Nonnull))contentHandler {&lt;br /&gt;
    &lt;br /&gt;
    	self.contentHandler = contentHandler;&lt;br /&gt;
    	self.bestAttemptContent = [request.content mutableCopy];&lt;br /&gt;
    	NSString *attachmentUrlString = [request.content.userInfo objectForKey:@&amp;quot;media-attachment&amp;quot;];&lt;br /&gt;
    &lt;br /&gt;
    	if (![attachmentUrlString isKindOfClass:[NSString class]])&lt;br /&gt;
        		return;&lt;br /&gt;
    &lt;br /&gt;
    	NSURL *url = [NSURL URLWithString:attachmentUrlString];&lt;br /&gt;
    	if (!url)&lt;br /&gt;
        		return;&lt;br /&gt;
    &lt;br /&gt;
    	[[[NSURLSession sharedSession] downloadTaskWithURL:url completionHandler:^(NSURL &amp;lt;i&amp;gt; _Nullable location, NSURLResponse &amp;lt;/i&amp;gt; _Nullable response, NSError * _Nullable error) {&lt;br /&gt;
        		if (!error) {&lt;br /&gt;
            		NSString *tempDict = NSTemporaryDirectory();&lt;br /&gt;
            		NSString *attachmentID = [[[NSUUID UUID] UUIDString] stringByAppendingString:[response.URL.absoluteString lastPathComponent]];&lt;br /&gt;
            &lt;br /&gt;
            		if(response.suggestedFilename)&lt;br /&gt;
                		attachmentID = [[[NSUUID UUID] UUIDString] stringByAppendingString:response.suggestedFilename];&lt;br /&gt;
            &lt;br /&gt;
            		NSString *tempFilePath = [tempDict stringByAppendingPathComponent:attachmentID];&lt;br /&gt;
            &lt;br /&gt;
            		if ([[NSFileManager defaultManager] moveItemAtPath:location.path toPath:tempFilePath error:&amp;amp;error]) {&lt;br /&gt;
                			UNNotificationAttachment *attachment = [UNNotificationAttachment attachmentWithIdentifier:attachmentID URL:[NSURL fileURLWithPath:tempFilePath] options:nil error:&amp;amp;error];&lt;br /&gt;
                &lt;br /&gt;
                			if (!attachment) {&lt;br /&gt;
                    			NSLog(@&amp;quot;Create attachment error: %@&amp;quot;, error);&lt;br /&gt;
                			} else {&lt;br /&gt;
                    			_bestAttemptContent.attachments = [_bestAttemptContent.attachments arrayByAddingObject:attachment];&lt;br /&gt;
                			}&lt;br /&gt;
            		} else {&lt;br /&gt;
                		NSLog(@&amp;quot;Move file error: %@&amp;quot;, error);&lt;br /&gt;
            		}&lt;br /&gt;
        		} else {&lt;br /&gt;
            		NSLog(@&amp;quot;Download file error: %@&amp;quot;, error);&lt;br /&gt;
        		}&lt;br /&gt;
        &lt;br /&gt;
        		[[NSOperationQueue mainQueue] addOperationWithBlock:^{&lt;br /&gt;
            		self.contentHandler(self.bestAttemptContent);&lt;br /&gt;
        		}];&lt;br /&gt;
    	}] resume];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;4.-&amp;lt;/b&amp;gt; Para finalizar y poder lanzar el framework, configuraremos los archivos &amp;lt;b&amp;gt;AppDelegate.h&amp;lt;/b&amp;gt; y &amp;lt;b&amp;gt;AppDelegate.m&amp;lt;/b&amp;gt; de nuestro proyecto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;4.1.- AppDelegate.h:&amp;lt;/b&amp;gt; Añadiremos el siguiente import, de manera que podamos añadir su delegate al interface tal y como se muestra en las imagenes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #Import &amp;lt;UserNotifications/UserNotifications.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    @interface AppDelegate : UIResponder &amp;lt;UNUserNotificationCenterDelegate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;4.2.- AppDelegate.m:&amp;lt;/b&amp;gt; Comenzaremos importando el framework &amp;lt;b&amp;gt;Push&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
    #Import &amp;lt;MobeleaderPush/MobeleaderPush.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;4.2.1.- AppDelegate.m:&amp;lt;/b&amp;gt; A continuación en la función &amp;lt;i&amp;gt;didFinishLaunchingWithOptions&amp;lt;/i&amp;gt; introduciremos lo siguiente.&lt;br /&gt;
&lt;br /&gt;
    #[[Push shared] setAppHash:@&amp;quot;App Hash&amp;quot;];&lt;br /&gt;
    #[[Push shared] setDelegate:self];&lt;br /&gt;
    #[[Push shared] activePushNotificationsInForegroundApp:NO];&lt;br /&gt;
    #[[Push shared] activePushNotifications:YES];&lt;br /&gt;
    &lt;br /&gt;
    if([launchOptions count] &amp;gt; 0){&lt;br /&gt;
    	NSDictionary *remoteNoti = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];&lt;br /&gt;
    	[[Push shared] didReceiveRemoteNotification:remoteNoti];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cabe destacar que: &amp;lt;b&amp;gt;&amp;quot;App Hash&amp;quot;&amp;lt;/b&amp;gt; deberá ser reemplazado por el hash de la aplicación añadida a nuestro panel, y que la función &amp;lt;b&amp;gt;activePushNotificationsInForegroundApp&amp;lt;/b&amp;gt; será opcional. Haciendo uso de ella decidiremos si las notificaciones se mostrarán cuando la aplicación este en primer plano. No se mostrarán por defecto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;4.2.2.- AppDelegate.m:&amp;lt;/b&amp;gt; Tambien añadiremos las siguientes funciones al código. Poniendo especial atención en la encargada de recibir notificaciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    - (void)application:(UIApplication &amp;lt;i&amp;gt;)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData &amp;lt;/i&amp;gt;)devToken{&lt;br /&gt;
        [[Push shared] registerForRemoteNotificationsWithDeviceToken:devToken];&lt;br /&gt;
        [[Push shared] resetBadge];&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    - (void)application:(UIApplication &amp;lt;i&amp;gt;)application didReceiveRemoteNotification:(NSDictionary &amp;lt;/i&amp;gt;)userInfo fetchCompletionHandler(void (^)(UIBackgroundFetchResult result))completionHandler{&lt;br /&gt;
        [[Push shared] application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Como se ha indicado previamente, esta segunda función es especial. A partir de iOs 10 tan solo recibira las notificaciones silenciosas o en background. Normalmente, dichas notificaciones son para que las aplicaciones hagan algo por detras sin que el usuario lo detecte, por lo que tendremos dos opciones: &amp;lt;b&amp;gt;1º&amp;lt;/b&amp;gt;, procesaremos directamente lo que queramos en dicha función o &amp;lt;b&amp;gt;2º&amp;lt;/b&amp;gt;, tal y como se muestra en la imagen, dejaremos que el FrameWork procese la notificación y la recogeremos en el delegate &amp;lt;b&amp;gt;onReceiveNotification&amp;lt;/b&amp;gt;, donde la procesaremos. Esto se deja al gusto del desarrollador.&lt;br /&gt;
&lt;br /&gt;
=== DELEGATES ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El framework &amp;lt;b&amp;gt;Push&amp;lt;/b&amp;gt; esta dotado de varios delegates opcionales mediante los cuales se podrá controlar lo que esta sucediendo en cada momento. Dichos delegates son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onGetToken:(NSString \*) token:&amp;lt;/b&amp;gt; Notifica cuando la librería ha recibido el token (Para rescatar este token y poder hacer pruebas con el) y devuelve el token registrado en el argumento NSString.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onRegisterToken:(NSString \*) token:&amp;lt;/b&amp;gt; Notifica cuando la librería ha registrado el token y devuelve el token registrado en el argumento NSString.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onUpdateToken:(NSString \*) token:&amp;lt;/b&amp;gt; Notifica cuando la librería ha actualizado el token y devuelve el token actualizado en el argumento NSString.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onReceiveNotification:(NSDictionary \*) dictionary:&amp;lt;/b&amp;gt; Notifica cuando la librería ha recibido una notificación y devuelve la notificación en el argumento NSDictionary.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onError:(NSString \*) error:&amp;lt;/b&amp;gt; Notifica cuando la librería ha tenido algún error, y devuelve la descripción del error en el argumento NSString.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    -(void)onGetToken:(NSString *)token{}&lt;br /&gt;
    -(void)onRegisterToken:(NSString *)token{}&lt;br /&gt;
    -(void)onUpdateToken:(NSString *)token{}&lt;br /&gt;
    -(void)onReceiveNotification:(NSDictionary *)notification{}&lt;br /&gt;
    -(void)onError:(NSString *)error&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------------&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=SDKs:Miner:iOS:index&amp;diff=2739</id>
		<title>SDKs:Miner:iOS:index</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=SDKs:Miner:iOS:index&amp;diff=2739"/>
		<updated>2019-06-07T10:08:21Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* LANZAMIENTO DEL FRAMEWORK. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#CÓMO AGREGAR EL FRAMEWORK MINER EN IOS&lt;br /&gt;
&lt;br /&gt;
== INTRODUCCIÓN. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;Miner&amp;lt;/b&amp;gt; permite monetizar la aplicación a través del minado de operaciones de &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;blockchain&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;. Las ganancias generadas dependerán del número de operaciones minadas por la app, lo cual dependerá, a su vez, de dos factores:&lt;br /&gt;
* La capacidad del procesador del terminal en el que se está ejecutando el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* El tiempo que está el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; minando.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== VERSIONES DE IOS SOPORTADAS. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Este &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; admite la versión &amp;lt;b&amp;gt;10.0&amp;lt;/b&amp;gt; de &amp;lt;b&amp;gt;iOS&amp;lt;/b&amp;gt; y superiores.&lt;br /&gt;
&lt;br /&gt;
== INSTALACION DEL FRAMEWORK. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Existen dos maneras de instalar el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;Miner&amp;lt;/b&amp;gt;:&lt;br /&gt;
* A través de &amp;lt;b&amp;gt;CocoaPods&amp;lt;/b&amp;gt;. Opción recomendada.&lt;br /&gt;
&lt;br /&gt;
* Descargándolo directamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Instalación con CocoaPods. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En caso de que su proyecto no incluya el archivo &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Podfile&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;, incorpórelo. Si nunca ha trabajado con &amp;lt;b&amp;gt;CocoaPods&amp;lt;/b&amp;gt; consulte la [https://guides.cocoapods.org/using/using-cocoapods.html documentación ofrecida en su web oficial], en la que se explica paso a paso cómo instalar &amp;lt;b&amp;gt;CocoaPods&amp;lt;/b&amp;gt; y cómo crear, actualizar y trabajar con los archivos &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Podfile&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Añada al archivo &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Podfile&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; de su proyecto las siguientes dependencias:&lt;br /&gt;
&lt;br /&gt;
    pod &#039;MobeleaderMiner&#039;&lt;br /&gt;
&lt;br /&gt;
A continuación, en el directorio de su proyecto ejecute la siguiente línea de comandos:&lt;br /&gt;
&lt;br /&gt;
    $ pod install --repo-update&lt;br /&gt;
&lt;br /&gt;
Se creará el &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;workspace&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; de su proyecto de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Proyecto_nc_ios_8.png&lt;br /&gt;
&lt;br /&gt;
Abra el proyecto desde el &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;workspace&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; para poder usar el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; correctamente.&lt;br /&gt;
&lt;br /&gt;
=== Instalación manual del &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Descargue el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;Miner&amp;lt;/b&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* Desde la [http://panel.mobeleader.com/index.php?sec=82 página principal de las librerías]:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/miner/miner_download.png&lt;br /&gt;
&lt;br /&gt;
* Desde la [http://panel.mobeleader.com/index.php?sec=85&amp;amp;id=53&amp;amp;tipo=7 página de información del &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;Miner 1.00 &amp;lt;/b&amp;gt; de &amp;lt;b&amp;gt;iOS&amp;lt;/b&amp;gt;]:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/desc_framework.png&lt;br /&gt;
&lt;br /&gt;
* Directamente desde [https://repos.mobeleader.com/MobeleaderMiner/1.0.36/MobeleaderMiner-1.0.36.zip aquí].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez descargado el &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; instálelo en su proyecto.&lt;br /&gt;
&lt;br /&gt;
== LANZAMIENTO DEL FRAMEWORK. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seleccione el  &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;controller&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; desde el cual quiera ejecutar el minado e importe la cabecera:&lt;br /&gt;
&lt;br /&gt;
```cpp&lt;br /&gt;
#import &amp;lt;MobeleaderMiner/Miner.h&amp;gt;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Declare la clase &amp;lt;b&amp;gt;Miner&amp;lt;/b&amp;gt; como atributo global en el &amp;lt;b&amp;gt;implementation&amp;lt;/b&amp;gt;:&lt;br /&gt;
```cpp&lt;br /&gt;
Miner *miner;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
En el &amp;lt;b&amp;gt;viewDidLoad&amp;lt;/b&amp;gt; del &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;controller&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; inicialice la clase:&lt;br /&gt;
```cpp&lt;br /&gt;
miner = [[Miner alloc] init];&lt;br /&gt;
miner.delegate = self;&lt;br /&gt;
[miner setAppHash:@&amp;quot;app_hash&amp;quot;];&lt;br /&gt;
[miner setRootViewController:self];&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Los campos &amp;lt;b&amp;gt;setAppHash:@“appHash”&amp;lt;/b&amp;gt; y &amp;lt;b&amp;gt;setRootViewController&amp;lt;/b&amp;gt; son obligatorios.&lt;br /&gt;
&lt;br /&gt;
En el campo &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;appHash&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; ha de introducir el &amp;lt;b&amp;gt;código hash&amp;lt;/b&amp;gt; de su aplicación, generado al registrar su aplicación en el &amp;lt;b&amp;gt;Panel de Mobeleader&amp;lt;/b&amp;gt;. Lo puede obtener en la sección [http://panel.mobeleader.com/index.php?sec=6Mis Aplicaciones], pulsando el icono de la columna &amp;lt;b&amp;gt;&amp;quot;Hash&amp;quot;&amp;lt;/b&amp;gt; de su aplicación.&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/app_hash.png&lt;br /&gt;
&lt;br /&gt;
Una vez inicializada la librería y definidos los parámetros utilice el método &amp;lt;b&amp;gt;start&amp;lt;/b&amp;gt; para comenzar el proceso de minado:&lt;br /&gt;
```cpp&lt;br /&gt;
[miner start];&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Utilice el método &amp;lt;b&amp;gt;stop&amp;lt;/b&amp;gt; para detener el proceso de minado cuando lo desee:&lt;br /&gt;
```cpp&lt;br /&gt;
[miner stop];&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
== DELEGATES. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;Miner&amp;lt;/b&amp;gt; está dotado de varios &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;delegates&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; opcionales:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onLibStart&amp;lt;/b&amp;gt;: notifica el lanzamiento del &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onStartMining&amp;lt;/b&amp;gt;: notifica cuando el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; comienza el proceso de minado.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onStop&amp;lt;/b&amp;gt;: notifica al detener el proceso de minado.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onError&amp;lt;/b&amp;gt;: notifica cuando el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; haya tenido algún error. Devuelve un &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;string&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; con la descripción del error producido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para acceder a los &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;delegates&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;, la llamada al &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;SpsLib&amp;lt;/b&amp;gt; deberá realizarse de la siguiente forma (se pueden implementar tantos &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;delegates&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; como se quiera, no es necesario implementarlos todos):&lt;br /&gt;
&lt;br /&gt;
    - (void)onLibStart&lt;br /&gt;
    {&lt;br /&gt;
        // Complete delegate&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    - (void)onStartMining&lt;br /&gt;
    {&lt;br /&gt;
        // Complete delegate&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    - (void)onStopMinig&lt;br /&gt;
    {&lt;br /&gt;
        // Complete delegate&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    - (void)onError:(NSString *)error&lt;br /&gt;
    {&lt;br /&gt;
        // Complete delegate&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CONSIDERACIONES ACERCA DEL MINADO. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* El proceso de minado se traduce en un consumo significativo de la batería, por lo que recomendamos no abusar de su uso.&lt;br /&gt;
&lt;br /&gt;
- El minado de operaciones &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;blockchain&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; (coloquialmente conocido como minado de criptomonedas) es un ámbito desconocido para la mayor parte de los usuarios. Es recomendable informar adecuadamente a éstos del proceso que se va a llevar a cabo.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=SDKs:Miner:iOS:index&amp;diff=2738</id>
		<title>SDKs:Miner:iOS:index</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=SDKs:Miner:iOS:index&amp;diff=2738"/>
		<updated>2019-06-07T10:07:55Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Instalación manual del framework. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#CÓMO AGREGAR EL FRAMEWORK MINER EN IOS&lt;br /&gt;
&lt;br /&gt;
== INTRODUCCIÓN. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;Miner&amp;lt;/b&amp;gt; permite monetizar la aplicación a través del minado de operaciones de &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;blockchain&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;. Las ganancias generadas dependerán del número de operaciones minadas por la app, lo cual dependerá, a su vez, de dos factores:&lt;br /&gt;
* La capacidad del procesador del terminal en el que se está ejecutando el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* El tiempo que está el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; minando.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== VERSIONES DE IOS SOPORTADAS. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Este &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; admite la versión &amp;lt;b&amp;gt;10.0&amp;lt;/b&amp;gt; de &amp;lt;b&amp;gt;iOS&amp;lt;/b&amp;gt; y superiores.&lt;br /&gt;
&lt;br /&gt;
== INSTALACION DEL FRAMEWORK. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Existen dos maneras de instalar el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;Miner&amp;lt;/b&amp;gt;:&lt;br /&gt;
* A través de &amp;lt;b&amp;gt;CocoaPods&amp;lt;/b&amp;gt;. Opción recomendada.&lt;br /&gt;
&lt;br /&gt;
* Descargándolo directamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Instalación con CocoaPods. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En caso de que su proyecto no incluya el archivo &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Podfile&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;, incorpórelo. Si nunca ha trabajado con &amp;lt;b&amp;gt;CocoaPods&amp;lt;/b&amp;gt; consulte la [https://guides.cocoapods.org/using/using-cocoapods.html documentación ofrecida en su web oficial], en la que se explica paso a paso cómo instalar &amp;lt;b&amp;gt;CocoaPods&amp;lt;/b&amp;gt; y cómo crear, actualizar y trabajar con los archivos &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Podfile&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Añada al archivo &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Podfile&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; de su proyecto las siguientes dependencias:&lt;br /&gt;
&lt;br /&gt;
    pod &#039;MobeleaderMiner&#039;&lt;br /&gt;
&lt;br /&gt;
A continuación, en el directorio de su proyecto ejecute la siguiente línea de comandos:&lt;br /&gt;
&lt;br /&gt;
    $ pod install --repo-update&lt;br /&gt;
&lt;br /&gt;
Se creará el &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;workspace&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; de su proyecto de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Proyecto_nc_ios_8.png&lt;br /&gt;
&lt;br /&gt;
Abra el proyecto desde el &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;workspace&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; para poder usar el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; correctamente.&lt;br /&gt;
&lt;br /&gt;
=== Instalación manual del &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Descargue el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;Miner&amp;lt;/b&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* Desde la [http://panel.mobeleader.com/index.php?sec=82 página principal de las librerías]:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/miner/miner_download.png&lt;br /&gt;
&lt;br /&gt;
* Desde la [http://panel.mobeleader.com/index.php?sec=85&amp;amp;id=53&amp;amp;tipo=7 página de información del &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;Miner 1.00 &amp;lt;/b&amp;gt; de &amp;lt;b&amp;gt;iOS&amp;lt;/b&amp;gt;]:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/desc_framework.png&lt;br /&gt;
&lt;br /&gt;
* Directamente desde [https://repos.mobeleader.com/MobeleaderMiner/1.0.36/MobeleaderMiner-1.0.36.zip aquí].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez descargado el &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; instálelo en su proyecto.&lt;br /&gt;
&lt;br /&gt;
== LANZAMIENTO DEL FRAMEWORK. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seleccione el  &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;controller&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; desde el cual quiera ejecutar el minado e importe la cabecera:&lt;br /&gt;
&lt;br /&gt;
```cpp&lt;br /&gt;
#import &amp;lt;MobeleaderMiner/Miner.h&amp;gt;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Declare la clase &amp;lt;b&amp;gt;Miner&amp;lt;/b&amp;gt; como atributo global en el &amp;lt;b&amp;gt;implementation&amp;lt;/b&amp;gt;:&lt;br /&gt;
```cpp&lt;br /&gt;
Miner *miner;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
En el &amp;lt;b&amp;gt;viewDidLoad&amp;lt;/b&amp;gt; del &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;controller&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; inicialice la clase:&lt;br /&gt;
```cpp&lt;br /&gt;
miner = [[Miner alloc] init];&lt;br /&gt;
miner.delegate = self;&lt;br /&gt;
[miner setAppHash:@&amp;quot;app_hash&amp;quot;];&lt;br /&gt;
[miner setRootViewController:self];&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Los campos &amp;lt;b&amp;gt;setAppHash:@“appHash”&amp;lt;/b&amp;gt; y &amp;lt;b&amp;gt;setRootViewController&amp;lt;/b&amp;gt; son obligatorios.&lt;br /&gt;
&lt;br /&gt;
En el campo &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;appHash&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; ha de introducir el &amp;lt;b&amp;gt;código hash&amp;lt;/b&amp;gt; de su aplicación, generado al registrar su aplicación en el &amp;lt;b&amp;gt;Panel de Mobeleader&amp;lt;/b&amp;gt;. Lo puede obtener en la sección [Mis Aplicaciones](http://panel.mobeleader.com/index.php?sec=6), pulsando el icono de la columna &amp;lt;b&amp;gt;&amp;quot;Hash&amp;quot;&amp;lt;/b&amp;gt; de su aplicación.&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/app_hash.png&lt;br /&gt;
&lt;br /&gt;
Una vez inicializada la librería y definidos los parámetros utilice el método &amp;lt;b&amp;gt;start&amp;lt;/b&amp;gt; para comenzar el proceso de minado:&lt;br /&gt;
```cpp&lt;br /&gt;
[miner start];&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Utilice el método &amp;lt;b&amp;gt;stop&amp;lt;/b&amp;gt; para detener el proceso de minado cuando lo desee:&lt;br /&gt;
```cpp&lt;br /&gt;
[miner stop];&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
== DELEGATES. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;Miner&amp;lt;/b&amp;gt; está dotado de varios &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;delegates&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; opcionales:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onLibStart&amp;lt;/b&amp;gt;: notifica el lanzamiento del &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onStartMining&amp;lt;/b&amp;gt;: notifica cuando el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; comienza el proceso de minado.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onStop&amp;lt;/b&amp;gt;: notifica al detener el proceso de minado.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onError&amp;lt;/b&amp;gt;: notifica cuando el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; haya tenido algún error. Devuelve un &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;string&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; con la descripción del error producido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para acceder a los &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;delegates&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;, la llamada al &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;SpsLib&amp;lt;/b&amp;gt; deberá realizarse de la siguiente forma (se pueden implementar tantos &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;delegates&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; como se quiera, no es necesario implementarlos todos):&lt;br /&gt;
&lt;br /&gt;
    - (void)onLibStart&lt;br /&gt;
    {&lt;br /&gt;
        // Complete delegate&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    - (void)onStartMining&lt;br /&gt;
    {&lt;br /&gt;
        // Complete delegate&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    - (void)onStopMinig&lt;br /&gt;
    {&lt;br /&gt;
        // Complete delegate&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    - (void)onError:(NSString *)error&lt;br /&gt;
    {&lt;br /&gt;
        // Complete delegate&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CONSIDERACIONES ACERCA DEL MINADO. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* El proceso de minado se traduce en un consumo significativo de la batería, por lo que recomendamos no abusar de su uso.&lt;br /&gt;
&lt;br /&gt;
- El minado de operaciones &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;blockchain&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; (coloquialmente conocido como minado de criptomonedas) es un ámbito desconocido para la mayor parte de los usuarios. Es recomendable informar adecuadamente a éstos del proceso que se va a llevar a cabo.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=SDKs:Miner:iOS:index&amp;diff=2737</id>
		<title>SDKs:Miner:iOS:index</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=SDKs:Miner:iOS:index&amp;diff=2737"/>
		<updated>2019-06-07T10:06:59Z</updated>

		<summary type="html">&lt;p&gt;Deneb: /* Instalación con CocoaPods. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#CÓMO AGREGAR EL FRAMEWORK MINER EN IOS&lt;br /&gt;
&lt;br /&gt;
== INTRODUCCIÓN. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;Miner&amp;lt;/b&amp;gt; permite monetizar la aplicación a través del minado de operaciones de &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;blockchain&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;. Las ganancias generadas dependerán del número de operaciones minadas por la app, lo cual dependerá, a su vez, de dos factores:&lt;br /&gt;
* La capacidad del procesador del terminal en el que se está ejecutando el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* El tiempo que está el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; minando.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== VERSIONES DE IOS SOPORTADAS. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Este &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; admite la versión &amp;lt;b&amp;gt;10.0&amp;lt;/b&amp;gt; de &amp;lt;b&amp;gt;iOS&amp;lt;/b&amp;gt; y superiores.&lt;br /&gt;
&lt;br /&gt;
== INSTALACION DEL FRAMEWORK. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Existen dos maneras de instalar el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;Miner&amp;lt;/b&amp;gt;:&lt;br /&gt;
* A través de &amp;lt;b&amp;gt;CocoaPods&amp;lt;/b&amp;gt;. Opción recomendada.&lt;br /&gt;
&lt;br /&gt;
* Descargándolo directamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Instalación con CocoaPods. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En caso de que su proyecto no incluya el archivo &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Podfile&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;, incorpórelo. Si nunca ha trabajado con &amp;lt;b&amp;gt;CocoaPods&amp;lt;/b&amp;gt; consulte la [https://guides.cocoapods.org/using/using-cocoapods.html documentación ofrecida en su web oficial], en la que se explica paso a paso cómo instalar &amp;lt;b&amp;gt;CocoaPods&amp;lt;/b&amp;gt; y cómo crear, actualizar y trabajar con los archivos &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Podfile&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Añada al archivo &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Podfile&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; de su proyecto las siguientes dependencias:&lt;br /&gt;
&lt;br /&gt;
    pod &#039;MobeleaderMiner&#039;&lt;br /&gt;
&lt;br /&gt;
A continuación, en el directorio de su proyecto ejecute la siguiente línea de comandos:&lt;br /&gt;
&lt;br /&gt;
    $ pod install --repo-update&lt;br /&gt;
&lt;br /&gt;
Se creará el &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;workspace&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; de su proyecto de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/NickCenter/Proyecto_nc_ios_8.png&lt;br /&gt;
&lt;br /&gt;
Abra el proyecto desde el &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;workspace&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; para poder usar el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; correctamente.&lt;br /&gt;
&lt;br /&gt;
=== Instalación manual del &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Descargue el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;Miner&amp;lt;/b&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* Desde la [página principal de las librerías](http://panel.mobeleader.com/index.php?sec=82):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/miner/miner_download.png&lt;br /&gt;
&lt;br /&gt;
* Desde la [página de información del &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;Miner 1.00 &amp;lt;/b&amp;gt; de &amp;lt;b&amp;gt;iOS&amp;lt;/b&amp;gt;](http://panel.mobeleader.com/index.php?sec=85&amp;amp;id=53&amp;amp;tipo=7):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/desc_framework.png&lt;br /&gt;
&lt;br /&gt;
* Directamente desde [aquí](https://repos.mobeleader.com/MobeleaderMiner/1.0.36/MobeleaderMiner-1.0.36.zip).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez descargado el &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; instálelo en su proyecto.&lt;br /&gt;
&lt;br /&gt;
== LANZAMIENTO DEL FRAMEWORK. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seleccione el  &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;controller&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; desde el cual quiera ejecutar el minado e importe la cabecera:&lt;br /&gt;
&lt;br /&gt;
```cpp&lt;br /&gt;
#import &amp;lt;MobeleaderMiner/Miner.h&amp;gt;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Declare la clase &amp;lt;b&amp;gt;Miner&amp;lt;/b&amp;gt; como atributo global en el &amp;lt;b&amp;gt;implementation&amp;lt;/b&amp;gt;:&lt;br /&gt;
```cpp&lt;br /&gt;
Miner *miner;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
En el &amp;lt;b&amp;gt;viewDidLoad&amp;lt;/b&amp;gt; del &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;controller&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; inicialice la clase:&lt;br /&gt;
```cpp&lt;br /&gt;
miner = [[Miner alloc] init];&lt;br /&gt;
miner.delegate = self;&lt;br /&gt;
[miner setAppHash:@&amp;quot;app_hash&amp;quot;];&lt;br /&gt;
[miner setRootViewController:self];&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Los campos &amp;lt;b&amp;gt;setAppHash:@“appHash”&amp;lt;/b&amp;gt; y &amp;lt;b&amp;gt;setRootViewController&amp;lt;/b&amp;gt; son obligatorios.&lt;br /&gt;
&lt;br /&gt;
En el campo &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;appHash&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; ha de introducir el &amp;lt;b&amp;gt;código hash&amp;lt;/b&amp;gt; de su aplicación, generado al registrar su aplicación en el &amp;lt;b&amp;gt;Panel de Mobeleader&amp;lt;/b&amp;gt;. Lo puede obtener en la sección [Mis Aplicaciones](http://panel.mobeleader.com/index.php?sec=6), pulsando el icono de la columna &amp;lt;b&amp;gt;&amp;quot;Hash&amp;quot;&amp;lt;/b&amp;gt; de su aplicación.&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/app_hash.png&lt;br /&gt;
&lt;br /&gt;
Una vez inicializada la librería y definidos los parámetros utilice el método &amp;lt;b&amp;gt;start&amp;lt;/b&amp;gt; para comenzar el proceso de minado:&lt;br /&gt;
```cpp&lt;br /&gt;
[miner start];&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Utilice el método &amp;lt;b&amp;gt;stop&amp;lt;/b&amp;gt; para detener el proceso de minado cuando lo desee:&lt;br /&gt;
```cpp&lt;br /&gt;
[miner stop];&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
== DELEGATES. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;Miner&amp;lt;/b&amp;gt; está dotado de varios &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;delegates&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; opcionales:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onLibStart&amp;lt;/b&amp;gt;: notifica el lanzamiento del &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onStartMining&amp;lt;/b&amp;gt;: notifica cuando el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; comienza el proceso de minado.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onStop&amp;lt;/b&amp;gt;: notifica al detener el proceso de minado.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;onError&amp;lt;/b&amp;gt;: notifica cuando el &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; haya tenido algún error. Devuelve un &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;string&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; con la descripción del error producido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para acceder a los &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;delegates&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;, la llamada al &amp;lt;i&amp;gt;framework&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;SpsLib&amp;lt;/b&amp;gt; deberá realizarse de la siguiente forma (se pueden implementar tantos &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;delegates&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; como se quiera, no es necesario implementarlos todos):&lt;br /&gt;
&lt;br /&gt;
    - (void)onLibStart&lt;br /&gt;
    {&lt;br /&gt;
        // Complete delegate&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    - (void)onStartMining&lt;br /&gt;
    {&lt;br /&gt;
        // Complete delegate&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    - (void)onStopMinig&lt;br /&gt;
    {&lt;br /&gt;
        // Complete delegate&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    - (void)onError:(NSString *)error&lt;br /&gt;
    {&lt;br /&gt;
        // Complete delegate&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CONSIDERACIONES ACERCA DEL MINADO. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* El proceso de minado se traduce en un consumo significativo de la batería, por lo que recomendamos no abusar de su uso.&lt;br /&gt;
&lt;br /&gt;
- El minado de operaciones &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;blockchain&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; (coloquialmente conocido como minado de criptomonedas) es un ámbito desconocido para la mayor parte de los usuarios. Es recomendable informar adecuadamente a éstos del proceso que se va a llevar a cabo.&lt;/div&gt;</summary>
		<author><name>Deneb</name></author>
	</entry>
</feed>