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 los datos a ambas plataformas.

Warning

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.
Note

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 web (Stripe y Paddle)

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

En las compras de App Store y Play Store, esto ocurre automáticamente. Se originan dentro de tu aplicación móvil, junto con la llamada a setIntegrationIdentifier. El ID de Firebase ya está presente cuando se realiza la compra.

Stripe y Paddle procesan las compras fuera de la app, en la web. Tu app móvil debe llamar a setIntegrationIdentifier al iniciar —antes de que se realice cualquier compra web—. De lo contrario, Adapty no tiene ningún ID al que asociarla y la compra 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 con fines analíticos. 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.
  • Los eventos históricos llegan a Firebase en el primer lanzamiento del usuario. Adapty no reenvía los eventos procesados antes de activar la integración. Sin embargo, cuando un suscriptor existente lanza por primera vez una versión con el SDK de Adapty, Adapty importa su historial completo del store y lo reenvía como cualquier otro evento — y Firebase mapea las compras iniciales, renovaciones, conversiones de prueba y compras únicas al evento purchase de GA4, por lo que Adapty envía cada renovación retroalimentada con los ingresos asociados. (Los datos anteriores también 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 han instalado la app no tienen ID: sus compras no llegan a Firebase. Consulta Compras web (Stripe y Paddle) más arriba para más detalles, y considera la integración de FunnelFox con Firebase o un flujo de datos web de Google Analytics para el seguimiento web.
  • Las compras web heredan las limitaciones específicas del store. Consulta las limitaciones de la integración con Stripe y las limitaciones de la integración con Paddle.

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 por cada plataforma en la que publiques (iOS / Android / Web). Para Stripe y Paddle, añade una entrada de aplicación Web, ya que ninguno de los dos tiene un tipo de app nativa. Cada entrada genera un Firebase App ID único y el correspondiente flujo de datos en Google Analytics. Pegarás ese ID en la configuración de la integración con Firebase de Adapty durante la configuración.

    Firebase Console showing the App ID for an iOS app entry

Configurar Adapty

  1. Abre Integrations > Firebase en el Adapty Dashboard.

  2. Activa el botón Firebase integration.

  3. Introduce las credenciales para cada plataforma en la que publiques. Adapty necesita tanto un Firebase App ID como un Google Analytics secret para cada plataforma — cada valor es distinto en iOS, Android, Stripe y Paddle. Una plataforma que tenga solo uno de los dos valores no enviará eventos.

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
  1. Configura cómo Adapty reenvía los datos de ingresos y usuarios. Los cuatro controles comparten una fila en el dashboard:
  • Revenue definition desplegable: Ingresos brutos, Ingresos tras la comisión de la store, o Ingresos tras la comisión de la store e impuestos.

    • Send user properties toggle: Cuando está activado, los eventos incluyen subscription_state y subscription_product_id. Para usarlos en informes o audiencias, consulta Usar datos de suscripción en informes.
    • Report user’s currency toggle: Cuando está activado, Adapty reporta cada venta en la moneda con la que pagó el comprador. Cuando está desactivado, reporta en USD.
    • Send trial price toggle: Los inicios de prueba son valiosos — la mayoría de los usuarios de pago suelen empezar con una prueba. Pero la optimización de pujas de Google Ads solo trata como relevantes los eventos con ingresos. Activa esto para asignar un precio de marcador a cada prueba y que Google las vea como conversiones y optimice el gasto en publicidad hacia la captación de usuarios que inician pruebas. Cuando está activado, aparece el campo Trial price percentage. Establécelo en el porcentaje del precio completo de la suscripción que Google debe considerar que vale cada prueba; por ejemplo, 50% reporta la mitad del precio de la suscripción durante la 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, por lo que puedes usar nombres distintos por plataforma. Las compras de Stripe y Paddle utilizan el mapa de eventos de iOS: no existe un mapa independiente para ninguno de ellos.

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.

Warning

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

Tip

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.

Note

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 webhooks. Adapty nunca lo envía a esta integración. Sin embargo, Adapty registra un resultado para cada integración habilitada, y un evento no compatible se muestra como un error.

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 más común. Consulta Firebase infracontabiliza los ingresos de apps con StoreKit 2.
  • Adopción del SDK: Firebase solo cuenta los eventos de usuarios cuya app envía un Firebase App Instance ID. Las versiones antiguas de la app no hacen esa llamada. Adapty sí cuenta esos usuarios; Firebase, no.
  • Eventos sandbox: Adapty también reenvía las transacciones sandbox a Firebase. Usa un proyecto de Firebase independiente para las builds de desarrollo y así mantenerlos separados.
  • Importación del historial del primer lanzamiento: Cuando un suscriptor existente abre por primera vez una build con el SDK de Adapty, Adapty reenvía todo su historial del store a Firebase, enviando cada renovación pasada como un evento purchase de GA4 con sus ingresos. Firebase puede reportar ingresos muy superiores a los de Adapty para el período afectado. Consulta Limitaciones.
  • Muestreo: Las Exploraciones de Google Analytics aplican muestreo a conjuntos de datos grandes. Para conteos sin muestreo, revisa 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.