Shopify app

Send the purchases GA4 missed, from the server

Keep your tag. Fill the gap.

GapFill: GA4 Server Tracking is a Shopify app that compares your Shopify orders with the purchases in Google Analytics 4 and sends the orders GA4 didn’t track from the server. Revenue and conversions in GA4 stay close to your real sales.

Get it on the Shopify App StoreSee how to set it upPricing

An example of the missing purchases report. Of 1,240 Shopify orders, the GA4 tag tracked 86.1%.

Why GA4 misses purchases

GA4 tracks a purchase only when the tag runs in the buyer’s browser. The order exists in Shopify, but GA4 never hears about it, and the results you see in GA4, and in the ad platforms that learn from it, are smaller than they really were.

1The tag is blockedAd blockers and browser tracking limits stop the tag from running at all.
2The buyer never comes backAfter paying on an off-site payment page, some buyers simply close the tab.
3There is no visit at allIn-app checkouts in AI assistants and social apps, and subscription renewals, never open a page of your store.

How it works

  1. Connect GA4

    Sign in with Google and choose the GA4 property for your store.

  2. See the gap, for free

    The report shows how many of the last 30 days’ orders are missing from GA4 and how much revenue that is, by channel, source / medium and payment method.

  3. Nothing is sent until you approve

    Even after you start the paid plan, nothing is sent until you approve. You can check every order that would be sent first.

  4. Approve, and it sends every hour

    Every hour, orders still missing from GA4 26 hours after they were placed are sent (orders older than 70 hours are not). GapFill uses the browser ID stored at checkout, so the purchase is tracked as part of the original visit.

  5. Choose what else to send

    In-app checkouts in AI assistants and social apps are sent from the start. Subscription renewals, orders from other channels, refunds and cancellations can be turned on in Settings.

Built-in safeguards

No double counting
An order is not sent if GA4 already has the same transaction ID, and GapFill checks again after sending.
A broken tag is not covered up
If orders missing from GA4 suddenly jump, GapFill treats it as a broken tag and stops sending.
Consent is respected
Orders from buyers who declined analytics cookies are not sent. In regions that require consent, only orders with confirmed consent are sent.
Easy to tell apart
Every purchase GapFill sends carries gapfill=1, so you can separate it from tag-tracked purchases in GA4.

Pricing

The missing purchases report is free. Sending to GA4 needs the Standard plan: $19 per month with a 14-day free trial, including 200 events a month. Beyond 200, each event costs $0.02 to $0.05. No events are charged during the dry run, before you approve.

Pricing details

Get it on the Shopify App Store

FAQ

Does GapFill replace my GA4 tag?

No. Keep your current setup. GapFill only sends purchases that GA4 didn’t track.

Could a purchase be counted twice?

An order is not sent if GA4 already has the same transaction ID. GapFill waits at least 26 hours for GA4 to finish processing before it decides.

Which orders does GapFill send?

By default, online store orders that GA4 didn’t track, and in-app checkouts in AI assistants and social apps. Subscription renewals, refunds and the rest are sent only if you turn them on in Settings.

How is customer consent handled?

GapFill follows Shopify’s customer privacy settings. Orders from buyers who declined analytics cookies are not sent.

See all questions

Support

The help pages cover each step and common problems. For anything else, email [email protected]. We reply within two business days (Japan time). See the privacy policy for how GapFill handles data.

GapFill is developed by ULTRO Inc., Tokyo, Japan.