SDK de Google Analytics para iOS v1 (heredado)

El SDK de Google Analytics para aplicaciones para dispositivos móviles para iOS facilita la implementación de Google Analytics en aplicaciones basadas en iOS. En este documento, se describe cómo integrar el SDK en tus apps.

Descripción general del SDK

Este SDK usa un modelo de seguimiento diseñado para hacer un seguimiento de los usuarios a sitios web tradicionales y a la interacción con widgets en páginas web tradicionales. Por este motivo, los términos que se usan a continuación reflejan el modelo convencional de seguimiento de sitios web y se asignan al seguimiento de las aplicaciones para dispositivos móviles. Debes familiarizarte con el seguimiento de Analytics para comprender cómo funciona este SDK.

Usa el SDK de seguimiento para dispositivos móviles a fin de realizar un seguimiento de tus aplicaciones para teléfonos con los siguientes tipos de interacción de Analytics:

Seguimiento de vistas de página
Una vista de página es un medio estándar para medir el volumen de tráfico a un sitio web tradicional. Dado que las apps para dispositivos móviles no contienen páginas HTML, debes decidir cuándo (y con qué frecuencia) activar una solicitud de vista de página. Además, dado que las solicitudes de vistas de página están diseñadas para generar informes sobre las estructuras de directorio, debes proporcionar nombres descriptivos para las solicitudes a fin de aprovechar la denominación de la ruta de la página en los Informes de contenido de Analytics. Los nombres que elijas se propagarán en los informes de Analytics como rutas de la página aunque, en realidad, no sean páginas HTML. Puedes aprovechar esto si estructuras las rutas de acceso para proporcionar agrupaciones adicionales para las llamadas.
Seguimiento de eventos
En Analytics, los eventos están diseñados para hacer un seguimiento de la interacción del usuario con los elementos de la página web de manera diferenciada de las solicitudes de vistas de página. Puedes usar la función de seguimiento de eventos de Google Analytics para realizar llamadas adicionales que se informarán en la sección de seguimiento de eventos de la interfaz del informe de Analytics. Los eventos se agrupan mediante categorías y también pueden usar etiquetas por evento, lo que proporciona flexibilidad en los informes. Por ejemplo, una app multimedia podría tener acciones de reproducir/detener/pausar para su categoría de video y asignar una etiqueta a cada nombre de video. Luego, los informes de Google Analytics agregarían eventos para todos los eventos etiquetados con la categoría video. Para obtener más información sobre el seguimiento de eventos, consulta la Guía para el seguimiento de eventos
.
Seguimiento de comercio electrónico
Usa la función de seguimiento de comercio electrónico para realizar un seguimiento de las transacciones del carrito de compras y de las compras directas desde la aplicación. Para realizar el seguimiento de una transacción, llama al método addTransaction para crear una transacción general, así como al método addItem para cada producto en el carrito de compras. Una vez recopilados, los datos se pueden ver en la sección de informes de comercio electrónico de la interfaz de Google Analytics. Para obtener más información sobre el seguimiento de comercio electrónico, consulta la Guía para el seguimiento de comercio electrónico.
Variables personalizadas
Las variables personalizadas son etiquetas de par nombre-valor que puedes insertar en tu código de seguimiento para definir mejor el seguimiento de Google Analytics. Para obtener más información sobre cómo usar las variables personalizadas, consulta la Guía sobre variables personalizadas.
Compatibilidad con NoThumb
El SDK para iPhone ahora incluye una versión NoThumb de la biblioteca, así como la versión estándar de Thumb. Para usar la versión NoThumb de la biblioteca, usa el archivo libGoogleAnalytics_NoThumb.a en lugar del archivo libGoogleAnalytics.a.

Cómo comenzar

Requisitos

Si deseas integrar las funciones de seguimiento de Google Analytics con tu aplicación para iOS, necesitarás lo siguiente:

Configuración

  • Abre Xcode y crea un proyecto nuevo de iPhone OS.
  • Arrastra GANTracker.h y libGoogleAnalytics.a desde el directorio de bibliotecas del SDK hasta tu nuevo proyecto.
  • Incluye el framework CFNetwork en tu proyecto y vincúlalo con libsqlite3.0.dylib.

El SDK de Google Analytics para aplicaciones móviles debe funcionar con cualquier iPhone o iPod Touch que ejecute iOS 2.0 o versiones posteriores; la biblioteca es compatible con todas las versiones de iOS que admiten aplicaciones nativas.

Se incluye una aplicación de ejemplo con el SDK que demuestra cómo debería verse tu proyecto si se configuró correctamente. No dudes en utilizarla como plantilla para tus propias aplicaciones integradas con Analytics.

Usa el SDK

Antes de comenzar a utilizar el SDK, debes crear una cuenta gratuita en www.google.com/analytics y crear una nueva propiedad web en esa cuenta con una URL de sitio web falsa pero descriptiva (p.ej., http://mymobileapp.mywebsite.com). Una vez que crees la propiedad, anota o mantén una copia del ID de propiedad web que se genera para la propiedad recién creada.

Debe indicar a sus usuarios, ya sea en la aplicación o en las Condiciones del Servicio, que se reserva el derecho de realizar un seguimiento anónimo de la actividad de un usuario dentro de su aplicación y denunciarla. El uso que haga del SDK de Google Analytics también se rige por las Condiciones del Servicio de Google Analytics, que debe aceptar cuando se registre para obtener una cuenta.

Ejemplos y prácticas recomendadas

Puedes encontrar el código de muestra y las prácticas recomendadas en code.google.com, en el proyecto analytics-api-samples.

Biblioteca de EasyTracker

Hay una biblioteca de EasyTracker disponible. Proporciona seguimiento a nivel de la aplicación y de UIViewController casi sin ningún esfuerzo de desarrollo. Puedes encontrarlo en la sección Descargas del proyecto analytics-api-samples.

Cómo iniciar el seguimiento

Para iniciar el dispositivo de seguimiento, llama al método startTrackerWithAccountID en el singleton de seguimiento que se obtuvo a través de [GANTracker sharedTracker]. A menudo, es conveniente llamar a este método directamente en el método applicationDidFinishLaunching del delegado de tu app. Pasa el ID de propiedad web, el período de envío obligatorio y el delegado opcional. Por ejemplo:

#import "BasicExampleAppDelegate.h"

#import "GANTracker.h"

// Dispatch period in seconds
static const NSInteger kGANDispatchPeriodSec = 10;

@implementation BasicExampleAppDelegate

@synthesize window = window_;

- (void)applicationDidFinishLaunching:(UIApplication *)application {
  // **************************************************************************
  // PLEASE REPLACE WITH YOUR ACCOUNT DETAILS.
  // **************************************************************************
  [[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-0000000-1"
                                        dispatchPeriod:kGANDispatchPeriodSec
                                              delegate:nil];

  NSError *error;
  if (![[GANTracker sharedTracker] setCustomVariableAtIndex:1
                                                       name:@"iPhone1"
                                                      value:@"iv1"
                                                  withError:&error]) {
    // Handle error here
  }

  if (![[GANTracker sharedTracker] trackEvent:@"my_category"
                                       action:@"my_action"
                                        label:@"my_label"
                                        value:-1
                                   withError:&error]) {
    // Handle error here
  }

  if (![[GANTracker sharedTracker] trackPageview:@"/app_entry_point"
                                   withError:&error]) {
    // Handle error here
  }

  [window_ makeKeyAndVisible];
}

- (void)dealloc {
  [[GANTracker sharedTracker] stopTracker];
  [window_ release];
  [super dealloc];
}

@end

Seguimiento de vistas de página y eventos

Hacer un seguimiento de las vistas de página y los eventos es sencillo: simplemente llama al trackPageView del objeto de seguimiento cada vez que desees activar una vista de página. Llama a trackEvent para grabar un evento. Para obtener más información sobre las páginas vistas y los eventos, consulta la Descripción general del SDK más arriba.

Cómo usar variables personalizadas

Agregar una variable personalizada también es sencillo: solo usa el método setCustomVariableAtIndex que proporciona el SDK para dispositivos móviles. Te recomendamos que planifiques con anticipación qué índices se asignan a cada variable personalizada para que no reemplaces ninguna variable existente. Para obtener más información, consulta la Guía sobre variables personalizadas. Ten en cuenta que el método setCustomVariableAtIndex no envía datos directamente por sí solo. En su lugar, los datos se envían con la siguiente vista de página o evento con seguimiento. Debes llamar a setCustomVariableAtIndex antes de realizar un seguimiento de una vista de página o un evento. Ten en cuenta que el alcance predeterminado de las variables personalizadas se limita a la página.

Utiliza el seguimiento de comercio electrónico

Existen 4 métodos que puedes usar para habilitar el seguimiento de comercio electrónico en tu aplicación:

  • addTransaction
  • addItem
  • trackTransactions
  • clearTransactions

Llamar a addTransaction y addItem agrega la transacción o el elemento a un búfer de comercio electrónico interno, al que se pueden agregar más elementos y transacciones. Solo cuando llames a trackTransactions, las transacciones y los elementos se enviarán al despachador y se agregarán a la cola para enviarse a Google Analytics.

Para borrar el búfer, puedes llamar al método clearTransactions. Nota: No recuerda ninguna transacción que se haya enviado previamente al despachador ni ninguna transacción que ya haya recopilado Google Analytics.

Usa el siguiente código de muestra para comenzar.

  /**
   * The purchase was processed.  We will track the transaction and its associated line items
   * now, but only if the purchase has been confirmed.
   */
- (void) processPurchase:Purchase purchase {
  [[GANTracker sharedTracker] addTransaction:[purchase transactionId]
                                  totalPrice:[purchase totalPrice]
                                   storeName:[purchase store]
                                    totalTax:[purchase tax]
                                shippingCost:[purchase shipping]
                                   withError:&error];
  if (error) {
    // Handle error
  }
  for (PurchaseItem item in [purchase items]) {
    [[GANTracker sharedTracker] addItem:[purchase transactionId]
                                itemSKU:[item itemSKU]
                              itemPrice:[item price]
                              itemCount:[item count]
                           itemCategory:[item category]
                              withError:&error];
    if (error) {
      // Handle error
    }
  }

  if ([purchase isConfirmed]) {
    [[GANTracker sharedTracker] trackTransactions:&error];
  } else {
    // The purchase was denied or failed in some way.  We need to clear out
    // any data we've already put in the Ecommerce buffer.
    [[GANTracker sharedTracker] clearTransactions:&error];
  }
}

Para obtener más información sobre el comercio electrónico, consulta la Guía de seguimiento de comercio electrónico.

Anonimizar IP

Para anonimizar la información de IP del usuario, establece la propiedad anonymizeIp en YES. Esto le indica a Google Analytics que debe anonimizar la información que envía el SDK mediante la eliminación del último octeto de la dirección IP antes de su almacenamiento.

Este es un ejemplo de cómo configurarlo:

 [[GANTracker sharedTracker] setAnonymizeIp:YES];

Puedes configurar anonymizeIp en cualquier momento.

Configuración de la tasa de muestreo

Puedes establecer la tasa de muestreo con la propiedad sampleRate. Si tu aplicación genera mucho tráfico de Analytics, configurar la tasa de muestreo puede impedir que tus informes se generen con una muestra de datos. El muestreo se produce de manera coherente con usuarios únicos, por lo que hay integridad en las tendencias y en los informes cuando la tasa de muestreo está habilitada. El parámetro sampleRate es un NSUInteger y puede tener un valor entre 0 y 100, inclusive. A continuación, se muestra un ejemplo que reduce la sampleRate al 95%:

 [[GANTracker sharedTracker] setSampleRate:95];

Una tasa de 0 desactiva la generación de hits, mientras que una tasa de 100 envía todos los datos a Google Analytics. Es mejor configurar sampleRate antes de llamar a cualquier método de seguimiento.

Puedes obtener más información sobre el muestreo en la Guía de conceptos de muestreo.

Agrupación de hits en lotes

Para ahorrar en gastos de conexión y de batería, te recomendamos que envíes tus solicitudes de seguimiento por lotes. Puedes llamar a dispatch en el objeto de seguimiento cada vez que desees realizar una solicitud por lotes, ya sea de forma manual o en intervalos de tiempo específicos.

Problemas conocidos

  • Referencias/fuentes de tráfico: Actualmente, no es posible realizar un seguimiento de la fuente de la campaña o de la referencia de la descarga de una aplicación en un dispositivo iOS.
  • No recomendamos llamar a dispatch en las siguientes situaciones:
    • En el método applicationWillTerminate
    • En el applicationDidEnterBackground
    • Antes de llamar a stopTracker
    Si lo haces, es posible que se envíen dos veces los hits. En su lugar, usa el método dispatchSynchronous:.
  • Llamar a los métodos GANTracker en diferentes subprocesos puede generar errores de SQLite ocultos. Asegúrate de realizar todas las llamadas desde la misma conversación.
  • Seguimiento de campañas

    Seguimiento general de campañas

    Con la versión 1.3 del SDK de Google Analytics para iOS, ahora puedes realizar un seguimiento de las referencias de las campañas. Por ejemplo, si tu aplicación implementa un esquema de URL personalizada, puedes crear una URL que contenga los parámetros de consulta de la campaña. Cuando se inicia tu aplicación en respuesta a esa URL, puedes recuperar los parámetros de consulta y pasarlos a setReferrer para que la información se almacene en Google Analytics.

    Para establecer la información de referencia de la campaña, usa el método setReferrer de la siguiente manera:

      [[GANTracker sharedTracker] setReferrer:referrer withError:&error];
    

    Existen dos restricciones para el uso de esta función. Primero, debes llamar a startTrackerWithAccountID antes de llamar a setReferrer. Debes hacerlo porque la base de datos SQLite que usa Google Analytics no está configurada antes de llamar a startTrackerWithAccountID, y setReferrer necesita esa base de datos. Si no llamaste a startTrackerWithAccountID, se mostrará un error.

    La segunda restricción es que la cadena de referencia que se pasa a setReferrer debe seguir un formato específico. Debe tener la forma de un conjunto de parámetros de URL y debe incluir, al menos, un parámetro gclid o uno de cada uno de los parámetros utm_campaign, utm_medium y utm_source. En el último caso, también puede tener los parámetros utm_term y utm_content.

    El parámetro gclid forma parte de la función de etiquetado automático que vincula automáticamente Google Analytics con Google Ads. Una referencia de campaña de muestra con el etiquetado automático podría verse de la siguiente manera:

    referrer = @“gclid=gclidValue”;
    

    La cadena de referencia de la campaña manual podría ser similar a la siguiente:

    referrer = @“utm_campaign=campaign&utm_source=source&utm_medium=medium&utm_term=term&utm_content=content”;
    

    Si pasas una cadena de referencia con formato incorrecto a setReferrer, la información de referencia no se cambiará y obtendrás un valor falso. Un valor que se muestra con el valor "true" indica que la URL de referencia se actualizó y se agregará a cada hit de ahora en adelante. También se mostrará un error que puedes inspeccionar para obtener detalles sobre lo que salió mal en caso de que la llamada falle.

    Además, ten en cuenta que se iniciará una nueva sesión cuando llames a setReferrer y el resultado será verdadero.

    Parámetro Obligatorio Descripción Ejemplos
    utm_campaign Nombre de la campaña; se utiliza para el análisis de palabras clave para identificar la promoción de un producto específico o una campaña estratégica utm_campaign=spring_sale
    utm_source Fuente de la campaña; se utiliza para identificar un motor de búsqueda, un boletín informativo o cualquier otra fuente utm_source=google
    utm_medium Medio de la campaña; se usa para identificar un medio, como el correo electrónico o el costo por clic (cpc) utm_medium=cpc
    utm_term No Término de la campaña; se utiliza con la búsqueda pagada para proporcionar las palabras clave para los anuncios utm_term=running+shoes
    utm_content No Contenido de la campaña; se utiliza para pruebas A/B y anuncios segmentados por contenido para diferenciar los anuncios o vínculos que dirigen a la misma URL utm_content=logolink
    utm_content=textlink