Your referral report ranks domains by sessions and conversions, but says nothing about the people behind them. Join each referring domain against a 102M-domain audience database and the same report answers a better question: which sources reach the audience you want?
Volume and conversion rate describe what happened. They can't tell you whether a source will scale, or whether it's quietly reshaping your customer base.
Two referrers can convert at the same rate while reaching entirely different people. Audience attributes separate sources aligned with your ICP from those that convert incidentally.
When LTV or return rates drift, the cause is often a change in acquisition mix. Rolling audience attributes across referrers shows when deal-seeking sources (INT.shopping.deals_coupons) overtook enthusiast sources.
The long tail hides your next partnerships. A domain sending 80 sessions/month but reaching your ICP is worth a content deal or sponsorship -- feeding directly into affiliate site selection and sponsorship evaluation.
Everything below runs in a notebook or your warehouse -- no tags on your site, no changes to your analytics setup.
Pull session source / referrer from GA4 (UI export, Data API, or BigQuery export), Matomo, or your server access logs. Include sessions, conversions and revenue per referrer.
Reduce each referrer to its eTLD+1 with a public-suffix-list library: blog.cycling-site.co.uk/article becomes cycling-site.co.uk. Deduplicate -- a typical mid-size site yields a few hundred to a few thousand distinct domains.
Match against the domain database (or query the real-time API for ad-hoc lists). Each match attaches:
INT.*) and purchase-intent segments (PI.*)Weight each referrer's attributes by sessions or conversions to build a traffic-weighted audience profile per channel group. Filter to confidence IN ('medium','high') for headline numbers.
Rank sources by ICP fit, flag off-audience volume, and shortlist long-tail domains worth growing. Re-run the join quarterly against the refreshed file to track drift. The joined table also feeds CDP enrichment downstream.
A fitness-equipment retailer compares two referrers that both convert at about 2%. The joined attributes -- real coded values from vocabulary v1.0 -- tell two very different stories.
running-journal.example
ICP fit
25_3435_44balancedupper_middleINT.healthy_living.fitness_and_exerciseINT.healthy_living.nutritionPI.sporting_goods.exercise_and_fitness_equipmentRead: enthusiast audience with equipment purchase intent. Conversions should hold as volume grows -- a candidate for a content partnership or paid placement.
daily-deal-digest.example
Off-audience
35_4445_54female_leanlower_middleINT.shopping.deals_couponsPI.gifts_holiday.gift_cards_and_couponsRead: promotion-driven audience with no category interest. Conversions track discount depth, not brand demand -- keep it, but don't build the growth plan on it.
| Question | Analytics alone | + Domain audience attributes |
|---|---|---|
| Which sources send volume? | Answered -- sessions per referrer | Unchanged |
| Which sources convert? | Answered -- conversion per referrer | Unchanged |
| Which sources reach our target customer? | Unknown | ICP fit per referrer via demographics, INT.* / PI.* codes and personas |
| Will this source scale? | Guesswork | Enthusiast vs deal-driven audience composition predicts durability |
| Why did customer quality drift? | Invisible | Traffic-weighted acquisition-mix trend across quarters |
| Which long-tail referrers deserve investment? | Ranked by volume only | Ranked by audience fit regardless of current volume |
Operationalize the join: attach referrer audience attributes to profiles as computed traits inside your CDP, with full schema mechanics.
Apply the identical domain join to impression and click logs from your DSP or ad server for audience-level delivery reporting.
The B2B variant: profile account domains instead of referrers, and score target-account lists against your ICP.
Any analytics stack exposes it. In GA4, export the session source / referrer dimensions via the UI, the Data API, or the BigQuery export (the preferred route -- you get raw referrer URLs). Server-side, the Referer header in your access logs works just as well. Reduce each value to its registrable domain (eTLD+1), aggregate sessions or conversions per domain, and you have the left-hand side of the join.
Conversion rate tells you what a source did last month; audience attributes tell you who the source reaches, which is what you need to predict what it will do at larger volume or for a new product. Two sources with identical conversion rates can reach completely different audiences -- one aligned with your ICP and scalable, one driven by deal-seeking behavior that collapses when the promotion ends. The two views are complementary: behavior from analytics, audience from the domain database.
Only sessions that carry a referrer or a tagged source can be joined -- traffic from apps, messaging or strict referrer policies arrives untagged and stays unattributed. In practice that means referral-audience analysis describes the attributable share of your acquisition, which is typically still the majority of referred sessions. UTM-tagged campaign traffic is unaffected: the utm_source value resolves to a domain you can join the same way.
Either works; the shape of your referrer list decides. A few hundred distinct referrers are comfortably handled by the real-time API (plans start at the same credit tiers as our categorization API, e.g. Pro at $99/month for 10,000 credits). If you refresh the analysis continuously or your long tail runs to thousands of domains, a database tier is cheaper per lookup: Top 100k at $490 one-time or Top 1M at $1,990 with instant download, both refreshable quarterly.
Paste any referring domain into the demo dashboard and see its full audience profile -- then run the join across your whole referral report with a database tier.