Skip to main content

Installed but not seeing data yet

The pixel is installed / setup is done but I don't see data. Is something broken?

T
Written by Tim Hughes

Two situations look like a problem and are not. Check them first.

First, is it just sequencing?

Your domain is not verified yet. Tie sends your install files after your DNS verifies, so nothing can fire before then. Check your Connect Domain page, and see DNS verification isn't passing if it is stuck.

You just finished installing. After the Tie Pixel is in, Tie completes the server-side configuration and validates the data before it flows to your integrations, and your Tie contact confirms when that is done. Your own checks can pass while that is still in progress.

Next, which pieces are working?

Run the checks in Verify your Tie installation. The pattern of what passes and what fails usually points straight at the cause.

What you see

Most likely cause

Nothing at all reaches Tie

The loader is not running, or something on your site is blocking it (causes 1 to 4)

Checkout and orders arrive, nothing else does (Shopify)

The loader is missing from your theme, usually after a theme change (cause 5)

Everything arrives except checkout and orders (Shopify)

The Customer Events pixel is saved but not connected (cause 6)

Everything arrives except purchases (other platforms)

rr_purchase is not firing on your order confirmation page (cause 9)

Events appear in your console but Tie sees nothing

Your Content Security Policy, a consent banner, or a test domain (causes 3, 4 and 7)

Every event arrives twice

The loader is installed in two places (cause 8)

Common causes

1. The loader is on the page but never runs. The loader is one long unbroken line. If it was pasted through an editor or an email that wraps long lines, a wrap can be saved as a real line break, and a break in the wrong place is invalid JavaScript. The browser then refuses to run the whole script, so one stray character takes down all of your tracking. The tell is a red "Uncaught SyntaxError" in the Console, and window.dataLayer returning undefined. Replace the whole script with a fresh copy from the file we sent rather than fixing characters in place, since a wrap usually leaves more than one break behind. Paste it as plain text with word wrap off, and confirm it is still a single line.

The Console showing Uncaught SyntaxError, with window.dataLayer returning undefined

2. The loader runs, but its address has a stray character. If the break lands inside one of the loader's configuration values instead of the code, the script runs with no error at all, but the address it requests is wrong and the file it needs never loads. The Console looks clean and the data layer is defined, so only the Network tab finds it. Filter by your tracking subdomain and look for a 400 or 404. Same fix as above, a fresh copy of the whole script. On Shopify, checkout and order data keep arriving normally while this is happening, because the Customer Events pixel does not depend on the loader. So "we can see our orders coming through" is not evidence the install is healthy.

The Network tab with one of Tie's scripts returning 400 while the other returns 200

3. Your Content Security Policy is blocking it. Common on enterprise builds and most Magento or Adobe Commerce storefronts. Your tracking subdomain is part of your own domain, but it is still a separate host, so self does not cover it. The Console shows a policy violation naming your Tie tracking domain, usually alongside other vendors blocked for the same reason. Add your tracking domain to both script-src and connect-src. Your Tie contact can confirm the exact hostname. Two things to check at the same time. Only an enforcing policy blocks anything, and a report-only one does not. And check the policy on production, since development environments often relax it, so tracking works in dev and stops on the production push.

4. Consent is blocking it. If you run a consent banner, Tie fires only after the visitor grants marketing or analytics consent, so a fresh visit with no consent shows nothing. That is expected. Test with consent granted. If events still do not fire after granting, check that your consent tool actually releases the Tie scripts. One case worth knowing about. If you load the loader through your own tag manager, a consent tool that works by rewriting script tags in the page cannot gate a tag your tag manager injects at runtime. Fire the tag from a trigger keyed on your consent tool's consent event instead. See Install the Tie Pixel with your consent banner (CMP).

5. The loader is missing from your theme (Shopify). A theme rebuild, a new theme, or an agency's tag setup removes the loader like any other theme code, while the Customer Events pixel keeps working because it lives in your Shopify settings, not your theme. The result is checkout and orders arriving with no page views, product views or add to carts. Nothing is misconfigured. The loader is simply gone. Add it back following Install the Tie Pixel on Shopify, in one place only, and if your theme is published from code have your developer add it to the codebase so the next publish keeps it. If your storefront shows text starting "Liquid error" and naming tie_loader, the render line went in before the snippet existed. Create the snippet and it clears.

6. The Customer Events pixel is saved but not connected (Shopify). The pixel is not live until you click Connect. In Shopify, go to Settings, then Customer events, open Tie Tracker and click Connect. If it is not listed at all, add it following your install guide.

7. You are testing on a preview, staging or test address. Two different things happen there. On a Shopify theme preview or your myshopify.com address, the Network tab shows a CORS error on a request called enrich. That request only answers on the domains registered to your account. Everything else keeps working, and it clears once the theme is published on your own domain. On a staging site on a different domain, the loader still points at your live domain's tracking address, and that is correct. Do not edit the address to match the staging domain, since there is nothing set up to receive it there and it fails without a visible error. If your staging domain is going to become your production domain, tell your Tie contact, because it needs its own domain connection first.

8. The loader is installed twice. If it is in your theme and in your tag manager, or in two theme files, every event fires twice. Keep it in one place only.

9. The data layer is not right (headless Shopify, other platforms, custom sites). The things that go wrong most often, in order. Event names missing the rr_ prefix, so view_item instead of rr_view_item. Template variables that did not resolve, so an event shows a literal placeholder instead of a value. ecommerce set to null on the event itself, which means the second push of the pair is not building its payload. Numbers quoted as strings. And rr_purchase not firing, because the order confirmation page is a different template from the rest of the funnel and it is easy to finish everything else without touching it. On platforms other than Shopify that event is how Tie counts your orders, so a missing rr_purchase is not one gap in a funnel, it is no order data at all. Check every field against The Tie data layer: rr_* event reference.

10. You opened DevTools too late. Events that fire on page load are not in the console history unless DevTools was open before the page loaded. Reload with it already open.

When to contact us

If the checks pass and your integrations still show nothing after the server-side configuration, or a check fails and nothing above explains it, send your Tie contact:

  • Your store URL and the pages you tested

  • Which checks passed and which failed

  • The exact text of any red error in the Console

  • A screenshot of the Network tab filtered by your tracking subdomain, and of dataLayer.map(e => e.event) after walking the funnel

That is usually everything we need to pinpoint it.

Did this answer your question?