purchase is the Google Analytics 4 event that records a completed order, with its order number, value, currency and the products bought. For an online shop it is the most important event on the site, because every revenue figure in GA4 starts here, and many shops also import it into Google Ads as their sales conversion.
How the purchase event works
purchase is a recommended event, sent once per order, normally from the order confirmation page or from the shop’s server when payment succeeds. It carries:
- transaction_id Your order number. GA4 uses it to spot repeat sends of the same order, and it is how you match GA4 to your shop’s own records.
- value and currency: the order value and “GBP”. Without a currency, the value is not recorded.
- tax and shipping: VAT and delivery, sent as separate numbers.
- coupon Any order-level discount code.
- items Every product in the order, with ID, name, price and quantity.
GA4 adds up the value of these events to produce purchase revenue, and counts them for transactions and the ecommerce conversion rate.
VAT, delivery and which number to send
Google’s own guidance is that value should be the sum of the item prices multiplied by quantities, without delivery or tax. In practice, UK consumer prices include VAT, and many shops send the VAT-inclusive total because that is what the customer paid. Either can work. What matters is choosing one definition, writing it down and sticking to it, because a GA4 revenue figure that sometimes includes VAT and sometimes does not cannot be compared with anything.
My usual advice is to send value net of VAT and delivery if your finance reporting is net, and to keep VAT in the tax field so you can rebuild the gross figure. If your Google Ads conversion value comes from the same event, the same choice flows through to return on ad spend, so your ROAS target has to be set on the same basis.
Why it matters
Every decision about where to spend the next pound depends on knowing which channels and campaigns produce sales. If the purchase event under-records, campaigns look worse than they are and you cut ones that work. If it double counts, you scale campaigns that are not paying back. Where Google Ads imports this event, or its own tag reads the same order data, Smart Bidding learns from these values, so errors are not just a reporting nuisance; they steer your spending.
Common mistakes
- Duplicate purchases when shoppers reload or revisit the confirmation page. A missing or changing transaction_id makes this worse.
- Payment provider referrals. Shoppers who pay through PayPal or a card authentication page come back to your site and the sale is credited to the payment provider instead of the advert that brought them. Add these domains to your referral exclusions.
- Sending the basket value before discounts, so revenue is overstated.
- Mixing gross and net definitions after a plugin update or platform change.
- Treating GA4 as the accounts. Consent choices, ad blockers and failed tags mean GA4 will never match your shop’s order total exactly.
How to act on it
Place a real low-value order and confirm one purchase event in DebugView, with the correct order number, value, VAT, delivery and items. Then reload the confirmation page and check that no second event appears.
Each month, run a simple reconciliation: compare GA4 transactions and revenue with your shop platform for the same dates. Some gap is normal, mostly from visitors who decline analytics cookies, and its size varies from site to site. What you want is a gap that stays steady; a sudden jump, or a gap on one payment method only, means something is broken. My guide to checking that conversion tracking works walks through the tests.
If you run paid search, make sure the Google Ads conversion uses the same order number so it can be deduplicated too. Getting this right comes before any bid change in ongoing Google Ads management.
