Datapipe

Ecommerce · USE CASE

Check GA4 purchase tracking against Shopify orders.

Match GA4 purchase transaction IDs to Shopify orders to see whether a drop in reported purchases is a sales change or a tracking gap. Add the live Google Tag Manager container to brief whoever owns the purchase tag.

Data sources
Assistant
Destination
Try it with your data Free with up to 3 data sources · No credit card
A WORKED EXAMPLE

Did sales drop, or did purchase tracking stop recording orders?

Order datesShopify ordersFound in GA4
Nov 5–812878 · 61%
Nov 2–49694 · 98%

Nov 2–8, 2026 · GA4 property time (New York) · Shopify orders converted from UTC · Tag Manager read Nov 11

Store orders held steady while GA4 stopped recording many of them from Nov 5. Brief whoever owns the purchase tag before treating it as a sales drop.

WHERE THE RESULT GOES

Google Sheets

Export each data source report to Google Sheets, then add your analysis or checklist to the review Sheet.

Example use case

Ask. Follow up.
Take the next step.

✦ AI assistantSample use case
Google AnalyticsShopifyGoogle Tag Manager
YOU

  1. 01
    Shopify orders + GA4 transaction IDs + live Tag Manager containerBrief the tag owner

    Next

  2. 02
    3 GA4-only IDs · 2 Shopify-only orders before Nov 5Confirm with store team

    Next

Nov 2–8, 2026 · GA4 property time (New York) · Shopify orders converted from UTC · Tag Manager read Nov 11

01 · CONNECT YOUR DATA

Your tools. One place to ask.

3 of 3 Free data sources
No credit card · Daily refresh

DatapipeYour project
Your AI assistantor a report in Sheets / Data Studio
  1. Create your free workspace

    Sign up with your company email. Your first project opens on Data sources.

  2. Add the data sources

    Choose the accounts for this use case. Authorize access and select the property or site.

  3. Bring your question

    Connect your project to a supported AI assistant, or build your source reports.

Create a free account →
Setup steps & what you need

Email/password signups confirm their email first. Use Google signup with a company account if you prefer.

  • Google Analytics: Authorize Google Analytics and select the GA4 property for the same website. Setup guide ↗
  • Shopify: Enter your shop, authorize it, and add that store to the project. Setup guide ↗
  • Google Tag Manager: Authorize Google Tag Manager with read-only access and select the container that runs your store’s tags. Setup guide ↗

Free includes 3 data sources across the workspace. One account/property added to one project counts as one. Extra properties or the same account in another project use another slot.

02 · ASK A USEFUL QUESTION

Start with a prompt.
Follow the evidence.

Copy these in order into your connected assistant.
Each builds on the answer before it.

01

Read purchases and orders for the same days

Read the full prompt
Use only this Datapipe project’s authorized data. Discover the connected accounts, datasets and compatible fields first. Confirm dates, timezones, currencies and data coverage. Keep missing or unmatched rows visible; never substitute sample data. Compare the sources explicitly and explain every match. Do not change source records or send messages.

From the connected GA4 property, tell me the property time zone, then read date and transactionId with ecommercePurchases for the complete days I choose, ending at least two days ago. Report how many rows came back; if the result may be cut off, split the date range. Then read Shopify Orders (GraphQL): orders_graphql.name, legacyResourceId, createdAt, cancelledAt and displayFinancialStatus for one extra UTC day before and after my range. Convert createdAt to the GA4 property time zone and keep only orders inside the chosen local days. Show orders and GA4 transaction rows per day without matching them yet. Do not compare revenue until currency, tax and shipping definitions are confirmed.
02

Match GA4 transaction IDs to Shopify orders

Read the full prompt
Show five GA4 transactionId values beside Shopify order names and legacy IDs from the same day, and ask me to confirm which identifier our purchase event sends. Normalize only that format, for example by removing a leading “#”. Match each order to at most one transaction ID. Return per day: Shopify orders, orders found in GA4 and the percentage found. Keep separate lists for orders with no GA4 purchase, GA4 IDs with no Shopify order, “(not set)” or empty IDs, and IDs with ecommercePurchases above 1. Keep cancelled orders in the count, because their checkout still happened. Do not treat a missing GA4 row as a failed sale.
03

Add Tag Manager context and draft the tracking brief

Read the full prompt
Read the connected Tag Manager container: the container overview (live version, paused tags, unpublished changes), live tags (name, type, paused, firing triggers, consent settings) and unpublished workspace changes. Identify the tags that appear to send the purchase event and say whether each is live, paused, scheduled or affected by an unpublished change. Tag Manager does not return publish dates or trigger conditions, so list what the tag owner must check in Tag Manager. If consent requirements could explain part of the gap, say so; do not suggest removing them. Draft a brief with the days where the found-in-GA4 share broke from its baseline, the unmatched order numbers, store-team confirmations still needed for test, admin-created, point-of-sale and subscription orders, and a checkout test plan. Keep observations separate from hypotheses. Do not change tags, publish versions, edit orders or send messages.

03 · USE WHAT YOU FIND

Brief the tag owner before changing campaigns or checkout.

  1. 01

    Read GA4 purchases and Shopify orders for the same complete days.

  2. 02

    Match transaction IDs to order numbers and check Tag Manager.

  3. 03

    Brief the tag owner before changing campaigns or checkout.

Check the result at your next review.

After the tag owner publishes a fix, wait until GA4 has processed at least three complete days, then repeat the same match. Compare the share of online-checkout orders found in GA4 with your baseline before the break. Keep the affected dates annotated: GA4 does not recover missed purchases, so use Shopify orders for those days.

Implementation tips for this use case

Compare the share of orders found in GA4 day by day, so a break stands out from the usual baseline. Ask the store team to confirm test, admin-created, point-of-sale and subscription orders, which do not send a browser purchase event. Give the unmatched order numbers, dates and live tag details to whoever owns tracking; they test in Tag Manager Preview mode and decide on any fix. Annotate the affected dates in reports, because publishing a fix later does not add missed purchases back to GA4. Copy the agreed reconciliation to the team’s Sheet.

WHEN YOU NEED MORE CONTEXT

Go a little deeper.

The method and reporting checks
behind this example.

How to reconcile GA4 purchases with Shopify orders
  1. Read GA4 purchases and Shopify orders for the same complete days.

    Add the GA4 property, the Shopify store and the Tag Manager container to one project. Choose complete days GA4 has finished processing; recent figures can still change for 24–48 hours. In GA4, read Date and Transaction ID with Ecommerce purchases; GA4 dates follow the property time zone. In Shopify, read Orders (GraphQL) with order name, legacy ID, created at, cancelled at and financial status. The Shopify report selects UTC days, so read one extra day on each side and convert created at to the GA4 property time zone before counting. Shopify normally returns orders from the last 60 days.

  2. Match transaction IDs to order numbers and check Tag Manager.

    Compare a few known orders to confirm which Shopify identifier your purchase event sends as transaction_id: the order name with or without “#”, or the numeric order ID. Normalize only that format and match each order to at most one ID. Keep GA4 IDs without an order, “(not set)” or empty IDs, repeated IDs and orders without a GA4 purchase in separate lists. Then read Tag Manager’s container overview, live tags and unpublished changes. They describe the current configuration only: Tag Manager does not return when a version was published, and this step applies only if your purchase event runs through that container.

  3. Brief the tag owner before changing campaigns or checkout.

    Compare the share of orders found in GA4 day by day, so a break stands out from the usual baseline. Ask the store team to confirm test, admin-created, point-of-sale and subscription orders, which do not send a browser purchase event. Give the unmatched order numbers, dates and live tag details to whoever owns tracking; they test in Tag Manager Preview mode and decide on any fix. Annotate the affected dates in reports, because publishing a fix later does not add missed purchases back to GA4. Copy the agreed reconciliation to the team’s Sheet.

See the complete example report
EXAMPLE REPORT

Did sales drop, or did purchase tracking stop recording orders?

Nov 2–8, 2026 · GA4 property time (New York) · Shopify orders converted from UTC · Tag Manager read Nov 11

Did sales drop, or did purchase tracking stop recording orders?
Order datesShopify ordersFound in GA4
Nov 5–812878 · 61%
Nov 2–49694 · 98%
WHAT TO LOOK ATStore orders held steady while GA4 stopped recording many of them from Nov 5. Brief whoever owns the purchase tag before treating it as a sales drop.

Brief the tag owner before changing campaigns or checkout.

Shopify has 128 orders created Nov 5–8 in the property’s time zone, and 78 of their order numbers appear as GA4 transaction IDs (61%). For Nov 2–4 it is 94 of 96 (98%). Tag Manager’s live version 38 has an unpaused GA4 purchase tag fired by “CE - checkout_completed”, and the “Purchase tag fix” workspace holds an unpublished update to that tag. Three GA4 transaction IDs on Nov 6 start with TEST- and have no Shopify order. Before Nov 5, orders #4815 and #4870 have no GA4 purchase; the store team confirms both were created in Shopify admin, so they never passed through the online checkout.

Try the example with sample CSVs

Fictional rows matching the example above. Attach these files to your assistant for a sample analysis.

Data method, reporting checks & sources

Add the GA4 property, the Shopify store and the Tag Manager container to one project. Choose complete days GA4 has finished processing; recent figures can still change for 24–48 hours. In GA4, read Date and Transaction ID with Ecommerce purchases; GA4 dates follow the property time zone. In Shopify, read Orders (GraphQL) with order name, legacy ID, created at, cancelled at and financial status. The Shopify report selects UTC days, so read one extra day on each side and convert created at to the GA4 property time zone before counting. Shopify normally returns orders from the last 60 days. Compare a few known orders to confirm which Shopify identifier your purchase event sends as transaction_id: the order name with or without “#”, or the numeric order ID. Normalize only that format and match each order to at most one ID. Keep GA4 IDs without an order, “(not set)” or empty IDs, repeated IDs and orders without a GA4 purchase in separate lists. Then read Tag Manager’s container overview, live tags and unpublished changes. They describe the current configuration only: Tag Manager does not return when a version was published, and this step applies only if your purchase event runs through that container. Compare the share of orders found in GA4 day by day, so a break stands out from the usual baseline. Ask the store team to confirm test, admin-created, point-of-sale and subscription orders, which do not send a browser purchase event. Give the unmatched order numbers, dates and live tag details to whoever owns tracking; they test in Tag Manager Preview mode and decide on any fix. Annotate the affected dates in reports, because publishing a fix later does not add missed purchases back to GA4. Copy the agreed reconciliation to the team’s Sheet.

GA4 dates use the property time zone; Shopify created times are converted from UTC before orders are counted by day. The transaction ID format is confirmed with known orders, and each order matches at most one GA4 ID. Test, admin-created, point-of-sale and subscription orders leave the expected count only after the store team confirms them. Tag Manager evidence is the current live configuration, not a record of when a change was published.

  • GA4 dates use the property time zone; Shopify created times are converted from UTC before orders are counted by day.
  • The transaction ID format is confirmed with known orders, and each order matches at most one GA4 ID.
  • Test, admin-created, point-of-sale and subscription orders leave the expected count only after the store team confirms them.
  • Tag Manager evidence is the current live configuration, not a record of when a change was published.
  • Access to the intended Google Analytics account or property.
  • Access to the intended Shopify account or property.
  • Access to the intended Google Tag Manager account or property.
  • GA4 dates use the property time zone; Shopify created times are converted from UTC before orders are counted by day.

For blended reports, align dates, normalized URLs, and reporting grain. Query-level search rows must not duplicate page-level sessions.

A FEW USEFUL ANSWERS

Before you start.

Why not compare daily GA4 purchases with Shopify order counts?

Totals can agree by accident when test purchases, duplicates and missed orders offset each other. Matching transaction IDs to order numbers shows exactly which orders are missing, which is what the tag owner needs for testing.

Should GA4 record every Shopify order?

Not necessarily. Consent choices, blocked scripts and orders created outside the online checkout mean some orders never send a purchase event. Use your own steady baseline and look for a sudden change.

What if our purchase event is not sent through Google Tag Manager?

Skip the Tag Manager step and give the reconciliation to whoever manages your tracking. Shopify stores can send GA4 purchases in several ways, such as an app or a custom pixel; the owner checks the method you actually use.

Why read an extra day of Shopify orders?

GA4 dates follow the property time zone, while the Shopify order report selects UTC days. Reading one extra day on each side and converting created times gives you the same local days in both sources.

Can Datapipe fix the tag or add the missing purchases?

No. The Tag Manager data source reads the container and does not edit or publish anything. The tag owner tests and publishes any fix in Tag Manager, and purchases GA4 missed are not added back afterwards.

YOUR NEXT STEP

Try it with your own data.

Start free with up to 3 data sources. No credit card.

Start free →