Firebase y Google Analytics

Adapty puede enviar eventos de suscripción — compras, renovaciones, reembolsos, inicios de prueba — a Firebase y Google Analytics, de modo que una sola integración entrega datos a ambos.

Necesitas tanto un proyecto de Firebase como una propiedad de Google Analytics vinculada, incluso si solo usas uno. Firebase y Google Analytics son los mismos datos en dos consolas distintas.

Los eventos de compra y reembolso llegan con los datos de ingresos, moneda y producto adjuntos. Esos mismos datos alimentan las herramientas móviles de Firebase (Audiencias, Remote Config, etc.) y los informes de Google Analytics.

Esta es una integración de análisis, no una herramienta de atribución de Google Ads; consulta Limitaciones.

Qué puedes hacer con esta integración

Adapty agrupa a los usuarios por subscription_state (subscribed, active_trial, never_subscribed, etc.) y reenvía los eventos del ciclo de vida de la suscripción a Firebase y Google Analytics.

  • Audiences: Crea audiencias de suscriptores en Firebase y Google Analytics para canales externos: retargeting en Google Ads, campañas de FCM y modelado de audiencias similares.
  • Conversiones de Google Ads (Google Analytics): Usa purchase y refund como objetivos de conversión en Google Ads.
  • Firebase Remote Config: Cambia límites de uso, textos o feature flags sin actualizar la app, condicionándolos al estado de la suscripción. (No confundir con Adapty Remote Config, que configura el contenido de flows y paywalls.)
  • Cloud Messaging: Notificaciones push a suscriptores inactivos cuando la app está cerrada.
  • Seguimiento entre dispositivos (Google Analytics): Adapty envía customer_user_id a Google Analytics para que Google Ads pueda rastrear a la misma persona en distintos dispositivos.
  • Embudos de conversión (Google Analytics): Descubre qué hicieron los usuarios en tu app antes de convertir o darse de baja.
  • Predicciones: Predice la pérdida de usuarios y el gasto usando el historial de compras.
  • Pruebas A/B: Prueba funcionalidades de la app en cohortes de suscriptores; por ejemplo, lanza un nuevo patrón de navegación a usuarios en período de prueba y mide la duración de sesión. (Para variantes de paywall, usa Pruebas A/B de Adapty.)

Cómo funciona la integración

  1. Cuando un usuario abre tu app por primera vez, el SDK de Firebase crea un identificador único para la instalación: el Firebase App Instance ID. Firebase y Google Analytics usan este ID para identificar la instalación responsable de cada evento.
  2. Tu app pasa el Firebase App Instance ID al SDK de Adapty. Adapty vincula el perfil del usuario a esta instalación de Firebase.
  3. Cuando el usuario realiza una compra, los servidores de Adapty reenvían el evento a Firebase con el Firebase App Instance ID adjunto. El intercambio de datos se produce de servidor a servidor, fuera de la app.
  4. Firebase asocia la compra a la instalación, lo que te permite ver las compras junto con todo lo que el usuario hizo en la app.

Un Firebase App Instance ID es específico del dispositivo. Cuando el mismo usuario de Adapty abre la app en otro dispositivo, el nuevo Firebase ID sobreescribe el anterior. Usa un customer user ID para mantener la identidad del usuario en todos los dispositivos.

Compras de Stripe

Una compra de Stripe llega a Firebase solo si el comprador abrió tu aplicación móvil primero. El Firebase App Instance ID debe establecerse antes de que se procese la compra de Stripe.

En las compras de App Store y Play Store esto ocurre de forma automática. Se originan dentro de tu aplicación móvil, junto con la llamada a setIntegrationIdentifier. El ID de Firebase ya está presente cuando se efectúa la compra. Las compras de Stripe se originan fuera de la app, en tu servidor. Tu app móvil debe llamar a setIntegrationIdentifier al arrancar — antes de que se produzca cualquier compra de Stripe. De lo contrario, Adapty no tiene ningún ID al que asociarla, y la compra de Stripe nunca llega a Firebase.

Limitaciones

  • No es una herramienta de atribución de Google Ads. Esta integración envía eventos de Adapty a Firebase y Google Analytics para análisis. No atribuye instalaciones de la app a campañas de Google Ads (UAC / Universal App Campaigns) ni separa el tráfico de pago del orgánico. Para la atribución de instalaciones, usa la Atribución de Adapty integrada.
  • Sin relleno histórico. Adapty reenvía eventos desde el momento en que activas la integración: las compras pasadas, renovaciones y reembolsos nunca llegan a Firebase. (Los datos históricos están disponibles en las exportaciones de S3 / GCS de Adapty, pero importarlos a Firebase no forma parte de esta integración.)
  • Los compradores solo en web no llegan a Firebase. Adapty reenvía las compras a Firebase mediante el Firebase App Instance ID que establece tu app móvil. Los compradores que nunca instalaron la app no tienen ID, por lo que sus compras no llegan a Firebase. Consulta compras de Stripe más arriba para más detalles, y considera la integración de Firebase de FunnelFox o un flujo de datos web de Google Analytics para el seguimiento en web.
  • Las compras de Paddle no están incluidas. Esta integración no es compatible con Paddle actualmente. Las compras de Paddle permanecen en Adapty Analytics y no llegan a Firebase por esta vía.
  • Las compras de Stripe heredan las limitaciones propias de Stripe. Consulta las limitaciones de la integración con Stripe.

Instrucciones de configuración

Configurar Firebase

  1. Abre Firebase Console y selecciona o crea un proyecto. Para mantener los análisis de producción limpios de eventos sandbox, usa un proyecto de Firebase separado para las builds de desarrollo.

  2. Vincula el proyecto a una propiedad de Google Analytics. Firebase te lo solicita durante la creación del proyecto, o puedes añadirlo más tarde en Project settings > Integrations > Google Analytics.

    Página de configuración de integración de Firebase en el Adapty Dashboard
  3. En Project settings > General > Your apps, añade una entrada para cada plataforma en la que publiques (iOS / Android / Web). Para Stripe, añade una entrada de app Web — no existe un tipo de app nativa para Stripe. Cada entrada genera un Firebase App ID único y un flujo de datos correspondiente en Google Analytics. Pegarás el ID en la configuración de la integración de Firebase de Adapty durante la configuración.

    Firebase Console mostrando el App ID para una entrada de app iOS

Configurar Adapty

  1. Abre Integrations > Firebase en el Adapty Dashboard.

  2. Activa el toggle Firebase integration.

  3. Introduce las credenciales de cada plataforma en la que publiques tu app. Adapty necesita tanto un Firebase App ID como un Google Analytics secret para cada plataforma — los valores difieren entre iOS, Android y Stripe.

    Adapty DashboardGoogle AnalyticsDónde encontrarlo
    Firebase App IDApp IDFirebase Console > Project settings > General > Your apps
    Google Analytics secretMeasurement Protocol API secretGoogle Analytics > Admin > Data streams > Measurement Protocol API secrets > Create
    Pantalla de creación del secreto de la API del Protocolo de Medición de Google Analytics
  4. Configura cómo Adapty reenvía los datos de ingresos y usuarios. Los cuatro controles comparten una fila en el dashboard:

  • Desplegable Revenue definition: ingresos brutos, ingresos tras la comisión del store o ingresos tras la comisión del store e impuestos.
    • Interruptor Send user properties: cuando está activado, los eventos incluyen subscription_state y subscription_product_id. Para utilizarlos en informes o audiencias, consulta Usar datos de suscripción en informes.
    • Interruptor Report user’s currency: cuando está activado, Adapty convierte la moneda local de cada transacción a la moneda de informes de tu cuenta antes de enviarla a Google Analytics.
    • Interruptor Send trial price: los inicios de prueba son valiosos, ya que la mayoría de los usuarios de pago suelen comenzar con un período de prueba. Sin embargo, la optimización de pujas de Google Ads solo considera rentables los eventos con ingresos asociados. Activa esta opción para asignar un precio de referencia a cada prueba, de modo que Google los trate como conversiones y optimice el gasto publicitario hacia la captación de usuarios que inician pruebas. Al activarlo, aparece el campo Trial price percentage. Indica qué porcentaje del precio completo de la suscripción debe considerar Google que vale cada prueba; por ejemplo, 50% reporta la mitad del precio de la suscripción durante el período de prueba.
    Fila de datos de ingresos de la integración con Firebase con los cuatro controles
  1. Asigna los eventos de Adapty a los nombres de eventos de Firebase/Google Analytics. Adapty ofrece mapas de eventos independientes para iOS y Android, de modo que puedes usar nombres distintos por plataforma. Las compras de Stripe usan el mapa de eventos de iOS — no existe un mapa separado para Stripe. Google Analytics aplica límites estrictos del Measurement Protocol: nombres de eventos de 40 caracteres, nombres de propiedades de usuario de 24 caracteres y valores de 36 caracteres. Google Analytics descarta silenciosamente los eventos personalizados que superan estos límites.

    Algunos eventos utilizan el vocabulario de ecommerce reservado en Firebase y Google Analytics: purchase y refund. La importación de conversiones de Google Ads, los informes de ingresos de Google Analytics y las audiencias predictivas dependen de estas cadenas exactas. Sobrescribe los valores predeterminados solo si no necesitas esas funciones.

Adapty Dashboard Firebase event names configuration
  1. Haz clic en Save. Adapty comienza a reenviar eventos a Firebase en pocos minutos.

Configura el código de tu app

Asegúrate de que tu app incluye el Firebase SDK .

Adapty necesita incluir el Firebase App Instance ID con cada evento; de lo contrario, nada llegará a Firebase (MISSING_INTEGRATION_ID).

Después de FirebaseApp.configure() y Adapty.activate(), solicita el App Instance ID al SDK de Firebase. Pásalo a Adapty mediante setIntegrationIdentifier. Ejecuta esto una vez por lanzamiento de la app, antes de cualquier flow de compra.

Los SDKs de terceros generan los IDs de usuario de forma asíncrona. Es posible que el ID no esté disponible cuando se ejecuta Adapty.activate(). Si tu Customer User ID proviene de uno de estos SDKs, llama a Adapty.activate() sin él. Una vez que el ID esté disponible, llama a setIntegrationIdentifier() y luego a identify() con el CUID.

Verificar la integración

La forma más rápida de confirmar que los eventos están llegando es Firebase DebugView:

  1. En un dispositivo de prueba, ejecuta tu app con el modo debug de Firebase habilitado.
  2. Realiza una compra en sandbox o cualquier evento que hayas habilitado en el Adapty Dashboard.
  3. Abre Firebase Console > Analytics > DebugView. Los eventos aparecen en segundos, con todos sus parámetros.

Los informes estándar —Realtime, Reports, audiencias— se actualizan en minutos o hasta 24 horas, según el informe. DebugView es el único lugar donde puedes confirmarlo en tiempo real.

Usar datos de suscripción en informes y audiencias

Activa Send user properties en el Adapty Dashboard (Configurar Adapty, paso 4). Sin esto, Adapty no enviará subscription_state ni subscription_product_id, y el resto de esta sección no tendrá efecto. De forma predeterminada, Firebase y Google Analytics no exponen las propiedades de usuario. Regístralas cada una como dimensión personalizada. Esto hace que subscription_state y subscription_product_id estén disponibles en informes, Exploraciones y audiencias. Configura las dimensiones en Google Analytics Admin. Después podrás consultarlas tanto en Firebase como en Google Analytics, ya que comparten el mismo backend.

Útil para crear audiencias de Google Ads con usuarios de pago o para alimentar modelos predictivos.

Una vez completada la configuración, Adapty rellenará estas propiedades en los eventos futuros. Los eventos existentes no se actualizarán.

  1. En Google Analytics, abre Admin > Custom definitions.
    Google Analytics Custom Definitions
  2. Haz clic en Create custom dimensions.
  3. Para cada propiedad, configura:
    • Dimension name: Cualquier nombre legible, por ejemplo “Subscription state”.
    • Scope: User.
    • User property: subscription_state o subscription_product_id. El nombre debe coincidir exactamente, ya que Google Analytics distingue entre mayúsculas y minúsculas.
    Google Analytics Nueva Definición Personalizada

Solución de problemas

Los eventos no aparecen en Firebase

  • Asegúrate de que el Firebase App Instance ID esté configurado antes de que se realice la primera compra. Los eventos sin un Firebase ID no llegan a Firebase y generan un error.
  • Asegúrate de que la propiedad de Google Analytics vinculada en la Firebase Console coincida con el flujo de datos.
  • Asegúrate de que las credenciales (ID + secreto) configuradas en Adapty correspondan a la plataforma.

access_level_updated aparece como fallido en el Event Feed

access_level_updated es un evento exclusivo de webhook. Adapty nunca intenta enviarlo a Firebase, pero el Event Feed lo muestra igualmente como entrega fallida. Ignora esa línea. Tu integración funciona correctamente. Para usar este evento, configura la integración con webhook.

Los eventos de sandbox contaminan los datos de producción

Adapty reenvía las transacciones de sandbox y producción al mismo proyecto de Firebase. Consulta Configurar Firebase — usar un proyecto de Firebase separado para las builds de desarrollo evita este problema por completo.

Firebase infravalora los ingresos en apps con StoreKit 2

Firebase registra automáticamente un evento in_app_purchase por cada compra de StoreKit 1, sin necesidad de código. StoreKit 2 usa una API distinta. Firebase nunca ve esas transacciones.

Las consecuencias: las apps que dependen principalmente de SK2 sin un pipeline de ingresos separado pueden registrar la mitad o menos de sus ingresos reales, tanto en Firebase como en Google Analytics y en todas las campañas de Google Ads que dependen de esos datos. La optimización de pujas se basa en cifras incorrectas. Los informes de ingresos muestran solo la mitad del panorama real. La solución: pasa firebase_app_instance_id a Adapty (consulta Configura el código de tu app). Adapty reenvía cada compra a través del Measurement Protocol — ingresos, moneda y producto incluidos.

Los números de Adapty Analytics y Firebase no coinciden

  • StoreKit 2: Con diferencia, la causa principal. Consulta Firebase subestima los ingresos en apps con StoreKit 2.
  • Adopción del SDK: Firebase solo cuenta eventos de usuarios cuya app envía un Firebase App Instance ID. Las versiones antiguas de la app no realizan esa llamada. Adapty sigue contando a esos usuarios; Firebase no.
  • Eventos de sandbox: Adapty también reenvía las transacciones de sandbox a Firebase. Usa un proyecto de Firebase separado para las builds de desarrollo para mantenerlos separados.
  • Muestreo: Google Analytics Explorations aplica muestreo a conjuntos de datos grandes. Para recuentos sin muestreo, consulta la vista en tiempo real o los informes estándar.

Los nombres de eventos personalizados son rechazados por Google Analytics

Google Analytics limita los nombres de eventos a 40 caracteres, solo alfanuméricos y guiones bajos, y deben empezar por una letra. Renombra cualquier evento personalizado de Adapty en el dashboard que no cumpla estas restricciones.