Skip to content

How to check GA4 accuracy before you set ad budget

Pick a closed month and count GA4's purchases against Shopify's orders. Note the reporting identity and attribution settings, size the revenue left in Direct and Unassigned, and check every paid channel has a cost. Then GA4 can rank channels; a test decides.

By , Founder & CEOUpdated 7 min read

Usually one closed month and eight checks. Count GA4's purchases against Shopify's orders, note the reporting identity and attribution settings, and size the revenue GA4 leaves in Direct and Unassigned. Then check every paid channel has a cost. If the counts match and that share is small, GA4 is accurate enough to rank channels.

Eight checks over one closed month, most of them in GA4 and one in Shopify. The menu paths come from Google's and Shopify's help pages as they read on 1 October 2026. If a settings page will not open, ask whoever runs the property: reporting identity takes the Editor role, and attribution settings take Marketer.

Step by step

  1. Pick a closed month. Choose one that ended at least two weeks ago. Recent data is still settling. Processing can take up to 48 hours, and attribution credit can change for up to 12 days after a key event. Menu path: (any report) > date picker at the top right.
  2. Count GA4's purchases. Read the Event count on the purchase row, which is the number of times users triggered it. If you set up GA4 through Shopify, purchase is among the events collected for you. Menu path: Reports > Engagement > Events.
  3. Count Shopify's orders. Open Orders over time for the same dates. An order edited after the day it was placed shows up there as a separate order, so note any edits. Menu path: Shopify admin > Analytics > Reports > Category filter > Orders > Orders over time.
  4. Work out the capture rate. Divide GA4's purchases by Shopify's orders. Shopify's help lists common reasons for a gap: cookies or JavaScript switched off, extensions that block Google Analytics, and different reporting time zones. Match the time zones before you trust the ratio, and write it down with the month, because the trend matters more than one reading. Menu path: none, this step is arithmetic.
  5. Check the reporting identity. It decides which visits GA4 joins into one person. Blended uses your user ID, then the device ID, then modelling, while Device based uses the device ID alone. Switching does not change collected data, so comparing views is safe. Menu path: Admin > Data display > Reporting identity.
  6. Note the attribution settings. Write down the reporting attribution model and the purchase lookback window, which is 90 days unless someone changed it. A new model also applies to past data, while a new window only counts from the day it is set. Menu path: Admin > Data display > Events > Attribution settings.
  7. Measure what GA4 cannot place. Read Total revenue by Session default channel group, then add the Direct and Unassigned rows and divide by the total. Unassigned is what GA4 shows when no channel rule matches the event data. Menu path: Reports > Acquisition > Traffic acquisition.
  8. Check that every paid channel has a cost. Read Ads cost for each channel in All channels. A paid channel with revenue but no cost needs a campaign data import, and Meta and TikTok are among Google's direct sources. The utm_source and utm_medium on your ads must match the imported values exactly. Menu path: Advertising > Planning > All channels, then Admin > Data collection and modification > Data import.

A worked example

For illustration, here is one invented month, in round numbers on purpose.

CheckFor illustration
Shopify orders, Orders over time1,000
GA4 purchases, Events report900
Capture rate (900 divided by 1,000)90%
Direct plus Unassigned, share of GA4 Total revenue45%
Paid channels with Ads cost in All channelsGoogle Ads only

Say your Shopify report shows 1,000 orders and GA4 shows 900 purchases. GA4 caught nine orders in ten, which is a gap you can live with if it holds month after month.

Suppose Direct and Unassigned hold 45% of GA4's revenue. For illustration, if orders are worth about the same in every channel, GA4 can place 0.90 times 0.55 of your sales, or about half. So it can rank channels on roughly half of what you sold, and it says nothing about what the other half needed.

And if only Google Ads carries cost in All channels, the Return on ad spend column speaks for one platform. Meta's spend never enters the comparison.

One store's export shows the same shape from another angle. Direct holds 57.7% of its revenue in last click, first click and touched views alike (Channels sheet). The other channels in that store shared less than half of the revenue.

If your step 7 share looks like that, GA4 is reading less than half the room. The next section says what that is still good for.

What can I decide once GA4 passes?

Three kinds of decision sit comfortably on a passing GA4. You can compare campaigns within one channel, such as your search campaigns, because they meet the same rules and the same kind of touch. You can spot a broken tag or a channel that went quiet. And you can shortlist the channels worth testing.

Three kinds still need a test. Setting the total budget is one, and moving money between Google Ads and Meta is another. Cutting a channel people mostly watch rather than click is the third. GA4 records credit, and those calls turn on cause.

What should I check when the numbers do not match?

  • GA4 shows more purchases than Shopify. Look for a purchase event that fires twice. Google drops a repeat only when it carries the same transaction ID as the first.
  • GA4 shows far fewer purchases. Check that the purchase event carries transaction_id, value, currency and items. Google treats an ecommerce event that misses a required parameter as a custom event. An empty transaction ID is worse, because GA4 then merges every purchase that has one.
  • Sessions moved in late September 2026. Shopify rolled out a new session measurement from 21 to 23 September 2026. Sessions and conversion rate can shift with no change in orders, so compare orders, not sessions.
  • An exploration shows a sampling notice. GA4 samples when a query passes the event quota, which is 10 million events on a standard property. The data quality icon shows the share of data used, and a shorter date range helps.

What to do this week

  1. Run the count on two months. Repeat steps 2 to 4 for August now, and for September once two weeks have passed. Pass: the capture rate barely moves between them. Fail: it jumps, so find what changed in your tags or checkout before you use either month.
  2. Watch one purchase arrive. After your next real order, open the Realtime report and find purchase in the Event count by Event name card. Google says that card shows events from the last 30 minutes. Pass: the purchase appears soon after the order. Fail: it never shows, so GA4 is losing orders at the tag.
  3. Test the biggest move first. Pick the largest budget change you plan before the year ends. Hold that channel back in a few regions first, using the geo holdout steps. Pass: a start date and test regions are set before the money moves. Fail: the money moves on GA4 credit alone.

Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework

Sources, 1 October 2026: All channels performance report (Google Analytics Help); Data freshness (Google Analytics Help); Events report (Google Analytics Help); Ecommerce purchases report (Google Analytics Help); Order reports (Shopify Help Center); Analytics discrepancies (Shopify Help Center); Reporting identity (Google Analytics Help); Select attribution settings (Google Analytics Help); Traffic acquisition report (Google Analytics Help); Default channel group (Google Analytics Help); Import campaign data (Google Analytics Help); About Data Import (Google Analytics Help); Minimize duplicate key events with transaction IDs (Google Analytics Help); About data sampling (Google Analytics Help).

Frequently asked questions

  • What is reporting identity in GA4?
    It is how GA4 decides which visits belong to one person. Blended uses your user ID, then the device ID, then modelling. Observed drops the modelling, and Device based uses the device ID alone. Switching does not change collected data, so you can compare the views safely.
  • Why does GA4 show more purchases than Shopify?
    Look first for a purchase event that fires twice, for example when a buyer reloads the confirmation page. GA4 drops a repeat only when it carries the same transaction ID as the first, so send each order's own ID. Never send an empty one.
  • Can I get Meta ad costs into GA4?
    Yes. In Admin, under Data collection and modification, open Data import and set up a campaign data source. Google lists Meta and TikTok among its direct third-party sources. Your ad links need utm_source and utm_medium values that match the import exactly, or the costs will not join.

Go deeper: Causal attribution, explained.

Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.

Keep reading

Terms in this article

Browse the full glossary

Your platforms guess.
We run the math.

Upload a GA4 export and see what each channel caused, next to last-click, in 1–2 minutes. The read is yours to keep.

Free, in your browser: your file is not uploaded. The full read is €99, refundable within 30 days. Prices exclude VAT.
Or book a 30-min call.