CashoutGuard

Contracargos de offerwall: por qué se revierten las conversiones y cómo dejar de pagarlas

Un contracargo en un offerwall significa que la red se lleva de vuelta el dinero de una conversión, a menudo semanas después de que ya pagaras al usuario. Esta guía explica por qué ocurre, cómo tratarlo en tu código y cómo dejar de pagarlo desde el principio.

Respuesta corta

Un contracargo de offerwall (reversión) es la red retirando el pago de una conversión que el anunciante rechazó, muchas veces días o semanas después de que acreditaras al usuario. Trata los postbacks de reversión por el ID de transacción, retén las conversiones arriesgadas hasta que pase la ventana de validación y revisa la cuenta antes del retiro, el último momento en que el dinero sigue siendo tuyo.

Tasas de reversión habituales
Las publicaciones del sector suelen hablar de un 10 a 25 por ciento en el tráfico de offerwall.
Causas comunes
VPN o país equivocado, usuarios duplicados, ofertas completadas demasiado rápido, emuladores y bots, postbacks repetidos.
Métrica clave
Tasa de reversión: importe revertido dividido entre el importe total pagado, por offerwall y por mes.
Protección más sencilla
Periodos de retención para cuentas nuevas y ofertas que pagan mucho.

Qué es un contracargo de offerwall

Cuando un usuario completa una oferta, la red envía un postback a tu sitio y tú acreditas al usuario. La red cobra del anunciante más tarde, cuando este ya ha revisado la calidad de los usuarios. Si el anunciante rechaza una conversión, la red la revierte y normalmente te envía un segundo postback con un importe negativo.

El problema es el momento. Las reversiones suelen llegar días o semanas después de la conversión original. Para entonces, un usuario fraudulento puede haber retirado y desaparecido, y el dinero sale de tu margen. Las publicaciones del sector suelen hablar de tasas de reversión del 10 al 25 por ciento en el tráfico de offerwall, así que no es un caso raro.

Motivos habituales para revertir conversiones

MotivoQué pasóCómo evitarlo
País equivocadoEl usuario estaba en una VPN o en un país al que el anunciante no apuntabaComprueba la red en el clic de la oferta y oculta los offerwalls a quien usa VPN
Usuarios duplicadosLa misma persona instaló la app con varias cuentasVincula cuentas por dispositivo y por dirección de pago
Demasiado rápidoNivel 10 en dos minutos, una encuesta respondida en segundosCompara el tiempo de finalización con el de jugadores reales
Baja calidadLa app se instaló y se borró, sin uso realRetenciones más largas en ofertas de instalación para cuentas nuevas
Emuladores y botsInstalaciones desde emuladores, granjas de dispositivos o scriptsDetecta automatización y emuladores antes del clic
Postbacks duplicadosEl mismo ID de transacción se envió o reenvió dos vecesGuarda los IDs de transacción e ignora las repeticiones

Casi todo esto se ve antes de que la red revierta nada. Los datos están en tus propios registros: quién hizo clic, desde dónde, con qué dispositivo y cuánto tardó.

Trata bien los postbacks de reversión

Antes de pensar en prevenir, asegúrate de que tu sitio gestiona bien las reversiones. Muchos sitios ignoran en silencio los postbacks negativos, y así la pérdida nunca se descuenta del saldo del usuario.

  1. Acepta el postback de reversión. Lee en la documentación de la red qué estado o importe negativo envía y comprueba que tu endpoint lo trata.
  2. Asócialo por ID de transacción a la conversión original y registra ambas. Nunca apliques la misma reversión dos veces.
  3. Descuéntalo del saldo del usuario, aunque quede en negativo. Un saldo negativo bloquea el siguiente retiro hasta que se recupere.
  4. Muéstraselo al usuario en su historial, con el nombre de la oferta. Un historial claro reduce las consultas a soporte.
  5. Llévalo por offerwall y por usuario, para ver qué usuarios y qué offerwalls generan más reversiones.
// Sketch of a postback endpoint
$tx = $request->transaction_id;
$status = $request->status; // for example 'completed' or 'reversed'

if (Conversion::where('transaction_id', $tx)->where('status', $status)->exists()) {
    return 'OK'; // already processed: ignore replays
}

if ($status === 'reversed') {
    $original = Conversion::where('transaction_id', $tx)->firstOrFail();
    $original->user->decrement('balance', $original->amount); // may go negative
}

Periodos de retención: paga más tarde las conversiones arriesgadas

Un periodo de retención deja la conversión pendiente unos días antes de que el usuario pueda retirarla. Es la protección más sencilla contra las reversiones, porque la mayoría llegan mientras el dinero sigue de tu lado.

  • Retén más tiempo las ofertas que pagan mucho. Una oferta de juego de varios dólares merece más retención que unos céntimos de una encuesta corta.
  • Retén más tiempo las cuentas nuevas. La confianza crece con la antigüedad de la cuenta y un historial de retiros limpio.
  • Libera antes a los usuarios de confianza. Los usuarios veteranos sin reversiones pueden saltarse casi toda la espera, y así mantienes contentos a tus mejores usuarios.
  • Explica las retenciones en la página de la oferta. Los usuarios aceptan esperar cuando saben por qué y cuánto.

Para el fraude antes del retiro

La retención aplaza el problema; la detección lo elimina. El mejor momento para actuar es el retiro, porque es el último punto en que el dinero sigue siendo tuyo.

  • Velocidad de la oferta. Registra cuándo hizo clic el usuario en la oferta y cuándo llegó la conversión. Compáralo con lo que tardan los usuarios reales.
  • Velocidad de conversiones. Una ráfaga de conversiones en poco tiempo desde una cuenta rara vez es una persona real.
  • IDs de transacción duplicados. Un ID repetido indica un postback reenviado o duplicado.
  • Retiros de cuentas nuevas. Las cuentas recién creadas que retiran enseguida merecen una revisión más atenta.
  • Dispositivos y direcciones de pago compartidos. Las reversiones se concentran en grupos de multicuentas.

Mide tu tasa de reversión

Divide el importe revertido entre el total pagado en cada offerwall, cada mes. Desglósalo por país y por antigüedad de la cuenta. Una tasa que sube en un offerwall suele apuntar a una fuente de tráfico o a un grupo de usuarios, y las redes vigilan este número de cerca cuando deciden cómo tratar tu sitio.

Cuando sabes qué segmentos revierten más, puedes endurecer retenciones y comprobaciones ahí y relajarlas en el resto, que es más justo con los usuarios honrados.

MétricaCómo calcularlaQué te dice
Tasa de reversiónImporte revertido dividido entre el total pagado, por offerwall y por mesLa calidad general del tráfico tal como la ve la red
Tasa de reversión por antigüedadLo mismo, separando cuentas de menos y más de 30 díasSi las cuentas nuevas necesitan retenciones más largas
Pagado antes de la reversiónImporte revertido que ya se había retiradoEl dinero que de verdad perdiste
Usuarios más revertidosUsuarios ordenados por importe revertidoCuentas y grupos que revisar primero

Trabaja con tus redes de offerwall

Las redes están de tu lado más a menudo de lo que parece. También pierden dinero con el tráfico revertido y prefieren quedarse con un publisher que corrige problemas antes que perderlo. Cuando suban las reversiones, pregunta a tu gestor de cuenta qué ofertas y países están afectados y si puede enviar el motivo de la reversión en cada postback negativo.

Cuéntale qué has cambiado: comprobación de VPN en el clic de la oferta, retenciones para cuentas nuevas, cola de revisión de retiros. Los publishers que pueden mostrar una tasa de reversión a la baja están en mucha mejor posición para pedir mejores pagos o acceso a ofertas premium.

Cómo lo automatiza CashoutGuard

Envía a CashoutGuard un evento de conversión cuando llegue un postback, con el ID de la oferta, el ID de transacción de la red y el importe. Recuerda el clic en la oferta, así que sabe cuánto tardó realmente.

  • offer_completed_too_fast cuando el tiempo entre el clic y la conversión es menor de lo que consiguen los jugadores reales.
  • conversion_velocity y cashout_velocity para ráfagas de actividad.
  • duplicate_transaction para IDs de transacción repetidos.
  • new_account_cashout para cuentas que retiran justo después de registrarse.

Cada retiro llega entonces a una cola de revisión con esos motivos, y los webhooks firmados avisan a tu backend en el momento en que una cuenta pasa a bloqueada, para congelar el saldo antes del siguiente retiro. Empieza en modo sombra y compara los retiros marcados con las reversiones que te envían tus redes. Consulta la documentación para los campos de la conversión.

Preguntas frecuentes

¿Puedo rechazar un contracargo de offerwall?

En la práctica, rara vez. La red solo traslada la decisión del anunciante. Lo que controlas es si el dinero ya ha salido de tu sitio, y por eso importan las retenciones y las comprobaciones en el retiro.

¿Debe quedar en negativo el saldo del usuario tras una reversión?

La mayoría de los sitios lo permiten. La alternativa es asumir tú la pérdida, lo que premia a los usuarios que retiran más rápido.

¿Cuánto debe durar la retención?

Lo suficiente para cubrir la mayoría de las reversiones de tus redes. Mira en tus propios datos cuándo llegan las reversiones y fija retenciones para cuentas nuevas y ofertas grandes que cubran esa ventana.

¿Los contracargos afectan a mi reputación con la red?

Sí. Una tasa de reversión alta indica tráfico de baja calidad, y las redes pueden bajar los pagos o retirar ofertas a los publishers con problemas persistentes.

Sigue leyendo