Catálogo de Analíticas — SaveFamily (módulo legacy)
Documento para el equipo de Marketing. Describe cada evento de Firebase
Analytics que la app envía desde el módulo legacy: qué significa, cuándo se
dispara, qué parámetros trae, y qué insight ofrece.
Ambiente: Eventos visibles en vivo en Firebase Console Analytics
DebugView (para builds debug/profile con el flag de debug activado).
Los reportes históricos están en Realtime, Engagement Events y
Engagement Pages and screens.
Parámetro común: Cada evento incluye automáticamente un parámetro
consent_status (true / false) para permitir filtrado por
consentimiento GDPR cuando corresponda.
Índice
- User Properties (propiedades del usuario)
- Screen Views (vistas de pantalla automáticas)
- Autenticación (
legacy_auth_*)
- Cuenta (
legacy_account_*)
- Dispositivo — Setup / alta (
legacy_device_setup_*)
- Dispositivo — Funciones (
legacy_device_*)
- Contactos del dispositivo (
legacy_contacts_*)
- Ajustes (
legacy_settings_*)
- Soporte (
legacy_support_*)
- Onboarding (
legacy_onboarding_*)
- Panel principal (
legacy_control_panel_*)
- Ubicación y mapa (
legacy_location_*)
User Properties
Son propiedades que se setean una sola vez por usuario (al hacer login) y
sirven para segmentar a los usuarios en los reportes. Cualquier evento
puede cruzarse por estas dimensiones en Firebase Analytics.
| Propiedad |
Descripción |
Valores ejemplo |
Cuándo se setea |
env |
Ambiente de la app |
development, staging, production |
Al arrancar la app |
user_id (interna) |
Identificador único del usuario |
UUID del backend |
Al confirmar el login (después del 2FA) |
user_role |
Rol del usuario en el backend |
client, admin, etc. |
Al login |
user_language |
Idioma preferido del usuario |
es, en, fr, de, it, pt |
Al login |
user_signup_date |
Fecha de creación de la cuenta (ISO 8601 UTC) |
2024-04-07T10:34:42.000Z |
Al login |
user_has_phone |
Si tiene teléfono registrado |
true / false |
Al login |
user_has_api_key |
Si tiene una API key asignada (usuario técnico) |
true / false |
Al login |
Nota futura: Cuando se lance el plan premium, se agregará
user_plan (free / premium / family) para segmentar la base por
plan.
Screen Views
Cada vez que el usuario navega a una pantalla, Firebase recibe un evento
automático screen_view con el parámetro screen_name igual al nombre
lógico de la ruta (no el nombre de clase Flutter).
Esto se captura automáticamente, sin instrumentación manual en cada
pantalla, mediante un listener del router. También captura los cambios de
tab del bottom navigation (home device functions mapa chat).
Pantallas del módulo legacy que se trackean
| Screen name |
Pantalla |
splash |
Pantalla de carga inicial |
legacy_onboarding |
Intro/onboarding |
legacy_login |
Pantalla de login |
legacy_signup |
Alta de cuenta |
legacy_recover_password |
Recuperación de contraseña |
legacy_device_setup |
Wizard de alta de reloj/dispositivo |
legacy_request_link_phone |
Inicio de vinculación de teléfono |
legacy_verify_link_phone_code |
Verificación del código OTP |
control_panel |
Dashboard principal (home del legacy) |
customer_service |
Pantalla de soporte |
account_settings |
Menú de cuenta |
personal_data |
Editar datos personales |
change_password |
Cambiar contraseña |
linked_devices |
Dispositivos vinculados a la cuenta |
app_users |
Sub-usuarios de la app |
delete_account |
Flujo de eliminación de cuenta |
device_management |
Menú de gestión del dispositivo |
scheduled_activities |
Actividades programadas |
contacts |
Contactos del dispositivo |
edit_contact |
Editar un contacto |
health |
Salud (ritmo cardíaco, SpO2) |
remote_connection |
Conexión remota (cámara, llamada) |
locate_device |
Localizar dispositivo |
rewards |
Recompensas |
activity_meter |
Medidor de actividad (pasos) |
apps_use |
Uso de apps |
volume_control |
Control de volumen |
call_history |
Historial de llamadas |
background_image |
Imagen de fondo del dispositivo |
legacy_location |
Mapa de ubicación |
legacy_chat |
Chat (placeholder) |
settings |
Menú de ajustes |
alarm |
Alarmas |
remote_management |
Gestión remota |
sos_agenda |
Contactos SOS |
sound |
Sonido del dispositivo |
sync_clock |
Sincronización de reloj |
app_store |
Gestión de apps instaladas |
battery |
Batería / modo nocturno |
block_phone |
Bloqueo de teléfono (whitelist) |
disable_functions |
Desactivar funciones (teclado, GPS) |
language |
Idioma del dispositivo |
legacy_notifications |
Notificaciones del dispositivo |
remote_on_off |
Encendido/apagado remoto |
alerts |
Alertas |
timezone |
Zona horaria |
wifi_settings |
Configuración WiFi |
Insight para marketing: Con estas screen_view podés construir funnels
(ej: legacy_login control_panel device_management locate_device) y
medir tiempos entre pantallas, rebotes y pantallas más visitadas.
Autenticación
Prefijo legacy_auth_* — cubre login, 2FA, signup, recuperación de
contraseña, vinculación de teléfono y logout.
Login
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_auth_login_attempt |
El usuario pulsa "Iniciar sesión" después de validar el formulario en el cliente. |
— |
Tope del funnel de login. Usar como base del "100 %" del funnel. |
legacy_auth_login_success |
El backend aceptó email + contraseña. Aún falta el 2FA. |
— |
Credenciales válidas. Usar para medir la calidad de la contraseña/email. |
legacy_auth_login_failure |
El backend rechazó las credenciales o hubo un error de red. |
reason (mensaje de error) |
Fricción. Analizar los reason más frecuentes para detectar problemas. |
2FA (doble factor)
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_auth_2fa_requested |
El backend envió el código 2FA al usuario. |
— |
Usuario pasó el primer paso del login. |
legacy_auth_2fa_verified |
El código 2FA fue verificado y la sesión está activa. |
— |
Login exitoso. Fin del funnel de login. |
legacy_auth_2fa_failure |
El código 2FA fue rechazado (incorrecto, expirado). |
reason |
Fricción en el 2FA. Si es muy alto, puede indicar problemas con la entrega del código. |
legacy_auth_2fa_resend |
El usuario pidió reenviar el código. |
— |
Indica que no le llegó el primero. Útil para medir problemas de entrega. |
Signup
El signup es un wizard de 2 pasos (step_index 0, 1):
- Paso 0 — Datos personales: nombre, apellido, email, teléfono (con picker de país), aceptación de términos.
- Paso 1 — Contraseña: password y repeat password con validación de reglas.
El language se infiere del locale del dispositivo al momento del submit.
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_auth_signup_started |
El usuario envió el formulario final (submit del paso 1). |
— |
Top del funnel de request al backend. |
legacy_auth_signup_completed |
El backend creó la cuenta exitosamente. |
— |
Conversión de nueva cuenta. |
legacy_auth_signup_failed |
Error en el alta (email ya existe, datos inválidos, error de red). |
reason |
Drop-off del signup. Analizar reason para ver si hay patrones. |
legacy_auth_signup_step_completed |
El usuario avanzó a un paso siguiente (validación pasó). |
step_index (0, 1) — el paso que JUSTO terminó |
Funnel interno del signup. Permite ver cuántos completan paso 0 y llegan al 1. |
legacy_auth_signup_step_back |
El usuario tocó "atrás" dentro del wizard. |
step_index — el paso del que vuelve |
Indica que el usuario quiere corregir algo — fricción. |
legacy_auth_signup_step_validation_failed |
El usuario tocó "siguiente" pero la validación del formulario lo rechazó. |
step_index |
Muy valioso: dice en qué paso hay más problemas de validación. Si step 0 falla: nombre/apellido, email, teléfono o términos. Si step 1 falla: reglas de contraseña. |
Recuperación de contraseña
Flujo exclusivo por email (se removió la opción de SMS/teléfono).
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_auth_password_reset_requested |
El usuario inició el flujo de recuperar contraseña tipeando su email. |
— |
Fricción: alguien no recuerda su contraseña. |
legacy_auth_password_reset_email_sent |
El backend confirmó el envío del email de recuperación. |
— |
Confirma que el email salió. Cruzar con reset_requested para medir fallas. |
legacy_auth_password_reset_completed |
El usuario guardó la nueva contraseña exitosamente. |
— |
Conversión final del funnel de recuperación. |
legacy_auth_password_reset_failed |
Error al intentar guardar la nueva contraseña. |
reason (unequal_passwords, too_short, no_capitals, no_numbers, no_special_chars, o mensaje del backend) |
Permite ver qué reglas de validación molestan más a los usuarios. |
Vinculación de teléfono
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_auth_link_phone_code_requested |
El usuario envió su número y pidió el código OTP. |
— |
Inicio del flujo de linking. |
legacy_auth_link_phone_code_request_failed |
Falló el pedido del código al backend. |
reason |
Fricción inicial. |
legacy_auth_link_phone_code_verified |
El código OTP fue verificado con éxito. |
— |
Número vinculado. |
legacy_auth_link_phone_code_verification_failed |
Falló la verificación (código incorrecto o expirado). |
reason |
Fricción en el segundo paso. |
Logout
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_auth_logout |
El usuario cerró sesión y la app limpió la sesión local. |
— |
Señal de fin de sesión. Cruzar con duración de sesión para ver patrones de uso. |
Cuenta
Prefijo legacy_account_* — cubre edición de perfil, contraseña,
dispositivos vinculados, usuarios de la app y eliminación de cuenta
(señal crítica de churn).
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_account_personal_data_edited |
El usuario guardó cambios en sus datos personales (nombre, apellido, teléfono). |
— |
Engagement con la cuenta. |
legacy_account_password_changed |
Cambio de contraseña exitoso. |
— |
Señal de buen hábito de seguridad. |
legacy_account_password_change_failed |
El cambio de contraseña falló. |
reason |
Fricción. |
legacy_account_linked_device_unlinked |
El usuario quitó un dispositivo vinculado de su cuenta. |
— |
Posible señal temprana de desuso del dispositivo. |
legacy_account_linked_device_renamed |
El usuario renombró un dispositivo vinculado (editó el carrier name). |
— |
Personalización / engagement con la gestión de dispositivos. |
legacy_account_app_user_delete_triggered |
El usuario tocó "eliminar" en la pantalla de app users. |
— |
Nota técnica: la implementación actual borra al usuario logueado (parece ser placeholder). El evento se mantiene para medir demanda del feature. |
legacy_account_deletion_initiated |
CHURN SIGNAL — El usuario entró al flujo "Eliminar cuenta". |
— |
Top del funnel de churn. |
legacy_account_deletion_confirmed |
El usuario confirmó la eliminación y la API call está en progreso. |
— |
El usuario quiere realmente irse. |
legacy_account_deletion_completed |
El backend confirmó la eliminación. |
— |
Usuario perdido. |
legacy_account_deletion_cancelled |
El usuario canceló antes de confirmar la eliminación. |
— |
Save: el usuario se arrepintió. Útil para medir efectividad de pantallas de retención. |
Dispositivo — Setup
Prefijo legacy_device_setup_* — el momento aha del producto: vincular
un reloj/dispositivo del hijo a la cuenta del padre/madre.
Funnel del wizard
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_device_setup_started |
El usuario entró al wizard de alta de dispositivo. |
— |
Top del funnel de activación. |
legacy_device_setup_step_completed |
El usuario completó un paso del wizard. |
step (intro, link_info, scan_watch, profile), duration_seconds (cuánto tardó en ese paso) |
Permite ver dónde se abandona más el wizard Y cuánto tiempo pasan los usuarios en cada paso — fricción directa. |
legacy_device_setup_completed |
El dispositivo se creó exitosamente y está vinculado. |
child_gender (M/F/other), relation_type (mother/father/etc), child_age_years |
Conversión de activación + demográficos del usuario final. Marketing puede construir personas reales con estos 3 params: género, edad y relación con el adulto que compró. |
legacy_device_setup_failed |
Falló un paso del wizard. |
at_step (en qué paso falló), reason (error) |
Señal para el equipo técnico de dónde hay problemas. |
legacy_device_setup_cancelled |
El usuario volvió atrás y abandonó el wizard. |
at_step |
Drop-off del wizard. |
Entrada del código del reloj (QR vs. manual)
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_device_setup_qr_scanned |
El usuario escaneó exitosamente el código QR del reloj. |
— |
Método "rápido". Si su ratio baja, el QR scanner puede estar fallando. |
legacy_device_setup_manual_code_entered |
El usuario avanzó con el código tipeado manualmente (no escaneó). |
— |
Fallback. Si crece mucho el ratio vs QR, invertir en mejorar la UX del scanner. |
Familias con múltiples hijos
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_device_setup_reset_for_new_kid |
Después de terminar un alta, el usuario tocó "agregar otro hijo". |
— |
Señal de familia con múltiples hijos. Estos usuarios típicamente tienen mayor retention y LTV — son el mejor segmento. |
Dispositivo — Funciones
Prefijo legacy_device_* — acciones sobre el dispositivo ya vinculado.
Mide qué features del producto se usan más.
Localización del dispositivo (comando "find")
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_device_locate_requested |
El usuario pulsó el botón de localizar (intento). |
— |
Uso del feature principal del producto. Top del mini-funnel de localización. |
legacy_device_locate_success |
El comando de localizar fue enviado con éxito al backend. |
— |
El dispositivo va a sonar. Conversión del mini-funnel. |
legacy_device_locate_failure |
El comando de localizar falló (error del backend o de red). |
reason |
Problema técnico al localizar. Drop-off del mini-funnel. |
Conexión remota (cámara + llamadas)
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_device_remote_connection_started |
El usuario entró a la pantalla de conexión remota. |
— |
Intención de interactuar remotamente. |
legacy_device_remote_connection_photo_taken |
El usuario pidió una foto de la cámara remota. |
— |
Feature avanzada. Permite medir uso de la cámara del reloj. |
legacy_device_remote_connection_call_initiated |
El usuario inició una llamada bidireccional. |
— |
Feature crítica: llamar al niño. |
legacy_device_remote_connection_picture_viewed |
El usuario navegó entre fotos de la cámara remota. |
direction (next, prev, direct) |
Engagement con la galería: cuántas fotos revisa el padre después de pedirlas. |
Volumen del dispositivo
Cada envío del formulario dispara un evento por tipo de volumen que
efectivamente cambió (media, ringtone, alarm) — si el usuario movió solo
el media, solo se manda ese. Permite medir qué tipo de sonido configuran
más los padres.
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_device_volume_control_changed |
El usuario guardó un cambio de volumen en el dispositivo, se emite 1 vez por cada tipo modificado. |
type (media, ringtone, alarm), level (0-100) |
Configuración. Cruzar type para ver cuál se ajusta más. |
Imagen de fondo del reloj
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_device_background_image_changed |
El usuario seleccionó una imagen existente como fondo. |
— |
Personalización. |
legacy_device_background_image_uploaded |
El usuario subió una foto personal como fondo. |
— |
Alta personalización — indicador de engagement. |
Actividades programadas (alarmas personalizadas del dispositivo)
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_device_scheduled_activity_added |
El usuario agregó una actividad programada. |
week_day (0-6, 0 = domingo), period (HH:mm-HH:mm) |
Dato muy útil: permite ver qué horarios programan los padres (desayuno, colegio, deberes, etc) y qué días. |
legacy_device_scheduled_activity_updated |
El usuario editó una actividad programada. |
week_day, period |
Refinamiento de configuración. |
legacy_device_scheduled_activity_removed |
El usuario eliminó una actividad programada. |
— |
|
Recompensas
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_device_rewards_granted |
El usuario asignó minutos de recompensa al dispositivo. |
amount (cantidad de minutos) |
Gamificación / recompensas de uso. |
Podómetro (Activity Meter)
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_device_activity_pedometer_toggled |
El usuario activó/desactivó el contador de pasos. |
enabled (true / false) |
|
legacy_device_activity_meter_time_range_changed |
El usuario cambió el rango de fechas en la pantalla de pasos. |
range (today, seven_days, thirty_days, custom) |
Engagement profundo: el padre no solo abre la pantalla, sino que investiga distintos períodos. |
Salud (ritmo cardíaco / SpO2)
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_device_health_heart_rate_frequency_changed |
El usuario cambió la frecuencia de medición del ritmo cardíaco. |
frequency_seconds |
Personalización de monitoreo de salud. |
legacy_device_health_measurement_started |
El usuario inició una medición manual de ritmo cardíaco. |
— |
Interés en datos de salud del niño. |
legacy_device_health_time_range_changed |
El usuario cambió el rango de fechas en la pantalla de salud. |
range |
Engagement profundo: padres revisando el historial de salud. |
Uso de aplicaciones (Apps Use)
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_device_apps_use_time_range_changed |
El usuario cambió el rango de fechas en la pantalla de uso de apps. |
range, total_duration_seconds (total acumulado del período), top_app_name (app más usada en ese período) |
El evento más rico del módulo. Permite a marketing segmentar directo: "padres cuyos hijos usan más TikTok que YouTube", "familias con uso > 4hs/día", etc. |
Historial de llamadas
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_device_call_history_filter_changed |
El usuario cambió el filtro del historial. |
filter (all, incoming, outgoing, missed) |
Cuando se filtra missed es señal de preocupación del padre: busca llamadas perdidas del hijo. |
Contactos del dispositivo
Prefijo legacy_contacts_* — contactos permitidos para llamadas desde el
dispositivo del niño.
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_contacts_added |
El usuario agregó un contacto al dispositivo. |
total_count (cantidad total de contactos DESPUÉS del add) |
Configuración inicial o expansión de la agenda. El total_count permite segmentar "padres con agenda chica vs grande". |
legacy_contacts_edited |
El usuario editó un contacto existente. |
— |
|
legacy_contacts_deleted |
El usuario eliminó un contacto del dispositivo. |
total_count (cantidad total DESPUÉS del delete) |
|
Ajustes
Prefijo legacy_settings_* — configuración general del dispositivo
(alarmas, SOS, bloqueos, idioma, red, etc).
Alarmas
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_settings_alarm_added |
Alarma nueva creada. |
time (HH:mm) |
Uso del feature de alarma. El time permite ver qué horarios son más populares (despertador matutino, hora del colegio, etc). |
legacy_settings_alarm_updated |
Alarma existente editada. |
time (el NUEVO HH:mm) |
Refinamiento. |
legacy_settings_alarm_removed |
Alarma eliminada. |
— |
|
Contactos SOS
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_settings_sos_contact_added |
Contacto SOS agregado. |
total_count |
Configuración de seguridad. Muy importante. |
legacy_settings_sos_contact_removed |
Contacto SOS removido. |
total_count |
|
Whitelist del teléfono (bloqueo de llamadas)
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_settings_block_phone_contact_added |
Contacto agregado a la whitelist de llamadas permitidas. |
total_count |
Control parental. |
legacy_settings_block_phone_contact_removed |
Contacto removido de la whitelist. |
total_count |
|
Control parental (funciones desactivadas)
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_settings_disable_functions_changed |
El usuario guardó cambios en la pantalla de funciones desactivadas. |
— |
Engagement con control parental (evento agregado). |
legacy_settings_disable_functions_keyboard_toggled |
Se guardó con el teclado habilitado/deshabilitado. |
enabled |
Control granular. |
legacy_settings_disable_functions_gps_toggled |
Se guardó con el GPS habilitado/deshabilitado. |
enabled |
Control granular. |
Otros ajustes del dispositivo
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_settings_language_changed |
Se cambió el idioma del dispositivo. |
language (ej. es, en) |
|
legacy_settings_alerts_configured |
El usuario guardó cambios en las alertas. |
alert_count (cuántas alertas activas), alerts_enabled (lista separada por comas truncada a 100 chars) |
Permite ver qué alertas son más populares y cuántas alertas promedio configuran los padres. |
legacy_settings_timezone_changed |
Se cambió la zona horaria. |
timezone |
|
legacy_settings_wifi_added |
Se agregó una red WiFi permitida. |
total_count |
|
legacy_settings_wifi_removed |
Se eliminó una red WiFi permitida. |
total_count |
|
legacy_settings_sound_changed |
Se cambió el modo de sonido del dispositivo. |
mode (normal / silent / vibrate) |
Preferencia de perfil sonoro del niño. |
legacy_settings_sync_clock_triggered |
El usuario disparó una sincronización manual del reloj del dispositivo. |
— |
|
legacy_settings_battery_night_mode_toggled |
El usuario activó/desactivó el modo nocturno (ahorro de batería). |
enabled |
|
Gestión remota del dispositivo (comandos destructivos)
Estos eventos son muy importantes para churn analysis. Un
factory_reset típicamente precede a un desvinculado y potencial churn.
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_settings_remote_management_shutdown |
El usuario apagó el dispositivo remotamente. |
— |
Acción poco frecuente. |
legacy_settings_remote_management_restart |
El usuario reinició el dispositivo remotamente. |
— |
Típicamente usado cuando hay problemas técnicos. |
legacy_settings_remote_management_factory_reset |
CHURN SIGNAL — El usuario reseteó el dispositivo a fábrica. |
— |
Borra el dispositivo. Frecuentemente precede un legacy_account_linked_device_unlinked y luego legacy_account_deletion_*. Cruzar para medir correlación. |
Soporte
Prefijo legacy_support_* — solo 1 evento hoy, medirá la demanda de
soporte.
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_support_contact_initiated |
El usuario tocó el botón para contactar soporte (ej. abrir el cliente de email). |
channel (email hoy; en el futuro también phone, whatsapp), country (país seleccionado en el formulario) |
Demanda de soporte por país: permite ver dónde se originan más tickets. Nota: mide la intención de contactar, no confirma envío. |
Onboarding
Prefijo legacy_onboarding_* — los slides de intro iniciales de la app.
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_onboarding_step_changed |
El usuario pasó a un nuevo slide del intro. |
step_index (número de slide, empieza en 0) |
Medir cuántos slides el usuario ve antes de empezar. |
Panel principal
Prefijo legacy_control_panel_* — acciones en el home del legacy.
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_control_panel_device_selected |
El usuario cambió el dispositivo activo (útil cuando hay varios hijos). |
total_devices (cuántos dispositivos tiene vinculados) |
Qué dispositivo está monitoreando activamente. El total_devices permite segmentar por tamaño de familia (1 hijo, 2 hijos, 3+). |
legacy_control_panel_positions_refreshed |
El usuario tiró del pull-to-refresh o tocó "actualizar" en el dashboard. |
— |
Preocupación activa del usuario. Indicador de engagement alto. |
Ubicación y mapa
Prefijo legacy_location_* — el feature más rico del producto. Acá
capturamos toda la interacción del usuario con el mapa: ver el trayecto,
crear zonas seguras, ver lugares frecuentes, cambiar frecuencia de
actualización, etc.
Geofences (zonas seguras) — CRUD básico
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_location_geofence_created |
Se creó una geofence (API confirmó). |
— |
Conversión final del funnel de creación. |
legacy_location_geofence_updated |
Se actualizó una geofence existente. |
— |
Refinamiento de configuración de zonas. |
legacy_location_geofence_deleted |
Se eliminó una geofence. |
— |
|
Lugares frecuentes — CRUD básico
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_location_frequent_place_created |
Se creó un lugar frecuente (API confirmó). |
— |
Conversión final del funnel. |
legacy_location_frequent_place_updated |
Se actualizó un lugar frecuente. |
— |
|
legacy_location_frequent_place_deleted |
Se eliminó un lugar frecuente. |
— |
|
Funnel de creación de lugares (geofences y frequent places)
Este es el funnel más valioso del módulo de ubicación. Permite medir
cuánta gente empieza a crear una zona vs. cuánta termina.
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_location_place_creation_started |
El usuario tocó "agregar zona" o "agregar lugar frecuente". |
mode (geofence / frequent_place) |
Top del funnel. |
legacy_location_point_confirmed |
El usuario tocó el mapa para fijar el centro del lugar. |
mode |
Paso 1 del funnel completado. |
legacy_location_radius_confirmed |
El usuario confirmó el radio de la geofence (solo aplica a geofences). |
radius (metros), is_editing (true si estaba editando una existente, false si es nueva) |
Paso 2 del funnel completado. Permite también analizar qué tamaños de zonas eligen los usuarios (radios más comunes casa, escuela, etc.). |
legacy_location_place_creation_cancelled |
El usuario salió del flujo de creación/edición antes de terminar. |
mode, at_step (picking_point o adjusting_radius) |
Drop-off del funnel. El at_step dice exactamente dónde lo perdimos. |
Exploración y edición
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_location_geofence_selected |
El usuario tocó una geofence del mapa para verla. |
— |
Engagement: el usuario está mirando sus zonas. |
legacy_location_geofence_dismissed |
El usuario cerró el popup de la geofence sin hacer nada. |
— |
"Miró pero no editó". Indicador de exploración. |
legacy_location_geofence_edit_started |
El usuario tocó "editar" en una geofence seleccionada. |
— |
Intención de editar. Mid-funnel de edición. |
legacy_location_frequent_place_selected |
El usuario tocó un lugar frecuente para verlo. |
— |
Engagement. |
legacy_location_frequent_place_dismissed |
El usuario cerró el popup del lugar frecuente. |
— |
|
legacy_location_history_position_selected |
El usuario tocó un punto del historial de ubicaciones en el mapa. |
— |
Inspección detallada del trayecto. |
legacy_location_history_position_dismissed |
El usuario cerró el detalle del punto de historial. |
— |
|
Historial de ubicaciones
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_location_history_loaded |
El usuario cargó el historial para un rango de fechas. |
— |
Interés en el historial. |
legacy_location_history_cleared |
El usuario limpió el trayecto del mapa. |
— |
|
Frecuencia de ubicación (privacidad vs. precisión)
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_location_frequency_updated |
El usuario cambió cada cuánto el dispositivo manda su posición. |
frequency_seconds (ej. 60, 300, 900) |
Dato súper útil: indica preferencia entre privacidad y precisión/batería. Correlacionar con retention. |
Capas del mapa (toggles de visibilidad)
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_location_map_geofences_toggled |
El usuario mostró/ocultó las geofences en el mapa. |
visible (true / false) |
|
legacy_location_map_frequent_places_toggled |
El usuario mostró/ocultó los lugares frecuentes. |
visible |
|
legacy_location_map_route_trail_toggled |
El usuario mostró/ocultó la línea del trayecto histórico. |
visible |
|
Modo "seguir en vivo"
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_location_following_toggled |
El usuario activó/desactivó el modo "seguir dispositivo" (el mapa se re-centra automáticamente). |
enabled (true / false) |
Engagement alto: el usuario está viendo al hijo en tiempo real. Correlacionar con horarios (ej. entrada/salida del cole). |
UI del mapa (chrome)
| Evento |
Cuándo se dispara |
Parámetros |
Qué significa para marketing |
legacy_location_map_actions_expanded |
El usuario abrió/cerró el drawer de acciones del mapa. |
expanded (true / false) |
Indica conocimiento de la UI. |
legacy_location_map_zoomed |
El usuario hizo zoom in/out y se quedó en ese nivel (con debounce de 1 segundo para no spamear). |
zoom (nivel de zoom final) |
Nivel de detalle con el que los usuarios miran el mapa. Un zoom alto indica "me importa ver dónde exactamente está". |
legacy_location_map_style_changed |
El usuario eligió otro estilo visual para el mapa desde el selector de capas. |
style (standard / voyager / light / dark / satellite) |
Personalización de la experiencia. Satellite es el más usado por padres que quieren ver edificios reales. |
legacy_location_map_center_tapped |
El usuario tocó el botón "centrar en el dispositivo" del mapa. |
— |
Acción de re-centrado manual. Indica que el mapa se desplazó y el usuario quiere volver al hijo. |
legacy_location_map_refresh_tapped |
El usuario tocó el botón de refresco dentro del mapa (distinto del pull-to-refresh del control panel). |
— |
Engagement intenso: el usuario quiere la posición más reciente AHORA. Suele dispararse en momentos de ansiedad. |
legacy_location_shared |
El usuario tocó "compartir ubicación" — abre el share sheet nativo para mandar la posición del hijo a otra app. |
— |
Acción viral del producto. Es la más importante para crecimiento orgánico: indica que el usuario está mandando data del producto a contactos fuera de la app (familia, pareja, abuelos). |
legacy_location_list_sheet_opened |
El usuario abrió el bottom sheet con la lista de geofences, lugares frecuentes e historial. |
— |
Quiere explorar todo lo que tiene configurado. Mid-funnel de gestión. |
legacy_location_history_type_filter_changed |
El usuario filtró el historial por tipo de posición. |
type (gps / wifi / sos / all cuando limpia el filtro) |
Indica interés en una fuente de datos específica. sos filtrado es señal de un evento crítico que el usuario está investigando. |
Cómo usar este catálogo
Para construir funnels
Tomá un evento "inicio" y uno "fin" en Firebase Analytics Engagement
Funnels y comparalos:
- Signup:
legacy_auth_signup_started _completed
- Login:
legacy_auth_login_attempt _2fa_verified
- Activación (aha moment):
legacy_device_setup_started _completed
- Creación de zona segura:
legacy_location_place_creation_started _geofence_created
- Churn:
legacy_account_deletion_initiated _deletion_completed
Para segmentar audiencias
En Audiences podés filtrar por user properties (user_language,
user_has_phone, etc.) y cruzarlo con cualquiera de estos eventos.
Para detectar problemas
Filtrar por los eventos con _failed o _failure y mirar los reason
más frecuentes en la pestaña Events Parameter.
Para medir engagement diario
Los eventos legacy_control_panel_positions_refreshed,
legacy_location_following_toggled y las screen_views del mapa son los
indicadores más fuertes de usuarios activos y preocupados.
Eventos propuestos para el futuro (NO implementados aún)
Esta sección es la wishlist para cuando existan los features o lleguen
las decisiones pendientes.
Cuando exista el plan premium/suscripción
purchase / purchase_subscription (con value, currency, transaction_id)
action_click_gopremium (botón de upgrade)
subscription_error_payment / subscription_canceled_payment
- User property
user_plan (free / premium / family)
legacy_limit_hit con limit_type (max_devices, max_contacts, etc.)
legacy_limit_popup_shown
legacy_limit_popup_upgrade_clicked
Referral / invitación
legacy_referral_screen_viewed
legacy_referral_code_shared (con channel)
legacy_referral_signup_completed
NPS / rating
legacy_nps_prompt_shown
legacy_nps_score_submitted (con score 0–10)
legacy_app_rating_submitted
Push notification engagement
legacy_notification_received (background)
legacy_notification_opened (tap app abre)
legacy_notification_dismissed
Aha moments
legacy_first_device_connected (primera vez que el usuario vincula un dispositivo — requiere persistencia de "primera vez")
legacy_first_session_completed
A/B testing
ab_test_<experiment_name> (cuando empecemos experimentos con Remote Config)
Errores de API / health técnica
legacy_api_error con endpoint, status_code (detectar endpoints flakey)
legacy_session_expired
Referencias técnicas
- Proyecto Firebase:
sf-platform-pre (para dev+staging) / sf-platform-prod (pendiente de crear)
- Package Dart:
packages/sf_tracking/
- Mixins: Cada grupo de eventos vive en un mixin aparte dentro del package (
auth_tracking.dart, location_tracking.dart, etc).
- GDPR: Cada evento incluye automáticamente el parámetro
consent_status para permitir filtrado post-hoc en BigQuery cuando se implemente el consent screen.
- Ambiente:
env se setea como user property (development / staging / production), por lo que todos los reportes pueden filtrarse por ambiente y producción no se va a mezclar con testing.
Changelog del catálogo
- 2026-04-07 — Creación inicial. 61 eventos del módulo legacy implementados y validados en device físico (iPhone 14 Pro iOS 18 + Samsung Galaxy A55 Android 15).
- 2026-04-07 — Se agregaron 16 eventos nuevos al módulo de ubicación (funnel de creación, exploración, edición, follow mode, map zoom debounced, history).
- 2026-04-07 — Se expandió el tracking de
device_management con 8 eventos nuevos y 3 enriquecimientos de parámetros:
- NUEVOS:
legacy_device_locate_success/failure, legacy_device_remote_connection_picture_viewed, legacy_device_activity_meter_time_range_changed, legacy_device_health_time_range_changed, legacy_device_apps_use_time_range_changed (con total_duration_seconds y top_app_name), legacy_device_call_history_filter_changed.
- ENRIQUECIDOS:
legacy_device_volume_control_changed ahora dispara un evento por cada tipo (media/ringtone/alarm) que efectivamente cambió; legacy_device_scheduled_activity_added/updated ahora incluyen week_day y period; legacy_contacts_added/deleted ahora incluyen total_count.
- 2026-04-07 — Se expandió el tracking de
settings con 3 eventos nuevos y 7 enriquecimientos de parámetros:
- NUEVOS:
legacy_settings_remote_management_shutdown/restart/factory_reset (churn signal crítico).
- ENRIQUECIDOS:
legacy_settings_alarm_added/updated ahora incluyen time; legacy_settings_sos_contact_added/removed incluyen total_count; legacy_settings_block_phone_contact_added/removed incluyen total_count; legacy_settings_wifi_added/removed incluyen total_count; legacy_settings_sound_changed incluye mode; legacy_settings_alerts_configured incluye alert_count y alerts_enabled.
- 2026-04-07 — Se expandió el tracking de
device_setup con 3 eventos nuevos y 2 enriquecimientos críticos:
- NUEVOS:
legacy_device_setup_qr_scanned, legacy_device_setup_manual_code_entered, legacy_device_setup_reset_for_new_kid (señal de familias con múltiples hijos).
- ENRIQUECIDOS:
legacy_device_setup_step_completed ahora incluye duration_seconds (tiempo por paso — fricción directa); legacy_device_setup_completed ahora incluye child_gender, relation_type, child_age_years ( demográficos del usuario final para personas de marketing).
- 2026-04-07 — Se expandió el tracking de
legacy_auth con 3 eventos nuevos para el funnel interno del signup:
- NUEVOS:
legacy_auth_signup_step_completed, legacy_auth_signup_step_back, legacy_auth_signup_step_validation_failed (originalmente con step_index 0-2; reducido a 0-1 en abril 2026 al simplificar el signup).
- 2026-04-07 — Pasada final de cobertura en
legacy_auth, account, support, control_panel: 6 eventos nuevos y 2 enriquecimientos.
- NUEVOS AUTH:
legacy_auth_password_reset_completed, legacy_auth_password_reset_failed (con reason granular), legacy_auth_link_phone_code_request_failed, legacy_auth_link_phone_code_verification_failed.
- NUEVOS ACCOUNT:
legacy_account_linked_device_renamed, legacy_account_app_user_delete_triggered.
- ENRIQUECIDOS:
legacy_support_contact_initiated ahora incluye country además de channel; legacy_control_panel_device_selected ahora incluye total_devices (proxy de tamaño de familia).
- 2026-04-07 — Se expandió la cobertura de los widgets del módulo
location con 6 eventos nuevos sobre acciones top-level del mapa:
- NUEVOS:
legacy_location_map_style_changed (selector de capas), legacy_location_map_center_tapped, legacy_location_map_refresh_tapped, legacy_location_shared ( acción viral del producto), legacy_location_list_sheet_opened, legacy_location_history_type_filter_changed (con type para detectar interés en posiciones SOS).
- 2026-04-15 — Cambios de producto en
legacy_auth:
- Signup reducido a 2 pasos (antes 3). Se quitaron los campos de documento, fecha de nacimiento, lugar de nacimiento, país de nacimiento, relación con el niño y dirección completa. El request al backend ahora solo incluye
firstName, lastName, email, phone (E.164), language (del locale del dispositivo) y password. step_index de los eventos legacy_auth_signup_step_* pasa de 0-2 a 0-1.
- Recover password solo por email: se eliminó la UI de teléfono móvil en ambos screens del flujo (
request_recovery y new_password). Los eventos del flujo se mantienen igual pero ahora siempre corresponden al canal email. Se eliminó del state recoveryFormat (ya no hay rama SMS).
- User properties (Firebase Analytics) ahora se sincronizan solo en shells autenticados (dashboards legacy y payment), no en rutas públicas. Los eventos en sí no cambian — solo se movió el disparador de la sync para evitar llamadas espurias a
/auth/me en login/signup/recover_password.