Revenue per request is the advertising revenue earned over a period divided by the number of ad requests made in that period. It prices an opportunity rather than a sale. An impression-based rate such as effective cost per thousand impressions (eCPM) records what was paid for the ads that ran; revenue per request also counts the calls that came back empty, so a demand source that pays well but rarely fills cannot hide behind its price. Because one request is worth a fraction of a cent, the figure is scaled: per thousand requests (request RPM, rCPM or ad request eCPM) or per million, which Amazon's traffic tooling calls RPMA.
The metric exists because inventory is offered far more often than it is bought. Every page load and auction call generates requests, each costing someone money to process. Revenue per request says whether that traffic was worth sending.
How the number is built
The arithmetic is the product of two familiar ratios: revenue per thousand requests equals fill rate multiplied by eCPM. A publisher making 1,000,000 requests that fill 60% of the time at a $2.00 eCPM serves 600,000 impressions, earns $1,200 and records $1.20 per thousand requests. If a higher floor cuts fill to 45% while eCPM climbs to $2.50, the impression price has risen by 25%, yet request RPM drops to $1.125. One metric improved; the business did not.
Google documents the distinction directly. According to its Ad Exchange help pages, ad request eCPM divides revenue by ad request queries and factors in fill rate, which disadvantages networks offering high prices but low fill; a separate matched request eCPM removes fill from the calculation. In the AdSense Management API the field is AD_REQUESTS_RPM, defined as estimated revenue divided by ad requests, multiplied by 1,000. Google's reporting migration guide maps the same measure to AD_EXCHANGE_AD_REQUEST_ECPM in Ad Manager.
What counts as a request is where definitions part company. AdSense counts one request per ad unit, or per search query, and states that a request may produce zero, one or several individual ads. A supply-side platform (SSP) counts the bid requests it forwards to each demand-side platform (DSP). One pageview can therefore sit behind a single ad server request, a dozen header bidding calls and hundreds of bid requests, the ratio shrinking at every step of the fan-out.
At the far end of that chain the values are minute. DataBeat's June 2026 report put conventional buyers' clearing price at $6.95 and their fill rate at 0.183%, against $6.13 and 0.204% for agentic buyers, a report whose fill-rate basis was left undefined. Multiplied through, conventional demand earns roughly $12.72 per million bid requests and agentic demand about $12.51. A 13.4% gap in price is almost erased by the difference in fill, leaving under 2% between them. DataBeat did not publish that calculation, and the undefined fill basis limits it.
The buy-side mirror
Buyers track the same ratio from the other side, as spend per request. The Dynamic Traffic Engine (DTE), a traffic-shaping specification built by Amazon Ads, requires integrated SSPs to file weekly reports that include spend per million ad requests, calculated according to the specification as total spend divided by bid requests sent to Amazon, multiplied by 1,000,000, and split between treatment and control groups.
Version 2.1, dated September 24, 2025, added optional monetisation insight files giving sellers RPMA values for traffic tuples built from OpenRTB fields: site or app, format, country, publisher ID, slot size, position, device type, operating system, device make and browser. Sample rows run from 22.23 dollars per million requests for a US mobile app banner to 1.80 for a UK desktop leaderboard flagged for filtering. According to the specification, the files exist so sellers can concentrate queries per second (QPS) allocations on higher-value traffic, and they are not used by the evaluator that issues filter decisions.
Operators sit on both sides. Publisher yield teams watch request RPM by ad unit and demand partner. SSPs build expected revenue per request into the models deciding which bid requests each buyer sees, a practice PPC Land's traffic shaping explainer describes as rationing supply against buying capacity.
Origin and evolution
The concept is older than its names. Waterfalls ranked ad networks by historical eCPM and offered each impression to them in turn, an ordering that rewarded a network's price while ignoring how often it passed the impression back. Yield optimisers built businesses correcting that; Admeld, PubMatic, the Rubicon Project and YieldBuild presented jointly at an IAB event in July 2009, according to AdExchanger. Request-based eCPM wrote the correction into reporting: fill priced in.
Header bidding, which ran demand sources in parallel rather than in sequence, multiplied the denominator from about 2014. PubMatic processed 56 trillion impressions in the third quarter of 2022, 33% more than a year earlier. As volume climbed, revenue per request fell by construction, and the metric migrated from publisher dashboards into infrastructure economics.
Amazon formalised the shift. Announcing DTE in November 2024, it quoted Teddy Jawde, chief product officer at Yieldmo, reporting an average 7% improvement in fill rate and spend per million ad requests within weeks, a partner figure not independently verified. The closed beta specification followed on January 14, 2025. A week later, according to its changelog, version 1.2 renamed the model identifier adsp_rpma-lite_v1 to adsp_low-value_v1, a small trace of the metric sitting underneath the filter. RPMA sharing arrived in version 2.1; version 2.4 followed on June 1, 2026.
Why it matters
For publishers, revenue per request reconciles price with volume, which is why floor decisions are argued in it. The trade-off runs through Yahoo's third-quarter 2022 figures, set out in PPC Land's price floor explainer: impressions through its exchange fell 13.86% while the price it labelled eCPM, described as revenue per thousand requests, rose 16.57%, leaving exchange revenue up just 0.41%.
For SSPs the denominator now carries a direct charge. PubMatic's supply policy, effective April 16, 2026, bills publishers an excess inventory fee of $0.001 CPM above daily caps it has not published, and whether the trigger is impressions or raw bid requests remains undisclosed. Were it applied per thousand bid requests, a request earning DataBeat's conventional average would surrender nearly 8% of its expected revenue to the fee. Publishers have cut requests instead: Chegg stops calling a slot once it has drawn 20 or more requests with zero bids.
For advertisers the effect is quieter: shaping driven by expected revenue decides which impressions a DSP ever evaluates, and no campaign report lists what was withheld.
Limitations and disputes
The denominator is the weak point. Duplication inflates it: DataBeat's sellers report of June 11, 2026 found 46% of domains connected to tier 1 SSPs reachable through more than one path, so a request logged as unsold in one route may have sold in another. Shrinking it is the cheapest way to raise the ratio: throttling, collapsing empty slots and slowing refresh lift revenue per request while revenue stays flat, the same distortion PPC Land's no fill explainer identifies in fill rate.
Labels are unreliable. RPM in AdSense's interface normally means revenue per thousand pageviews or impressions. PubMatic, in a case study on the broadcaster ABS-CBN, used RPM for revenue per thousand ad requests, reporting a 50.1% rise, a vendor figure. The Yahoo figures show the ambiguity in reverse: 13.86% fewer impressions at a 16.57% higher price produces almost exactly the 0.41% revenue growth reported, which reconciles only if that price is read per impression rather than per request.
Whose revenue is divided also varies. RPMA in DTE reflects buyer spend before SSP fees, so it is not comparable with a publisher's net request RPM.
Circularity is the structural criticism. Models ranking traffic by past revenue per request send more of what sold before. Chris Kane, founder of Jounce Media, has argued that every exchange ends up choosing the same impression because each ranks by expected revenue, and PPC Land's coverage of OpenX's DTE integration noted that such filters can remove valuable inventory while retaining low-quality impressions. The metric is also blind to the reader, a gap PPC Land's revenue per session explainer examines in detail.
Not the same as
Fill rate is the share of requests that return an ad. It is one factor inside revenue per request.
eCPM divides revenue by impressions. It measures price and ignores unsold requests.
Page RPM and session RPM divide revenue by pageviews or visits, measuring an audience unit rather than an ad call.
Pay per crawl prices a request in the opposite direction. Cloudflare's scheme, launched in private beta on July 1, 2025, let publishers charge AI crawlers a set price for each fetch. It is a tariff, not a yield measure.
Recent developments
The request turned from a reporting unit into a cost line during 2026. Amazon donated DTE to the IAB Tech Lab on April 15, 2026, making RPMA sharing an open specification rather than one buyer's programme, after TripleLift and OpenX had integrated it during 2025. PubMatic's fee took effect the next day, with enforcement emails reaching publishers in June.
The same months brought a move away from request-level pricing at the edges. Teads introduced EngageOS on June 11, 2026, a single auction optimised for revenue per session rather than per impression. Cloudflare, on July 1, 2026, abandoned per-crawl charging in favour of paying publishers when content contributes to an AI answer.
Outages show why the per-request view persists. When Google Ad Manager and AdSense failed from January 13, 2026, publishers reported revenue declines of 50% to 90% with traffic unchanged, a collapse that appears first in what each request earns.
Timeline
- July 2009: Admeld, PubMatic, the Rubicon Project and YieldBuild present on yield optimisation at an IAB event in New York
- 2014 to 2015: Header bidding introduces parallel auctions, multiplying request volume
- Q3 2022: PubMatic processes 56 trillion impressions, up 33% year on year
- November 2024: Amazon Ads announces the Dynamic Traffic Engine beta, citing spend per million ad requests as a success measure
- January 14, 2025: DTE specification version 1.1 opens as a closed beta
- January 22, 2025: DTE version 1.2 renames the adsp_rpma-lite_v1 model to adsp_low-value_v1
- February 4, 2025: TripleLift discloses participation in the DTE beta
- July 1, 2025: DTE version 2.0 adds a deals model; Cloudflare launches pay per crawl in private beta
- September 24, 2025: DTE version 2.1 adds RPMA monetisation insight files for sellers
- December 22, 2025: OpenX integrates the Dynamic Traffic Engine
- January 13, 2026: Google Ad Manager and AdSense failures begin, cutting publisher revenue by 50% to 90%
- April 15, 2026: Amazon donates DTE to the IAB Tech Lab
- April 16, 2026: PubMatic's supply policy and excess inventory fee take effect
- June 1, 2026: DTE specification version 2.4 published
- June 11, 2026: DataBeat reports 46% domain duplication at tier 1 SSPs; Teads introduces EngageOS
- June 22, 2026: DataBeat compares agentic and conventional clearing prices and fill rates
- July 1, 2026: Cloudflare replaces per-crawl charging with payment per AI answer
Related PPC Land coverage
- Explaining revenue per session - The visit-level yield metric and why slot-level ratios cannot see engagement.
- Explaining no fill - Unfilled requests, fill-rate arithmetic and how shrinking the denominator flatters it.
- Explaining price floor - How floors trade volume for price, including Yahoo's 2022 exchange figures.
- Explaining traffic shaping - How exchanges ration bid requests and the circularity of revenue-ranked filters.
- Explaining header bidding - Parallel auctions and the request volume they created.
- Explaining Admeld - Waterfalls ranked by historical eCPM and the yield optimisers that challenged them.
- Amazon gives away the tool that fixes programmatic's QPS waste problem - The DTE donation and its spend-per-million-requests reporting.
- Triplelift joins Amazon's traffic engine to optimize ad requests - The first SSP to disclose DTE participation.
- OpenX integrates Amazon's machine learning to filter low-value impressions - A second SSP integration and the risk of filtering valuable supply.
- PubMatic is now charging publishers for sending too much inventory - The excess inventory fee that put a price on request volume.
- Publishers deploy bid throttling to tackle programmatic waste - Chegg's zero-bid threshold and PubMatic's 2022 impression volumes.
- Same ad slot bid twice: DataBeat finds 46% auction duplication at top SSPs - Duplicated supply paths that inflate request counts.
- Programmatic buyers gain 13.4% CPM edge over AI agents, DataBeat finds - Clearing prices and bid-level fill rates for agentic and conventional demand.
- Taboola extends Goal.com deal to December 2028 across 125m monthly visits - Context on Teads' EngageOS and the shift to session-based optimisation.
- Cloudflare launches pay per crawl to monetize AI content access - Per-fetch pricing for AI crawlers through HTTP 402 responses.
- Cloudflare stops charging AI per crawl and starts paying per answer - The July 2026 move from per-request to per-answer compensation.
- Google ad platform failures slash publisher revenue up to 90% overnight - The January 2026 outage and its effect on publisher yield.
Summary
Who. Publisher yield and ad operations teams track revenue per request in ad servers and wrappers; SSPs use it to shape traffic; DSPs such as Amazon DSP report the mirror figure, spend per request, back to sellers. Google defines it in AdSense and Ad Manager reporting, and the IAB Tech Lab now hosts the DTE specification that carries RPMA.
What. Revenue per request is advertising revenue divided by ad requests, usually per thousand (request RPM, rCPM, ad request eCPM) or per million (RPMA). It equals fill rate multiplied by eCPM, so it captures both price and the share of requests that sell.
When. The idea took shape with yield optimisation in the late 2000s, gained weight as header bidding multiplied requests from about 2014, and became an infrastructure metric with Amazon's DTE in 2024 and 2025 and PubMatic's request fee in April 2026.
Where. It is calculated at every layer of the programmatic chain: the publisher ad server, the header bidding wrapper, the SSP and the DSP, each with a different definition of a request.
Why. Impression prices ignore unsold opportunities, and requests carry processing costs whether or not they fill. Revenue per request shows what each opportunity is worth, though its denominator is easily inflated by duplication or shrunk by throttling.
Discussion