Saltar a: navegación, buscar

Documentación API Analytics


Revisión del 11:02 7 jun 2019 de Deneb (discusión | contribuciones) (Error en la petición de estadísticas)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)

Introduccion

La API Analytics 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.

Para poder utilizar la API Analytics y poder obtener tanto el identificador de usuario como las claves RSA, deberá solicitarlo a su administrador.

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.

Registro de usuario

Al solicitar el acceso a la API Analytics, 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.

Conexión con la API

La conexión con la API para realizar la petición de estadísticas se puede realizar de dos maneras:

  1. 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.
  2. Usando la clase spsApiConnection. Esta opción será mas segura ya que cuenta con un cifrado mediante claves RSA generadas en nuestro sistema.

Llamada directa a la API

Si desea realizar la petición a la API sin la necesidad de usar la clase analyticsConnection, deberá conectarse mediante POST a la siguiente URL: https://panel.mobeleader.com/webservices/analytics/api_analytics.php, añadiendo los parámetros data (JSON con los datos de la petición) y user (string o cadena con el identificador del usuario). En el apartado Petición de estadísticas se explicará como obtener el identificador de usuario y como construir el JSON de la petición.

  • Ejemplo de petición directa:
$url = 'https://panel.mobeleader.com/webservices/analytics/api_analytics.php';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/x-www-form-urlencoded') );
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_POSTFIELDS, 'data='.urlencode($requestJson).'&user='.$userIdString);
$responseJson = curl_exec($curl);

Uso de la clase spsApiConnection

La clase spsApiConnection, esta pensada para una mayor comodidad del cliente, permitiendo que todo se gestione desde la clase sin necesidad de tener que programar las llamadas y retornos de la API. Puede descargar el archivo desde aquí. A continuación se exponen los pasos a seguir para un correcto funcionamiento de la clase:

Instalación PHPSECLIB

Será necesario disponer de phpseclib versión 2.0.11 o superior. Para instalar esta versión de phpseclib deberá:
- Disponer de la herramienta "composer.phar"
- Ejecutar "composer" en la carpeta donde vaya a instalar nuestra librería.

1.- Descargar composer desde: https://getcomposer.org/composer.phar

curl https://getcomposer.org/composer.phar -o composer.phar


2.- Ejecutar el comando:

php composer.phar --working-dir=. require phpseclib/phpseclib:~2.0


Hecho esto, obtendrá la siguiente salida por consola:

./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing phpseclib/phpseclib (2.0.11): Downloading (100%)         
phpseclib/phpseclib suggests installing ext-libsodium (SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.)
phpseclib/phpseclib suggests installing ext-mcrypt (Install the Mcrypt extension in order to speed up a few other cryptographic operations.)
phpseclib/phpseclib suggests installing ext-gmp (Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.)
Writing lock file
Generating autoload files


Esto significa que está todo lo necesario instalado en su carpeta vendor.

Clase spsApiConnection

Una vez instalada la librería PHPSECLIB en su carpeta vendor, lo primero que deberá hacer es abrir la clase y modificar la ruta de acceso a dicha carpeta.

require_once 'PATH..../vendor/autoload.php';


Tras modificar la ruta, para poder instanciar la clase, será necesario obtener la clave RSA KEY Privada, accesible desde la sección Mis Datos de nuestro panel.

Boton rsa keys.png


Pulsando en Ver claves RSA, se abrirá un popup en el que podrá obtener las claves RSA.

Rsa keys.png


Ha de copiar la cadena perteneciente al campo Private RSA key. 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 spsApiConnection, tal y como se muestra en el ejemplo siguiente:

require_once "PATH..../api_connection_class.php";
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);


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 RSA KEY Privada, las llamadas a la API se realizarán a través de la función getApiData() de la clase spsApiConnection, añadiendo el JSON con los datos de la petición y la cadena con el identificador del usuario. La función getApiData() 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.

require_once "PATH..../api_connection_class.php";
$apiconnection = new spsApiConnection([RSA_PRIVATE_KEY]);
$responseJson = $apiconnection->getApiData($userIdString, $requestJson)


En el apartado Petición de estadísticas se explica cómo obtenerla cadena con el identificador de usuario y cómo construir el JSON de la petición

Petición de estadísticas

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

Las peticiones a la API son limitadas. 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.

Identificador de usuario

Para realizar la petición de estadísticas a la API Analytics, lo primero que debe hacer es obtener el identificador de usuario. Para ello diríjase a la sección Mis Datos del Panel de Mobeleader y pulse en Ver claves RSA. Una vez dentro del popup, copie la cadena perteneciente al campo Public Identifier.

Public id.png


JSON de petición de estadísticas

Para obtener las estadísticas deseadas, es necesario crear un JSON en el que se especifique:

  1. El tipo de petición, especificado en el campo type: minería, desarrollo, etc.
  2. Los elementos de los cuales quiera obtener las estadísticas, especificados en el campo require: por anuncio, por app, por sistema operativo, etc.
  3. Las estadísticas que quiera mostrar, especificadas en el campo fields: impresiones, descargas, hashes minados, etc.
  4. Los filtros o elementos concretos de los que quiera obtener las estadísticas, especificados en el campo filters: determinadas apps, bases de datos, etc.
  5. Las fechas entre las que quiera delimitar la petición, especificadas en el campo dates.

Tipos

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 type del JSON. Los diferentes valores para el tipo de petición son:

  • mailing: Devuelve las estadísticas de los envíos de Mailing. El usuario ha de tener acceso a las secciones de Mailing en nuestro panel.
  • marketing: Devuelve las estadísticas de los anuncios. El usuario ha de tener acceso a las secciones de Agencias en nuestro panel.
  • miner: Devuelve las estadísticas minería. El usuario ha de tener acceso a las secciones de Minería en nuestro panel.
  • developer: Devuelve las estadísticas de las aplicaciones. El usuario ha de tener acceso a las secciones de Desarrolladores en nuestro panel.
  • nickcenter: Devuelve las estadísticas de los registros realizados a través de NickCenter. El usuario ha de tener acceso a las secciones de NickCenter en nuestro panel.
  • push: Devuelve las estadísticas generadas por las notificaciones Push de sus aplicaciones enviadas a través de nuestro sistema. El usuario ha de tener acceso a las secciones de Notificaciones Push en nuestro panel.
  • linkTracking: Devuelve las estadísticas de descargas por URL tracking. El usuario ha de tener acceso a las sección Link Management en nuestro panel.

Mailing

  • El campo require es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:
    • db: Devolverá las estadísticas por Base de datos.
    • mail: Devolverá las estadísticas por envío.
    • campaign: Devolverá las estadísticas por campaña.
    • domain: Devolverá las estadísticas por dominio.
    • sender: Devolverá las estadísticas por sender (enviador).
    • emailAdress: Devolverá las estadísticas por dirección de email desde la que se hayan realizado los envíos.
    • country: Devolverá las estadísticas por país.


  • El campo fields es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo fields irán especificados dentro de un array y podrán ser los siguientes:
    • sent: emails enviados.
    • views: impresiones totales obtenidas.
    • unique_views: impresiones únicas.
    • clicks: clicks totales realizados.
    • unique_clicks: clicks únicos.
    • leads: registros totales realizados.
    • unique_leads: registros únicos.
    • unsubscribes: bajas ejecutadas.
    • soft_bounces: soft bonces devueltos.
    • hard_bounces: hard bonces devueltos.
    • or: tasa de aperturas.
    • cr: tasa de clicks.
    • ur: tasa de bajas.
    • br: tasa de bonces o rebotados.
    • rr: tasa de reactividad.
    • dr: tasa de entregabilidad.


  • El campo filters es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo filters irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:
    • senders: Array que especifica los senders o enviadores de los que se quieren obtener las estadísticas. Puede añadir los identificadores 'MailingCP' y 'AmazonSES'.
    • dataBases: 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 Id correspondiente a cada base de datos en la sección BBDD de nuestro panel.
    • campaigns: 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 Id correspondiente a cada campaña en la sección Campañas denuestro panel.
    • domains: 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 Id correspondiente a cada dominio en la sección Dominios de nuestro panel.
    • campaignType: 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:
      • transactional: Para envíos transaccionales.
      • autoresponder: Para envíos automáticos.
      • newsletter: Para envíos boletín.
      • transactional: Para envíos de marketing.
    • emails: 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 sección Dominios de nuestro panel. Una vez ahí, pulse en el icono Ver emails en la columna Emails. Dentro del popup en el que se muestran las direcciones de email del dominio seleccionado, podrá obtener el identificador en la columna Id correspondiente a cada dirección de email.
    • mailings: 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 Id correspondiente a cada envío en la sección Envíos Transaccionales para los envíos transaccionales, en la sección Envíos Auto-Responder para los envíos autoresponder, en la sección Envíos Boletín para los envíos boletín y en la sección Envíos Marketing para los envíos de marketing de nuestro panel.


  • El campo dates es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo dates irán especificados dentro de un array, en formato 'YYYY-MM-DD' y podrán ser los siguientes:
    • firstDate: fecha de inicio.
    • lastDate: fecha de fin.


  • Ejemplo de petición de estadísticas por campaña con todos los campos y los filtros:


{
     "type":"mailing",
     "require":"campaign",
     "fields":["sent","views","unique_views","clicks","unique_clicks","leads","unique_leads","unsubscribes","soft_bounces","hard_bounces","or","cr","ur","br","rr","dr"],
     "filters":{
          "senders":["MailingCP"],
          "dataBases":[1,3,4],
          "campaigns":[221,302,357],
          "campaignType":"newsletter",
          "domains":[3,25,27],
          "emails":[59,162],
          "mailings":[324,17835]
     },
     "dates":{
          "firstDate":"2018-09-01",
          "lastDate":"2018-09-02"
     }
}


  • Ejemplo de petición de estadísticas por envío con algunos de los campos y filtros:


{
     "type":"mailing",
     "require":"mail",
     "fields":["sent","views","clicks","leads","unsubscribes"],
     "filters":{
           "dataBases":[1,3,4],
           "campaigns":[221,302,357],
           "campaignType":"marketing",
           "emails":[59,162],
           "mailings":[17835]
     },
     "dates":{
          "firstDate":"2018-09-01"
     }
}

Marketing

  • El campo require es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo require irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:
    • ad: Devolverá las estadísticas por Anuncio o Campaña.
    • domain: Devolverá las estadísticas por Web.
    • creativity: Devolverá las estadísticas por Creatividad.
    • date: Devolverá las estadísticas por fecha.


  • El campo fields es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo fields irán especificados dentro de un array y podrán ser los siguientes:
    • clicks: clicks totales realizados.
    • unique_clicks: clicks únicos.
    • ctr: CTR.
    • validated_leads: registros validados.
    • pending_leads: registros pendientes.
    • total_leads: registros totales.
    • rejected_leads: registros rechazados.
    • validated_expenditures: gastos validados.
    • pending_expenditures: gastos pendientes.
    • total_expenditures: gastos totales.
    • validated_profits: beneficios validados.
    • pending_profits: beneficios pendientes.
    • total_profits: beneficios totales.


  • El campo filters es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo filters irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:
    • campaigns: 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 Id correspondiente a cada campaña en la sección Mis Anuncios de nuestro panel.
    • domains: 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 Id correspondiente a cada web en la sección Mis Webs de nuestro panel.
    • creativities: 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 Id correspondiente a cada creatividad en la sección Mis Creatividades de nuestro panel.


  • El campo dates es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo dates irán especificados dentro de un array, en formato 'YYYY-MM-DD' y podrán ser los siguientes:
    • firstDate: fecha de inicio.
    • lastDate: fecha de fin.


  • Ejemplo de petición de estadísticas con todos los campos y los filtros:


{
     "type":"marketing",
     "require":["ad","domain","creativity","date"],
     "fields":["clicks","unique_clicks","ctr","validated_leads","pending_leads","total_leads","rejected_leads","validated_expenditures","pending_expenditures","total_expenditures","validated_profits","pending_profits","total_profits"],
     "filters":{
          "campaigns":[3,125,408],
          "domains":[95,512],
          "creativities":[27,135]
     },
     "dates":{
          "firstDate":"2018-09-03",
          "lastDate":"2018-09-11"
     }
}


  • Ejemplo de petición de estadísticas por campaña y web, con algunos de los campos y filtros:


{
     "type":"marketing",
     "require":["ad","domain"],
     "fields":["clicks","unique_clicks","total_leads","total_expenditures","total_profits"],
     "filters":{
          "campaigns":[3],"domains":[95,512]
     },
     "dates":{
          "firstDate":"2018-09-03"
     }
}

Miner

  • El campo require es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo require irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:
    • worker: Devolverá las estadísticas por worker.
    • wallet: Devolverá las estadísticas por wallet.
    • workerType: Devolverá las estadísticas por tipo de worker (app, web, link, etc).
    • coin: Devolverá las estadísticas por divisa.
    • date: Devolverá las estadísticas por fecha.


  • El campo fields es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo fields irán especificados dentro de un array y podrán ser los siguientes:
    • payout: pago estimado.
    • hashes: hashes minados.
    • shares: hashes validados.
    • hashrate: hashes por segundo.


  • El campo filters es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo filters irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:
    • workers: 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 Id correspondiente a cada workers en la sección Mis Workers de nuestro panel.
    • wallets: 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 Id correspondiente a cada wallet en la sección Mis Wallets denuestro panel.
    • coins: Array que especifica las divisas de las que se quiere obtener las estadísticas. Puede añadir las siguientes divisas:
      • bcn: Bytecoin.
      • xmr: Monero.
    • workerTypes: Array que especifica los diferentes tipos de workers de los que se quiere obtener las estadísticas. Puede añadir los siguientes tipos:
      • app: aplicación.
      • web: web.
      • wallet: wallet.
      • link: link de redireccionamiento.
      • captcha: captcha de validación.


  • El campo dates es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo dates irán especificados dentro de un array, en formato 'YYYY-MM-DD' y podrán ser los siguientes:
    • firstDate: fecha de inicio.
    • lastDate: fecha de fin.


  • Ejemplo de petición de estadísticas con todos los campos y los filtros:


{
     "type":"miner",
     "require":["worker","wallet","coin","workerType","date"],
     "fields":["payout","hashes","shares","hashrate"],
     "filters":{
          "workers":[39,62],
          "wallets":[1,5,6],
          "workerTypes":["app","web","wallet","link","captcha"],
          "coins":["bcn","xmr"]
     },
     "dates":{
          "firstDate":"2018-09-01",
          "lastDate":"2018-09-30"
     }
}


  • Ejemplo de petición de estadísticas por worker y wallet, con algunos de los campos y filtros:


{
     "type":"miner",
     "require":["worker","wallet"],
     "fields":["hashes","hashrate"],
     "filters":{
          "workers":[39,62],
          "workerTypes":["app","web"],
          "coins":["xmr"]
     }
}

Developer

  • El campo require es obligatorio, e indica el tipo de elemento del que se quiere obtener las estadísticas:
    • app: Devolverá las estadísticas por aplicación.
    • place: Devolverá las estadísticas por espacio.
    • os: Devolverá las estadísticas por sistema operativo.
    • osVersion: Devolverá las estadísticas por versión del sistema operativo.
    • brand: Devolverá las estadísticas por marca del terminal.
    • country: Devolverá las estadísticas por país.


  • El campo fields es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo fields irán especificados dentro de un array y podrán ser los siguientes:
    • views: impresiones obtenidas.
    • clicks: clicks realizados.
    • downloads: descargas obtenidas.


  • El campo filters es opcional, e indica los elementos concretos de los que se quieren obtener las estadísticas. Los valores del campo filters irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:
    • oss: Array que especifica los sistemas operativos de los que se quiere obtener las estadísticas. Puede añadir los identificadores 'android' e 'ios'.
    • apps: 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 Id correspondiente a cada aplicación en la sección Mis Aplicaciones de nuestro panel.
    • places: 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 Id correspondiente a cada espacio en la sección Mis Espacios de nuestro panel.


  • El campo dates es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo dates irán especificados dentro de un array, en formato 'YYYY-MM-DD' y podrán ser los siguientes:
    • firstDate: fecha de inicio.
    • lastDate: fecha de fin.


  • Ejemplo de petición de estadísticas por aplicación con todos los campos y los filtros:


{
     "type":"developer",
     "require":"app",
     "fields":["views","clicks","downloads"],
     "filters":{
          "oss":"android",
          "apps":[13,63],
          "places":[85,125,198]
     },
     "dates":{
          "firstDate":"2018-09-01",
          "lastDate":"2018-09-07"
     }
}


  • Ejemplo de petición de estadísticas por país con algunos de los campos y filtros:


{
     "type":"developer",
     "require":"country",
     "fields":["views","clicks"],
     "filters":{
          "apps":[63],
          "places":[85,125,198]
     },
     "dates":{
          "lastDate":"2018-09-07"
     }
}

NickCenter

  • El campo require es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo require irán especificados dentro de un array y podrán combinarse. Los valore son los siguientes:
    • app: Devolverá las estadísticas por aplicación.
    • os: Devolverá las estadísticas por sistema operativo.
    • date: Devolverá las estadísticas por fecha.
    • link: Devolverá las estadísticas por link. Este campo solo podrá ser requerido por aquellos usuarios con acceso al Link Management.


  • El campo fields es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo fields irán especificados dentro de un array y podrán ser los siguientes:
    • users: 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.
    • total: Todos los usuarios registrados en base dentro de las fechas seleccionadas, incluidos los que se hayan dado de baja.
    • registered: Usuarios que están registrados en la base de datos.
    • valid: Usuarios que están registrados en la base de datos, con todos los campos requeridos completados correctamente.
    • unsubscribes: Usuarios que estuvieron registrados en la base de datos y que se dieron de baja dentro de las fechas seleccionadas.


  • El campo filters es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo filters irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:
    • apps: 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 Id correspondiente a cada aplicación en la sección Mis Aplicaciones de nuestro panel.
    • os: Array que especifica los sistemas operativos de los que se quiere obtener las estadísticas. Puede añadir los identificadores 'android' e 'ios'.
    • countries: 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 apéndice de países.
    • links: 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 Id correspondiente a cada link en la sección Link Management de nuestro panel. Este filtro solo ser á válido para aquellos usuarios con acceso al Link Management.


  • El campo dates es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo dates irán especificados dentro de un array, en formato 'YYYY-MM-DD' y podrán ser los siguientes:
    • firstDate: fecha de inicio.
    • lastDate: fecha de fin.


  • Ejemplo de petición de estadísticas por aplicación, sistema operativo y fecha, con todos los filtros, excepto links:


{
     "type":"nickcenter",
     "require":["app","os","date"],
     "fields":["users","total","registered","valid","unsubscribes"],
     "filters":{
          "apps":[13,63],
          "os":"android",
          "countries":["ES","US"]
     },
     "dates":{
          "firstDate":"2018-10-01",
          "lastDate":"2018-10-12"
     }
}


  • Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:


{
     "type":"nickcenter",
     "fields":["users","total"],
     "require":["app","link"],
     "filters":{
          "apps":[13,63],
          "links":[2,10],
     },
     "dates":{
          "lastDate":"2018-10-12"
     }
}

Push

  • El campo require es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo require irán especificados dentro de un array y podrán combinarse, exceptuando los campos notification y app (solo podrá seleccionar uno de estos dos campos en una consulta). Si selecciona el campo notification, deberá establecer una app en el campo apps de los filtros. Los valore son los siguientes:
    • notification: Devolverá las estadísticas por cada notificación Push.
    • app: Devolverá las estadísticas por aplicación.
    • os: Devolverá las estadísticas por sistema operativo.
    • status: Devolverá las estadísticas por estado de la notificación.
    • date: Devolverá las estadísticas por fecha.


  • El campo fields es obligatorio, e indica qué valores de las estadísticas se quieren obtener. Los valores del campo fields irán especificados dentro de un array y podrán ser los siguientes:
    • total: el total de los mensajes enviados de la notificación.
    • sent: mensajes enviados correctamente.
    • failed: mensajes enviados y que no han llegado al terminal de destino.
    • erased: mensajes borrados.


  • El campo filters es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo filters irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:
    • apps: 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 notification en los filtros. Los identificadores de sus aplicaciones los podrá obtener en la columna Id correspondiente a cada aplicación en la sección Mis Aplicaciones de nuestro panel.
    • os: Array que especifica los sistemas operativos de los que se quiere obtener las estadísticas. Puede añadir los identificadores 'android' e 'ios'.
    • countries: 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 apéndice de países.
    • status: Array que especifica los estados de las notificaciones de los que se quiere obtener las estadísticas.
      • ready: indica que la notificación ha sido creada correctamente y está en espera de ser verificada.
      • starting: indica que la notificación ha sido verificada y va ser enviada.
      • sending: indica que la notificación está siendo enviada.
      • finished: indica que el envío de la notificación ha finalizado.
      • stoped: indica que el envío de la notificación ha sido detenido.


  • El campo dates es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo dates irán especificados dentro de un array, en formato 'YYYY-MM-DD' y podrán ser los siguientes:
    • firstDate: fecha de inicio.
    • lastDate: fecha de fin.


  • Ejemplo de petición de estadísticas por aplicación, sistema operativo, estado y fecha, con todos los filtros:


{
     "type":"push",
     "require":["app","os","status","date"],
     "fields":["total","sent","failed","erased"],
     "filters":{
          "apps":[13,63],
          "os":"android",
          "countries":["ES","FR"],
          "estados":["sending","finished"]
     },
     "dates":{
          "firstDate":"2018-10-01",
          "lastDate":"2018-10-12"
     }
}


  • Ejemplo de petición de estadísticas por notificación y estado, con algunos de los campos y filtros (en el filtro de apps solo establece una aplicación):


{
     "type":"push",
     "require":["notification","status"],
     "fields":["total","sent","failed"],
     "filters":{
          "apps":[13]
     },
     "dates":{
          "lastDate":"2018-10-12"
     }
}

Link Tracking

  • El campo require es obligatorio, e indica los elementos de los que se quiere obtener las estadísticas. Los valores del campo require irán especificados dentro de un array y podrán combinarse. No puede combinarse el campo link con los campos field y value, por lo que si decide incluir el campo link no se mostrarán las estadísticas por field y value. Los valore son los siguientes:
    • app: Devolverá las estadísticas por aplicación.
    • os: Devolverá las estadísticas por sistema operativo.
    • date: Devolverá las estadísticas por fecha.
    • link: Devolverá las estadísticas por link.
    • field: Devolverá las estadísticas por campo.
    • value: Devolverá las estadísticas por valor.


  • El campo filters es opcional, e indica los elementos concretos de los que se quiere obtener las estadísticas. Los valores del campo filters irán especificados dentro de un array y corresponderán al identificador de cada elemento dentro de nuestro panel. Podrán ser los siguientes:
    • apps: 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 Id correspondiente a cada aplicación en la sección Mis Aplicaciones de nuestro panel.
    • links: 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 Id correspondiente a cada link en la sección Link Management de nuestro panel
    • os: Array que especifica los sistemas operativos de los que se quiere obtener las estadísticas. Puede añadir los identificadores 'android' e 'ios'.
    • fields: 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 Campos opcionales correspondiente a cada link (en caso de haber sido configurados) en la sección Link Management de nuestro panel.
    • values: 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 Campos opcionales correspondiente a cada link (en caso de haber sido configurados) en la sección Link Management de nuestro panel.


  • El campo dates es opcional, e indica las fechas entre las cuales queremos obtener las estadísticas. Los valores del campo dates irán especificados dentro de un array, en formato 'YYYY-MM-DD' y podrán ser los siguientes:
    • firstDate: fecha de inicio.
    • lastDate: fecha de fin.


  • Ejemplo de petición de estadísticas por aplicación, sistema operativo, campo, valor y fecha, con todos los filtros:


{
     "type":"linkTracking",
     "require":["app","os","field","value","date"],
     "filters":{
          "apps":[13,63],
          "links":[2,10],
          "os":"android",
          "fields":["campo1","campo2"],
          "values":["valor1","valor2"]
     },
     "dates":{
          "firstDate":"2018-10-01",
          "lastDate":"2018-10-12"
     }
}


  • Ejemplo de petición de estadísticas por aplicación y link, con algunos de los campos y filtros:


{
     "type":"linkTracking",
     "require":["app","link"],
     "filters":{
          "apps":[13,63],
          "links":[2,10],
          "values":["valor1"]
     },
     "dates":{
          "lastDate":"2018-10-12"
     }
}

Resultado de las estadísticas

Una vez realizada la conexión con la API correctamente, ésta devolverá una respuesta en formato JSON. La respuesta puede contener:

  • Un resultado sin estadísticas.
  • Las estadísticas resultantes de la petición.
  • Un mensaje de error.

Resultado vacío

Si la petición se ha realizado correctamente, pero la API no ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo result, el siguiente resultado:


{"result":"No result for this request."}

Resultado con estadísticas

Si la petición se ha realizado correctamente, y la API ha encontrado estadísticas para los valores requeridos, devolverá, dentro del campo result, el resultado de las estadísticas desglosado por campo, en función de los valores indicados en los campos require y fields. Si además se ha establecido el valor 'date' en el campo require, el resultado vendrá desglosado por campo y fecha.


  • Ejemplo de resultado de estadísticas sin fechas:


{
     "result":{
          "0":{
               "require1":"require1 value",
               "require2":"require2 value",
               "field1":"10",
               "field2":"5",
               "field3":"20"
          },
          "1":{
               "require1":"require1 value",
               "require2":"require2 value",
               "field1":"23",
               "field2":"7",
               "field3":"18"
          },
          "total":{
               "require1":"require1 total",
               "require2":"require2 total",
               "field1":"33",
               "field2":"12",
               "field3":"38"
          }
     }
}


  • Ejemplo de resultado de las mismas estadísticas por fecha:


{
     "result":{
          "2018-10-10":[
               {
                    "require1":"require1 value",
                    "require2":"require2 value",
                    "field1":"5",
                    "field2":"2",
                    "field3":"7"
               },
               {
                    "require1":"require1 value",
                    "require2":"require2 value",
                    "field1":"7",
                    "field2":"3",
                    "field3":"10"
               }
          ],
          "2018-10-03":[
               {
                    "require1":"require1 value",
                    "require2":"require2 value",
                    "field1":"10",
                    "field2":"4",
                    "field3":"12"
               },
               {
                    "require1":"require1 value",
                    "require2":"require2 value",
                    "field1":"11",
                    "field2":"3",
                    "field3":"9"
               }
          ],
          "total":{
               "date":2,
               "require1":"require1 total",
               "require2":"require2 total",
               "field1":"33",
               "field2":"12",
               "field3":"38"
          }
     }
}

Error en la petición de estadísticas

Si la petición no se ha realizado correctamente, la API devolverá un mensaje, dentro del campo error, indicando la causa de error en la petición. A continuación se muestra los diferentes errores que la API puede devolver:

{"error":"This is not a valid IP address. Please ask your account manager for a valid IP."}

Indica que la IP no está registrada en el sistema.


{"error":"This is not a valid IP address for the user key sent. Please check and set 'user' parameter properly."}

Indica que la dirección IP desde la que se realiza la petición es correcta, pero no está registrada para el usuario introducido.


{"error":"No request user found. Please set user parameter properly."}

Indica que el parámetro user está vacío o no se ha enviado.


{"error":"No data post field found. Please set data post field."}

Indica que el parámetro data no se ha enviado.


{"error":"No request data found. Please fill your request with proper parameters."}

Indica que el parámetro data está vacío.


{"error":"No request type found. Please set type parameter properly."}

Indica que el parámetro type está vacío o no se ha enviado.


{"error":"Wrong type set, 'type_for_error_test' is not a valid type."}

Indica que el parámetro type se ha introducido incorrectamente.


{"error":"Wrong user set, 'user_key_for_error_test' is not a valid type."}

Indica que el parámetro user se ha introducido incorrectamente.


{"error":"No request fields found. Please set the fields you want to check."}

Indica que el parámetro fields está vacío o no se ha enviado.


{"error":"User has no permission for this request."}

Indica que el usuario introducido no tiene permisos para realizar ese tipo de consulta.


{"error":"User must wait at least 1 minute for the next request."}

Indica que el usuario ha de esperar al menos un minuto desde la última consulta hasta la siguiente.


{"error":"Request require parameter not found or not properly set. Please set require parameter in your request."}

Indica que el parámetro fields está vacío o no se ha enviado.


{"error":"Request require parameter not properly set, 'require_value_for_error_test' is not a valid require. Please set a valid require parameter in your request."}

Indica que el valor indicado del parámetro require no es correcto para la consulta deseada.


{"error":"Some required fields are not correct. 'fields_value_for_error_test' is not a valid field. Please set the required fields properly."}

Indica que el valor indicado del parámetro fields no es correcto para la consulta deseada.

Error en las claves RSA

Si las claves RSA no han sido configuradas correctamente, el sistema mostrará los siguientes errores:


Error 000d - Missing public RSA Key for user key 'my_user_key'.

Indica que el sistema no ha podido verificar las claves RSA del usuario.


Error 000c - Empty or invalid user key.

Indica que el parámetro user no se ha enviado correctamente.