Overview
Northbeam matches client-side pixel events to server-side orders using a unique identifier generated at the time of purchase. The specific identifier used depends on your platform:
If the identifier is unavailable when the
firePurchaseEvent fires — which is common with third-party checkout providers (e.g. CheckoutChamp, CartHook, Purple Dot) — the order cannot be matched and will be Unattributed.
How identify() Works
identify() tells Northbeam who the current browser user is by associating a customer’s email address with their active session. When an order arrives server-side, Northbeam looks for a matching email from a recent browser session and attributes the order accordingly.
identify() should be called as early as possible in the checkout flow — ideally on the page where the customer submits their contact details that contain their email address. The earlier it fires, the better the attribution match rate.Prerequisites
Before implementingidentify(), confirm the following are in place:- The Northbeam Pixel is installed on all pages of your storefront (via your theme, CMS, or Google Tag Manager).
- Orders are flowing into Northbeam via the Shopify integration or the Orders API.
- The
customer_emailfield is included on every order sent to Northbeam. This field is required when usingidentify()as the matching method. - The third-party checkout must be hosted on the same root domain as your store (e.g.
checkout.yourstore.comis supported — a completely separate domain is not). - You have developer access to the third-party checkout page (or can deploy scripts via Google Tag Manager).
Implementation
Step 1 — Ensure the Northbeam Pixel Is on All Pages
The Northbeam Pixel must be present on every page — including pages served by your third-party checkout provider. Without it, the browser session cannot be tracked andidentify() will have nothing to attach to.
If your checkout runs on a subdomain (e.g. checkout.yourstore.com), the pixel must be installed there as well. Confirm your Content Security Policy allows traffic to your i.* subdomain:
Step 2 — Call identify() When the Customer’s Email Is Known
Call identify() on the checkout step where the customer’s email address first becomes available — typically the contact/information step.
Option A — Template Variable
Option B — Google Tag Manager (GTM)
- Create a Data Layer Variable in GTM for the customer email (e.g.
dlv - customer_email). - Create a new Custom HTML Tag in GTM.
- Paste the
identify()snippet and reference your variable:
- Set the trigger to fire on the checkout page where the email is captured.
- Publish the GTM container.
Step 3 — Confirm customer_email Is Sent with Every Order
When using identify(), the customer_email field is required on every order Northbeam receives. Without it, Northbeam cannot match the browser session to the order.
If using the Orders API, verify the field is present in your payload:
identify() Argument Reference
Note:identify()currently supports only email as an identifier type. The first argument must always be the string"email".
Advanced: identifyCustomerId()
If you prefer not to pass a customer’s email address to the Northbeam pixel, you can use identifyCustomerId() instead. This method associates the browser session with the customer’s ID from your Order Management System (OMS) — no PII shared.
Troubleshooting
Related Documentation
- Additional Events Reference — full
identify(),identifyCustomerId(), andfireCustomGoaldocs - Pixel and Event Tracking — pixel installation guide
- Order Definition (Orders API) — full list of order fields including
customer_email - Troubleshooting Pixel Tracking — Pixel Confirmed dashboard guide
- Differences in Unattributed Data — understanding and reducing unattributed orders