Een browserextensie voor CRO-teams die A/B-tests op klantsites valideren. De extensie herkent zelf welke testtool er draait — Convert, VWO of Optimizely — en geeft je een paneel om tests te bekijken, een variant te forceren en tracking-events live mee te lezen.
Geen configuratie en geen URL-lijst: het werkt op elke site waar één van de drie tools draait.
De extensie wordt als zip verspreid en geladen met Load unpacked van Chrome, niet via de Chrome Web Store. Eenmalig instellen, ongeveer drie minuten.
Load unpacked vereist Developer mode (Ontwikkelaarsmodus). Chrome bewaart een verwijzing naar het pad van de map, dus kies vóór het installeren een vaste plek — de map later verplaatsen of hernoemen breekt de extensie.
-
Downloaden en uitpakken
Haal
qa-widget-v1.4.13.zipuit de downloadkaart en pak hem uit. Je krijgt een mapQA-widget-extensionmet daarinmanifest.json. Die naam blijft in elke release hetzelfde — zie updaten voor waarom dat uitmaakt. -
Zet hem op een vaste plek
Bijvoorbeeld
~/Documents/QA-widget-extension/. Niet in je Downloads-map: die wordt opgeruimd, en Chrome heeft de map nodig op de plek waar hij staat. -
Open de extensiepagina
Ga naar
chrome://extensions/in een nieuw tabblad — of naaredge://extensions,brave://extensions,arc://extensionsin de andere Chromium-browsers. -
Zet Developer mode aan
De schakelaar staat rechtsboven op die pagina. In een Nederlandse Chrome heet die Ontwikkelaarsmodus.
-
Klik op “Uitgepakt laden”
De knop verschijnt links zodra Developer mode aan staat. In een Engelse Chrome heet hij “Load unpacked”.
-
Kies de uitgepakte map
Selecteer de map met
manifest.jsoner direct in — niet de map erboven en niet een submap. -
Sta hem toe in incognito
Klik op de kaart van de extensie op Details en zet Allow in Incognito (Toestaan in incognitomodus) aan. Chrome houdt extensies bewust buiten incognitovensters tenzij je dit aanzet, dus zonder deze stap verschijnt de widget daar simpelweg niet — en incognito is juist waar je je QA hoort te doen.
-
Pin het icoon vast
Klik op het puzzelstukje rechts van de adresbalk en pin Online Dialogue QA Widget vast. Je hebt het nodig om de widget aan en uit te zetten.
Controleren of het werkt
Open een klantsite waar Convert, VWO of Optimizely draait. Binnen ongeveer twee seconden hoort er rechtsonder een groene ronde QA-knop te staan.
Klik op de groene QA-knop om het paneel te openen. Sleep de knop of de paneelheader om hem te verplaatsen — de positie wordt onthouden over pagina’s en sessies heen, en het paneel klapt naar onderen als daar meer ruimte is.
Het paneel werkt zonder muis. Tab naar de tabs en beweeg ertussen met de pijltjestoetsen, Enter of spatie op een event-rij klapt hem uit, en Escape sluit het paneel — de focus gaat terug naar de QA-knop. Een variant kiezen met de pijltjes houdt je plek in de lijst vast.
QA altijd in een incognitotabblad (⌘/Ctrl + Shift + N). Dat dwingt schone bezoekerscookies af, dus je ziet dezelfde indeling als een echte eerste bezoeker, en je QA-traffic verdwijnt zodra je het venster sluit.
Dit werkt alleen als je Allow in Incognito hebt aangezet: dat is stap 7 van de installatie.
Variants-tab
Toont de tests die de huidige pagina targeten, met hun varianten. Bij VWO gaat het alleen om lopende A/B-tests — Split URL-tests en multivariate tests staan er niet tussen. De variant waarin je nu bent ingedeeld is gemarkeerd; klik een andere aan en die wordt geel als pending. Druk op Apply & reload om te forceren, of op Reset om alle overrides te laten vallen en terug te gaan naar de natuurlijke indeling.
Apply forceert élke test in de lijst, niet alleen degene die je hebt aangeklikt — voor de rest wordt de variant geforceerd waarin je al zat. Dat is bewust: zo staat de hele pagina vast en kan een reload je niet halverwege een controle opnieuw indelen. Goed om te weten bij VWO, want daar wordt elk daarvan een cookie van 30 dagen. Gebruik Reset als je klaar bent in plaats van ze te laten staan.
Reset gaat verder dan de URL. Convert en Optimizely leggen een geforceerde variant ook in hun eigen bezoekersstatus vast, dus alleen de parameter weghalen zou je in die variant laten zitten. Reset wist daarom ook de indeling van de tool, waarmee je voor die tool een nieuwe bezoeker bent. Je wordt willekeurig opnieuw ingedeeld, dus bij een 50/50-test kom je ongeveer de helft van de keren in dezelfde variant — het paneel zegt dat na een reset, want anders lijkt het een kapotte knop. Eén grens bij Convert: de widget kan die indeling alleen wissen als hij zijn eigen force nog kan zien, en bij Convert zit die in de URL. Is de parameter weg — na een gewone navigatie, of omdat de site hem heeft weggehaald — dan herlaadt Reset alleen. Forceer de variant opnieuw en reset van daaruit.
De QA cookie-schakelaar in de kop zet de debug-cookie (bijvoorbeeld OD=test) waarop variantcode controleert, of haalt hem weg, en herlaadt de pagina voor je.
Bij Convert verschijnt soms een gele melding boven de lijst dat sommige targeting-regels niet beoordeeld konden worden. Meestal is dat het Content Security Policy van de klantsite dat de widget verhindert een targeting-conditie uit te voeren, maar elke fout in die conditie geeft hetzelfde resultaat. De test wordt dan alsnog getoond in plaats van verborgen, dus lees de lijst als mogelijk ruimer dan wat er werkelijk actief is op die pagina.
Events-tab
Een live overzicht van de tracking-events die de testcode pusht. Filter op type met de chips (All, Init, Click, Viewport, Interaction, Other) of zoek op test-ID, variant of tekst. Klik een regel aan om de ruwe payload uit te klappen; dat is de snelste manier om te bevestigen dat een event met de juiste waarden afgaat.
Hij herkent de OD-conventie ab-test, GA4’s experiment_viewed en experiment_action, en de vorm ab_tests — gelezen uit window.dataLayer, window._waq en window.inputDEQ.events. Bij Optimizely komen de events helemaal niet uit een dataLayer maar uit Optimizely’s eigen listener-API. Andere vormen worden genegeerd, dus een lege Events-tab kan ook betekenen dat de klant een andere naamgeving gebruikt.
Clear maakt de lijst leeg — en dat doen Apply & reload, Reset en het uitzetten van de widget ook. Elk daarvan begint met een schone lijst, wat meestal is wat je wil als je een variant forceert, maar het betekent wel dat wat ervoor binnenkwam weg is.
De widget uitzetten
Klik op het vastgepinde icoon en zet Widget active uit. Zolang hij uit staat draagt het icoon een rode OFF-badge, zodat je nooit hoeft te twijfelen waarom de knop weg is.
Uitzetten geeft de force vrij die de widget zelf had gezet — een URL-parameter, een cookie of een opgeslagen override, afhankelijk van de tool — en herlaadt de pagina als er werkelijk iets vrij te geven was. Het stopt ook het opvangen van events en het zoeken naar tests, dus er loopt niets van de widget meer zolang hij uit staat. Weer aanzetten start dat zoeken opnieuw: het paneel verschijnt zodra de testtool is gevonden, wat meestal een moment duurt.
Daar stopt het bewust. Convert en Optimizely leggen een geforceerde variant ook in hun eigen bezoekersstatus vast, en de schakelaar geldt voor al je open tabbladen — dat overal wissen zou je een nieuwe bezoeker maken in tests op pagina’s waar je nooit iets hebt geforceerd. Uitzetten is dus geen garantie dat de pagina weer normaal is. Blijft een variant plakken, gebruik dan Reset op die pagina vóór je uitzet; Reset wist de indeling van de tool wél. VWO is de uitzondering op dat model: daar is de force-cookie de cookie waarin VWO zijn indeling bewaart, dus uitzetten deelt je voor de geforceerde tests wél opnieuw in — zonder de melding die het paneel na een Reset geeft.
In één oogopslag
- Automatische detectie Vindt Convert, VWO of Optimizely zelf — geen configuratie per klant.
- Variant forceren Kies een variant en herlaad om precies te zien wat die doelgroep ziet.
- Live events Zie tracking-events binnenkomen, filter op type, bekijk de ruwe payload.
- QA-cookie schakelaar Zet de debug-cookie aan of uit zonder de devtools te openen.
- Versleepbaar Paneel en knop bewegen vrij op desktop en mobiel; de positie blijft bewaard.
- Werkt in modals Blijft bruikbaar binnen React Aria- en Radix-modals en in native fullscreen.
Problemen oplossen
De QA-knop verschijnt niet
Kijk eerst of er een rode OFF-badge op het icoon van de extensie staat — dan staat de widget uit. Klik op het icoon en zet Widget active weer aan.
Staat hij aan, dan draait er misschien geen ondersteunde tool op de pagina. Na ongeveer twee seconden zegt de panelkop Searching… en staat er in het paneel “No A/B testing tool detected on this page”.
Een kop met No active tests betekent iets anders: er is wél een tool gevonden, maar er staat meer dan één testtool op de site en geen daarvan heeft hier een test lopen — dan gokt de widget niet welke de leiding heeft. Op een site met maar één tool noemt hij die altijd, of er tests lopen of niet.
Die toestand is niet definitief, maar het maakt uit welke van de twee je hebt. Zolang de header Searching… zegt blijft de widget onbeperkt zoeken, dus op een site waar de A/B-tool achter een consent-banner laadt: accepteer de banner en de varianten verschijnen — zonder verversen. Staat er No active tests, dan ís er een tool gevonden, en daar vertraagt de widget en stopt hij na een minuut met zoeken; hij pakt het weer op bij een URL-wijziging of als je terugkomt op het tabblad. Zet een collega dus een test aan terwijl jij op die pagina blijft, wissel dan van tabblad en terug, of herlaad.
Er zijn ook plekken waar hij bewust wegblijft: binnen iframes, en op de dashboards van de testtools zelf, zoals app.convert.com, app.vwo.com en app.optimizely.com.
Chrome toont een melding over ontwikkelaarsmodus-extensies
Dat hoort bij Load unpacked. Chrome kan extensies in ontwikkelaarsmodus na een herstart uitschakelen en waarschuwt je daarvoor. Sluit de melding; werkt de widget niet meer, open dan chrome://extensions/ en zet de extensie weer aan. Hij blijft aan tot Chrome het opnieuw vraagt.
Ik zie twee QA-knoppen op de pagina
Dan staat de extensie er twee keer op. Dat gebeurt als een update met Load unpacked vanuit een nieuwe map is geladen in plaats van door de inhoud van de oude map te vervangen — Chrome leidt de identiteit van een extensie af uit het mappad, dus de twee kopieën zijn voor Chrome losse extensies.
Open chrome://extensions/, verwijder de vermelding die naar de map wijst die je niet meer wilt, en houd er één over. Zie updaten voor de werkwijze die dit voorkomt.
Ik heb geüpdatet maar het versienummer is niet veranderd
Chrome laadt nog de oude map. Controleer het pad op de kaart van de extensie in chrome://extensions/ en kijk of dat de map is waarvan je de inhoud hebt vervangen — heb je elders uitgepakt, dan herlaadt de knop gewoon de oude bestanden.
Het paneel is leeg terwijl ik weet dat er tests lopen
De Variants-tab toont alleen tests die de huidige URL targeten. Tests die wel actief zijn in het project maar op andere pagina's gericht staan, verschijnen niet — de lege staat vertelt je hoeveel dat er zijn.
Controleer ook of je eerdere overrides met Reset hebt opgeruimd; een geforceerde variant kan een test vast laten lijken zitten.
Ik heb het paneel buiten het scherm gesleept
De knop wordt binnen het venster gehouden, dus die kan nooit helemaal verdwijnen, en bij het verslepen van je venster wordt hij opnieuw teruggezet. Het paneel hangt links van de knop, dus de knop tegen de linkerrand parkeren kan het paneel alsnog buiten beeld duwen — sleep hem dan terug naar rechts. De nieuwe positie wordt direct opgeslagen.
Chrome onthoudt het pad van de map die je hebt geladen en leidt daar de identiteit van de extensie uit af. Updaten betekent dus: de inhoud van die map op dezelfde plek vervangen, en nooit een tweede kopie vanaf een nieuwe locatie laden.
Updaten naar een nieuwe versie
-
Download de nieuwe versie en pak hem uit
Je krijgt opnieuw een map
QA-widget-extension— dezelfde naam, nieuwe inhoud. -
Vervang je bestaande map
Overschrijf de map op het pad waarvan je hebt geïnstalleerd, bijvoorbeeld
~/Documents/QA-widget-extension/. Verplaats hem niet en hernoem hem niet. -
Klik op herladen in Chrome
Open
chrome://extensions/— ofedge://extensions,brave://extensions,arc://extensionsin de andere Chromium-browsers — en klik op het herlaad-icoon (↻) op de kaart van de extensie. Het versienummer op die kaart hoort nu gelijk te zijn aan wat je hebt gedownload; dat is je bevestiging dat het gelukt is.
Gebruik Load unpacked niet een tweede keer om te updaten. Chrome ziet de nieuwe map dan als een aparte extensie: je houdt twee vermeldingen over in chrome://extensions/ en twee QA-knoppen op elke pagina.
Wat er is veranderd
In de zijkolom staan de twee nieuwste releases; de volledige changelog bevat alle 31. Het is de moeite om die te bekijken vóór je update: soms verandert een release gedrag waar je op leunt, en niet alleen fouten.
Doet de widget iets fout, of mis je iets dat hem bruikbaarder maakt? Vul dit in en het komt direct in onze lijst — je hoeft zelf niets te versturen.
In de header van het paneel staat naast de ? een ⧉-knop. Eén klik zet een rapport op je klembord: de versie van de widget, de URL, welke tool is gevonden, de tests zoals het paneel ze ziet, en de recente logregels van de widget zelf. Plak dat in het veld hieronder. Blokkeert je browser het klembord, dan zet de widget het rapport in de console.
Velden met * zijn verplicht. Zonder die drie kost een melding meestal een ronde wedervragen voordat er iets te bekijken valt.
Dank — je melding is aangekomen
Hij staat nu in onze lijst. Heb je een mailadres achtergelaten, dan reageren we daarop.