Header Bidding Meets Sponsored Listings: SSP Architecture for Retail‑Style Units on the Open Web
Sponsored listings have outgrown retail media networks. Brands want the same high-intent, product-forward units that work in retail search to show up across the open web, inside commerce content, buying guides, and search-like experiences on publisher properties. For supply side platforms, this is both a challenge and a growth vector. It blends header bidding mechanics with native templating, CPC pricing with CPM pipes, and retail-style constraints with publisher editorial controls. If you get the architecture right, you unlock new budgets, higher yield, and more durable value for publishers. This thought piece explores a concrete SSP blueprint to support retail-style sponsored listings on the open web. It covers business models, auction mechanics, data and privacy, creative templating, measurement, and a practical implementation path that respects publisher workflows and standards like OpenRTB Native, Prebid, ads.txt, sellers.json, and GPP. We will keep it technical enough to be useful, but grounded in revenue realities.
Why Sponsored Listings on the Open Web Now
Sponsored listings thrive where user intent is expressible and capturable. For years that meant retail search results inside walled gardens. As more publishers build in-site search, comparison tables, shoppable galleries, and long-form commerce content, the same unit logic fits naturally. Budgets are following. Retail media is expanding beyond owned and operated placements to off-site and open web extensions. Advertisers want to target category intent and context, measure near-term outcomes like clicks and add-to-cart signals, and maintain brand control that looks more like retail than classic display. SSPs can win here because they already orchestrate auctions, traffic quality, and publisher controls at scale. What is missing is a retail-style layer for ranking, eligibility, and CPC translation wrapped around a native delivery stack. That is what we will design below.
What Counts as a Sponsored Listing on Publisher Properties
Sponsored listings are paid placements that resemble organic results in a product or content feed. On publisher sites they often surface in:
- In-site search results: Paid product tiles blended into search results on a publisher’s property
- Shoppable galleries and buying guides: Product cards inside editorial content and roundups
- Comparison tables and deal modules: Rows or tiles in tables with sorting and filtering
- Homepage or section feeds: Commerce blocks within content streams or recommendation areas
They are usually native in appearance, carry product metadata, and may include price, rating, availability, and merchant name. The unit needs to be clearly disclosed as sponsored and must respect the publisher’s UX and editorial standards.
Business Models and Pricing: CPC, CPM, and Hybrid
Retail-style listings often transact on CPC in the buyer’s stack, while the supply pipes are CPM oriented. An SSP that can transform CPC intent bids into CPM auction bids with transparent logic unlocks demand without forcing publishers to change their yield primitives. Several workable models exist:
- Pure CPC: Bidders submit a max CPC; the SSP converts to an effective CPM using an expected CTR (eCTR). Post-click reconciliation adjusts future eCTR estimates
- Pure CPM: Bidders submit CPM for a native unit; measurement is impression-led with supplemental click reporting
- Hybrid (CPC-to-CPM with guardrails): Buyers set CPC; the SSP calculates CPM for auction, but enforces min CPM floors and post-trade click quality rules for sustainable economics
The conversion is simple in principle: CPM equals CPC multiplied by eCTR multiplied by 1000. The hard part is estimating eCTR per placement and bidder while controlling for fraud, layout shifts, and viewability.
A Reference SSP Architecture for Sponsored Listings
Below is a modular blueprint that fits with header bidding and standard SSP stacks. The objective is to minimize new moving parts while supporting retail-specific requirements.
1) Supply and Identity Layer
Handle standard web identity and privacy signaling, without PII. Support:
- Consent and privacy: GPP, TCF string, US state signals, and publisher-level privacy configurations
- First-party context: Page taxonomy, query terms for in-site search, section, and content metadata
- Seller-defined audiences: Publisher-declared cohorts for intent context using IAB Seller Defined Audiences
- Supply chain transparency: ads.txt, sellers.json, and schain propagation to demand paths
Citations: IAB Global Privacy Platform, TCF, sellers.json, and SupplyChain object provide the baseline compliance scaffolding on the open web. See IAB Tech Lab references for GPP, sellers.json, and the SupplyChain Object.
2) Product and Creative Catalog Service
Sponsored listings require product-like metadata even if the unit is served as a native ad. The SSP needs a flexible catalog layer that can:
- Ingest and normalize feeds: Merchant feeds, affiliate catalogs, or buyer product APIs normalized to a canonical schema
- Version and validate: Keep historical snapshots, run validation on price formats, image quality, availability
- Map to native assets: Title, image, brand, price, sale price, rating, and CTA mapped to OpenRTB Native assets
This service powers templating, eligibility rules, and dynamic updates without blocking ad serving.
3) Eligibility and Constraints Engine
Retail-style placements must respect constraints beyond standard targeting:
- Category and keyword eligibility: Only show products relevant to the page or query
- Merchant and brand rules: Allowlist or blocklist based on publisher policy
- Diversity constraints: Avoid repeating the same brand or merchant across top N slots
- Price and availability checks: Exclude out-of-stock or stale pricing
This engine runs pre-auction filtering and post-auction adjustments when multiple slots are filled concurrently.
4) Auction Fabric with CPC-to-CPM Translation
Integrate with client-side header bidding and server-side auction services. Enhance the fabric with:
- Bid normalization: Convert CPC bids to CPM and normalize currency
- Context-aware floors: Floors that consider placement type, device, and viewability propensity
- First-price and hybrid clearing: Support first-price clearing with optional bid shading or second-price emulation for stability
5) Ranking and Optimization Service
Move beyond pure price ranking. Incorporate yield and experience:
- Objective function: Combine expected CPM, CTR quality, diversity penalties, and pacing
- Multi-slot coordination: Optimize across multiple sponsored tiles to maximize total yield with constraints
- Online learning: Continuously update eCTR priors by placement and bidder with click feedback
6) Native Templating and Rendering
Enable publishers to maintain UX with minimal engineering overhead:
- Template library: Responsive components for product tiles, carousels, and table rows
- Server-side hydration: Render skeletons early to avoid layout shifts, then hydrate with ad content
- Clear disclosure and labeling: Configurable “Sponsored” labels and merchant badges
7) Measurement, IVT, and Brand Safety
Retail-style units are sensitive to click inflation and poor UX. Build a strong measurement stack:
- OM SDK for web viewability: Open Measurement for viewability and verification support
- Click integrity: Deduplicate rapid repeat clicks, evaluate dwell time, and filter bot-like patterns
- Attribution hooks: UTM parameters and server-side click redirects that comply with privacy policy
8) Reporting and Billing
Support buyer and publisher needs:
- Dual-ledger accounting: Impression-led ledger for supply, click-led ledger for CPC buyers with reconciliation
- Outcome reporting: CTR, eCPM, CPC realized, and incremental yield per placement
- Dispute workflows: Clear policies for invalid click adjustments and capped liability
Where Header Bidding Fits
Header bidding remains the orchestration layer that pulls bids in parallel and enforces latency budgets. For sponsored listings:
- Client-side for UX-sensitive placements: Prebid.js can request native bids with dynamic template rendering
- Server-side for scale and latency: Prebid Server or custom gateways consolidate calls and return ranked bundles
- Hybrid: Critical bidders in client, long-tail demand server-side
The big requirement is native support with product-like assets. OpenRTB Native 1.2 assets map cleanly to retail listing attributes, including price and brand. Citations: OpenRTB Native 1.2 documentation describes assets like title, image, sponsored, price, saleprice, and brand. Prebid provides native adapters and templating for web publishers. See IAB Tech Lab OpenRTB Native and Prebid Native documentation.
Standards That Matter
If you want predictable interoperability, stay close to these standards:
- OpenRTB 2.x with Native 1.2: For request and response mapping of product-like assets
- ads.txt and sellers.json: For supply authentication and transparency
- SupplyChain Object (schain): To declare intermediaries
- GPP and TCF: For privacy signals across regions
- Open Measurement SDK: For standardized viewability and verification
- Seller Defined Audiences: For contextual and intent cohorts without PII
References: IAB Tech Lab provides the canonical specs for OpenRTB, sellers.json, SupplyChain, GPP, and OM SDK. Prebid.org documents native implementation patterns.
Prebid Native: Example Configuration for Sponsored Listings
Below is an illustrative Prebid.js configuration for a sponsored listing unit using OpenRTB native assets. Exact fields and adapters depend on the demand partners you enable.
// Prebid configuration for a sponsored listing block
window.pbjs = window.pbjs || {};
pbjs.setConfig({
debug: false,
bidderTimeout: 1200,
priceGranularity: 'medium',
floors: {
enabled: true,
enforcement: {
enforceJS: true
},
data: {
currency: 'USD',
schema: { delimiter: '|' },
values: {
'native|sponsored_listings|desktop': 1.20,
'native|sponsored_listings|mobile': 0.80
}
}
},
consentManagement: {
gpp: { cmpApi: 'iab', timeout: 120 },
usp: { cmpApi: 'iab', timeout: 120 },
tcf: { cmpApi: 'iab', timeout: 120 }
},
ortb2: {
site: {
pagecat: ['IAB2-16'], // e.g., Consumer Electronics
keywords: 'wireless earbuds, bluetooth, noise cancelling'
},
user: {
data: [
{
name: 'iabtechlab.com/sda',
ext: { segtax: 600 }, // Seller Defined Audiences taxonomy
segment: [
{ id: 'sda:shopping:electronics_audio' }
]
}
]
}
}
});
var adUnits = [{
code: 'sponsored_listings_slot',
mediaTypes: {
native: {
ortb: {
// OpenRTB Native 1.2 style assets
ver: '1.2',
plcmt: 4, // content wall/feed
assets: [
{ id: 1, required: 1, title: { len: 90 } },
{ id: 2, required: 1, img: { type: 3, wmin: 300, hmin: 300 } }, // main image
{ id: 3, required: 0, data: { type: 13, len: 50 } }, // brand
{ id: 4, required: 0, data: { type: 6, len: 20 } }, // price
{ id: 5, required: 0, data: { type: 7, len: 20 } }, // sale price
{ id: 6, required: 0, data: { type: 3, len: 5 } }, // rating
{ id: 7, required: 0, data: { type: 12, len: 15 } } // CTA text
],
eventtrackers: [
{ event: 1, methods: [1, 2] }, // Impression, img and js
{ event: 2, methods: [1, 2] } // Viewable, if supported
],
privacy: 1
}
}
},
bids: [
{
bidder: 'exampleRetailBidderA',
params: {
placementId: 'abc123',
pricingModel: 'cpc', // bidder will return CPC; SSP converts to CPM
merchantFilter: ['BestBuy', 'Target']
}
},
{
bidder: 'exampleNativeBidderB',
params: {
siteId: 'site-789',
productCategory: 'electronics'
}
}
]
}];
// Request bids and render with a native template or publisher component
pbjs.requestBids({
adUnits: adUnits,
bidsBackHandler: function() {
const adServerTargeting = pbjs.getAdserverTargetingForAdUnitCode('sponsored_listings_slot');
// Use adServerTargeting to hydrate publisher-native templates
}
});
Notes:
- Floors: Context-aware floors help maintain healthy CPMs when converting CPC bids
- ortb2: First-party context and SDAs travel to bidders without exposing PII
- Native assets: Price, sale price, and brand rely on OpenRTB Native data assets
Citations: Prebid Native documentation; IAB Tech Lab OpenRTB Native 1.2.
OpenRTB Native Request and Response Mapping
Here is a minimal OpenRTB Native request object for a single sponsored tile. This is typically wrapped inside a standard OpenRTB imp with native.request as a JSON string.
{
"native": {
"request": {
"ver": "1.2",
"plcmt": 4,
"assets": [
{ "id": 1, "required": 1, "title": { "len": 90 } },
{ "id": 2, "required": 1, "img": { "type": 3, "wmin": 300, "hmin": 300 } },
{ "id": 3, "required": 0, "data": { "type": 13, "len": 50 } },
{ "id": 4, "required": 0, "data": { "type": 6, "len": 20 } },
{ "id": 5, "required": 0, "data": { "type": 7, "len": 20 } },
{ "id": 6, "required": 0, "data": { "type": 3, "len": 5 } },
{ "id": 7, "required": 0, "data": { "type": 12, "len": 15 } }
],
"eventtrackers": [
{ "event": 1, "methods": [1, 2] },
{ "event": 2, "methods": [1, 2] }
],
"privacy": 1
}
}
}
A matching response returns mapped asset values and click tracking:
{
"native": {
"ver": "1.2",
"assets": [
{ "id": 1, "title": { "text": "Noise Cancelling Earbuds Pro" } },
{ "id": 2, "img": { "url": "https://cdn.example.com/images/earbuds.jpg", "w": 600, "h": 600 } },
{ "id": 3, "data": { "value": "Acme Audio" } },
{ "id": 4, "data": { "value": "$129.99" } },
{ "id": 5, "data": { "value": "$99.99" } },
{ "id": 6, "data": { "value": "4.6" } },
{ "id": 7, "data": { "value": "Shop now" } }
],
"link": {
"url": "https://merchant.example.com/p/earbuds?utm_source=publisher&utm_medium=sponsored",
"clicktrackers": [ "https://click.example.com/track?e=123" ]
},
"imptrackers": [ "https://imp.example.com/px?i=456" ],
"eventtrackers": [
{ "event": 1, "method": 1, "url": "https://imp.example.com/px?i=456" }
]
}
}
Keep mapping consistent. Validate price formatting and iconography in the renderer to match publisher style. Reference: IAB Tech Lab OpenRTB Native 1.2.
Translating CPC to CPM with Sane Economics
The CPC-to-CPM translation is straightforward mathematically. The nuance lies in robust eCTR estimation and protections against click inflation. A simple version:
def bayesian_ectr(clicks, impressions, alpha=2.0, beta=200.0):
"""
Returns a smoothed expected CTR using a Beta prior.
Alpha and beta chosen to reflect conservative prior CTR ~1%.
"""
return (clicks + alpha) / (impressions + alpha + beta)
def cpc_to_cpm(cpc_usd, ectr):
return cpc_usd * ectr * 1000.0
# Example:
# observed clicks=50, impressions=10000 -> raw CTR=0.5%
# smoothed eCTR ~ (50+2)/(10000+2+200) = 0.0051
# CPC $1.50 -> CPM ~ $1.50 * 0.0051 * 1000 = $7.65
Add guardrails:
- Flooring: Apply publisher floors after conversion
- Clamping: Limit eCTR changes per hour to avoid oscillation
- Quality modifiers: Downweight bidders with elevated invalid click rates
This preserves auction integrity while letting CPC buyers compete fairly.
Ranking Beyond Price: Auction Then Rank
When multiple slots exist in a module, treat ranking as an optimization problem constrained by eligibility and diversity. A workable approach:
- Convert all bids to effective CPM and filter by eligibility.
- Produce a candidate set per slot that meets constraints.
- Optimize globally across N slots to maximize total expected yield with penalties.
Here is pseudocode:
def rank_sponsored_listings(candidates_by_slot, diversity_penalty=0.1, coverage_penalty=0.05): """ candidates_by_slot: list of lists, each inner list is tuples: (bidder_id, cpm, ectr, brand, merchant, item_id) Returns selections: list of chosen items per slot. """ chosen = [] used_brands = set() used_merchants = set() for slot_idx, candidates in enumerate(candidates_by_slot): best = None best_score = -1.0 for c in candidates: bidder_id, cpm, ectr, brand, merchant, item_id = c score = cpm if brand in used_brands: score *= (1.0 - diversity_penalty) if merchant in used_merchants: score *= (1.0 - coverage_penalty) # optional: prefer higher eCTR when CPMs tie score += ectr * 0.1 if score > best_score: best = c best_score = score chosen.append(best) _, _, _, brand, merchant, _ = best used_brands.add(brand) used_merchants.add(merchant) return chosenThis is simple but effective. For tighter control, use integer programming or beam search when N grows, while enforcing editorial constraints.
Publisher UX and Performance Matters
Sponsored listing modules live alongside core content. If they hurt performance, they will be short lived. Focus on:
- CLS and LCP: Render stable skeletons server-side, hydrate after auction to avoid layout shifts
- Network discipline: Consolidate calls via server-side auction where possible
- Caching and prefetch: Cache product images and leverage HTTP/2 prioritization
- Accessibility: Proper labels, alt text, and keyboard navigation for tiles
Citations: Core Web Vitals guidance from Google highlights how CLS and LCP can impact user experience and revenue. Prebid provides modules and best practices for asynchronous rendering.
Privacy-by-Design Without PII
Retail-style outcomes tempt teams to collect more data. Resist that impulse. You can perform well with:
- Context and cohorts: Use page context, in-site search terms, and SDAs
- Consented first-party signals: Only when explicitly provided by the publisher under applicable law
- No PII: Do not transmit emails, full IP addresses, or hardware identifiers
- GPP everywhere: Respect regional consent and opt-out across all endpoints
Citations: IAB Tech Lab GPP and TCF documentation lay out standardized consent signaling. Seller Defined Audiences enables publisher-centric cohorts without personal identifiers.
Brand Safety and Authenticity
Trust is critical. Sponsored listings must be safe and authentic.
- ads.txt and sellers.json enforcement: Ensure the chain is authorized before routing demand
- SupplyChain Object propagation: Declare all intermediaries
- Merchant verification: Verify official domains, product URLs, and store reputations
- Image and price integrity: Validate images for dimension and content; check price parity with landing pages
Citations: IAB Tech Lab sellers.json and SupplyChain Object specifications define how to represent intermediaries in programmatic transactions.
Measurement and Click Integrity
Clicks power CPC economics. Treat them as critical financial events.
- Server-side click redirects: Sign and log click events before redirecting to merchants
- OM SDK viewability: Use standardized measurement to inform quality weighting
- Invalid traffic controls: Pattern detection for jitter clicks, rapid repeats, and impossible sequences
- Dispute management: Shared dashboards and evidence for invalid click adjustments
An example click redirect service:
from flask import Flask, request, redirect import hmac, hashlib, time, base64 SECRET = b'supersecretkey' def sign(payload): return base64.urlsafe_b64encode(hmac.new(SECRET, payload.encode(), hashlib.sha256).digest()).decode() def verify(payload, signature): expected = sign(payload) return hmac.compare_digest(expected, signature) app = Flask(__name__) @app.route('/clk') def clk(): merchant_url = request.args.get('u') item_id = request.args.get('item') ts = int(request.args.get('ts', '0')) sig = request.args.get('sig') payload = f'u={merchant_url}&item={item_id}&ts={ts}' if not verify(payload, sig): return 'invalid', 400 # Reject very old clicks if time.time() - ts > 3600: return 'expired', 410 # Log the click server-side with IP truncation and user agent hash # Apply IVT heuristics and rate limits # ... return redirect(merchant_url, code=302)This pattern provides authenticated, auditable click events without storing PII.
Publisher Controls and Policy
Editors and product managers need to shape how sponsored listings appear:
- Disclosure: Configurable labels and highlighting
- Frequency caps: Per page and per session
- Category guardrails: Sensitive categories off-limits
- Layout templates: Choose carousel versus grid depending on page intent
Make these controls self-serve in the SSP UI, with presets per placement.
Tying It Together With Seller Tools
The SSP’s customer is the publisher. Give them tools that map to their workflows:
- Placement designer: Define sponsored modules and associate templates and policies
- Context mappers: Link site taxonomy and search facets to placement eligibility
- Revenue analytics: Report by placement, page group, and partner with eCPM and CPC detail
- A/B orchestration: Test layouts and diversity rules to improve CTR and yield
Interoperability With Affiliate and Retail Partners
Sponsored listings often sit near affiliate links or commerce partnerships. Avoid channel conflict:
- Attribution windows: Coordinate click windows with affiliate networks
- Link hygiene: Make sure UTM and network parameters do not clash
- Priority rules: Define how affiliate modules and sponsored listings share space
Publishers win when there is a coherent commerce strategy on each page, not overlapping modules fighting for attention.
Extending to App and CTV
While this article focuses on web, the same primitives apply elsewhere:
- In-app: Native templates in feed-based apps with SDK-level click integrity
- CTV: Home screen rails or search results on TV OS can host sponsored rows with strict UX and measurement rules
Standards differ (for example, OM SDK for in-app), but the idea of CPC-to-CPM translation and multi-slot optimization carries over.
A Phased Implementation Plan for SSPs
A practical way to introduce sponsored listings without boiling the ocean:
- Phase 1: Native through header bidding: Enable OpenRTB Native assets and a small set of commerce bidders via Prebid. Build CPC-to-CPM conversion and basic click logging
- Phase 2: Eligibility and ranking: Add constraints engine, diversity rules, per-slot optimization, and improved eCTR learning
- Phase 3: Catalog and integrity: Introduce product feed normalization, price validation, and richer templating
- Phase 4: Advanced measurement: OM SDK integration, IVT scoring, and buyer-side reconciliation APIs
Each phase should produce incremental revenue and UX gains.
KPIs That Matter
To know if this is working, focus on:
- Publisher yield: eCPM uplift of sponsored modules versus baseline native or display
- Fill and coverage: Percent of eligible pages with sponsored modules and fill rate per slot
- Quality-adjusted CTR: CTR after IVT filtering with stable variance
- Buyer retention: Repeat spend and stable CPCs across weeks
- UX health: CLS and LCP neutral or improved versus prior layouts
Common Pitfalls and How to Avoid Them
Some lessons learned from deployments:
- Late rendering causes CLS: Fix with server-rendered shells and predictable slot heights
- CPC arbitrage headaches: Enforce floors and smooth eCTR updates to avoid volatility
- Misaligned taxonomy: Normalize category labels early to avoid thin eligibility
- Fraud scares: Invest in click integrity and transparent invalidation policies from day one
- Too many modules: Keep sponsored listings to one or two thoughtful placements per page
What Differentiates a Great SSP in Sponsored Listings
As more SSPs add native and commerce capabilities, differentiation comes from depth and discipline:
- Publisher-first UX: Templating that matches design systems and protects performance
- Transparent economics: Clear CPC-to-CPM logic and dispute processes
- Retail fluency: Clean catalogs, price validation, and merchant trust frameworks
- Privacy rigor: GPP, SDAs, and no PII governance baked in
- Actionable analytics: Insights that help editors and revenue ops tune modules weekly
Sample Data Contracts and APIs
Make your sponsored listing stack programmable. Buyers and publishers benefit from explicit contracts. A simplified bid response extension indicating CPC pricing:
{ "seatbid": [{ "bid": [{ "impid": "1", "price": 3.20, "ext": { "pricing": { "model": "cpc", "cpc_usd": 1.60, "ectr": 0.02, "ecpm_usd": 32.0 }, "merchant": { "name": "Acme Audio", "domain": "acmeaudio.example" } } }] }] }A click reconciliation endpoint for buyers:
POST /api/v1/clicks/reconcile HTTP/1.1 Content-Type: application/json { "buyer_seat": "seatA", "interval_start": "2025-10-10T00:00:00Z", "interval_end": "2025-10-10T01:00:00Z", "summary": { "impressions": 125000, "clicks": 640, "invalid_clicks": 28, "billable_clicks": 612 }, "signature": "base64-hmac" }Expectations:
- Billable clicks: Derived from server-side logs with IVT policy applied
- Dispute window: For example, 7 days to raise concerns with evidence
Editorial and Compliance Considerations
Stay ahead of policy and user trust:
- Clear labeling: “Sponsored” must be unambiguous
- Sensitive categories: Publishers must have granular controls and regional rules
- Accessibility: Ensure assistive technologies can parse sponsored tiles
- Data minimization: Collect only what is necessary to serve and measure the unit
Citations: Many publishers adopt policies aligned with FTC guidance on native advertising disclosures. Open Measurement and accessibility best practices support user trust and compliance.
How Red Volcano’s Intelligence Can Help
As a data intelligence platform focused on the supply side, Red Volcano can accelerate the journey:
- Discovery: Identify publishers with commerce content, in-site search, and native header bidding adoption
- Technology mapping: Track Prebid, native adapters, and privacy frameworks in use across the web
- Quality monitoring: Observe ads.txt and sellers.json hygiene and alert on configuration drift
- Mobile and CTV extensions: Surface app SDK footprints and CTV placement opportunities for commerce-like units
With this visibility, SSPs can prioritize the right publishers, validate readiness, and measure coverage and freshness of the underlying data assets that make sponsored listings succeed.
Conclusion
Sponsored listings are moving from retail gardens to the open web. The opportunity is to deliver intent-rich, product-forward units that feel native to each publisher experience while preserving auction efficiency and privacy. SSPs are uniquely positioned to make this work. The blueprint is clear: lean on OpenRTB Native and Prebid for pipes, add a catalog and constraints layer, translate CPC to CPM with integrity, and rank across multiple slots with diversity and UX in mind. Wrap it in OM-based measurement, sellers.json transparency, and GPP compliance, and you have a durable monetization engine that publishers and advertisers can trust. The result is not just a new unit. It is a new commerce surface area for the open web, powered by standards, disciplined engineering, and respect for user experience. Build it step by step, measure relentlessly, and let publisher-first principles guide the product. The budgets will follow.
References and Further Reading
- IAB Tech Lab OpenRTB Native: https://iabtechlab.com/standards/openrtb-native/
- IAB Tech Lab sellers.json: https://iabtechlab.com/standards/sellers-json/
- IAB Tech Lab SupplyChain Object: https://iabtechlab.com/standards/supply-chain-object/
- IAB Tech Lab Global Privacy Platform: https://iabtechlab.com/standards/gpp/
- IAB Tech Lab Open Measurement SDK: https://iabtechlab.com/open-measurement-sdk/
- Prebid Native Ads: https://docs.prebid.org/dev-docs/show-native-ads.html