TRACKLAYERv4.2
ProductIntegrationsPricingCompareComplianceSIGN INSTART
§ 00 · PRODUCT · IDENTITY RESOLUTION

Seven signals. One customer.
Finally reconcile the graph.

fbp, fbc, gclid, email-hash, phone-hash, external_id, first-party cookie — TrackLayer merges them into one profile_id with a union-find algorithm that runs at the edge. Across sessions, browsers, devices, and three years of traffic.

§ 01

The identity graph.

LIVE · UPDATED EVERY EVENT
PROFILEp_a4f8eAnna · glass-house.coemail_hashw 100external_idw 90phone_hashw 85fbp cookiew 65fbc cookiew 60gclidw 58tl_fpw 35EDGE THICKNESS = SIGNAL WEIGHT · UPDATED PER-EVENT · UNION-FIND ONLINE
§ 02

Seven signals, ranked.

SIGNALWEIGHTDESCRIPTIONLIFESPAN
email_hash
100
SHA-256 of lowercase email. Strongest signal across every platform.
Permanent
external_id
90
Your CRM's stable user ID. Set on authed sessions + pushed to every CAPI.
Permanent
phone_hash
85
SHA-256 of normalised E.164. US/EU high-match.
Permanent
fbp cookie
65
Meta browser ID. Captured server-side so Safari ITP can't reset it.
90 days
fbc cookie
60
Meta click ID. Re-captured from landing URL after first click.
90 days
gclid
58
Google click ID. Stored client+server, forwarded to Google Ads CAPI.
90 days
first-party cookie
35
TrackLayer-issued tl_fp. Fallback when everything else is stripped.
365 days
§ 03

Union-find, online

Edge algorithm merges signals as events arrive. No batch job. Graph updates in <50ms.

§ 04

Cross-device stitch

When someone logs in on mobile, their desktop cookie history joins their profile. No data loss.

§ 05

Bot triage

Profiles with >150 events/min or impossible UAs get flagged, don't get attribution.

§ 06

Right-to-forget

GDPR delete cascades across the graph — remove one signal, remove the profile.

RESOLUTION RATE
94%
purchase events
AVG SIGNALS / PROFILE
3.4
steady state
GRAPH UPDATE
48ms
p50 · edge
STITCH COVERAGE
78%
cross-device
§ 07

Questions about the graph.

What makes this different from Segment / Rudderstack identity?
Segment's identify() is a single-signal call — you tell it the user_id. TrackLayer resolves identity implicitly from every event — we don't need you to call identify(), we infer it from the signals you already pass. The union-find runs online; you get the merged profile_id on the next event, not after the next batch job.
Do you store raw PII?
No. Email and phone are SHA-256 hashed at the edge before they hit our storage. The graph nodes hold only signal hashes + a random profile_id. Your CRM stores the raw mapping; we never do.
What happens on a GDPR delete request?
POST /v1/identity/:profile_id — we remove the profile row, cascade-delete every signal node linked to it, and broadcast a deletion event to Meta/Google/TikTok via each platform's delete API. Usually completes in under 2 minutes.
TRACKLAYER
© 2026 · Warsaw · Amsterdam
A telemetry console
for your pixel.
Product
Server-side tracking
Identity resolution
Event intelligence
Anomaly detection
Data quality
AI agent
Resources
Pricing
Integrations
vs. Stape
vs. Elevar
vs. Converge
vs. GTM
Signal
status.tracklayer.io ● operational
hello@tracklayer.io
Compliance · SOC2 · GDPR
DPA · Subprocessors
SER. TLR-04-21·2026