Discrepancia en el formulario Data safety: qué compara Google y cómo declarar correctamente una app de WebViewGold
Google contrasta tus respuestas de Data safety (Seguridad de los datos) con lo que detecta en el App Bundle y con lo que ve en la app en funcionamiento. "No se recopilan datos" junto a un formulario de inicio de sesión, un SDK de push y un SDK de anuncios es la discrepancia más habitual que vemos. La solución es un inventario honesto, y lleva unos veinte minutos.
Desde $109 de pago único por plataforma, o deja que nuestro equipo lo haga todo desde $698.
Garantía de aprobación – o te devolvemos el dinero en 14 días
Sin programar
Pago único, actualizaciones gratuitas
Soporte humano 24/7
Hecho en Alemania desde 2014 · ISO 27001
9:41
Tu app
Tu appYa en tu bolsillo
App Store · Google Play Aprobada
Cómo detecta Google la discrepancia
La sección Data safety, dentro de App content (Contenido de la aplicación), pregunta qué recopila tu app, qué comparte, si los datos se cifran en tránsito y si los usuarios pueden solicitar su eliminación. Google compara estas respuestas con dos fuentes: los SDK y permisos que detecta en tu bundle (el SDK de Google Mobile Ads que incluye la plantilla de WebViewGold, OneSignal o Firebase cuando el push está activado, Crashlytics cuando el seguimiento está activo) y lo que observa el revisor al usar la app, como un formulario de registro que pide nombre y correo electrónico.
Hay un detalle que hace tropezar a la mayoría de las apps web empaquetadas: los datos introducidos en el WebView cuentan como recopilados por tu app cuando controlas el sitio web que carga. Tu inicio de sesión de Supabase o Firebase, el script de analítica que añadió Lovable, el checkout de Stripe en tu dominio: a ojos de Google, todo eso es recopilación de datos de tu app, aunque ningún código nativo lo toque.
Qué recopila una app típica de WebViewGold
Tipo de datos
¿Se recopila?
Finalidad habitual
De dónde viene
Nombre, dirección de correo electrónico
Sí, si tienes inicio de sesión
Gestión de la cuenta
Supabase, Firebase Auth, usuarios de Base44, tu propio backend
ID de dispositivo u otros ID
Sí, si el push o los anuncios están activos
Notificaciones push, publicidad
ID de suscripción de OneSignal o Firebase, ID de publicidad vía AdMob
Registros de fallos, diagnósticos
Sí, si TRACKING_EVENT es true
Analítica, estabilidad de la app
Firebase Crashlytics en WebViewGold
Interacciones con la app
Sí, si se ejecuta un script de analítica
Analítica
Google Analytics, PostHog, Plausible y similares en tu sitio
Ubicación aproximada o precisa
Solo si requireLocation es true y tu app web la solicita
Funcionalidad de la app
Geolocalización HTML5 dentro del WebView
Fotos, archivos
Solo si las subidas salen del dispositivo
Funcionalidad de la app
Subidas de archivos desde tu app web
Historial de compras, datos de pago
Sí, si guardas pedidos
Funcionalidad de la app
Stripe, RevenueCat, tu base de datos
Rellena el formulario con la verdad en veinte minutos
Primero el inventario, después las respuestas. Adivinar es lo que causó la discrepancia.
Haz inventario de la parte nativa
Abre Config.java y anota cuáles de estos valores son true: PUSH_ENABLED, FIREBASE_PUSH_ENABLED, PUSHWOOSH_ENABLED, SHOW_BANNER_AD, SHOW_FULL_SCREEN_AD, ENABLE_REWARDED_ADS, TRACKING_EVENT, requireLocation. Cada valor true es un flujo de datos que debes declarar. En el Cloud Builder, esas mismas opciones son los interruptores de funciones.
Haz inventario de la parte web
Enumera cada script de terceros y cada backend con el que habla tu app web: proveedor de autenticación, base de datos, analítica, seguimiento de errores, widgets de chat, proveedor de pagos, APIs de IA que reciben los prompts de los usuarios. Si no estás seguro, pide la lista a tu builder; Cursor, Claude Code o Codex pueden buscar hosts externos en el código con grep.
Usa la guía de Data safety de cada proveedor
OneSignal, Firebase y Google AdMob publican exactamente qué tipos de datos y finalidades hay que declarar para sus SDK. Copia esas respuestas en lugar de adivinar. Marca como recopilados los datos enviados a un proveedor que solo los procesa en tu nombre; marca como compartidos los datos que una red publicitaria usa para sus propios fines.
Responde a la pregunta del cifrado solo si es cierto
Declara el cifrado en tránsito cuando todas las peticiones usen HTTPS. En WebViewGold para Android, desactiva el tráfico en texto plano (cleartext) como se describe en el centro de soporte y activa BLOCK_SELF_SIGNED_AND_FAULTY_SSL_CERTS, para que un certificado defectuoso falle en lugar de pasar en silencio.
Responde a la pregunta de la eliminación con un enlace
Responde que sí a "los usuarios pueden solicitar la eliminación" solo si existe un camino real, e indica la URL web que Play muestra en tu ficha. La guía de eliminación de cuentas explica la implementación.
Haz que coincida con la política de privacidad
Cada tipo de datos que declares debe aparecer también en tu política de privacidad, y la política debe ser accesible desde la app y desde la ficha. Después guarda el formulario y envía una nueva revisión; un formulario modificado puede revisarse por sí solo, pero si también cambiaste Config.java, sube primero el nuevo bundle.
¡Gran trabajo! Nunca tuve que usar código para nada, pero logré trabajar con esto y tener mi App lista. ¡Fácil y rápido! ¡También con gran ayuda de los creadores!
"No se recopilan datos" mientras la app tiene un formulario de registro o un inicio de sesión.
No declarar "Device or other IDs" (ID de dispositivo u otros ID) con OneSignal, el push de Firebase o AdMob activados.
ID de publicidad sin declarar aunque el permiso de anuncios está en el manifiesto combinado (ver más abajo).
Cifrado en tránsito declarado mientras el WebView sigue cargando recursos http://.
"Los datos se pueden eliminar" declarado sin una página de eliminación ni una opción dentro de la app.
Una política de privacidad que describe un sitio web y nunca menciona la app, el push ni los anuncios.
Quita el permiso del ID de publicidad si no muestras anuncios
El SDK de Google Mobile Ads forma parte de la plantilla de WebViewGold para Android, y su manifiesto añade el permiso de Ad ID aunque SHOW_BANNER_AD y SHOW_FULL_SCREEN_AD sean false. Si no usas anuncios, elimina el permiso en AndroidManifest.xml con el manifest merger y luego no declares ID de publicidad. Si usas anuncios, consérvalo y declara el ID de publicidad en "Device or other IDs".
xml
<!-- dentro de <manifest>, con xmlns:tools="http://schemas.android.com/tools" declarado -->
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove" />
Preguntas frecuentes
¿WebViewGold recopila datos por sí mismo?
No. WebViewGold es una plantilla de proyecto que funciona en tu cuenta; no hay ningún servidor de WebViewGold que reciba datos de usuarios. Lo que declares depende de los servicios que actives (push, anuncios, Crashlytics) y de lo que haga tu app web.
Solo uso el Cloud Builder. ¿Necesito conocer igualmente Config.java?
Los interruptores que configuras en el Cloud Builder corresponden a las mismas opciones. Push activado significa identificadores de dispositivo, anuncios activados significa ID de publicidad, seguimiento activado significa registros de fallos. Declara según los interruptores.
¿Tengo que declarar como compartidos los datos que procesa Supabase o Firebase?
Normalmente no. Un backend que procesa datos en tu nombre es un proveedor de servicios, y esos datos se declaran como recopilados por ti. Consulta la guía del propio proveedor si usas funciones adicionales, como analítica de terceros.
Tres formas de llevar tu app a las tiendas
El mismo resultado, con distinta cantidad de trabajo por tu parte. Las tres incluyen la garantía de aprobación y soporte humano 24/7.
Hazlo tú mismo
$109 por plataforma, pago único
La licencia de WebViewGold: un proyecto de Xcode o Android Studio listo para usar. Pega tu URL, define nombre e icono, activa funciones, compila y envía. Actualizaciones gratuitas para siempre.
Sin Mac, sin Xcode, sin Android Studio: configura en el navegador, compilamos ambas apps en la nube y las entregamos a App Store Connect y a Play Console.
Envíanos tu URL y tu icono. Nuestro equipo configura, compila y entrega tu app en 72 horas, en marca blanca y con los proyectos fuente. Ambas plataformas por $1,158.
Los reembolsos se conceden bajo las condiciones indicadas en nuestras FAQ: un rechazo por motivos ajenos al contenido por parte de Apple y/o Google, reclamado dentro de los 14 días posteriores a la compra.