Anúncios de apostas: como criar uma triagem técnica

Anúncios de apostas: como criar uma triagem técnica

A Meta continuou exibindo anúncios de apostas online ao público brasileiro mesmo depois do prazo para retirar esse tipo de publicidade, segundo levantamento da BBC News Brasil. Para quem desenvolve plataformas, sistemas de moderação ou ferramentas de análise, o caso mostra um problema difícil de resolver com um simples filtro de palavras: anúncios podem voltar com novas páginas, textos, imagens e links, enquanto a obrigação de agir depende de identificar, revisar e remover conteúdo em escala.

Nas consultas realizadas em 10 e 11 de novembro, a BBC encontrou mais de 700 anúncios com convites para cassinos online, bônus e promessas de multiplicar dinheiro. A reportagem também relata que algumas campanhas novas estavam associadas a páginas e sites já denunciados pelo governo à Meta. Dois relatórios obtidos via Lei de Acesso à Informação registravam cobranças para remover anúncios e explicar como impedir novas publicações semelhantes.

O que o caso dos anúncios de bets revela sobre moderação de conteúdo

De acordo com a BBC News Brasil, uma medida provisória assinada em 25 de setembro proibiu a exploração, a oferta, a intermediação e a publicidade desse tipo de jogo online. O prazo para retirar o material publicitário terminou em 5 de outubro. A medida também determina que as plataformas previnam a circulação e retirem peças infratoras quando notificadas.

O ponto técnico não é apenas detectar uma palavra como “aposta”. É manter um processo confiável diante de campanhas que mudam de identidade e formato. Um anúncio pode usar uma imagem com texto embutido, um domínio recém-criado, uma página diferente da campanha original ou uma chamada indireta para conduzir a pessoa até um cassino.

Isso exige combinar sinais. Texto, imagem, URL, identidade da página, histórico de denúncias e destino final podem ser relevantes. Nenhum sinal isolado resolve o problema: um termo pode aparecer em conteúdo jornalístico legítimo, enquanto uma peça irregular pode evitar os termos mais óbvios.

Por que filtros simples falham na detecção de anúncios de apostas

O texto visível não conta a história inteira

Um filtro baseado em palavras-chave pode encontrar expressões como “bônus”, “cassino” ou “multiplique seu dinheiro”. Mas anunciantes podem trocar letras por números, inserir espaços, usar imagens em vez de texto ou empregar frases ambíguas. Por isso, reconhecimento óptico de caracteres (OCR) ajuda a extrair texto de imagens, mas não determina sozinho se o anúncio viola uma regra.

Modelos de linguagem também podem apoiar a classificação de textos, mas não devem ser tratados como árbitros legais. Eles podem errar contexto, ironia, citações ou conteúdo educativo. Na minha avaliação, a função mais segura é priorizar casos para revisão, não remover automaticamente qualquer publicação que contenha uma palavra suspeita.

O anúncio é só uma parte da campanha

Uma peça publicitária pode levar a uma página intermediária que redireciona para outro domínio. Se a análise parar no texto do anúncio, o sistema perde parte do contexto. O destino pode mudar depois da aprovação, e domínios diferentes podem estar ligados à mesma operação.

Para reduzir esse ponto cego, uma plataforma pode registrar a URL anunciada, acompanhar redirecionamentos de forma controlada e comparar domínios, páginas e identificadores com registros anteriores. A coleta precisa respeitar as regras aplicáveis, os limites das interfaces disponíveis e a segurança dos usuários; não é uma boa ideia transformar isso em rastreamento indiscriminado.

Como desenhar uma triagem técnica responsável

Eu separaria o fluxo em quatro etapas: ingestão de dados obtidos por meios autorizados, normalização, classificação de risco e revisão humana. Depois da decisão, o sistema deve registrar a ação e permitir reprocessar casos quando as regras mudarem.

  • Ingestão: use APIs, relatórios ou exportações autorizadas. Preserve a origem e a data de captura.
  • Normalização: padronize espaços, caracteres e URLs; extraia texto de imagens quando houver base técnica e autorização para isso.
  • Triagem: combine regras, histórico e modelos para ordenar a fila de revisão, sem confundir suspeita com violação confirmada.
  • Auditoria: armazene evidências mínimas, decisão, responsável e justificativa, com controles de acesso e prazo de retenção.

Esse desenho também ajuda a responder a uma pergunta operacional importante: a equipe consegue demonstrar o que recebeu, quando analisou e qual providência tomou? Um sistema de moderação sem trilha de auditoria pode até remover conteúdo, mas terá dificuldade para explicar o processo ou corrigir falsos positivos.

Na Prática: classifique anúncios suspeitos sem automatizar a decisão

O exemplo abaixo lê um CSV autorizado com cinco colunas e gera uma fila JSONL para revisão. Ele usa palavras-chave como sinais de triagem. Não acessa a Meta, não coleta anúncios e não declara que uma peça é ilegal. A ideia é mostrar como organizar uma primeira etapa reproduzível.

import csv
import hashlib
import json
import re
import unicodedata

KEYWORDS = (
    "aposta",
    "cassino",
    "bonus",
    "multiplique seu dinheiro",
    "jogue agora",
)

def normalize(text):
    text = unicodedata.normalize("NFKD", text or "")
    text = "".join(char for char in text if not unicodedata.combining(char))
    text = re.sub(r"\s+", " ", text.lower()).strip()
    return text

def main():
    seen = set()

    with open("anuncios.csv", newline="", encoding="utf-8") as source, \
         open("revisao.jsonl", "w", encoding="utf-8") as output:
        for row in csv.DictReader(source):
            text = normalize(row.get("creative_text", ""))
            matches = [word for word in KEYWORDS if normalize(word) in text]

            if not matches:
                continue

            identity = "|".join((
                row.get("ad_id", ""),
                row.get("landing_url", ""),
                text,
            ))
            fingerprint = hashlib.sha256(identity.encode("utf-8")).hexdigest()

            if fingerprint in seen:
                continue
            seen.add(fingerprint)

            result = {
                "ad_id": row.get("ad_id", ""),
                "page_name": row.get("page_name", ""),
                "country": row.get("country", ""),
                "landing_url": row.get("landing_url", ""),
                "matched_terms": matches,
                "fingerprint": fingerprint,
                "status": "needs_human_review",
            }
            output.write(json.dumps(result, ensure_ascii=False) + "\n")

if __name__ == "__main__":
    main()

Para testar, salve o código como triagem.py e crie anuncios.csv com os cabeçalhos ad_id,page_name,creative_text,landing_url,country. Ao executar python triagem.py, o programa cria revisao.jsonl com os casos que contêm pelo menos um termo configurado.

A impressão digital evita duplicatas idênticas dentro de uma execução, mas não identifica com certeza anúncios equivalentes com pequenas alterações. Em produção, eu usaria uma estratégia de deduplicação mais robusta, como comparação de URLs normalizadas e hashes perceptuais de imagens, sempre com limites claros e validação humana.

Erros comuns em sistemas de moderação de anúncios

  • Tratar uma palavra como prova: um filtro pode marcar uma notícia ou uma página educativa. Use correspondências para priorizar revisão, não para concluir automaticamente.
  • Ignorar OCR e variações visuais: analisar apenas o texto fornecido pelo anunciante deixa escapar conteúdo inserido em imagens e vídeos.
  • Confiar só no classificador: modelos sofrem com mudanças de linguagem, dados desatualizados e falsos positivos. Meça precisão e revocação por tipo de anúncio e revise amostras.
  • Não guardar contexto da decisão: sem data, origem, versão das regras e justificativa, fica difícil auditar remoções ou entender por que uma campanha voltou.
  • Raspar dados sem avaliar autorização: automação não elimina obrigações contratuais, legais ou de privacidade. Prefira canais autorizados e colete apenas o necessário.
  • Confundir remoção pontual com prevenção: retirar uma peça não impede que outra conta publique uma variação. A análise precisa observar padrões de repetição sem presumir que contas distintas pertencem à mesma pessoa.

O que muda para quem desenvolve plataformas e ferramentas de compliance

Para equipes de engenharia, o caso reforça a importância de projetar moderação como um processo contínuo, não como um endpoint de classificação. Isso envolve monitoramento de filas, prazos de resposta, reabertura de casos, controle de versões das regras e indicadores para detectar reincidência.

Também vale separar decisões técnicas de decisões jurídicas. Engenheiros podem construir mecanismos para receber notificações, localizar peças relacionadas e registrar providências. A interpretação do escopo de uma norma e a decisão sobre um caso concreto precisam de governança adequada, em vez de ficarem escondidas dentro de uma expressão regular ou de um prompt.

Eu acompanharia métricas como tempo entre notificação e análise, taxa de falsos positivos, reincidência após remoção e proporção de casos escalados para revisão. A métrica “quantos anúncios foram removidos” é incompleta: pode premiar remoções excessivas e não mostrar se o conteúdo reaparece por outro caminho.

Perguntas frequentes sobre anúncios de bets e moderação

Um filtro por palavras-chave consegue identificar anúncios proibidos?

Não sozinho. Ele pode encontrar sinais para triagem, mas não entende todo o contexto nem identifica necessariamente texto em imagem, redirecionamentos ou variações disfarçadas. A decisão precisa considerar outros dados e revisão apropriada.

OCR e inteligência artificial resolvem o problema?

Não. OCR pode extrair texto de imagens, e modelos podem ajudar a ordenar casos por risco. Ambos podem errar. O uso mais responsável é apoiar a análise e tornar o processo mais eficiente, mantendo registros e mecanismos de revisão.

Como evitar que anúncios removidos voltem com outra página?

Compare sinais disponíveis, como conteúdo, URLs, páginas e histórico de casos, e monitore reincidência. Evite presumir que semelhança prova identidade: use os sinais para investigação e aplique critérios consistentes antes de tomar medidas.

O exemplo de código determina se um anúncio é ilegal?

Não. O código apenas procura termos em um arquivo CSV e cria uma lista para revisão humana. Ele não verifica a legislação, não acessa plataformas e não substitui análise jurídica ou operacional.

O levantamento da BBC News Brasil mostra que remover anúncios depois de uma notificação é apenas parte do desafio. Para quem constrói sistemas, a parte difícil está em detectar variações, controlar falsos positivos e manter evidências suficientes para explicar cada decisão. É aí que arquitetura, governança e revisão humana precisam trabalhar juntas.

Gostou? Me segue no GitHub e deixa um comentário se tiver dúvida ou quiser aprofundar algum ponto.

Y

Yuri Sousa

Front-End Developer / Designer

Desenvolvedor apaixonado por criar experiências digitais acessíveis e visualmente perfeitas. Escrevo sobre desenvolvimento web, design e tecnologia.