PS PrestaShop Gemiddeld

Traffic Radar: volledige gids

Het realtimedashboard Traffic Radar installeren, instellen en benutten: teller van wie online is (mensen en bots), detectie van AI-crawlers, grafieken, heatmap, robots.txt-beheer en CSV-export voor PrestaShop 8 en 9.

Bijgewerkt Moduleversie 1.1.1

Traffic Radar toont live wie uw PrestaShop-winkel bezoekt en scheidt echte bezoekers van robots en AI-crawlers. De module zet een eigen dashboard in Statistieken → Traffic Radar: een onmiddellijke teller van wie online is (mensen tegenover bots), verloopgrafieken, een drukteheatmap, de top van de AI-crawlers, een live activiteitenstroom, een controlecentrum voor AI-crawlers via robots.txt en een CSV-export. Deze gids behandelt de installatie, de instellingen, de werking van de detectie, elk onderdeel van het dashboard, de privacy en de probleemoplossing.

Installatie

  1. Download het archief dftrafficradar.zip vanuit uw DataFirefly-account.
  2. PrestaShop-backoffice → Modules → Een module uploaden → verstuur de ZIP.
  3. Bij de installatie maakt de module zijn twee tabellen aan (df_traffic_visit en df_traffic_online), registreert hij zijn hooks en voegt hij het tabblad Statistieken → Traffic Radar toe.

Geschikt voor PrestaShop 8.0 tot 9.x, met PHP 7.4 tot 8.3. Geen enkele override van het thema, geen Composer-afhankelijkheid en geen CDN (Chart.js zit lokaal ingebouwd). Geschikt voor multistore en meertalig (FR, EN, ES, DE, IT).

Configuratie

Ga naar Modules → DataFirefly Traffic Radar → Configureren.

  • De opvolging inschakelen: de hoofdschakelaar. Staat die uit, dan wordt er geen enkel bezoek meer vastgelegd.
  • Bots en AI-crawlers vastleggen: zet dat uit om alleen de menselijke bezoeken te volgen.
  • IP-adressen anonimiseren (AVG): de IP-adressen worden altijd gehasht; die optie maskeert bovendien het laatste octet vóór het hashen.
  • Bewaartermijn (dagen): oudere bezoeken verdwijnen automatisch. 0 betekent onbeperkt bewaren. Standaardwaarde: 90.
  • Heartbeat-interval (seconden): hoe vaak een bezoeker die online is een signaal stuurt om meegeteld te blijven. Standaardwaarde: 15.
  • Venster « online » (seconden): een bezoeker geldt als « nu online » wanneer hij binnen dat venster is gezien. Standaardwaarde: 90.
  • Uitgesloten IP-adressen: één per regel (of gescheiden door komma’s). Ideaal om uw eigen verkeer en dat van uw team te negeren.

Zet de IP-adressen van uw kantoor meteen bij de installatie in de uitsluitingen, zodat uw eigen tests de statistieken niet opblazen.

Hoe de detectie werkt

Traffic Radar combineert twee signalen die elkaar aanvullen, waardoor hij mensen werkelijk van crawlers kan scheiden.

Detectie aan serverzijde

Bij elke paginaweergave deelt de module via de hook actionFrontControllerSetMedia de user-agent in, op basis van meer dan 40 handtekeningen (AI, zoekmachines, SEO, sociale media, monitoring), en wijst hij er een type aan toe. Zo vangt hij ook de AI-crawlers op, die vrijwel nooit JavaScript uitvoeren.

Heartbeat aan clientzijde

Een klein script (tracker.js) stuurt geregeld een signaal naar de frontcontroller track, om echte bezoekers tussen twee pagina’s als « online » meegeteld te houden. Omdat bots die hartslag niet uitlokken, blijft de realtimeteller van de mensen zuiver.

AJAX-verzoeken en subverzoeken van modules (toevoegen aan de winkelwagen, verlanglijst, reviews, en de heartbeat zelf) tellen niet als paginaweergaven: alleen echte navigeerbare pagina’s worden vastgelegd.

Het dashboard

Het tabblad Statistieken → Traffic Radar bundelt alle weergaven, te filteren op periode (vandaag, 24 uur, 7, 30 of 90 dagen, of op maat) en op publiek (al het verkeer, mensen, alle bots, of één bepaald soort bot).

  • Nu online: een realtimeteller die mensen en bots apart houdt, ververst op het ritme van de heartbeat.
  • KPI’s: bezoeken, unieke sessies, menselijke bezoeken, botbezoeken en AI- of LLM-hits. Elke KPI toont zijn verloop (een stijging of daling in procent) tegenover de vorige periode van dezelfde lengte.
  • Bezoeken in de tijd: een lijn met mensen tegenover bots, met automatische granulariteit (per uur of per dag, naargelang de periode).
  • Verdeling van het publiek: een ringdiagram per type (mens, AI, zoekmachines, SEO, sociale media, monitoring, overige).
  • Top AI-crawlers: horizontale balken met de actiefste AI-crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Bytespider en meer).
  • Drukteheatmap: een raster van uur tegenover dag van de week.
  • Top pagina’s, verwijzers en landen: rangschikkingen in balken.
  • Live activiteitenstroom: de laatste bezoeken met type, identiteit, pagina, toestel en land.

De realtimeteller

Het blok « Nu online » steunt op de tabel df_traffic_online, die bij elke paginaweergave en bij elke heartbeat wordt bijgewerkt. Een bezoeker verdwijnt uit de teller zodra hij niet meer is gezien binnen de tijd die het venster « online » bepaalt.

Blijft de teller op nul staan terwijl er wel bezoekers zijn, ga dan na of u versie 1.1.1 of hoger draait: een verschil in tijdzone tussen PHP en MySQL kon het realtimevenster in eerdere versies verstoren. De correctie stemt het lezen op de schrijfklok af.

Radar voor nieuwe crawlers

Het paneel « Nieuwe crawlers gedetecteerd » licht de bots uit waarvan het allereerste vastgelegde bezoek binnen de geanalyseerde periode valt. Dat is het ideale instrument om meteen te zien wanneer er een nieuwe AI-crawler op uw catalogus opduikt: de naam van de bot, het type, de datum van de eerste verschijning en het aantal hits.

AI-crawlers besturen (robots.txt)

Het controlecentrum somt 25 bekende AI-crawlers op, met hun officiële robots.txt-token. Voor elk ervan kiest u met een aankruisvakje « toegelaten » of « geblokkeerd »; de crawlers die voor training verzamelen, staan standaard aangevinkt als geblokkeerd, terwijl de agenten die op een vraag van een gebruiker antwoorden gewoon doorgelaten worden.

  • De crawlers die werkelijk zijn gezien op uw winkel, krijgen een badge.
  • Twee voorinstellingen met één klik: « Alles blokkeren » en « Aanbevolen instellingen ».
  • De module maakt live een robots.txt-blok aan dat klaar is om te plakken, met een knop Kopiëren.

In deze versie is het toepassen bewust handmatig: u plakt het aangemaakte blok zelf in uw robots.txt-bestand. De module schrijft dat bestand nooit automatisch, wat waarborgt dat uw bestaande richtlijnen nooit onverwacht worden overschreven.

Widget op het starthoofdscherm

De module zet een kaart « Traffic Radar » in de rechterkolom van het startdashboard van de backoffice (hook dashboardZoneTwo): de live teller van wie online is (mensen en bots) en de tellers van vandaag (bezoeken, mensen, bots en AI of LLM), met een snelkoppeling naar het volledige dashboard.

CSV-export

De knop CSV in de werkbalk exporteert al het verkeer dat bij de actieve filters past (periode en publiek). Het bestand is in UTF-8 met BOM gecodeerd zodat het netjes in Excel opent, en bevat één regel per bezoek: datum, type, naam van de bot, toestel, pagina, verwijzer, land en meer.

Privacy en AVG

  • Er wordt geen enkel onbewerkt IP-adres bewaard: alleen gezouten SHA-1-hashes.
  • De optionele anonimisering maskeert het laatste octet (IPv4) of de laatste groepen (IPv6) vóór het hashen.
  • De bewaartermijn is instelbaar, met een automatische opruiming op kansbasis: er is geen enkele cron nodig.
  • Met de lijst van uitgesloten IP-adressen negeert u uw eigen verkeer.

Het opruimen van de oude gegevens start op kansbasis, meelopend met het verkeer. Verkiest u een voorspelbare opruiming, dan kunt u die vanuit een cron aanroepen, al is dat niet nodig.

Compatibiliteit en technische noten

  • PrestaShop 8.0 tot 9.x, in multistore en meertalig.
  • PSR-4-architectuur onder de namespace DataFirefly/TrafficRadar (met backslash als scheidingsteken) en een ingebouwde autoloader, zonder Composer.
  • Een legacy beheercontroller (ModuleAdminController) voor de compatibiliteit met PS8 en PS9.
  • AJAX-endpoints in de backoffice via het vierde argument van getAdminLink(), met JSON-antwoorden uit een eigen methode.
  • Gebruikte hooks: actionFrontControllerSetMedia, displayHeader en dashboardZoneTwo.
  • Twee geïndexeerde utf8mb4-tabellen: df_traffic_visit (het bezoekersjournaal) en df_traffic_online (aanwezigheid, met een unieke sleutel per sessie).
  • Chart.js zit lokaal ingebouwd, zonder enige CDN-aanroep.

FAQ en probleemoplossing

« Nu online » blijft op nul staan. Zorg dat u versie 1.1.1 of hoger draait (de correctie voor de tijdzone tussen PHP en MySQL). Ga ook na of de opvolging aanstaat en of uw eigen IP-adres niet bij de uitsluitingen staat.

Er verschenen vermeldingen « module-… » in de stroom. Opgelost in 1.1.1: AJAX-verzoeken en subverzoeken van modules tellen niet meer als paginaweergaven.

Worden de AI-crawlers werkelijk gedetecteerd? Ja. De detectie aan serverzijde vangt ze op, ook zonder JavaScript. De handtekeningen dekken OpenAI, Anthropic, Google-Extended, Perplexity, ByteDance, Meta, Mistral, Cohere, Amazon, Common Crawl en andere.

Vertraagt de module de winkel? Nee. Het indelen van de user-agent is een eenvoudige tekstvergelijking in het geheugen, en de opvolging komt neer op één insert en één upsert op geïndexeerde tabellen per paginaweergave.

Verstoort een fullpagecache de cijfers? Pagina’s die uit een fullpagecache komen, lopen niet langs PHP en worden dus aan serverzijde niet opnieuw geteld. De JavaScript-heartbeat blijft de menselijke bezoekers wel als online meetellen.

Geschikt voor PrestaShop 1.7? Nee, alleen voor PrestaShop 8.0 tot 9.x.

Was deze pagina nuttig?

Loopt u nog vast? Neem contact op met support