Google Analytics SDK for iOS v3 (Beta)

Nullam nec urna in sem lacinia malesuada sed mollis tortor
12 marzo, 2014
Agregar un SplashScreen a un proyecto existente en Android
17 marzo, 2014

Learn-Objective-C Para los que no conocen lo que es, Google Analytics es una herramienta que nos brinda Google para administrar estadísticas de sitios web. Así también ofrece a los desarrolladores de Android e iOS un SDK con la misma finalidad en nuestros aplicativos.

Básicamente, voy a resumir de forma muy simple lo que tenemos que hacer para implementar el SDK de iOS en nuestro desarrollo.

Esta info sirve para los que ya tenemos la versión de Xcode 5.0 en adelante y obvio que hay que tener una cuenta de google para ver los resultados entrando en Google Analytics .

1 – Descargar el SDK desde https://developers.google.com/analytics/devguides/collection/ios/resources?hl=es

2 – Agregar los header que vienen dentro del SDK que ya bajamos en nuestro proyecto.

  • GAI.h
  • GAITracker.h
  • GAITrackedViewController.h
  • GAIDictionaryBuilder.h
  • GAIFields.h
  • GAILogger.h
  • libGoogleAnalyticsServices.a

3 – Configurar en nuestro proyecto (Target->Build Phases->Link Binary With Libraries) las siguientes Librerías.

  • libGoogleAnalyticsServices.a
  • AdSupport.framework
  • CoreData.framework
  • SystemConfiguration.framework
  • libz.dylib

Configurado lo anterior ya estamos en condiciones de usarlo con lo que también hago un pequeño resumen de los puntos mas importantes.

4 – Inicializar el Tracking

Dentro de tu AppDelegate.m hay que importar el heder GAI.h

Luego en el método application:didFinishLaunchingWithOptions hay que agregar el siguiente código.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Optional: Envia datos a las Excepciones.. Importante para recién empezar
  [GAI sharedInstance].trackUncaughtExceptions = YES;

  // Optional: Setea el tiempo cada cuanto envía los datos al Servidor de Google
  [GAI sharedInstance].dispatchInterval = 20;

  // Optional: Super Importante !  Muestra un LOG de lo que hace el SDK . No encontré otra forma de debuguear
  [[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelVerbose];

  // Inicializar con el codigo que nos entregó el Google Analytics google.com/analytics
  id tracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-XXXX-Y"];

}

5 – Este SDK nos da la posibilidad de registrar automáticamente la pantalla en la que se encuentra el usuario. Para esto hay que modificar el UIViewController por uno que trae el SDK que se llama GAITrackedViewController . Este cambio no es nada complicado, por ejemplo si tu Screen se llama Inicio, seguramente hay un InicioViewController.h y un InicioViewController.m

En InicioViewController.h modificar

@interface InicioViewController : UIViewController

por

#import "GAITrackedViewController.h"
@interface InicioViewController : GAITrackedViewController

Luego solo resta agregar el nombre de la pantalla que quieras que figure en tus estadísticas de Google Analytics en una propiedad que tenemos ahora llamada screenName

- (void)viewWillAppear:(BOOL)animated {
  [super viewWillAppear:animated];
  self.screenName = @"Pantalla INICIO"; // O el nombre que deseen
}

Con esto automáticamente el SDK se encarga de enviar los datos al server . Lo que también realicé para acelerar el envío de los datos es forzar un dispatch cuando se retira de la pantalla o ingresa a otra agregando lo siguiente:

- (void)viewWillDisappear:(BOOL)animated;
{
    [[GAI sharedInstance] dispatch];
    [super viewWillDisappear:animated];
}

5 – Por último muestro como enviar eventos de lo que necesitemos registrar.. Ya sea presionar un botón , mostrar cierto contenido o que compartió, o lo que crean conveniente.

Primero hay que asegurarse de tener importado en el .m o en el .h de tu clase

#import "GAI.h"
#import "GAIDictionaryBuilder.h"

Luego, agregando el siguiente código, obtendremos una nueva medida en nuestras estadísticas.

 NSMutableDictionary *event = [[GAIDictionaryBuilder createEventWithCategory:@"Nombre de categoria"
                                            action:@"Nombre de acción o evento"
                                             label:@"Algún título"
                                             value:nil] build];
    [[GAI sharedInstance].defaultTracker send:event]; // Este obtiene el Tracker inicializado al comienzo
    [[GAI sharedInstance] dispatch]; // Para que lo envíe cuanto antes.

Espero que les sea de mucha utilidad como a mi.

Pueden encontrar  más información en los tutoriales oficiales de Google (https://developers.google.com/analytics/devguides/collection/ios/v3/?hl=es#setup-overview)

Ante cualquier duda o error, por favor no dejen de comentarlo

Deja un comentario