G2 32 x 32 White Circle

4.7 STARS ON G2

Analiza tu aplicación móvil gratis. No se requiere tarjeta de crédito. 100 mil sesiones.

PUBLICADO

15 MIN LEER

COMPARTIR ESTA PUBLICACION

Analítica de apps móviles Flutter: una guía práctica de implementación

BY Jonas Kurzweg
COMPARTIR ESTA PUBLICACION
Flutter Mobile App Analytics

Flutter permite que los equipos lancen una única base de código a iOS, Android y la web, pero su UI declarativa basada en widgets cambia la forma en que debe implementarse la analítica. El comportamiento del usuario no está ligado a las vistas nativas de la misma manera, lo que hace más complejo el seguimiento de las interacciones con widgets, los flujos de navegación y el uso de funciones.

Esta guía cubre la implementación de analítica específica para Flutter, desde el seguimiento de taps en widgets hasta el manejo de los cambios de ruta de Navigator 2.0.

¿Por qué la analítica es única en Flutter?

La arquitectura de Flutter cambia la forma en que se debe hacer el seguimiento del comportamiento del usuario. Como Flutter renderiza su propia UI y controla la navegación internamente, la analítica no puede depender de las mismas señales que se usan en las apps nativas de iOS o Android. Los equipos necesitan instrumentación específica para Flutter para obtener insights precisos.

  • El árbol de widgets cambia la forma en que se hace el seguimiento de las interacciones

Flutter construye su UI a partir de un árbol de widgets jerárquico. Cada elemento visual, desde una etiqueta ‘Text’ hasta una vista de scroll compleja, lo renderiza Flutter en lugar de las vistas nativas de iOS o Android. Como resultado, los enfoques de analítica nativos que dependen de los ciclos de vida de vistas o actividades no pueden detectar automáticamente pantallas ni interacciones.

Las acciones del usuario a menudo pasan por varias capas de widgets antes de llegar a un elemento interactivo. Para entender con qué componentes de la UI interactúan realmente los usuarios, la analítica debe hacer seguimiento explícito de las interacciones a nivel de widget en lugar de depender de las señales de la jerarquía de vistas nativas.

  • La UI declarativa afecta cuándo se disparan los eventos de analítica

Flutter usa un modelo de UI declarativo en el que los widgets se reconstruyen cada vez que cambia el estado de la aplicación. Estas reconstrucciones son frecuentes y no representan la intención del usuario.

Por eso, los eventos de analítica no pueden estar ligados a la lógica de renderizado. El comportamiento del usuario debe capturarse a partir de los callbacks de interacción y los momentos del ciclo de vida de los widgets que reflejan acciones intencionales. Sin esta separación, las reconstrucciones pueden generar con facilidad datos de analítica duplicados o engañosos.

  • La navegación requiere seguimiento explícito de pantallas

Flutter gestiona la navegación a través de su sistema ‘Navigator’ y ‘Route’, no de los view controllers nativos ni de las activities. Las transiciones de pantalla son cambios en el árbol de widgets en lugar de eventos del ciclo de vida nativo.

Ya sea que uses Navigator 1.0 (enrutamiento imperativo) o Navigator 2.0 (enrutamiento declarativo), los nombres y las transiciones de pantalla no están disponibles automáticamente para las herramientas de analítica. Para entender qué pantallas ven los usuarios y cómo se mueven por la app, los equipos deben observar explícitamente los cambios de ruta o las actualizaciones del estado de la página.

  • El comportamiento multiplataforma debe validarse

La única base de código de Flutter se ejecuta en distintas plataformas con diferentes patrones de interacción. Los gestos de navegación, el comportamiento de retroceso y el manejo del táctil difieren entre iOS y Android, incluso cuando el código de la UI es idéntico.

La analítica debe confirmar que los usuarios siguen las mismas rutas e interactúan con los mismos elementos de la UI en todas las plataformas. Sin un seguimiento deliberado, las diferencias de comportamiento específicas de cada plataforma pueden quedar ocultas detrás de una base de código compartida.

Qué medir en una app Flutter

Eventos de interacción con widgets

Registra las interacciones significativas con widgets que indiquen uso de funciones o intención del usuario, como:

  • Taps en botones con contexto: No solo "button_pressed" sino "add_to_cart_button" con detalles del producto, "filter_applied" con los filtros seleccionados o "share_button" con el tipo de contenido.

  • Interacciones con campos de formulario: Haz seguimiento de cuándo los usuarios se enfocan en los widgets ‘TextField’, qué campos omiten y dónde falla la validación al enviar el formulario.

  • Reconocedores de gestos: Registra las direcciones de swipe en los widgets ‘PageView’, las acciones de pulsación larga en los ítems de ‘ListView’, los gestos de pinch-to-zoom en imágenes y los eventos de arrastre en interacciones personalizadas.

  • Widgets de alternancia y selección: Registra los cambios de estado de ‘Switch’, ‘Checkbox’, ‘Radio’ y ‘DropdownButton’ para entender los patrones de preferencia.

Transiciones de pantalla y vista

Los patrones de navegación de Flutter requieren seguimiento explícito:

Transiciones de Navigator 1.0:

  • Navegación por rutas con nombre: Haz seguimiento de a qué rutas navegan los usuarios y de la ruta de navegación (push vs. pushReplacement vs. pushAndRemoveUntil).

  • Rutas modales: Registra cuándo ‘showDialog’, ‘showBottomSheet’ o ‘showModalBottomSheet’ abren overlays, y si los usuarios descartan o completan la acción.

  • Navegación por pestañas: En ‘TabBarView’ o ‘BottomNavigationBar’, haz seguimiento de los cambios de pestaña para identificar las secciones populares.

Transiciones de Navigator 2.0:

  • Cambios en la pila de páginas: Registra cuándo se actualiza la lista declarativa de páginas, incluyendo qué páginas se agregaron o se quitaron de la pila.

  • Manejo de deep links: Haz seguimiento de cuándo ‘RouteInformationParser’ procesa URLs para navegar directamente a las pantallas.

  • Comportamiento del botón de retroceso: Distingue entre el retroceso por hardware de Android, el swipe-back de iOS y la navegación con el botón de retroceso in-app.

Patrones de uso de funciones

Identifica qué funciones específicas de Flutter impulsan el engagement:

  • Uso de widgets personalizados: Si has creado widgets reutilizables personalizados (gráficos, reproductores multimedia, tutoriales interactivos), haz seguimiento de la frecuencia de interacción y las tasas de finalización.

  • Adaptaciones por plataforma: Los ‘Platform.isIOS’ y ‘Platform.isAndroid’ de Flutter te permiten mostrar diferentes widgets por plataforma. Registra con qué variantes interactúan los usuarios para validar las decisiones de diseño.

  • Finalización de animaciones y transiciones: Haz seguimiento de si los usuarios ven los tutoriales animados, completan los recorridos de scroll de AnimatedList u omiten las transiciones.

Progreso del flujo de onboarding

Mapea los pasos exactos a lo largo de las pantallas de onboarding:

  • Swipes en PageView: Registra qué diapositivas de onboarding ven los usuarios, en qué orden y dónde abandonan.

  • Taps en el botón de omitir: Haz seguimiento de si los usuarios omiten el onboarding por completo o saltan a pasos específicos.

  • Solicitudes de permisos: Registra los prompts de ‘permission_handler’ (cámara, ubicación, notificaciones) y si los usuarios conceden o deniegan el acceso.

  • Finalización de tutoriales: Haz seguimiento de la finalización de los widgets de tutorial interactivo para medir la efectividad del onboarding.

Acciones críticas para el embudo

Instrumenta las rutas de conversión desde el descubrimiento hasta la finalización:

  • Del descubrimiento del producto a la compra: Haz seguimiento de las vistas de la lista de productos, las vistas de detalle del producto, las acciones de agregar al carrito, el inicio del checkout, la selección del método de pago y la confirmación del pedido.

  • Del engagement con el contenido al compartir: registra las aperturas de artículos, la profundidad de scroll (usando ‘ScrollController’), la duración de la reproducción multimedia, los taps en el botón de compartir y los compartidos exitosos.

  • De la búsqueda a la interacción con el resultado: Haz seguimiento de los envíos de consultas de búsqueda, las vistas de la lista de resultados, los taps en los ítems de resultado y las acciones realizadas después de ver los resultados.

Estas categorías capturan el comportamiento del usuario específico de Flutter. Evita los KPI móviles genéricos como "sesiones" y "DAU" que aplican a cualquier app: enfócate en las interacciones con widgets, los patrones de navegación y el uso de funciones que revelan cómo experimentan los usuarios tu UI de Flutter.

Planificación de analítica para equipos Flutter

Sigue estos pasos para planificar la analítica antes de agregar código de seguimiento y así evitar datos incompletos.

  • Define las rutas de usuario críticas: Identifica los 3 a 5 flujos más importantes de tu app, como del onboarding a la activación o del registro a la primera transacción. Haz seguimiento primero de las interacciones con widgets a lo largo de estas rutas en lugar de registrar cada acción posible.

  • Establece convenciones de nomenclatura desde el principio: Acuerda los nombres de eventos y las claves de parámetros antes de la implementación. Usa formatos consistentes como ‘object_action’ y estandariza claves como ‘product_id’ para mantener la analítica limpia y consultable.

  • Ten en cuenta las diferencias entre plataformas: El comportamiento del usuario puede diferir entre iOS y Android, especialmente en torno a los gestos y la navegación. Estructura los eventos de modo que puedan segmentarse por plataforma desde el principio para comparar el comportamiento con precisión.

  • Protege los datos sensibles del usuario: Identifica los widgets que manejan entradas sensibles, como contraseñas o pagos. Exclúyelos de la captura visual o del seguimiento automático antes de lanzar a producción.

  • Documenta el plan de seguimiento: Mantén una lista compartida de eventos, parámetros y condiciones de disparo. Esto mantiene el seguimiento consistente a medida que la app evoluciona y nuevos miembros del equipo contribuyen.

Cómo implementar analítica en Flutter

Los siguientes ejemplos de código son ejemplos simplificados pensados para ilustrar conceptos clave. No están listos para producción y deben adaptarse a la arquitectura de tu app, el flujo de inicialización, los requisitos de privacidad/consentimiento y la documentación más reciente del proveedor.

  1. Elige un proveedor de analítica e inicializa el SDK Selecciona un proveedor que admita la arquitectura multiplataforma de Flutter. Las opciones incluyen UXCam (analítica de comportamiento con contexto de session replay), Firebase Analytics (gratuito, integrado con Google), Mixpanel (segmentación avanzada) o Amplitude (cohortes de comportamiento).

    Inicializa el SDK en ‘main.dart’ antes de ejecutar tu app:

    Nota: Este fragmento es solo ilustrativo. En una app real, asegúrate de completar la configuración completa del proveedor (por ejemplo, la inicialización de Firebase, la configuración por plataforma, el manejo del entorno y la lógica de consentimiento) siguiendo la documentación oficial del SDK

    Para los proveedores que requieren configuración específica por plataforma, agrega los archivos ‘google-services.json’ de Android o ‘GoogleService-Info.plist’ de iOS según se documenta.

  2. Estructura nombres de eventos y parámetros significativos Usa una convención de nomenclatura consistente para los eventos y parámetros. Por ejemplo; // Good: descriptive action with context

    analyticsService.logEvent('product_added_to_cart', parameters: {

    'product_id': product.id,

    'product_name': product.name,

    'category': product.category,

    'price': product.price,

    'currency': 'USD',

    });

    // Bad: vague event name, missing context

    analyticsService.logEvent('button_click', parameters: {

    'id': product.id,

    }); Nota: Ajusta los nombres de eventos, los parámetros y la validación para que coincidan con tu modelo de dominio y tu esquema de analítica. Valida siempre los límites, los nombres reservados y los tipos de datos según las directrices actuales de tu proveedor de analítica. Convenciones de nomenclatura:

    • Usa ‘snake_case’ para la consistencia entre plataformas

    • Empieza con el objeto (product_, user_, checkout_)

    • Sigue con la acción (added, viewed, completed)

    • Incluye el tipo de widget cuando sea relevante (_button, _card, _tile)

    Reglas de parámetros:

    • Mantén las claves de parámetros consistentes entre eventos relacionados

    • Usa tipos primitivos (strings, números, booleanos), no objetos complejos

    • Limita los parámetros a 5-10 por evento para el rendimiento de las consultas

    • Incluye un timestamp para los eventos del lado del cliente para detectar transmisiones demoradas

  3. Implementa el seguimiento de pantallas con NavigatorObserver Crea un ‘NavigatorObserver’ personalizado para registrar automáticamente las vistas de pantalla:

    Agrega el observer a tu ‘MaterialApp’:

    Nota: Esta implementación del observer es intencionalmente mínima. En producción, es posible que necesites lógica adicional para navegadores anidados, librerías de enrutamiento, deep links y convenciones de nomenclatura de pantallas personalizadas según la arquitectura de navegación de tu app.

    Para Navigator 2.0, implementa el seguimiento de pantallas en tu ‘RouterDelegate’ detectando los cambios en la lista de páginas y extrayendo los nombres de pantalla de las keys de página.

  4. Evita eventos duplicados con una gestión adecuada del ciclo de vida Los widgets de Flutter se reconstruyen con frecuencia. Coloca las llamadas de analítica en los callbacks, no en ‘build()’:

    Para los StatelessWidgets, usa ‘WidgetsBinding.instance.addPostFrameCallback’ para registrar eventos después de que se renderice el primer frame:

  5. Prueba la analítica en las builds de iOS y Android Las implementaciones de analítica deben funcionar de forma idéntica en ambas plataformas:

    • Ejecuta builds de debug en dispositivos físicos: Los emuladores pueden no disparar correctamente los eventos específicos de cada plataforma. Prueba en hardware real de iOS y Android.

    • Verifica la transmisión de eventos: Usa las vistas de debug del proveedor para confirmar que los eventos aparecen con los parámetros correctos en ambas plataformas.

    • Revisa los gestos específicos de cada plataforma: Prueba que tanto el swipe-to-go-back (iOS) como el botón de retroceso por hardware (Android) registren eventos de navegación.

    • Valida los tiempos: Asegúrate de que los eventos se disparen en el mismo momento lógico en ambas plataformas. iOS puede procesar los gestos de forma diferente a Android.

  6. Mantén la consistencia de nomenclatura mediante constantes centralizadas Define los nombres de eventos y las claves de parámetros en una ubicación central:

    Esto evita los errores de tipeo y facilita la refactorización de los nombres de eventos. Tu IDE autocompletará los nombres de eventos y detectará errores en tiempo de compilación.

UXCam para analítica de Flutter

UXCam ofrece analítica específica para Flutter mediante la captura automática de interacciones con widgets, el seguimiento de las transiciones de pantalla y el registro de eventos de gestos. El SDK de UXCam para Flutter requiere una configuración mínima: inicialízalo con tu app key y UXCam comienza a grabar las sesiones de los usuarios sin instrumentación manual para cada widget.

El mismo SDK cubre Flutter Web. El plugin flutter_uxcam graba las sesiones del navegador con una web app key, y el etiquetado de pantallas, los eventos personalizados y las propiedades de usuario funcionan de la misma manera, de modo que un solo plan de seguimiento sirve para el móvil y la web. Algunas capacidades son solo para móvil hoy en día, incluyendo la captura de crashes y ANR y los mapas de calor; la página de soporte de plataformas de Flutter Web enumera lo que está disponible en cada plataforma.

UXCam App flows

Beneficios clave para las apps Flutter:

  • Seguimiento de pantallas creado para Flutter: FlutterUxcamNavigatorObserver captura los cambios de ruta de Navigator 1.0 y 2.0, así las pantallas se nombran sin código de seguimiento personalizado para cada ruta

  • Seguimiento de interacciones con widgets: Captura las coordenadas de los taps, el comportamiento de scroll en ‘ListView/PageView’ y los eventos de gestos

  • Contexto visual: La grabación de sesión muestra exactamente lo que los usuarios ven y hacen, revelando problemas invisibles solo en los datos de eventos

  • Análisis de flujos de usuario: Filtra las sesiones por eventos de analítica para observar a los usuarios afectados. Si el checkout cae después de cambios en el pago, reproduce esas sesiones específicas

  • Mapas de calor: Los mapas de calor de taps superponen los datos sobre las pantallas de Flutter, mostrando qué widgets atraen la atención

Al combinar el seguimiento de eventos con la grabación de sesión, los equipos Flutter pueden diagnosticar problemas más rápido. UXCam muestra qué pasó a través de los eventos y revela por qué mediante el contexto visual de la sesión, ayudando a los equipos a resolver los problemas de forma más eficiente. Para los detalles de integración, consulta la guía para desarrolladores de Flutter de UXCam.

Ejemplo: una app Flutter que usa UXCam para analítica

Recora es una app de salud basada en Flutter que utilizan los pacientes en recuperación de procedimientos cardíacos. Después de registrarse, los usuarios reciben un kit de recuperación que incluye una tablet y dispositivos de monitoreo de salud. A través de la app, los pacientes se unen a sesiones de coaching en vivo, registran sus signos vitales y siguen planes de recuperación junto con sus proveedores de atención.

Recora Flutter case study

El equipo comenzó a recibir quejas de que el botón “Join session” no funcionaba, especialmente de los usuarios mayores.

La analítica básica mostraba que los usuarios intentaban unirse a las sesiones, pero no explicaba por qué fallaban. Usando UXCam, el equipo revisó los mapas de calor y las grabaciones de sesión y detectó rápidamente el problema: muchos usuarios presionaban y mantenían presionado el botón en lugar de hacerle tap, como un control remoto físico. Ese gesto no disparaba el evento, así que las sesiones nunca comenzaban.

El equipo actualizó la UI de Flutter para admitir tanto los gestos de tap como los de presionar y mantener. La solución fue simple, pero el impacto fue inmediato:

  • 42% menos de tickets de soporte relacionados con unirse a las sesiones

  • Un tercio menos de dispositivos devueltos como “defectuosos”

  • 30% de caída en los rage taps

Para Recora, combinar los datos de eventos con el contexto de la sesión marcó la diferencia. Les ayudó a entender el comportamiento real a nivel de widget en Flutter y a corregir un problema crítico que la analítica tradicional por sí sola no podía explicar.

Lee más sobre la experiencia de Recora en este caso de estudio.

Realmente sentí que nos estaban escuchando, avanzamos por la contratación muy rápido. Fue una de las plataformas más fáciles que hemos tenido que implementar.

- Emma Cancelliere Stanton, Head of Product, Recora

Errores comunes de la analítica en Flutter

La arquitectura de Flutter hace que sea fácil equivocarse con la analítica si dependes de patrones del desarrollo móvil nativo. Estos son los errores comunes con los que se topan los equipos Flutter al configurar la analítica.

  • Registrar eventos en build()

Los widgets se reconstruyen a menudo en Flutter. Registrar la analítica dentro del método ‘build()’ provoca eventos duplicados y conteos inflados. El comportamiento del usuario debe rastrearse a partir de los callbacks de gestos o los métodos del ciclo de vida que representan acciones intencionales.

  • Depender del auto-tracking nativo

Los SDK de analítica nativos dependen de los ciclos de vida de las vistas de iOS y Android. Flutter omite estas capas, así que las vistas de pantalla y las interacciones no se capturan automáticamente. Sin un seguimiento explícito de widgets y navegación, se pierde comportamiento clave del usuario.

  • Nombres de pantalla faltantes en la navegación

Si las rutas no tienen nombre o las keys de página no se rastrean, la analítica puede registrar la navegación sin identificar qué pantalla vio el usuario. Esto es especialmente común al usar Navigator 2.0 con enrutamiento declarativo.

  • Hacer seguimiento de widgets sin identificadores estables

Los widgets del mismo tipo se reconstruyen con frecuencia y pueden aparecer en varios lugares. Sin identificadores estables, la analítica no puede distinguir con qué instancia interactuó un usuario, lo que genera datos ambiguos.

  • Suponer un comportamiento idéntico entre plataformas

Flutter comparte el código de la UI, pero el comportamiento del usuario puede diferir entre iOS y Android. La navegación de retroceso, los gestos y los patrones de interacción varían según la plataforma. La analítica debe validar que los flujos funcionen como se espera en ambas.

Obtén una analítica de Flutter más clara con UXCam

Debido al árbol de widgets de Flutter, la UI declarativa y la navegación personalizada, obtener insights significativos depende de rastrear las interacciones correctas y de entender cómo se mueven realmente los usuarios por tu app en todas las plataformas.

UXCam ayuda a los equipos Flutter a conectar los datos de eventos con el comportamiento real del usuario agregando contexto visual a la analítica. Puedes ver cómo interactúan los usuarios con los widgets, cómo se descomponen los flujos y dónde aparece la fricción, sin depender de supuestos nativos de cada plataforma ni duplicar esfuerzos entre iOS y Android.

Si quieres más confianza en cómo experimentan los usuarios tu app Flutter y mayor claridad sobre lo que ocurre dentro de los flujos clave, comienza con UXCam y convierte tu analítica en insights sobre los que puedas actuar.

Preguntas frecuentes

Preguntas frecuentes

¿Cómo hago seguimiento de pantallas en Navigator 2.0?

Navigator 2.0 usa enrutamiento declarativo, así que no dispara los callbacks didPush ni didPop. Para hacer seguimiento de las vistas de pantalla, observa los cambios en la pila de páginas dentro de tu método RouterDelegate.build(). También puedes usar paquetes de enrutamiento como go_router o auto_route, que proporcionan observers integrados para analítica.

¿Cómo etiqueto las interacciones con widgets personalizados?

Envuelve el widget con un GestureDetector y registra los eventos dentro de los callbacks de interacción. Para los widgets reutilizables, expón hooks de analítica a través de los parámetros del constructor para que la analítica pueda inyectarse sin acoplar la lógica al código de la UI.

¿UXCam funciona con Flutter Web y desktop?

El SDK de UXCam para Flutter admite Flutter Web además de iOS y Android, todo desde el paquete flutter_uxcam. La grabación de sesión, el etiquetado de pantallas, los eventos y las propiedades de usuario funcionan en la web, mientras que el manejo de crashes y los mapas de calor son solo para móvil por ahora. Los targets de Flutter desktop (macOS, Windows y Linux) no son compatibles.

¿Cómo evito hacer seguimiento de eventos duplicados por las reconstrucciones de widgets?

Coloca las llamadas de analítica en los callbacks de gestos o en los métodos del ciclo de vida, nunca en ‘build()’. Para StatefulWidget, registra en ‘initState()’. Para StatelessWidget, usa ‘WidgetsBinding.instance.addPostFrameCallback()’ para registrar después del primer render.

Artículos relacionados

Las mejores herramientas de analítica de apps móviles

Herramienta de mapas de calor de apps móviles para Flutter

Herramienta de grabación y reproducción de sesiones para Flutter

Herramienta de reporte de crashes de Flutter

AUTOR

Jonas Kurzweg

Product Analytics Expert

UX, marketing & product nerd. Coffee enthusiast. Working at UXCam.

Jonas Kurzweg
PUBLICADO

Prueba UXCam gratis

"Análisis de productos verdaderamente prácticos, respaldados por un equipo que realmente se preocupa."
- Daniel T.
Google SDK round 1

Artículos relacionados

Flutter

Herramienta de grabación de sesión para Flutter: UXCam

Optimiza el rendimiento de tu aplicación Flutter con la herramienta de grabación y sesión replay de UXCam. Fácil integración, funciones optimizadas y soporte...

Jonas Kurzweg
Jonas Kurzweg

Product Analytics Expert

Product Analytics

Las mejores herramientas de analítica de producto con autocapture en 2026

Las 6 mejores herramientas de analítica de producto con autocapture en 2026, comparadas por soporte móvil, captura de datos y...

begum
Begüm Aykut

Growth Marketing Manager

Conversion Analysis

La herramienta de Mapa de calor para apps móviles de Flutter: UXCam

Descubre cómo la herramienta de Mapa de calor para apps móviles de Flutter de UXCam brinda información accionable para mejorar la experiencia de tus usuarios. Configuración sencilla y funciones...

Jonas Kurzweg
Jonas Kurzweg

Product Analytics Expert

What’s UXCam?

Autocapture Analytics icon
Autocapture Analytics
With autocapture and instant reports, you focus on insights instead of wasting time on setup.
Customizable Dashboards
Customizable Dashboards
Create easy-to-understand dashboards to track all your KPIs. Make decisions with confidence.
icon new revenue streams (16)
Session Replay & Heatmaps
Replay videos of users using your app and analyze their behavior with heatmaps.
icon new revenue streams (17)
Funnel Analytics
Optimize conversions across the entire customer journey.
icon new revenue streams (18)
Retention Analytics
Learn from users who love your app and detect churn patterns early on.
icon new revenue streams (19)
User Journey Analytics
Boost conversion and engagement with user journey flows.

Start Analyzing Smarter

Discover why over teams across 50+ countries rely on UXCam. Try it free for 30 days, no credit card required.

Trusted by the largest brands worldwide
naviclassplushousingjulobigbasket