Documentation Index
Fetch the complete documentation index at: https://docs.adcontextprotocol.org/llms.txt
Use this file to discover all available pages before exploring further.
Overview
AdCP servers support time simulation and dry run capabilities to enable comprehensive testing of advertising workflows without waiting for real-time events or spending actual budgets.Test Agent for Development
AdCP provides a public test agent with free credentials for development and testing: Agent URL:https://test-agent.adcontextprotocol.org
Free Test Credentials:
For MCP Protocol:
- Test authenticated operations
- Practice integration patterns
- Validate request/response structures
- Develop and debug client implementations
Protocol Compliance Testing
Testing via Addie
The easiest way to test your AdCP agent is to ask Addie in Slack:“Hey Addie, test my sales agent at https://sales.example.com”Addie can run comprehensive E2E tests including: Standard Scenarios:
- health_check - Verify agent responds
- discovery - Test
get_products,list_creative_formats,list_authorized_properties - create_media_buy - Discovery + create a test campaign
- full_sales_flow - Complete lifecycle: create → update → delivery
- creative_sync - Test
sync_creativesflow - creative_inline - Test inline creatives in
create_media_buy - pricing_models - Analyze pricing options across channels
- error_handling - Verify proper discriminated union error responses
- validation - Test rejection of invalid inputs (negative budgets, invalid enums)
- pricing_edge_cases - Test auction vs fixed pricing, min_spend requirements, bid_price handling
- temporal_validation - Test date/time ordering, ISO 8601 format validation
- behavior_analysis - Analyze agent characteristics: authentication requirements, brand_manifest requirements, brief relevance filtering, channel filtering behavior
Sales Agent Compliance Checklist
Use this checklist to verify your sales agent implementation covers all required features: Core Discovery (Required)-
get_products- Returns products with pricing_options, format_ids, delivery_type -
list_creative_formats- Returns supported formats and creative agents -
list_authorized_properties- Returns publisher domains (if applicable)
-
create_media_buy- Accepts packages with product_id, pricing_option_id, budget -
update_media_buy- Supports PATCH semantics for budget, pacing, targeting -
get_media_buy_delivery- Returns impressions, spend, status
-
sync_creatives- Upsert creatives with per-item action tracking -
list_creatives- Query creative library with filtering - Support inline creatives in
create_media_buy - Support creative references (
creative_ids)
- CPM - Cost per thousand impressions
- vCPM - Viewable CPM (MRC standard)
- CPCV - Cost per completed view
- CPC - Cost per click
- CPP - Cost per rating point (TV/radio)
- Flat rate - Fixed cost sponsorships
- Auction pricing - Support bid_price when is_fixed=false
- Static creatives (image, video assets)
- Reference creatives (creative_ids to existing library)
- Generative creatives (manifest-based)
- Parameterized creatives (with substitution)
- Discriminated union responses (success XOR errors)
- Schema-compliant responses (validate against JSON schemas)
- Async operations return status: submitted/working/completed
- Per-item errors in batch operations (e.g., sync_creatives)
-
X-Dry-Runheader support -
X-Test-Session-IDfor parallel test isolation -
X-Mock-Timefor time simulation
- Reject negative budget values
- Reject invalid pacing enum values
- Reject end_time before start_time
- Reject invalid ISO 8601 date formats
- Return proper error for non-existent product_id
- Require bid_price for auction pricing options
- Reject budget below min_spend_per_package
- Reject creative weight > 100
- Return discriminated union error responses (success XOR errors, never both)
Testing Modes
Dry Run Mode
Execute all operations without affecting real platforms or spending money:- No real platform API calls are made
- No actual money is spent
- Responses indicate test mode is active
- All operations return simulated but realistic results
Time Simulation Mode
Control simulated time to instantly progress through campaign events:X-Mock-Time: Set current simulated timeX-Auto-Advance: Auto-advance to next eventX-Jump-To-Event: Jump to specific campaign event
Request Headers
Testing Control Headers
Response Headers
Servers include these headers in test mode responses:Event Progression
Jumpable Events
UseX-Jump-To-Event to jump to specific campaign lifecycle events:
Lifecycle Events:
campaign_created- Initial setup completecampaign_approved- Ready for creative submissioncreative_approved- Ready for launchcampaign_launched- Live delivery beginscampaign_50_percent- Halfway through schedulecampaign_completed- Natural end reached
creative_policy_violation- Force creative rejectionbudget_exceeded- Simulate overspendinventory_unavailable- Simulate inventory shortagemanual_approval_delay- Add HITL approval delay
Time Advancement
Jump forward by duration:Testing Examples
Example: Testing Creative Rejection
Example: Testing Time Progression
Testing Patterns
Pattern 1: Happy Path Testing
Test successful campaign flows without forcing errors:Pattern 2: Error Recovery Testing
Test error handling by jumping to error events:Pattern 3: Time-Based Testing
Test long-running campaigns quickly:Pattern 4: Parallel Testing
Test multiple campaigns in isolated sessions:Implementation Requirements
Core Requirements
All AdCP implementations MUST support:-
Dry Run Mode
X-Dry-Runheader recognition- No side effects on production systems
- Clear indication of test mode in responses
-
Test Session Isolation
X-Test-Session-IDfor parallel test isolation- Independent state per session
- No cross-session interference
-
Basic Time Control
X-Mock-Timefor setting simulated timeX-Jump-To-Eventfor event progression- Consistent state across time jumps
Recommended Features
Implementations SHOULD support:-
Auto-Advancement
X-Auto-Advancefor automatic progressionX-Advance-Timefor duration-based jumps
-
Error Events
- Jump to error states via
X-Jump-To-Event - Common error events (policy violations, budget issues)
- Recovery testing
- Jump to error states via
Optional Features
Implementations MAY support:-
Advanced Testing
- Custom event definitions
- Complex error injection
- Performance simulation
-
Detailed Metrics
- Realistic performance curves
- Industry benchmark simulation
- Cost modeling
Security Considerations
- Test modes MUST be completely isolated from production
- Test mode operations should be logged separately
- Authentication is still required in test mode
- Rate limits apply (potentially with different thresholds)
Summary
AdCP testing features enable:- Rapid Development - Test full lifecycles in seconds
- Comprehensive Testing - Cover all scenarios deterministically
- Zero Cost - No real money spent on testing
- Isolation - Complete separation from production