Analytics and Tracking

purchase

Also called purchase event

The GA4 ecommerce event sent once per completed order, carrying its order number, value, VAT, delivery and products.

Quick facts: purchase

Category
Analytics and Tracking
Also called
purchase event
Level
Intermediate
Affects
Revenue reporting, ROAS, Smart Bidding, product reports, channel decisions
Where to see it
GA4 ecommerce purchases report, GA4 DebugView, Google Ads conversions, Shopify or WooCommerce order reports
In this article5
  1. How the purchase event works
  2. VAT, delivery and which number to send
  3. Why it matters
  4. Common mistakes
  5. How to act on it

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.

Do and do not

Do

  • Always send a unique transaction_id
  • Send currency as GBP and keep one consistent VAT rule for value
  • Reconcile GA4 against shop orders every month

Do not

  • Let a confirmation page reload record a second sale
  • Let payment providers take the credit as referrals
  • Expect GA4 to match your accounts to the penny

Questions people ask about this

Should the purchase value include VAT?

Google's guidance is to send value without tax or delivery and to put VAT in the separate tax field. Many UK shops send the VAT-inclusive total instead, because that matches what customers paid. Either is workable as long as you choose one, document it and use the same basis for ROAS targets and finance comparisons.

Why does GA4 show fewer purchases than my shop?

Some shoppers decline analytics cookies, use ad blockers or close the page before the confirmation loads, so GA4 never sees their order. How big that shortfall is depends mostly on how many visitors decline analytics cookies on your banner. If the gap suddenly widens, or is far bigger for one payment method, look for a tag that fails on some routes.

Can I send purchase events from my server instead of the browser?

Yes. GA4's Measurement Protocol and server-side tagging can send purchases from the shop's back end, which avoids lost confirmation pages. You still need the visitor's client ID from the browser to connect the sale to the visit, and you still need to respect the shopper's consent choices.

Related terms

Found this useful?

Share it, or ask an AI to summarise it

Back to the glossary

Knowing the term is the easy part

Applying it to your own site and budget is the work. Book a call and I will tell you what actually applies to you.