# Traffic Radar: volledige gids

> 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…

- Pagina: <https://www.datafirefly.com/nl/documentation/dftrafficradar/>
- Taal: nl
- Bijgewerkt op: 2026-09-12
- Andere talen: [fr](https://www.datafirefly.com/documentation/dftrafficradar/index.md), [en](https://www.datafirefly.com/en/documentation/dftrafficradar/index.md), [es](https://www.datafirefly.com/es/documentation/dftrafficradar/index.md), [de](https://www.datafirefly.com/de/documentation/dftrafficradar/index.md), [it](https://www.datafirefly.com/it/documentation/dftrafficradar/index.md), [pl](https://www.datafirefly.com/pl/documentation/dftrafficradar/index.md), [pt](https://www.datafirefly.com/pt/documentation/dftrafficradar/index.md)
- Index: <https://www.datafirefly.com/nl/documentation/llms.txt>

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.
