En este documento, se proporciona una descripción general de algunas de las funciones de configuración avanzadas del SDK de Google Analytics versión 4 para Android.
Descripción general
La versión 4 del SDK de Google Analytics para Android proporciona una clase Tracker
para configurar y enviar datos a Google Analytics, y un singleton GoogleAnalytics
que funciona como interfaz para los valores de configuración globales de tu implementación.
Inicialización
Antes de que se puedan medir datos, debes inicializar al menos un rastreador
con el singleton GoogleAnalytics
. Para ello, proporciona un objeto
Context
y un ID de propiedad de Google Analytics. Para obtener más información, consulta la
referencia de Google Analytics.
Uso de un archivo de configuración
También es posible inicializar un rastreador mediante un archivo de configuración. Por ejemplo:
package com.google.android.apps.mobileplayground; import android.app.Application; import com.google.android.gms.analytics.GoogleAnalytics; import com.google.android.gms.analytics.Tracker; import java.util.HashMap; /** * An extension to Application class to provide tracker for analytics purposes. Having the tracker * instances here allows all the activities to access the same tracker instances. The trackers can * be initialised on startup or when they are required based on performance requirements. */ public class AnalyticsSampleApp extends Application { // The following line should be changed to include the correct property id. private static final String PROPERTY_ID = "UA-XXXXX-Y"; /** * Enum used to identify the tracker that needs to be used for tracking. * * A single tracker is usually enough for most purposes. In case you do need multiple trackers, * storing them all in Application object helps ensure that they are created only once per * application instance. */ public enum TrackerName { APP_TRACKER, // Tracker used only in this app. GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking. ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company. } HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>(); public AnalyticsSampleApp() { super(); } synchronized Tracker getTracker(TrackerName trackerId) { if (!mTrackers.containsKey(trackerId)) { GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID) : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker) : analytics.newTracker(R.xml.ecommerce_tracker); mTrackers.put(trackerId, t); } return mTrackers.get(trackerId); } }
Configura y envía datos
Los datos se envían a Google Analytics mediante compiladores para establecer pares de parámetros y valores
que los envían a través del método send
de la
herramienta de seguimiento.
En el siguiente ejemplo, se muestra cómo enviar una vista de pantalla a Google Analytics creando una vista de app y llamando al método de envío de segmentos:
// Get tracker. Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); // Set screen name. t.setScreenName(screenName); // Send a screen view. t.send(new HitBuilders.ScreenViewBuilder().build());
Sintaxis y enumeración del protocolo de medición
Puedes usar la sintaxis de unión del Protocolo de medición para establecer valores en un solo hit con un HitBuilders.ScreenViewBuilder
. Para establecer valores en todos los hits posteriores, usa el objeto de seguimiento.
// Setting the content description field on a single hit using ampersand syntax. tracker.send(new HitBuilders.ScreenViewBuilder() .set("&cd", "Home Screen") .build() );
Para obtener una lista completa de los parámetros del Protocolo de medición disponibles, consulta la Referencia de los parámetros del Protocolo de medición.
Aplicación de valores a varios hits
Cualquier valor configurado directamente en la herramienta de seguimiento se conservará y se aplicará a varios hits, como en este ejemplo:
// Get tracker. Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); // Set screen name. t.setScreenName(screenName); // Send a screen view. t.send(new HitBuilders.ScreenViewBuilder().build()); // This event will also be sent with the most recently set screen name. // Build and send an Event. t.send(new HitBuilders.EventBuilder() .setCategory(getString(categoryId)) .setAction(getString(actionId)) .setLabel(getString(labelId)) .build()); // Clear the screen name field when we're done. t.setScreenName(null);
Solo los valores que deseas conservar en varios hits deben configurarse directamente en el segmento. Establecer un nombre de pantalla en un dispositivo de rastreo tendría sentido, ya que se puede aplicar el mismo valor a las visitas de pantalla y a las visitas al evento posteriores. Sin embargo, no se recomienda configurar un campo como el tipo de hit en el rastreador, ya que es probable que cambie con cada hit.
Uso de varios monitores
En tu aplicación para dispositivos móviles, puedes usar varios rastreadores para enviar datos a diferentes propiedades:
public class MyApp extends Application { public void initTrackers() { GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); globalTracker = analytics.newTracker(R.xml.global_tracker); ecommerceTracker = analytics.newTracker(R.xml.ecommerce_tracker); } public static Tracker globalTracker; public static Tracker ecommerceTracker; ... }
Si bien tu aplicación para dispositivos móviles puede tener varias herramientas de seguimiento, puedes usar solo una para informar excepciones no detectadas llamando al método enableExceptionReporting()
en la herramienta de seguimiento.
Muestreo
Puedes habilitar el muestreo del cliente para limitar la cantidad de hits que se envían a Google Analytics. Si tu app tiene una gran cantidad de usuarios o envía un gran volumen de datos a Google Analytics, habilitar el muestreo ayudará a garantizar informes sin interrupciones.
Por ejemplo, para habilitar el muestreo del cliente a una tasa del 50%, usa el siguiente parámetro en el archivo de configuración:
<string name="ga_sampleFrequency">50.0</string>
Para habilitar el muestreo del cliente de manera programática para un rastreador, haz lo siguiente:
mTracker.setSampleRate(50.0d);
Inhabilitar a nivel de la app
Puedes habilitar una marca de inhabilitación a nivel de la app que inhabilitará Google Analytics
en toda la app. Ten en cuenta que esta marca se debe establecer cada vez que se inicie la app
y, de forma predeterminada, será false
.
Para obtener la configuración de inhabilitación a nivel de la app, usa lo siguiente:
boolean isOptedOut = GoogleAnalytics.getInstance(this).getAppOptOut();
Para establecer la inhabilitación a nivel de la app, utiliza lo siguiente:
GoogleAnalytics.getInstance(this).setAppOptOut(true);
En una implementación típica, una app puede detectar un cambio en SharedPreferences
y actualizar el parámetro de configuración de inhabilitación de Google Analytics según corresponda:
SharedPreferences userPrefs = PreferenceManager.getDefaultSharedPreferences(this); userPrefs.registerOnSharedPreferenceChangeListener(new SharedPreferences.OnSharedPreferenceChangeListener () { @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (key.equals(TRACKING_PREF_KEY)) { GoogleAnalytics.getInstance(getApplicationContext()).setAppOptOut(sharedPreferences.getBoolean(key, false)); } else { // Any additional changed preference handling. } } });
Cómo borrar datos de usuario del cliente
Si necesitas restablecer o borrar los datos del cliente de Google Analytics para tus usuarios finales, puedes borrar el archivo de ID de cliente.
Si borras el archivo gaClientId, se forzará la generación de un nuevo ID de cliente, y todos los hits posteriores usarán el nuevo. Los datos anteriores no se asociarán con el nuevo ID de cliente.
Para borrar el archivo gaClientId, usa el método Context.deleteFile
:
context.deleteFile("gaClientId");
Anonimizar IP
Habilitar la función de anonimización de IP le indica a Google Analytics que anonimice la información de IP que envía el SDK mediante la eliminación del último octeto de la dirección IP antes de su almacenamiento.
Para habilitar la funcionalidad de IP anónima, usa el siguiente parámetro en tu archivo de configuración:
<string name="ga_anonymizeIp">true</string>
Si quieres habilitar la funcionalidad de IP anónima de forma programática para un rastreador, usa el método
setAnonymizeIp
:
mTracker.setAnonymizeIp(true)
Se puede llamar al método setAnonymizeIp
en cualquier momento.
Pruebas y depuración
La versión 4 del SDK de Google Analytics para Android proporciona herramientas para facilitar las pruebas y la depuración.
Ejecución de prueba
El SDK proporciona una marca dryRun
que, cuando se configura, evita que
se envíen datos a Google Analytics. La marca dryRun
debe establecerse cada vez que pruebas o depuras una implementación y no deseas que los datos de prueba aparezcan en los informes de Google Analytics.
Para configurar la marca de ejecución de prueba, haz lo siguiente:
// When dry run is set, hits will not be dispatched, but will still be logged as // though they were dispatched. GoogleAnalytics.getInstance(this).setDryRun(true);
Logger
Google Analytics realizará registros en logcat con la etiqueta GAv4 mediante el sistema
Log
de Android. De forma predeterminada, solo los niveles ERROR, WARN e INFO están
habilitados. Para habilitar el nivel DEPURACIÓN, ejecuta el siguiente comando adb en tu dispositivo o emulador:
adb shell setprop log.tag.GAv4 DEBUG
Para ver solo los mensajes de Google Analytics de logcat, usa el siguiente comando:
adb logcat -v time -s GAv4
Para obtener más información, consulta la referencia de Google Analytics Logger.