Saltar al contenido
WebViewGold Del vibe coding a la App Store
Español
Consigue WebViewGold

Rechazo en Google Play

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

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 habitualDe dónde viene
Nombre, dirección de correo electrónicoSí, si tienes inicio de sesiónGestión de la cuentaSupabase, Firebase Auth, usuarios de Base44, tu propio backend
ID de dispositivo u otros IDSí, si el push o los anuncios están activosNotificaciones push, publicidadID de suscripción de OneSignal o Firebase, ID de publicidad vía AdMob
Registros de fallos, diagnósticosSí, si TRACKING_EVENT es trueAnalítica, estabilidad de la appFirebase Crashlytics en WebViewGold
Interacciones con la appSí, si se ejecuta un script de analíticaAnalíticaGoogle Analytics, PostHog, Plausible y similares en tu sitio
Ubicación aproximada o precisaSolo si requireLocation es true y tu app web la solicitaFuncionalidad de la appGeolocalización HTML5 dentro del WebView
Fotos, archivosSolo si las subidas salen del dispositivoFuncionalidad de la appSubidas de archivos desde tu app web
Historial de compras, datos de pagoSí, si guardas pedidosFuncionalidad de la appStripe, 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.

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

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

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

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

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

  6. 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!

Lucas DuBois · CodeCanyon

Discrepancias que provocan el rechazo

  • "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.

Ver planes en la página principal

Full Service

$698 por plataforma $798

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.

Detalles del Full Service Con tecnología de WeSetupYourWebViewApp

Precios de la Oferta de invierno válidos hasta el 31 de diciembre de 2026.

¿Listo para lanzar tu app?

Garantía de aprobación en App Store & Google Play – o te devolvemos el dinero en 14 días

¿Prefieres delegarlo? Full Service: configuramos, compilamos y entregamos en 72 horas, desde $698 por plataforma. ¿Preguntas? Chatea con nosotros 24/7.

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.