In the previous article we walked through the control layer – how the auction is configured and executed. This time we take a closer look at the actual product being sold: the impression.
An impression is not just a visual slot on the page. It is a bundle of metadata about where the ad is shown, who might be seeing it, and how it should be evaluated. It is not just the canvas – it is the context. In this article we dive into each of these signals in the bid request, and the commercial value they add to the auction.
Below are the most important fields and signals that define the impression's value in a bid request – with a focus on display ads. VAST (video) and native follow the same principles but are implemented differently.
"bidSource": {
"server": 100
},
"calcSource": "server",
"finalSource": "server",
"src": "s2s"
This tells the bidder whether the request originates from the browser (client-side) or from Prebid Server (server-side). Why it matters:
This distinction is crucial if a buyer – especially an agency or a data-driven advertiser – uses third-party data to target users. Many ID-based targeting systems depend on syncing cookies across platforms. When the auction runs server-side, the cookie match rate drops, which limits how well DSPs can connect users to audience segments from DMPs, ID graphs or data brokers.
When using Prebid Server, first-party data must be explicitly passed along in the request to the server instead of being directly available in the browser. Depending on the implementation, this can reduce signal quality or match rates, which may affect bidders' perception and pricing.
If, on the other hand, it is a direct deal with the publisher (e.g. a PMP or programmatic guaranteed deal), the value often comes more from contextual signals (such as page URL, content category or key-value targeting from the publisher) than from identity. In those cases, whether the request is S2S or C2S matters less to the buying strategy – from the SSP's perspective, S2S requests simply increase the volume of potential bids.
Bottom line: If the buyer depends on user identity for targeting or exclusion, bid source matters. If the buy is more context- or deal-driven, S2S can be perfectly fine.
"ortb2Imp": {
"ext": {
"gpid": "unique_value_from_publisher"
}
}
The Global Placement ID (GPID) is designed to uniquely identify an ad slot – even if the publisher uses the same slot name multiple times on a page. This is critical because many publishers use generic slot names like "/homepage" across different placements.
GPID helps buyers to:
For buyers working with measurement, buying across multiple SSPs or precise creative delivery, GPID adds real value. Not all publishers implement GPID consistently, however, so its usefulness depends on widespread and correct adoption. If you buy contextually or broadly without impression-level optimization, GPID may be less critical. But for any data-driven strategy, it is a key signal of the inventory's quality and uniqueness.
"mediaTypes": {
"banner": {
"sizes": [[930, 180], [970, 170], [728, 90]]
}
}
In a Prebid ad unit config, sizes are declared in the mediaTypes.banner.sizes array, as shown in the last article. But there is an important distinction here: the requested size vs. the rendered size.
Some high-impact vendors like Adnami define their own custom sizes (e.g. 970x170, which is used for skins) to describe formats like topscroll, midscroll or skins. These are the sizes sent along in the bid request – even if the actually rendered creative uses dynamic styling or expands responsively on the page.
Standard formats like Medium Rectangle (300x250) or Billboard (930x180), on the other hand, are usually consistent between what is requested and what is rendered. Why it matters:
The pricing for 970x170 vs. 930x180 on the same ad unit is completely different, since the first size is a high-impact format while the second is a standard format.
Understanding which sizes are declared, and how they map to the actual user experience, is essential for bidders optimizing creative fit and campaign performance.
"ortb2": {
"regs": {
"ext": {
"gdpr": 1
}
},
"user": {
"ext": {
"consent": "CQadvIAQadvIAAHABBENCDFsAP_gAEPgAAZQJpAR9C5..."
}
}
}
Bid requests contain consent strings based on the Transparency & Consent Framework (TCF), which is the industry standard under the EU's GDPR. The consent types are typically split into full consent (the user accepts all cookies and vendors) or legitimate interest (the user has declined full consent, i.e. limited consent). The framework tells bidders:
A valid consent signal is critical. Without it, using identifiers or behavioral targeting creates regulatory risk. If consent is missing, restrictive or unclear, bidders may bid lower or exclude the impression entirely.
That said, not all targeting depends on personal data. Contextual buying based on the page's content or key-value pairs from the publisher does not require consent (the publisher's key-values should, however, only be allowed on the basis of the proper consent from the user in question). If reach is the goal and identity is not essential, impressions without consent can still hold great value. In fact, they can often be bought at lower CPMs, providing efficient buying opportunities for campaigns optimized around context rather than user-level targeting.
"userId": {
"id5id": {
"uid": "ID5*-_1WUayQ72Y_..."
},
"pubProvidedId": [
{
"source": "stepnetwork.dk",
"uids": [
{ "id": "019a59...", "atype": 1 }
]
}
],
"pubcid": "922ad348-34ba-4d54-a89b-f577737fe58c"
},
"userIdAsEids": [
{ "source": "id5-sync.com", "uids": [ { "id": "ID5*-_1WU..." } ] },
{ "source": "pubcid.org", "uids": [ { "id": "922ad348-..." } ] }
]
User IDs (via modules like ID5, PubProvidedID or SharedID) are especially valuable when buyers such as agencies or DSPs operate across a wide range of publishers and exchanges. Instead of negotiating and maintaining individual first-party data deals with each publisher, buyers can lean on identity resolution partners that map anonymous users to shared audience segments.
This enables:
The presence and type of user IDs can affect the match rate with DSP audiences, CPM bids, as well as frequency management and deduplication.
That said, these systems are most effective when buying on the open market or in multi-publisher environments. For direct deals or publisher first-party audiences, UID systems play a smaller role – and the "quality" of these userID systems is debatable, for that matter. Is the agency/advertiser actually buying the audience they think they are? Perhaps a topic for another time…
"ortb2": {
"site": {
"ext": {
"data": {
"step_contextual": ["iab_seg_1", "iab_seg_2"],
"step_1p_segment": ["segment_1", "segment_2"],
"custom_data": ["cust_seg_1", "cust_seg_2"]
}
}
}
}
On the open market, this object may not have much impact. The data in it is usually generated by the publisher and does not necessarily match the buyer's systems or goals. But its real strength shows in direct or curated deals, where publishers and buyers collaborate more closely.
The
ortb2.site.ext.dataobject lets publishers pass along any key-value pair: first-party user segments, contextual tags, content metadata – even custom AI-generated scores. That flexibility makes it incredibly powerful for premium, targeted inventory.
A publisher could, for instance, pass along custom segments derived from a data clean room match with an advertiser's CRM, enabling tailored audience activation without pushing identity data onto the open market. This creates:
So even though this object is often ignored in open-market bids, it can unlock high-performing, tailored buying when leveraged in data-sharing setups built on mutual trust.
"device": {
"ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...",
"language": "da",
"sua": {
"platform": { "brand": "macOS" },
"browsers": [
{ "brand": "Google Chrome", "version": ["143"] }
]
}
},
"ortb2": {
"site": { "domain": "domain.dk" }
}
Fields like device.ua, device.os, device.devicetype and site.domain tell bidders:
These signals also support brand safety logic and help buyers enforce technical filters (e.g.: only bid if the screen width is > 1024 px). And because contextual signals like language and device type do not depend on personal data, they can often be used even under legitimate interest – making them valuable in campaigns aiming for reach without explicit full user consent.
Imagine, for example, that you are promoting a new phone and want to reach users on older devices. Instead of relying on third-party data or UserID systems, you can simply check the operating system and device type directly in the bid request. If the user is on an outdated device like an iPhone 6, that insight alone can inform your targeting and help identify audiences ready to upgrade – entirely without personal data.
Each of these fields plays a role in defining the impression – not just as a visual slot, but as a dynamic representation of inventory: enriched with targeting potential, subject to privacy constraints and filtered through technical requirements.
We have looked at how different signals – from user IDs and consent to sizes, devices and context – together shape what is actually offered to a bidder. Whether it is identity-driven buying across the open web, contextual strategies based on device and language, or custom segmentation via the publisher's key-value data, the impression is where it all comes together.
The impression is not just what is for sale – it is the full description of how it can be sold, to whom and on what terms.
Depending on your strategy – broad programmatic reach, direct PMP activation or data-driven targeting – different fields carry more weight than others. But they all matter for how the buyer assesses the value.
That was the second article in this 9-part series: What is actually hiding in a bid request?
Next: Part 3 of 9: Bidder configuration & commercial context →
Let us help you get the most out of your display campaigns.