Android analytics v4 más simplificado
Estoy intentando conectar google Analytics a mis aplicaciones de la manera más sencilla posible. Quiero implementar la analítica v4, porque google dijo que van a obligar a actualizar a ella pronto, por lo que no quiero hacer dos veces el mismo trabajo.
Tutorial de Google, en este caso, no es muy eficiente. Mezclando lo que dijeron allí y lo que he encontrado en el Internet, he hecho estos pasos:
- Google Analytics V2 no registra las estadísticas de la aplicación de Android
- Google Analytics V2 SDK para Android EasyTracker dando errores
- Exportar informe con la Consola del programador - "Guardar los visitantes de la lista"
- Adjuntar métrica personalizada a HitBuilders.TransactionBuilder en Android Analytics v4
- Uso de datos por google analytics
En Android Manifest, he añadido los siguientes permisos:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Y esto, bajo la etiqueta de aplicación:
<meta-data android:name="com.google.android.gms.analytics.globalConfigResource" android:resource="@xml/analytics" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
No estoy seguro de la necesidad de la segunda meta …
He escrito un archivo xml, llamado "analytics.xml" (/ res / xml /) que contiene:
<!-- the Local LogLevel for Analytics --> <string name="ga_logLevel">verbose</string> <!-- Treat events as test events and don't send to google --> <bool name="ga_dryRun">false</bool> <!-- <integer name="ga_sessionTimeout">300</integer> --> <!-- Enable automatic Activity measurement --> <bool name="ga_autoActivityTracking">true</bool> <!-- Enable automatic exception tracking --> <bool name="ga_reportUncaughtExceptions">true</bool> <string name="ga_trackingId">UA-52900555-1</string> <!-- The screen names that will appear in reports --> <screenName name="com.maik.adbconnect.EmpityActivity"> Adb Activation </screenName> <screenName name="com.maik.adbconnect.wid_class"> Widget call </screenName>
Ahora, en EmpityActivity.java, he escrito esto, al principio del método onCreate:
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); Tracker t = analytics.newTracker(R.xml.analytics); t.send(new HitBuilders.AppViewBuilder().build());
En LogCat, analytics dice que se inicia y acierta … pero en mi revisión analítica, bajo "usuarios en tiempo real", dice cero ….
Preguntas adicionales:
-
Screennames en el archivo xml son necesarios?
-
Ga_logLevel y ga_dryRun están obsoletos? Porque logcat me advierte que esos recursos no son reconocidos
- Google Analytucs v4 Android No se encontraron datos de la campaña
- Google Analytics en Android - filtrar el dispositivo de prueba
- Analytics v4 excepciones no captadas y proguard
- Google Analytics - Seguimiento desconocido
- Eventos personalizados de Firebase
- ¿Cuál es el propósito de tener dos HitBuilders diferentes (Social y Evento)?
- Notificación adecuada de los usuarios finales de Google Analytics
- EXCEPCIÓN FATAL: main java.lang.NoClassDefFoundError: com.google.analytics.tracking.android.EasyTracker
La forma más sencilla de configurar Google Analytic v4 es usar código Java y configurar un único rastreador de Application.onCreate (). Esta es también la forma más rápida y segura de configurar Analytics. Tu código sería así:
public class MyApp extends Application { private final String TRACKER_ID = "UA-54994796-4"; private static GoogleAnalytics analytics; private static Tracker tracker; public static GoogleAnalytics analytics() {return analytics;} public static Tracker tracker() {return tracker;} @Override public void onCreate() { super.onCreate(); analytics = GoogleAnalytics.getInstance(this); analytics.getLogger().setLogLevel(Logger.LogLevel.VERBOSE); tracker = analytics.newTracker("UA-00000000-1"); tracker.enableExceptionReporting(true); tracker.enableAutoActivityTracking(true); } }
Para enviar un evento desde cualquier lugar de tu aplicación, puedes utilizar:
MyApp.tracker().send(new HitBuilders.EventBuilder( "some category", " some action").build());
También necesitas unos pocos cambios en tu ApplicationManifest.xml:
<manifest> ... <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> ... <application android:name=".MyApp"> ... </application> ... </manifest>
Me quedaría lejos de usar cualquier archivo de configuración XML como su fácil de obtener la configuración XML equivocado. La configuración desde Java tiene el beneficio de que el compilador valide sus llamadas. El uso de código para configurar su Analytics también es más rápido ya que evita la sobrecarga de análisis XML.
Los nombres de pantalla son opcionales. Usted puede pegarse con el uso de nombres de clase. Su informe mostrará los nombres de las clases en lugar de nombres más amigables para el usuario, pero es más sencillo evitar el mapeo extra.
DryRun y logLevel no se deprecian a partir de Google Play Services 7.0. Está utilizando un nombre incorrecto, siempre que el valor incorrecto de los coloca en la sección incorrecta del XML. Este es el problema con la configuración XML. Solo hay una validación de tiempo de ejecución limitada y es fácil hacer las cosas mal y no notar el problema.
- Calcular la relación de aspecto de la imagen de destino Transformar perspectiva
- Crear archivo JSON en línea y obtener URL