nod.

Install the pixel on other storefronts and funnels

Add the nod. snippet to any non-Shopify site and send purchase and lead events manually.

By nod. product team · Updated July 12, 2026

If your store or funnel doesn't run on Shopify, you install the same pixel by hand and send it your conversions with a couple of lines of code. This covers site builders, tag managers, and lead-gen funnel tools (ClickFunnels, GoHighLevel, Webflow, WordPress, custom sites).

tl;dr

  • Paste the nod. snippet into the global <head> of every page — your template, or your tag manager's custom-HTML head slot.
  • Purchases aren't automatic without Shopify. Fire nod('track', 'Purchase', { value, currency, order_id }) on the thank-you page.
  • Always pass order_id — it's what makes the purchase call safe to fire twice (a reload won't double-count it).
  • Fire nod('track', 'Lead', { value }) wherever a lead converts (form submit, booking confirmation, thank-you page).
  • Purchase is matched case-insensitively, so Purchase and purchase both land correctly.

1. Paste the snippet in your global head

Copy your pixel snippet from Settings → Tracking and paste it into the <head> of every page you want tracked — once. In practice that means:

  • A site builder or CMS: the site-wide head/custom-code field.
  • A tag manager: the head/custom-HTML container that fires on all pages.
  • A funnel tool (ClickFunnels, GoHighLevel, Webflow, WordPress): the head tracking-code slot for the whole funnel.

Make sure the thank-you page is included — that's where your Purchase and Lead calls fire.

Once it's in place, the pixel loads on every page automatically. Page views and session data start flowing immediately; no further setup is needed for basic traffic tracking.

2. Send purchases manually

Without Shopify, nod. has no order to stitch together on its own — there's no webhook to read from. The purchase event has to come from the pixel itself, fired from your thank-you page:

nod('track', 'Purchase', {
  value: 99,
  currency: 'EUR',
  order_id: 'YOUR-ORDER-ID',
});

Always include order_id. nod. uses it to make the call idempotent, so if the customer refreshes the thank-you page (or it double-loads), you still get one purchase, not two.

3. Send leads manually

For a lead — a form submit, a call booked, a quote requested — fire it wherever that conversion happens, typically right after the form succeeds or on the resulting thank-you page:

nod('track', 'Lead', { value: 50 });

value is optional but recommended: even a flat estimated value per lead lets attribution report something more useful than a raw count.

What not to expect without Shopify

  • No automatic order import. Every purchase you want counted has to come from a nod('track', 'Purchase', …) call you add yourself.
  • No cart-level data feeding attribution before checkout — nod. only knows about a purchase once your snippet fires it.
  • Everything else — page views, sessions, click-id and UTM capture, consent handling — works the same as on Shopify, since it's the same pixel.

What happens next

Page views and sessions typically show up within a few minutes of the snippet going live. Purchase and lead events show up as soon as your thank-you page fires them — test one end to end (place a test order or submit a test lead) and confirm it appears before you trust the numbers.

Common pitfalls

  • Snippet only on some pages. If it's missing from the thank-you page, purchases never fire. Check every step of the funnel, not just the landing page.
  • Missing order_id. Without it, a page reload can send the same purchase twice.
  • Snippet in a page-specific block instead of the global head. If your builder lets you add code per page, it's easy to add it once and forget the thank-you page.