Why default analytics is not enough for a store
Out of the box, GA4 records visits, page views and traffic sources. That is fine for a brochure site. A store needs different answers: which products get attention, what lands in the cart, at which step checkout is abandoned, and which channel brings real revenue. None of that appears on its own. The website has to send it to GA4 as separate events.
Take a Tashkent furniture shop that runs Instagram ads, Google Ads and a Telegram channel. In standard reports all three simply produce sessions. Once ecommerce events are in place, you can see which source leads to paid orders and which one only brings people who look at a product page and leave. Without that, budgets get split by gut feeling.
GA4 ecommerce tracking: where to start
GA4 is built around events, and for stores Google recommends a set with fixed names and parameters. Stick to those names. The monetization reports are filled only from standard events, so a custom name such as “cart_click” will never show up there.
You do not have to launch everything at once. A minimum of four events already shows the core funnel:
- view_item — a product page was viewed
- add_to_cart — an item was added to the cart
- begin_checkout — the customer started checkout
- purchase — the order was completed
What data to send with each event
Once the core funnel works, add detail. view_item_list and select_item show behaviour in categories and on-site search, view_cart and remove_from_cart show what happens in the cart, and add_shipping_info and add_payment_info reveal the exact checkout step where buyers give up.
Each event carries a list of items: an ID (ideally the SKU from your order system), name, category, brand, variant such as colour or size, price and quantity. The purchase event also needs the order number, total value, shipping cost and currency.
Two common traps. Currency is sent as the code UZS, not the word “sum”. Price must be a plain number, with no thousands separators and no label. If the site sends the string “1 250 000 sum”, revenue in your reports will be zero or wrong.
How it is implemented technically
The usual setup: the site writes product data to the dataLayer at the right moment, and Google Tag Manager picks it up and sends the events to GA4. Popular CMS platforms have ready-made modules, but do not trust them blindly. Some skip parameters or handle product variants in their own way.
On a custom-built site, give the developer a short brief: which event, when it fires, what the data structure looks like. Check the mobile version separately. Many shoppers browse on their phones, and if events only work on desktop you lose the most important part of the picture.
The purchase event: where things break most often
The purchase event should fire once per order, on the confirmation page, with an order number and a value that matches your order system. Do not send it when the “Place order” button is clicked, because the order may still fail. Refreshing the thank-you page must not create a second purchase.
Online payments. If a customer leaves to pay in Payme or Click and does not always return to your site, some purchases will be missing from analytics. First, add the payment domains to the referral exclusion list so payment does not break the session or replace the traffic source. If losses are still visible, consider sending purchase from the server through the Measurement Protocol once payment is confirmed.
Phone and Telegram orders. If a manager takes the order, GA4 will not see it. At least set up a lead event for a phone tap, a Telegram button or a form submission, and import offline sales separately where possible.
How to check that the data is right
Verification takes little time and saves months of working with wrong numbers.
- Turn on DebugView and walk through the customer path: category, product, cart, checkout.
- Confirm that every event carries items, prices and currency.
- Place a test order, find it in the reports, then exclude the test data.
- After a few days, compare purchases and revenue in GA4 with your order system.
What this gives your business and SEO
A small gap against your order system is normal, since some users run blockers or decline cookies. A large gap is a sign to look for duplicates, lost online payments or events that do not fire on mobile.
With reliable data you can answer the questions that justified the work: how much revenue organic search brings, which landing pages lead to purchases, which categories attract visits but rarely reach the cart, and where visitors from ads and from search drop out. Those answers decide where to put budget and which product pages to rewrite.
Analytics belongs to the wider marketing strategy rather than being a standalone technical task. At markdev we start by defining which decisions should rely on data, then set up events to support them. If you would like to talk through your store, get in touch.
FAQ
Which GA4 events are essential for an online store?
At minimum, view_item, add_to_cart, begin_checkout and purchase. They show the core funnel. Add the rest when you need to see exactly where shoppers drop off.
Why is revenue zero or wrong in my GA4 reports?
The usual causes are non-standard event names, a price sent as text with spaces and the word “sum”, or a missing UZS currency code. Check the events in DebugView.
How should I handle payments through Payme or Click?
Add the payment domains to the referral exclusion list and compare GA4 purchases with your order system. If losses are noticeable, send purchase from the server via the Measurement Protocol.
Can I set up ecommerce tracking without a developer?
On popular CMS platforms, ready-made modules cover part of the events, but the result still needs checking. A custom-built site will need a developer.
Let’s look at your task for free
Leave your contact — in a 15-minute call we’ll show where leads get lost and what to fix first.