Your CDP holds domains everywhere — referrer URLs, email addresses, UTM sources, CRM account websites. Each is a join key into a 102M-domain database of pre-computed audience segmentation. One warehouse reference table turns bare hostnames into audience context, with no cookies, no identity graph and no PII.
Most enrichment projects stall on identity resolution. Domain enrichment skips it: the key is already sitting in your event and profile tables.
Every pageview carries a referrer. Reduce it to eTLD+1 and you know which sites send traffic. Join audience attributes and you know who those sites reach. See referral-traffic audience analysis.
B2B profiles carry a work email; accounts carry a website. The domain after the @ resolves to firmographics — company-size bands, seniority and job-function mix — plus the audience character of the company's site. See ABM account-domain profiling.
UTM sources, placement reports and ad-server logs name the domains where you bought or earned attention. Enriching those columns turns spend reports into audience reports — the same join that powers ad-log enrichment.
The database ships as flat files with one row per domain. Every attribute uses a fixed, versioned vocabulary (v1.0) — enumerated codes, not free text. Browse every value in the full taxonomy reference.
| Field group | Fields | Values |
|---|---|---|
| Join key | domain | Normalized registrable domain (eTLD+1), lowercase, no www — the column you join on. |
| Demographics | age_bracket, gender_skew, income_level, education_level | 8 age brackets, 5-point gender skew, 6 income bands, 7 education levels. |
| Lifestyle | life_stage, household_composition, employment_status, home_ownership, urbanicity | 14 life stages plus household, employment, ownership and urbanicity enums. |
| Interests | interests | INT.* codes — 29 groups, 285 sub-interests (e.g. INT.tech_computing.artificial_intelligence). |
| Purchase intent | purchase_intent | PI.* codes — 34 groups, 283 segments (e.g. PI.software.computer_software). |
| B2B firmographics | audience_type, b2b_company_size_employees, b2b_seniority, b2b_job_function | b2c / b2b / mixed flag plus LinkedIn-standard company-size, seniority and function bands. |
| Personas | personas | Deterministic personas from a catalog of 1,667 (e.g. "DevOps Engineer", "Family Vacation Planner"). |
| Quality | confidence, vocab_version | Banded confidence (low / medium / high) and the vocabulary release the row was coded against. |
-- 1. Normalize whatever you hold to a registrable domain -- lower-case, strip protocol/path/port and "www.", take eTLD+1 -- (use a public-suffix-list UDF; "shop.example.co.uk" -> "example.co.uk") SELECT e.anonymous_id, a.age_bracket, a.income_level, a.interests, a.personas, a.confidence FROM events e JOIN audience_domains a ON a.domain = registrable_domain(e.referrer_url) WHERE a.confidence IN ('medium','high');
www., resolve to eTLD+1 with a public-suffix list, and drop free webmail domains (gmail.com, outlook.com) from B2B email joins.The whole pipeline is standard warehouse work — no SDKs, no tags, no vendor pixels on your site.
Import the domain file into BigQuery, Snowflake, Redshift or ClickHouse as a plain table. Quarterly refreshes replace it in place.
Build a registrable_domain() transform for referrer URLs, email addresses and source fields, and materialize it as a column.
Join events and profiles to the reference table. Roll domain attributes up to the profile: distributions of interests, dominant income band, persona counts.
Register the aggregates as computed traits or audience conditions in the CDP, and sync them to your analytics, email and planning tools.
Every value is an enumerated code. A segment like interests CONTAINS 'INT.personal_finance.personal_investing' means exactly the same thing this quarter and next.
For domains outside your file, the real-time API answers ad-hoc lookups with the same vocabularies, codes and confidence bands — batch and API rows are interchangeable.
A SaaS company sees steady sign-ups referred from a cloud-infrastructure tutorial site. Joining that referrer against the database attaches this row to every one of those profiles:
cloud-tutorials.example
referrer on 4,120 sign-up events · vocab v1.0
25_3435_44male_leanupper_middleundergraduateINT.tech_computing.artificial_intelligenceINT.tech_computing.computingPI.software.computer_softwarePI.web_services.web_hosting_and_cloud_computingb2bengineering_softwareit_opsNo individual was profiled — attributes describe the referring domain's audience, applied as context to the profile.
Domain-level audience data doesn't replace first-party behavioral data or consented identity — it fills the gaps those sources structurally can't reach.
| Enrichment source | Key | Coverage | Best for |
|---|---|---|---|
| First-party behavioral | Your own IDs | Your logged-in / cookied users | On-site behavior, conversion history |
| Identity-graph / onboarded data | Email, hashed IDs | Matched individuals only; consent-dependent | Individual-level attributes where lawful and matched |
| Firmographic APIs | Company domain | Companies | Company facts: size, industry |
| Domain-level audience data | Any registrable domain | 102M domains — referrers, sources, accounts alike | Audience character of domains around a profile; works where cookies are blocked |
The analytics-side workflow: profile every referral source in GA4 or your warehouse and learn who your traffic sources actually reach.
The same domain join applied to impression and click logs — audience-level delivery reporting and modeling features from log-level data.
Firmographics plus audience attributes on target-account domains, for ICP scoring and account prioritization in B2B motions.
Building for CDP customers rather than in one? See the CDP platform page for OEM and feed licensing.
Every row is keyed by a normalized registrable domain (eTLD+1, e.g. example.com). Reduce whatever you hold — referrer URLs, emails, UTM sources, account websites — to the same form: lowercase, strip protocol and www, then extract the eTLD+1 using a public-suffix-list library. The join is an exact string match, not fuzzy.
The dataset contains no PII — attributes describe the audience a domain reaches, inferred from content. Inside your CDP you join domain-level attributes onto records you already lawfully hold. The enrichment adds no new identifiers; a trait like "domains skewing 25–34" is a statement about the domains, applied as profile context.
The database ships as flat files keyed by domain. Create a table in your warehouse (BigQuery, Snowflake, Redshift, ClickHouse), load the file, and join on the normalized domain column. Quarterly refreshes replace it in place; vocab_version keeps trait definitions stable. See the taxonomy page for allowed values.
Match the tier to your match rate. The Top 100k file ($490 one-time) covers most referral traffic. The Top 1M ($1,990, instant download) covers the practical long tail. For domains beyond that — common for B2B account lists — slices from 5M to the full 102M are quoted individually. Compare tiers on the pricing page.
Look up any referrer or account domain in the interactive demo, then load a full tier into your warehouse — the Top 1M file is an instant card-checkout download.