Utilización de la API de analíticas en aplicaciones de cliente

improve this page | report issue

Visión general

IBM MobileFirst Foundation Operational Analytics proporciona API del lado del cliente que permite recopilar datos analíticos sobre la aplicación. Esta guía de aprendizaje proporciona información sobre cómo configurar el soporte de analíticas en la aplicación de cliente y lista las API disponibles.

Ir a

Configuración de analíticas en el lado del cliente

Antes de iniciar la recopilación de datos predefinidos que MobileFirst Analytics proporciona, debe importar las correspondientes bibliotecas para inicializar el soporte de analíticas.

JavaScript (Cordova)

En aplicaciones Cordova no es necesaria ninguna configuración inicial y la inicialización ya viene incorporada.

JavaScript (Web)

En aplicaciones web, se debe hacer referencia a los archivos JavaScript de analíticas. Asegúrese de que primero ha añadido MobileFirst Web SDK. Para obtener más información, consulte la guía de aprendizaje de Adición de MobileFirst SDK para aplicaciones web.

Según de cómo se haya añadido MobileFirst Web SDK, siga de una de las siguientes maneras:

Referencia a MobileFirst Analytics en el elemento HEAD:

<head>
    ...
    <script type="text/javascript" src="node_modules/ibm-mfp-web-sdk/lib/analytics/ibmmfpfanalytics.js"></script>
    <script type="text/javascript" src="node_modules/ibm-mfp-web-sdk/ibmmfpf.js"></script>
</head>

O, si está utilizando RequireJS, escriba:

require.config({
	'paths': {
		'ibmmfpfanalytics': 'node_modules/ibm-mfp-web-sdk/lib/analytics/ibmmfpfanalytics',
		'mfp': 'node_modules/ibm-mfp-web-sdk/ibmmfpf'
	}
});

require(['ibmmfpfanalytics','mfp'], function(ibmmfpfanalytics, WL) {
    // application logic.
});

Tenga en cuenta que puede seleccionar su propio espacio de nombres para sustituir “ibmmfpfanalytics”.

ibmmfpfanalytics.logger.config({analyticsCapture: true});

Importante: Existen algunas diferencias en las API de JavaScript entre los SDK Web y de Cordova. Consulte el tema Consulta de API en la documentación del usuario.

iOS

Importación de la biblioteca WLAnalytics

Objective-C

import "WLAnalytics.h"

Swift

import IBMMobileFirstPlatformFoundation

Inicialización de Analytics

Objective-C
No hace falta configuración. Preinicializado de forma predeterminada.

Swift
Antes de llamar a otros métodos de la clase WLAnalytics, llame a WLAnalytics.sharedInstance().

Android

Importación de WLAnalytics

import com.worklight.common.WLAnalytics;

Inicialización de Analytics

Dentro del método onCreate de su actividad principal incluya:

WLAnalytics.init(this.getApplication());

Habilitación/inhabilitación de tipos de suceso de cliente

La API de analíticas proporciona al desarrollador la posibilidad de habilitar o inhabilitar la recopilación de analíticas para el suceso que deseen visualizar en su instancia de MobileFirst Analytics Console.

La API MobileFirst Analytics permite la captura de las métricas siguientes.

  • Sucesos del ciclo de vida: frecuencia de utilización de las aplicaciones, duración del uso, frecuencia de bloqueos.
  • Uso de red: desglose de frecuencias de llamadas de API, métricas de rendimiento de red
  • Usuarios: usuarios de la aplicación identificados por un ID de usuario proporcionado
  • Analíticas personalizadas: parejas de clave/valor personalizados que el desarrollador de la aplicación define

La inicialización de las API de analíticas debe escribirse en código nativo, incluso en aplicaciones Cordova.

  • Para capturar el uso de las aplicaciones, se deben registrar los escuchas de sucesos del ciclo de vida antes de que se produzca el suceso relevante y antes de enviar los datos al servidor.

  • Para utilizar el sistema de archivos o las características de los dispositivos y el lenguaje nativo, se debe inicializar la API. Si la API se utiliza de una forma que precise características del dispositivo nativo (como, por ejemplo el sistema de archivos), pero no esta inicializada, la llamada de la API falla. Este comportamiento es especialmente cierto en Android.

Nota: Para crear aplicaciones Cordova, la API de analíticas de JavaScript no tiene métodos para habilitar o inhabilitar la recopilación de sucesos LIFECYCLE o NETWORK. En otras palabras, las aplicaciones Cordova vienen de forma predeterminada con sucesos LIFECYCLE y NETWORK habilitados de forma previa. Si desea inhabilitar estos sucesos, consulte Sucesos de ciclo de vida de cliente y Sucesos de red de cliente.

Sucesos de ciclo de vida de cliente

Una vez que configurado el SDK de analíticas, las sesiones de la aplicación empiezan a ser grabadas en el dispositivo del usuario. Se graba una sesión en MobileFirst Analytics cuando la aplicación se pasa desde el primer plano al segundo plano, lo que crea una sesión en Analytics Console.

Tan pronto como el dispositivo está configurado para registrar sesiones y envía los datos, puede ver Analytics Console cumplimentado con datos, tal como se muestra a continuación.

gráfico de sesiones

Habilite o inhabilite la recopilación de sesiones de aplicación mediante la API de Analytics.

JavaScript

Web
Para utilizar los sucesos del ciclo de vida de cliente, inicialice las analíticas:

ibmmfpfanalytics.logger.config({analyticsCapture: true});

Cordova
Para habilitar la captura de los sucesos del ciclo de vida, se debe inicializar en la plataforma nativa de la aplicación Cordova.

  • Para la plataforma iOS:
    • Abra la carpeta [Carpeta raíz aplicación Cordova] → plataformas → ios → Clases y encuentre el archivo AppDelegate.m (Objective-C) o AppDelegate.swift (Swift).

    • Siga la guía de iOS más abajo para habilitar o inhabilitar las actividades de LIFECYCLE.

    • Compile el proyecto Cordova ejecutando el mandato: cordova build.

  • Para la plataforma Android:
    • Abra el archivo [carpeta raíz aplicación Cordova] → plataformas → android → src → com → sample → [nombre-app] → MainActivity.java.

    • Busque el método onCreate y siga la guía de Android más abajo para habilitar o inhabilitar las actividades de LIFECYCLE.

    • Compile el proyecto Cordova ejecutando el mandato: cordova build.

Android

Para habilitar el registro de sucesos del ciclo de vida del cliente:

WLAnalytics.addDeviceEventListener(DeviceEvent.LIFECYCLE);

Para inhabilitar el registro de sucesos del ciclo de vida del cliente:

WLAnalytics.removeDeviceEventListener(DeviceEvent.LIFECYCLE);

iOS

Para habilitar el registro de sucesos del ciclo de vida del cliente:

Objective-C:

[[WLAnalytics sharedInstance] addDeviceEventListener:LIFECYCLE];

Swift:

WLAnalytics.sharedInstance().addDeviceEventListener(LIFECYCLE);

Para inhabilitar el registro de sucesos del ciclo de vida del cliente:

Objective-C:

[[WLAnalytics sharedInstance] removeDeviceEventListener:LIFECYCLE];

Swift:

WLAnalytics.sharedInstance().removeDeviceEventListener(LIFECYCLE);

Actividades de red de cliente

La recopilación en adaptadores y la red puede darse en dos ubicaciones diferentes: en el cliente y en el servidor:

  • El cliente recopila información como, por ejemplo, el tiempo de ida y vuelta y el tamaño de carga útil al iniciar la recopilación en el suceso de dispositivo de NETWORK.

  • El servidor recopila información de fondo como, por ejemplo, el tiempo de proceso, el uso del adaptador y los procedimientos utilizados.

Puesto que el cliente y el servidor recopilan cada uno su propia información, los diagramas no muestran información hasta que el cliente está configurado para ello. Para configurar el cliente, debe iniciar la recopilación para el suceso de dispositivo NETWORK y enviarla al servidor.

JavaScript

Web
Para utilizar los sucesos de red, inicialice las analíticas:

ibmmfpfanalytics.logger.config({analyticsCapture: true});

Cordova
Para habilitar la captura de los sucesos de red, se debe inicializar en la plataforma nativa de la aplicación Cordova.

  • Para la plataforma iOS:
    • Abra la carpeta [Carpeta raíz aplicación Cordova] → plataformas → ios → Clases y encuentre el archivo AppDelegate.m (Objective-C) o AppDelegate.swift.

    • Siga la guía de iOS más abajo para habilitar o inhabilitar las actividades de NETWORK.

    • Compile el proyecto Cordova ejecutando el mandato: cordova build.

  • Para la plataforma Android: vaya a la subactividad de la actividad principal para inhabilitarla.

    • Abra el archivo [carpeta raíz aplicación Cordova] → plataformas → ios → src → com → sample → [nombre-app] → MainActivity.java.

    • Busque el método onCreate y siga la guía de Android más abajo para habilitar o inhabilitar las actividades de NETWORK.

    • Compile el proyecto Cordova ejecutando el mandato: cordova build.

iOS

Para habilitar el registro de sucesos de red del cliente:

Objective-C:

[[WLAnalytics sharedInstance] addDeviceEventListener:NETWORK];

Swift:

WLAnalytics.sharedInstance().addDeviceEventListener(NETWORK);

Para inhabilitar el registro de sucesos de red del cliente:

Objective-C:

[[WLAnalytics sharedInstance] removeDeviceEventListener:NETWORK];

Swift:

WLAnalytics.sharedInstance().removeDeviceEventListener(NETWORK);

Android

Para habilitar el registro de sucesos de red del cliente:

WLAnalytics.addDeviceEventListener(DeviceEvent.NETWORK);

Para inhabilitar el registro de sucesos de red del cliente:

WLAnalytics.removeDeviceEventListener(DeviceEvent.NETWORK);

Sucesos personalizados

Utilice los siguientes métodos de API para crear sucesos personalizados.

JavaScript (Cordova)

WL.Analytics.log({"key" : 'value'});

JavaScript (Web)

Para la API de web, los datos personalizados se envían con el método addEvent.

ibmmfpfanalytics.addEvent({'Purchases':'radio'});
ibmmfpfanalytics.addEvent({'src':'App landing page','target':'About page'});

Android

Después de establecer las dos primeras configuraciones, puede empezar a registrar datos tal como se ve este ejemplo:

JSONObject json = new JSONObject();
try {
    json.put("key", "value");
} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

WLAnalytics.log("Message", json);

iOS

Después de importar WLAnalytics, podrá utilizar la API para recopilar datos personalizados, tal como se muestra:

Objective-C:

NSDictionary *inventory = @{
    @"property" : @"value",
};

[[WLAnalytics sharedInstance] log:@"Custom event" withMetadata:inventory];
[[WLAnalytics sharedInstance] send];

Swift:

let metadata: [NSObject: AnyObject] = ["foo": "bar"];  
WLAnalytics.sharedInstance().log("hello", withMetadata: metadata);

Seguimiento de usuarios

Para realizar el seguimiento de usuarios individuales, utilice el método setUserContext:

Cordova

No soportado.

Aplicaciones web

ibmmfpfanalytics.setUserContext(user);

iOS

Objective-C

[[WLAnalytics sharedInstance] setUserContext:@"John Doe"];

Swift

WLAnalytics.sharedInstance().setUserContext("John Doe")

Android

WLAnalytics.setUserContext("John Doe");

Para dejar el seguimiento de usuarios individuales, utilice el método unsetUserContext:

Cordova

No soportado.

Aplicaciones web

No hay unsetUserContext en MobileFirst Web SDK. La sesión de usuario finaliza después de 30 minutos de inactividad, a no ser que se realice otra llamada a ibmmfpfanalytics.setUserContext(user).

iOS

Objective-C

[[WLAnalytics sharedInstance] unsetUserContext];

Swift

WLAnalytics.sharedInstance().unsetUserContext

Android

WLAnalytics.unsetUserContext();

Envío de datos de analíticas

El envío de analíticas es un paso crucial para ver las analíticas del lado del cliente en el servidor de analíticas. Cuando se recopilan para las analíticas los datos de los tipos de suceso configurados, los registros de analíticas se almacenan en un archivo de registro en dispositivo del cliente. Los datos desde el archivo se envían a MobileFirst Analytics Server mediante el método send de la API de analíticas.

Considere la posibilidad de enviar los registros capturados periódicamente al servidor. El envío de datos en de forma periódica asegura que se verán datos analíticos actualizados en MobileFirst Analytics Console.

JavaScript (Cordova)

En una aplicación Cordova, utilice el siguiente método de API de JavaScript:

WL.Analytics.send();

JavaScript (Web)

En una aplicación Web, utilice el siguiente método de API de JavaScript (dependiendo del espacio de nombres que haya seleccionado):

ibmmfpfanalytics.send();

iOS

Objective-C

[[WLAnalytics sharedInstance] send];

Swift

WLAnalytics.sharedInstance().send();

Android

En una aplicación Android, utilice el siguiente método de API de Java:

WLAnalytics.send();
Last modified on November 08, 2017