Concepts
Identity stitching
Connecting anonymous browsing to identified customers.
Visitors start anonymous: the tag mints a random device id (signals_did, stored in
localStorage + a cookie) that persists across sessions. When a visitor identifies -
login, checkout, newsletter signup - call:
signals.identify("user-123", { email: "[email protected]" });What happens on identify
- The tag switches its
distinct_idto your user id (persisted, so later visits stay identified) and sends an$identifyevent carrying the email/phone. - The backend forwards the identify to PixelFox' identity store, which finds-or-creates an
identity for that email (or phone) scoped to your site, records the anonymous
device id against it, and returns a stable
customer_id. - The mapping is cached at the edge for 24 hours. From then on, every event from that
device - including anonymous ones before the next identify - is stamped with
external_id: <customer_id>before fan-out.
Why it matters
- Match quality - ad platforms match server events to real users via hashed email/phone and a stable external id. Stitching raises your match quality score and therefore your attributed conversions.
- Cross-device - the same email identified on two devices maps to one identity.
- Return visits - a returning identified visitor is recognized without re-login (the user distinct id persists in storage).
Scope and privacy
Identity matching is per site - PixelFox never links visitors across different
merchants' sites. Emails are normalized (trimmed, lowercased) and phones reduced to
digits before matching; both are SHA-256 hashed before ever being sent to a destination.
Calling signals.reset() (e.g. on logout of a shared device) clears the device identity
and starts a fresh anonymous visitor.