Momenteel neem ik geen nieuwe klanten aan +31 6 301 963 14 dennis@gouwers.nl
Meten

Direct verkeer en unassigned in GA4: wat zit erachter?

Dennis BoekhoutBijgewerkt op 11 min leestijd

In dit artikel

Direct verkeer in Google Analytics zijn bezoeken waarvan GA4 de herkomst niet kent: geen verwijzende website, geen UTM-tags en geen advertentieklik. Unassigned betekent dat GA4 wel iets weet, maar dat het in geen enkel kanaal past. (not set) betekent dat een waarde ontbreekt. Een deel is echt, zoals vaste klanten die je adres intypen. De rest komt meestal door UTM-fouten, een cookiebanner die de meting verstoort of redirects die de bron wissen.

Wat is direct verkeer in Google Analytics?

Elke sessie in GA4 krijgt een bron en een medium. Komt iemand via Google, dan is dat google / organic. Klikt iemand op je nieuwsbrief met goede UTM-tags, dan mailerlite / email. En weet GA4 het niet, dan wordt het (direct) / (none). Dat is direct verkeer.

De naam is misleidend. Direct klinkt als "iemand typte mijn adres in", maar het betekent eigenlijk: GA4 zag geen verwijzende website, geen campagnegegevens en geen advertentieklik. Dat kan een echte directe bezoeker zijn. Het kan ook iemand zijn die op een link klikte waarvan de herkomst onderweg is verdwenen.

Echt direct verkeer:

  • iemand typt je adres in de adresbalk of kiest het uit de suggesties van de browser;
  • iemand opent je website via een bladwijzer;
  • een vaste klant gaat rechtstreeks naar je inlogpagina of bestelpagina.

Verkeer dat ten onrechte als direct binnenkomt:

  • links in apps als WhatsApp, Teams of de Outlook-app op je computer, die geen verwijzing meesturen;
  • links in pdf's, offertes en Word-documenten;
  • QR-codes op flyers en verpakkingen zonder UTM-tags;
  • links waarvan een redirect de herkomst heeft gewist.

Dat tweede rijtje heet ook wel dark social: gedeelde links via privékanalen die je niet terugziet. Je raakt het nooit helemaal kwijt, maar je kunt het wel een stuk kleiner maken.

Eén nuance over hoe GA4 met direct omgaat. Volgens Google krijgt Direct in de attributiemodellen alleen de eer voor een belangrijke gebeurtenis als het hele pad uit directe bezoeken bestond. Ook in het rapport Verkeersacquisitie kijkt GA4 verder terug dan de sessie zelf: komt een bekende bezoeker direct binnen, dan krijgt die sessie de bron van zijn vorige bezoek met een bekende herkomst. Wat onder Direct overblijft, zijn dus vooral bezoekers van wie GA4 geen eerdere bron kent, bijvoorbeeld omdat ze nieuw zijn of hun cookies kwijt zijn. Waarom GA4 en Google Ads elk een ander getal laten zien, lees je in Google Ads vs Analytics: waarom de cijfers verschillen.

Direct, unassigned, (not set) en cross-network naast elkaar

In je kanaalrapport staan vier labels waar ondernemers vaak van schrikken. Ze betekenen elk iets anders.

Label Wat GA4 bedoelt Typische oorzaak Actie nodig?
Direct Geen herkomst bekend: bron (direct), medium (none) Echte directe bezoeken, links uit apps en pdf's, QR-codes zonder UTM, redirects Bij een plotselinge stijging of veel diepe landingspagina's
Niet toegewezen (Unassigned) Er is wel informatie, maar die past in geen enkel kanaal Zelfverzonnen medium, UTM-tag zonder medium, ontbrekend session_start Bijna altijd
(not set) Voor deze dimensie ontbreekt een waarde Sessie zonder paginaweergave, Google Ads niet gekoppeld, consentproblemen Ja, zodra het meer is dan een klein restje
Cross-network Google Ads-campagne die over meerdere netwerken loopt Performance Max, Demand Gen Nee, dit is een gewoon kanaal

Wat is unassigned in Google Analytics?

GA4 sorteert verkeer in kanalen met vaste regels uit de standaard kanaalgroep van Google. Organic Search, Paid Social, Email, Referral: elk kanaal heeft voorwaarden voor bron en medium. Voldoet een sessie aan geen enkele regel, dan wordt het Unassigned, in de Nederlandse interface Niet toegewezen. GA4 weet dus wel iets, bijvoorbeeld dat de bron flyer is en het medium qr, maar heeft daar geen bakje voor.

Wat betekent (not set) in Google Analytics?

(not set) is geen kanaal maar een lege plek. Het kan bij bijna elke dimensie opduiken. De bekendste gevallen:

  • Landingspagina (not set): de sessie had geen paginaweergave. Dat gebeurt bijvoorbeeld als iemand een half uur niets doet, de sessie verloopt en de eerste actie daarna een klik of scroll is in plaats van een nieuwe pagina.
  • Sessiebron/-medium (not set): GA4 mist het automatische session_start-event, of een UTM-tag mist het medium. Zulke sessies komen onder Unassigned terecht.
  • Google Ads-dimensies (not set): je Google Ads-account is niet aan GA4 gekoppeld, automatisch taggen staat uit, of er adverteert een tweede account dat niet gekoppeld is.

Google heeft er een eigen helppagina over: wat de waarde (not set) betekent. Een klein restje (not set) is normaal. Een flink aandeel wijst bijna altijd op een technische oorzaak.

Wat is cross-network in Google Analytics?

Cross-network is verkeer uit Google Ads-campagnes die op meerdere netwerken tegelijk draaien. Volgens Google gaat het om Performance Max, Demand Gen, App-, Smart- en Local-campagnes. Er is niets mis mee. Draai je Performance Max, dan zie je dat verkeer hier en niet onder Paid Search. Wie dat niet weet, denkt dat Paid Search is ingestort terwijl het geld gewoon naar een ander label is verhuisd.

Oorzaak 1: UTM-tags die GA4 niet herkent

Dit is de grootste bron van Unassigned. GA4 herkent alleen mediumnamen die in zijn regels staan, zoals email, social, cpc of referral. Gebruik je nieuwsbrief, mail of qr als medium, dan valt het verkeer buiten de boot.

Nog vaker gaat het mis met een UTM-tag zonder medium. Iemand tagt een link met alleen utm_source=nieuwsbrief, GA4 zet het medium op (not set) en de sessie verdwijnt in Unassigned. ChatGPT doet overigens hetzelfde: links in antwoorden krijgen vaak utm_source=chatgpt.com mee, zonder medium. Hoe je dat AI-verkeer alsnog netjes ziet, lees je in AI-verkeer in GA4.

Twee andere UTM-fouten die je rapport vervuilen:

  • UTM-tags op interne links. Een banner op je eigen homepage met UTM-tags overschrijft de echte herkomst van de bezoeker.
  • Wisselende schrijfwijzen. Facebook en facebook worden twee rijen. Dat is geen Unassigned, maar maakt je cijfers wel onbetrouwbaar.

Een vast schema voorkomt dit allemaal. Dat schema, met per kanaal de juiste bron en het juiste medium, staat in UTM-tags: zo zie je welke campagne echt klanten oplevert. Dat artikel gaat over voorkomen; hier gaat het over verklaren wat al in je rapport staat.

Een cookiebanner die niet goed met GA4 samenwerkt, is een onderschatte bron van direct en (not set).

Het eerste probleem is timing. Laat je banner bezoekers doorklikken zonder keuze, en klikt iemand pas op de tweede pagina op accepteren? Dan heeft GA4 de eerste pagina nooit gezien, en daarmee ook de UTM-tags en de verwijzing niet. Voor GA4 begint de sessie op pagina twee, met je eigen website als verwijzer. Zo'n bezoek komt dan als direct binnen.

Het tweede probleem zit in de techniek. Google noemt in zijn helppagina twee consentfouten die tot (not set) leiden:

  1. Alle toestemmingswaarden, ook die na de keuze van de bezoeker, worden met het default-commando gezet. Dan gaat het eerste session_start-event verloren. De keuze van de bezoeker hoort met het update-commando te worden doorgegeven.
  2. Events met geweigerde toestemming na eerder gegeven toestemming. GA4 behandelt die als een aparte sessie zonder session_start, en dus zonder bron.

Bij een gecertificeerde cookiebanner met een goede template in Tag Manager gaat dit meestal vanzelf goed. Maar "meestal" is niet genoeg om je budget op te verdelen. Hoe je het zelf in vijf minuten controleert met Tag Assistant, staat in Consent Mode v2: zo verlies je geen data door je cookiebanner.

Elke keer dat een link via een omweg naar je pagina gaat, kan er informatie sneuvelen. De bekende boosdoeners:

  • Redirects die de querystring weggooien. Een oude campagne-URL die naar een nieuwe pagina doorverwijst, maar alles na het vraagteken laat vallen. Weg zijn je UTM-tags en de gclid van Google Ads.
  • Ketens van redirects. Van http naar https, dan naar www, dan naar een versie met schuine streep. Meestal gaat dat goed, maar één slecht ingestelde stap is genoeg.
  • Linkverkorters en trackingdomeinen die de verwijzing niet doorgeven.
  • JavaScript-redirects of pagina's die na een seconde automatisch doorsturen. Daarbij gaat de oorspronkelijke verwijzer vaak verloren.

Verdwijnt alleen de gclid, dan ziet GA4 vaak nog wel dat de bezoeker van Google kwam, en wordt een betaalde klik ineens organisch. Verdwijnen gclid en verwijzer allebei, dan wordt het direct.

De test is simpel. Klik op je eigen link, uit een nieuwsbrief, advertentie of QR-code, en kijk in de adresbalk of de utm_-parameters er na het laden nog achter staan. Staan ze er niet, dan weet je waar je moet zoeken. Laat je website-installatie of hostingpartij dan de redirectregels aanpassen zodat de querystring meegaat.

Oorzaak 4: ontbrekende of te late tags

GA4 kan alleen een bron toekennen als de tag op de eerste pagina van het bezoek vuurt. Gaat dat mis, dan krijg je direct, (not set) of Unassigned. Let op deze situaties:

  • Pagina's zonder GA4-tag. Landingspagina's uit een losse paginabouwer, een extern boekingssysteem of een tweede domein waar niemand de tag op heeft gezet. Komt iemand daarna op een pagina mét tag, dan is de oorspronkelijke bron weg. GA4 ziet alleen nog de pagina waar hij vandaan kwam. Is dat je eigen domein, dan wordt het meestal direct. Is het een ander domein, dan een verwijzing naar jezelf.
  • Een Google-tag die te laat laadt. In Google Tag Manager hoort de Google-tag op de trigger Initialisatie - Alle pagina's (Initialization - All Pages) te staan. Google noemt een andere trigger expliciet als oorzaak van een ontbrekend session_start en dus van (not set). Hoe triggers werken, lees je in mijn uitleg over Google Tag Manager.
  • Twee domeinen zonder domeinoverschrijdende meting. Een bezoek dat van je website naar je webshop op een ander domein gaat, telt dan als twee sessies, en de tweede verliest de oorspronkelijke bron.

Ongewenste verwijzingen van betaalproviders en het instellen van domeinoverschrijdende metingen behandel ik in GA4 instellen: de 10 instellingen die bijna iedereen mist.

Wanneer een hoog aandeel direct verkeer gewoon klopt

Niet elk direct bezoek is een meetfout. Bij sommige bedrijven is een groot aandeel direct verkeer volkomen logisch:

  • Bekende merken en vaste klanten. Wie al jaren bij je bestelt, typt je naam in of kiest hem uit de suggesties van de browser.
  • Diensten met een inlogpagina. Klanten die dagelijks inloggen, komen bijna allemaal direct binnen.
  • Offline marketing. Radio, een bedrijfsbus, een advertentie in de krant of mond-tot-mondreclame levert bezoekers op die je naam intypen. Dat is direct, en dat is ook eerlijk zo.

Er bestaat geen percentage dat voor iedereen goed is. Kijk daarom naar signalen in je eigen data.

Waarschijnlijk echt direct Waarschijnlijk een meetprobleem
Landt vooral op je homepage of inlogpagina Landt op blogartikelen, actiepagina's of URL's met een lange querystring
Aandeel is maanden achter elkaar stabiel Aandeel springt omhoog op een vaste datum
Gedrag lijkt op dat van terugkerende bezoekers Pieken op de dag dat je een nieuwsbrief verstuurt
Geen relatie met websitewijzigingen Stijging begint na een nieuwe cookiebanner, migratie of redirect

Stappenplan: zo zoek je uit wat er achter je direct verkeer zit

Neem een uur en loop deze stappen in volgorde na.

  1. Bekijk de trend. Open Rapporten > Acquisitie > Verkeersacquisitie en zet het datumbereik op de laatste twaalf maanden. Zoek de maand waarin Direct of Unassigned ineens groeide.
  2. Leg de datum naast je wijzigingen. Kwam er rond die tijd een nieuwe website, een andere cookiebanner, een nieuwe e-mailtool of een redirectplugin bij? Dat is je eerste verdachte.
  3. Bekijk de bestemmingspagina's. Maak via Verkennen (Explore) een verkenning in vrije vorm. Zet de landingspagina inclusief querystring (Landing page + query string) in de rijen en filter op het kanaal Direct. Diepe pagina's met veel direct verkeer verraden waar de herkomst verdwijnt.
  4. Zoom in op Unassigned. Zet Sessiebron/-medium in de rijen en filter op Unassigned. Je ziet direct welke zelfverzonnen mediumnamen of ontbrekende media erachter zitten.
  5. Test je eigen links. Klik vanaf je telefoon, buiten je kantoornetwerk, op een link uit je laatste nieuwsbrief en scan een van je QR-codes. Kijk in het realtime-rapport onder welke bron je binnenkomt.
  6. Controleer je cookiebanner met Tag Assistant: staat de standaard op denied, en komt de update na een keuze goed door?
  7. Repareer en geef het de tijd. Pas UTM-tags, banner of redirects aan en vergelijk na een paar weken. Oude data wordt niet met terugwerkende kracht verbeterd.

Heb je verkeer dat bewust geen standaardkanaal heeft, zoals QR-codes op drukwerk? Maak dan een eigen kanaalgroep via Beheerder > Gegevensweergave > Kanaalgroepen. Daarmee haal je het uit Unassigned zonder je tags te hoeven verbouwen, en volgens Google ook met terugwerkende kracht.

Conclusie: direct is geen kanaal, maar een restcategorie

Direct verkeer betekent dat GA4 de herkomst niet kent. Unassigned betekent dat de herkomst in geen kanaal past, (not set) dat er een waarde ontbreekt, en cross-network is gewoon verkeer uit Performance Max en verwante campagnes. Een deel van je direct verkeer is echt. De rest los je bijna altijd op met een vast UTM-schema, een goed ingestelde cookiebanner, redirects die de querystring laten staan en een Google-tag die op elke pagina op tijd vuurt.

Wil je weten welke rapporten je daarna elke maand bekijkt? Lees dan Google Analytics uitleg: 5 rapporten die je echt nodig hebt. Benieuwd wat het inrichten van tracking bij mij kost? Download de prijslijst.

Veelgestelde vragen

Is veel direct verkeer slecht?

Niet per se. Een bekend merk, een webshop met veel vaste klanten of een dienst waar mensen dagelijks inloggen heeft vanzelf veel direct verkeer. Het wordt pas verdacht als het aandeel ineens stijgt, of als direct verkeer vooral binnenkomt op diepe pagina's zoals blogartikelen en actiepagina's. Die typt niemand uit zijn hoofd in. Vergelijk daarom vooral met je eigen cijfers van vorige maanden, niet met een gemiddelde dat je ergens op internet leest.

Hoe krijg ik unassigned verkeer in GA4 weg?

Zoek eerst uit welke bron en welk medium erachter zitten. Open het rapport Verkeersacquisitie, kies Sessiebron/-medium als dimensie en filter op het kanaal Unassigned. Zie je een zelfverzonnen medium zoals nieuwsbrief, pas dan je UTM-tags aan. Zie je (not set), kijk dan naar je cookiebanner en je Google-tag. Verkeer dat bewust een eigen naam heeft, zoals QR-codes, geef je een plek met een eigen kanaalgroep. Die werkt ook op oude data. Aangepaste UTM-tags en een gerepareerde banner werken alleen vooruit.

Telt GA4 mijn eigen bezoeken als direct verkeer?

Je eigen bezoeken tellen gewoon mee, en omdat je je website meestal via een bladwijzer of door het adres in te typen opent, vaak als direct. Klikte je ooit via Google op je eigen site, dan kan GA4 je bezoeken ook aan dat kanaal toeschrijven. Bij een kleine website kan dat je cijfers flink kleuren. Definieer daarom in GA4 je kantoor als intern verkeer en zet het filter daarvoor op Actief. Werk je veel vanuit huis of onderweg, dan helpt een IP-filter minder. Een alternatief is een vast browserprofiel met een extensie die Google Analytics blokkeert.

Waarom staat Performance Max niet onder Paid Search?

Omdat Performance Max niet alleen in Google Zoeken draait, maar ook op YouTube, in Gmail, op Maps en in het Display Netwerk. GA4 zet dat verkeer daarom onder Cross-network. Hetzelfde geldt volgens Google voor Demand Gen, App-, Smart- en Local-campagnes. Wil je per netwerk weten waar je Performance Max-budget naartoe gaat, kijk dan in Google Ads zelf. Daar laat het rapport over kanaalprestaties per campagne zien hoe de resultaten over de netwerken zijn verdeeld.

Benieuwd hoe ik dit in de praktijk aanpak?

Het pitchdeck laat de hele werkwijze zien.

Geschreven door Dennis Boekhout

Marketing freelancer uit 's-Hertogenbosch. Volg op LinkedIn (opent in een nieuw tabblad)