Elke manier om een campagne te controleren voordat bezoekers die zien, op één plek. Wat je krijgt, hangt af van het type campagne — een aanbevelingswidget, een e-mail en een webpushmelding controleer je op echt verschillende manieren — dus zoek hieronder je type op.
Eerst: wat je kunt bekijken, en wanneer
Twee verschillende regels, en ze door elkaar halen is de gebruikelijke verwarring:
- De stap QA verschijnt zodra de campagne is opgeslagen — als concept, in staging of in productie. Daarvoor is er niets om naar te wijzen, en dat zegt de stap ook: “Voorbeeldopties zijn beschikbaar na het opslaan van de campagne.”
- De previewlinks hebben iets nodig wat is gepubliceerd. Een concept heeft het CDN nooit bereikt, dus een previewlink opent je gewone pagina zonder iets erop — wat leest als een kapotte preview in plaats van als een campagne die nog niet live is. Publiceren naar staging is genoeg, en daar is staging precies voor.

Een QA-sessie starten
Overal waar een campagne wordt getoond of bewerkt, opent Voorbeeld hetzelfde dialoogvenster: Een QA-sessie starten. Dat stelt twee vragen en opent daarna je eigen site in een nieuw tabblad.

1 — Welke pagina? Vooraf ingevuld met een pagina die Personyze al kent; typ er een willekeurig adres op je site overheen. Een landingspagina heeft één adres, dus daar ligt het vast.
2 — Hoe moet het zich gedragen? Drie modi, en de labels vertellen je welke een test is:
| Modus | Wat het forceert | Gebruik het voor |
|---|---|---|
| Openen als bezoeker — de echte test | Niets. Doelgroepregels, weergavelimieten en A/B-rotatie gelden allemaal, dus wat je ziet, is wat een bezoeker in jouw positie krijgt. | “Zou een bezoeker dit zien — en zo niet, waarom niet?” |
| De hele campagne forceren — geen test | Elke regel wordt genegeerd. | Controleren hoe de content eruitziet. Bewijst niets over wie het zou zien. |
| Eén actie forceren — geen test | Hetzelfde, voor één actie. | Eén stuk content controleren. |
Starten als gloednieuwe bezoeker is het selectievakje eronder. Weergavelimieten, “niet meer tonen” en A/B-rotatie blijven tussen sessies aan je hangen, dus als je deze campagne eerder hebt bekeken, is dit uit laten staan de gebruikelijke reden dat die niet verschijnt.
De QA-balk op je pagina
Je site opent met je eigen content en een balk die onderaan het venster vastzit. Eén regel beantwoordt de hele vraag voordat je iets uitklapt.

Van links naar rechts: de badge STAGING als deze browser staging-content krijgt, een statusbolletje, de campagne en de kop — “8 van 11 tegengehouden” — dan labels die samenvatten wat er gebeurde, dan Diagnose en Jouw sessie.
De balk gaat met je mee terwijl je door de site klikt. Het is geen instelling: hij komt alleen uit het adres dat je opende, er wordt niets opgeslagen, en bezoekers op die pagina zien de balk niet, en ook niets van wat hij verandert.
Het label BEVEELT AAN
Bevat de campagne aanbevelingswidgets, dan heeft de ingeklapte balk een label BEVEELT AAN met de keten van algoritmen, één label per widget — Rechtstreeks uit de catalogus → Bestsellers. Dat is waar de widget uit kan putten, eerst het primaire algoritme en daarna elke fallback op volgorde.

Diagnose — wat er met elke actie gebeurde
Diagnose toont de acties van de campagne gegroepeerd naar wat ermee gebeurde, in plaats van als één platte lijst — zodat vijf acties die door dezelfde regel zijn tegengehouden lezen als één zin en vijf namen, niet als vijf herhalingen.

Boven de acties toont Doelgroepregels de eigen targeting van de campagne, regel voor regel tegen jou gecontroleerd — “0 van 1 kwam overeen”, de regel uitgeschreven, en of je die haalt. Dat is meestal het hele antwoord als een campagne niet verschijnt en de acties er goed uitzien.
Elke groep heeft een eigen actie:
- Allemaal verbergen bij de groep die wel verscheen — meerdere acties kunnen op één plek terechtkomen en gestapelde content valt niet te beoordelen, dus door ze weg te halen zie je wat eronder zit.
- Nu uitvoeren, of Alle 5 uitvoeren bij een groep — vraagt de server om die acties en voert ze uit op de pagina voor je, zodat je content kunt bekijken die een regel op dit moment tegenhoudt.
- Toch forceren bovenaan, als er niets verschijnt.
- QA-simulator openen voor het diepere antwoord, regel voor regel.
De redenen die hij geeft, in zijn eigen woorden:
| Wat hij zegt | Wat het betekent |
|---|---|
| getoond op deze pagina | Ze draaide. |
| haar placeholder … komt met niets op deze pagina overeen | De actie is gekoppeld aan een placeholder waarvan de selector hier geen element vindt. De selector wordt genoemd, dus je weet waar je moet kijken. |
| heeft deze pagina nooit bereikt — meestal een paginagroep van een placeholder die deze URL uitsluit, A/B-rotatie die een andere variant kiest, of een actie die niet is gepubliceerd | De server weigerde haar voordat ze hier ooit kwam. De simulator noemt de werkelijke regel. |
| haar aanbeveling kwam zonder items terug | De widget leverde niets op — en de balk noemt het algoritme en waar het op draait. Zie hieronder. |
| ze had al gedraaid bij deze paginaweergave | Iets heeft haar eerder in dezelfde paginaweergave uitgevoerd. |
| deze browser kreeg te horen haar niet meer te tonen | De bezoeker heeft haar weggeklikt, of ze is ingesteld om één keer te verschijnen. |
| tegengehouden door een frequentielimiet van de campagne | Een frequentielimiet hield haar tegen. |
| haar presentatieregels sloegen haar deze keer over | Rotatie- of presentatie-instellingen kozen iets anders. |
| haar content loste op deze pagina op tot niets | De content is er, maar elke variabele erin werd leeg ingevuld. |
| een benodigde instelling is nooit gekozen | De actie is onaf — een verplichte optie is leeg gelaten. |
| ze faalde bij het renderen | De actie gaf een fout op de pagina; de melding volgt. |
Delen meerdere acties van de campagne een placeholder, dan heeft elke actie een badge prioriteit. Ze draaien in die volgorde, laagste eerst — dus een hoger getal komt erna, en eronder.
Welke heeft geleverd? — het algoritme dat elke plek echt vult
De keten zegt waar een widget uit kan putten. Welke engine de plekken echt vulde, is een andere vraag, omdat een unie meestal een aanvulling is in plaats van een fallback die alleen bij leegte werkt — meerdere engines leveren gewoonlijk tegelijk, dus “welk algoritme wordt getoond” heeft geen enkel antwoord. Het heeft een uitsplitsing.
Elke aanbevelingsgroep in Diagnose heeft een knop Welke heeft geleverd?. Een druk daarop compileert de eigen query van de widget, voert die opnieuw uit op de tracker en herlaadt de pagina met het antwoord, dus het kost niets tenzij je het vraagt.

Elke actie heeft dan een label LEVERT: 12 × Rechtstreeks uit de catalogus, 1 × Wat ze bekeken, of op dit moment niets als die widget helemaal geen items opleverde.
En waar een aanbeveling leeg terugkwam, noemt de balk de engine en wat die nodig heeft — zo wordt “geen aanbevelingen om te tonen” een plek om naartoe te gaan:

Jouw sessie — wie de tracker denkt dat je bent
Jouw sessie opent dezelfde data die de console toont, in tabbladen, met een aantal op elk tabblad. Een tabblad met (0) is zelf al een antwoord — “geen productinteracties” is precies waarom een aanbeveling op basis van aankopen niets opleverde — dus lege tabbladen blijven staan, grijs, in plaats van te verdwijnen.
| Tabblad | Wat het beantwoordt |
|---|---|
| Dit bezoek | Bezoekers-ID, bezoek-ID, trackerhost, welke paginagroepen matchten, hoeveel campagnes matchten. |
| Profiel | Wat het account over deze bezoeker weet, inclusief eventuele CRM-velden die het synchroniseert. |
| Pagina’s | De pagina’s van deze sessie, nieuwste eerst — de helft van elke vraag over paginagroepen. |
| Containers | Wat elke container deze sessie heeft gelezen of vastgelegd: de waarde die een targetingregel of een templatevariabele daarna ziet. |
| Producten | Productinteracties die voor deze bezoeker zijn vastgelegd. |
| Content | Artikelinteracties — het contentequivalent van Producten. |
| Interesses | De interesses die zijn opgebouwd uit wat deze bezoeker las of bekeek, sterkste eerst. |
Al gezien? Herlaad als iemand anders
Een groot deel van “waarom verschijnt het niet” is “omdat het al aan jou is getoond”. Twee knoppen onderaan Diagnose lossen dat op:
- Herladen als nieuwe sessie — dezelfde bezoeker, een gloednieuwe sessie. Alles wat per sessie wordt geteld, begint opnieuw. Je geschiedenis als bezoeker blijft bewaard.
- Herladen als nieuwe bezoeker — iemand die hier nooit is geweest. Wist de bezoekers-ID, de sessie en de weergavegeschiedenis per actie waarop frequentielimieten draaien. Alleen cookies wissen doet dit niet, omdat die geschiedenis in de browseropslag staat.
De badge STAGING, en de rest van de balk
- STAGING verschijnt als deze browser de stagingversie van je content krijgt in plaats van wat het publiek krijgt. Een campagne die alleen naar staging is gepubliceerd, verschijnt hier en nergens anders — en een live gepubliceerde campagne kan hier verouderd lijken als staging een oudere opslag bevat.
- De pijl verplaatst de balk naar de andere rand van het venster — handig als de campagne die je bekijkt haar eigen content zet waar de balk staat.
- × verbergt de balk voor deze pagina. Herlaad om hem terug te krijgen; hij komt uit de link, niet uit iets wat is opgeslagen.
?_S_T=offbeëindigt de previewsessie helemaal.
Controles die voor elke campagne gelden
Doelgroepvoorspelling — wie zou matchen
Zou matchen tegenover zou niet matchen over recente sessies, zodat een doelgroep die niemand blijkt te zijn vóór de lancering zichtbaar is in plaats van na een stille week.

Overlappingen & conflicten
Waar deze campagne botst met een andere — dezelfde doelgroep, dezelfde actie, dezelfde placeholder. Klap een rij uit om precies te zien wat er botst.

Aflevering van acties
Of elke actie echt kan afleveren, en de campagnesamenvatting erboven: waarop die target, hoe het verkeer over varianten wordt verdeeld, wat een winnaar bepaalt, en eventuele wijzigingen die klaarstaan voor de volgende lancering.
Aanbevelingen — de Aanbevelingssimulator
Een aanbevelingscampagne krijgt een eigen stap, naast QA: de simulator draait het algoritme van de campagne op zichzelf en toont wat het kiest — voor één echte bezoeker, voor één product, of voor iemand zonder enige geschiedenis.

- Wie je wilt simuleren — een Bezoeker (zoek op het volledige e-mailadres of de volledige gebruikers-ID — geen van beide matcht op een deel), een Product, of een Nieuwe bezoeker zonder geschiedenis.
- Of filter op gedrag — onder de bezoekers die nu op de site zijn, wie een interactie minstens n keer deed: toon wie matcht, of kies er een.
- Widgets in deze campagne — elk met het aantal plekken, het algoritme en of die een fallback heeft.
Hij meldt eerlijk als er niets terugkomt: “het algoritme vond geen kandidaten voor dit onderwerp, en de fallback leverde ook niets op”, en apart als de fallback de rest niet vulde. Items die niet meer in de catalogus staan, worden gemarkeerd in plaats van ongemerkt weggelaten.
Of de campagne überhaupt verschijnt — doelgroep, pagina, plaatsing — is de stap QA ernaast. De simulator beantwoordt “wat zou hij kiezen”, niet “zou hij verschijnen”.
E-mail verstuurd door Personyze
De QA-stap voor e-mail heeft drie tabbladen, en die beantwoorden drie verschillende vragen.

Voorbeeld per gebruiker
Geeft elke e-mail in de campagne weer precies zoals een gekozen persoon hem zou ontvangen, met diens eigen personalisatie. Zoek op e-mailadres, gebruikers-ID of interne ID — of druk op Kies een willekeurige bezoeker. Profiel en data staan naast het voorbeeld, zodat je ziet waarom het zo werd weergegeven.
Stuur een kopie naar een willekeurig adres verstuurt precies dat bericht, weergegeven voor die ontvanger — de manier om het in een echte inbox te controleren in plaats van in een panel.
Voorbeeldontvangers
Wie nu bij de doelgroep past, en wat er al naar elk van hen is verstuurd.
Stagingmodus
Laat de campagne draaien, maar stuurt elke verzending naar één adres. De veilige manier om een echte verzending van begin tot eind te volgen — en de schakelaar om aan te denken voor de lancering.
Banners en aanbevelingen in e-mails van derden
Die worden ook per ontvanger weergegeven, en het belangrijke geval is het geval dat je vanuit je eigen inbox niet ziet: de fallback die een niet-geïdentificeerde ontvanger krijgt. Schakel naar een nieuwe ontvanger om die te zien.

Webpushmeldingen
Zoek een persoon, kies de melding, en die wordt weergegeven zoals die persoon hem zou ontvangen — inclusief of de tekst past. Daarna kun je hem naar je eigen browser sturen om het echte resultaat te zien; je browser vraagt de eerste keer om toestemming. De stap controleert op verzoek ook de doelgroepregels opnieuw tegen je gebruikers.

Landingspagina’s
Een gereedheidscontrole in plaats van een voorbeeld, omdat een landingspagina op een adres bestaat of niet:
- Is er überhaupt een adres? “Een landingspagina is zijn adres — zonder adres valt er niets te openen.”
- Wijst DNS naar ons? Zo niet, “dan krijgt iedereen die het adres nu opent ‘No such page’”.
- Wordt die tegengehouden door de eigen schakelaar?
- Heeft elke splitsing een bestemming — een controlegroep zonder bestemming is een doodlopende weg.
Controles draaien tegen wat is opgeslagen, niet tegen niet-opgeslagen wijzigingen.

De QA-simulator
De simulator opent je eigen pagina in een nieuw venster en laat je iemand anders zijn. Het is het hulpmiddel voor “deze bezoeker had moeten matchen en deed dat niet”.
- Doe je voor als een bezoeker — wissel van identiteit naar een willekeurige gebruikers-ID en de pagina wordt opnieuw beoordeeld als die persoon.
- Zie precies waarom ze matchen, of niet — de targetingcontrole beoordeelt elke regel tegen de gesimuleerde bezoeker en toont welke faalde.
- Controleer de content die draait — elke actie, het type, of die is uitgevoerd en de status.
- Kies de omgeving: test of productie.



Stagingmodus, en de console lezen
Meestal zit je al in staging. Personyze onthoudt de drie meest recente IP-adressen waarmee campagnes zijn opgeslagen en zet bezoekers vanaf die adressen standaard in staging — dus de verbinding waarvanaf je bouwt, is tester vanaf het moment dat je opslaat.
De bediening staat in het linkermenu en vertelt je waar je staat: “je huidige IP-adres is in staging” of dat het dat niet is. Van daaruit kun je staging voor deze sessie starten of verlaten, of handmatig een ander IP-adres registreren — typ het in, of druk op Mijn IP gebruiken.
Je kunt het ook vanaf de site zelf omzetten, handig op een computer waarop je niet kunt inloggen:
https://your-site.example/any-page?_S_T=testing enter staging
https://your-site.example/any-page?_S_T=production leave it

Consoledata
In staging schrijft Personyze naar de browserconsole wat het doet: de bezoekersdata die het heeft, welke campagnes zijn geactiveerd, en welke acties het op de pagina heeft uitgevoerd. Het is de snelste manier om “heeft de tracker dit überhaupt gezien?” te beantwoorden zonder de pagina te verlaten.
Je kunt staging ook vanuit de console aanzetten:
_S_T.te(1)

Veilig publiceren
De volgorde die niets kost: opslaan → publiceren naar staging → controleren op de echte site → publiceren naar live. Een campagne in staging levert alleen aan bezoekers die als tester worden herkend, dus die kan de hele dag op je productiesite staan zonder dat een klant haar ziet.
Werkt het nog steeds niet?
- Een campagne verschijnt niet — de tracker, de targeting, de trigger of een botsing.
- Aanbevelingen verschijnen niet
- De tracker vuurt niet
- Een integratie synchroniseert niet meer
Gerelateerd
- Campagnes — het bouwen van wat je test.
- A/B-testen — als de vraag is welke versie wint in plaats van of het werkt.
- Frequentielimieten — een campagne die één keer verschijnt en dan stopt, doet vaak precies wat je haar hebt opgedragen.