
Your GA4 events are probably hiding the money
A founder opens GA4 on Monday morning and sees 18,000 sessions, a healthy paid search campaign, a checkout drop-off, and revenue that does not match Shopify. The marketing team says Meta is working. Google Ads says Performance Max is working. The CRM says half the leads are junk. Everyone has a dashboard. Nobody can explain the money.
That is the real GA4 problem in 2026. Not that the interface is annoying, though it is. The problem is that most event tracking was built to count behavior instead of explain revenue.
GA4 can answer useful questions if you design the events around business decisions:
- Which traffic sources create buyers, not just visitors?
- Which product actions predict purchase?
- Which lead forms create pipeline, not spam?
- Which checkout step leaks high-intent users?
- Which campaigns deserve more budget next week?
If your setup cannot answer those, more reports will not save it. You need a cleaner event model.
The 2026 GA4 shift that matters
GA4 is no longer the new replacement for Universal Analytics. It is the operating layer for web and app measurement, Google Ads import, BigQuery analysis, consent-aware reporting, and ecommerce diagnostics.
A few changes matter for operators:
- GA4 uses events as the base unit. Pageviews are just one event type.
- GA4 now treats important onsite actions as key events inside analytics reporting, while Google Ads conversions remain tied to ad optimization and bidding.
- Consent Mode v2, CMP behavior, browser privacy controls, ad blockers, and modeled conversions can create gaps between observed user behavior and reported conversion data.
- Server-side tagging is more common because brands want cleaner data, better control, and less client-side script bloat.
- BigQuery export is no longer just for enterprise teams. Even small ecommerce brands use it when GA4 reports become too aggregated or sampled-looking for serious analysis.
The practical takeaway: revenue analysis depends on event quality before it depends on reporting skill.
Bad inputs make GA4 look vague. Clean event names, parameters, user properties, and transaction data make it useful.
Stop tracking every click like it matters
The beginner mistake is tracking activity because activity is visible. Button clicks. Scrolls. Menu opens. Video plays. Newsletter field focus. Ten different CTA variants with no revenue context.
That creates noise.
Kahneman's idea of System 1 and System 2 from Thinking, Fast and Slow is useful here. Teams love quick, obvious signals because they feel concrete. Clicks are System 1 candy. Revenue explanation requires slower thinking: intent, sequence, source, margin, cohort, and repeat purchase behavior.
A click is not a business outcome. It is only useful when it sits inside a chain of intent.
For revenue, GA4 events should fall into four buckets:
- Acquisition intent: qualified visits, landing page engagement, source and campaign quality.
- Product or offer intent: view_item, select_item, view_item_list, pricing-page engagement, demo-page engagement.
- Conversion intent: add_to_cart, begin_checkout, form_start, generate_lead, sign_up, request_quote.
- Revenue or value: purchase, refund, subscription_start, trial_to_paid, qualified_lead, closed_won if you send CRM data back.
If an event does not help explain one of those stages, either skip it or keep it out of your main reports.
The event model that explains revenue
A revenue-grade GA4 setup has three layers: standard events, business-specific events, and parameters that carry context.
Use standard GA4 ecommerce events where possible
For ecommerce, do not invent your own event names for common shopping behavior. GA4 already expects standard ecommerce events, and Google Ads, Explorations, and ecommerce reports work better when you use them properly.
Core events include:
- view_item
- view_item_list
- select_item
- add_to_cart
- remove_from_cart
- begin_checkout
- add_shipping_info
- add_payment_info
- purchase
- refund
The purchase event needs clean parameters:
- transaction_id
- value
- currency
- tax
- shipping
- coupon
- items
- item_id
- item_name
- item_brand
- item_category
- price
- quantity
The transaction_id is not optional in practice. Without it, duplicate purchases can inflate revenue, especially when users refresh confirmation pages or payment providers redirect oddly.
Create custom events only for business-specific actions
A SaaS company may need events such as:
- demo_request
- pricing_plan_selected
- trial_started
- trial_activated
- invite_sent
- subscription_started
- subscription_upgraded
A publisher may care about:
- newsletter_signup
- paywall_view
- subscription_checkout_started
- subscription_purchase
- article_engaged
A lead-gen business may track:
- form_start
- form_submit
- qualified_lead
- booked_call
- quote_requested
The rule is simple: custom events should describe meaningful behavior in plain business language. Avoid names like button_click_7 or homepage_cta_blue. Those are implementation details, not decision data.
Pass parameters that answer why
Events tell you what happened. Parameters explain the context.
Useful parameters include:
- page_type
- content_group
- offer_name
- plan_type
- product_margin_tier
- lead_type
- form_location
- payment_method
- customer_type
- inventory_status
- discount_code
- experiment_id
A purchase event with value and currency tells you revenue. A purchase event with customer_type, coupon, product category, and margin tier tells you what kind of revenue.
That difference matters when one campaign drives $20,000 in low-margin discounted orders and another drives $12,000 in full-price repeatable buyers.
A 5-step GA4 revenue tracking playbook
Use this before you touch Google Tag Manager. The order matters.
1. Write the revenue questions first
Start with the questions your team argues about.
Examples:
- Which channels create first purchases with healthy average order value?
- Which landing pages produce qualified leads?
- Which products get viewed often but fail at add_to_cart?
- Which checkout step loses mobile users?
- Which campaigns bring returning customers?
If a planned event does not answer one of those questions, it is probably extra weight.
2. Map the customer path from source to money
Create a simple path for each revenue motion.
For ecommerce:
- session_start
- view_item_list
- view_item
- add_to_cart
- begin_checkout
- add_shipping_info
- add_payment_info
- purchase
For SaaS:
- session_start
- pricing_view
- demo_request or trial_started
- activation_event
- subscription_started
- subscription_renewed
For lead generation:
- landing_page_view
- service_page_engaged
- form_start
- form_submit
- qualified_lead
- booked_call
- closed_won
GA4 will not automatically know that a submitted form became a $9,000 customer two weeks later. If that matters, plan a CRM feedback loop through Measurement Protocol, server-side tagging, or an offline import workflow.
3. Standardize names and parameters
Use lowercase snake_case for event names. Keep names stable. Changing generate_lead to lead_submit to form_complete every quarter ruins historical comparison.
Build a tracking spec with these columns:
- Event name
- Trigger condition
- Required parameters
- Optional parameters
- Platform source, such as GTM, Shopify, app, backend, CRM
- Key event status
- Owner
- QA notes
This sounds boring because it is. It is also where most revenue tracking gets fixed.
Ries and Trout's Positioning makes a useful point for analytics: the mind needs categories. Your reports need them too. If every campaign, product, and form has a different naming habit, nobody can position the data in their head. Standard names reduce argument time.
4. Mark only true business outcomes as key events
Not every useful event should become a key event.
Mark events as key events when they represent meaningful progress toward revenue:
- purchase
- generate_lead
- trial_started
- subscription_started
- booked_call
- qualified_lead
Be careful with soft actions like scroll, video_start, or click_to_call. They may be helpful engagement signals, but marking them as key events can make performance look better than it is.
This is especially dangerous when importing conversions into Google Ads. If bidding optimizes toward low-value actions, the algorithm will find more low-value actions. Efficiently.
5. Reconcile GA4 revenue against your source of truth
GA4 is not your accounting system. Shopify, Stripe, your subscription platform, or your CRM should remain the source of truth for booked revenue.
Set a weekly reconciliation habit:
- Compare GA4 purchase count against Shopify or Stripe orders.
- Compare GA4 revenue against net and gross revenue separately.
- Check whether tax, shipping, refunds, and discounts are handled consistently.
- Look for duplicate transaction_id values.
- Review missing currency or zero-value purchases.
- Segment by browser, device, and consent status if gaps look strange.
You are not trying to force a perfect match. You are trying to understand the gap well enough to trust directional decisions.
Consent, attribution, and the messy middle
A clean event setup still lives inside an imperfect measurement world.
Consent Mode v2 matters if you use Google's advertising tools and have visitors from regions with stricter consent requirements. Your CMP should pass consent signals correctly, and your tags should behave based on those choices. If consent is denied, GA4 may receive less observed data and rely more on modeling in eligible reports.
Server-side tagging can help with governance and data quality, but it is not magic. It will not fix bad event design. It also should not be used to bypass user consent or platform policies.
Attribution is another trap. GA4 attribution can help you compare channels, but it will not settle every budget fight. Paid social, branded search, email, organic search, and direct traffic all interact. A user may see a TikTok ad, read a review, search your brand, click a Google ad, and buy after an email.
Cialdini's principle of social proof explains part of this. The review, the creator mention, the Reddit thread, and the customer logo may not get clean last-click credit, but they reduce perceived risk. Your GA4 events should capture onsite proof interactions where possible, such as review engagement or case_study_view, but do not pretend attribution can measure every influence cleanly.
Reports that connect events to revenue
Once the data is clean, build fewer reports.
Useful GA4 views include:
- Acquisition by source, medium, campaign, and revenue.
- Landing page by engaged sessions, key events, and purchase revenue.
- Funnel exploration from product view to purchase.
- Checkout abandonment by device category.
- Item performance by views, add_to_cart rate, purchase quantity, and item revenue.
- Lead quality by landing page and campaign if qualified_lead is imported.
For ecommerce, create one funnel for the buying path and one item report for merchandising. For lead gen, create one funnel from landing page to form_submit, then connect qualified_lead and booked_call outside GA4 or through imported events.
GA4 Explorations are useful for diagnosis. Looker Studio is better for recurring executive reporting. BigQuery is better when you need user-level sequences, longer retention windows, or joins with CRM and margin data.
Do not build 20 dashboards. Build the three people actually use.
Mistakes to avoid
- Tracking clicks instead of decisions. A CTA click without form submit, checkout start, or revenue context is thin data.
- Using custom ecommerce names. Use GA4 recommended events for ecommerce unless you have a strong reason not to.
- Forgetting currency. Revenue without currency creates reporting problems, especially for US brands selling internationally.
- Marking weak events as key events. This pollutes reporting and can hurt Google Ads optimization.
- Changing event names casually. Rename only with a migration plan.
- Ignoring refunds and cancellations. Gross revenue can make a campaign look healthy while net revenue tells a different story.
- Letting developers guess the business logic. Marketing, analytics, product, and engineering need one tracking spec.
Metrics that matter
Track metrics that explain money, not vanity motion.
For ecommerce:
- Purchase revenue
- Transactions
- Average order value
- Ecommerce conversion rate
- Product view to add_to_cart rate
- Add_to_cart to purchase rate
- Checkout abandonment rate
- Refund amount and refund rate
- New versus returning customer revenue
- Revenue by source, medium, and campaign
For SaaS and lead gen:
- Form_start to form_submit rate
- Lead to qualified_lead rate
- Cost per qualified lead
- Trial_started to activation rate
- Activation to paid conversion rate
- Subscription revenue by acquisition channel
- Booked_call rate
- Closed_won revenue by original source
For data quality:
- Events with missing required parameters
- Purchase events without transaction_id
- Duplicate transaction_id count
- Revenue gap between GA4 and source of truth
- Consent acceptance rate by region
- Tag firing errors in GTM or server-side tagging
Review these weekly if paid spend is material. Monthly is too slow when campaigns are burning cash.
The simple test for a good GA4 setup
Ask one question: can a smart person explain last week's revenue using your events without opening five unrelated tools?
They may still need Shopify, Stripe, HubSpot, Salesforce, or BigQuery for source-of-truth detail. That is fine. GA4 does not need to do every job.
It does need to show the path from traffic to intent to conversion to value. If it only shows sessions and random clicks, your analytics setup is decorating the room while the cash register is on fire.
Start with the revenue questions. Keep the events boring. Pass the parameters that matter. Reconcile against the system that actually collects money.
That is the GA4 setup worth having.
Discussion (0)
Loading comments…