Política de Privacidad — RingVision
Última actualización: septiembre de 2026
1. Responsable del tratamiento
RingVision está desarrollado por Ridge Iyamu, con domicilio en Via Castelletto 11/3b, Almese (TO), Italia.
Para cualquier solicitud relativa a la privacidad: privacy@ringvision.app
2. Datos recogidos
Recogemos los siguientes datos personales:
- Datos de registro: correo electrónico, nombre o alias
- Datos del perfil de atleta: edad, peso, altura, guardia (opcionales)
- Datos de uso: vídeos subidos, combinaciones guardadas, etiquetas, sesiones de entrenamiento
- Vídeos de entrenamiento: son contenidos en los que apareces y, cuando los sometes al Análisis IA, dan lugar a datos biométricos según el art. 9 del RGPD (sección 4bis)
- Diario de entrenamiento (opcional): duración de la sesión, sensación, RPE (1–10), estado mental no clínico, notas de texto y enlaces opcionales a vídeos o sesiones. Todos los campos son opcionales salvo la sensación, son de acceso exclusivo del propietario y nunca se comparten con entrenadores o gimnasios, ni se usan para elaboración de perfiles o fines médicos.
- Peso corporal (opcional, solo con consentimiento): se registra en una colección específica, una medición por día. Es un dato relativo a la salud — sección 4quater.
- Objetivos personales (opcionales): valores objetivo sobre vídeos, combinaciones, peso o personalizados, con vencimiento semanal, mensual o trimestral. De acceso exclusivo del propietario, nunca compartidos.
- Datos de pago: gestionados por Apple App Store, Google Play o Stripe (planes para gimnasios). No accedemos a los datos de la tarjeta.
- Datos de diagnóstico: informes de fallos mediante Firebase Crashlytics
- Datos analíticos: estadísticas de uso mediante Firebase Analytics, recogidas solo tras tu consentimiento
3. Finalidades del tratamiento
Los datos se tratan para:
- Prestar el servicio RingVision
- Gestionar la cuenta y la autenticación
- Procesar las suscripciones en la aplicación y los planes para gimnasios
- Analizar técnicamente tus vídeos, solo con tu consentimiento explícito (sección 4bis)
- Mejorar el producto mediante estadísticas de uso, solo con tu consentimiento (Firebase Analytics)
- Mejorar el modelo de análisis con IA mediante datos de movimiento conservados de forma seudonimizada, solo con un consentimiento separado y opcional (sección 4ter)
- Enviar notificaciones relativas al entrenamiento (solo si están autorizadas)
4. Base jurídica (RGPD)
- Ejecución del contrato (art. 6.1.b): para prestar el servicio
- Interés legítimo (art. 6.1.f): para la seguridad y la prevención del fraude
- Consentimiento (art. 6.1.a): para las notificaciones opcionales y las estadísticas de uso
- Consentimiento explícito (art. 9.2.a): para el análisis biométrico de los vídeos (4bis), para la conservación de los datos de movimiento con fines de mejora del modelo (4ter) y para el registro del peso corporal (4quater)
Los cuatro consentimientos anteriores son distintos e independientes: puedes otorgar uno sin otorgar los demás, y retirarlos por separado en cualquier momento desde Ajustes → Privacidad en la aplicación (art. 7.3 del RGPD). Ninguna función de la aplicación está condicionada al consentimiento de la sección 4ter (art. 7.4 del RGPD).
4bis. Datos biométricos — Análisis IA (RGPD art. 9)
La función «Análisis IA» procesa los vídeos de shadow boxing para detectar la postura del cuerpo (puntos clave del esqueleto) mediante MediaPipe en Google Cloud Run. Estos datos pertenecen a la categoría de DATOS BIOMÉTRICOS conforme al art. 9 del RGPD.
Base jurídica: art. 9.2.a — CONSENTIMIENTO EXPLÍCITO del interesado. El consentimiento se solicita la primera vez que inicias el análisis con IA sobre un vídeo, con una explicación específica y sin casillas premarcadas.
Retirada: puedes retirar el consentimiento en cualquier momento desde Ajustes → Privacidad → Análisis biométrico de los vídeos. Tras la retirada no se analiza ningún vídeo nuevo; los análisis ya realizados siguen disponibles hasta que elimines los vídeos correspondientes, y se eliminan junto con ellos. La retirada no afecta a la licitud del tratamiento anterior (art. 7.3 del RGPD).
Tratamiento: los puntos del esqueleto detectados nunca se muestran superpuestos sobre el vídeo ni se comparten con entrenadores, gimnasios o terceros. Se utilizan para calcular las métricas de la sesión (número de golpes, golpes por minuto, distribución, ritmo). El procesamiento se realiza en servidores de Google Cloud Run en la Unión Europea (europe-west1) y los puntos del esqueleto no se conservan: existen en memoria mientras dura el procesamiento y nunca se escriben en disco ni se asocian a tu cuenta.
Qué se conserva: las métricas calculadas y la lista de golpes detectados (tipo de golpe, instante, velocidad estimada), asociados al vídeo. No conservamos los fotogramas ni las coordenadas del cuerpo. Si además has otorgado el consentimiento separado de la sección 4ter, una copia seudonimizada de esta misma información pasa al conjunto de datos de mejora del modelo.
Conservación: las métricas están asociadas al documento del vídeo y se eliminan al borrar el vídeo o la cuenta (art. 17 del RGPD). El resumen estadístico agregado se conserva un máximo de 365 días.
4ter. Conjunto de datos para mejorar la IA (consentimiento separado y opcional)
Si lo deseas, puedes contribuir a mejorar el modelo de análisis de RingVision. Es una decisión separada y totalmente opcional, distinta del consentimiento de la sección 4bis: puedes usar el Análisis IA sin activarla, y ninguna función de la aplicación está condicionada a este consentimiento (art. 7.4 del RGPD).
Base jurídica: art. 9.2.a — CONSENTIMIENTO EXPLÍCITO, recogido mediante una casilla específica que nunca está premarcada, distinta de la del análisis.
Qué conservamos: al final de cada análisis, y solo si el consentimiento está activo, conservamos en un archivo separado:
- las métricas calculadas de la sesión (número de golpes, golpes por minuto, distribución, indicadores de calidad del procesamiento);
- la lista de golpes detectados: tipo de golpe, instante y velocidad estimada;
- algunos atributos técnicos de la sesión: deporte, guardia, duración, versión del modelo.
Qué NO conservamos: nunca el vídeo, nunca los fotogramas, nunca las coordenadas del cuerpo, nunca tu nombre, tu correo electrónico ni ningún otro dato que te identifique directamente. El registro tampoco contiene la referencia al vídeo del que procede.
Seudonimización: el registro se asocia a un identificador derivado de tu identificador de usuario mediante una función criptográfica con clave secreta (HMAC-SHA256), que ni la aplicación ni quien acceda al archivo sin la clave pueden calcular o revertir. Te informamos con transparencia de que se trata de seudonimización y no de anonimización: mientras la clave exista, estos datos siguen siendo datos personales a todos los efectos (considerando 26 del RGPD) y conservan todas las garantías de esta política, incluido el derecho de supresión.
Finalidad: medir la calidad del análisis, detectar sus errores y mejorar el modelo que calcula tus métricas. Los datos no se venden, no se ceden ni se comparten con terceros, y no se utilizan para elaborar perfiles ni para tomar decisiones automatizadas que te afecten.
Retirada y conservación: puedes retirar el consentimiento en cualquier momento desde Ajustes → Privacidad → Mejora la IA con tus datos. A partir de la retirada no se conserva ningún dato nuevo en el archivo. Los datos ya conservados, de forma seudonimizada, permanecen en el archivo hasta que elimines tu cuenta, lo que los borra íntegramente junto con todo lo demás (sección 6). Si quieres que se eliminen antes, puedes solicitarlo en cualquier momento escribiendo a privacy@ringvision.app: procederemos sin dilación indebida (art. 17 del RGPD).
Dónde se encuentran: en Firestore y Cloudflare R2, dentro de la misma infraestructura descrita en la sección 5, en un área separada a la que la aplicación no tiene acceso.
4quater. Peso corporal (dato relativo a la salud, RGPD art. 9)
Puedes registrar tu peso corporal desde el diario y desde el módulo Fight Camp. Es un dato relativo a la salud y se recoge solo tras un consentimiento explícito y específico, que se solicita la primera vez que usas la función.
Base jurídica: art. 9.2.a — consentimiento explícito. Retirada: Ajustes → Privacidad → Registro del peso corporal. Tras la retirada el campo vuelve a ocultarse y no registramos nuevas mediciones; los pesos ya registrados siguen siendo tuyos y visibles hasta que los elimines.
Visibilidad: el peso es accesible solo para ti. No es visible para entrenadores, gimnasios ni administradores, ni siquiera cuando perteneces a un gimnasio. Se conserva en una colección específica (una medición por día) y se elimina con la cuenta.
La función tiene una finalidad de autoseguimiento deportivo y no tiene finalidad médica: no ofrecemos diagnósticos, consejos nutricionales ni valoraciones sanitarias.
5. Comunicación a terceros
Los datos se comparten exclusivamente con:
- Google Firebase (alojamiento, base de datos, autenticación, analítica, informes de fallos, notificaciones)
- Google Cloud Run (procesamiento de vídeo con IA en un entorno seguro de servidor, europe-west1)
- Cloudflare R2 (almacenamiento seguro de los vídeos)
- RevenueCat (gestión de las suscripciones en la aplicación)
- Stripe, Inc. (procesamiento de pagos B2B para los planes de gimnasio)
- Apple / Google (autenticación social y pagos en la aplicación)
No vendemos ni alquilamos tus datos a terceros.
Transferencias fuera de la UE: algunos de los proveedores citados (Google Firebase, Cloudflare R2, RevenueCat) pueden tratar los datos fuera de la Unión Europea. La transferencia se realiza conforme a las Cláusulas Contractuales Tipo (CCT 2021) adoptadas por la Comisión Europea según el art. 46 del RGPD. Los correspondientes acuerdos de tratamiento de datos (DPA) están disponibles en los sitios oficiales de cada proveedor:
- Google Firebase / Google LLC: participante en el EU-US Data Privacy Framework (DPF). DPA disponible en: https://business.safety.google/adsprocessorterms/
- Cloudflare, Inc.: CCT 2021 incluidas en el DPA disponible en: https://www.cloudflare.com/cloudflare-customer-dpa/
- RevenueCat, Inc.: DPA disponible en: https://www.revenuecat.com/dpa/
- Stripe, Inc.: DPA y CCT 2021 disponibles en: https://stripe.com/en-it/legal/dpa
6. Conservación de los datos
Los datos se conservan durante toda la vigencia de la cuenta. Al eliminar la cuenta, todos los datos personales se borran en un plazo de 30 días. En concreto:
- Vídeos y combinaciones: eliminados de inmediato (Cloudflare R2) o en un plazo de 30 días (Firestore)
- Vídeos por encima del límite del plan gratuito: al cesar un plan de pago se eliminan tras un periodo de tolerancia de 60 días, con aviso previo — v. sección 5quater de los Términos de Servicio
- Conjunto de datos de mejora de la IA (sección 4ter): los registros seudonimizados y los datos de movimiento asociados se eliminan al borrar la cuenta
- Resumen estadístico de los análisis con IA: máximo 365 días
- Notas del entrenador: máximo 730 días
- Token de notificaciones push: eliminado en un plazo de 24 horas desde el borrado de la cuenta y, en todo caso, retirado tras 365 días de inactividad del dispositivo
- Eventos técnicos relativos a suscripciones y pagos: máximo 365 días; pueden sobrevivir al borrado de la cuenta para la conciliación contable de los eventos de facturación (interés legítimo, art. 6.1.f)
- Datos de diagnóstico (Crashlytics): 90 días, según la política de Google
- Registros de acceso de Firebase: 60 días, según la política de Google
- Datos fiscales relativos a los pagos de los gimnasios (Stripe): 10 años, por obligación legal
6bis. Registro de las actividades de tratamiento (RGPD art. 30)
A continuación se detallan los datos tratados, su finalidad, la base jurídica y el plazo de conservación de cada categoría:
| Dato / Campo de Firestore | Finalidad | Base jurídica | Conservación |
|---|---|---|---|
| email, name | Autenticación | Art. 6.1.b | Vigencia de la cuenta |
| age, weight, height, stance | Perfil de atleta | Art. 6.1.b | Vigencia de la cuenta |
| wins, draws, losses, matchCount | Estadísticas del boxeador | Art. 6.1.b | Vigencia de la cuenta |
| role (Atleta/Entrenador/Gimnasio) | Acceso a las funciones | Art. 6.1.b | Vigencia de la cuenta |
| plan, planExpiresAt, planUpdatedAt | Gestión de suscripciones | Art. 6.1.b | Vigencia de la cuenta |
| referralProUntil, referralGrantSource | Programa «invita a un amigo» | Art. 6.1.b | Vigencia de la cuenta |
| lastTrainingDate, totalTrainingSessions, lastVideoUploadAt | Recordatorios y resúmenes de entrenamiento | Art. 6.1.f | Vigencia de la cuenta |
| palestraId, palestraName, palestraRole | Relación con el gimnasio | Art. 6.1.b | Vigencia de la cuenta / salida del gimnasio |
| coachIds | Relación con el entrenador | Art. 6.1.b | Vigencia de la cuenta |
| videos/* (Firestore + R2) | Servicio principal | Art. 6.1.b | Vigencia de la cuenta; por encima del límite gratuito: 60 días tras el cese de un plan de pago (Términos, sec. 5quater) |
| video.analysis (métricas y eventos de los golpes; los puntos del esqueleto no se conservan) | Análisis biométrico con consentimiento explícito — solo shadow boxing | Art. 9.2.a (consentimiento explícito) | Vigencia del vídeo; se eliminan con el vídeo o la cuenta. Resumen agregado: 365 días |
| analysis_records/* + copia de eventos en R2 (seudonimizados, sin referencia al vídeo) | Mejora del modelo de análisis con IA — sección 4ter | Art. 9.2.a (consentimiento explícito separado y opcional) | Hasta el borrado de la cuenta (o previa solicitud). La retirada detiene los nuevos registros |
| combinations/*, combo_templates/* | Servicio principal, biblioteca técnica | Art. 6.1.b | Vigencia de la cuenta |
| training_sessions/* | Calendario y agenda del gimnasio | Art. 6.1.b | Vigencia de la cuenta |
| training_programs/* | Planes de entrenamiento asignados por el entrenador | Art. 6.1.b | Vigencia de la cuenta |
| coachNotes/*, tags/*, valoraciones de combinaciones | Comentarios del entrenador | Art. 6.1.b | coachNotes 730 días; el resto, vigencia de la cuenta |
| fight_camps/* + notas y objetivos | Preparación del combate | Art. 6.1.b | Fecha del evento + 90 días |
| training_goals/* (target, period, type) | Objetivos privados del atleta (semana/mes/trimestre) | Art. 6.1.b | Vigencia de la cuenta, solo el propietario |
| training_logs/* (durationMin, feeling, rpe, mentalState, notes) | Diario de entrenamiento — autoseguimiento personal, redacción no clínica | Art. 6.1.b (datos introducidos por el usuario en la función que está usando) | Vigencia de la cuenta, solo el propietario, no compartido con entrenador ni gimnasio |
| users/{uid}/body_weights/* (una medición por día) | Registro del peso corporal — sección 4quater | Art. 9.2.a (consentimiento explícito) | Vigencia de la cuenta, solo el propietario también en lectura |
| users/{coachId}/athlete_payments/* | Estado de la cuota que el atleta paga al entrenador, registrada manualmente por este. Sin cobro dentro de la aplicación | Art. 6.1.f | Hasta que el atleta sale del listado |
| referral_codes/*, referral_events/*, credit_ledger/* | Programa «invita a un amigo» y recompensas | Art. 6.1.b | Vigencia de la cuenta |
| users/{uid}/notifications/* | Historial de las notificaciones recibidas en la aplicación | Art. 6.1.b | 90 días |
| analyticsConsentAt, biometricAnalysisConsentAt, consentDatasetAt, bodyWeightConsentAt (y sus retiradas) | Prueba de los consentimientos otorgados y retirados | Art. 7.1 | Vigencia de la cuenta; se eliminan con la cuenta |
| fcmToken, devices/* | Notificaciones push | Art. 6.1.a | < 24 h tras el borrado; 365 días si el dispositivo está inactivo |
| analytics_monetization/* | Conciliación de los eventos de suscripción | Art. 6.1.f | 365 días |
| Firebase Analytics | Estadísticas de uso, solo tras el consentimiento | Art. 6.1.a | 14 meses (Google) |
| Firebase Crashlytics | Diagnóstico | Art. 6.1.f | 90 días (Google) |
| Registros de acceso de Firebase Auth | Seguridad | Art. 6.1.f | 60 días (Google) |
| Hive (local, cifrado AES-256) | Preferencias locales del dispositivo | Art. 6.1.b | Hasta la desinstalación |
| Stripe customerId (B2B) | Pagos del gimnasio | Art. 6.1.b | Obligación fiscal: 10 años |
Al eliminar la cuenta, la Cloud Function onUserDeleted borra automáticamente todos los datos personales (borrado en cascada) de Firestore, Cloudflare R2 y las colecciones asociadas: vídeos, etiquetas, notas, combinaciones, sesiones, planes, diario, pesos, objetivos, referidos, invitaciones de gimnasio y los registros seudonimizados del conjunto de datos de mejora de la IA. Los campos que registran tus consentimientos se eliminan junto con la cuenta.
7. Derechos del usuario (RGPD art. 15-22)
Tienes derecho a:
- Acceder a tus datos (art. 15) — disponible en Ajustes → Exportar mis datos
- Rectificar datos inexactos (art. 16) — disponible en Ajustes → Editar perfil
- Suprimir tus datos, «derecho al olvido» (art. 17) — disponible en Ajustes → Eliminar cuenta
- Retirar los consentimientos otorgados (art. 7.3) — disponible en Ajustes → Privacidad, con un interruptor para cada uno de los cuatro consentimientos
- Limitar el tratamiento (art. 18) — solicitud por correo a privacy@ringvision.app
- Portabilidad de los datos (art. 20) — disponible en Ajustes → Exportar mis datos (formato JSON)
- Oponerte al tratamiento (art. 21) — disponible en Ajustes → Privacidad
Para ejercer tus derechos: privacy@ringvision.app
7bis. Reclamación ante la autoridad de control (RGPD art. 77)
Tienes derecho a presentar una reclamación ante la autoridad de control si consideras que el tratamiento de tus datos personales infringe el RGPD. El responsable está establecido en Italia, por lo que la autoridad competente es el Garante per la protezione dei dati personali; si resides en España, también puedes dirigirte a la Agencia Española de Protección de Datos (AEPD).
- Garante per la protezione dei dati personali: https://www.garanteprivacy.it — garante@gpdp.it — Piazza Venezia 11, 00187 Roma (RM), Italia
- Agencia Española de Protección de Datos: https://www.aepd.es — C/ Jorge Juan 6, 28001 Madrid, España
8. Seguridad
Los datos están protegidos mediante:
- Conexiones cifradas (HTTPS/TLS)
- Autenticación de Firebase con reglas de acceso detalladas
- Verificación de la integridad de la aplicación (App Check) en el acceso a los contenidos
- Ningún acceso a los datos de pago (gestionados por Apple, Google y Stripe)
9. Edad mínima
Para usar RingVision debes tener al menos 16 años. En el primer acceso te pedimos que lo confirmes junto con la aceptación de los Términos del Servicio. Si tenemos conocimiento de una cuenta creada por una persona de menor edad, la eliminamos junto con los datos asociados.
10. Cambios en la Política de Privacidad
Cualquier cambio se notificará mediante una actualización dentro de la aplicación. Cuando los cambios afecten a los tratamientos descritos en esta política, te pediremos que la revises y la aceptes de nuevo antes de seguir usando la aplicación.
11. Contacto
Para cualquier duda: privacy@ringvision.app
12. Violación de la seguridad de los datos personales (RGPD arts. 33-34)
En caso de una violación de la seguridad de los datos personales que suponga un riesgo para los derechos y libertades de los interesados:
- Notificaremos a la autoridad de control en un plazo de 72 horas desde que tengamos constancia de la violación (art. 33 del RGPD), salvo que sea improbable que la violación entrañe un riesgo para los derechos y libertades de las personas físicas.
- Comunicaremos la violación a los interesados sin dilación indebida cuando pueda entrañar un alto riesgo para sus derechos y libertades (art. 34 del RGPD).
La comunicación a los interesados incluirá: la naturaleza de la violación, los datos de contacto del punto de contacto en materia de protección de datos, las consecuencias probables de la violación y las medidas adoptadas o propuestas para ponerle remedio.
13. Derecho de oposición al tratamiento (RGPD art. 21)
Tienes derecho a oponerte en cualquier momento al tratamiento de tus datos personales para:
a) Fines analíticos (Firebase Analytics): puedes ejercer este derecho directamente desde la aplicación en Ajustes → Privacidad → Estadísticas de uso anónimas, o enviando una solicitud a privacy@ringvision.app.
b) Fines de marketing (notificaciones promocionales): puedes retirar el consentimiento a las notificaciones de marketing en cualquier momento en Ajustes → Notificaciones, o enviando una solicitud a privacy@ringvision.app. La retirada no afecta a la licitud del tratamiento anterior a la misma (art. 7.3 del RGPD).