flurry analytics

24
Flurry Analytics Jose I. Honrado (@Joosee) NSCoder Night Madrid - 20.06.12

Upload: jose-i-honrado

Post on 08-Aug-2015

111 views

Category:

Software


0 download

TRANSCRIPT

Flurry Analytics Jose I. Honrado (@Joosee)

NSCoder Night Madrid - 20.06.12

Contenidos

Presentación

Características

Instalación y configuración

Tracking de info. personalizada

Demostración del panel de control

Flurry Analytics 20.06.12

¿Qué es Flurry Analytics?

Servicio gratuito de analítica móvil.

Estadísticas de uso

Segmentación de audiencia

Registro de eventos

Información técnica

www.flurry.com/product/analytics/index.html

Flurry Analytics 20.06.12

Estadísticas de uso

Usuarios: activos, nuevos y retenidos

Sesiones: totales y duración

Frecuencia de uso

Ciclo de vida (0, 30, 60… / días, semanas, meses)

Versiones aplicación

“Páginas” vistas

Flurry Analytics 20.06.12

Audiencia

Intereses: mis apps o por categoría de la App Store

Demográficos: edad y género (real o estimada)

Localización (usando GPS u otros)

Idiomas

Flurry Analytics 20.06.12

Eventos

Sumario: eventos totales y media por sesión

Rutas: eventos por los que pasa el usuario

Funnels: conjunto de eventos que ejecuta un usuario bajo unas determinadas condiciones

Log: trazas detalladas de todos los eventos

Flurry Analytics 20.06.12

Información técnica

Dispositivos

Operadores

Versiones de firmware

Trazas de errores

Flurry Analytics 20.06.12

Otros

Dashboards personalizados

Segmentos

Alertas

Agregación a nivel de compañía

Informes y funnels “cross-app”

Roles

API XML/JSON

Flurry Analytics 20.06.12

Creando la aplicación

Flurry Analytics 20.06.12

Instalación básica

Flurry Analytics 20.06.12

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{ // Opciones de configuración Flurry // ... // Arrancamos Flurry [FlurryAnalytics startSession:FLURRY_API_KEY]; // ... }

Parámetros de configuración

Flurry Analytics 20.06.12

// Enviar datos al cerrar la aplicación [FlurryAnalytics setSessionReportsOnCloseEnabled:YES]; // Enviar datos al pausar la aplicación [FlurryAnalytics setSessionReportsOnPauseEnabled:NO]; // Usar transporte seguro (más lento) [FlurryAnalytics setSecureTransportEnabled:NO]; // Opciones del log [FlurryAnalytics setDebugLogEnabled:YES]; [FlurryAnalytics setEventLoggingEnabled:YES]; [FlurryAnalytics setShowErrorInLogEnabled:YES]; // Tiempo de expiración de sesión [FlurryAnalytics setSessionContinueSeconds:5]; // Versión de la aplicación [FlurryAnalytics setAppVersion:@"1.2.5"];

Tracking de páginas vistas (1)

Flurry Analytics 20.06.12

// Registrar página vista [FlurryAnalytics logPageView]; // Registrar todas las páginas vistas de un UINavigationController [FlurryAnalytics logAllPageViews:self.navigationController]; // Registrar todas las páginas vistas de un UITabBarController [FlurryAnalytics logAllPageViews:self.tabBarController];

Tracking de páginas vistas (2)

Flurry Analytics 20.06.12

#import "BaseViewController.h" #import "FlurryAnalytics.h" @implementation BaseViewController - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; // Registrar página vista [FlurryAnalytics logPageView]; }

Tracking de eventos

Flurry Analytics 20.06.12

// Evento simple [FlurryAnalytics logEvent:@"event_name"]; // Evento con parámetros NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"value1", @"key1”, nil]; [FlurryAnalytics logEvent:@"event_name” withParameters:dictionary]; // Evento con duración y parámetros [FlurryAnalytics logEvent:@"event_name" timed:YES]; [FlurryAnalytics endTimedEvent:@"event_name" withParameters:dictionary];

Tracking de demográficos

Flurry Analytics 20.06.12

// ID o nombre de usuario [FlurryAnalytics setUserID:@"user_id"]; // Edad [FlurryAnalytics setAge:22]; // Género [FlurryAnalytics setGender:@"m"];

Tracking de localización

Flurry Analytics 20.06.12

// Obtenemos localización del usuario CLLocationManager *locationManager = [[CLLocationManager alloc] init]; [locationManager startUpdatingLocation]; CLLocation *location = locationManager.location; // Registramos localización [FlurryAnalytics setLatitude:location.coordinate.latitude longitude:location.coordinate.longitude horizontalAccuracy:location.horizontalAccuracy verticalAccuracy:location.verticalAccuracy];

Reporte de errores (1)

Flurry Analytics 20.06.12

// Registro error usando NSError [FlurryAnalytics logError:@"mi_error" message:@"error" error:error]; // Registro error usando NSException [FlurryAnalytics logError:@"mi_excep" message:@"excep" exception:excep];

Reporte de errores (2)

Flurry Analytics 20.06.12

// Función para reportar excepciones no controladas void uncaughtExceptionHandler(NSException *excep) { [FlurryAnalytics logError:@"Uncaught" message:@"Crash!" exception:excep]; } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Establecemos manejador de excepciones no controladas NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler); // ... [FlurryAnalytics startSession:FLURRY_API_KEY]; // ... }

Flurry Analytics 20.06.12

Demostración panel de control

Aplicación analizada (1)

Flurry Analytics 20.06.12

Aplicación analizada (2)

Flurry Analytics 20.06.12

Demostración panel de control

Dashboard

Rutas de usuario

Funnels

Información técnica

Segmentos

Alertas

Panel de compañía

Flurry Analytics 20.06.12

Conclusión

Flurry es una excelente herramienta para monitorizar el uso de nuestras aplicaciones, probablemente la mejor hoy en día.

Sin embargo, hay algún aspecto que se puede mejorar:

Disponer de los datos en tiempo real, o al menos en intervalos más cortos (por ej. de 30min).

Flurry Analytics 20.06.12

¿Preguntas?

Jose I. Honrado (@Joosee)

about.me/jihonrado

NSCoder Night Madrid - 20.06.12