Skip to main content

Verify your Tie installation

How do I confirm the Tie Pixel and data layer are working on my site?

T
Written by Tim Hughes

Once the Tie Pixel is installed, a few checks in your browser confirm it is working before you tell your Tie contact you are done. Which checks apply depends on how your site is built.

Your setup

Run

A Shopify theme

Checks 1, 2, 3 and 4

Headless Shopify

Checks 1, 2, 3 and 4

Another platform, or a fully custom site

Checks 1, 2 and 4, plus the quality checks

If Tie installed the Tie Pixel for you, we run these ourselves. You are welcome to follow along.

Before you start

  • Use your live site on your own domain. A theme preview, a staging site or a myshopify.com address behaves differently, and one of the checks fails there by design (see Check 4).

  • Open Chrome DevTools before the page loads, so you catch what fires on load. Right-click the page, choose Inspect, then reload.

  • If you use a consent banner, accept it first. Tie collects nothing until a visitor consents, which is expected, not a fault.

Check 1: The loader (every setup)

In the DevTools Network tab, filter by your tracking subdomain (for example zone.yourdomain.com) and reload. You should see Tie's scripts load from it with 200 responses.

Then check a second page type, such as your home page or a collection page, not just a product page. The loader lives in a template, and a site can have more than one, so one page can be missing it while every other page passes.

Two things that mean the loader is not running:

The Network tab filtered to your tracking subdomain, with the loader, Tie's scripts and the enrich request all returning 200
  • A red "Uncaught SyntaxError" in the Console tab. The script is on the page but the browser refused to run it, usually because a line break or a stray character got into it when it was pasted.

  • A 400 or 404 on the request to your tracking subdomain. The script ran, but a stray character in its address means the file it needs never loads. There is no console error for this one, so the Network tab is the only place you see it.

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

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

Either way, the fix is in Installed but not seeing data yet.

Check 2: The browsing events (every setup)

In the Console tab, browse your site as a shopper would. View a product, add it to cart, and start checkout. After each step, run:

dataLayer.map(e => e.event).filter(e => /^rr_|^tie_/.test(e))

That lists only Tie's events. You are looking for the ones for your setup, each appearing once per action:

Your setup

Events to expect in the console

A Shopify theme

rr_view_item and rr_add_to_cart, produced for you. Checkout and purchase come from the Customer Events pixel and do not show here (see Check 3). Nothing to build if one is missing; tell your Tie contact.

Headless Shopify

rr_view_item and rr_add_to_cart. Checkout and purchase come from the Customer Events pixel and do not show here (see Check 3).

Another platform, or a fully custom site

rr_view_item, rr_add_to_cart, rr_begin_checkout, and rr_purchase

The Console listing rr_bot_validation, tie_user_attributes and rr_view_item on a product page

rr_purchase only fires on a real order confirmation page, so it needs a completed order to test. Have someone on your team place a test order, or check it on your first real order after go-live. On platforms other than Shopify this event is how Tie counts your orders, so check it on its own rather than assuming it works because the other three do.

Check 3: The Customer Events pixel (Shopify and headless Shopify)

In Shopify, go to Settings, then Customer events. The pixel named Tie Tracker should show as connected. If it only shows as saved, open it and click Connect.

This pixel captures checkout and purchase inside Shopify's checkout, so those events never appear in your storefront console. That is normal. We confirm them on our side during validation.

Check 4: Enrichment (every setup)

The same list should include a tie_user_attributes event. That is Tie's answer coming back to your page, and it confirms your site is talking to Tie rather than only recording events locally. To see how it answered, run:

dataLayer.find(e => e.event === 'tie_user_attributes').tie_user_attributes_status

empty means Tie answered and had nothing to add for that visitor, which is normal in a fresh browser that has never been on your site. error means the request did not complete, and Installed but not seeing data yet covers the causes.

The Console showing the tie_user_attributes status for a fresh visitor

This request only answers on the domains registered to your account. On a theme preview, a staging site or your myshopify.com address the browser shows it as a CORS error on a request called enrich. That is expected, and it clears once the page runs on your live domain.

Quality checks (other platforms and custom sites)

While you are in the console, open one of your events and confirm:

  • ecommerce is never null on a fired event. The null push is the reset that comes before it.

  • Every product object carries at least name, id, image, price, brand, and variant.

  • currencyCode and rr_cart_id appear on every event.

  • Numbers such as price and quantity are numbers, not quoted strings.

The full field list is in The Tie data layer: rr_* event reference.

Then tell your Tie contact

These checks show what your site sends. We confirm what arrives, and we validate the whole funnel end to end with you before you go live. Send your Tie contact a note that the checks passed, and we take it from there.

If a check fails

Work through Installed but not seeing data yet. It covers the causes behind each failed check, in the order they usually turn out to be.

Did this answer your question?