Landing Page URL Builder

Shopify setup and verification

Shopify GA4 Ecommerce Tracking Setup

Connect GA4 through Google & YouTube, then inspect one purchase with its order ID, currency, value, and items. A page view alone does not prove that ecommerce tracking works.

Updated · Official references below

Ecommerce traffic moving through a Shopify store into analytics

Connect the intended property

Use the Google & YouTube connection flow. Confirm the destination before adding or removing any tracking.

Inspect the order, not just the visit

Check purchase parameters against a known order. Keep item value, tax, and shipping separate.

Separate QA from real traffic

Log test visits and orders. A successful test is implementation evidence, not a new customer or a product-demand signal.

1. Install GA4 through Google & YouTube

  1. Choose the GA4 property. In Google Analytics, use the existing property intended for this store, or create one if needed. Create or confirm its web data stream and record the destination ID.
  2. Open Shopify admin. Install or open the Google & YouTube sales channel.
  3. Complete its Google tag connection flow. Follow the current connection instructions linked in Shopify's setup documentation, using the property from step 1. Confirm the saved GA4 destination; do not paste an additional theme tag to finish the same installation.
  4. Make the storefront accessible. Shopify notes that Analytics cannot track events while the online store is in private mode. Use an accessible storefront for the checks below.

Shopify says a Merchant Center connection is not required for GA4 tag setup. It also documents automatic collection of certain ecommerce events after setup; that is not a guarantee that every custom storefront or event is covered. Verify your actual journey. [1]

2. Check the ecommerce journey

Use one product and one controlled session. These are acceptance checks for your implementation, not a claim that all four events fire automatically in every store. [3]

Ecommerce events to inspect
ActionEventWhat to inspect
Open a productview_itemThe intended product appears in items.
Add it to the cartadd_to_cartItem identity and quantity match the action.
Start checkoutbegin_checkoutCart items, currency, and value match this checkout.
Complete an orderpurchaseOrder ID, currency, value, and item details match the order.

3. Verify one purchase and its parameters

  1. Enable debugging for your device. Use Google Tag Assistant or your integration's supported debugging method. Do not add a second GA4 installation just to populate DebugView.
  2. Open GA4 → Admin → Data display → DebugView. Choose your debug device, follow the shopping journey, and open the collected events to inspect their parameters. DebugView requires debug mode; privacy controls or missing analytics consent can prevent events from appearing. [2]
  3. Use a known, authorized QA order. First establish whether your integration emits events for the test checkout mode you use. A missing event in an unsupported test mode is not enough to diagnose live tracking. If a real paid order is necessary, obtain the store owner's approval first.
  4. Compare the payload with the order. Check a non-empty transaction_id, the correct currency, item IDs and quantities, and value. Google's ecommerce example defines value as the sum of item price × quantity, with tax and shipping separate. Do not compare that value blindly with an all-in order total. [3]

Example purchase parameters only—not installation code. This illustration has two $20 items, $5 shipping, and $3 tax. The item value is $40, not $48. Never reuse the example transaction ID in live events.

{
  "transaction_id": "QA-EXAMPLE-1001",
  "currency": "USD",
  "value": 40,
  "shipping": 5,
  "tax": 3,
  "items": [
    {
      "item_id": "EXAMPLE-SKU",
      "item_name": "Example product",
      "price": 20,
      "quantity": 2
    }
  ]
}

Use DebugView to inspect delivery, not to settle campaign attribution. Google recommends Acquisition reports for more accurate attribution analysis. [2]

4. Troubleshoot duplicate purchases

  1. Inventory the senders. Review the channel integration, theme tags, GTM tags, custom pixels, and tracking apps. Multiple destinations are not automatically a duplicate: look for two independent senders delivering the same order to the same GA4 destination.
  2. Check order IDs. Each order needs a unique, non-empty ID that remains stable when the same order is sent again. Do not use a constant ID or customer-identifying information.
  3. Check delivery as well as reported purchases. Google deduplicates same-ID purchase events collected through web streams, not app streams. That does not prove you have only one sender. Empty or reused IDs can also undercount purchases. [4]
  4. Change one path at a time. Save the existing configuration before disabling a confirmed redundant sender, then repeat the order-level check. Do not remove every tag or disable a different destination simply because it appears in your inventory.

5. Keep acceptance tests out of growth claims

  • Record the QA date, test device, campaign labels, and test order IDs in a private test log.
  • Review developer-traffic filtering before treating debug visits as excluded. Debug mode alone is not evidence that report data is clean. [2]
  • Keep consent controls intact. A test without analytics consent is a different case from a broken tag.
  • Once event collection passes, test a labeled campaign link separately. UTMs describe the visit; they do not install ecommerce events.

Common setup questions

Do I need Merchant Center to connect GA4?

No. Shopify's GA4 setup instructions explicitly separate tag setup from connecting Merchant Center. [1]

Realtime shows a visit. Is purchase tracking ready?

Not yet. Inspect an order's purchase event and its parameters. A visit is only one part of the acceptance check.

Why is DebugView empty?

Confirm debug mode, the selected device and property, and analytics consent before changing the installation. DebugView is not a substitute for checking the integration's delivery method. [2]

Purchase collection verified? Test the campaign link next.

Keep installation checks and attribution checks separate. Build one clean link and record the test before relying on the report.

Build a free link