Skip to main content
Sometimes your Upstack Data pixel might not be firing correctly, sending inaccurate event counts, or tracking the wrong values — and pixel errors hurt Meta delivery and campaign performance. This guide walks through our diagnostic process so you can identify and fix the most common pixel issues, then confirm everything works with an end-to-end test purchase.

Quick diagnosis checklist

Before diving into detailed troubleshooting, check these key areas:
  • Pixel status — Any reported errors in Meta Events Manager? Do events fire in real time in Pixel Helper?
  • Meta Events Manager — Do event counts match what you see in Upstack?
  • Script attributes — Is the pixel using async (correct) or defer (wrong)?
  • Theme and app conflicts — Do custom theme code or third-party apps interfere with the pixel?
  • Third-party tracking — Are other tools creating duplicate events?
  • Conversion values — Do AddToCart and Purchase events carry the post-discount price?
  • Click ID — Is the Click ID present on your events, including Purchase?
  • Domain configuration — Is your pixel correctly set up for subdomains or aliases?

Step 1: Use Pixel Helper to view real-time events

What is Pixel Helper? Meta’s official browser extension that shows all Meta pixels firing on your site in real time. Upstack also offers its own Pixel Helper extension for debugging Upstack-specific events.
  1. Install the Pixel Helper browser extension from Meta.
  2. Navigate to your Shopify store or landing page.
  3. Open Pixel Helper (click the icon in your browser toolbar).
  4. Perform an action (page view, add to cart, purchase) on your site.
  5. Check if the event appears in Pixel Helper with the correct event name, value, and Click ID.
What to look for:
  • Events appearing twice = potential duplicate tracking
  • Events appearing once = normal
  • Events not appearing = script loading issue
  • Events with value: $0 = bundle or discount configuration issue
  • Events with missing Click ID = domain or redirect issue

What a healthy event looks like

Each action on your store should fire one event: Each event in Pixel Helper shows:
  • Event name (PageView, ViewContent, AddToCart, Purchase)
  • Event time — when it fired
  • Event value — the monetary value, if applicable
  • Click ID — Meta’s attribution ID
  • User ID — if available
  • Additional properties — product name, quantity, and so on
Example Purchase event:
Shopify runs checkout and thank-you page events inside a sandbox that Pixel Helper can’t always see. If Purchase doesn’t appear in Pixel Helper, confirm it in Meta Events Manager instead (Step 2).

If no events appear

If Pixel Helper is open but no events appear, check in order:
  1. Are you on the right store? Make sure you’re visiting your actual Shopify store — check the URL in your address bar.
  2. Are the app embed and the custom pixel both on? In Shopify admin, go to Online Store → Themes → Customize → App embeds and confirm Upstackified is toggled on. Then check Settings → Customer events to confirm the Upstack custom pixel is added — you need both. If either is missing, follow the complete Shopify setup guide.
  3. Is your theme compatible? Some older custom themes don’t support theme app extensions — contact Upstack support.
  4. Is a privacy extension blocking scripts? Extensions such as Privacy Badger or uBlock block tracking scripts. Disable them temporarily or test in a private/incognito window.
  5. Did you just install the app? Events can take a few minutes to start appearing. Wait a few minutes and refresh.
Still not working? Contact Upstack support with a screenshot of your Shopify theme settings and Pixel Helper.

Step 2: Compare Pixel Helper to Meta Events Manager

The official source of truth for pixel data is Meta’s Events Manager.
  1. Go to your Meta Business Suite and navigate to Events Manager.
  2. Select your pixel and click the Test Events tab.
  3. Keep this tab open in one window.
  4. In another window, visit your Shopify store while logged into Meta Business Suite.
  5. Perform test actions (page view, add to cart, etc.) and watch Events Manager for incoming events in real time.
Meta logs test events separately, so they don’t affect your ad optimization or reporting. What to compare:
  • Event counts: Pixel Helper and Events Manager should show similar counts (within 5–10%).
  • Event timing: Do events appear within seconds of the user action?
  • Event values: Do they match what Pixel Helper shows?
If they don’t match: Your pixel is likely firing, but something is preventing Meta from receiving the full data. This often indicates a consent/privacy setting issue or a redirect problem.
  • More in Pixel Helper than Events Manager: events fire on your site but don’t reach Meta (consent/privacy issue).
  • More in Events Manager than Pixel Helper: another source may be sending data — check for competing tracking (Step 4).
  • Fewer Purchase events: some checkout sessions may be incomplete or blocked.

Step 3: Check your script tag configuration

The way your pixel script loads affects which events are captured. There’s a critical difference between async and defer. To find your pixel script:
  1. On your Shopify store, right-click anywhere → Inspect (or press F12).
  2. Search for fbq in the page source (Ctrl+F / Cmd+F).
  3. Find your Meta pixel script tag.
Why this matters: If your pixel uses defer instead of async, it won’t load until after the page is fully rendered. If users bounce within the first 2–3 seconds, the pixel never fires, causing major under-counting. How to fix: Contact Upstack support with a screenshot of your script tag. We can update your pixel configuration to use async loading.

Step 4: Check for competing tracking tools

If you’re seeing double the events (e.g., Upstack shows 10,000 page views but Facebook shows 20,000), you likely have duplicate pixel tracking. Common culprits:
  • Google Tag Manager (GTM) firing the same pixel
  • Stape (a data layer tool) sending duplicate events
  • Triple Whale Sonar tracking the same conversions
  • Multiple Upstack Data pixels installed
  • Replo or custom page tracking firing the same events
To confirm duplicates: add a product to your cart and check Pixel Helper. Two AddToCart events at the same time means duplicate tracking; one means you’re clean. To fix: Disable the duplicate tracking source — usually by keeping Upstack Data as your primary tracking method and removing others.
  1. Check GTM: open your Shopify container in Google Tag Manager, search for “Meta”, “Facebook”, or “Pixel”, and disable or remove any conflicting pixel tags.
  2. Check Stape: verify it isn’t configured to send the same events.
  3. Check Triple Whale: in Triple Whale settings, check whether Sonar is enabled and sending pixel events.
  4. Check for multiple Upstack pixels: in Shopify admin, go to Settings → Customer events and verify only one Upstack custom pixel is active. (The Upstackified app embed under Online Store → Themes → Customize → App embeds and the Upstack custom pixel are both required and don’t duplicate each other.)
  5. Verify the fix: refresh your store with Pixel Helper open, repeat your actions, and confirm only one event fires per action.

Step 5: Audit third-party app configurations

If you’re using apps like Replo (custom pages), Kaching (one-click upsells), or other checkout builders, they may be sending their own conversion data that conflicts with Upstack. Apps to check:
  • Replo — Verify the pixel script is set to async loading, not defer.
  • Kaching — Check if it’s tracking Add to Cart or Purchase separately.
  • Bundle/discount apps — These often send inflated values because they show the full price before discount.
Custom theme code can also interfere — if you’ve modified your theme, check that no custom scripts conflict with the pixel, and temporarily disable suspect apps to see if the error clears.

Step 6: Fix bundle and discount tracking issues

The problem: When products are bundled with a discount, your store shows the full price first, then applies the discount at checkout. Your pixel may capture the full (inflated) price, causing Meta to optimize for the wrong bid. Example: A $150 bundle shows as $150 in inventory, but costs $80 at checkout. Your pixel fires with value: $150, Facebook optimizes for high AOV, bid errors occur. To test it:
  1. Find a discounted product or bundle on your store and note the original and discounted prices.
  2. Open Pixel Helper and add the item to your cart.
  3. Check the AddToCart event value. It should show the final, post-discount price — for a product listed at $150 with a 50% discount, $75, not $150.
  4. Complete a purchase with the discount and check the Purchase event the same way.
How to fix:
  1. Identify your bundle or discount app (Kaching, Bold, Recharge, etc.) and open its settings in Shopify admin.
  2. Find the Tracking or Pixel configuration section and look for options to:
    • Send zero-dollar values for bundled items
    • Wait until the discount is applied before firing events
    • Use post-checkout prices only
  3. Or, configure the app to send the post-discount price to the pixel.
  4. Make a discounted test purchase and verify the Purchase event shows the correct value.
If you need help, contact Upstack support with details about your discount or bundle app setup.

Step 7: Check for redirect loops and domain issues

If your Click ID is being lost, or if events aren’t firing on subdomains, you likely have a domain configuration issue. Common problems:
  • Subdomains — If you have www.example.com and example.com, the pixel may not recognize both.
  • Alias domains — Secondary domains may need server-side pixel setup.
  • Redirects — A redirect loop can break Click ID preservation.
To check the Click ID:
  1. Open Pixel Helper and click any event (PageView, AddToCart, or Purchase).
  2. Look for the Click ID field (Meta receives it as fbc).
  3. If it’s missing, use the table below to find the cause.
How to fix:
  1. In Shopify admin, go to Settings → Domains, note your primary domain, and verify your store URL matches it.
  2. Consolidate to one primary domain if possible — if you have mystore.com and www.mystore.com, redirect one to the other.
  3. For subdomains, ensure the pixel is hard-coded on all domains.
  4. For redirects, remove redirect loops in your domain configuration. For custom pages (Replo), make sure the fbclid parameter is preserved in redirects.
  5. Contact Upstack support — we can configure server-side pixel tracking if needed.
To test Click ID preservation through redirects:
  1. Visit your store with a test click ID: add ?fbclid=ABC123 to your URL.
  2. Proceed through checkout, letting any redirects happen.
  3. Check the Purchase event for the Click ID.
  4. If it’s missing, contact Upstack support about server-side tracking.

Step 8: Run a test purchase end to end

Once the individual checks pass, run one full session with Pixel Helper open and confirm each event fires exactly once with the right data.
  1. Browse. Visit several pages (home, collection, product, about). Each page load should fire exactly one PageView. If page views are missing, check your script tag (Step 3).
  2. Add to cart. Refresh the page to clear Pixel Helper, then add a product to your cart. Exactly one AddToCart should fire, showing the post-discount price, currency, content IDs, and quantity. Two or more means competing tracking (Step 4); a wrong value means a bundle or discount issue (Step 6).
  3. Purchase. Note the final price you’ll pay and complete checkout. The Purchase event should show:
    • Value: the exact amount you paid
    • Currency: your store’s currency (USD, CAD, etc.)
    • Content IDs: the product IDs from your order
    • Quantity: the number of items purchased
    A wrong value points to Step 6; a missing Click ID to Step 7. If Purchase doesn’t show in Pixel Helper, check it in Meta Events Manager (see the note in Step 1).

When to escalate to Upstack support

If you’ve worked through the above steps and still have issues, gather this information and contact us:
  1. Screenshot of Pixel Helper showing the event (or lack thereof).
  2. Screenshot of your script tag (from browser Inspector).
  3. Screenshot of your Shopify theme settings showing whether the app embed is enabled.
  4. List of third-party apps you have installed.
  5. Comparison of Upstack vs. Facebook event counts for the last 24–48 hours.
  6. Your Shopify store domain(s).
  7. Exact event counts — what you expect vs. what you’re seeing.
  8. Any error messages you’ve seen.

Summary: the diagnostic path

  1. Open Pixel Helper — events firing? → Go to Step 2.
  2. No events? → Work through If no events appear, then check the script tag (Step 3).
  3. Double events? → Check for competing trackers (Step 4) or third-party apps (Step 5).
  4. Wrong values? → Check bundle/discount config (Step 6).
  5. Missing Click ID? → Check domain setup (Step 7).
  6. Everything looks right? → Confirm with a test purchase (Step 8) and the checklist below.
  7. Still stuck? → Escalate with screenshots and details.

Verification checklist

  • Pixel Helper installed and active
  • PageView fires once per page load
  • AddToCart fires once per add action, with no duplicates
  • Purchase fires with the correct post-discount value
  • Click ID present on your events
  • No duplicate events from competing tools
  • Event counts match between Pixel Helper and Events Manager (within 5–10%)
  • Meta Events Manager shows events arriving in real time
  • Conversion values are accurate in Meta
  • Custom pages have the pixel hard-coded (if applicable)
All checks passing? Your Upstack Data pixel is working correctly.
Still stuck? Contact support@upstackdata.com with your Pixel ID and a description of the issue. We typically respond within a few hours.

No events appear in dashboard

When events never reach Upstack at all.

Duplicate purchases

Fix double-counted conversions in Upstack.

Complete Shopify setup guide

Install and configure Upstack Data end to end.

Verify events (Upstack pipeline)

Confirm events are arriving in the Upstack dashboard.

Set up on landing pages or subdomains

Add the Upstack Data pixel script to a landing page or subdomain.