Rastrear vistas de pantalla de flow en el SDK de Kotlin Multiplatform
Cada vez que un usuario abre una pantalla en un flow, el SDK reporta un evento flow_screen_showed a tu app. Reenvíalo a Amplitude, Mixpanel o cualquier analítica de producto que uses, para analizar las pantallas del flow junto con el resto de los eventos de tu app.
Para ver hasta qué punto llegan los usuarios en un flow, no necesitas ningún código — las métricas de flow ya muestran vistas, finalizaciones y abandono por pantalla en el Adapty Dashboard. Usa esta guía cuando necesites esos mismos datos en tu propio sistema de analítica, combinados con eventos que Adapty no conoce.
Antes de empezar
Necesitas:
- Adapty Kotlin Multiplatform SDK v4 o posterior: El callback de análisis de flows no existe en versiones anteriores.
- Una versión del flow publicada después de que esta función esté disponible: Adapty genera los eventos de pantalla al publicar un flow, por lo que un flow publicado antes de este momento no reportará nada. Si no llegan eventos a tu aplicación, publica una nueva versión del flow e inténtalo de nuevo.
Qué recibes
Un flow reporta flow_screen_showed cada vez que un usuario abre una de sus pantallas. Adapty contabiliza estos eventos en sus propios análisis de flows y también los envía a tu aplicación, para que puedas construir el mismo embudo en tus propias herramientas de análisis.
| Parámetro | Descripción |
|---|---|
instanceId | El ID de la pantalla que el usuario abrió. |
screen_order | La posición de la pantalla en el flow. |
is_last_screen | true cuando la pantalla no tiene a dónde seguir. Un flow con ramificaciones puede terminar en varias pantallas distintas, y cada una reporta true. |
Tanto isBackendEvent como isCustomerEvent son true en este evento: Adapty sigue contabilizándolo y tu aplicación también lo recibe.
Kotlin Multiplatform entrega estos parámetros como una cadena JSON sin procesar, así que decodifica paramsJsonString antes de leer cualquiera de ellos.
Las visualizaciones de pantalla llegan al mismo callback de analíticas que el resto de eventos del flow. Consulta Gestiona eventos de flow y paywall para saber dónde registrarlo.
Reenvía cada vista de pantalla a tu análisis
Comprueba el nombre del evento antes de leer cualquier otra cosa, porque un flow reporta otros eventos a través del mismo callback.
override fun flowViewDidReceiveAnalyticEvent(
view: AdaptyUIFlowView,
name: String,
paramsJsonString: String,
) {
if (name != "flow_screen_showed") return
val params = Json.parseToJsonElement(paramsJsonString).jsonObject
val screenId = params["instanceId"]?.jsonPrimitive?.contentOrNull
val screenOrder = params["screen_order"]?.jsonPrimitive?.intOrNull
// Send screenId and screenOrder to your analytics provider here.
}
Ejecuta código cuando el usuario llega al final
is_last_screen es true en una pantalla desde la que el flow no puede avanzar. Úsalo para desbloquear contenido, marcar el onboarding como completado o enviar un evento de finalización propio, sin necesidad de añadir una acción de botón en el builder.
override fun flowViewDidReceiveAnalyticEvent(
view: AdaptyUIFlowView,
name: String,
paramsJsonString: String,
) {
if (name != "flow_screen_showed") return
val params = Json.parseToJsonElement(paramsJsonString).jsonObject
if (params["is_last_screen"]?.jsonPrimitive?.booleanOrNull != true) return
// The user reached the end of the flow.
}
Llegar a la última pantalla no es lo mismo que cerrar el flow. Un usuario puede ver la pantalla final y descartar el flow sin hacer nada, y un flow con ramificaciones puede terminar en varias pantallas diferentes. Para saber que el flow en sí ha desaparecido, usa flowViewDidDisappear en su lugar.