Shopify gives you two places to put a script and only one of them works for this. The short version: paste the snippet into theme.liquid, and do not put it in a custom pixel. The rest of this page is why, and what Shopify will not let any script see.

Get the snippet from your dashboard first. It looks like this, with your own site ID in the path:

<script src="https://t.skomi.com/s/your-site-id.js" defer></script>

Paste it into your theme

  1. Online Store → Themes, find the theme you are publishing.
  2. Open its menu and choose Edit code.
  3. Under Layout, open theme.liquid.
  4. Paste the tag immediately before the closing </body> tag.
  5. Save.

That is the installation.

The tag lives in the theme, so it leaves with the theme. Duplicating a theme carries it along; publishing a different theme, or installing a fresh copy from the theme store, does not, and the symptom is analytics that simply stops, with nothing to explain it. Re-paste after any theme change, and check the numbers the same day.

Not a custom pixel

Shopify's newer Settings → Customer events → Add custom pixel looks like the modern place for a tracking script, and for event-only tools it is. Skomi's snippet does not belong there, and it is worth knowing exactly why before somebody tries it and spends an afternoon on it.

A custom pixel runs in what Shopify calls a Lax sandbox: an iframe with sandbox="allow-scripts allow-forms". Shopify's own documentation is clear about what that costs: a pixel cannot read information from the page, cannot write to it, and cannot reach the top frame at all, and window.href inside a pixel returns the sandbox's address rather than the page the customer is looking at.

Everything Skomi does needs the actual page:

  • Heatmaps and session recordings are a picture of the page. There is no page inside the sandbox.
  • The feedback widget has to appear on it.
  • Even plain analytics needs the real address, and the sandbox does not have it.

So: the theme, not the pixel.

What no script can see on Shopify

This is the honest part, and it is Shopify's decision rather than ours. Shopify has moved this ground repeatedly, so: checked against Shopify's own documentation on 6 September 2026.

Shopify has retired every hook a theme script had into the checkout. checkout.liquid is unsupported for the information, shipping and payment steps; checkout.liquid and the Additional scripts field were sunset for the Thank you and Order status pages in August 2025; and script tags on those pages were sunset in August 2025 for Plus stores and in August 2026 for everyone else.

What that means in practice:

  • Skomi measures your storefront (home, collections, product pages, cart) in full, with heatmaps, recordings and feedback.
  • Skomi does not see the checkout steps, the thank-you page or the order status page. Nothing pasted into a theme does any more.
  • So there is no purchase event and no revenue figure from the snippet on Shopify. If revenue in Skomi matters to you, that is the thing to know before you start rather than after.

The useful substitute is a goal on the last step you can see: reaching /checkout is the moment a visitor committed, and the rate from product page to that point is the number most Shopify sites are actually trying to move. What happened afterwards, Shopify's own reports already tell you accurately.

Your .myshopify.com address

Every store also answers on your-store.myshopify.com, and that is not a subdomain of the domain you registered with Skomi, so hits from it are refused by the origin check. That is usually right: theme previews and your own poking around should not be in your numbers. It is also the reason a preview looks like nothing is working. Test on the real domain.

More than one country domain

Shopify Markets can serve a store on several domains. Subdomains of a registered domain are accepted by that site, but a different domain, example.de beside example.com, is a different site in Skomi, with its own ID and its own tag.

Check it is working

Load a page of the storefront on its real domain, then look at your dashboard. If nothing arrives, work through what to check when the snippet is not working. On Shopify the answer is nearly always a theme that was published without the tag, or a test done on the .myshopify.com address.