adfire.digital Reading the machinery behind a display ad slot — one bid request at a time
adfire.digital  /  Query-time selection

Why a search results page runs no bid request

A search ad and a display ad look similar on screen and are bought through similar-looking interfaces, but the selection happens in two structurally different places. Confusing them is the single most common reason a measurement plan produces numbers that cannot be reconciled.

Two different moments of selection

The distinction is where the decision runs, not who pays for it.

AspectQuery-time selectionImpression-time selection
triggerA person submits a query stringA page containing a slot is loaded
decidesInside the search operator's own systemAcross several external systems over HTTP
external callsNone you can watch from the pageSeveral, visible in a browser network log
declaration filesNot applicableads.txt on the publisher, sellers.json on each system
intent signalStated by the person, in their own wordsInferred from context and from stored signals

What is observable, and what simply is not

Observable from outside

  • The ad slots' position relative to the unpaid results, and their labelling.
  • The destination address after a click, including any tracking parameters appended to it.
  • Whether the result carries structured extensions such as extra links or a location.

Not observable from outside

  • The bid, the competing bids, or the quality signals applied to them.
  • Whether a given advertiser was eligible at all for that query.
  • The match reasoning that connected the query to the advertiser's chosen terms.

A check that distinguishes the two in under a minute

  1. Load a search results page with the network log open.Filter to Fetch/XHR. Note how few third-party hostnames answer before the paid results are already visible.

  2. Load an ad-supported article page the same way.Count the hostnames answering before the slot fills. The difference in count is the structural difference described above.

  3. Check for a declaration file on both.Append /ads.txt to each domain. The article publisher generally serves one; the search operator's own results page has no reason to.

What this derivation rests on