Troubleshooting Pixel Issues
Troubleshooting Pixel Issues
If your Attribution.ai pixel is not capturing events, data appears incomplete, or you are seeing errors related to tracking, this guide provides step-by-step diagnostic procedures for every common pixel issue.
Diagnostic Overview
Before diving into specific issues, perform this quick diagnostic checklist:
- Is the pixel installed? (Check page source for "attribution.ai" or "pixel.js")
- Is the pixel loading? (Check browser DevTools Network tab)
- Is the pixel sending events? (Check for tracking requests in the Network tab)
- Are events appearing in the dashboard? (Check the Events tab)
If all four checks pass, the pixel is working correctly. If any step fails, the relevant section below will help you resolve it.
Issue: No Events Appearing At All
This is the most common pixel issue. Work through these steps in order:
Step 1: Verify the Pixel Is in Your Page Source
- Open your Shopify store in a browser.
- Right-click anywhere on the page and select View Page Source (or press Ctrl+U / Cmd+U).
- Use Ctrl+F / Cmd+F to search for
attribution.aiorpixel.js. - If found, the pixel snippet is installed. Proceed to Step 2.
- If not found, the pixel is not installed. Go to Settings > Pixel Setup in your Attribution.ai dashboard and follow the installation instructions.
Common reasons the pixel might be missing from the page source:
- The automatic installation was removed when you switched Shopify themes
- A theme update overwrote the manual installation in theme.liquid
- The pixel was installed on a development theme but not the live theme
- The Shopify ScriptTag was deleted from your store's admin
Step 2: Verify the Pixel Is Loading
- Open your store in a browser with Developer Tools open (F12 or right-click > Inspect).
- Go to the Network tab.
- Refresh the page.
- Filter by "pixel" or "attribution".
- You should see a request for
pixel.jswith a 200 status code.
If the pixel.js request is not present: The script tag may be in the page but blocked from loading. Check for Content Security Policy errors in the Console tab (see CSP section below).
If the pixel.js request shows a non-200 status code: This could indicate a CDN issue. Note the status code and contact support.
Step 3: Verify Events Are Being Sent
- With Developer Tools open, go to the Network tab.
- Navigate to a new page on your store (click a product, browse a collection, etc.).
- Filter by "pixel-track" or "supabase" in the Network tab.
- You should see outgoing POST requests for each page view.
- A successful event submission returns a 200 or 204 status code.
If event requests are being sent but return errors (4xx or 5xx): Note the exact status code and response body, then contact support.
If no event requests are being sent even though pixel.js loaded: Check the Console tab for JavaScript errors. Another script on your page may be causing an error that prevents the pixel from executing.
Step 4: Verify Events Appear in the Dashboard
- In your Attribution.ai dashboard, go to the Events tab.
- Look for recent page view events matching your test browsing.
- Events should appear within 60 seconds of the page view.
If events are being sent (per Step 3) but not appearing in the dashboard: The issue may be with event processing on the server side. Contact support with the details from your Network tab inspection.
Issue: CORS Errors in Browser Console
Cross-Origin Resource Sharing (CORS) errors appear in the browser console when the pixel's tracking requests are blocked by the browser due to origin restrictions.
What CORS errors look like:
Access to fetch at 'https://...' from origin 'https://yourstore.com'
has been blocked by CORS policy: No 'Access-Control-Allow-Origin'
header is present on the requested resource.
Causes and solutions:
- Proxy or CDN modifying headers: If you use a reverse proxy, CDN, or performance optimization service in front of your Shopify store, it may be stripping or modifying CORS response headers. Contact your CDN provider and ensure requests to Attribution.ai's tracking endpoints are not modified.
- Shopify app conflicts: Some Shopify apps modify response headers globally. Temporarily disable recently installed apps to test if the CORS error resolves.
- Content Security Policy restrictions: See the CSP section below.
CORS errors are rare with standard Shopify themes. They most commonly occur with headless Shopify storefronts or custom middleware layers.
Issue: Content Security Policy (CSP) Blocking the Pixel
A Content Security Policy (CSP) is a security header that restricts which scripts and network requests a page can make. If your store has a strict CSP, the pixel may be blocked.
What CSP errors look like:
Refused to connect to 'https://attribution.ai/...'
because it violates the following Content Security Policy directive: "connect-src 'self'"
or:
Refused to connect to 'https://...supabase.co/functions/v1/pixel-track-...'
because it violates the following Content Security Policy directive: "connect-src 'self'"
Solution: Add the following domains to your CSP header:
connect-src: https://attribution.ai https://*.supabase.co
Where CSP might be configured:
- In your Shopify theme's
theme.liquidfile (look for a<meta http-equiv="Content-Security-Policy">tag) - In a Shopify app that manages security headers
- In a Cloudflare or similar CDN configuration
- In your headless storefront's server configuration
If you are unsure where your CSP is set, search your theme code for Content-Security-Policy or contact the developer who configured it. Many standard Shopify themes do not set a CSP at all, so this issue primarily affects custom themes and headless setups.
Issue: Ad Blockers Preventing Tracking
Ad blockers and privacy extensions (uBlock Origin, AdGuard, Privacy Badger, Ghostery, Brave browser's built-in blocker, etc.) can prevent the Attribution.ai pixel from loading or sending events.
Expected behavior: Ad blockers affect a portion of your traffic -- typically 15-30% depending on your audience demographics. Tech-savvy audiences have higher ad blocker usage.
Why this is not a critical problem:
- Post-purchase surveys bypass ad blockers: The survey runs as a Shopify checkout extension, which ad blockers do not block. This captures attribution data even when the pixel is blocked.
- Triangulated measurement compensates: Attribution.ai combines survey, pixel, and modeled signals to reduce bias introduced by blocked visitors.
- You cannot and should not try to circumvent ad blockers: Attempting to bypass ad blockers with obfuscation or proxy techniques violates user privacy expectations and can cause additional technical issues.
What you can do:
- Ensure the post-purchase survey is active to capture attribution data from visitors whose pixel is blocked
- Monitor the ratio of pixel-tracked orders vs survey-only orders to understand your ad blocker impact
- Use model comparison (especially Markov and Shapley) to validate decisions when pixel coverage is incomplete
Issue: Partial Data -- Missing UTM Parameters
If orders show conversions but no UTM source, medium, or campaign data:
- Check your ad URLs: Visit your ad platform and verify that UTM parameters are included in the destination URLs. Click one of your own ads and check the full URL in your browser's address bar.
- Check for redirect stripping: URL redirects between the ad click and your store can strip query parameters. Common culprits include:
- URL shorteners (bit.ly, etc.)
- Third-party landing page builders
- Shopify domain redirects (e.g., from .myshopify.com to your custom domain)
- Test manually: Visit your store with test UTM parameters (e.g.,
https://yourstore.com?utm_source=test&utm_medium=test&utm_campaign=test) and check if these appear in the Events tab. - Check for JavaScript conflicts: Some third-party scripts can modify the URL before the pixel reads it. Enable debug mode (
?att_debug=true) and check the console output to see what parameters the pixel detected.
Issue: Missing Click IDs (gclid, fbclid, ttclid)
Click IDs are appended automatically by ad platforms. If they are not being captured:
- Google (gclid): Ensure auto-tagging is enabled in Google Ads under Account Settings. Without auto-tagging, Google does not append gclid to URLs.
- Facebook (fbclid): Verify your ad destination URLs point directly to your store without URL shorteners or redirect services that strip query parameters.
- TikTok (ttclid): Confirm the ad destination URL is your direct store URL. TikTok's in-app browser can sometimes drop the ttclid parameter.
- Snapchat (ScCid): Similar to TikTok, ensure direct URLs without intermediary redirects.
To test: Click one of your own ads, then check the URL in your browser's address bar. The click ID parameter should be visible.
Issue: Events Showing but Not Matching to Orders
If the Events tab shows page views but conversions are not being attributed to orders:
- Check pixel coverage: Ensure the pixel is installed on all pages, including product pages, collection pages, the cart page, and the checkout page (if accessible). The pixel must be present on the pages the customer visits during their journey.
- Verify Shopify webhook: The order webhook must be active for Attribution.ai to receive order data. Check Settings > Integrations > Shopify for webhook status.
- Allow processing time: Event-to-order matching can take up to one hour after the order is placed. The system needs to associate the anonymous pixel session with the Shopify order event.
- Check the lookback window: If a visitor's last pixel event was more than 30 days before the purchase (the default lookback window), the events will not be matched. Adjust the lookback window in Settings > Attribution if needed.
Issue: Pixel Installed Multiple Times
Duplicate pixel installation causes double-counted events. Signs include:
- Event counts that seem unusually high
- Duplicate page view entries for the same URL and timestamp in the Events tab
- Conversion numbers that are roughly double what Shopify reports
How to check: View your page source and search for "attribution.ai" or "pixel.js". If it appears more than once, you have duplicate installations.
How to fix: Keep only one installation method:
- If using automatic installation, remove any manual snippets from theme.liquid and any GTM tags.
- If using manual installation, disable the automatic installation from Settings > Pixel Setup.
- If using GTM, remove both automatic and manual installations and keep only the GTM tag.
Using Debug Mode
Enable debug mode by adding ?att_debug=true to any page URL on your store. For example:
https://yourstore.com?att_debug=true
https://yourstore.com/products/example?att_debug=true
Debug mode outputs detailed information to the browser console (DevTools > Console tab):
- Every event the pixel captures (page views, navigation events)
- All detected UTM parameters and click IDs
- Session ID assignment and session continuity
- Network request success/failure for each event submission
- Any errors or exceptions the pixel encounters
Debug mode is only visible in the developer console and does not affect the customer experience. It is a client-side diagnostic tool that does not modify any data or behavior.
Performance Concerns
The Attribution.ai pixel is designed to have zero visible impact on page load performance:
- Size: Under 5KB gzipped
- Loading: Asynchronous (does not block page rendering)
- Delivery: Served from a global CDN
- Execution: Non-blocking, runs after DOM content is loaded
If you notice performance issues that you suspect are related to the pixel:
- Confirm you do not have the pixel installed multiple times.
- Check the browser's Performance tab (DevTools) to verify the pixel is not blocking other resources.
- Test page load with and without the pixel to measure any difference.
- Contact support with a performance trace if you identify a measurable impact.
When to Contact Support
Contact pixel support if:
- You have followed all troubleshooting steps above and events are still not appearing after 24 hours
- You see consistent server-side errors (4xx or 5xx responses) when the pixel sends events
- Debug mode shows errors that you cannot resolve
- You need assistance with a headless storefront or custom integration setup
Include the following information in your support request:
- Your store URL
- The installation method used (automatic, manual, or GTM)
- Browser and version where you tested
- Screenshots of any errors from the browser console
- Whether the issue affects all pages or specific pages only