Hoe kun je winst meten in Google Ads?
Door Nino Kraus op 11 juli 2024
Als je Google Ads campagnes hebt opgezet voor ecommerce bedrijven, zal je dit jezelf afvragen. Hoe kan ik winst meten in Google Ads? Want Google meet dit niet voor je.
CONTACT
Door Nino Kraus op 11 juli 2024
Als je Google Ads campagnes hebt opgezet voor ecommerce bedrijven, zal je dit jezelf afvragen. Hoe kan ik winst meten in Google Ads? Want Google meet dit niet voor je.
Je ziet de kosten en opbrengsten van de campagnes, maar niet de daadwerkelijke winst. Een gemiste kans dus. In dit blog leg ik je uit hoe je dit wel meet (zonder dat je hier een betaalde tool voor nodig hebt).
Je wil eerst je bestaande tracking bekijken. Gaat je ecommerce tracking goed? Of zijn er foutjes?
Ga naar Google Analytics en klik links op ‘Verkennen’. Maak een lege verkenning aan en selecteer als dimensies bijvoorbeeld:
Bij waarden, gebruik standaard ecommerce metrics. Zoals:
Kijk naar opvallendheden. Je kunt het ook checken door te testen in Google Tag Manager met de DebugView open in GA4.
Zie je fouten? Fix deze dan eerst. Ziet alles er goed uit? Top, je kan beginnen met het meten van je winst.
Dan is het belangrijk om per productcategorie – al helemaal mooi is natuurlijk per product – te kijken wat je winstmarges zijn. Doe je dit per productcategorie? Zet de categorieën dan op een rijtje met daarnaast de winstmarges. Dan kun je aan de slag met Google Tag Manager.
Hiervoor willen we de ecommerce Data Layer gaan overschrijven. Zo ziet dit er standaard uit voor een purchase event:
dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. dataLayer.push({ event: "purchase", ecommerce: { transaction_id: "T_12345", // Sum of (price * quantity) for all items. value: 72.05, tax: 3.60, shipping: 5.99, currency: "USD", coupon: "SUMMER_SALE", items: [ { item_id: "SKU_12345", item_name: "Stan and Friends Tee", affiliation: "Google Merchandise Store", coupon: "SUMMER_FUN", discount: 2.22, index: 0, item_brand: "Google", item_category: "Apparel", item_category2: "Adult", item_category3: "Shirts", item_category4: "Crew", item_category5: "Short sleeve", item_list_id: "related_products", item_list_name: "Related Products", item_variant: "green", location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo", price: 10.01, quantity: 3 }, { item_id: "SKU_12346", item_name: "Google Grey Women's Tee", affiliation: "Google Merchandise Store", coupon: "SUMMER_FUN", discount: 3.33, index: 1, item_brand: "Google", item_category: "Apparel", item_category2: "Adult", item_category3: "Shirts", item_category4: "Crew", item_category5: "Short sleeve", item_list_id: "related_products", item_list_name: "Related Products", item_variant: "gray", location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo", price: 21.01, promotion_id: "P_12345", promotion_name: "Summer Sale", quantity: 2 }] } });
Maak vervolgens in Google Tag Manager een custom variabele. Zorg ervoor dat dit een aangepaste JavaScript-macro variabele is:
Geef deze variabele een naam, bijvoorbeeld: ecommerce profit
Ik gebruikte zelf de volgende code:
function() { // Haal de waarde van de variabele op var ecommerceData = {{Ecommerce datalayer}}; // Lookup table for margins var lookupTable = { "Tassen": 0.15, "Shirts": 0.3, // Add more categories as needed }; // Function to replace '&' in strings function replaceAmpersand(value) { if (typeof value === 'string') { return value.replace(/&/g, '&'); } return value; } // Recursive function to process objects and arrays function processValue(value) { if (typeof value === 'string') { return replaceAmpersand(value); } else if (Array.isArray(value)) { return value.map(processValue); } else if (typeof value === 'object' && value !== null) { var processedObject = {}; for (var key in value) { if (value.hasOwnProperty(key)) { processedObject[key] = processValue(value[key]); } } return processedObject; } return value; } // Function to calculate profit_price and total profit_value function calculateProfit(ecommerce) { var totalProfit = 0; ecommerce.items.forEach(function(item) { var category = item.item_category; var margin = lookupTable[category] || 0; // Default to 0 if category not found item.profit_price = parseFloat((item.price * margin).toFixed(2)); totalProfit += item.profit_price * item.quantity; }); ecommerce.profit_value = parseFloat(totalProfit.toFixed(2)); } // Process the ecommerceData and calculate profits ecommerceData = processValue(ecommerceData); calculateProfit(ecommerceData); return ecommerceData; }
En sla de variabele op.
Ga vervolgens naar je GA4 tag en ga onder ‘meer instellingen’ naar E-commerce en selecteer als gegevensbron ‘Custom Object’. Kies bij E-commerce-object je ingestelde variabele:
Als je deze data ook in GA4, wil je ook een custom dimensie aanmaken voor je winstmarge variabele. Deze variabele, die de waarde pakt van de winstmarge, gebruiken we ook voor Google Ads. Je maakt deze variabele als volgt:
Om deze informatie mee te sturen naar Google Ads, wil je een nieuwe Google Ads tag aanmaken. Zet bij conversiewaarde je variabele voor de winstmarge berekening.
Trigger deze tag op de aankoop conversie.
Kies ervoor in Google Ads dit als secundaire conversie te meten.
Je kunt ook een aangepast kolom maken in je Google Ads account die alleen deze conversie laat zien. Filter in deze kolom alle conversies op de conversienaam die je aan dit event geeft.
We maken gebruik van een Lookup Tabel voor marges. Dit is voor elke categorie natuurlijk verschillend, dus vul per categorie de marge in. Is je marge 0,50%? Vul dan 0.5 in als productmarge. Doe dit voor elke categorie die je hebt. Zie hiervoor onderstaande code:
var lookupTable = { "Tassen": 0.15, "Shirts": 0.3 // Voeg hier meer categorieën toe };
In mijn geval zag ik een fout in de tracking van de ecommerce data. Het &-teken werd een “&” Bij het verwerken van de data willen we ervoor zorgen dat eventuele HTML-entiteiten zoals & worden vervangen door hun normale tekens.
function replaceAmpersand(value) { if (typeof value === 'string') { return value.replace(/&/g, '&'); } return value; }
Hiervoor gebruiken we een recursieve functie om door het hele object te lopen en de waarden te verwerken.
function processValue(value) { if (typeof value === 'string') { return replaceAmpersand(value); } else if (Array.isArray(value)) { return value.map(processValue); } else if (typeof value === 'object' && value !== null) { var processedObject = {}; for (var key in value) { if (value.hasOwnProperty(key)) { processedObject[key] = processValue(value[key]); } } return processedObject; } return value; }
De winst berekenen: nu voegen we een functie toe die de profit_price en profit_value berekent en afrondt op twee decimalen. Want we willen de winst in euro’s berekenen.
function calculateProfit(ecommerce) { var totalProfit = 0; ecommerce.items.forEach(function(item) { var category = item.item_category; var margin = lookupTable[category] || 0; // Standaard naar 0 als categorie niet gevonden is item.profit_price = parseFloat((item.price * margin).toFixed(2)); totalProfit += item.profit_price * item.quantity; }); ecommerce.profit_value = parseFloat(totalProfit.toFixed(2)); }
Tot slot verwerken we de ecommerceData en berekenen we de winst.
function() { var ecommerceData = {{Ecommerce datalayer}}; ecommerceData = processValue(ecommerceData); calculateProfit(ecommerceData); return ecommerceData; }
Door deze stappen te volgen, hebben we een e-commerce variabele die automatisch de profit_price en profit_value berekent en afrondt op twee decimalen. Dit helpt je om een beter inzicht te krijgen in hun winstmarges per productcategorie en hun totale winstwaarde.
Lijkt jou dit een mooie stap om je Google Ads account naar een hoger niveau te tillen? Neem dan contact met ons op!
Tags: winst meten, winst google ads, winstmarge
Met onze data-gedreven aanpak en focus op meetbare resultaten zorgen we ervoor dat jouw marketingbudget maximaal rendeert. Of het nu gaat om campagnes, slimme optimalisaties of baanbrekende innovaties met A.I., wij leveren bewezen impact. Kies voor een team dat jouw groeiambities begrijpt en samenwerkt als verlengstuk van jouw organisatie. Samen maken we online succes waar.
Wij zijn online marketing 'vakidioten', echte 'nerds'. Wij volgen alle ontwikkelingen op de voet. Ontdek wie wij zijn, waar we voor staan en wat ons bijzonder maakt.
Wij ben jij?
Willemsplein 44-2
6811 KD Arnhem
Parkeren
dofollow BV
KVK 88435016
IBAN NL11 KNAB
0254 8654 61
BTW NL864624189B01