Distributie gelijk verdelen bij variabelen

Het indelen van gebruikers bij controlegroep of variant gebeurt al wanneer de tracker initialiseert en is bij het evalueren van de personalisatie al bepaald. Het is echter tijdens het evalueren dat we pas kunnen bepalen of gebruikte variabelen aanwezig zijn of aan de voorwaardes voldoen. Dit houdt in dat als je gebruik maakt van variabelen of productinformatie, je opgegeven distributieverhoudingen niet altijd gerespecteerd kunnen worden door technische beperkingen.

Een workaround hiervoor is om je eigen controlegroep variant in te richten, met hierbij een identieke variabele. Op die manier maakt het in principe niet uit of ze bij de echte variant, of de eigen controlegroep zitten, de toegepaste filter is identiek.

Voorbeeldscenario

Je hebt een personalisatie die de volgende code bevat:

Dit product is {{ product_conversion_amount | time_window('lastweek') | minimum(10) }} keer besteld afgelopen week

En vervolgens stel je de distributie als volgt in:

Stel dat je 100 users op je site hebt, ons systeem zal deze users 50/50 verdelen: de ene helft hoort bij de controlegroep en de andere helft niet. Vervolgens surfen de 50 gebruikers die bij jouw variant horen naar de desbetreffende pagina waar deze personalisatie draait.

Op dat moment verifieert ons systeem of er aan de minimum / time_window vereiste is voldaan. Als slechts 10 bezoekers uit de 50 van de variantgroep een product bekijken wat in de afgelopen week minstens 10 keer is verkocht, betekent dit dat de overige 40 bezoekers alsnog geen personalisatie te zien krijgen.

Hierdoor krijg je in je statistieken te zien dat er 50 bezoekers de controlegroep “zagen” en 10 bezoekers jouw variant. We kunnen onmogelijk de overige 40 bezoekers bij jouw variant rekenen omdat ze deze niet echt zagen, en we kunnen ze ook niet retroactief bij de controlegroep indelen.

Oplossing

Je verwijdert de controlegroep en maakt een nieuwe variant aan. Het type kan hetzelfde als je echte variant zijn, al kan je in principe een andere kiezen vermits we deze gaan verbergen om zo zelf een controlegroep te bereiken. Let wel: wanneer je een embedded kiest, vervang dan niet de gekozen queryselector anders wijzig je mogelijk de layout van je website.

In hetzelfde invoerveld als voorheen plaats je een identieke variabele, dus je kopieert bijvoorbeeld wat je eerder had:

Dit product is {{ product_conversion_amount | time_window('lastweek') | minimum(10) }} keer besteld afgelopen week

Vervolgens plaats je in het CSS veld de volgende code:

{{cssPrefix}} { display:none!important; }

{{cssPrefix}} genereert het unieke ID van de variant personalisatie, en vervolgens verbergen we de hele personalisatie. Dit leidt ertoe dat mensen die deze variant zien, je website eigenlijk zien zonder enige wijzigingen, waardoor dit als controlegroep fungeert.

In bovenstaand scenario zou dat dus betekenen dat zowel de 50 personen in je echte variant, als de 50 in je eigen controlegroep, de minimum filter toegepast zien. Dus dan zouden in theorie beiden groepen ongeveer 10 bezoekers in de statistieken tonen.

Dit zal niet tot een exacte 50/50 split leiden daar het kan dat de ene groep meer producten bekijkt die wel in aanmerking komen dan de ander, maar het is een zo accuraat mogelijke benadering.