Google Analytics 4, momenteel nog weinig gebruikt door marketeers maar veelbelovend voor de toekomst. Zoals ik in mijn voorgaande blogs al eens vaker heb benoemd is het verstandig om nu al te beginnen met het implementeren van Google Analytics 4 om zo data te verzamelen. Onder deze data valt natuurlijk ook het stukje e-commerce. In dit blog leg ik je uit hoe je Google Analytics 4 e-commerce tracking installeert en waarom dit een goede toevoeging kan zijn voor jouw bedrijf.
Waarom Google Analytics 4 Enhanced E-commerce?
Veel bedrijven hebben de traditionele e-commerce tracking geĆÆmplementeerd op Google Analytics maar nog relatief weinig bedrijven hebben een correcte implementatie van Enhanced E-commerce. Toch kan dit veel nieuwe inzichten leiden waardoor je betere sturing kunt geven aan je bedrijf. Track je deze data nog niet dan kun je deze data over bijvoorbeeld 1 jaar niet met terugwerkende kracht ophalen. Met deze reden is het belangrijk dat je nu al begint met het verzamelen van je Enhanced E-commerce data. In de toekomst zal je naar alle waarschijnlijkheid sturing gaan geven aan je bedrijf met behulp van Google Analaytics 4 in plaats van Universal Analytics. Deze nieuwe versie van Analytics zorgt ervoor dat je in-depth analyses kunt creĆ«ren. Zoals eerder verteld is het niet mogelijk om data van Universal Analytics over te zetten naar Google Analytics 4. Begin dus vandaag nog met het verzamelen van E-commerce data om jouw bedrijf een extra boost te geven.
We geven je hieronder een kleine uitleg over standaard en enhanced e-commerce tracking.Ā
Standaard E-commerce tracking: Met standaard e-commerce tracking is het mogelijk om de omzet, orderwaarde, transacties en productprestaties te meten. Met gebruik van deze metrics kun je een goede basis zetten om je e-commerce webshop te analyseren. Ben je op zoek naar meer diepgaande data? Ga dan voor Enhanced E-commerce.
Enhanced e-commerce: Met gebruik van Enhanced E-commerce gaat de data een stuk dieper en zijn er ook meerdere rapporten binnen Google Analytics beschikbaar. Met het gebruik van Enhanced E-commerce krijg je inzichten in winkelgedrag, verkoopprestaties, productprestaties, betaalgedrag en promoties (bijvoorbeeld hoe vaak een kortingsbon wordt gebruikt). Diepgaandere vragen worden door deze rapporten beantwoord zoals:
- Welke producten worden vaak bekeken maar weinig toegevoegd aan de winkelmand?
- Waar haken mijn gebruikers af?
- Hoe goed presteert de checkout-pagina?
- Welke resultaten krijgen we naar aanleiding van promoties?
- Welke producten worden vaak aan het winkelmandje toegevoegd?
- Welke productvarianten presteren het best?
- Hoeveel procent van de producten met impressies wordt uiteindelijk gekocht?
Implementatie van Enhanced E-commerce met GTM (Google Tag Manager)
Om Enhanced E-commerce is het belangrijk om eerst een datalayer te hebben gestructureerd, volledig naar vorm van de syntax dat Google aanraadt. Klik hier voor een uitgebreide beschrijving van Google hoe deze datalayer moet worden geĆÆmplementeerd.
In de datalayer moeten de volgende variabelen worden verwerkt:Ā
- Impressions
- Clicks
- Detail views
- Add/remove from cart
- Promotion views
- Promotion clicks
- Checkouts
- Purchases
- Refunds
Na het implementeren van de datalayer kunnen we aan de slag gaan met het instellen van alle variabelen, tags en triggers in Google Tag Manager (GTM).
Instellen van de GTM tags, triggers en variabelen
Voor het instellen van GA4 Ecommerce Tracking is een Datalayer nodig. Door middel van een datalayer geven we informatie van de website door aan Google Tag Manager. Na deze implementatie kun je aan de slag gaan met het instellen van de variabelen in google tag manager. De variabelen zullen er voor zorgen dat de juiste parameters naar Google Analytics worden gestuurd.
Measure product/item list views/impressions
Een item impression/view staat gelijk aan een productview op een categoriepagina
Een impression moet in de datalayer worden gerekend als in een productlijst, bijvoorbeeld een categoriepagina waar het product wordt bekeken. Veel marketeers gaan hierbij de fout in waarbij wordt gedacht dat het hierbij gaat om een product view van de productpagina, dit is dus niet het geval.
Tag & Trigger setup
Tag type: GOOGLE ANALYTICS 4 Event
Event naam: view_item_list
Event parameter: Items – {{E-commerce Items}}
Trigger: GTM.dom
Variabele setup
Ervan uitgaande dat de datalayer precies is gestructureerd zoals Google voorschrijft kun je in GTM een aparte variabele aanmaken. Deze naam noemen we āE-commerce Itemsā. Ga hiervoor naar de variabelen pagina in Google tag manager en maak een nieuwe variabele voor de gegevenslaag aan. Rechts bovenin het scherm kun je de naam opgeven van de variabele. Hierna kun je in de variabele onder ānaam van variabele voor gegevenslaagā het pad ingeven (afhankelijk van de set-up van je datalayer) om de juiste informatie terug te halen. Als variabele exact zoals Google het aanraad is geĆÆmplementeerd mag hier āe-commerce.itemsā ingevuld worden.
Datalayer setup
// Measure product views / impressions
dataLayer.push({ e-commerce: null }); // Clear the previous e-commerce object.
dataLayer.push({
event: "view_item_list",
e-commerce: {
items: [
{
item_name: "Triblend Android T-Shirt", // Name or ID is required.
item_id: "12345",
price: 15.25,
item_brand: "Google",
item_category: "Apparel",
item_category2: "Mens",
item_category3: "Shirts",
item_category4: "Tshirts",
item_variant: "Gray",
item_list_name: "Search Results",
item_list_id: "SR123",
index: 1,
quantity: 1
},
{
item_name: "Donut Friday Scented T-Shirt",
item_id: "67890",
price: 33.75,
item_brand: "Google",
item_category: "Apparel",
item_category2: "Mens",
item_category3: "Shirts",
item_category4: "Tshirts",
item_variant: "Black",
item_list_name: "Search Results",
item_list_id: "SR123",
index: 2,
quantity: 1
}]
}
});
Measure product/item list clicks
Een item list click staat gelijk aan een productklik op een categoriepagina
Een click moet in de datalayer worden gerekend als in een product wordt geklikt. Hierdoor kun je bijvoorbeeld inzien wat de verhouding is tussen impressies en klikken.
Tag & Trigger setup
Tag type: GOOGLE ANALYTICS 4 Event
Event naam: select_item
Event parameter: items – {{E-commerce Items}}
Trigger: event komt overeen met select_item
Variabele setup
De variabele E-commerce Items hebben we in de voorgaande setup al aangemaakt. Voor deze setup hoeven dus geen extra variabele te worden aangemaakt.
Datalayer setup
/**
* Call this function when a user clicks on a product link.
* @param {Object} productObj An object that represents the product that is clicked.
*/
function onProductClick(productObj) {
dataLayer.push({ e-commerce: null }); // Clear the previous e-commerce object.
dataLayer.push({
event: "select_item",
e-commerce: {
items: [{
item_name: productObj.name, // Name or ID is required.
item_id: productObj.id,
item_brand: productObj.brand,
item_category: productObj.category,
item_category2: productObj.category_2,
item_category3: productObj.category_3,
item_category4: productObj.category_4,
item_variant: productObj.variant,
item_list_name: productObj.list_name,
item_list_id: productObj.list_id,
index: productObj.index,
quantity: productObj.quantity,
price: productObj.price
}]
}
});
}
Measure views/impressions of product/item details
Een view/impression of product/item details staat gelijk aan het bekijken van de productspecificatie op de productpagina
Een detail view houdt moet worden getriggerd als iemand de productdetails op een productpagina bekijkt.
Tag & Trigger setup
Tag type: GOOGLE ANALYTICS 4 Event
Event naam: view_item
Event parameter: Items – {{E-commerce Items}}
Trigger: GTM.dom
Variabele setup
De variabele E-commerce Items hebben we in de voorgaande setup al aangemaakt. Voor deze setup hoeven dus geen extra variabele te worden aangemaakt.
// Measure a view of product details. This example assumes the detail view occurs on pageload,
dataLayer.push({ e-commerce: null }); // Clear the previous e-commerce object.
dataLayer.push({
event: "view_item",
e-commerce: {
items: [{
item_name: "Donut Friday Scented T-Shirt", // Name or ID is required.
item_id: "67890",
price: 33.75,
item_brand: "Google",
item_category: "Apparel",
item_category2: "Mens",
item_category3: "Shirts",
item_category4: "Tshirts",
item_variant: "Black",
item_list_name: "Search Results", // If associated with a list selection.
item_list_id: "SR123", // If associated with a list selection.
index: 1, // If associated with a list selection.
quantity: 1
}]
}
});
Add/remove from cart
Een add/remove from cart wordt getriggert als iemand een product toevoegt of verwijderd uit het winkelmandje.
Add to cart Tag & Trigger setup
Tag type: GOOGLE ANALYTICS 4 Event
Event naam: add_to_cart
Event parameter: Items – {{E-commerce Items}}
Trigger: event staat gelijk aan add_to_cart
Variabele setup
Er hoeven geen extra variabelen voor deze setup opgezet te worden aangezien we de variabele E-commerce Items in voorgaande stappen al hebben geĆÆmplementeerd.
remove_from_cart Tag & Trigger setup
Tag type: GOOGLE ANALYTICS 4 Event
Event naam: remove_from_cart
Event parameter: Items – {{E-commerce Items}}
Trigger: event staat gelijk aan remove_from_cart
Dataylayer setup add to cart
// Measure when a product is added to a shopping cart
dataLayer.push({ e-commerce: null }); // Clear the previous e-commerce object.
dataLayer.push({
event: "add_to_cart",
e-commerce: {
items: [{
item_name: "Donut Friday Scented T-Shirt", // Name or ID is required.
item_id: "67890",
price: "33.75",
item_brand: "Google",
item_category: "Apparel",
item_category2: "Mens",
item_category3: "Shirts",
item_category4: "Tshirts",
item_variant: "Black",
item_list_name: "Search Results",
item_list_id: "SR123",
index: 1,
quantity: 2
}]
}
});
Datalayer setup remove from cart
// Measure the removal of a product from a shopping cart.
dataLayer.push({ e-commerce: null }); // Clear the previous e-commerce object.
dataLayer.push({
event: "remove_from_cart",
e-commerce: {
items: [{
item_name: "Donut Friday Scented T-Shirt", // Name or ID is required.
item_id: "67890",
price: 33.75,
item_brand: "Google",
item_category: "Apparel",
item_variant: "Black",
item_list_name: "Search Results", // If associated with a list selection.
item_list_id: "SR123", // If associated with a list selection.
index: 1, // If associated with a list selection.
quantity: 1
}]
}
});
Promotion views & clicks
Een promotion view houdt in dat in een promotiesectie van de pagina de gebruiker een impressie heeft gedaan van de promotie. Klikt een gebruiker vervolgens op de promotie dan wordt het promotion click event getriggerd.
Promotion views Tag & Trigger setup
Tag type: GOOGLE ANALYTICS 4 Event
Event naam: view_promotion
Event parameter: Items – {{E-commerce Items}}
Trigger: GTM.dom
Promotion clicks Tag & Trigger setup
Tag type: GOOGLE ANALYTICS 4 Event
Event naam: select_promotion
Event parameter: Items – {{E-commerce Items}}
Trigger: event staat gelijk aan select_promotion
Variabele setup
De variabele E-commerce Items is in voorgaande setups al aangemaakt, er hoeven dus geen nieuwe variabele aangemaakt te worden.
Datalayer setup promotion views
// Measure promotion views. This example assumes that information about the
// promotions displayed is available when the page loads.
dataLayer.push({ e-commerce: null }); // Clear the previous e-commerce object.
dataLayer.push({
event: "view_promotion",
e-commerce: {
items: [{
item_name: "Donut Friday Scented T-Shirt", // Name or ID is required.
item_id: "67890",
price: 33.75,
item_brand: "Google",
item_category: "Apparel",
item_category2: "Mens",
item_category3: "Shirts",
item_category4: "Tshirts",
item_variant: "Black",
promotion_id: "abc123",
promotion_name: "summer_promo",
creative_name: "instore_suummer",
creative_slot: "1",
location_id: "hero_banner",
index: 1,
quantity: 1
}]
}
});
Datalayer promotion clicks
/**
* Call this function when a user clicks on a promotion.
* @param {Object} promoObj An object that represents an internal site promotion.
*/
function onPromoClick(promoObj) {
dataLayer.push({ e-commerce: null }); // Clear the previous e-commerce object.
dataLayer.push({
event: "select_promotion",
e-commerce: {
items: [{
item_name: promoObj.name, // Name or ID is required.
item_id: promoObj.id,
item_brand: promoObj.brand,
item_category: promoObj.category,
item_category2: productObj.category_2,
item_category3: productObj.category_3,
item_category4: productObj.category_4,
item_variant: promoObj.variant,
promotion_id: promoObj.pid,
promotion_name: promoObj.pname,
creative_name: promoObj.pcreative_name,
creative_slot: promoObj.pcreative_slot,
location_id: promoObj.plocation,
index: promoObj.index,
quantity: promoObj.quantity,
price: promoObj.price
}]
}
});
}
Begin Checkout
Het checkout event wordt afgevuurd op het moment dat de bezoeker aan de checkout begint, vaak is dit de pagina waar de verzendingsinformatie kan worden ingegeven.
Tag & Trigger setup
Tag type: GOOGLE ANALYTICS 4 Event
Event naam: begin_checkout
Event parameter: Items – {{E-commerce Items}}
Trigger: event staat gelijk aan begin_checkout
Variabele setup
De variabele E-commerce Items is in voorgaande setups al aangemaakt, er hoeven dus geen nieuwe variabele aangemaakt te worden.
Datalayer setup checkout
/**
* A function to handle a click on a checkout button.
*/
function onCheckout() {
dataLayer.push({ e-commerce: null }); // Clear the previous e-commerce object.
dataLayer.push({
event: "begin_checkout",
e-commerce: {
items: [{
item_name: "Donut Friday Scented T-Shirt", // Name or ID is required.
item_id: "67890",
price: 33.75,
item_brand: "Google",
item_category: "Apparel",
item_category2: "Mens",
item_category3: "Shirts",
item_category4: "Tshirts",
item_variant: "Black",
item_list_name: "Search Results",
item_list_id: "SR123",
index: 1,
quantity: 1
}]
}
});
}
Purchases
Een purchase wordt getriggerd als er een aankoop wordt gedaan. Bij deze tag worden meerdere parameters meegegeven en moeten dus ook meerdere variabelen worden ingesteld.
Tag & Trigger setup
Tag type: GOOGLE ANALYTICS 4 Event
Event naam: purchase
Event parameters:
- items – {{E-commerce Items}}
- transaction_id – {{E-commerce Transaction ID}}
- affiliation – {{E-commerce Affiliation}}
- value – {{E-commerce Value}}
- tax – {{E-commerce Tax}}
- shipping – {{E-commerce Shipping}}
- currency – {{E-commerce Currency}}
- coupon- {{E-commerce Coupon}}
Trigger: event staat gelijk aan purchase
Variabele setup
Voor het purchase event moeten meerdere variabelen worden opgezet. Als de datalayer exact volgens de syntax is geschreven van google dan moeten onderstaande variabelen worden aangemaakt.Ā
- E-commerce Items – e-commerce.items
- E-commerce Transaction ID – e-commerce.transaction_id
- E-commerce Affiliation – e-commerce.affiliation
- E-commerce Value – e-commerce.value
- E-commerce Tax – e-commerce.tax
- E-commerce Shipping – e-commerce.shipping
- E-commerce Currency – e-commerce.currency
- E-commerce Coupon – e-commerce.coupon
Datalayer setup
dataLayer.push({ e-commerce: null }); // Clear the previous e-commerce object.
dataLayer.push({
event: "purchase",
e-commerce: {
transaction_id: "T12345",
affiliation: "Online Store",
value: "59.89",
tax: "4.90",
shipping: "5.99",
currency: "EUR",
coupon: "SUMMER_SALE",
items: [{
item_name: "Triblend Android T-Shirt",
item_id: "12345",
price: "15.25",
item_brand: "Google",
item_category: "Apparel",
item_variant: "Gray",
quantity: 1
}, {
item_name: "Donut Friday Scented T-Shirt",
item_id: "67890",
price: 33.75,
item_brand: "Google",
item_category: "Apparel",
item_variant: "Black",
quantity: 1
}]
}
});
Refunds
Afhankelijk van hoe je website is ingericht kun je ook een aparte tag en variabele setup maken voor refunds. Op deze manier zorg je ervoor dat je direct inzichtelijk hebt welke producten vaak worden geretourneerd.
Tag & Trigger setup
Tag type: GOOGLE ANALYTICS 4 Event
Event naam: refund
Event parameter: Items – {{E-commerce Items}}
Trigger: GTM.dom
Variabele setup
In het begin van deze blog hebben we al de variabele āe-commerce itemsā opgezet. Deze variabele hoeven we dus niet nogmaals aan te maken
Datalayer setup
// To refund an entire transaction, provide the transaction ID.
// This example assumes the details of the completed refund are
// available when the page loads:
dataLayer.push({ e-commerce: null }); // Clear the previous e-commerce object.
dataLayer.push({
event: "refund",
e-commerce: {
transaction_id: "T12345" // Transaction ID. Required for purchases and refunds.
}
});
Valkuilen bij Enhanced E-commerce
Tijdens het installeren van Enhanced E-commerce zijn er veel valkuilen waardoor de uiteindelijke implementatie niet goed lukt. Het lastige aan Enhanced E-commerce is dat het hierbij aan vele redenen kan liggen waardoor de data niet in analytics binnenkomt. Onderstaand vindt je de meest voorkomende valkuilen bij het implementeren van Enhanced E-commerce.
- Verkeerde datalayer implementatie: Wanneer de datalayer niet volgens de juiste syntax van Google geĆÆmplementeerd is kan het voorkomen dat er geen enkele data binnenkomt. Dit is om te bouwen met gebruik van javascript, echter neem je dan een grote omweg. Het is vele malen makkelijker om de datalayer aan te passen zodat je een directe datalayer hebt die aansluit bij de eisen van Google.
- Tags of triggers zijn verkeerd ingesteld
- Enhanced Ecommerce is niet geactiveerd in het Google Analytics account (UA-property)
- De GTM-code is op de verkeerde plaats geĆÆmplementeerd
- De datalayer is op de verkeerde plaats geĆÆmplementeerd
- Verkeerd opgegeven metings-ID
- Non-interatie hit niet goed ingesteld
- Het versturen van dubbele transactiedata
- Onduidelijke en inconsistente productcategorie-structuur
Heb je na het lezen van deze blog nog vragen over het implementeren van Enhanced E-commerce of loop je tegen problemen aan bij de implementatie? Wacht dan eerst 48 uur af of er data binnenkomt in Google Analytics. Het kan namelijk tot 48 uur duren (bij implementatie) voordat analytics de data correct heeft verwerk. Ontvang je na 48 uur geen data op analytics of heb je hulp nodig in het debuggingproces? Neem dan contact op met de experts van MvH Media.