{"id":8908,"date":"2026-05-08T14:12:36","date_gmt":"2026-05-08T12:12:36","guid":{"rendered":"https:\/\/www.htt.it\/?p=8908"},"modified":"2026-05-09T14:29:11","modified_gmt":"2026-05-09T12:29:11","slug":"ga4-ecommerce-setup-events-conversions-server-side-tracking","status":"publish","type":"post","link":"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/","title":{"rendered":"GA4 ecommerce setup: Events, Conversions and Data That Actually Drives Growth"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><\/p>\n<\/blockquote>\n\n\n\n\n<!-- SECTION -->\n<section  class=\"   whitesection\" style=\"\">\n    <div class=\"testo-colonna-centrale htt-generic-text\">\n        <div class=\"htt-container\">\n            <article class=\"htt-article htt-article--ga4-ecommerce\" lang=\"en\" role=\"article\" aria-labelledby=\"ga4-ecommerce-title\">\n<header class=\"htt-article__header\" aria-labelledby=\"ga4-ecommerce-title\">\n<p class=\"htt-article__eyebrow\" aria-label=\"Article category\">Web Analytics &amp; Ecommerce<\/p>\n<h2 id=\"ga4-ecommerce-title\" class=\"htt-article__title\">GA4 for ecommerce: event setup, conversions and the data that matters.<\/h2>\n<p class=\"htt-article__subtitle\">\n      Having GA4 installed does not automatically mean it is configured properly.<br \/>\n      For an ecommerce business, data quality depends on precise events, a structured dataLayer, conversions connected to Google Ads and tracking that can withstand privacy restrictions.\n    <\/p>\n<\/header>\n<section class=\"htt-article__answer\" aria-labelledby=\"answer-first-ga4\">\n<h2 id=\"answer-first-ga4\">In summary<\/h2>\n<p>    GA4 measures interactions through <strong>events and parameters<\/strong>.<br \/>\n    For an ecommerce business, this means tracking cannot be treated as a standard configuration: it must be designed around the purchase funnel, the dataLayer, conversion quality and integration with Google Ads.<br \/>\n    A GA4 property that is installed but not configured correctly produces numbers that look plausible but lead to wrong decisions on campaigns, budget, products and strategy.<br \/>\n  <\/section>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.htt.it\/wp-content\/uploads\/2026\/05\/analytics-command-center-300x167.webp\" alt=\"ecommerce analytics AI + attribution + multi-channel + decision-making\" width=\"300\" height=\"167\" class=\"aligncenter size-medium wp-image-8835\" srcset=\"https:\/\/www.htt.it\/wp-content\/uploads\/2026\/05\/analytics-command-center-300x167.webp 300w, https:\/\/www.htt.it\/wp-content\/uploads\/2026\/05\/analytics-command-center-1024x572.webp 1024w, https:\/\/www.htt.it\/wp-content\/uploads\/2026\/05\/analytics-command-center.webp 1600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<nav class=\"htt-article__toc\" aria-label=\"Article index\">\n<p class=\"htt-article__toc-title\">Index<\/p>\n<ol>\n<li><a href=\"#modello-dati\">GA4 for ecommerce: why configuration makes the difference<\/a><\/li>\n<li><a href=\"#prerequisiti\">Prerequisites before configuring GA4<\/a><\/li>\n<li><a href=\"#eventi-ecommerce\">The essential ecommerce events<\/a><\/li>\n<li><a href=\"#purchase-datalayer\">The dataLayer for the purchase event<\/a><\/li>\n<li><a href=\"#conversioni-ga4\">Conversions and Google Ads<\/a><\/li>\n<li><a href=\"#server-side\">Server-side tracking<\/a><\/li>\n<li><a href=\"#data-studio\">Ecommerce reports in Data Studio<\/a><\/li>\n<li><a href=\"#errori-ga4\">Common errors<\/a><\/li>\n<li><a href=\"#checklist-ga4\">Final checklist<\/a><\/li>\n<\/ol>\n<\/nav>\n<section id=\"ga4-stats\" class=\"ga4-stats\" aria-labelledby=\"ga4-stats-title\">\n<h2 class=\"ga4-stats__title\" id=\"ga4-stats-title\">GA4 and ecommerce tracking: the numbers that matter<\/h2>\n<div class=\"ga4-stats__grid\">\n<div class=\"ga4-stat ga4-stat--dark\">\n<div class=\"ga4-stat__number\">20\u201340<span>%<\/span><\/div>\n<div class=\"ga4-stat__label\">of ecommerce conversions are not tracked by client-side GA4 because of ad blockers and browser restrictions<\/div>\n<div class=\"ga4-stat__source\">IAB State of Data \/ Industry consensus, 2025<\/div>\n<\/p><\/div>\n<div class=\"ga4-stat\">\n<div class=\"ga4-stat__number\">31<span>%<\/span><\/div>\n<div class=\"ga4-stat__label\">of global users use an ad blocker that completely prevents GA4 scripts from loading<\/div>\n<div class=\"ga4-stat__source\">Statista \/ Seresa analysis, 2026<\/div>\n<\/p><\/div>\n<div class=\"ga4-stat\">\n<div class=\"ga4-stat__number\">+37<span>%<\/span><\/div>\n<div class=\"ga4-stat__label\">of revenue reported in GA4 after implementing server-side tracking on a real ecommerce site<\/div>\n<div class=\"ga4-stat__source\">Stape Case Study, February 2026<\/div>\n<\/p><\/div>\n<div class=\"ga4-stat\">\n<div class=\"ga4-stat__number\">73<span>%<\/span><\/div>\n<div class=\"ga4-stat__label\">of \u201cworking\u201d GA4 accounts silently lose 30\u201340% of conversion data without knowing it<\/div>\n<div class=\"ga4-stat__source\">SR Analytics audit on 147 implementations, 2025<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div style=\"background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:1.25rem 1.5rem;margin-bottom:12px\">\n<p style=\"font-size:13px;font-weight:600;color:#161616;margin:0 0 1rem\">Causes of data loss in GA4 ecommerce \u2014 estimated impact<\/p>\n<div class=\"ga4-bar\">\n<div class=\"ga4-bar__label\"><span>Ad blockers (complete GA4 script blocking)<\/span><span style=\"font-weight:600\">31%<\/span><\/div>\n<div class=\"ga4-bar__track\">\n<div class=\"ga4-bar__fill\" style=\"width:31%\"><\/div>\n<\/div><\/div>\n<div class=\"ga4-bar\">\n<div class=\"ga4-bar__label\"><span>Cookie rejection (without Consent Mode v2)<\/span><span style=\"font-weight:600\">40\u201360%<\/span><\/div>\n<div class=\"ga4-bar__track\">\n<div class=\"ga4-bar__fill\" style=\"width:60%\"><\/div>\n<\/div><\/div>\n<div class=\"ga4-bar\">\n<div class=\"ga4-bar__label\"><span>Safari ITP (cookies deleted after 7 days)<\/span><span style=\"font-weight:600\">25% traffic<\/span><\/div>\n<div class=\"ga4-bar__track\">\n<div class=\"ga4-bar__fill\" style=\"width:25%\"><\/div>\n<\/div><\/div>\n<div class=\"ga4-bar\">\n<div class=\"ga4-bar__label\"><span>Payment gateway redirects (PayPal, Stripe)<\/span><span style=\"font-weight:600\">variable<\/span><\/div>\n<div class=\"ga4-bar__track\">\n<div class=\"ga4-bar__fill ga4-bar--light\" style=\"width:20%\"><\/div>\n<\/div><\/div>\n<div class=\"ga4-bar\">\n<div class=\"ga4-bar__label\"><span>dataLayer and GTM configuration errors<\/span><span style=\"font-weight:600\">variable<\/span><\/div>\n<div class=\"ga4-bar__track\">\n<div class=\"ga4-bar__fill ga4-bar--light\" style=\"width:15%\"><\/div>\n<\/div><\/div>\n<p style=\"font-size:11px;color:#9ca3af;margin:.75rem 0 0\">Sources: Statista 2026 \u00b7 IAB State of Data 2025 \u00b7 Stape Case Study Feb. 2026 \u00b7 SR Analytics 2025 \u00b7 WebKit\/Apple Documentation 2024<\/p>\n<\/p><\/div>\n<div style=\"display:grid;grid-template-columns:1fr 1fr;gap:12px\">\n<div class=\"ga4-stat\">\n<div class=\"ga4-stat__number\">5\u201310<span>%<\/span><\/div>\n<div class=\"ga4-stat__label\">is the acceptable discrepancy between CRM orders and GA4 conversions with a correct configuration<\/div>\n<div class=\"ga4-stat__source\">Industry benchmark, 2025<\/div>\n<\/p><\/div>\n<div class=\"ga4-stat\">\n<div class=\"ga4-stat__number\">23\u201334<span>%<\/span><\/div>\n<div class=\"ga4-stat__label\">improvement in data completeness typically achieved after implementing server-side tracking<\/div>\n<div class=\"ga4-stat__source\">SR Analytics \/ Stape aggregate data, 2025<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<p class=\"ga4-stats__note\">\n      All data is updated to 2025\u20132026 and based on verifiable sources.<br \/>\n      The acceptable 5\u201310% discrepancy between GA4 and CRM assumes Consent Mode v2 is correctly configured, server-side tracking is active and there are no duplicated events. Without these requirements, the typical discrepancy is 30\u201350%.\n    <\/p>\n<\/section>\n<section id=\"modello-dati\" class=\"htt-article__section\" aria-labelledby=\"modello-dati-title\">\n<h2 id=\"modello-dati-title\">GA4 for ecommerce: why configuration makes the difference<\/h2>\n<p>    GA4 measures everything through events. Every interaction \u2014 a product view, an Add to Cart click, a completed purchase \u2014 is an event with customisable parameters. This flexibility is the platform\u2019s main strength, but it is also the reason why a superficial setup produces wrong data.<\/p>\n<p>    For an ecommerce business, data quality depends on how precisely events, product parameters, economic values and transaction information are sent.<br \/>\n    It is not enough for GA4 to <em>work<\/em>: it must <em>work in the right way<\/em>, with the correct dataLayer, connected conversions and tracking that can withstand browser restrictions.<\/p>\n<aside class=\"htt-article__note\" role=\"note\" aria-label=\"Note on ecommerce tracking\">\n      Ecommerce tracking in GA4 is native, but it still requires a<br \/>\n      <strong>properly structured dataLayer<\/strong> to produce reliable data.<br \/>\n      <strong>An incomplete dataLayer<\/strong> does not generate visible errors:<br \/>\n      <strong>it simply generates plausible but wrong data<\/strong>, which leads to wrong decisions.<br \/>\n    <\/aside>\n<p>    In the audit activities we carry out on GA4 ecommerce accounts, the most frequent errors concern missing critical events, incomplete parameters and duplicated purchases. The most common case is the <code>purchase<\/code> event without a complete <code>items<\/code> array, which makes it impossible to analyse sales by category, SKU, brand or variant.<br \/>\n  <\/section>\n<section id=\"prerequisiti\" class=\"htt-article__section\" aria-labelledby=\"prerequisiti-title\">\n<h2 id=\"prerequisiti-title\">Prerequisites: what you need before touching GA4<\/h2>\n<p>    Before configuring any event, three elements must be in place.<br \/>\n    Skipping one of these steps is the most common cause of setups that appear to work but produce incomplete or unreliable data.<\/p>\n<section class=\"htt-article__subsection\" aria-labelledby=\"gtm-title\">\n<h3 id=\"gtm-title\">1. Google Tag Manager installed correctly<\/h3>\n<p>      Google Tag Manager is the tool used to manage tracking logic without changing the site code every time.<br \/>\n      For an ecommerce business it is essential: it allows GA4 events to be triggered in response to specific user actions, configurations to be tested in preview mode and tracking logic to remain separate from site development.<\/p>\n<p class=\"htt-article__check\">Check that the GTM container is present both in the page <code>&lt;head&gt;<\/code> and <code>&lt;body&gt;<\/code>.<\/p>\n<\/section>\n<section class=\"htt-article__subsection\" aria-labelledby=\"consent-mode-title\">\n<h3 id=\"consent-mode-title\">2. Consent Mode v2 configured<\/h3>\n<p>      With the evolution of privacy regulations and Google policies for the EEA, consent management has become a structural part of tracking.<br \/>\n      Consent Mode v2 allows the user\u2019s consent status to be communicated to Google and, where possible, helps preserve measurement quality through aggregated and modelled data.<\/p>\n<aside class=\"htt-article__warning\" role=\"note\" aria-label=\"Warning on Consent Mode v2\">\n        Without Consent Mode v2 correctly configured, GA4 data for a European ecommerce site can be significantly incomplete, especially when a relevant share of users rejects analytics or marketing cookies.<br \/>\n      <\/aside>\n<p>      To explore the topic further, we recommend reading our guide on<br \/>\n      <a href=\"\/consent-mode-v2\/\" aria-label=\"Read the HT&amp;T guide on Consent Mode v2\">Consent Mode v2<\/a>,<br \/>\n      which is the starting point before any advanced GA4 configuration.<br \/>\n    <\/section>\n<blockquote class=\"htt-quote\" aria-label=\"Quote by Giacomo Boldrini\">\n<p class=\"htt-quote__text\">&#8220;Consent Mode v2 is the difference between having data you can use to make decisions and having numbers that only tell half the story. In Europe, ignoring it means optimising campaigns while wearing a blindfold.&#8221;<\/p>\n<footer class=\"htt-quote__author\">\n        <span class=\"htt-quote__name\">Giacomo Boldrini<\/span><br \/>\n        <span class=\"htt-quote__role\">Web Analytics &amp; CMP Specialist, HT&amp;T Consulting<\/span><br \/>\n      <\/footer>\n<\/blockquote>\n<section class=\"htt-article__subsection\" aria-labelledby=\"datalayer-title\">\n<h3 id=\"datalayer-title\">3. Ecommerce dataLayer on the site<\/h3>\n<p>      The dataLayer is the communication layer between the website and Google Tag Manager.<br \/>\n      For ecommerce tracking, the site must populate the dataLayer with product and transaction information at the right moment:<br \/>\n      product view, add to cart, checkout, payment and completed purchase.<\/p>\n<p>      If the site uses Shopify, WooCommerce or Magento, there are plugins, apps and extensions that can automatically populate the dataLayer.<br \/>\n      If the site is custom-built, this work must be carried out by developers following GA4 specifications.<br \/>\n    <\/section>\n<\/section>\n<section id=\"eventi-ecommerce\" class=\"htt-article__section\" aria-labelledby=\"eventi-ecommerce-title\">\n<h2 id=\"eventi-ecommerce-title\">The essential ecommerce events in GA4<\/h2>\n<p>    GA4 defines a set of recommended ecommerce events that cover the entire purchase funnel.<br \/>\n    Configuring all of them is not mandatory, but the more events are present, the more complete the reading of user behaviour<br \/>\n    and performance will be.<\/p>\n<p>    This approach is especially important in a <strong>zero-click search and AI<\/strong> scenario,<br \/>\n    where data quality becomes the real competitive advantage. We also discuss this in the article<br \/>\n    <a href=\"\/zero-click-search-ai-accuratezza-elimina-click\/\" aria-label=\"Learn more about zero-click search and AI\">Zero-Click Search: AI is eating clicks<\/a>.<\/p>\n<ul>\n<li><strong>view_item<\/strong> \u2014 product view<\/li>\n<li><strong>add_to_cart<\/strong> \u2014 add to cart<\/li>\n<li><strong>begin_checkout<\/strong> \u2014 checkout start<\/li>\n<li><strong>purchase<\/strong> \u2014 completed purchase<\/li>\n<\/ul>\n<p>    The difference compared to the past is not in the events themselves, but in how precisely they are populated.<br \/>\n    In GA4, tracking is not enough: you need to track well.<br \/>\n  <\/section>\n<section id=\"purchase-datalayer\" class=\"htt-article__section\" aria-labelledby=\"purchase-datalayer-title\">\n<h2 id=\"purchase-datalayer-title\">The dataLayer for the purchase event<\/h2>\n<p>    The <code>purchase<\/code> event is the most important one and requires the most precise configuration.<br \/>\n    Here is the correct dataLayer structure:<\/p>\n<pre aria-label=\"Purchase event dataLayer structure\"><code>\r\nwindow.dataLayer = window.dataLayer || [];\r\ndataLayer.push({ ecommerce: null });\r\ndataLayer.push({\r\n  event: 'purchase',\r\n  ecommerce: {\r\n    transaction_id: 'T_12345',\r\n    value: 129.90,\r\n    tax: 23.62,\r\n    shipping: 4.90,\r\n    currency: 'EUR',\r\n    coupon: 'SUMMER10',\r\n    items: [{\r\n      item_id: 'SKU_001',\r\n      item_name: 'Product Name',\r\n      item_category: 'Category',\r\n      item_brand: 'Brand',\r\n      price: 64.95,\r\n      quantity: 2\r\n    }]\r\n  }\r\n});\r\n    <\/code><\/pre>\n<aside class=\"htt-article__warning\" role=\"note\">\n      Many configurations forget to reset the dataLayer (<code>ecommerce: null<\/code>).<br \/>\n      Without this step, parameters from the previous event can contaminate the following one, producing duplicated or incorrect data.<br \/>\n    <\/aside>\n<p>    Always include the <code>currency<\/code> parameter, even if you sell in only one currency.<br \/>\n    GA4 uses it to normalise data in aggregate metrics and for multi-country analyses.<br \/>\n  <\/section>\n<section id=\"conversioni-ga4\" class=\"htt-article__section\" aria-labelledby=\"conversioni-ga4-title\">\n<h2 id=\"conversioni-ga4-title\">Configuring conversions in GA4: which events to mark and why<\/h2>\n<p>  In GA4, any event can be marked as a conversion. But this does not mean that every event should be.<br \/>\n  Marking too many conversions makes reports confusing and reduces the quality of decision-making.<\/p>\n<p>  The right conversions for an ecommerce business:<\/p>\n<ul>\n<li><strong>purchase<\/strong> \u2014 main conversion<\/li>\n<li><strong>begin_checkout<\/strong> \u2014 purchase intent<\/li>\n<li><strong>add_to_cart<\/strong> \u2014 micro-conversion<\/li>\n<li><strong>sign_up<\/strong> \u2014 registered users<\/li>\n<li><strong>generate_lead<\/strong> \u2014 for B2B flows<\/li>\n<\/ul>\n<aside class=\"htt-article__warning\">\n    Do not mark events such as <code>view_item<\/code> or <code>view_item_list<\/code> as conversions.<br \/>\n    They are high-volume events that make ROAS unusable in campaigns.<br \/>\n  <\/aside>\n<h3>Connecting GA4 to Google Ads<\/h3>\n<p>  The connection between GA4 and Google Ads allows conversions to be imported directly into campaigns,<br \/>\n  enabling strategies such as Smart Bidding, Target ROAS and Target CPA.<\/p>\n<ol>\n<li>Configure purchase as a primary conversion in GA4<\/li>\n<li>Connect GA4 to Google Ads<\/li>\n<li>Import the purchase conversion<\/li>\n<li>Set it as primary<\/li>\n<li>Disable any duplicated conversions<\/li>\n<\/ol>\n<p>  This is a critical point, especially today, with the evolution of automated campaigns as explained in the article<br \/>\n  <a href=\"\/google-ai-max-shopping-travel\/\">Google AI Max for Shopping and Travel<\/a>.<\/p>\n<p class=\"htt-article__check\">\n    If you have both a Google Ads tag and a conversion imported from GA4, you are probably counting every purchase twice.\n  <\/p>\n<\/section>\n<section id=\"costi-social-ga4\" class=\"htt-article__section\" aria-labelledby=\"costi-social-ga4-title\">\n<h2 id=\"costi-social-ga4-title\">Beyond Google: importing cost data from Meta, TikTok and Pinterest<\/h2>\n<p>  One of the most important updates for those using GA4 in ecommerce is the ability to import cost data from non-Google platforms as well. It is no longer necessary to rely only on manual CSV uploads or paid third-party connectors to get an initial view of cross-channel ROAS.<\/p>\n<p>  GA4 can automatically import data such as <strong>clicks, impressions and costs<\/strong> from platforms like Meta, TikTok and Pinterest, enabling a more integrated view of media performance.<\/p>\n<aside class=\"htt-article__note\" role=\"note\" aria-label=\"Advantage of importing cost data in GA4\">\n    The advantage is operational: you can view the <strong>ROAS<\/strong> and <strong>CPA<\/strong> of Meta campaigns alongside Google Ads results in GA4 acquisition reports.<br \/>\n    This makes it easier to compare channels, budgets and results in a single analytics environment.<br \/>\n  <\/aside>\n<p>  The key requirement is rigorous URL tagging through <strong>UTM parameters<\/strong>.<br \/>\n  Without a consistent UTM taxonomy, GA4 cannot correctly match cost data received from social APIs with sessions recorded on the website.<\/p>\n<p class=\"htt-article__check\">\n    Before importing cost data from Meta, TikTok or Pinterest, define a stable naming convention for <code>utm_source<\/code>, <code>utm_medium<\/code>, <code>utm_campaign<\/code>, <code>utm_content<\/code> and <code>utm_term<\/code>. Otherwise, the report will be technically populated but strategically unreliable.\n  <\/p>\n<\/section>\n<section id=\"enhanced-ecommerce\" class=\"htt-article__section\" aria-labelledby=\"enhanced-ecommerce-title\">\n<h2 id=\"enhanced-ecommerce-title\">Enhanced Ecommerce: the advanced parameters that make the difference<\/h2>\n<p>  GA4 supports a range of additional parameters for ecommerce events that enable much more granular analysis.<br \/>\n  Not every site implements them, but these are the parameters that turn GA4 from a counting tool into a business analysis tool.<\/p>\n<p>  Advanced parameters help answer operational questions: which product lists generate the most sales?<br \/>\n  Which categories attract traffic but do not convert? Which brands have a good add-to-cart rate?<br \/>\n  Where does the purchase journey actually break down?<\/p>\n<div class=\"htt-table-wrap\" tabindex=\"0\" role=\"region\" aria-labelledby=\"parametri-ga4-title\">\n<h3 id=\"parametri-ga4-title\">The parameters we use systematically<\/h3>\n<table class=\"htt-table\">\n<thead>\n<tr>\n<th scope=\"col\">Parameter<\/th>\n<th scope=\"col\">What it is used for<\/th>\n<th scope=\"col\">Why it is useful<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>item_id<\/code><\/td>\n<td>Identifies the SKU or product ID.<\/td>\n<td>Enables precise product-level analysis and reconciliation with CRM, ERP or product feed data.<\/td>\n<\/tr>\n<tr>\n<td><code>item_name<\/code><\/td>\n<td>Indicates the product name.<\/td>\n<td>Makes reports readable for marketing, ecommerce managers and leadership teams.<\/td>\n<\/tr>\n<tr>\n<td><code>item_brand<\/code><\/td>\n<td>Identifies the product brand.<\/td>\n<td>Useful for multi-brand ecommerce sites or marketplaces with assortment strategies.<\/td>\n<\/tr>\n<tr>\n<td><code>item_category<\/code><\/td>\n<td>Indicates the main product category.<\/td>\n<td>Helps analyse performance, margin and conversions by product area.<\/td>\n<\/tr>\n<tr>\n<td><code>item_category2<\/code><\/td>\n<td>Indicates a subcategory.<\/td>\n<td>Enables deeper analysis on complex ecommerce taxonomies.<\/td>\n<\/tr>\n<tr>\n<td><code>item_variant<\/code><\/td>\n<td>Indicates variant, size, colour or configuration.<\/td>\n<td>Helps understand which variants generate interest and which ones block the purchase.<\/td>\n<\/tr>\n<tr>\n<td><code>item_list_name<\/code><\/td>\n<td>Indicates the list from which the interaction originated.<\/td>\n<td>Measures the effectiveness of homepages, categories, search results, carousels and editorial sections.<\/td>\n<\/tr>\n<tr>\n<td><code>index<\/code><\/td>\n<td>Indicates the product position within the list.<\/td>\n<td>Helps understand whether placement influences clicks, cart additions and conversions.<\/td>\n<\/tr>\n<tr>\n<td><code>coupon<\/code><\/td>\n<td>Records the promotional code used.<\/td>\n<td>Useful for assessing the real impact of promotions and margin cannibalisation.<\/td>\n<\/tr>\n<tr>\n<td><code>discount<\/code><\/td>\n<td>Records the discount applied to the product.<\/td>\n<td>Helps read revenue not only as sales volume, but as quality of sales.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<aside class=\"htt-article__note\" role=\"note\" aria-label=\"Example insight from item list name parameter\">\n    In a fashion ecommerce project, implementing the <code>item_list_name<\/code> parameter can reveal that a relevant share of conversions does not start from the main categories, but from editorial lists such as \u201cNew arrivals\u201d, \u201cBest sellers\u201d or \u201cFeatured\u201d.<br \/>\n    This kind of insight can materially change the homepage merchandising strategy.<br \/>\n  <\/aside>\n<p>  This level of detail is also essential when building advanced dashboards.<br \/>\n  Without complete ecommerce parameters, tools such as Data Studio (formerly Looker Studio) risk displaying data that is visually clean but weak from a decision-making perspective. We also discuss this in our guide to <a href=\"https:\/\/www.htt.it\/en\/data-visualization-simplify-data-accelerate-decisions\/\" aria-label=\"Learn more about data visualization for business\">data visualization for business<\/a>.<br \/>\n<\/section>\n<section id=\"server-side\" class=\"htt-article__section\" aria-labelledby=\"server-side-title\">\n<h2 id=\"server-side-title\">Server-side tracking: why it is essential<\/h2>\n<p>  Client-side tracking has a structural limitation: it gets blocked.<br \/>\n  Ad blockers, privacy-first browsers and cookie restrictions reduce data quality.<\/p>\n<p>  Server-side tracking moves data collection from the browser to the server, making tracking more reliable and complete.<\/p>\n<p>  This is perfectly aligned with the shift of digital marketing towards AI-driven models, as also explained in the article<br \/>\n  <a href=\"\/zero-click-search-ai-accuratezza-elimina-click\/\">Zero-Click Search: AI is eating clicks<\/a>.<\/p>\n<ul>\n<li>more complete conversion data<\/li>\n<li>better signal quality for Google Ads<\/li>\n<li>greater resilience to privacy restrictions<\/li>\n<\/ul>\n<p>  It is no longer an advanced solution: it is the new baseline for anyone who wants to drive performance.<\/p>\n<p>  We covered the <a href=\"\/importanza-del-tracciamento-server-side-analisi-dati-online\/\" aria-label=\"Read the complete guide to server-side tracking\">complete server-side tracking configuration<\/a> in a dedicated article, with technical implementation, concrete use cases and measurable results on real ecommerce projects.<br \/>\n  We also explain what <a href=\"https:\/\/stape.io\/?pt=lmvgfwxs&#038;rs=site&#038;rr=eu\">Stape<\/a> is.<br \/>\n<\/section>\n<section id=\"data-studio\" class=\"htt-article__section\" aria-labelledby=\"data-studio-title\">\n<h2 id=\"data-studio-title\">Data Studio: the 3 ecommerce reports to build<\/h2>\n<p>GA4 offers useful native reports, but for an ecommerce business the most important data is easier to read in Data Studio, where it is possible to combine different sources, build custom visualisations and share updated dashboards with marketing, leadership and ecommerce teams.<\/p>\n<section class=\"htt-article__subsection\" aria-labelledby=\"report-funnel-title\">\n<h3 id=\"report-funnel-title\">Report 1 \u2014 Purchase funnel performance<\/h3>\n<p>    The first report should show the full funnel: <code>view_item<\/code> \u2192 <code>add_to_cart<\/code> \u2192 <code>begin_checkout<\/code> \u2192 <code>purchase<\/code>, with the conversion rate at each step and the variation compared with the previous period.<\/p>\n<p>    This report answers the most important question for an ecommerce business:<br \/>\n    <strong>where are we losing users?<\/strong><\/p>\n<ul>\n<li><strong>Main metric:<\/strong> conversion rate by funnel step.<\/li>\n<li><strong>Segmentation:<\/strong> device, acquisition channel, product category.<\/li>\n<li><strong>Automatic alert:<\/strong> when the <code>begin_checkout \u2192 purchase<\/code> rate drops below the threshold.<\/li>\n<\/ul>\n<\/section>\n<section class=\"htt-article__subsection\" aria-labelledby=\"report-prodotto-title\">\n<h3 id=\"report-prodotto-title\">Report 2 \u2014 Category and product analysis<\/h3>\n<p>    The second report should show product performance: views, add-to-cart rate, generated revenue, refund rate and category trends.<\/p>\n<p>    With GA4 Enhanced Ecommerce, these metrics can be read by category, brand, variant, list position and traffic source.<br \/>\n    This is the report that helps distinguish a traffic problem from a product, pricing or product-page problem.<\/p>\n<ul>\n<li><strong>Main metric:<\/strong> revenue, add-to-cart rate and product conversion rate.<\/li>\n<li><strong>Segmentation:<\/strong> category, brand, variant, device, source\/medium.<\/li>\n<li><strong>Automatic alert:<\/strong> when a high-traffic category has an add-to-cart rate below the site average.<\/li>\n<\/ul>\n<aside class=\"htt-article__note\" role=\"note\" aria-label=\"Example insight from product report\">\n      In an ecommerce business, this report can show that a category with a high volume of visits has an<br \/>\n      <strong>add-to-cart rate significantly below the site average<\/strong>. In that case, the problem is not necessarily acquisition: it may depend on price, assortment, product-page content, size availability or image quality.<br \/>\n    <\/aside>\n<\/section>\n<section class=\"htt-article__subsection\" aria-labelledby=\"report-attribution-title\">\n<h3 id=\"report-attribution-title\">Report 3 \u2014 Attribution and conversion channels<\/h3>\n<p>    The third report should show the contribution of channels to conversions, using GA4\u2019s data-driven attribution model.<br \/>\n    This makes it possible to evaluate the real weight of touchpoints in the purchase journey, not just the last click before conversion.<\/p>\n<ul>\n<li><strong>Main metric:<\/strong> conversions, revenue and attributed value by channel.<\/li>\n<li><strong>Segmentation:<\/strong> paid search, organic search, paid social, email, direct, referral.<\/li>\n<li><strong>Automatic alert:<\/strong> when a channel grows in cost but not in attributed value.<\/li>\n<\/ul>\n<p class=\"htt-article__check\">\n      Use GA4\u2019s data-driven attribution model instead of last-click only.<br \/>\n      Last-click tends to overvalue paid search and undervalue higher-funnel channels such as display, video, social and editorial activities.\n    <\/p>\n<\/section>\n<p>  This approach is especially useful when an ecommerce business invests in advertising, SEO and content together.<br \/>\n  In a context where organic traffic is increasingly influenced by AI Overview and zero-click search, the dashboard must measure not only the last click, but the overall contribution of touchpoints.<br \/>\n  On this topic, you can also read the article<br \/>\n  <a href=\"\/zero-click-search-ai-accuratezza-elimina-click\/\" aria-label=\"Read the article on zero-click search and artificial intelligence\"> Zero-Click Search: AI is eating clicks<\/a>.<br \/>\n<\/section>\n<section id=\"errori-ga4\" class=\"htt-article__section\" aria-labelledby=\"errori-ga4-title\">\n<h2 id=\"errori-ga4-title\">The 6 most common errors in GA4 ecommerce configuration<\/h2>\n<p>  After analysing numerous ecommerce accounts, these are the errors we encounter most often and the ones with the greatest impact on data quality.<\/p>\n<section aria-labelledby=\"errore1\">\n<h3 id=\"errore1\">Error 1 \u2014 Purchase event triggered multiple times<\/h3>\n<p>    The purchase tag fires every time the order confirmation page is reloaded.<br \/>\n    The result is inflated conversion and revenue numbers.<\/p>\n<p class=\"htt-article__check\">\n      Use <code>transaction_id<\/code> for deduplication, or check in GTM that the event is sent only once.\n    <\/p>\n<\/section>\n<section aria-labelledby=\"errore2\">\n<h3 id=\"errore2\">Error 2 \u2014 Missing or incorrect currency parameter<\/h3>\n<p>    Without currency, GA4 cannot normalise values correctly.<br \/>\n    In multi-currency environments, this makes revenue metrics unreliable.<br \/>\n  <\/section>\n<section aria-labelledby=\"errore3\">\n<h3 id=\"errore3\">Error 3 \u2014 dataLayer not reset between events<\/h3>\n<p>    Failing to reset the dataLayer leads to data contamination between consecutive events, especially when multiple products are added to the cart in sequence.<br \/>\n  <\/section>\n<section aria-labelledby=\"errore4\">\n<h3 id=\"errore4\">Error 4 \u2014 Internal traffic not excluded<\/h3>\n<p>    Traffic from the team (marketing, development, office staff) alters metrics,<br \/>\n    especially on ecommerce sites with medium-low traffic.<\/p>\n<p>\n      1. Define Internal Traffic (Identify the IP)<br \/>\n      Administration &gt; Property &gt; Data Streams &gt; Select web stream &gt;<br \/>\n      Configure tag settings &gt; Define internal traffic &gt; Create &gt;<br \/>\n      Assign a name (e.g. &#8220;Office&#8221;), keeping <code>traffic_type<\/code> as internal &gt;<br \/>\n      Enter the IP address to exclude &gt; Create\n    <\/p>\n<div>\n      2. Activate the Data Filter &gt; Administration &gt; Data Filters &gt;<br \/>\n      Click the default Internal Traffic filter &gt;<br \/>\n      Select Active under filter state &gt; Save\n    <\/div>\n<p>    For teams working remotely, IP exclusion is not always enough.<br \/>\n    In these cases, it is possible to use a GTM variable that marks internal traffic based on a verifiable condition, such as the logged-in user\u2019s email domain, an internal technical cookie, a private URL parameter or an account-area rule.<\/p>\n<p class=\"htt-article__warning\">\n      The goal is not to theoretically remove all \u201cnon-customer\u201d traffic, but to reduce the impact of sessions generated by marketing, development, customer care and site administrators, especially during tests, launches, promotions and checkout changes.\n    <\/p>\n<\/section>\n<section aria-labelledby=\"errore5\">\n<h3 id=\"errore5\">Error 5 \u2014 Bot sessions not filtered<\/h3>\n<p>\n      Although GA4 automatically excludes known bots through IAB\/ABC lists, many custom crawlers or automated systems are not detected.<br \/>\n      In these cases, additional controls are required, for example through Google Tag Manager, IP filters, server-side validations or custom rules.\n    <\/p>\n<\/section>\n<section aria-labelledby=\"errore6\">\n<h3 id=\"errore6\">Error 6 \u2014 Inconsistent UTM parameters<\/h3>\n<p>\n      With native social cost integration, using <code>utm_source=fb<\/code> in one campaign and <code>utm_source=facebook<\/code> in another is no longer just an aesthetic issue: it breaks GA4\u2019s automatic ROAS calculation.\n    <\/p>\n<\/section>\n<\/section>\n<blockquote class=\"htt-quote\" aria-label=\"Quote by Giuseppe Pane\">\n<p class=\"htt-quote__text\">\n    &#8220;The most common issue we find in GA4 audits is false confidence.<br \/>\n    The account appears to work, the numbers are there, but nobody has ever verified whether those numbers reflect reality.<br \/>\n    A purchase counted twice creates inflated ROAS and wrong decisions.&#8221;\n  <\/p>\n<footer class=\"htt-quote__author\">\n    <span class=\"htt-quote__name\">Giuseppe Pane<\/span><br \/>\n    <span class=\"htt-quote__role\">Web Analytics &amp; Data Specialist, HT&amp;T Consulting<\/span><br \/>\n  <\/footer>\n<\/blockquote>\n<section id=\"decisionale\" class=\"htt-article__section\" aria-labelledby=\"decisionale-title\">\n<h2 id=\"decisionale-title\">Not a technical person? Here is what you need to know<\/h2>\n<p>  This guide is intentionally technical, but not everyone needs to implement it directly.<br \/>\n  If you are a marketing manager, entrepreneur or ecommerce manager,<br \/>\n  <strong>the real value is understanding what to check, not writing code<\/strong>.<\/p>\n<h3>What you need to understand, even without touching code<\/h3>\n<ul>\n<li>\n      GA4 does not work automatically on its own.<br \/>\n      It requires active configuration through GTM and dataLayer.<br \/>\n      If nobody explicitly configured it, the data you are reading is probably incomplete.\n    <\/li>\n<li>\n      Data will never match your CRM 100%, but discrepancies should remain under control.<br \/>\n      If there are major gaps, there is a configuration problem.\n    <\/li>\n<li>\n      Google Ads campaigns optimise based on conversion data.<br \/>\n      Wrong data means campaigns optimise towards the wrong objective:<br \/>\n      <strong>wrong data = wasted budget<\/strong>.\n    <\/li>\n<li>\n      Consent Mode v2 is mandatory in Europe.<br \/>\n      If your website does not have it configured, you are collecting data in a non-compliant way.\n    <\/li>\n<\/ul>\n<p>  If this is not clear, it is worth exploring <a href=\"https:\/\/www.htt.it\/en\/services\/web-analytics\/\">web analytics<\/a> as a strategic business lever, not just a technical activity.<\/p>\n<h3>What should be delegated<\/h3>\n<p>  GA4 ecommerce configuration requires expertise in:<\/p>\n<ul>\n<li>Google Tag Manager<\/li>\n<li>dataLayer<\/li>\n<li>ecommerce platforms (Shopify, Magento, WooCommerce)<\/li>\n<li>Google Ads and Social Ads integrations<\/li>\n<\/ul>\n<p>  Without experience, the risk is not that it will fail.<br \/>\n  The risk is that <strong>it appears to work while generating misleading data<\/strong>.<br \/>\n  And this is how many companies do not lose data:<br \/>\n  <strong>they lose margin, budget and competitiveness<\/strong>.<br \/>\n<\/section>\n<section class=\"htt-article__section htt-article__cta\" aria-labelledby=\"cta-title\">\n<h2 id=\"cta-title\">Do you have doubts about your GA4 setup?<\/h2>\n<p>  HT&amp;T Consulting is among the agencies certified on Google Marketing Platform, with experience on complex ecommerce projects and integrations between GA4, Google Ads and server-side tracking.<\/p>\n<p>  If you want to verify the quality of your data or improve campaign performance, you can request an audit:<\/p>\n<p>  <a class=\"htt-cta-button\" href=\"\/contatti\/\" aria-label=\"Request a GA4 audit\"><br \/>\n    Request a GA4 audit<br \/>\n  <\/a><br \/>\n<\/section>\n<section id=\"checklist-ga4\" class=\"htt-article__section\" aria-labelledby=\"checklist-title\">\n<h2 id=\"checklist-title\">Checklist: what to verify before going live<\/h2>\n<p>  Before considering a GA4 ecommerce setup reliable, verify these points:<\/p>\n<ul role=\"list\" aria-label=\"GA4 ecommerce configuration checklist\">\n<li>GTM installed on all pages (head + body)<\/li>\n<li>Consent Mode v2 configured and tested with active CMP<\/li>\n<li>Ecommerce dataLayer available<\/li>\n<li>dataLayer reset before every push<\/li>\n<li>Complete purchase event (transaction_id, value, currency, items)<\/li>\n<li>Purchase deduplication verified<\/li>\n<li>Complete funnel events<\/li>\n<li>Advanced parameters configured<\/li>\n<li>Purchase set as a conversion<\/li>\n<li>GA4 \u2192 Google Ads connection active<\/li>\n<li>No duplicated conversions<\/li>\n<li>Social cost data integration (Meta, TikTok, etc.) active<\/li>\n<li>Internal traffic excluded<\/li>\n<li>GTM tested across multiple browsers<\/li>\n<li>DebugView verified with a real purchase<\/li>\n<\/ul>\n<p>  If even 2\u20133 of these points are not correct, data quality is compromised.<br \/>\n  And without reliable data, no <a href=\"https:\/\/www.htt.it\/en\/services\/aeo-geo\/\">SEO, AEO, GEO<\/a>, Ads or AI strategy can truly work.<\/p>\n<p>  This is why analytics is now central to visibility in AI search engines as well, as explored in our guide <a href=\"https:\/\/www.htt.it\/en\/seo-geo-ai-brand-visibility\/\">SEO, GEO and AI<\/a>.<br \/>\n<\/section>\n<section id=\"faq-ga4-ecommerce\" class=\"htt-article__section htt-article__faq\" aria-labelledby=\"faq-ga4-ecommerce-title\">\n<h2 id=\"faq-ga4-ecommerce-title\">Frequently asked questions about GA4 ecommerce<\/h2>\n<details open=\"open\">\n<summary>Is GA4 mandatory for an ecommerce business?<\/summary>\n<p>    Universal Analytics has been discontinued and GA4 is now the reference platform for businesses using Google Analytics.<br \/>\n    It is not legally mandatory, but it is the operational standard for ecommerce businesses that want to measure sales,<br \/>\n    funnel performance and Google Ads campaigns.<br \/>\n  <\/details>\n<details open=\"open\">\n<summary>Can I use GA4 without Google Tag Manager?<\/summary>\n<p>    Yes, but it is not recommended for ecommerce.<br \/>\n    Google Tag Manager allows you to manage events, dataLayer, conversions and tests without changing site code every time.<br \/>\n    On dynamic catalogues, it is practically essential.<br \/>\n  <\/details>\n<details open=\"open\">\n<summary>How much historical data migrates from Universal Analytics to GA4?<\/summary>\n<p>    None automatically.<br \/>\n    GA4 and Universal Analytics are separate properties.<br \/>\n    Anyone who wanted to preserve historical UA data had to export it before the platform was permanently discontinued.<br \/>\n  <\/details>\n<details open=\"open\">\n<summary>How do I verify that ecommerce tracking works correctly?<\/summary>\n<p>    The most reliable method is using GA4 DebugView together with Google Tag Manager Preview mode.<br \/>\n    A complete test purchase should be performed, verifying that<br \/>\n    <code>transaction_id<\/code>, <code>value<\/code>, <code>currency<\/code> and <code>items<\/code><br \/>\n    are populated correctly.<br \/>\n  <\/details>\n<details open=\"open\">\n<summary>Is GA4 compatible with Shopify, WooCommerce and Magento?<\/summary>\n<p>    Yes, all major ecommerce platforms can integrate GA4 through apps, plugins,<br \/>\n    extensions or custom configurations.<br \/>\n    However, dataLayer quality varies significantly, and customisation is often required<br \/>\n    for advanced parameters such as<br \/>\n    <code>item_list_name<\/code>, <code>coupon<\/code> or <code>shipping_tier<\/code>.<br \/>\n  <\/details>\n<details open=\"open\">\n<summary>When does server-side tracking make sense for GA4?<\/summary>\n<p>    It makes sense when there are significant discrepancies between real orders and GA4 conversions,<br \/>\n    when the site receives relevant traffic from privacy-first browsers,<br \/>\n    or when data quality is critical for Google Ads optimisation.<br \/>\n    For medium to high-volume ecommerce businesses, server-side tracking is often a strategic choice.<br \/>\n  <\/details>\n<details open=\"open\">\n<summary>How do you connect GA4 data to Google Ads correctly?<\/summary>\n<p>    The connection is managed in GA4 through Google product links.<br \/>\n    Once connected, GA4 conversions can be imported into Google Ads and used for Smart Bidding.<br \/>\n    It is essential to avoid duplication: each action should have only one primary conversion source.<br \/>\n  <\/details>\n<details open=\"open\">\n<summary>Which GA4 events are essential for ecommerce?<\/summary>\n<p>    The minimum events are<br \/>\n    <code>view_item<\/code>, <code>add_to_cart<\/code>,<br \/>\n    <code>begin_checkout<\/code> and <code>purchase<\/code>.<br \/>\n    Additional events such as<br \/>\n    <code>view_item_list<\/code>, <code>select_item<\/code>,<br \/>\n    <code>add_shipping_info<\/code> and <code>add_payment_info<\/code><br \/>\n    provide a more complete funnel analysis.<br \/>\n  <\/details>\n<details open=\"open\">\n<summary>Why can the purchase event appear duplicated in GA4?<\/summary>\n<p>    This usually happens when the tag fires every time the thank-you page reloads,<br \/>\n    or when multiple tracking systems coexist.<br \/>\n    To prevent this, use <code>transaction_id<\/code>,<br \/>\n    verify GTM trigger conditions and check that there are no duplicated<br \/>\n    Google Ads and GA4 tags for the same conversion.<br \/>\n  <\/details>\n<details open=\"open\">\n<summary>Can GA4 replace ERP or CRM data?<\/summary>\n<p>    No.<br \/>\n    GA4 is designed to analyse behaviour, channels, funnel performance and attribution,<br \/>\n    while CRM and ERP remain the primary source for orders, revenue, margins and customers.<br \/>\n    Data will never match 100%, but large discrepancies almost always indicate a configuration issue.<br \/>\n  <\/details>\n<\/section>\n<section id=\"bibliografia-ga4\" class=\"htt-article__section htt-article__bibliography\" aria-labelledby=\"bibliografia-ga4-title\">\n<h2 id=\"bibliografia-ga4-title\">References and useful resources<\/h2>\n<p>  Technical sources and official documentation used to deepen topics such as<br \/>\n  GA4 configuration, ecommerce tracking, Consent Mode, BigQuery and server-side tagging.<\/p>\n<div class=\"htt-biblio-grid\" role=\"list\" aria-label=\"Bibliographic sources on GA4 ecommerce\">\n<article class=\"htt-biblio-card\" role=\"listitem\">\n<p class=\"htt-biblio-card__source\">Google Developers<\/p>\n<h3>Measure ecommerce<\/h3>\n<p>      Official documentation on GA4 ecommerce events, <code>items<\/code> arrays,<br \/>\n      products, promotions and revenue.<\/p>\n<p>      <a href=\"https:\/\/developers.google.com\/analytics\/devguides\/collection\/ga4\/ecommerce\" target=\"_blank\" rel=\"noopener noreferrer\"><br \/>\n        View source<br \/>\n      <\/a><br \/>\n    <\/article>\n<article class=\"htt-biblio-card\" role=\"listitem\">\n<p class=\"htt-biblio-card__source\">Google Analytics Help<\/p>\n<h3>Recommended events<\/h3>\n<p>      Google&#8217;s recommended events for measuring online sales,<br \/>\n      ecommerce funnels and purchase interactions.<\/p>\n<p>      <a href=\"https:\/\/support.google.com\/analytics\/answer\/9267735\" target=\"_blank\" rel=\"noopener noreferrer\"><br \/>\n        View source<br \/>\n      <\/a><br \/>\n    <\/article>\n<article class=\"htt-biblio-card\" role=\"listitem\">\n<p class=\"htt-biblio-card__source\">Google Developers<\/p>\n<h3>Set up a purchase event<\/h3>\n<p>      Official guide to configuring the <code>purchase<\/code> event<br \/>\n      for measuring ecommerce transactions in GA4.<\/p>\n<p>      <a href=\"https:\/\/developers.google.com\/analytics\/devguides\/collection\/ga4\/set-up-ecommerce\" target=\"_blank\" rel=\"noopener noreferrer\"><br \/>\n        View source<br \/>\n      <\/a><br \/>\n    <\/article>\n<article class=\"htt-biblio-card\" role=\"listitem\">\n<p class=\"htt-biblio-card__source\">Google Tag Platform<\/p>\n<h3>Consent Mode<\/h3>\n<p>      Official documentation on Consent Mode and the Consent Mode v2 update<br \/>\n      for Google tags.<\/p>\n<p>      <a href=\"https:\/\/developers.google.com\/tag-platform\/security\/guides\/consent\" target=\"_blank\" rel=\"noopener noreferrer\"><br \/>\n        View source<br \/>\n      <\/a><br \/>\n    <\/article>\n<article class=\"htt-biblio-card\" role=\"listitem\">\n<p class=\"htt-biblio-card__source\">Google Ads Help<\/p>\n<h3>Updates to Consent Mode for EEA traffic<\/h3>\n<p>      Google\u2019s official documentation on Consent Mode updates<br \/>\n      for traffic coming from the European Economic Area.<\/p>\n<p>      <a href=\"https:\/\/support.google.com\/google-ads\/answer\/13695607\" target=\"_blank\" rel=\"noopener noreferrer\"><br \/>\n        View source<br \/>\n      <\/a><br \/>\n    <\/article>\n<article class=\"htt-biblio-card\" role=\"listitem\">\n<p class=\"htt-biblio-card__source\">Google Developers<\/p>\n<h3>Server-side Tag Manager<\/h3>\n<p>      Official introduction to server-side tagging with Google Tag Manager:<br \/>\n      data quality, performance and privacy controls.<\/p>\n<p>      <a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/server-side\" target=\"_blank\" rel=\"noopener noreferrer\"><br \/>\n        View source<br \/>\n      <\/a><br \/>\n    <\/article>\n<article class=\"htt-biblio-card\" role=\"listitem\">\n<p class=\"htt-biblio-card__source\">Google Developers<\/p>\n<h3>BigQuery Export for Google Analytics<\/h3>\n<p>      Documentation on exporting raw GA4 events to BigQuery<br \/>\n      for advanced analysis and data warehouse integration.<\/p>\n<p>      <a href=\"https:\/\/developers.google.com\/analytics\/bigquery\/overview\" target=\"_blank\" rel=\"noopener noreferrer\"><br \/>\n        View source<br \/>\n      <\/a><br \/>\n    <\/article>\n<article class=\"htt-biblio-card\" role=\"listitem\">\n<p class=\"htt-biblio-card__source\">Google Analytics Help<\/p>\n<h3>Set up ecommerce events<\/h3>\n<p>      Google\u2019s guide on collecting ecommerce data through website,<br \/>\n      app or Google Tag Manager events.<\/p>\n<p>      <a href=\"https:\/\/support.google.com\/analytics\/answer\/12200568\" target=\"_blank\" rel=\"noopener noreferrer\"><br \/>\n        View source<br \/>\n      <\/a><br \/>\n    <\/article>\n<\/p><\/div>\n<\/section>\n<\/article>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n\n<style>\n\/* ===============================\n   HT&T Magazine \u2014 GA4 Ecommerce\n   =============================== *\/\n\n.htt-article {\n  max-width: 920px;\n  margin: 0 auto;\n  padding: clamp(24px, 4vw, 56px);\n\n  line-height: 1.75;\n}\n\n.htt-article * {\n  box-sizing: border-box;\n}\n\n.htt-article__header {\n  margin-bottom: 40px;\n  padding-bottom: 32px;\n  border-bottom: 1px solid rgba(16, 24, 40, 0.12);\n}\n\n.htt-article__eyebrow {\n  margin: 0 0 12px;\n  font-size: 13px;\n  font-weight: 700;\n  letter-spacing: 0.12em;\n  text-transform: uppercase;\n  color: #667085;\n}\n\n.htt-article__title {\n  margin: 0 0 18px;\n  font-size: clamp(34px, 5vw, 56px);\n  line-height: 1.05;\n  letter-spacing: -0.04em;\n  color: #0b1220;\n}\n\n.htt-article__subtitle {\n  max-width: 760px;\n  margin: 0;\n  font-size: clamp(20px, 2.2vw, 25px);\n  line-height: 1.45;\n  color: #475467;\n}\n\n.htt-article h2 {\n  margin: 56px 0 18px;\n  font-size: clamp(28px, 3.2vw, 38px);\n  line-height: 1.15;\n  letter-spacing: -0.03em;\n  color: #0b1220;\n}\n\n.htt-article h3 {\n  margin: 34px 0 12px;\n  font-size: clamp(22px, 2.4vw, 28px);\n  line-height: 1.25;\n  letter-spacing: -0.02em;\n  color: #182230;\n}\n\n.htt-article p {\n  margin: 0 0 20px;\n}\n\n.htt-article a {\n  color: #0057ff;\n  text-decoration-thickness: 2px;\n  text-underline-offset: 4px;\n}\n\n.htt-article a:hover {\n  color: #003bb3;\n}\n\n.htt-article__answer,\n.htt-article__toc,\n.htt-article__note,\n.htt-article__warning,\n.htt-article__cta {\n  border-radius: 24px;\n  padding: clamp(22px, 3vw, 34px);\n  margin: 34px 0;\n}\n\n.htt-article__answer {\n  background: #f2f6ff;\n  border: 1px solid rgba(0, 87, 255, 0.14);\n}\n\n.htt-article__answer h2,\n.htt-article__answer p {\n  margin-top: 0;\n}\n\n.htt-article__toc {\n  background: #f8fafc;\n  border: 1px solid rgba(16, 24, 40, 0.1);\n}\n\n.htt-article__toc-title {\n  margin: 0 0 12px;\n  font-weight: 800;\n  color: #0b1220;\n}\n\n.htt-article__toc ol {\n  margin: 0;\n  padding-left: 22px;\n}\n\n.htt-article__toc li {\n  margin: 8px 0;\n}\n\n.htt-article__section {\n  scroll-margin-top: 120px;\n}\n\n.htt-article__note {\n  background: #f8fafc;\n  border-left: 6px solid #4387fa;\n}\n\n.htt-article__warning {\n  background: #fff7ed;\n  border-left: 6px solid #f97316;\n}\n\n.htt-article__check {\n  padding: 18px 20px;\n  margin: 24px 0;\n  border-radius: 18px;\n  background: #ecfdf3;\n  border-left: 6px solid #12b76a;\n  color: #064e3b;\n  font-weight: 600;\n}\n\n.htt-article ul,\n.htt-article ol {\n  margin: 18px 0 28px;\n  padding-left: 26px;\n}\n\n.htt-article li {\n  margin: 10px 0;\n}\n\n.htt-article code {\n  padding: 2px 6px;\n  border-radius: 6px;\n  background: #eef2f6;\n  color: #101828;\n  font-size: 0.92em;\n}\n\n.htt-article pre {\n  overflow-x: auto;\n  margin: 28px 0;\n  padding: 24px;\n  border-radius: 22px;\n  background: #0b1220;\n  color: #e6edf7;\n  font-size: 15px;\n  line-height: 1.65;\n}\n\n.htt-article pre code {\n  padding: 0;\n  background: transparent;\n  color: inherit;\n  font-size: inherit;\n}\n\n.htt-article__cta {\n  background: linear-gradient(135deg, #0b1220 0%, #1d2939 100%);\n  color: #ffffff;\n}\n\n.htt-article__cta h2,\n.htt-article__cta p {\n  color: #ffffff;\n}\n\n.htt-cta-button {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  min-height: 48px;\n  padding: 14px 22px;\n  border-radius: 999px;\n  background: #ffffff;\n  color: #0b1220 !important;\n  font-weight: 800;\n  text-decoration: none !important;\n}\n\n.htt-cta-button:hover {\n  background: #f2f4f7;\n}\n\n#checklist-ga4 ul {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: 12px;\n  padding: 0;\n  margin-top: 24px;\n  list-style: none;\n}\n\n#checklist-ga4 li {\n  position: relative;\n  margin: 0;\n  padding: 16px 18px 16px 46px;\n  border-radius: 16px;\n  background: #f8fafc;\n  border: 1px solid rgba(16, 24, 40, 0.08);\n}\n\n#checklist-ga4 li::before {\n  content: \"\u2713\";\n  position: absolute;\n  left: 18px;\n  top: 16px;\n  width: 20px;\n  height: 20px;\n  border-radius: 50%;\n  background: #12b76a;\n  color: #ffffff;\n  font-size: 13px;\n  line-height: 20px;\n  text-align: center;\n  font-weight: 800;\n}\n\n@media (max-width: 768px) {\n  .htt-article {\n    padding: 22px;\n    font-size: 17px;\n  }\n\n  .htt-article__title {\n    font-size: 36px;\n  }\n\n  .htt-article__subtitle {\n    font-size: 20px;\n  }\n\n  #checklist-ga4 ul {\n    grid-template-columns: 1fr;\n  }\n\n  .htt-article pre {\n    font-size: 14px;\n    padding: 18px;\n  }\n}\n\n\/* ===============================\n   HT&T Bibliografia \u2014 2 card per riga\n   =============================== *\/\n\n.htt-article__bibliography {\n  margin-top: 64px;\n}\n\n.htt-biblio-grid {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: 22px;\n  margin-top: 28px;\n}\n\n.htt-biblio-card {\n  display: flex;\n  flex-direction: column;\n  min-height: 260px;\n  padding: 26px;\n  border-radius: 24px;\n  background: #ffffff;\n  border: 1px solid rgba(16, 24, 40, 0.1);\n  box-shadow: 0 14px 36px rgba(16, 24, 40, 0.06);\n}\n\n.htt-biblio-card__source {\n  margin: 0 0 10px;\n  font-size: 13px;\n  font-weight: 800;\n  letter-spacing: 0.08em;\n  text-transform: uppercase;\n  color: #667085;\n}\n\n.htt-biblio-card h3 {\n  margin: 0 0 14px;\n  font-size: 22px;\n  line-height: 1.25;\n  color: #0b1220;\n}\n\n.htt-biblio-card p {\n  margin: 0 0 20px;\n  color: #475467;\n  font-size: 16px;\n  line-height: 1.65;\n}\n\n.htt-biblio-card a {\n  margin-top: auto;\n  font-weight: 800;\n  color: #0057ff;\n  text-decoration-thickness: 2px;\n  text-underline-offset: 4px;\n}\n\n.htt-biblio-card a:hover {\n  color: #003bb3;\n}\n\n@media (max-width: 768px) {\n  .htt-biblio-grid {\n    grid-template-columns: 1fr;\n  }\n\n  .htt-biblio-card {\n    min-height: auto;\n    padding: 22px;\n  }\n}\n\n\/* ===============================\n   HT&T \u2014 Tabella parametri GA4\n   =============================== *\/\n.htt-table-wrap {\n  background: #FFF;\n  border: 1px solid rgba(16, 24, 40, 0.10);\n  overflow: hidden;\n}\n\n.htt-table-wrap h3 {\n  margin: 0;\n  padding: 12px 12px 12px;\n  font-size: clamp(22px, 2.3vw, 28px);\n  line-height: 1.25;\n  color: #111827;\n  border-bottom: 1px solid rgba(16, 24, 40, 0.10);\n}\n\n.htt-table {\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: collapse;\n  margin: 0;\n  background: #ffffff;\n  font-size: 16px;\n  line-height: 1.55;\n}\n\n.htt-table th,\n.htt-table td {\n  padding: 18px 20px;\n  text-align: left;\n  vertical-align: top;\n  border-bottom: 1px solid rgba(16, 24, 40, 0.08);\n  word-break: normal;\n  overflow-wrap: anywhere;\n}\n\n.htt-table th {\n  background: #eef0f3;\n  color: #1f2937;\n  font-size: 13px;\n  font-weight: 800;\n  letter-spacing: 0.04em;\n  text-transform: uppercase;\n}\n\n.htt-table tbody tr:nth-child(even) {\n  background: #f8f9fb;\n}\n\n.htt-table tbody tr:last-child td {\n  border-bottom: 0;\n}\n\n.htt-table td:first-child,\n.htt-table th:first-child {\n  width: 24%;\n}\n\n.htt-table td:nth-child(2),\n.htt-table th:nth-child(2) {\n  width: 30%;\n}\n\n.htt-table td:nth-child(3),\n.htt-table th:nth-child(3) {\n  width: 46%;\n}\n\n.htt-table code {\n  display: inline-block;\n  padding: 4px 7px;\n  border-radius: 6px;\n  background: #e5e7eb;\n  color: #111827;\n  font-size: 14px;\n  font-weight: 700;\n}\n\n\/* Mobile: la tabella diventa card leggibile, senza scroll *\/\n@media (max-width: 768px) {\n  .htt-table-wrap {\n    border-radius: 18px;\n  }\n\n\n\n  .htt-table,\n  .htt-table thead,\n  .htt-table tbody,\n  .htt-table tr,\n  .htt-table th,\n  .htt-table td {\n    display: block;\n    width: 100%;\n  }\n\n  .htt-table thead {\n    display: none;\n  }\n\n  .htt-table tbody tr {\n    padding: 18px 18px 4px;\n    border-bottom: 1px solid rgba(16, 24, 40, 0.10);\n    background: #ffffff;\n  }\n\n  .htt-table tbody tr:nth-child(even) {\n    background: #f8f9fb;\n  }\n\n  .htt-table tbody tr:last-child {\n    border-bottom: 0;\n  }\n\n  .htt-table td {\n    padding: 0 0 14px;\n    border-bottom: 0;\n  }\n\n  .htt-table td:nth-child(1)::before {\n    content: \"Parametro\";\n  }\n\n  .htt-table td:nth-child(2)::before {\n    content: \"A cosa serve\";\n  }\n\n  .htt-table td:nth-child(3)::before {\n    content: \"Perch\u00e9 \u00e8 utile\";\n  }\n\n  .htt-table td::before {\n    display: block;\n    margin-bottom: 4px;\n    font-size: 12px;\n    font-weight: 800;\n    letter-spacing: 0.05em;\n    text-transform: uppercase;\n    color: #6b7280;\n  }\n}\n\n.ga4-stats {\n  margin: 2rem 0;\n}\n.ga4-stats__title {\n  font-size: 13px;\n  font-weight: 500;\n  color: #888;\n  text-transform: uppercase;\n  letter-spacing: .06em;\n  margin: 0 0 1rem;\n}\n.ga4-stats__grid {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: 12px;\n  margin-bottom: 12px;\n}\n.ga4-stat {\n  background: #fff;\n  border: 1px solid #e5e7eb;\n  border-radius: 14px;\n  padding: 1.25rem 1.5rem;\n}\n.ga4-stat--dark {\n  background: #161616;\n  border-color: #161616;\n}\n.ga4-stat__number {\n  font-size: 42px;\n  font-weight: 700;\n  line-height: 1;\n  color: #161616;\n  margin-bottom: .35rem;\n}\n.ga4-stat--dark .ga4-stat__number { color: #fff; }\n.ga4-stat__number span { font-size: 28px; }\n.ga4-stat__label {\n  font-size: 14px;\n  color: #374151;\n  line-height: 1.4;\n  margin-bottom: .5rem;\n}\n.ga4-stat--dark .ga4-stat__label { color: #d1d5db; }\n.ga4-stat__source { font-size: 11px; color: #9ca3af; }\n.ga4-bar { margin-bottom: 1rem; }\n.ga4-bar__label {\n  display: flex;\n  justify-content: space-between;\n  font-size: 13px;\n  color: #374151;\n  margin-bottom: 6px;\n}\n.ga4-bar__track {\n  height: 8px;\n  background: #f3f4f6;\n  border-radius: 4px;\n  overflow: hidden;\n}\n.ga4-bar__fill {\n  height: 100%;\n  border-radius: 4px;\n  background: #161616;\n}\n.ga4-bar--light .ga4-bar__fill { background: #9ca3af; }\n.ga4-stats__note {\n  font-size: 12px;\n  color: #9ca3af;\n  margin-top: 1rem;\n  padding-top: 1rem;\n  border-top: 1px solid #f3f4f6;\n}\n@media (max-width: 768px) {\n  .ga4-stats__grid {\n    grid-template-columns: 1fr;\n  }\n}\n.htt-quote {\n  margin: 2rem 0;\n  padding: 1.75rem 2rem 1.75rem 2.5rem;\n  border-left: 6px solid #4387fa;\n  border-radius: 22px;\n\n  background: #f9f8f6;\n}\n.htt-quote__text {\n  font-size: 20px;\n  font-style: italic;\n  line-height: 1.6;\n  color: #161616;\n  margin: 0 0 1rem;\n  font-weight: 500;\n}\n.htt-quote__author {\n  display: flex;\n  flex-direction: column;\n  gap: 2px;\n}\n.htt-quote__name {\n  font-size: 14px;\n  font-weight: 600;\n  color: #161616;\n}\n.htt-quote__role {\n  font-size: 13px;\n  color: #6b7280;\n}\n<\/style>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"@id\": \"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/#faq\",\n  \"url\": \"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/\",\n  \"inLanguage\": \"en\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Is GA4 mandatory for an ecommerce business?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Universal Analytics has been discontinued and GA4 is now the reference platform for businesses using Google Analytics. It is not legally mandatory, but it is the operational standard for ecommerce businesses that want to measure sales, funnel performance and Google Ads campaigns.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Can I use GA4 without Google Tag Manager?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Yes, but it is not recommended for ecommerce. Google Tag Manager allows you to manage events, dataLayer, conversions and tests without changing site code every time. On dynamic catalogues, it is practically essential.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How much historical data migrates from Universal Analytics to GA4?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"None automatically. GA4 and Universal Analytics are separate properties. Anyone who wanted to preserve historical Universal Analytics data had to export it before the platform was permanently discontinued.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How do I verify that ecommerce tracking works correctly?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"The most reliable method is using GA4 DebugView together with Google Tag Manager Preview mode. A complete test purchase should be performed, verifying that transaction_id, value, currency and items are populated correctly.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Is GA4 compatible with Shopify, WooCommerce and Magento?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Yes, all major ecommerce platforms can integrate GA4 through apps, plugins, extensions or custom configurations. However, dataLayer quality varies significantly, and customisation is often required for advanced parameters such as item_list_name, coupon or shipping_tier.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"When does server-side tracking make sense for GA4?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"It makes sense when there are significant discrepancies between real orders and GA4 conversions, when the site receives relevant traffic from privacy-first browsers, or when data quality is critical for Google Ads optimisation. For medium to high-volume ecommerce businesses, server-side tracking is often a strategic choice.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How do you connect GA4 data to Google Ads correctly?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"The connection is managed in GA4 through Google product links. Once connected, GA4 conversions can be imported into Google Ads and used for Smart Bidding. It is essential to avoid duplication: each action should have only one primary conversion source.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Which GA4 events are essential for ecommerce?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"The minimum events are view_item, add_to_cart, begin_checkout and purchase. Additional events such as view_item_list, select_item, add_shipping_info and add_payment_info provide a more complete funnel analysis.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Why can the purchase event appear duplicated in GA4?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"This usually happens when the tag fires every time the thank-you page reloads, or when multiple tracking systems coexist. To prevent this, use transaction_id, verify GTM trigger conditions and check that there are no duplicated Google Ads and GA4 tags for the same conversion.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Can GA4 replace ERP or CRM data?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"No. GA4 is designed to analyse behaviour, channels, funnel performance and attribution, while CRM and ERP remain the primary source for orders, revenue, margins and customers. Data will never match 100%, but large discrepancies almost always indicate a configuration issue.\"\n      }\n    }\n  ]\n}\n<\/script>\n\n\n\n<!-- SECTION -->\n<section  class=\"block-banner-mmet darksection\" style=\"\">\n    <div class=\"htt-container htt-talk-idea\">\n        <div class=\"htt-talk-idea--left\">\n            <p>Hai bisogno di tracciare correttamente il tuo ecommerce con GA4?<\/p>\n        <\/div>\n        <div class=\"htt-talk-idea--right\">\n            <div class=\"htt-talk-idea--card\">\n                <h4>\ud83d\udc4b <br>Discuss it with                    Giuseppe!\n                <\/h4>\n                                        <div class=\"htt-talk-idea--person\">\n                            <div class=\"avatar\" style=\"background-image: url(https:\/\/www.htt.it\/wp-content\/uploads\/2023\/12\/avatar_giuseppe.webp)\"><\/div><p>Giuseppe Pane<span>Giuseppe Pane is Head of Analytics at HT&#038;T Consulting. He focuses on data analysis, web analytics, and marketing intelligence, helping companies and marketing teams turn data into strategic insights.<\/span><\/p>                        <\/div>\n                                                    <!-- <a class=\"htt-talk-idea--meet\" href=\"https:\/\/www.htt.it\/contatti\/\">Prenota un meet<\/a> -->\n                <a class=\"htt-talk-idea--meet\" href=\"https:\/\/www.htt.it\/contatti\/\">Book a meeting<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":5,"featured_media":8904,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,121],"tags":[732,728,738,737,736,730,731,733,443,729,735,343,678],"class_list":["post-8908","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agency","category-best-practice-en","tag-attribution","tag-consent-mode-v2","tag-conversion-tracking-2","tag-datalayer-2","tag-ecommerce-analytics","tag-ecommerce-tracking-2","tag-ga4-2","tag-ga4-ecommerce","tag-google-ads-2","tag-google-analytics-4-2","tag-google-tag-manager","tag-server-side-tracking","tag-web-analytics-2"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>GA4 for Ecommerce: Event Setup, Conversion and DataLayer .<\/title>\n<meta name=\"description\" content=\"Learn how to configure GA4 for ecommerce with events, conversions, dataLayer, Consent Mode v2 and server-side tracking for ecommerce.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GA4 for Ecommerce: Event Setup, Conversion and DataLayer\" \/>\n<meta property=\"og:description\" content=\"Learn how to configure GA4 for ecommerce with events, conversions, dataLayer, Consent Mode v2 and server-side tracking for ecommerce.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/\" \/>\n<meta property=\"og:site_name\" content=\"HT&amp;T Consulting\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/HttConsulting\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-08T12:12:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-09T12:29:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.htt.it\/wp-content\/uploads\/2026\/05\/google_analytics_4.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1044\" \/>\n\t<meta property=\"og:image:height\" content=\"1044\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Giuseppe Pane\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@htt\" \/>\n<meta name=\"twitter:site\" content=\"@htt\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Giuseppe Pane\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.htt.it\\\/en\\\/ga4-ecommerce-setup-events-conversions-server-side-tracking\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.htt.it\\\/en\\\/ga4-ecommerce-setup-events-conversions-server-side-tracking\\\/\"},\"author\":{\"name\":\"Giuseppe Pane\",\"@id\":\"https:\\\/\\\/www.htt.it\\\/en\\\/#\\\/schema\\\/person\\\/98a6f21345d2673af59394b54b9eff3a\"},\"headline\":\"GA4 ecommerce setup: Events, Conversions and Data That Actually Drives Growth\",\"datePublished\":\"2026-05-08T12:12:36+00:00\",\"dateModified\":\"2026-05-09T12:29:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.htt.it\\\/en\\\/ga4-ecommerce-setup-events-conversions-server-side-tracking\\\/\"},\"wordCount\":11,\"publisher\":{\"@id\":\"https:\\\/\\\/www.htt.it\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.htt.it\\\/en\\\/ga4-ecommerce-setup-events-conversions-server-side-tracking\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.htt.it\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/google_analytics_4.webp\",\"keywords\":[\"Attribution\",\"Consent Mode v2\",\"Conversion Tracking\",\"DataLayer\",\"Ecommerce Analytics\",\"Ecommerce Tracking\",\"GA4\",\"GA4 Ecommerce\",\"Google Ads\",\"Google Analytics 4\",\"Google Tag Manager\",\"server-side tracking\",\"Web Analytics\"],\"articleSection\":[\"agency\",\"Best practice\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.htt.it\\\/en\\\/ga4-ecommerce-setup-events-conversions-server-side-tracking\\\/\",\"url\":\"https:\\\/\\\/www.htt.it\\\/en\\\/ga4-ecommerce-setup-events-conversions-server-side-tracking\\\/\",\"name\":\"GA4 for Ecommerce: Event Setup, Conversion and DataLayer\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.htt.it\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.htt.it\\\/en\\\/ga4-ecommerce-setup-events-conversions-server-side-tracking\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.htt.it\\\/en\\\/ga4-ecommerce-setup-events-conversions-server-side-tracking\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.htt.it\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/google_analytics_4.webp\",\"datePublished\":\"2026-05-08T12:12:36+00:00\",\"dateModified\":\"2026-05-09T12:29:11+00:00\",\"description\":\"Learn how to configure GA4 for ecommerce with events, conversions, dataLayer, Consent Mode v2 and server-side tracking for ecommerce.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.htt.it\\\/en\\\/ga4-ecommerce-setup-events-conversions-server-side-tracking\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.htt.it\\\/en\\\/ga4-ecommerce-setup-events-conversions-server-side-tracking\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.htt.it\\\/en\\\/ga4-ecommerce-setup-events-conversions-server-side-tracking\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.htt.it\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/google_analytics_4.webp\",\"contentUrl\":\"https:\\\/\\\/www.htt.it\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/google_analytics_4.webp\",\"width\":1044,\"height\":1044,\"caption\":\"google analytcs 4 - guida a eventi\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.htt.it\\\/en\\\/ga4-ecommerce-setup-events-conversions-server-side-tracking\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.htt.it\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GA4 ecommerce setup: Events, Conversions and Data That Actually Drives Growth\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.htt.it\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.htt.it\\\/en\\\/\",\"name\":\"HT&T Consulting\",\"description\":\"Scale-up your digital business\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.htt.it\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.htt.it\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.htt.it\\\/en\\\/#\\\/schema\\\/person\\\/98a6f21345d2673af59394b54b9eff3a\",\"name\":\"Giuseppe Pane\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/28d74c699aa19bbdc06f50b8edf85dad71e6260cc5027ecec380e2e6146652bd?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/28d74c699aa19bbdc06f50b8edf85dad71e6260cc5027ecec380e2e6146652bd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/28d74c699aa19bbdc06f50b8edf85dad71e6260cc5027ecec380e2e6146652bd?s=96&d=mm&r=g\",\"caption\":\"Giuseppe Pane\"},\"description\":\"Giuseppe Pane \u00e8 Head of Analytics in HT&amp;T Consulting. Si occupa di data analysis, web analytics e marketing intelligence, supportando aziende e team marketing nella lettura e nell\u2019utilizzo strategico dei dati.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"GA4 for Ecommerce: Event Setup, Conversion and DataLayer .","description":"Learn how to configure GA4 for ecommerce with events, conversions, dataLayer, Consent Mode v2 and server-side tracking for ecommerce.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/","og_locale":"en_US","og_type":"article","og_title":"GA4 for Ecommerce: Event Setup, Conversion and DataLayer","og_description":"Learn how to configure GA4 for ecommerce with events, conversions, dataLayer, Consent Mode v2 and server-side tracking for ecommerce.","og_url":"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/","og_site_name":"HT&amp;T Consulting","article_publisher":"https:\/\/www.facebook.com\/HttConsulting","article_published_time":"2026-05-08T12:12:36+00:00","article_modified_time":"2026-05-09T12:29:11+00:00","og_image":[{"width":1044,"height":1044,"url":"https:\/\/www.htt.it\/wp-content\/uploads\/2026\/05\/google_analytics_4.webp","type":"image\/webp"}],"author":"Giuseppe Pane","twitter_card":"summary_large_image","twitter_creator":"@htt","twitter_site":"@htt","twitter_misc":{"Written by":"Giuseppe Pane","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/#article","isPartOf":{"@id":"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/"},"author":{"name":"Giuseppe Pane","@id":"https:\/\/www.htt.it\/en\/#\/schema\/person\/98a6f21345d2673af59394b54b9eff3a"},"headline":"GA4 ecommerce setup: Events, Conversions and Data That Actually Drives Growth","datePublished":"2026-05-08T12:12:36+00:00","dateModified":"2026-05-09T12:29:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/"},"wordCount":11,"publisher":{"@id":"https:\/\/www.htt.it\/en\/#organization"},"image":{"@id":"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/#primaryimage"},"thumbnailUrl":"https:\/\/www.htt.it\/wp-content\/uploads\/2026\/05\/google_analytics_4.webp","keywords":["Attribution","Consent Mode v2","Conversion Tracking","DataLayer","Ecommerce Analytics","Ecommerce Tracking","GA4","GA4 Ecommerce","Google Ads","Google Analytics 4","Google Tag Manager","server-side tracking","Web Analytics"],"articleSection":["agency","Best practice"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/","url":"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/","name":"GA4 for Ecommerce: Event Setup, Conversion and DataLayer","isPartOf":{"@id":"https:\/\/www.htt.it\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/#primaryimage"},"image":{"@id":"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/#primaryimage"},"thumbnailUrl":"https:\/\/www.htt.it\/wp-content\/uploads\/2026\/05\/google_analytics_4.webp","datePublished":"2026-05-08T12:12:36+00:00","dateModified":"2026-05-09T12:29:11+00:00","description":"Learn how to configure GA4 for ecommerce with events, conversions, dataLayer, Consent Mode v2 and server-side tracking for ecommerce.","breadcrumb":{"@id":"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/#primaryimage","url":"https:\/\/www.htt.it\/wp-content\/uploads\/2026\/05\/google_analytics_4.webp","contentUrl":"https:\/\/www.htt.it\/wp-content\/uploads\/2026\/05\/google_analytics_4.webp","width":1044,"height":1044,"caption":"google analytcs 4 - guida a eventi"},{"@type":"BreadcrumbList","@id":"https:\/\/www.htt.it\/en\/ga4-ecommerce-setup-events-conversions-server-side-tracking\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.htt.it\/en\/"},{"@type":"ListItem","position":2,"name":"GA4 ecommerce setup: Events, Conversions and Data That Actually Drives Growth"}]},{"@type":"WebSite","@id":"https:\/\/www.htt.it\/en\/#website","url":"https:\/\/www.htt.it\/en\/","name":"HT&T Consulting","description":"Scale-up your digital business","publisher":{"@id":"https:\/\/www.htt.it\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.htt.it\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.htt.it\/en\/#\/schema\/person\/98a6f21345d2673af59394b54b9eff3a","name":"Giuseppe Pane","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/28d74c699aa19bbdc06f50b8edf85dad71e6260cc5027ecec380e2e6146652bd?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/28d74c699aa19bbdc06f50b8edf85dad71e6260cc5027ecec380e2e6146652bd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/28d74c699aa19bbdc06f50b8edf85dad71e6260cc5027ecec380e2e6146652bd?s=96&d=mm&r=g","caption":"Giuseppe Pane"},"description":"Giuseppe Pane \u00e8 Head of Analytics in HT&amp;T Consulting. Si occupa di data analysis, web analytics e marketing intelligence, supportando aziende e team marketing nella lettura e nell\u2019utilizzo strategico dei dati."}]}},"_links":{"self":[{"href":"https:\/\/www.htt.it\/en\/wp-json\/wp\/v2\/posts\/8908","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.htt.it\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.htt.it\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.htt.it\/en\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.htt.it\/en\/wp-json\/wp\/v2\/comments?post=8908"}],"version-history":[{"count":5,"href":"https:\/\/www.htt.it\/en\/wp-json\/wp\/v2\/posts\/8908\/revisions"}],"predecessor-version":[{"id":9024,"href":"https:\/\/www.htt.it\/en\/wp-json\/wp\/v2\/posts\/8908\/revisions\/9024"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.htt.it\/en\/wp-json\/wp\/v2\/media\/8904"}],"wp:attachment":[{"href":"https:\/\/www.htt.it\/en\/wp-json\/wp\/v2\/media?parent=8908"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.htt.it\/en\/wp-json\/wp\/v2\/categories?post=8908"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.htt.it\/en\/wp-json\/wp\/v2\/tags?post=8908"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}