Documentation Index
Fetch the complete documentation index at: https://docs.upstackdata.com/llms.txt
Use this file to discover all available pages before exploring further.
Quick Diagnostic
Symptoms and Fixes
Symptom: Same purchase event appears twice with identical order details
Symptom: Same purchase event appears twice with identical order details
Likely cause: Both a client-side pixel (e.g., Shopify’s native conversion tracking or a custom script) and Upstack’s server-side integration are capturing the same purchase event. Without matching
event_id values, Upstack treats them as separate events.Fix:- Go to Live Event Stream and click on the duplicate purchase events. Compare their
sourcefield:- If one shows
pixel(client-side) and the other showswebhookorserver— this confirms the overlap.
- If one shows
- Recommended approach — rely on server-side only: In your Shopify admin, go to Settings → Customer events and disable any custom purchase tracking scripts that duplicate what Upstack already captures via server-side webhooks.
- Alternative — keep both with deduplication: If you need client-side events for latency reasons, ensure both the client pixel and the Shopify webhook send the same
event_id(the Shopify order ID works well). Upstack deduplicates events sharing the sameevent_idwithin a 5-minute window. - After making changes, monitor the Live Event Stream for 30 minutes to confirm duplicates have stopped.
Symptom: PageView or AddToCart events are doubled on certain pages
Symptom: PageView or AddToCart events are doubled on certain pages
Likely cause: A page reload or client-side navigation quirk is causing the Upstack pixel to fire twice. Common triggers include Shopify’s AJAX cart updates (which some themes handle as full page reloads) and single-page app themes that fire both a
popstate event and a full page load.Fix:- Open your store in Chrome → DevTools → Network tab. Filter by
upstackor your pixel endpoint. - Navigate to the page where duplicates occur. Watch for two network requests firing for the same event.
- If you see two requests:
- Check if your theme uses AJAX cart functionality — some themes trigger a full page reload after adding to cart, which fires
PageViewagain. - Check if you have a custom Upstack initialization script in addition to the app embed — only one should be active.
- Check if your theme uses AJAX cart functionality — some themes trigger a full page reload after adding to cart, which fires
- Go to Online Store → Themes → Customize → App embeds and ensure only the official Upstack Data embed is enabled. Remove any manual
<script>tags referencing Upstack from your theme’slayout.liquidortheme.liquidfiles. - If you’re using a headless or SPA Shopify theme, consult the headless integration guide — the pixel should track route changes via the History API, not full page reloads.
Symptom: Revenue numbers are exactly 2x what Shopify reports
Symptom: Revenue numbers are exactly 2x what Shopify reports
Likely cause: Every purchase is being double-counted. This is a strong signal of the client/server overlap described in the first accordion. When both sources fire without deduplication, every dollar is counted twice.Fix:
- This is the same root cause as the first symptom above. Follow those steps first.
- As a quick verification, go to Analytics → Attribution and compare your total revenue for the last 7 days against Shopify’s Analytics → Reports → Total sales for the same period. If Upstack is ~2x, duplicates are confirmed.
- After fixing the duplication source, note that historical data will still reflect the doubled numbers. Revenue will normalize going forward.
- If you need corrected historical data, contact support with the date range affected — we can flag the duplicate events.
Symptom: Shopify thank-you page triggers multiple Purchase events
Symptom: Shopify thank-you page triggers multiple Purchase events
Likely cause: The Shopify order confirmation (thank-you) page can be reloaded by the customer — by refreshing the page, clicking a bookmark, or returning via browser history. Each reload fires the client-side purchase event again if the pixel doesn’t guard against repeat fires.Fix:
- Upstack’s server-side integration is immune to this issue because it processes the Shopify
orders/paidwebhook, which fires exactly once per order. - If you’re relying on the client-side pixel for purchase tracking, the Upstack pixel includes built-in protection against thank-you page reloads — it stores the last order ID in session storage and skips duplicate fires.
- If duplicates persist, verify you’re using the latest version of the Upstack app embed:
- In Shopify admin → Apps → Upstack Data, check for any available updates.
- If using a manual script, update to the latest version from your Upstack dashboard → Settings → Pixel → Installation.
- For maximum accuracy, we recommend relying on server-side
Purchasetracking exclusively and using client-side events only for browsing behavior (PageView,AddToCart,ViewContent).
Escalation
Still stuck? Contact support@upstackdata.com with your Pixel ID and a description of the issue. We typically respond within a few hours.
Related guides
Disable existing tracking
Turn off redundant tracking pixels and integrations to prevent duplicate events.
Disable Facebook data sharing
Disable the Facebook and Instagram Sales Channel data sharing in Shopify.
Disable TikTok data sharing
Disable TikTok Sales Channel data sharing in Shopify to prevent duplicate conversions.