PS PrestaShop Intermédio

Traffic Radar: guia completo

Instalar, configurar e explorar o painel em tempo real Traffic Radar: contador em linha de humanos e robôs, deteção dos crawlers de IA, gráficos, mapa de calor, controlo do robots.txt e exportação CSV para PrestaShop 8 e 9.

Atualizado Versão do módulo 1.1.1

O Traffic Radar mostra em tempo real quem visita a sua loja PrestaShop e separa os visitantes reais dos robôs e dos crawlers de IA. O módulo instala um painel dedicado em Estatísticas → Traffic Radar: contador de utilizadores em linha instantâneo (humanos face a robôs), gráficos de evolução, mapa de calor de afluência, principais crawlers de IA, fluxo de atividade em direto, controlo dos crawlers de IA através do robots.txt e exportação CSV. Este guia cobre a instalação, as definições, o funcionamento da deteção, cada vista do painel, a privacidade e a resolução de problemas.

Instalação

  1. Descarregue o arquivo dftrafficradar.zip a partir da sua conta DataFirefly.
  2. Back-office do PrestaShop → Módulos → Carregar um módulo → envie o ZIP.
  3. Na instalação, o módulo cria as suas duas tabelas (df_traffic_visit e df_traffic_online), regista os seus hooks e acrescenta o separador Estatísticas → Traffic Radar.

Compatível com PrestaShop 8.0 a 9.x, em PHP 7.4 a 8.3. Sem overrides do tema, sem dependências Composer e sem CDN (o Chart.js está embutido localmente). Compatível com multiloja e multi-idioma (FR, EN, ES, DE, IT).

Configuração

Vá a Módulos → DataFirefly Traffic Radar → Configurar.

  • Ativar o seguimento: interruptor principal. Se estiver desativado, não é registada qualquer visita.
  • Registar os robôs / crawlers de IA: desative-o para acompanhar apenas as visitas humanas.
  • Anonimizar os endereços IP (RGPD): os IP são sempre convertidos em hash; esta opção mascara ainda o último octeto antes do hash.
  • Retenção dos dados (dias): as visitas mais antigas são eliminadas automaticamente. 0 significa conservação ilimitada. Valor predefinido: 90.
  • Intervalo do heartbeat (segundos): frequência com que um visitante em linha envia um sinal para continuar a ser contado. Valor predefinido: 15.
  • Janela «em linha» (segundos): um visitante é considerado «em linha agora» se tiver sido visto dentro desta janela. Valor predefinido: 90.
  • Endereços IP excluídos: um por linha (ou separados por vírgulas). Ideal para ignorar o seu próprio tráfego e o da sua equipa.

Acrescente os IP do seu escritório aos IP excluídos logo na instalação, para que os seus próprios testes não inflacionem as estatísticas.

Como funciona a deteção

O Traffic Radar combina dois sinais complementares, o que lhe permite separar realmente os humanos dos crawlers.

Deteção do lado do servidor

Em cada página vista, através do hook actionFrontControllerSetMedia, o módulo classifica o User-Agent a partir de uma base com mais de 40 assinaturas (IA, motores de pesquisa, SEO, redes sociais, monitorização) e atribui-lhe um tipo. É isto que permite captar os crawlers de IA, que quase nunca executam JavaScript.

Heartbeat do lado do cliente

Um pequeno script (tracker.js) envia periodicamente um sinal ao controlador de front track, para manter os visitantes reais contados como «em linha» entre duas páginas. Como os robôs não acionam esse sinal, o contador em tempo real dos humanos mantém-se limpo.

Os pedidos AJAX e os subpedidos de módulos (adição ao carrinho, lista de desejos, avaliações e o próprio heartbeat) não são contados como páginas vistas: só as verdadeiras páginas navegáveis são registadas.

O painel

O separador Estatísticas → Traffic Radar reúne todas as vistas, filtráveis por período (hoje, 24 h, 7, 30 ou 90 dias, ou personalizado) e por audiência (todo o tráfego, humanos, todos os robôs, ou um tipo específico de robô).

  • Em linha agora: contador em tempo real separado entre humanos e robôs, atualizado ao ritmo do heartbeat.
  • KPI: visitas, sessões únicas, visitas humanas, visitas de robôs e acessos de IA / LLM. Cada KPI mostra a sua variação (▲ / ▼ em percentagem) face ao período anterior de igual duração.
  • Visitas ao longo do tempo: curva de humanos face a robôs, com granularidade automática (horária ou diária, consoante o período).
  • Repartição da audiência: gráfico em anel por tipo (humano, IA, motores, SEO, redes sociais, monitorização, outros).
  • Principais crawlers de IA: barras horizontais com os crawlers de IA mais ativos (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Bytespider, entre outros).
  • Mapa de calor de afluência: grelha de hora por dia da semana.
  • Principais páginas, referências e países: classificações em barras.
  • Fluxo de atividade em direto: últimas visitas com tipo, identidade, página, dispositivo e país.

O mapa de calor é lido no fuso horário da loja. Confirme que está em Europe/Lisbon em Parâmetros da loja: se o servidor estiver em UTC, o pico das 21h aparece deslocado uma hora no verão, o que basta para tirar conclusões erradas sobre a melhor hora para enviar uma campanha.

O contador em tempo real

O bloco «Em linha agora» apoia-se na tabela df_traffic_online, atualizada em cada página vista e em cada heartbeat. Um visitante desaparece do contador assim que deixa de ser visto durante o período definido pela janela «em linha».

Se o contador ficar a zero apesar de haver visitantes, confirme que usa a versão 1.1.1 ou superior: uma diferença de fuso horário entre o PHP e o MySQL podia falsear a janela em tempo real nas versões anteriores. A correção alinha a leitura com o relógio da escrita.

Radar de novos crawlers

O painel «Novos crawlers detetados» destaca os robôs cuja primeira visita registada cai no período analisado. É a ferramenta ideal para detetar de imediato a chegada de um novo crawler de IA ao seu catálogo: nome do robô, tipo, data da primeira aparição e número de acessos.

Controlo dos crawlers de IA (robots.txt)

O centro de controlo lista 25 crawlers de IA conhecidos com o respetivo token oficial de robots.txt. Em cada um, escolhe «permitido» ou «bloqueado» através de uma caixa de seleção; os crawlers de treino estão pré-assinalados como bloqueados por predefinição, enquanto os agentes que respondem a um pedido do utilizador são deixados passar.

  • Os crawlers realmente vistos na sua loja são assinalados com um emblema.
  • Duas predefinições com um clique: «Bloquear tudo» e «Definições recomendadas».
  • O módulo gera em direto um bloco de robots.txt pronto a colar, com um botão Copiar.

Nesta versão, a aplicação é propositadamente manual: copia o bloco gerado para o seu ficheiro robots.txt. O módulo nunca escreve o ficheiro automaticamente, o que garante que as suas diretivas existentes não são substituídas por surpresa.

Bloquear os crawlers de treino e deixar passar os agentes que respondem a pedidos do utilizador é a configuração que faz sentido se quer continuar a aparecer nas respostas do ChatGPT, do Perplexity ou do Claude quando alguém procura os seus produtos, sem alimentar os conjuntos de treino. Se o seu objetivo for a visibilidade nas IA, evite o preset «Bloquear tudo».

Widget no painel inicial

O módulo acrescenta um cartão «Traffic Radar» à coluna da direita do painel inicial do back-office (hook dashboardZoneTwo): contador em linha em direto (humanos e robôs) e contadores do dia (visitas, humanos, robôs, IA / LLM), com um atalho para o painel completo.

Exportação CSV

O botão CSV da barra de ferramentas exporta a totalidade do tráfego correspondente aos filtros ativos (período e audiência). O ficheiro é codificado em UTF-8 com BOM, para abrir corretamente no Excel, e contém uma linha por visita: data, tipo, nome do robô, dispositivo, página, referência, país, entre outros.

Privacidade e RGPD

  • Não é guardado qualquer endereço IP em bruto: apenas hashes SHA-1 com sal.
  • A anonimização opcional mascara o último octeto (IPv4) ou os últimos grupos (IPv6) antes do hash.
  • A retenção é configurável, com limpeza automática probabilística: não é necessário qualquer cron.
  • A lista de IP excluídos permite ignorar o seu próprio tráfego.

A limpeza dos dados antigos é acionada de forma probabilística ao longo do tráfego. Se preferir uma limpeza determinística, pode chamar a purga a partir de um cron, mas não é necessário.

Em Portugal, o endereço IP é um dado pessoal, mesmo convertido em hash com sal, desde que permita distinguir um visitante. Ative a anonimização, mantenha uma retenção proporcionada (90 dias é um valor defensável) e inscreva esta medição de audiência no seu registo de atividades de tratamento, sob supervisão da CNPD. Como o módulo não usa cookies e se limita a medir a audiência do seu próprio sítio, dispensa em regra o consentimento prévio da Lei n.º 41/2004, mas confirme esse enquadramento com o seu jurista, sobretudo se cruzar estes dados com outras fontes.

Compatibilidade e notas técnicas

  • PrestaShop 8.0 a 9.x, multiloja e multi-idioma.
  • Arquitetura PSR-4 no namespace DataFirefly/TrafficRadar (com barra invertida como separador) e autoloader embutido, sem Composer.
  • Controlador de administração legacy (ModuleAdminController), para compatibilidade com PS8 e PS9.
  • Endpoints AJAX de back-office através do 4.º argumento de getAdminLink(); respostas JSON emitidas por um método dedicado.
  • Hooks utilizados: actionFrontControllerSetMedia, displayHeader e dashboardZoneTwo.
  • Duas tabelas utf8mb4 indexadas: df_traffic_visit (registo das visitas) e df_traffic_online (presença, com chave única por sessão).
  • Chart.js embutido localmente, sem chamadas a CDN.

Perguntas frequentes e resolução de problemas

«Em linha agora» fica a zero. Certifique-se de que está na versão 1.1.1 ou superior (correção do fuso horário entre o PHP e o MySQL). Confirme também que o seguimento está ativo e que o seu próprio IP não consta da lista de IP excluídos.

Apareciam entradas «module-…» no fluxo. Corrigido na 1.1.1: os pedidos AJAX e os subpedidos de módulos deixaram de ser contados como páginas vistas.

Os crawlers de IA são mesmo detetados? Sim. A deteção do lado do servidor capta-os mesmo sem JavaScript. As assinaturas cobrem a OpenAI, a Anthropic, o Google-Extended, a Perplexity, a ByteDance, a Meta, a Mistral, a Cohere, a Amazon, a Common Crawl e outros.

O módulo torna a loja mais lenta? Não. A classificação do User-Agent é uma simples comparação de cadeias em memória, e o seguimento resume-se a uma inserção e a uma atualização indexadas por página vista.

Uma cache de página completa falseia os números? As páginas servidas a partir de uma cache de página completa não voltam a passar pelo PHP e, por isso, não são recontadas do lado do servidor. O heartbeat em JavaScript continua, ainda assim, a manter os visitantes humanos contados como em linha.

Compatível com o PrestaShop 1.7? Não, apenas com PrestaShop 8.0 a 9.x.

Esta página foi útil?

Ainda com dúvidas? Contacte o suporte