Media Buy Lifecycle
Media buys represent the complete lifecycle of advertising campaigns in AdCP. The AdCP:Buy protocol provides a unified interface for managing media buys across multiple advertising platforms, from initial campaign creation through ongoing optimization and updates.Overview
AdCP’s media buy management provides a unified interface for:- Campaign Creation from discovered products and packages
- Lifecycle Management through all campaign states
- Budget and Targeting Updates for ongoing optimization
- Cross-Platform Orchestration with consistent operations
- Asynchronous Operations with human-in-the-loop support
The Media Buy Lifecycle Phases
1. Creation Phase
Transform discovered products into active advertising campaigns usingcreate_media_buy:
- Package Configuration: Combine products with formats, targeting, and budget
- Campaign Setup: Define timing, overall budget, and promoted offering
- Validation & Approval: Automated checks with optional human approval
- Platform Deployment: Campaign creation across advertising platforms
- Immediate creation with
pending_activationstatus - Human approval workflow with
pending_manualstatus - Permission requirements with
pending_permissionstatus
- Google Ad Manager: Creates an Order with LineItems
- Kevel: Creates a Campaign with Flights
- Triton Digital: Creates a Campaign with Flights
2. Creative Upload Phase
Once created, the media buy requires creative assets viasync_creatives:
- Platform-specific format support (video, audio, display, custom)
- Validation and policy review for creative compliance
- Assignment to specific packages for targeted delivery
3. Activation & Delivery Phase
Monitor and manage active campaigns:- Status Tracking: Campaign transitions from
pending_activationtoactive - Creative Assignment: Attach assets from the creative library
- Delivery Monitoring: Track pacing and performance metrics with
get_media_buy_delivery - Issue Resolution: Handle approval delays and platform issues
4. Optimization & Reporting Phase
Ongoing performance monitoring and data-driven campaign optimization using AdCP’s comprehensive reporting tools. Key activities include:- Performance monitoring with real-time and historical analytics
- Campaign optimization through budget reallocation and targeting refinement
- Dimensional reporting using the same targeting dimensions for consistent analysis
- AI-driven insights through performance feedback loops
Key Concepts
Media Buy Structure
A media buy contains:- Campaign metadata (buyer reference, promoted offering, timing)
- Overall budget with currency and pacing preferences
- Multiple packages representing different targeting/creative combinations
- Status tracking through creation, approval, and execution phases
Package Model
Packages are the building blocks of media buys:- Single product selection from discovery results - when you buy a product, you buy the entire product
- Creative formats to be provided for this package
- Targeting overlays for audience refinement beyond product defaults
- Budget allocation as portion of overall media buy budget
- Pricing option selection from product’s available pricing models
- Pacing strategy for budget delivery (even, asap, or front_loaded)
- Bid price for auction-based pricing models (when applicable)
Creative Assignment and Placement Targeting
When a product defines multiple placements, buyers can assign different creatives to different placements while still purchasing the entire product. Key Points:- Packages buy the entire product - you cannot target individual placements at the package level
- Placement targeting happens only at the creative assignment level
- Creatives without
placement_idsrun on all placements in the product
- Product defines placements:
- Buyer creates package (buys entire product) and assigns different creatives to each placement:
- Or assign one creative to all placements (omit placement_ids):
- Format-specific placements: Homepage takes 728x90, sidebar takes 300x250
- A/B testing: Test different creatives on different placements
- Geo-targeting: Different creatives for different DOOH screen locations
- Dayparting: Different creatives for morning vs evening placements
Lifecycle States
Media buys progress through predictable states:pending_activation: Created, awaiting platform setuppending_manual: Requires human approvalactive: Running and delivering impressionspaused: Temporarily stoppedcompleted: Finished successfully
Core Operations
Creating Media Buys
The creation process handles:- Product validation ensuring discovered products are still available
- Format compatibility checking creative requirements across packages
- Budget distribution allocating spend across multiple packages
- Platform coordination creating campaigns across multiple ad servers
Updating Media Buys
Modification capabilities include:- Budget adjustments for increased/decreased spend
- Targeting updates to refine audience parameters
- Package modifications adding/removing products and formats
- Schedule changes for extended or shortened campaign timing
Status Management
Campaign state transitions:- Activation requests to start pending campaigns
- Pause/resume operations for campaign control
- Completion handling for successful campaign closure
- Error recovery for failed operations
Response Times
Media buy operations use a unified status system with predictable timing:-
create_media_buy: Instant to dayscompleted: Simple campaigns created immediatelyworking: Processing within 120 seconds (validation, setup)submitted: Complex campaigns requiring hours to days (human approval)
-
update_media_buy: Instant to dayscompleted: Budget changes applied immediatelyworking: Targeting updates within 120 secondssubmitted: Package modifications requiring approval (hours to days)
-
get_media_buy_delivery: ~60 seconds (data aggregation) - Performance analysis: ~1 second (cached metrics)
completed: Operation finished, process results immediatelyworking: Processing, expect completion within 120 secondssubmitted: Long-running operation, provide webhook or poll withtasks/get
Best Practices
Campaign Planning
- Start with clear objectives defined in your product discovery brief
- Plan package structure around distinct audience/creative combinations
- Set realistic budgets based on product pricing guidance
- Allow time for approval in publisher workflows
Ongoing Management
- Monitor daily pacing to ensure delivery against targets
- Review performance weekly for optimization opportunities
- Update targeting gradually to avoid disrupting delivery
- Refresh creatives regularly to prevent audience fatigue
Budget Management
- Allocate conservatively initially, then increase based on performance
- Reserve budget for high-performing packages
- Plan for seasonality in audience availability and pricing
- Monitor spend efficiency across different targeting approaches
- Budget Management: The system automatically recalculates impressions based on CPM when budgets are updated
Technical Implementation
- Pause/Resume Strategy: Use campaign-level controls for maintenance, package-level for optimization
- Performance Monitoring: Regular status checks and delivery reports ensure campaigns stay on track
- Asynchronous Design: Design orchestrators to handle long-running operations gracefully
- Task Tracking: Maintain persistent storage for pending task IDs
- Webhook Integration: Implement webhooks for real-time updates
- User Communication: Clearly communicate pending states to end users
Error Handling
For comprehensive error handling guidance including pending vs error states, response patterns, and recovery strategies, see Protocol Error Handling. Media buy specific error codes are documented in each task specification and the Error Codes Reference.Asynchronous Operations and Human-in-the-Loop
The AdCP:Buy protocol is designed for asynchronous operations as a core principle. Orchestrators MUST handle pending states gracefully.Human-in-the-Loop (HITL) Operations
Many publishers require manual approval for automated operations. The protocol supports this through the HITL task queue:- Operation Request: Orchestrator calls any modification task
- Pending Response: Server returns
pending_manualstatus with task ID - Task Monitoring: Orchestrator polls or receives webhooks
- Human Review: Publisher reviews and approves/rejects
- Completion: Original operation executes upon approval
HITL Task States
Orchestrator Requirements
Orchestrators MUST:- Handle
pending_manualandpending_permissionas normal states - Store task IDs for tracking pending operations
- Implement retry logic with exponential backoff
- Handle eventual rejection of operations gracefully
- Support webhook callbacks for real-time updates (recommended)
Standard Metrics
All platforms must support these core metrics:- impressions: Number of ad views
- spend: Amount spent in currency
- clicks: Number of clicks (if applicable)
- ctr: Click-through rate (clicks/impressions)
- conversions: Post-click/view conversions
- viewability: Percentage of viewable impressions
- completion_rate: Video/audio completion percentage
- engagement_rate: Platform-specific engagement metric
Platform-Specific Considerations
Different platforms offer varying reporting and optimization capabilities:Google Ad Manager
- Orders can contain multiple LineItems
- LineItems map 1:1 with packages
- Sophisticated targeting and frequency capping
- Requires creative approval process
- Reporting: Comprehensive dimensional reporting, real-time and historical data, advanced viewability metrics
Kevel
- Campaigns contain Flights
- Flights map 1:1 with packages
- Real-time decisioning engine
- Supports custom creative templates
- Reporting: Real-time reporting API, custom metric support, flexible aggregation options
Triton Digital
- Optimized for audio advertising
- Campaigns contain Flights for different dayparts
- Strong station/stream targeting capabilities
- Audio-only creative support
- Reporting: Audio-specific metrics (completion rates, skip rates), station-level performance data, daypart analysis
Advanced Analytics
Cross-Campaign Analysis
- Portfolio performance across multiple campaigns
- Audience overlap and frequency management
- Budget allocation optimization across campaigns
Predictive Insights
- Performance forecasting based on historical data
- Optimization recommendations from AI analysis
- Trend prediction for proactive adjustments
Integration Patterns
Discovery to Media Buy
Seamless flow from product discovery to campaign creation:- Use
get_productsto find inventory - Select products that align with campaign objectives
- Configure packages with appropriate targeting and formats
- Create media buy with
create_media_buy
Creative Integration
Coordinate with creative management:- Understand format requirements from selected products
- Prepare assets using Creative Management
- Assign creatives during campaign creation or via updates
- Monitor creative performance and refresh as needed
Performance Optimization
Data-driven campaign improvement leveraging comprehensive analytics:-
Track delivery with
get_media_buy_delivery- Monitor real-time delivery metrics and pacing analysis
- Get package-level performance breakdown for optimization opportunities
- Track performance across different targeting approaches
-
Analyze performance across packages and targeting
- Use dimensional reporting for granular insights
- Monitor performance index scores for AI-driven optimization
- Identify high and low performing segments
-
Update campaigns with
update_media_buy- Reallocate budgets between high and low performing packages
- Adjust targeting based on performance data
- Pause underperforming packages and scale successful ones
-
Iterate based on performance data and business outcomes
- Feed performance data back into optimization algorithms
- Continuously refine targeting and creative assignments
- Scale successful strategies across similar campaigns
Optimization Best Practices
- Report Frequently: Regular reporting improves optimization opportunities
- Track Pacing: Monitor delivery against targets to avoid under/over-delivery
- Analyze Patterns: Look for performance trends across dimensions
- Consider Latency: Some metrics may have attribution delays
- Normalize Metrics: Use consistent baselines for performance comparison
Related Documentation
- Product Discovery - Finding inventory for media buys
- Task Reference - Complete API documentation
- Creatives - Creative asset management
- Orchestrator Design Guide - Implementation best practices