Puede exportar sus datos de Crashlytics a BigQuery para su posterior análisis. BigQuery le permite analizar los datos usando BigQuery SQL, exportarlos a otro proveedor de la nube y usarlos para visualización y paneles personalizados con Google Data Studio.
Habilitar la exportación de BigQuery
- Vaya a la página Integraciones en Firebase console.
- En la tarjeta de BigQuery , haz clic en Enlace .
- Siga las instrucciones que aparecen en pantalla para habilitar BigQuery.
Cuando vinculas tu proyecto a BigQuery:
- Firebase configura sincronizaciones diarias de tus datos desde tu proyecto de Firebase con BigQuery.
- De forma predeterminada, todas las aplicaciones de tu proyecto están vinculadas a BigQuery y cualquier aplicación que agregues posteriormente al proyecto se vincula automáticamente a BigQuery. Puedes administrar qué aplicaciones envían datos .
- Firebase exporta una copia de tus datos existentes a BigQuery. Para cada aplicación vinculada, esto incluye una tabla por lotes que contiene los datos de la sincronización diaria.
- Si habilita la exportación de streaming de Crashlytics BigQuery, todas las aplicaciones vinculadas también tendrán una tabla en tiempo real que contiene datos que se actualizan constantemente.
Para desactivar la exportación de BigQuery, desvincula tu proyecto en Firebase console.
¿Qué datos se exportan a BigQuery?
Los datos de Firebase Crashlytics se exportan a un conjunto de datos de BigQuery denominado firebase_crashlytics
. De forma predeterminada, se crearán tablas individuales dentro del conjunto de datos de Crashlytics para cada aplicación de su proyecto. Firebase nombra las tablas según el identificador del paquete de la aplicación, con puntos convertidos en guiones bajos y un nombre de plataforma agregado al final.
Por ejemplo, los datos de una aplicación con el ID com.google.test
estarían en una tabla denominada com_google_test_ANDROID
. Esta tabla de lotes se actualiza una vez al día. Si habilitas la exportación de streaming de Crashlytics BigQuery, los datos de Firebase Crashlytics también se transmitirán en tiempo real a com_google_test_ANDROID_REALTIME
.
Cada fila de una tabla representa un evento que ocurrió en la aplicación, incluidos bloqueos, errores no fatales y ANR.
Habilitar la exportación de streaming de Crashlytics BigQuery
Puedes transmitir tus datos de Crashlytics en tiempo real con BigQueryStreaming . Puede usarlo para cualquier propósito que requiera datos en vivo, como presentar información en un panel en vivo, ver una implementación en vivo o monitorear problemas de aplicaciones que activan alertas y flujos de trabajo personalizados.
La exportación de streaming de Crashlytics BigQuery no está disponible para el entorno aislado de BigQuery.
Cuando habilitas la exportación de streaming de Crashlytics BigQuery, además de la tabla por lotes, tendrás una tabla en tiempo real. Estas son las diferencias que debe tener en cuenta entre las tablas:
Tabla de lotes | Tabla en tiempo real |
---|---|
|
|
La tabla de lotes es ideal para análisis a largo plazo e identificación de tendencias a lo largo del tiempo porque almacenamos eventos de forma duradera antes de escribirlos y se pueden rellenar en la tabla hasta por 90 días. Cuando escribimos datos en su tabla en tiempo real, los escribimos inmediatamente en BigQuery, por lo que es ideal para paneles en vivo y alertas personalizadas. Estas dos tablas se pueden combinar con una consulta de unión para obtener los beneficios de ambas. Consulte el ejemplo de consulta 9 a continuación.
De forma predeterminada, la tabla en tiempo real tiene un tiempo de vencimiento de partición de 30 días. Para saber cómo modificar esto, consulte Actualización de la caducidad de la partición .
Habilitar la transmisión de Crashlytics BigQuery
Para habilitar la transmisión, navegue hasta la sección Crashlytics de la página de integraciones de BigQuery y seleccione la casilla Incluir transmisión .
Plantilla de estudio de datos
Para habilitar datos en tiempo real en su plantilla de Data Studio, siga las instrucciones en Visualización de datos exportados de Crashlytics con Data Studio .
Puntos de vista
Puedes convertir las consultas de ejemplo siguientes en vistas mediante la interfaz de usuario de BigQuery. Consulte Crear vistas para obtener instrucciones detalladas.
¿Qué puedes hacer con los datos exportados?
Las exportaciones de BigQuery contienen datos de fallas sin procesar, incluido el tipo de dispositivo, el sistema operativo, excepciones (aplicaciones de Android) o errores (aplicaciones de Apple) y registros de Crashlytics, así como otros datos.
Trabajar con datos de Firebase Crashlytics en BigQuery
Los siguientes ejemplos demuestran consultas que puede ejecutar en sus datos de Crashlytics. Estas consultas generan informes que no están disponibles en el panel de Crashlytics.
Ejemplos de consultas de Crashlytics
Los siguientes ejemplos demuestran cómo generar informes que agregan datos de eventos de accidentes en resúmenes más fáciles de entender.
Ejemplo 1: accidentes por día
Después de trabajar para corregir tantos errores como sea posible, un desarrollador líder cree que su equipo finalmente está listo para lanzar su nueva aplicación para compartir fotos. Antes de hacerlo, quieren verificar la cantidad de fallas por día durante el último mes, para asegurarse de que su bug-bash hizo que la aplicación sea más estable con el tiempo:
SELECT COUNT(DISTINCT event_id) AS number_of_crashes, FORMAT_TIMESTAMP("%F", event_timestamp) AS date_of_crashes FROM `projectId.firebase_crashlytics.package_name_ANDROID` GROUP BY date_of_crashes ORDER BY date_of_crashes DESC LIMIT 30;
Ejemplo 2: encontrar los fallos más generalizados
Para priorizar adecuadamente los planes de producción, un director de proyecto reflexiona sobre cómo señalar los 10 fallos más generalizados de su producto. Producen una consulta que proporciona los puntos de datos pertinentes:
SELECT DISTINCT issue_id, COUNT(DISTINCT event_id) AS number_of_crashes, COUNT(DISTINCT installation_uuid) AS number_of_impacted_user, blame_frame.file, blame_frame.line FROM `projectId.firebase_crashlytics.package_name_ANDROID` WHERE event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(),INTERVAL 168 HOUR) AND event_timestamp < CURRENT_TIMESTAMP() GROUP BY issue_id, blame_frame.file, blame_frame.line ORDER BY number_of_crashes DESC LIMIT 10;
Ejemplo 3: Los 10 principales dispositivos que fallan
¡El otoño es la nueva temporada telefónica! Un desarrollador sabe que eso también significa que es temporada de nuevos problemas específicos de dispositivos. Para adelantarse a los problemas de compatibilidad que se avecinan, elaboraron una consulta que identifica los 10 dispositivos que experimentaron la mayor cantidad de fallas la semana pasada:
SELECT device.model, COUNT(DISTINCT event_id) AS number_of_crashes FROM `projectId.firebase_crashlytics.package_name_ANDROID` WHERE event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 168 HOUR) AND event_timestamp < CURRENT_TIMESTAMP() GROUP BY device.model ORDER BY number_of_crashes DESC LIMIT 10;
Ejemplo 4: Filtrar por clave personalizada
Un desarrollador de juegos quiere saber qué nivel de su juego experimenta más fallas. Para ayudarles a realizar un seguimiento de esa estadística, establecen una clave de Crashlytics personalizada current_level
y la actualizan cada vez que el usuario alcanza un nuevo nivel.
C objetivo
CrashlyticsKit setIntValue:3 forKey:@"current_level";
Rápido
Crashlytics.sharedInstance().setIntValue(3, forKey: "current_level");
Java
Crashlytics.setInt("current_level", 3);
Con esa clave en su exportación de BigQuery, luego escriben una consulta para informar la distribución de los valores current_level
asociados con cada evento de falla:
SELECT COUNT(DISTINCT event_id) AS num_of_crashes, value FROM `projectId.firebase_crashlytics.package_name_ANDROID` UNNEST(custom_keys) WHERE key = "current_level" GROUP BY key, value ORDER BY num_of_crashes DESC
Ejemplo 5: extracción de ID de usuario
Un desarrollador tiene una aplicación en acceso anticipado. A la mayoría de sus usuarios les encanta, pero tres han experimentado una cantidad inusual de fallas. Para llegar al fondo del problema, escriben una consulta que extrae todos los eventos de bloqueo de esos usuarios, utilizando sus ID de usuario:
SELECT * FROM `projectId.firebase_crashlytics.package_name_ANDROID` WHERE user.id IN ("userid1", "userid2", "userid3") ORDER BY user.id
Ejemplo 6: encontrar todos los usuarios que enfrentan un problema de falla particular
Un desarrollador ha publicado un error crítico a un grupo de probadores beta. El equipo pudo utilizar la consulta del Ejemplo 2 anterior para identificar el ID del problema de bloqueo específico. Ahora les gustaría ejecutar una consulta para extraer la lista de usuarios de la aplicación que se vieron afectados por este bloqueo:
SELECT user.id as user_id FROM `projectId.firebase_crashlytics.package_name_ANDROID` WHERE issue_id = "YOUR_ISSUE_ID" AND application.display_version = "" AND user.id != "" ORDER BY user.id;
Ejemplo 7: Número de usuarios afectados por un problema de bloqueo, desglosado por país
Ahora el equipo ha detectado un error crítico durante el lanzamiento de una nueva versión. Pudieron utilizar la consulta del ejemplo 2 anterior para identificar el ID del problema de bloqueo específico. Al equipo ahora le gustaría ver si este fallo se ha extendido a usuarios de diferentes países del mundo.
Para escribir esta consulta, el equipo deberá:
Habilite las exportaciones de BigQuery para Google Analytics. Consulta Exportar datos del proyecto a BigQuery .
Actualice su aplicación para pasar un ID de usuario tanto al SDK de Google Analytics como al SDK de Crashlytics.
C objetivo
CrashlyticsKit setUserIdentifier:@"123456789"; FIRAnalytics setUserID:@"12345678 9";
Rápido
Crashlytics.sharedInstance().setUserIdentifier("123456789"); Analytics.setUserID("123456789");
Java
Crashlytics.setUserIdentifier("123456789"); mFirebaseAnalytics.setUserId("123456789");
Escriba una consulta que utilice el campo ID de usuario para unir eventos en el conjunto de datos de BigQuery de Google Analytics con fallas en el conjunto de datos de BigQuery de Crashlytics:
SELECT DISTINCT c.issue_id, a.geo.country, COUNT(DISTINCT c.user.id) as num_users_impacted FROM `projectId.firebase_crashlytics.package_name_ANDROID` c INNER JOIN `projectId.analytics_YOUR_TABLE.events_*` a on c.user.id = a.user_id WHERE c.issue_id = "YOUR_ISSUE_ID" AND a._TABLE_SUFFIX BETWEEN '20190101' AND '20200101' GROUP BY c.issue_id, a.geo.country, c.user.id
Ejemplo 8: Los cinco problemas principales hasta el momento
Requiere habilitar la exportación de streaming de Crashlytics BigQuery
SELECT issue_id, COUNT(DISTINCT event_id) AS events FROM `your_project.firebase_crashlytics.package_name_ANDROID_REALTIME` WHERE DATE(event_timestamp) = CURRENT_DATE() GROUP BY issue_id ORDER BY events DESC LIMIT 5;
Ejemplo 9: 5 problemas principales desde la FECHA, incluido hoy
Requiere habilitar la exportación de streaming de Crashlytics BigQuery.
En este ejemplo, combinamos tablas por lotes y en tiempo real para agregar información en tiempo real a los datos por lotes confiables. Dado que event_id
es una clave principal, podemos usar DISTINCT event_id
para deduplicar cualquier evento común de las dos tablas.
SELECT issue_id, COUNT(DISTINCT event_id) AS events FROM ( SELECT issue_id, event_id, event_timestamp FROM `your_project.firebase_crashlytics.package_name_ANDROID_REALTIME` UNION ALL SELECT issue_id, event_id, event_timestamp FROM `your_project.firebase_crashlytics.package_name_ANDROID`) WHERE event_timestamp >= "2020-01-13" GROUP BY issue_id ORDER BY events DESC LIMIT 5;
Comprender el esquema de Firebase Crashlytics en BigQuery
Cuando vinculas Crashlytics con BigQuery, Firebase exporta eventos recientes (bloqueos, errores no fatales y ANR), incluidos eventos de hasta dos días antes del vínculo, con la opción de reponer hasta noventa días.
Desde ese momento hasta que deshabilites el enlace, Firebase exporta eventos de Crashlytics diariamente. Los datos pueden tardar unos minutos en estar disponibles en BigQuery después de cada exportación.
Conjuntos de datos
Firebase Crashlytics crea un nuevo conjunto de datos en BigQuery para datos de Crashlytics. El conjunto de datos cubre todo su proyecto, incluso si tiene varias aplicaciones.
Mesas
Firebase Crashlytics crea una tabla en el conjunto de datos para cada aplicación de tu proyecto, a menos que hayas optado por no exportar datos para esa aplicación. Firebase nombra las tablas según el identificador del paquete de la aplicación, con puntos convertidos en guiones bajos y un nombre de plataforma agregado al final.
Por ejemplo, los datos de una aplicación de Android con el ID com.google.test
estarían en una tabla denominada com_google_test_ANDROID
y los datos en tiempo real (si están habilitados) estarían en una tabla denominada com_google_test_ANDROID_REALTIME
Las tablas contienen un conjunto estándar de datos de Crashlytics además de las claves de Crashlytics personalizadas definidas por los desarrolladores.
Filas
Cada fila de una tabla representa un error que encontró la aplicación.
columnas
Las columnas de una tabla son idénticas para fallas, errores no fatales y ANR. Si la exportación de streaming de Crashlytics BigQuery está habilitada, la tabla en tiempo real tendrá las mismas columnas que la tabla por lotes. Las columnas dentro de la exportación se enumeran a continuación.
Sin rastros de pila
Columnas presentes en filas que representan eventos sin seguimientos de pila.
Nombre del campo | Tipo de datos | Descripción |
---|---|---|
plataforma | CADENA | Aplicaciones de Apple o Android |
identificador_paquete | CADENA | El ID del paquete, por ejemplo, com.google.gmail |
id_evento | CADENA | Una identificación única para el evento. |
es_fatal | BOOLEANO | Si la aplicación falló |
tipo_error | CADENA | Tipo de error del evento (FATAL, NON_FATAL, ANR) |
id_problema | CADENA | El problema asociado con el evento. |
id_variante | CADENA | La variante del problema asociada con este evento. Tenga en cuenta que no todos los eventos tienen una variante de problema asociada. |
marca_hora_evento | MARCA DE TIEMPO | Cuando ocurrió el evento |
dispositivo | REGISTRO | El dispositivo en el que ocurrió el evento |
fabricante del dispositivo | CADENA | El fabricante del dispositivo |
modelo.de.dispositivo | CADENA | El modelo del dispositivo |
dispositivo.arquitectura | CADENA | X86_32, X86_64, ARMV7, ARM64, ARMV7S o ARMV7K |
memoria | REGISTRO | El estado de la memoria del dispositivo. |
memoria usada | INT64 | Bytes de memoria utilizados |
memoria.libre | INT64 | Bytes de memoria restantes |
almacenamiento | REGISTRO | El almacenamiento persistente del dispositivo. |
almacenamiento.usado | INT64 | Bytes de almacenamiento utilizados |
almacenamiento.gratuito | INT64 | Bytes de almacenamiento restantes |
Sistema operativo | REGISTRO | Los detalles del sistema operativo en el dispositivo. |
sistema_operativo.versión_pantalla | CADENA | La versión del sistema operativo en el dispositivo. |
sistema_operativo.nombre | CADENA | El nombre del sistema operativo en el dispositivo. |
sistema_operativo.estado_modificación | CADENA | Si el dispositivo ha sido modificado, por ejemplo liberado/rooteado (MODIFICADO o SIN MODIFICAR) |
sistema_operativo.tipo | CADENA | El tipo de sistema operativo que se ejecuta en el dispositivo (por ejemplo, IOS, MACOS); sólo disponible para aplicaciones de plataformas Apple |
sistema_operativo.tipo_dispositivo | CADENA | El tipo de dispositivo (por ejemplo, MÓVIL, TABLETA, TV, etc.); también conocida como "categoría de dispositivo" |
solicitud | REGISTRO | La aplicación que generó el evento. |
aplicación.build_version | CADENA | La versión de compilación de la aplicación. |
aplicación.display_version | CADENA | |
usuario | REGISTRO | Opcional: información recopilada sobre el usuario de la aplicación. |
nombre de usuario | CADENA | Opcional: el nombre del usuario. |
usuario.correo electrónico | CADENA | Opcional: la dirección de correo electrónico del usuario. |
usuario.id | CADENA | Opcional: una identificación específica de la aplicación asociada con el usuario |
llaves_personalizadas | REGISTRO REPETIDO | Pares clave-valor definidos por el desarrollador |
claves_personalizadas.clave | CADENA | Una clave definida por el desarrollador |
claves_personalizadas.valor | CADENA | Un valor definido por el desarrollador |
instalación_uuid | CADENA | Una identificación que identifica una instalación única de aplicación y dispositivo |
crashlytics_sdk_versions | CADENA | La versión del SDK de Crashlytics que generó el evento. |
orientación_aplicación | CADENA | RETRATO, PAISAJE, CARA ARRIBA o CARA ABAJO |
orientación_dispositivo | CADENA | RETRATO, PAISAJE, CARA ARRIBA o CARA ABAJO |
estado_proceso | CADENA | ANTECEDENTES o PRIMER PLANO |
registros | REGISTRO REPETIDO | Mensajes de registro con marca de tiempo generados por el registrador de Crashlytics, si está habilitado |
registros.marca de tiempo | MARCA DE TIEMPO | Cuando se hizo el registro |
registros.mensaje | CADENA | El mensaje registrado |
migas de pan | REGISTRO REPETIDO | Rutas de navegación de Google Analytics con marca de tiempo, si están habilitadas |
migas de pan.marca de tiempo | MARCA DE TIEMPO | La marca de tiempo asociada con la ruta de navegación. |
migas de pan.nombre | CADENA | El nombre asociado con la ruta de navegación. |
migas de pan.params | REGISTRO REPETIDO | Parámetros asociados a la ruta de navegación |
migas de pan.params.key | CADENA | Una clave de parámetro asociada con la ruta de navegación |
migas de pan.params.valor | CADENA | Un valor de parámetro asociado con la ruta de navegación. |
marco_culpa | REGISTRO | El marco identificado como la causa raíz del bloqueo o error. |
marco_culpa.line | INT64 | El número de línea del archivo del marco. |
culpa_frame.archivo | CADENA | El nombre del archivo de marco. |
marco_culpa.símbolo | CADENA | El símbolo hidratado, o símbolo crudo si no es hidratable. |
culpa_frame.offset | INT64 | El desplazamiento de bytes en la imagen binaria que contiene el código, sin configurar para excepciones de Java |
dirección_cuadro_culpa | INT64 | La dirección en la imagen binaria que contiene el código, no configurada para marcos Java. |
culpa_frame.biblioteca | CADENA | El nombre para mostrar de la biblioteca que incluye el marco. |
culpa_frame.propietario | CADENA | DESARROLLADOR, PROVEEDOR, TIEMPO DE EJECUCIÓN, PLATAFORMA o SISTEMA |
culpa_frame.culpado | BOOLEANO | Si el análisis de Crashlytics determinó que este marco es la causa del bloqueo o del error |
excepciones | REGISTRO REPETIDO | Solo Android: excepciones que ocurrieron durante este evento. Las excepciones anidadas se presentan en orden cronológico inverso (léase: el último registro es la primera excepción lanzada) |
excepciones.tipo | CADENA | El tipo de excepción, por ejemplo java.lang.IllegalStateException |
excepciones.mensaje_excepción | CADENA | Un mensaje asociado con la excepción. |
excepciones.anidadas | BOOLEANO | Verdadero para todos excepto para la última excepción lanzada (es decir, el primer registro) |
excepciones.título | CADENA | El título del hilo. |
excepciones.subtítulo | CADENA | El subtítulo del hilo. |
excepciones.culpadas | BOOLEANO | Verdadero si Crashlytics determina que la excepción es responsable del error o bloqueo |
excepciones.marcos | REGISTRO REPETIDO | Los marcos asociados con la excepción. |
excepciones.marcos.linea | INT64 | El número de línea del archivo del marco. |
excepciones.frames.file | CADENA | El nombre del archivo de marco. |
excepciones.marcos.símbolo | CADENA | El símbolo hidratado, o símbolo crudo si no es hidratable. |
excepciones.marcos.desplazamiento | INT64 | El desplazamiento de bytes en la imagen binaria que contiene el código, sin configurar para excepciones de Java |
excepciones.marcos.dirección | INT64 | La dirección en la imagen binaria que contiene el código, no configurada para marcos Java. |
excepciones.frames.library | CADENA | El nombre para mostrar de la biblioteca que incluye el marco. |
excepciones.marcos.propietario | CADENA | DESARROLLADOR, PROVEEDOR, TIEMPO DE EJECUCIÓN, PLATAFORMA o SISTEMA |
excepciones.marcos.culpados | BOOLEANO | Si el análisis de Crashlytics determinó que este marco es la causa del bloqueo o del error |
error | REGISTRO REPETIDO | Solo aplicaciones de Apple: errores no fatales |
error.nombre_cola | CADENA | La cola en la que se estaba ejecutando el hilo |
código de error | INT64 | Código de error asociado con el NSError registrado personalizado de la aplicación |
error.título | CADENA | El título del hilo. |
error.subtitulo | CADENA | El subtítulo del hilo. |
error.culpado | BOOLEANO | Si el análisis de Crashlytics determinó que este marco es la causa del error |
marcos.de.error | REGISTRO REPETIDO | Los marcos del stacktrace. |
error.frames.line | INT64 | El número de línea del archivo del marco. |
error.frames.file | CADENA | El nombre del archivo de marco. |
error.frames.symbol | CADENA | El símbolo hidratado, o símbolo crudo si no es hidratable. |
error.frames.offset | INT64 | El desplazamiento de bytes en la imagen binaria que contiene el código. |
dirección.de.marcos.de.error | INT64 | La dirección en la imagen binaria que contiene el código. |
error.frames.library | CADENA | El nombre para mostrar de la biblioteca que incluye el marco. |
error.frames.propietario | CADENA | DESARROLLADOR, PROVEEDOR, TIEMPO DE EJECUCIÓN, PLATAFORMA o SISTEMA |
error.frames.culpado | BOOLEANO | Si el análisis de Crashlytics determinó que este marco es la causa del error |
hilos | REGISTRO REPETIDO | Hilos presentes en el momento del evento. |
hilos.se estrelló | BOOLEANO | Si el hilo falló |
hilos.nombre_hilo | CADENA | El nombre del hilo |
hilos.nombre_cola | CADENA | Solo aplicaciones de Apple: la cola en la que se estaba ejecutando el hilo |
hilos.nombre_señal | CADENA | El nombre de la señal que provocó el bloqueo de la aplicación, solo presente en subprocesos nativos bloqueados. |
hilos.código_señal | CADENA | El código de la señal que provocó el bloqueo de la aplicación; sólo presente en subprocesos nativos bloqueados |
hilos.crash_address | INT64 | La dirección de la señal que provocó el bloqueo de la aplicación; sólo presente en subprocesos nativos bloqueados |
hilos.código | INT64 | Solo aplicaciones de Apple: código de error del NSError registrado personalizado de la aplicación |
hilos.título | CADENA | El título del hilo. |
hilos.subtitulo | CADENA | El subtítulo del hilo. |
hilos.culpados | BOOLEANO | Si el análisis de Crashlytics determinó que este marco es la causa del bloqueo o del error |
hilos.marcos | REGISTRO REPETIDO | Los marcos del hilo. |
hilos.marcos.linea | INT64 | El número de línea del archivo del marco. |
hilos.frames.archivo | CADENA | El nombre del archivo de marco. |
hilos.marcos.símbolo | CADENA | El símbolo hidratado, o símbolo crudo si no se puede hidratar. |
hilos.marcos.desplazados | INT64 | El desplazamiento de bytes en la imagen binaria que contiene el código. |
hilos.marcos.dirección | INT64 | La dirección en la imagen binaria que contiene el código. |
hilos.frames.library | CADENA | El nombre para mostrar de la biblioteca que incluye el marco. |
hilos.marcos.propietario | CADENA | DESARROLLADOR, PROVEEDOR, TIEMPO DE EJECUCIÓN, PLATAFORMA o SISTEMA |
hilos.marcos.culpados | BOOLEANO | Si el análisis de Crashlytics determinó que este marco es la causa del error |
unity_metadata.unity_version | CADENA | La versión de Unity que se ejecuta en este dispositivo. |
unity_metadata.debug_build | BOOLEANO | Si esta es una compilación de depuración |
unidad_metadatos.tipo_procesador | CADENA | El tipo de procesador |
unidad_metadatos.procesador_count | INT64 | El número de procesadores (núcleos) |
unity_metadata.procesador_frecuencia_mhz | INT64 | La frecuencia del procesador (es) en MHz. |
unity_metadata.system_memory_size_mb | INT64 | El tamaño de la memoria del sistema en Mb. |
unity_metadata.graphics_memory_size_mb | INT64 | La memoria gráfica en MB. |
unity_metadata.graphics_device_id | INT64 | El identificador del dispositivo gráfico. |
unity_metadata.graphics_device_vendor_id | INT64 | El identificador del proveedor del procesador gráfico. |
unity_metadata.graphics_device_name | CADENA | El nombre del dispositivo gráfico. |
unity_metadata.graphics_device_vendor | CADENA | El proveedor del dispositivo gráfico. |
unity_metadata.graphics_device_version | CADENA | La versión del dispositivo gráfico. |
unity_metadata.graphics_device_type | CADENA | El tipo de dispositivo gráfico. |
unity_metadata.graphics_shader_level | INT64 | El nivel de sombreado de los gráficos. |
unity_metadata.graphics_render_target_count | INT64 | El número de objetivos de representación gráfica. |
unity_metadata.graphics_copy_texture_support | CADENA | Soporte para copiar texturas de gráficos como se define en la API de Unity |
unity_metadata.graphics_max_texture_size | INT64 | El tamaño máximo dedicado a renderizar textura. |
unity_metadata.screen_size_px | CADENA | El tamaño de la pantalla en píxeles, formateado como ancho x alto. |
unity_metadata.screen_resolución_dpi | CADENA | El DPI de la pantalla como número de punto flotante |
unity_metadata.screen_refresh_rate_hz | INT64 | La frecuencia de actualización de la pantalla en Hz. |
Visualización de datos exportados de Crashlytics con Data Studio
Google Data Studio convierte sus conjuntos de datos de Crashlytics en BigQuery en informes fáciles de leer, compartir y totalmente personalizables.
Para obtener más información sobre el uso de Data Studio, consulte la guía de inicio rápido de Data Studio, Bienvenido a Data Studio .
Usar una plantilla de informe de Crashlytics
Data Studio tiene un informe de muestra para Crashlytics que incluye un conjunto completo de dimensiones y métricas del esquema de Crashlytics BigQuery exportado. Si ha habilitado la exportación de streaming de Crashlytics BigQuery, puede ver esos datos en la página Tendencias en tiempo real de la plantilla de Data Studio. Puede usar el ejemplo como plantilla para crear rápidamente nuevos informes y visualizaciones basados en los datos de fallas sin procesar de su propia aplicación:
- Abra la plantilla del panel de Crashlytics Data Studio .
- Haga clic en Usar plantilla en la esquina superior derecha.
- En el menú desplegable Nueva fuente de datos , seleccione Crear nueva fuente de datos .
- Haga clic en Seleccionar en la tarjeta de BigQuery .
- Selecciona una tabla que contenga datos exportados de Crashlytics eligiendo Mis proyectos > [nombre-de-tu-proyecto] > firebase_crashlytics > [nombre-de-tu-tabla] . Su tabla de lotes siempre está disponible para seleccionar; Si la exportación de streaming de Crashlytics BigQuery está habilitada, puede seleccionar su tabla en tiempo real.
- En Configuración , establezca el nivel de plantilla de Crashlytics en Predeterminado .
- Haga clic en Conectar para crear la nueva fuente de datos.
- Haga clic en Agregar al informe para regresar a la plantilla de Crashlytics.
- Finalmente, haga clic en Crear informe para crear su copia de la plantilla del panel de Crashlytics Data Studio.