6 min read
How ad targeting actually works
From the moment a page starts loading to the moment an ad appears, in plain language — and where your data goes in between.
An auction you never see
When a page with advertising loads, the space for each ad is auctioned in roughly the time it takes the page to paint. The site sends out a request describing the slot and everything it knows about the visitor. Dozens of bidders respond with a price. The highest bid wins and the ad appears.
The whole exchange finishes in around a tenth of a second, and it happens again on the next page.
What is in the bid request
The description sent to bidders is richer than most people expect. Some of it is unavoidable technical information, and some of it is the result of deliberate profiling.
- ✦Your approximate location, from your IP address and time zone
- ✦Device type, operating system, screen size and browser
- ✦The page you are on and what it is about
- ✦A persistent identifier for your browser or phone, where one exists
- ✦Audience segments already attached to that identifier — interests, life events, purchase intent
Where the segments come from
Segments are assembled over time by companies you have never visited. Every site carrying their code contributes a little more: a product you looked at, an article you read, a form you started. None of it is dramatic on its own. The value is entirely in the accumulation.
This is why an ad can feel uncanny without anyone listening to you. It is not a microphone. It is arithmetic on a very long list of small observations.
What actually reduces it
Blocking third-party requests removes most of the collection at the source, because the profile cannot be built if the code never runs.
- ✦A content blocker that stops third-party trackers, not just visible ads
- ✦A browser that partitions storage per site, so an identifier cannot follow you
- ✦Clearing advertising IDs on your phone, and turning off app tracking
- ✦Declining consent banners rather than accepting to make them disappear
See these techniques run against your own browser, live.
Take the reading