Arquitetura

Especificação técnica do sistema de rastreamento Moclick Bridge para fins de auditoria, compliance e revisão de segurança.

Visão Geral

O Moclick Bridge é uma plataforma de atribuição de conversões composta por três camadas: cliente (browser), servidor e storage.

  • Cliente: Execução do JavaScript de rastreamento no navegador do usuário final.
  • Servidor: Processamento via API REST e backend para gestão de campanhas.
  • Storage: Persistência em banco de dados e logs de auditoria.

Componentes

moclick.js

  • Tipo: JavaScript vanilla (ES5)
  • Tamanho: ~3KB minificado
  • Dependências: Zero
  • Permissões: Leitura de cookies próprios

Bridge Server

  • Plataforma: PHP 8.x + Apache/Nginx
  • API: REST
  • Cache: Redis/Object Cache (opcional)
  • SSL: TLS 1.3 obrigatório

Database

  • Engine: MySQL 8.0 / MariaDB 10.6
  • Localização: AWS São Paulo
  • Backup: Diário automático

Integrações

  • Parceiros de mídia: Beacon de audiência
  • Plataformas de tracking: Postback de conversão
  • Formato: Image pixel (GET requests)

Fluxo de Dados

Inicialização (Page View)

  1. Script Load: GET /moclick-{slug}.js
  2. Config Injection: Sistema injeta configuração dinâmica
  3. API Call: GET /api/v1/campaign

Rastreamento de Conversão

  1. Conversion Event: window.MoclickConversion definido
  2. Cookie Read: moclick_click_id recuperado
  3. Pixel Fire: Image request para postback configurado

Retenção de Dados

Campo Origem Destino Retenção
campaign_slug URL do script Logs 30 dias
click_id Cookie / URL Postback + Logs 30 dias
transaction_id JavaScript Postback + Logs 30 dias
IP address HTTP Header Logs de segurança 7 dias

Deduplicação: Conversões são deduplicadas usando a chave composta {campaign_slug}:{transaction_id}. Transações com mesmo ID são ignoradas após primeira ocorrência.

Especificação da API

GET /api/v1/campaign

Retorna configurações da campanha.

// Request GET /api/v1/campaign?slug=sua-campanha // Response 200 { "postback_url": "https://track.exemplo.com/...", "beacon_url": "https://dmp.exemplo.com/...", "cookie_days": 30, "allocation": 100 }

GET /api/v1/conversion

Proxy para disparo de conversões. Retorna GIF 1x1 transparente.

// Request GET /api/v1/conversion?slug=sua-campanha&click_id=abc123&amount=150.00&txid=PEDIDO-456 // Response Content-Type: image/gif Body: [43 bytes]

CORS Policy

  • Access-Control-Allow-Origin: *
  • Access-Control-Allow-Credentials: false
  • Métodos permitidos: GET

Segurança

Proteção contra Injeção

  • Entradas sanitizadas com funções nativas
  • Parâmetros numéricos validados
  • Output escapado para prevenção de XSS

Rate Limiting

  • API de campanha: 100 req/min por IP
  • Proxy de conversão: 50 req/min por IP
  • Bloqueio após 10 erros 4xx sequenciais

Limitações

Por ser um sistema client-side baseado em JavaScript, é tecnicamente possível que usuários modifiquem ou bloqueiem a execução. Isso é aceito como limitação do modelo.

Conformidade

Requisito LGPD Implementação
Base legal Art. 7, IX Legítimo interesse
Consentimento Não necessário Dados técnicos anônimos
Direito ao esquecimento Art. 18, II Exclusão em 72h
Retenção Art. 16 30 dias padrão
Segurança Art. 46 HTTPS, TLS 1.3

Este documento é revisado a cada alteração significativa de arquitetura ou a cada 6 meses.