GapFill Help
What to send
You choose what is sent under Settings › What to send. To begin with only the first two are on; nothing else is sent until you turn it on.
The six options
| Option | Default | What is sent |
|---|---|---|
| Purchases the GA4 tag missed | On by default | Orders placed through your online store checkout that GA4 didn’t track. This is the main job of GapFill. |
| In-app checkouts in AI assistants and social apps | On by default | Orders completed in the built-in checkout of Google AI Mode, Gemini, Microsoft Copilot, Meta AI, Instagram or Facebook. |
| Orders from other channels | Off by default | Draft orders, orders created by other apps, Point of Sale and so on. You choose channel by channel. |
| Subscription renewals (second order onward) | Off by default | Orders charged without the buyer visiting your store. |
| Refunds | Off by default | Refunds of orders that have a purchase in GA4, sent as refund events. |
| Cancellations | Off by default | Cancellations without a refund, sent as a full refund. |
Purchases the GA4 tag missed
- What it does
- Sends orders placed through your online store checkout that GA4 didn’t track. These are orders where the tag never ran: ad blockers, browser tracking limits, or off-site payments that never return to your store.
- What you see in GA4
- The purchase is sent with the browser ID stored at checkout, so GA4 tracks it for the same person as the original visit, with the source of that order. More detail
- Turn it on when
- Almost every store. This is the main job of GapFill.
- Leave it off when
- Only for a short break, for example while you change your GA4 setup. Even then, Pause is the better tool.
- Keep in mind
- An order is sent 26 hours or more after it was placed. Until then GapFill waits for the GA4 tag to track the purchase itself, and sends only what GA4 still doesn’t have.
In-app checkouts in AI assistants and social apps
- What it does
- Sends orders completed in the built-in checkout of Google AI Mode, Gemini, Microsoft Copilot, Meta AI, Instagram or Facebook. No page of your store is opened, so the GA4 tag doesn’t run. However well your tag is set up, this revenue never reaches GA4.
- What you see in GA4
- The source is the assistant or app. The medium is
ai-assistantfor AI assistants andreferralfor social apps. There is no visit to attach the order to, so each one is tracked as a separate user. More detail - Turn it on when
- You want to see what sold inside AI assistants and social apps next to your other channels in GA4’s acquisition reports.
- Leave it off when
- You use GA4 only to analyse what visitors do on your site, and don’t want revenue completed elsewhere mixed in.
- Keep in mind
- In-app checkouts in a social app are sent as
referraleven when they came from an ad. The Shopify order only records which app the payment was made in, not whether an ad led to it. Use Meta Ads Manager for ad results.
Orders from other channels
- What it does
- Sends draft orders, orders created by gifting, cross-sell or pre-order apps, and Point of Sale orders. Channels found in your last 30 days of orders are listed by the name of the app or sales channel that created them, and you pick the ones you want.
- What you see in GA4
- There is no visit to attach them to, so each order is tracked as a purchase by a separate user. The source and medium are exactly what you enter for each channel. More detail
- Turn it on when
- You want GA4 revenue closer to your Shopify total, or you want to see sales made through cross-sell or pre-order apps in GA4.
- Leave it off when
- Channels you don’t want in your site analytics, such as phone orders, marketplaces or in-store sales. Leave those unselected.
- Keep in mind
- If you enter a source name you already use (google, instagram and so on), the revenue is mixed into that source. Use a name of its own that tells you the channel.
Subscription renewals
- What it does
- Sends subscription orders from the second one onward. They are charged without the buyer visiting your store, so the GA4 tag doesn’t run. Unless they are sent, GA4 only has the revenue of the first order.
- What you see in GA4
- You choose one of two ways to send them. See the table below. More detail
- Turn it on when
- Subscriptions are a large share of your sales and GA4 revenue looks much lower than Shopify, or you want lifetime revenue per customer in GA4.
- Leave it off when
- You use GA4 only to analyse new customer acquisition and don’t want renewal revenue in it.
| How to send | What you see in GA4 | Choose this when |
|---|---|---|
| As the same customer | Sent with the browser ID from the customer’s first order. GA4 adds the renewal to the same person, with the source of that first order. | You want lifetime revenue and purchase counts per customer in GA4 |
| As a separate user | Each order is sent as a separate user, with the source shopify_subscription / renewal. | You only want total revenue to match Shopify, and don’t want renewals in your acquisition analysis |
Renewals of a customer who declined analytics cookies at the first order are never sent, whichever way you choose. Customers with no first-order record (for example, subscriptions that started before you installed GapFill) are sent as separate users even when “As the same customer” is selected.
Refunds
- What it does
- Sends refunds of orders that have a purchase in GA4 as
refundevents, unless GA4 already has the refund. For a partial refund, only the refunded amount is sent. - What you see in GA4
- The refund is subtracted from total revenue in GA4. Revenue by source depends on the report: User acquisition takes it off the source / medium of the original purchase, and Traffic acquisition shows it under
(not set). More detail - Turn it on when
- You want total revenue in GA4 after refunds.
- Leave it off when
- You use GA4 as a record of purchases and track refunds in Shopify or your accounts, or you don’t want refunds to move revenue by source.
- Keep in mind
- While this is off, the revenue of refunded orders stays in GA4.
Cancellations
- What it does
- Sends cancellations without a refund (for example, an order cancelled while unpaid) as a full refund. A cancellation with a refund is handled under Refunds.
- What you see in GA4
- The same as a refund: the order amount is subtracted from total revenue in GA4.
- Turn it on when
- Many of your orders are cancelled before payment, for example with pay-later or bank transfer.
- Leave it off when
- You rarely have cancellations, or you use GA4 as a record of purchases.
- Keep in mind
- While this is off, the revenue of cancelled orders stays in GA4.
Good to know
- If you turn a channel off later
- Refunds of purchases GapFill already sent for that channel are still sent. Otherwise GA4 would keep revenue that was refunded.
- How events are counted
- Whatever option an event was sent under, each one counts as one event. See Billing.
- Consent
- An order is never sent if the buyer declined analytics cookies, whichever option it falls under. Orders from regions that require consent (EEA, UK, Switzerland) are sent only when consent was confirmed.
Still stuck?
Email us with your store address (example.myshopify.com). We reply within two business days (Japan time). [email protected]