CashoutGuard

Emuladores y granjas de móviles en apps de recompensas: cómo detectarlos sin bloquear a usuarios reales

Un solo equipo con diez emuladores de Android puede parecer diez móviles en diez casas distintas. Las granjas de móviles van más allá, con estanterías enteras de dispositivos reales. Esta guía explica cómo funcionan ambos, las pistas de hardware que no pueden ocultar y una forma justa de actuar ante ellas.

Respuesta corta

Detecta emuladores y granjas de móviles comparando lo que el dispositivo dice ser con lo que revela su hardware: un modelo de móvil con una GPU que nunca trae de fábrica, perfiles de emulador por defecto, GPUs por software y dispositivos borrados que vuelven a aparecer. Bloquea en el clic en la oferta los perfiles de emulador claros, manda a revisión cualquier incoherencia aislada y actúa sobre el grupo vinculado.

La señal más clara
Una combinación imposible de modelo y GPU, como un Pixel 8 que muestra una GPU Adreno.
Lo que delata a un emulador
Modelos de emulador por defecto, versiones de Android muy antiguas con un Chrome actual, GPUs por software y pantallas de tamaño de escritorio en un modelo de móvil.
Granjas de móviles
Reutilizan hardware, borran el almacenamiento, compran modelos baratos que solo se venden en China y completan las mismas ofertas en el mismo orden.
Qué evitar
Banear marcas enteras o bloquear por una sola incoherencia de modelo.

Por qué los emuladores y las granjas atacan las apps de recompensas

Las ofertas móviles pagan bien. Instala un juego, llega al nivel 20 y gana unos cuantos dólares. Los anunciantes pagan tanto porque esperan un jugador real en un móvil real. Una granja falsifica al jugador y se queda con el pago.

Hay dos montajes principales. El primero es el emulador: software como LDPlayer, Nox, MEmu, BlueStacks o Genymotion que ejecuta Android en un PC. Un solo equipo potente puede ejecutar muchos a la vez. El segundo es la granja de móviles: estanterías de móviles reales y baratos, a menudo restablecidos entre una cuenta y otra y a veces controlados por scripts.

Los dos buscan el mismo resultado: muchas cuentas, cada una con aspecto de ser una persona distinta en un dispositivo distinto, y todas completando las mismas ofertas que mejor pagan. La red revierte las conversiones semanas después, a menudo cuando ya pagaste.

Lo que el dispositivo dice ser frente a lo que muestra

Todo navegador o WebView te dice qué es. El user agent y los client hints dan un nombre de modelo como Pixel 8 o SM-S918U. Ese dato es fácil de cambiar: las herramientas de las granjas rotan los nombres de modelo con un clic.

El hardware es más difícil de falsificar. A través de WebGL, el dispositivo revela su chip gráfico (GPU). Los móviles reales salen de fábrica con una GPU conocida. Un Pixel 8 usa una GPU Mali. Un Samsung Galaxy S vendido en EE. UU. usa un chip Snapdragon con GPU Adreno. Cuando el modelo declarado y la GPU detectada no coinciden, el dispositivo miente sobre lo que es.

Modelo declaradoGPU detectadaVeredicto
Pixel 8Mali-G715Coherente: un Pixel 8 real sale de fábrica con esta familia
Pixel 8Adreno 740Falsificado: el Pixel 8 nunca lleva Adreno
Pixel 5Mali-G76Falsificado: el Pixel 5 lleva Adreno
SM-S918U (Galaxy de EE. UU.)Mali-G710Falsificado: los modelos de EE. UU. usan Snapdragon y Adreno
iPhoneAdreno o MaliFalsificado: los iPhone muestran una GPU de Apple
Móvil AndroidGPU de AppleFalsificado: a menudo es un iPhone o un Mac disfrazado

Perfiles de emulador por defecto

Los emuladores tienen que declarar algún modelo de móvil. La mayoría de los usuarios nunca cambia el que viene por defecto, y esos valores por defecto son bien conocidos. Varios emuladores populares se presentan como modelos de Samsung del mercado coreano (el sufijo N, como SM-G977N) o como modelos antiguos de Asus y vivo. Las imágenes para desarrolladores muestran nombres como sdk_gphone o vbox86.

Otra pista es la compilación de Android. Los emuladores suelen ejecutar versiones antiguas de Android, como la 5.1 o la 7.1, con un número de compilación que solo existe en la imagen del emulador. Si a eso le sumas una versión moderna de Chrome, tienes una combinación que los móviles reales casi nunca muestran.

  • Modelo de Samsung coreano con una IP de EE. UU. o de Europa. Posible en alguien que viaja, habitual en un emulador.
  • Compilación de Android muy antigua con un Chrome actual. Los móviles reales tan antiguos rara vez reciben versiones nuevas de Chrome.
  • GPU por software, como SwiftShader o llvmpipe. Un móvil sin chip gráfico real es una máquina virtual.
  • Pantalla de tamaño de escritorio en un modelo de móvil, o un móvil que declara un mouse pero no una pantalla táctil.

Modelos exclusivos de China fuera de China

Algunos móviles solo se venden en China continental. Es el caso de los modelos de OPPO y OnePlus con códigos como PJx, los de Xiaomi que terminan en C, los de vivo que terminan en A y los de Huawei u Honor que terminan en -AN00 o -AL00. Son modelos baratos de comprar al por mayor y habituales en las granjas de móviles.

Un modelo exclusivo de China que se conecta desde Estados Unidos no es una prueba de fraude. La gente viaja e importa móviles. Pero cuando muchas cuentas de tu sitio muestran modelos exclusivos de China con IPs de EE. UU., Reino Unido o Canadá, es una señal fuerte de que el tráfico viene de una granja y las IPs, de un proxy.

Restablecimientos del dispositivo y borrado del almacenamiento

Las granjas saben que los sitios guardan un ID de dispositivo. Por eso borran los datos de la app, limpian el navegador o restablecen el móvil antes de cada cuenta nueva. Aparece un ID nuevo y el sitio cree que tiene delante un dispositivo nuevo.

El restablecimiento elimina el ID guardado, pero no el hardware. La misma GPU, el mismo tamaño de pantalla, la misma compilación de Android y las mismas fuentes instaladas vuelven cada vez. Un dispositivo con el almacenamiento vacío, pero con los mismos rasgos de hardware que uno que viste hace una hora, casi con seguridad ha sido borrado.

  • Almacenamiento vacío, hardware conocido. Márcalo y vincúlalo al dispositivo anterior.
  • Muchas cuentas por perfil de hardware en poco tiempo, cada una con un ID nuevo.
  • Mismo orden de ofertas en esas cuentas, señal de un único script o de un único trabajador.

Actúa sin bloquear a usuarios reales

Las señales de dispositivo son potentes, pero no perfectas. Las huellas del navegador se pueden falsificar y los móviles baratos a veces muestran valores extraños. Una política justa usa estas señales para frenar la salida del dinero, no para castigar por una sola pista.

  1. Bloquea en el clic en la oferta solo los perfiles de emulador claros y las GPUs por software. Los jugadores reales en móviles reales no se ven afectados.
  2. Ante una sola incoherencia de modelo, revisa en lugar de bloquear. Manda el retiro a una cola con la evidencia.
  3. Actúa sobre el grupo. Si diez cuentas comparten un mismo perfil falsificado, decide sobre las diez a la vez.
  4. Mantén una lista de permitidos. A los testers, al personal y a los buenos usuarios conocidos con hardware poco habitual no se les debería marcar cada semana.
  5. Mide primero. Ejecuta las comprobaciones sin bloquear durante unos días y mira cuántos retiros se verían afectados.

Cómo lo automatiza CashoutGuard

El colector JavaScript de CashoutGuard lee el modelo, la GPU, la pantalla y la compilación. Tu servidor llama a /v1/evaluate en el registro, el clic en la oferta, la conversión y el retiro, y recibe una puntuación de 0 a 100 con sus motivos.

  • device_spoofed cuando el modelo declarado y la GPU no pueden pertenecer al mismo móvil.
  • emulator_profile para modelos de emulador por defecto y compilaciones de Android que solo existen en emuladores.
  • emulator_or_vm y automation_detected para máquinas virtuales y navegadores controlados por scripts.
  • device_market_mismatch para modelos exclusivos de China fuera de China.
  • storage_cleared_reappeared y device_shared_with_accounts para dispositivos borrados y hardware compartido.

La vista de Redes de fraude vincula cuentas por dispositivo, dirección de pago, email e IP, así que una granja aparece como un solo grupo. Los sitios nuevos empiezan en modo sombra, para que puedas ver los resultados antes de que se bloquee nada. Lee la documentación o compara los planes en la página de precios.

Apps nativas de Android: comprobaciones que un navegador no puede hacer

Una app de recompensas creada para Android puede ver más que una página web. El SDK de Android de CashoutGuard se ejecuta dentro de tu app y comprueba el propio móvil: propiedades y archivos de emulador, un sistema rooteado, frameworks de hooking como Frida y Xposed que manipulan lo que lee la app, un depurador, apps para falsear la ubicación y una VPN activa en el dispositivo aunque la IP parezca residencial.

También asigna a cada móvil un ID que sobrevive a la desinstalación y reinstalación de la app, derivado del Android ID y combinado con tu clave como salt, de modo que no le sirve a nadie más. Si alguien de una granja restablece la app para crear una cuenta nueva, vuelve como el mismo dispositivo y la cuenta nueva queda vinculada a las anteriores.

ComprobaciónCódigo de motivoPor qué importa en una app de recompensas
Propiedades, archivos y hardware de emuladoremulator_or_vmLas granjas de emuladores completan instalaciones de pago y ofertas de playtime a toda hora
Móvil rooteadodevice_rootedEl root permite que una app falsee su ID de dispositivo y su ubicación; débil por sí solo, fuerte junto a otras señales
Frida, Xposed o Substrate en la appautomation_detectedLos hooks reescriben lo que ve tu app, incluida cualquier otra comprobación
VPN activa en el móvilip_vpnDesbloquea ofertas de países más ricos aunque la IP de salida parezca residencial
El mismo móvil tras una reinstalacióndevice_shared_with_accountsUna persona, muchas cuentas, un pago tras otro

La integración es una sola llamada antes de cada pago: la app obtiene un request_id en el registro, el clic en la oferta y el retiro, y tu servidor consulta /v1/evaluate. En integraciones tienes el código en Kotlin.

Preguntas frecuentes

¿Puedo bloquear directamente todos los emuladores de Android?

Sí, en ofertas y retiros, siempre que la detección se base en perfiles de emulador claros o en GPUs por software. Pocos usuarios reales de sitios de recompensas completan ofertas pagadas dentro de un emulador.

¿Y si un usuario real tiene un móvil que parece falsificado?

Por eso una sola incoherencia debe mandar el retiro a revisión en lugar de bloquearlo. Revisa el resto de la cuenta: otros dispositivos, dirección de pago, velocidad en las ofertas e historial.

¿Se pueden detectar las granjas de móviles con dispositivos reales?

Cuesta más que con los emuladores, pero sí. Las granjas reutilizan hardware, borran el almacenamiento, compran modelos baratos exclusivos de China y completan las mismas ofertas en el mismo orden. Vincular las cuentas por dispositivo y dirección de pago deja a la vista toda la granja.

¿Un modelo exclusivo de China fuera de China significa fraude?

No. Significa que el móvil se importó o que el usuario viaja. Cobra sentido cuando aparece junto con proxies, dispositivos compartidos o muchas cuentas parecidas.

Sigue leyendo