📊 Visão Geral
🔎 Cliques
🌐 Sites
🚫 IPs & Blacklist
🎯 Campanhas
🤖 IA Analista
🔧 Integração
⚙️ Configurações
Filtrar por site:
Todos
TOTAL CLIQUES
BLOQUEADOS 24H
VPN/DATACENTER 7D
TEMPO MÉDIO PÁGINA
Cliques por Dia (7 dias)
Cliques por País
Top IPs Suspeitos (7 dias)
IPCliquesScorePaísSiteAção
Carregando...
Filtros Avançados
— cliques encontrados
Data ↕ IP ↕ Site País ↕ ISP Campanha Score ↕ Flags Status Ação
Use os filtros acima e clique em 🔍 Filtrar
🤖 IA Analista de Fraude
powered by GPT-4o-mini
👋 Olá! Sou seu analista de fraude com IA.

Posso responder perguntas sobre os dados coletados, identificar padrões suspeitos, sugerir ações e explicar o que está acontecendo nas suas campanhas.

Experimente perguntar algo!
Perguntas Sugeridas
Configuração da IA
A IA analisa os dados dos últimos 7 dias automaticamente. Configure sua OPENAI_API_KEY no servidor para ativar.
Gerencie os sites monitorados pelo FraudGuard
Carregando sites...
Estatísticas por Site (7 dias)
Site ID Cliques Bloqueados VPN/Proxy Datacenter IPs únicos Devices únicos Última visita
Carregando...
Exportação & Reembolso
🎯 Exclusão de IPs no Google Ads

Exporta todos os IPs bloqueados em formato compatível com o Google Ads.
Como usar: Google Ads → Campanhas → Configurações → Exclusões de IP → Importar

Limite do Google Ads
⚠️ O Google Ads aceita no máximo 500 IPs por lista de exclusão por campanha.
O arquivo exportado contém os 500 IPs mais recentes com maior score de fraude.
💰 Relatório para Solicitação de Reembolso

Gera relatório com evidências de cliques inválidos para solicitar crédito ao Google Ads.
Como solicitar: Google Ads → Ferramentas → Central de Faturamento → Ajustes e reembolsos

O que incluir no pedido
1. Anexe o Relatório Executivo (.txt) como documento principal
2. Anexe o CSV de evidências como suporte técnico
3. Descreva o período e o impacto estimado no budget
IPs Bloqueados
IPMotivoScoreExpiraAção
Carregando...
Análise de IP
Digite um IP acima para ver detalhes completos: país, cidade, ISP, VPN/proxy, histórico de cliques e score de fraude.
Cliques por Campanha (7 dias)
Fraude por Site (7 dias)
Detalhamento por Campanha
CampanhaCliquesBloqueadosTaxa de fraudeStatus
Carregando...
Como Integrar em Qualquer Site

Cole o snippet abaixo no <head> de cada página que recebe tráfego de anúncios. Substitua SEU_SITE_ID pelo ID único do seu site.

Carregando snippets dos sites cadastrados...

Integração via API

Clique em um endpoint para ver exemplo completo (Postman):

MétodoEndpointDescrição
POST/api/track/clickRegistra um clique com fingerprint
POST/api/track/sessionRegistra comportamento de sessão
GET/api/check/ip?ip=X.X.X.XConsulta detalhes de um IP
GET/api/stats?site_id=XEstatísticas (filtro opcional por site)
POST/api/block/ipBloqueia um IP manualmente
POST/api/unblock/ipRemove IP da blacklist
GET/api/export/blockedExporta IPs para Google Ads
GET/api/sitesLista sites cadastrados
POST/api/sitesCadastra novo site
DEL/api/sites/:idRemove site
GET/snippet.js?site_id=XSnippet de tracking por site
🤖 Inteligência Artificial
🎯 Thresholds de Detecção
📊 Pontuação por Tipo de Ameaça
🌍 Geolocalização
💡 Cliques fora do país alvo recebem penalidade adicional no score de fraude.
' }, }; function showEndpointModal(key) { const doc = ENDPOINT_DOCS[key]; if (!doc) return; const methodColor = {'GET':'var(--accent2)','POST':'var(--accent)','DELETE':'var(--danger)'}[doc.method] || 'var(--text)'; document.getElementById('modalEndpointTitle').textContent = doc.title; let html = ''; html += '
' + doc.desc + '
'; html += '
'; html += '
URL
'; html += '
'; html += '' + doc.method + ''; html += '' + HOST + doc.url + ''; html += '
'; if (Object.keys(doc.headers).length > 0) { html += '
'; html += '
Headers
'; html += '
' + JSON.stringify(doc.headers, null, 2) + '
'; html += '
'; } if (doc.body) { html += '
'; html += '
Body (JSON)
'; html += '
' + JSON.stringify(doc.body, null, 2) + '
'; html += '
'; } const respStr = typeof doc.response === 'string' ? doc.response : JSON.stringify(doc.response, null, 2); html += '
'; html += '
Resposta de exemplo
'; html += '
' + respStr + '
'; html += '
'; html += '
'; html += '💡 Postman: Importe como nova requisição, selecione o método ' + doc.method + ', cole a URL e o body no formato raw/JSON.'; html += '
'; document.getElementById('modalEndpointBody').innerHTML = html; document.getElementById('modalEndpoint').classList.add('open'); } // ── IP Analysis Modal (Overview tab) ───────────────────────── async function checkIpModal(ip) { document.getElementById('modalIpTitle').textContent = `🔍 Análise de IP: ${ip}`; document.getElementById('modalIpBody').innerHTML = '
Consultando dados...
'; document.getElementById('modalIpAnalysis').classList.add('open'); try { const res = await fetch(`/api/check/ip?ip=${ip}`); const data = await res.json(); const d = data.ip_data; document.getElementById('modalIpBody').innerHTML = `
🌍 País: ${d.country || '—'}
🏙️ Cidade: ${d.city || '—'}
🏢 ISP: ${d.isp || '—'}
📡 Org: ${d.org || '—'}
🔴 VPN: ${d.is_vpn?'Sim':'Não'}
🔴 Proxy: ${d.is_proxy?'Sim':'Não'}
🔴 Datacenter: ${d.is_hosting?'Sim':'Não'}
📊 Cliques 24h: ${data.clicks_24h}
${data.blocked ? `
🚫 BLOQUEADO — ${data.blocked.reason}
` : ''}
${!data.blocked ? `` : `` }
`; } catch(e) { document.getElementById('modalIpBody').innerHTML = `Erro: ${e.message}`; } } // ── Init ────────────────────────────────────────────────────── loadStats(); loadSummary(); setInterval(loadStats, 30000);