E-Commerce tracking instellen in Google Analytics 4 (via GTM)

Leestijd: 5 minuten

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.

Meer updates?

We houden je graag op de hoogte.

  • Alle nieuwste ontwikkelingen over online marketing
  • Exclusieve uitnodigingen over kennisevents
  • Laatste ontwikkelingen binnen online marketing en meer
  • Maximaal één keer per maand

Meer blogs over

online marketing

Online Marketing
Mark van Hattum

Boekentips 2023

Met de zomer voor de deur is het vaak een goed moment om even een stapje terug te doen. Lekker relaxen tijdens een welverdiende vakantie.

Lees meer
50%

Je bent er bijna

Waar mogen we hem naar toe sturen?