Google Analytics ecommerce transacties annuleren

Vorige week kreeg ik het verzoek om in het account van een klant een aantal ecommerce transacties te annuleren. Wat was er namelijk gebeurd: er was een nep-bestelling geplaatst met een gigantisch hoog bedrag:

Je denkt dat de linkerkant van de lijn op 0 staat, maar in werkelijkheid zijn hier goede omzetten gemaakt. Ze vallen alleen in het niet door de enorme uitschieters aan de rechterkant. Dat ging om enkele transacties van ongeveer €5.000.000 totaal.

De nadelen

De nadelen kun je wel raden, ontzettend veel rapporten leveren rare cijfers. De gemiddelde orderwaarde gaat enorm omhoog. De omzetten van de campagnes die de bezoeken aangeleverd hebben gaan omhoog. De waarde per bezoek van die campagne klopt niet meer, enz, enz. En in de komende maanden en jaren dat je deze periode in een analyse meeneemt zul je steeds deze rare piek zien. Ik zou haast zeggen: je data is gewoon niet meer werkbaar.

De halve oplossing

De meeste simpele oplossing is door het eenvoudigweg maken van een segment waarin je alle bezoeken met rare transacties uitsluit. Dat kan er zo uit zien:

Dit werkt alleen als de rare transacties duidelijk van de normale te onderscheiden zijn. In andere gevallen moet je toch de echte oplossing gebruiken:

Hoe annuleer je een transactie

Om een transactie te annuleren moet je op zoek gaan naar alle gegeven die je over de transactie kunt vinden. Dus welke affiliatie, producten, SKU's, bron, medium, zoekwoord, enz. zijn er gebruikt in de meting op de bedanktpagina. Ik neem als voorbeeld een transactie die er als volgt uit ziet, de gegevens die hier staan heb ik stuk voor stuk uit Google Analytics gehaald:

pageTracker._addTrans("order-123", "", "1090170.00", "0.00", "0.00", "Assen", "", "Nederland");
pageTracker._addItem("order-123", "prod-456", "Duplo blokje", "Speelgoed", "36339.00", "30");
pageTracker._trackTrans();

Het totaal bedrag is net over de 1 miljoen heen. Stel dat ik deze transactie wil annuleren moet ik de volgende code gebruiken:

pageTracker._addTrans("order-123", "", "-1090170.00", "0.00", "0.00", "Assen", "", "Nederland");
pageTracker._addItem("order-123", "prod-456", "Duplo blokje", "Speelgoed", "36339.00", "-30");
pageTracker._trackTrans();

Let op: in de transactie wordt het orderbedrag negatief, hetzelfde doe je met de 2 velden er na (belasting en verzendkosten). En in de item regel blijft het bedrag positief maar wordt het aantal bestelde producten negatief neergezet.

De juiste bron
de volgende stap is het opzoeken van de bron van het bezoek. Stel dat het in dit geval iemand is geweest die op "duplo" heeft gezocht in Google en op de AdWords advertentie heeft geklikt. Je gaat naar je betreffende site, je gooit al je cookies van die site weg. Dan ga je naar Google en doe je dezelfde zoekactie. Je klikt op de AdWords advertentie en landt op de site. Als je dit niet doet heb je kans dat AdWords bijvoorbeeld 1 miljoen in de plus staat en direct verkeer 1 miljoen in de min. De transactie is dan wel geannuleerd, maar de data binnen de verkeersbronnen klopt nog steeds van geen kant. (Deze fout had ik dus gemaakt en hoeven jullie nu niet meer te maken 😉 )

Vervolgens kun je de nieuwe annulerende ecommerce code via de adresbalk aan Google Analytics doorgeven:

Plak de volledige code als 1 regel voorafgaand met "javascript:" in je adresbalk en druk op enter. Er wordt nu een ecommerce meting verstuurd die de foutieve transactie annuleert.

Het resultaat

Het resultaat is dat wanneer je het transactie rapport bekijkt en een periode selecteert waarin beide transacties staan (de foute en de annulerende) ze beide niet meer zichtbaar zijn. In de omzet grafiek zie je nog wel een piek, maar ook een dal op de plek van de annulering. De omzetten die toegekend worden aan de verkeersbronnen kloppen weer, enz. enz. Een veel betere situatie met mooie opgeschoonde data.

In mijn geval moest ik 5 transacties annuleren en dat kostte me dik 2 uur, eerst 5 keer fout, toen 5 keer goed maar met verkeerde bron, toen 5 keer om de omzetten van de verkeersbronnen goed te krijgen, en als laatste nog 2 omdat ze niet allemaal goed doorgekomen waren. Elke keer de cookies verwijderen en ook controleren of je in Analytics niet je eigen IP adres uitsluit, anders moet je dat filter even uit zetten. Het is dus niet heel makkelijk, eigenlijk zou in Google Analytics zelf een "verwijder" knop naast de transacties moeten komen te staan 😉

Click to activate social bookmarks

 
  • Nadeel is nog wel dat de timeline beide transacties (zowel positieve als ook de negatieve) moet omvatten, dus als je in januari foute sales hebt en deze in februari corrigeert, je corrupte info zult zien als je bijv. enkel de statistieken van januari, danwel februari, zult bekijken.

    Mijn theorie is dat als je de timestamp in de cookie-info (allemaal te faken d.m.v. utm.gif's te laden i.p.v. de javascript uit te voeren) op de juiste manier aanpast (lees: timestamp in het verleden selecteert) dit wellicht voorkomen kan worden, maar heb dat zelf nog niet getest.

  • @Wilco: ik betwijfel of dat werkt. De hits van die periode zijn namelijk al door Google verwerkt en geaggregeerd. En ja: het is het meest effectief om dit soort transacties binnen enkele dagen (het liefst in exact dezelfde maand) te annuleren.
    Hiervoor kun je de Analytics Intelligence functie van GA voor gebruiken. Die moet je zo instellen dat je de dag na een afwijking in je omzet een alert (mail) krijgt.

  • In mijn geval weet ik in de regel pas een maand later of de sale legitiem was of niet: Ik implementeer momenteel alle affiliate-sales in Google Analytics, en deze worden vaak pas (aanzienlijk) later goed- of afgekeurd.

    Zal er binnenkort wat meer mee gaan testen, houd je op de hoogte!

  • De techniek van het verwijderen van transacties wist ik al (stond geloof ik in het boek van Brian Clifton)..
    Maar de manier om ook de bron aan een negatieve transactie te koppelen die is nieuw en moet zeggen zeer creatief gevonden. Thanks voor de tip.

  • Peter-Jan

    De klant in kwestie is je in ieder geval dankbaar! 😎

    @Wilco: Jij had met deze bestellingen echt niet een maand hoeven afwachten om vast te stellen dat ze niet legitiem waren. Dat kan je van me aannemen.

  • @Peter-Jan, graag gedaan 😉

  • Ook dit artikel toont aan dat het niet verstandig is te vertrouwen op je Google Analytics stats alleen. Via deze manier zijn gegevens eenvoudig te manipuleren in iedere webshop met Google Analytics. Ik zou toch niet willen dat iemand dit inzet voor concurrentje-pesten. Maar goed, nu weten we in ieder geval hoe we dit weer recht kunnen zetten. Bedankt Andre.

  • @Sander: omdat we achteraf geen zaken zo even uit de database weg kunnen gooien blijf je inderdaad relatief onbeschermd tegen kwaadwillenden.

  • Gelukkig nog nooit meegemaakt. Zeer creatief gevonden. Wellicht is het nog beter om dergelijke bestellingen en fouten je niet eens te laten overkomen. Bijvoorbeeld door de webshop abnormale bestellingen niet eens aan te nemen. Maar ook dat levert wel de nodige problemen op, zoals wat is een abnormale bestelling? Wellicht je als webshop eigenaar bestellingen boven een bepaald bedrag even telefonisch afhandeld, terwijl je bent ingelogd in het beheer van de webshop.

  • @Diederik: Tuurlijk controleren wij dit soort transacties even voordat de vrachtwagen gaat rijden... 😎 Wat Analytics betreft is het "kwaad" dan echter al gedaan.