Skip to main content
AdCP supports multiple pricing models to accommodate different advertising channels and business objectives. Publishers declare which pricing models they support, and buyers select from available options.

Publisher-Declared, Buyer-Selected Model

How It Works

  1. Publishers declare pricing options in their products via pricing_options array (each with unique pricing_option_id)
  2. Buyers discover available options through get_products
  3. Buyers select a specific option when creating a media buy via pricing_option_id
  4. Delivery is measured according to the declared delivery_measurement provider

Key Benefits

  • Flexibility: Publishers can offer multiple pricing models for the same inventory
  • Currency Support: Publishers specify supported currencies; buyers must match
  • Market Standards: Each channel (TV, video, display, performance) can use its natural pricing unit
  • Clear Expectations: Both parties agree on pricing before campaign launch

Measurement & Source of Truth

Measurement Provider as Source of Truth

The product declares the measurement provider, and the buyer accepts that provider as the source of truth for the buy. Publishers specify their measurement provider in the product:
Common Measurement Providers:
  • Ad Servers: Google Ad Manager, Freewheel, SpringServe
  • Attention Metrics: Adelaide, Lumen, TVision
  • Third-Party Verification: IAS, DoubleVerify, Scope3
  • TV/Audio Measurement: Nielsen, Comscore, iSpot.tv, Triton Digital
  • DOOH: Geopath, Vistar, Place Exchange
By accepting the product, buyers agree to use the declared measurement provider as the authoritative source for delivery metrics.

Best Practices

For Publishers:
  • Clearly identify your measurement provider (ad server and any third-party verification)
  • Explain your measurement methodology in plain language
  • For DOOH, specify your audience measurement source (e.g., Geopath, venue sensors)
For Buyers:
  • Review the measurement provider before committing budget
  • Ensure the provider meets your campaign requirements
  • Negotiate audit rights in contracts if needed

Supported Pricing Models

CPM (Cost Per Mille)

Cost per 1,000 impressions - Traditional display advertising pricing. Use Cases: Display, native, banner advertising Example:
Billing: Charged per 1,000 ad impressions served

vCPM (Viewable Cost Per Mille)

Cost per 1,000 viewable impressions - Payment only for impressions meeting MRC viewability standard. Use Cases: Display, native, video advertising with viewability guarantee Viewability Standard: MRC (Media Rating Council) standard requires:
  • Display ads: 50% of pixels in-view for at least 1 continuous second
  • Video ads: 50% of pixels in-view for at least 2 continuous seconds
Example:
Billing: Charged per 1,000 viewable impressions (impressions meeting MRC viewability threshold). Viewability is measured by the declared measurement provider. Measurement: When available, publishers declare their viewability measurement provider in the optional delivery_measurement field. Common providers include IAS (Integral Ad Science), DoubleVerify, MOAT, and Google Active View.

CPCV (Cost Per Completed View)

Cost per 100% video/audio completion - Payment only for fully completed views. Use Cases: Video campaigns, audio ads, pre-roll video Example:
Billing: Charged only when viewer completes 100% of the video/audio ad. Completion is measured by the declared measurement provider.

CPV (Cost Per View)

Cost per view at threshold - Payment when viewer reaches publisher-defined threshold. Use Cases: Video campaigns with shorter completion requirements Example:
Billing: Charged when viewer reaches threshold (e.g., 50% completion, 30 seconds) Parameters:
  • view_threshold: Decimal from 0.0 to 1.0 (e.g., 0.5 = 50% completion)

CPP (Cost Per Point)

Cost per Gross Rating Point - Traditional TV/radio buying metric. Use Cases: Connected TV, linear TV, radio, audio streaming Example:
Billing: Charged per rating point delivered to target demographic Parameters:
  • demographic: Target demographic (e.g., “A18-49”, “W25-54”, “M35+”)
  • min_points: Minimum GRP commitment required
Metrics Reported:
  • grps: Total Gross Rating Points delivered
  • reach: Unique individuals reached
  • frequency: Average frequency per individual
Measurement Requirements: CPP pricing requires certified demographic measurement. Publishers should declare their measurement provider:
Common Measurement Providers for CPP:
  • Nielsen DAR/TV: Industry-standard TV measurement
  • Comscore: Campaign Ratings for CTV
  • iSpot.tv: Advanced TV analytics
  • Triton Digital: Audio/streaming measurement
Buyers should verify the measurement provider meets their campaign requirements before accepting CPP deals.

CPC (Cost Per Click)

Cost per click - Performance-based pricing for engagement. Use Cases: Direct response campaigns, search ads, social advertising Example:
Billing: Charged only when user clicks the ad

CPA (Cost Per Acquisition)

Cost per conversion event - Advertiser pays when a defined conversion occurs. Use Cases: Retail media (pay per order), lead generation, app install campaigns, commerce media Example:
Billing: Charged a fixed price when the specified event_type fires. The pricing option declares what event triggers billing — this is independent of optimization_goals, which controls delivery optimization. Parameters:
  • event_type (required): The conversion event that triggers billing. Uses the standard event type enum (e.g., purchase, lead, app_install, add_to_cart, subscribe).
  • event_source_id (optional): When present, only events from this specific source count toward billing. Must match an event source configured via sync_event_sources. When omitted, any event of the specified event_type counts.
Example (different rates by event source):
Pricing vs. optimization: The CPA pricing option’s event_type (what triggers billing) is independent of the package’s optimization_goals (what the platform optimizes delivery toward). For example, a package can use CPA pricing on lead events while setting an event goal with event_sources containing purchase events and target: { kind: "per_ad_spend", value: 4.0 } — billing fires on leads, but delivery is optimized for downstream purchase return. Refunds and adjustments: Refund handling and conversion adjustment policies are commercial terms between buyer and seller. The protocol does not govern clawbacks or billing credits for refunded conversions. Note: CPA replaces the need for separate “CPO” (Cost Per Order) or “CPL” (Cost Per Lead) pricing models. A seller can offer multiple CPA options with different event types, event sources, and prices on the same product.

Flat Rate

Fixed cost - Single payment regardless of delivery volume. Use Cases: Sponsorships, takeovers, exclusive placements, branded content, DOOH fixed slots Example (sponsorship):
Example (DOOH slot with parameters):
Billing: Fixed cost for the entire campaign period regardless of delivery volume. DOOH parameters (parameters.type: "dooh"):
  • sov_percentage: Guaranteed share of voice as a percentage (0-100)
  • loop_duration_seconds: Duration of ad loop rotation in seconds
  • min_plays_per_hour: Minimum guaranteed plays per hour
  • venue_package: Named collection of screens
  • duration_hours: Duration of the slot in hours (e.g., 24 for a full-day takeover)
  • daypart: Named daypart (e.g., morning_commute, evening_rush)
  • estimated_impressions: Audience impression estimate (informational, not a delivery guarantee)
Sponsorship flat_rate options omit parameters — the fixed price covers the placement without DOOH-specific constraints.

Time (Cost Per Time Unit)

Cost per time unit - Rate scales with campaign duration, enabling self-serve sponsorships. Use Cases: Homepage takeovers, section sponsorships, premium placements where price depends on booking duration Example:
Billing: Cost = fixed_price x number of time_units in the campaign flight. For example, a 3-day campaign at 50,000/day=50,000/day = 150,000 total. Parameters:
  • time_unit (required): "hour", "day", "week", or "month"
  • min_duration (optional): Minimum booking duration in time units
  • max_duration (optional): Maximum booking duration in time units
Time Unit Calculation: Comparison with Flat Rate:

Digital Out-of-Home (DOOH) Pricing

DOOH advertising uses existing pricing models—typically CPM or flat_rate—with optional parameters to describe the inventory allocation.

Basic Concepts

  • CPM for DOOH: Priced per thousand impressions, where impressions are calculated based on venue traffic (e.g., Geopath data)
  • Flat rate for DOOH: Fixed cost for specific duration or allocation (hourly, daily, or exclusive takeover)

Simple Example: Billboard Takeover

DOOH parameters (optional)

For flat_rate DOOH inventory, publishers may include a parameters object with "type": "dooh". See the flat_rate pricing model section above for a complete example and full field list. Note: DOOH measurement and buying practices vary by market. Publishers should clearly explain their measurement methodology and inventory allocation in the product description and delivery_measurement field.

Multi-Currency Support

Publishers can offer the same product in multiple currencies:
Buyer Responsibility: Buyers must select a currency that the publisher supports.

Fixed vs. Auction Pricing

Fixed Pricing (fixed_price present)

  • Publisher sets a fixed price
  • Price is guaranteed and predictable
  • Common for guaranteed inventory
  • Include fixed_price field

Auction Pricing (fixed_price absent)

  • Final price determined through auction
  • Publisher provides floor_price (hard minimum) and optional price_guidance (percentile hints)
  • Bid-based auction models (cpm, vcpm, cpc, cpcv, cpv) may also include optional max_bid: true to explicitly signal bid_price is treated as buyer maximum willingness to pay (ceiling mode)
  • Common for non-guaranteed inventory
  • Buyer submits bid_price in media buy request
Auction Example:

Buyer Selection Process

Each package specifies its own pricing option, which determines currency and pricing model:
How it works:
  1. Package selects pricing_option_id from product (e.g., “cpcv_usd_auction”)
  2. Pricing option determines currency, pricing model, and fixed vs auction
  3. Package budget is in the pricing option’s currency
  4. Auction-based pricing requires bid_price; it is the exact honored price unless max_bid: true, which switches it to a maximum-willingness-to-pay ceiling
  5. Sellers validate currency compatibility across packages

Reporting Metrics by Pricing Model

Different pricing models report different primary metrics:

Example: Multi-Model CTV Product

A publisher offering Connected TV inventory with multiple pricing options:
A buyer could choose CPP pricing if they’re planning TV buys, CPCV if optimizing for engagement, or CPM for reach-based campaigns.

Best Practices

For Publishers

  1. Offer relevant pricing models - Match pricing to your inventory type and buyer expectations
  2. Set appropriate minimums - Use min_spend_per_package to ensure campaign viability
  3. Provide price guidance - For auction pricing, give realistic floor and percentile data
  4. Consider multi-currency - Support currencies of your target markets
  5. Document parameters - Clearly explain thresholds, demographics, and action types

For Buyers

  1. Select appropriate model - Choose pricing that aligns with campaign objectives
  2. Match currency - Ensure you select a currency the publisher supports
  3. Set realistic budgets - Account for minimum spend requirements
  4. Align goals with pricing - Set delivery goals that match your pricing model
  5. Monitor relevant metrics - Focus on the metrics that matter for your pricing model