Enhanced Ecommerce data (her)gebruiken in andere GTM tags

Fans van Google Tag Manager roepen graag: “Wie Google Tag Manager implementeert, heeft de webbouwer nooit meer nodig!” Wij nuanceren dat liever iets meer door te zeggen: “Wie GTM implementeert heeft de webbouwer veel minder vaak nodig!”. Met als grote voordeel dat analisten, communicatiemedewerkers en marketeers veel makkelijker zelf nieuwe inzichten kunnen halen uit hun website(s). Met dit blog wil ik het de gebruikers van GTM weer wat makkelijker maken. Ik wil jou inspireren om op zoek te gaan naar nog meer inzichten met behulp van de data die aanwezig is in de dataLayer van GTM bij gebruik van Enhanced Ecommerce. Heb je een webshop en heb je Enhanced Ecommerce geïmplementeerd met behulp van GTM? Lees dan verder. 

Ontdek nieuwe inzichten over je webshop

Mijn collega Felipe heeft in twee eerdere blogs (1, 2) besproken hoe Enhanced Ecommerce voor Google Analytics met behulp van GTM en de dataLayer optimaal geïmplementeerd kan worden. Een dergelijke implementatie vraagt wat technische ondersteuning (een typisch voorbeeld dat de webbouwer nog wel degelijk nodig is!) omdat de benodigde info niet vanuit het niets in de dataLayer verschijnt. Zodra de e-commerce informatie in dataLayer beschikbaar is op de pagina’s van je webshop is de weg eindelijk vrij voor marketeers en anderen om deze data ook in andere GTM tags te gebruiken.

Er is veel mogelijk. Je kunt deze data meesturen met floodlights om zo omzet uit display, search en remarketing zichtbaar te krijgen in Doubleclick of bijvoorbeeld Criteo. Of je kunt deze floodlights inzetten voor beter gefocuste retargeting. Maar je zou ook de klanten die het meeste opleveren kunnen trakteren op een speciaal bedankje. Of verkrijg inzicht in de gemiddelde waarde van in detail bekeken producten per acquisitie kanaal.

Toegegeven, voor geavanceerdere zaken is wat javascript kennis handig. Maar wees gerust, voor heel veel dingen is deze absoluut niet nodig.

Welke data is er beschikbaar?

Om de Enhanced E-commerce data te kunnen gebruiken is het vooral belangrijk dat je weet welke data er beschikbaar is. Per type pagina (productpagina’s winkelwagen, homepage) is er verschillende data beschikbaar. Dat is natuurlijk uit de documentatie van Google te halen (Link) Of uit de broncode van je pagina’s. Maar de makkelijkste manier is om het onderstaande overzicht te raadplegen.*

Hieronder vind je een lijst van de beschikbare variabelen zoals deze geïmporteerd kunnen worden in Google Tag Manager. De hiërarchie en namen van deze variabelen spreken gelukkig voor zich. Mocht dit niet zo zijn, schroom dan vooral niet om het bij me na te vragen!

ecommerce.currencyCode
ecommerce.impressions.n.name
ecommerce.impressions.n.id
ecommerce.impressions.n.price
ecommerce.impressions.n.brand
ecommerce.impressions.n.category
ecommerce.impressions.n.variant
ecommerce.impressions.n.list
ecommerce.impressions.n.position *

* Let op: n is een numerieke verwijzing naar het product i de array beginnend bij 0 en lopend tot zoveel producten er op de pagina zijn.

ecommerce.click.actionField.list
ecommerce.click.products.0.name
ecommerce.click.products.0.id
ecommerce.click.products.0.price
ecommerce.click.products.0.brand
ecommerce.click.products.0.category
ecommerce.click.products.0.variant
ecommerce.click.products.0.position

ecommerce.detail.products.n.id
ecommerce.detail.products.n.name
ecommerce.detail.products.n.brand
ecommerce.detail.products.n.variation
ecommerce.detail.products.n.category
ecommerce.detail.products.n.price
ecommerce.detail.products.n.position
ecommerce.detail.products.n.list *

* Let op: n is een numerieke verwijzing naar het product i de array beginnend bij 0 en lopend tot zoveel producten er op de pagina zijn.

ecommerce.add.actionField.id
ecommerce.add.actionField.step
ecommerce.currencyCode
ecommerce.add.actionField.coupon
ecommerce.add.actionField.couponDiscount
ecommerce.add.actionField.tax
ecommerce.add.actionField.shipping
ecommerce.add.actionField.shippingMethod
ecommerce.add.actionField.subTotalIncludeTax
ecommerce.add.actionField.revenue
ecommerce.add.products.0.name
ecommerce.add.products.0.id
ecommerce.add.products.0.price
ecommerce.add.products.0.brand
ecommerce.add.products.0.category
ecommerce.add.products.0.variant
ecommerce.add.products.0.quantity
ecommerce.remove.actionField.id
ecommerce.remove.actionField.step
ecommerce.currencyCode
ecommerce.remove.actionField.coupon
ecommerce.remove.actionField.couponDiscount
ecommerce.remove.actionField.tax
ecommerce.remove.actionField.shipping
ecommerce.remove.actionField.shippingMethod
ecommerce.remove.actionField.subTotalIncludeTax
ecommerce.remove.actionField.revenue
ecommerce.remove.products.0.name
ecommerce.remove.products.0.id
ecommerce.remove.products.0.price
ecommerce.remove.products.0.brand
ecommerce.remove.products.0.category
ecommerce.remove.products.0.variant
ecommerce.remove.products.0.quantity

ecommerce.promoView.promotions.n.id
ecommerce.promoView.promotions.n.name
ecommerce.promoView.promotions.n.creative
ecommerce.promoView.promotions.n.position*

* Let op: n is een numerieke verwijzing naar het product i de array beginnend bij 0 en lopend tot zoveel producten er op de pagina zijn.

ecommerce.promoClick.promotions.n.id
ecommerce.promoClick.promotions.n.creative
ecommerce.promoClick.promotions.n.name
ecommerce.promoClick.promotions.n.position*

* Let op: n is een numerieke verwijzing naar het product i de array beginnend bij 0 en lopend tot zoveel producten er op de pagina zijn.

ecommerce.checkout.actionField.id
ecommerce.checkout.actionField.step
ecommerce.checkout.actionField.option
ecommerce.currencyCode
ecommerce.checkout.products.0.id
ecommerce.checkout.products.0.price
ecommerce.checkout.products.0.brand
ecommerce.checkout.products.0.category
ecommerce.checkout.products.0.variant
ecommerce.checkout.products.0.quantity

ecommerce.purchase.actionField.id
ecommerce.purchase.actionField.step
ecommerce.currencyCode
ecommerce.purchase.actionField.coupon
ecommerce.purchase.actionField.couponDiscount
ecommerce.purchase.actionField.tax
ecommerce.purchase.actionField.shipping
ecommerce.purchase.actionField.shippingMethod
ecommerce.purchase.actionField.subTotalIncludeTax
ecommerce.purchase.actionField.affiliation
ecommerce.purchase.actionField.revenue
ecommerce.purchase.actionField.paymentMethod
ecommerce.purchase.actionField.date
ecommerce.purchase.actionField.city
ecommerce.purchase.actionField.region
ecommerce.purchase.actionField.country
ecommerce.purchase.actionField.postalRegion
ecommerce.purchase.products.n.id
ecommerce.purchase.products.n.name
ecommerce.purchase.products.n.variation
ecommerce.purchase.products.n.brand
ecommerce.purchase.products.n.category
ecommerce.purchase.products.n.price
ecommerce.purchase.products.n.quantity*

* Let op: n is een numerieke verwijzing naar het product i de array beginnend bij 0 en lopend tot zoveel producten er op de pagina zijn.

* Omdat we in dit blog uitgaan van een volledige en correcte implementatie van Enhanced Ecommerce kan de werkelijk aanwezige data kan natuurlijk afwijken afhankelijk van de inrichting. Gelukkig kun je  met deze tips gemakkelijk zien welke data er waar beschikbaar is op jouw website. 

Door de Google Tag Assistant (een Chrome plugin) te gebruiken, kun je zien welke data op jouw eigen website beschikbaar is. Hierin kun je altijd de huidige waarden in de dataLayer aflezen. Mocht je geen Chrome kunnen of willen gebruiken dan kan je hetzelfde ook inzichtelijk maken door een aparte variabele in GTM aan te maken die het e-commerce object in de dataLayer uitleest.

ecommerce variabele

Door vervolgens de voorbeeldmodus in GTM te activeren kun je gemakkelijk aflezen welke variabelen er aanwezig zijn.

inhoud ecommerce object

Dit lijkt wellicht moeilijk leesbaar, maar door deze JSON code door een JSON formatter (bijv: http://jsbeautifier.org/) te halen wordt deze wirwar zeer goed leesbaar.

leesbare json

Hierboven zie je bijvoorbeeld een deel van de productdata op een categoriepagina. De verschillende producten staan hier allemaal in verschillende Array objecten onder het object ecommerce.impressions.

De beschikbare data gebruiken

Oké, al deze data is beschikbaar. Maar hoe krijg ik de data dan in GTM? Dat is gelukkig heel eenvoudig. Om een enkele variabele beschikbaar te maken hoef je enkel een nieuwe variabele aan te maken in GTM met de juiste verwijzing naar de gewenste data in de dataLayer.

Voor een variabele in GTM die de waarde van een transactie uitleest maak je de volgende variabele aan:

revenue variabele

Deze variabele is bijvoorbeeld bijzonder handig te gebruiken bij Doubleclick Sales Floodlights.

Floodlights

Voor display campagnes gebruiken marketeers vaak floodlights. Er zijn drie soorten floodlights: Counters, Transactions en Product Sales. Bij alle Floodlights bestaat de mogelijkheid om zelf gedefinieerde U-variabelen mee te sturen. Zo kun je deze U-variabelen bijvoorbeeld gebruiken om audiences te definiëren voor remarketing campagnes. Op deze manier kun je bezoekers die een product detailpagina bezocht hebben, maar dit product nog niet gekocht hebben, kunnen retargeten. Door op de product detail pagina een U-variabele mee te sturen met een product-id (ecommerce.detail.products.0.id) of productnaam (ecommerce.detail.products.0.name) kun je een remarketing audience opbouwen in Doubleclick.

floodlight met uvariabelen

Omdat het voor dit voorbeeld zonde van je advertentiebudget is om mensen te benaderen die een bezocht product al kochten stuur je op de bedankpagina niet alleen de waarde en het order-id mee met de Floodlight maar ook de id’s (ecommerce.purchase.products.n.id) en namen (ecommerce.purchase.products.n.name) van de gekochte producten. Dit doe je op dezelfde manier als in het bovenstaande voorbeeld van de all pages floodlight.

Waarde van bekeken producten per kanaal.

Om het aangeleverde verkeer van de verschillende acquisitie kanalen (Organic, Paid Search, Referrals, Display) beter te beoordelen kan het handig zijn om inzicht te krijgen in de waarde van alle, in detail, bekeken producten per acquisitie kanaal. In een aangepast rapport kun je dit in Google Analytics vervolgens zelfs afzetten tegen de werkelijke opbrengst. Welk kanaal levert bijvoorbeeld mensen op die vooral ‘kijken, kijken, niet kopen’? Om dit inzicht te verkrijgen kunnen we op elke productdetailpagina een apart event (gebeurtenis) sturen met behulp van Google Tag Manager. Dit event geven we vier variabelen mee: Categorie, Actie, Label en Waarde.

waarde bekeken producten

Daarnaast sturen we nog een aangepast statistiek (custom metric) mee met het event. Deze custom metric moeten we eerst aanmaken in Google Analytics. Voor wie die dit nog niet eerder gedaan heeft: deze optie vind je op het beheer tabblad onder de Property instellingen.

ga-custom metric

Bij het aanmaken van een aangepaste statistiek krijgt deze een unieke index. Deze moet uiteraard corresponderen met de opgegeven index in GTM, in dit voorbeeld was deze metric de eerste aangepaste statistiek en dus is de index 1.

metric custom price

Zodra je de data gaat versturen kun je deze aangepaste metriek gebruiken in een aangepast rapport. Hierin kun je deze afzetten ten opzichte van alle standaard (en aangepaste) dimensies. Het kan ook nuttig zijn om nog een berekende statistiek te maken waarbij je inzicht verkrijgt in bijvoorbeeld de waarde van de bekeken producten per sessie of de verhouding tot de waarde van de transacties.

Maak hiervoor in Google Analytics onder de Weergave Instellingen een berekende statistiek aan met bijvoorbeeld een van de volgende formules:
{{Waarde Bekeken Producten}}/{{Sessies}}  en/of {{Waarde Bekeken Producten}}/{{Opbrengst}}.

VIP behandeling voor goede klanten

Waar voor de programmeurs op technisch vlak alle klanten gelijk zijn, weet je als marketeer dat sommige klanten meer waard zijn dan anderen. Tegelijkertijd verwachten klanten steeds meer van bedrijven op het gebied van service en aandacht. Dus waarom zou je klanten die veel besteden in je webshop niet een beetje meer bieden?  Laat weten dat je gek op ze bent en dat ze op je kunnen rekenen! Bijvoorbeeld door al in het betaalproces of op de bedankpagina extra opties te bieden op basis van de waarde van hun winkelwagen.

Zo kun je als marketeer (zonder tussenkomst van de webbouwer!) mensen die minimaal 200 euro uitgeven laten weten dat je harder voor ze rent, of toon ze een speciaal bedankje (bijvoorbeeld een kortingsbon voor een volgende aankoop). In dit geval gebruiken we de aanwezige e-commerce data als voorwaarde voor een trigger in GTM.

speciaal bedankje

Gratis verzendkosten bij minimale besteding

We hebben de aanwezige variabelen in GTM inmiddels gebruikt als meegestuurde data en triggers. Maar we kunnen in GTM ook rekenen met de aanwezige numerieke data. Zo kan je bijvoorbeeld op basis van de productprijs op een product detail pagina tonen of verzending bij dit product gratis is of dat daarvoor nog een aanvullende aankoop nodig is.  Daarbij is het natuurlijk fijn als je gelijk kunt laten zien hoeveel iemand vanaf het minimale bestelbedrag af zit. Om dat uit te rekenen maak je in GTM een nieuwe variabele aan. Stel dat verzending gratis is vanaf een orderwaarde van 50 euro. Dan ziet die variabele er als volgt uit:

restbedrag js variabele

Hierbij maken we dus gebruik van een Aangepaste javascript-macro. In deze macro trekken we de productprijs (die variabele is gevuld met: ecommerce.detail.products.0.price) af van de minimale hoeveelheid. Nu kunnen we overal in GTM het restbedrag aanroepen met {{Restbedrag verzendkosten}}. Zo kunnen we bijvoorbeeld een trigger aanmaken om het label “gratis verzendkosten” te laten zien waarbij  {{Restbedrag verzendkosten}} minder of gelijk aan 0 is.

Tegelijkertijd kunnen we deze variabele ook gebruiken in een Tag met custom html die de klant laat zien hoeveel hij of zij nog moet besteden om aanspraak te maken op gratis verzending. Als je dat echter doet op de winkelwagen-pagina zal je daarvoor natuurlijk, op dezelfde manier, een andere variabele aan moeten maken op basis van de waarde van alle producten in de winkelwagen.

Recap: 1001 Mogelijkheden met Enhanced Ecommerce en GTM

Mijn doel voor dit blog was om te laten zien hoe makkelijk het is om de data die in de dataLayer aanwezig is voor alle Enhanced Ecommerce metingen op tal van andere plekken en manieren te gebruiken in Google Tag Manager.  Maar ik zou het nog leuker vinden als ik je heb weten te inspireren om nog meer leuke dingen met deze data te doen. Dus, heb jij een goede toepassing verzonnen of op deze manier nieuwe inzichten verkregen,  laat me dat dan middels een berichtje hieronder weten. Vind ik leuk 🙂

Trefwoorden: