Como bloquear fraude no cadastro, no clique na oferta e no saque
Pontuar a fraude é só metade do trabalho. O dinheiro é salvo quando o seu site age com base na resposta. Este guia mostra os quatro pontos onde agir, o que fazer em cada um e as poucas linhas de código necessárias.
Os quatro pontos onde agir
A fraude em um site de recompensa segue sempre o mesmo caminho: abrir contas, completar ofertas, receber as conversões e sacar. Cada etapa é uma chance de barrá-la, e cada uma custa menos do que a seguinte.
- Cadastro. Recusar aqui uma conta de fazenda não custa nada. Ela nunca ganha, nunca clica e nunca chega aos seus anunciantes.
- Clique na oferta. Se a conta já está sinalizada, não abra a oferta. A fraude nunca chega ao offerwall nem ao anunciante, então não há nada para estornar depois.
- Conversão (postback). Credite a recompensa, mas retida. Os pontos existem, o usuário não pode gastá-los e você decide depois de dar uma olhada.
- Saque. O último momento em que o dinheiro ainda é seu. Retenha o saque e revise antes de pagar.
O que fazer com cada resposta
O CashoutGuard responde a cada evento com allow, review ou block, junto com os motivos. Esta é uma política inicial sensata:
| Onde | block | review | allow |
|---|---|---|---|
| Cadastro | Recusar a conta ou mantê-la suspensa | Aceitar, observar o primeiro saque | Aceitar |
| Clique na oferta | Mostrar "oferta indisponível" | Abrir a oferta | Abrir a oferta |
| Conversão | Creditar retido, sem saldo | Creditar normalmente, sinalizar para a revisão do saque | Creditar normalmente |
| Saque | Reter; em geral negar após a revisão | Reter para uma revisão rápida | Pagar |
Suspenda a conta em vez de excluí-la. Se foi alarme falso, um clique traz o usuário de volta com o histórico intacto.
O código
O script do navegador dá a cada visitante um request_id. Envie-o com o formulário para o seu servidor e depois consulte o CashoutGuard a partir do servidor com a sua chave secreta. Os exemplos usam o SDK de PHP da documentação; os SDKs de Node.js e Python seguem o mesmo formato.
Cadastro
$cg = new \CashoutGuard\Client(getenv('CASHOUTGUARD_SECRET'));
$user = createUser($request); // your own signup
$r = $cg->evaluate([
'event' => 'signup',
'account_id' => (string) $user->id,
'request_id' => $request->input('cg_request_id'),
'ip' => $request->ip(),
'email' => $user->email,
]);
if ($r->isBlocked()) {
$user->suspend(); // keep it, so a false alarm is one click away
return back()->withErrors(['email' => 'We could not create your account.']);
}Clique na oferta
$r = $cg->evaluate(['event' => 'offer_click', 'account_id' => (string) $user->id,
'request_id' => $request->input('cg_request_id'), 'offer_id' => $offer->id, 'click_id' => $clickId]);
if ($r->isBlocked()) {
return response()->view('offer-unavailable', [], 403);
}
return redirect()->away($offer->trackingUrl($user, $clickId));Conversão (postback)
// Ask BEFORE crediting, so a blocked conversion never touches the balance.
$r = $cg->evaluate(['event' => 'conversion', 'account_id' => (string) $userId,
'offer_id' => $offerId, 'transaction_id' => $transId, 'amount' => $payoutUsd, 'currency' => 'USD']);
$status = $r->isBlocked() ? 'hold' : 'approved';
creditReward($userId, $points, $status); // 'hold' = recorded, not spendableSaque
$r = $cg->evaluate(['event' => 'cashout', 'account_id' => (string) $user->id,
'request_id' => $request->input('cg_request_id'), 'amount' => $usd, 'currency' => 'USD',
'payout_method' => $method, 'payout_address' => $address]);
$withdrawal->status = $r->isBlocked() ? 'hold' : ($r->needsReview() ? 'review' : 'pending');
$withdrawal->save();Com segurança: modo sombra e fail-open
Duas configurações protegem os usuários honestos enquanto você implanta isso.
- Modo sombra primeiro. Um site novo responde allow para tudo, mas registra o que teria feito. Rode seu código em modo sombra por alguns dias, veja as contas que teriam sido bloqueadas e depois mude o site para o modo ativo. Seu código não muda.
- Fail-open. O SDK espera no máximo dois segundos e responde allow se o CashoutGuard estiver lento ou fora do ar. Um problema de rede nunca bloqueia um cadastro nem um pagamento.
Quais sinais merecem um bloqueio
Nem todo motivo tem o mesmo peso. Uma boa política bloqueia com base em evidências difíceis de explicar de forma inocente e só manda o resto para revisão. Estes são os sinais que mais vezes justificam um bloqueio sozinhos:
- Um endereço de pagamento que já recebeu por outra conta. Um mesmo e-mail de PayPal ou uma mesma carteira recebendo por várias contas é uma pessoa só.
- Um dispositivo compartilhado com contas que você já bloqueou. O mesmo navegador ou celular voltando com outro nome é o padrão clássico de fazenda.
- Um emulador, uma máquina virtual ou uma ferramenta de automação. Usuários reais não completam ofertas a partir de um navegador headless ou de um emulador de Android.
- Tor ou IP de datacenter em ofertas segmentadas por país. O anunciante pagou por um país onde o usuário nunca esteve, então a conversão vai ser estornada.
- Um endereço na sua própria lista de bloqueio. Cada rede confirmada entrega dispositivos, IPs e endereços que nunca mais deveriam ganhar.
Outros sinais servem mais como motivo para olhar do que para bloquear: uma VPN sozinha, um fuso horário que não bate com o IP, uma conta recém-criada ou uma oferta feita rápido demais. Dois ou três deles juntos na mesma conta costumam somar uma pontuação de bloqueio de qualquer forma, e é justamente para isso que serve a pontuação: um sinal fraco raramente decide; vários fortes sempre decidem.
Como escolher seus limites
Cada site tem dois números: a pontuação a partir da qual um evento vai para revisão e a pontuação a partir da qual ele é bloqueado. Os valores padrão funcionam para a maioria dos sites de recompensa, mas o seu tráfego não é igual ao de todo mundo.
- Rode em modo sombra de três a sete dias para ter tráfego real pontuado.
- Abra as contas que teriam sido bloqueadas e confira vinte delas à mão. Se quase todas forem claramente fraude, o limite de bloqueio está certo ou pode até descer um pouco.
- Faça o mesmo com vinte contas em revisão. Se a maioria for honesta, suba o limite de revisão para que sua equipe só olhe os casos que importam.
- Repita depois de mudanças grandes: um offerwall novo, um país novo ou um método de pagamento novo mudam quem aparece.
As regras ajudam quando um sinal importa mais no seu site do que nos outros. Um site que só paga em cripto pode querer bloquear toda carteira compartilhada; um site de pesquisas pode se importar mais com a velocidade. As regras mudam o peso de um motivo sem mexer no seu código.
Quando um usuário honesto é bloqueado
Vai acontecer. Uma família dividindo um notebook, um viajante no Wi-Fi do hotel ou um usuário atrás de uma operadora móvel que troca de IP podem parecer incomuns. O que importa é a rapidez com que você desfaz o bloqueio.
- Mantenha a conta, suspenda-a. Excluir joga fora o histórico de que você precisa para decidir.
- Ofereça um caminho de volta. Uma mensagem neutra com um link para o suporte basta. Fazendas raramente escrevem; usuários honestos, sim.
- Coloque na lista de permissão depois de verificar. Quando tiver certeza, adicione a conta à lista de permissão para que os mesmos sinais não a bloqueiem de novo na semana seguinte.
- Libere rápido o dinheiro retido. Uma conversão ou um saque retido que se mostre legítimo deveria ser pago no mesmo dia. É isso que torna a retenção aceitável para usuários honestos.
Plano de implantação em uma semana
| Dia | Etapa | Por quê |
|---|---|---|
| 1 | Instale o script e envie saques e postbacks, com o site em modo sombra | O tráfego real é pontuado com risco zero |
| 2-3 | Revise uma amostra dos possíveis bloqueios e revisões | Confira os limites com os seus próprios usuários |
| 4 | Mude para o modo ativo e aja só nos saques | Protege o dinheiro com o menor impacto |
| 5 | Retenha as conversões bloqueadas no handler de postback | Os saldos param de crescer nas contas sinalizadas |
| 6-7 | Recuse cadastros bloqueados e mantenha fechadas as ofertas bloqueadas | As fazendas param na porta e nunca chegam aos seus anunciantes |
Como medir o resultado
Três números dizem se o bloqueio funciona. Acompanhe-os toda semana durante o primeiro mês.
- Taxa de estornos das suas redes. A parcela de conversões estornadas semanas depois deve cair à medida que as contas bloqueadas param de ganhar.
- Dinheiro retido e dinheiro liberado. Se você libera a maior parte do que retém, seus limites estão rígidos demais. Se quase nunca libera nada, talvez estejam frouxos demais.
- Tickets de suporte sobre bloqueios. Alguns por semana é normal. Um salto repentino geralmente significa que um sinal está forte demais para o seu público.
Próximos passos
Comece pelo saque: é uma chamada só e protege o dinheiro diretamente. Depois adicione o postback e, em seguida, o cadastro e o clique na oferta. O checklist de saque cobre o que olhar durante a revisão, e a página de preços inclui um teste de 14 dias do plano Growth.