From b8f0af5056dda243fe7ec4d209bde3960749a3db Mon Sep 17 00:00:00 2001 From: Vishveshwar Jatain Date: Wed, 17 Dec 2025 14:46:47 -0700 Subject: [PATCH 01/15] Improve homepage hero section visual hierarchy and typography MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove "AdCP:" prefix from hero title for cleaner presentation - Add non-breaking spaces to prevent orphan words in title, subtitle, and hero points - Stack hero points vertically (icon above text) for better visual flow - Remove line breaks between bold headings and descriptions in hero points - Implement consistent vertical rhythm (1.5rem → 2.5rem → 3rem spacing) - Tighten line-heights: H1 to 1.2, subtitle to 1.4 for more impact - Add max-width constraints (700px title, 650px subtitle, 220px per point) - Increase hero point description text to 1.05rem for better balance - Remove "View on GitHub" button from hero CTA section 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- server/public/index.html | 44 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/server/public/index.html b/server/public/index.html index b99cffdf..3fa07b91 100644 --- a/server/public/index.html +++ b/server/public/index.html @@ -245,6 +245,48 @@ .audienceCard_fWZI .button--outline:hover { background-color: rgba(26, 54, 180, 0.1) !important; } + + /* Stack hero points vertically */ + .point__uAb { + display: flex !important; + flex-direction: column !important; + align-items: center !important; + text-align: center !important; + } + .pointIcon_AYD6 { + margin-bottom: 0.5rem !important; + } + .pointText_BlCe { + display: flex !important; + flex-direction: column !important; + align-items: center !important; + max-width: 220px !important; + font-size: 1.05rem !important; + line-height: 1.5 !important; + } + + /* Hero section spacing and typography */ + .heroTitle_qg2I { + margin-bottom: 1.5rem !important; + max-width: 700px !important; + margin-left: auto !important; + margin-right: auto !important; + line-height: 1.2 !important; + } + .heroSubtitle_jFu1 { + margin-bottom: 2.5rem !important; + max-width: 650px !important; + margin-left: auto !important; + margin-right: auto !important; + line-height: 1.4 !important; + } + .heroPoints_gRrZ { + margin-bottom: 3rem !important; + gap: 1.5rem !important; + } + .buttons_AeoN { + margin-top: 0 !important; + } @@ -256,7 +298,7 @@ -

AdCP: The Open Standard for Agentic Advertising

From brief to buy, helping agents advertise anywhere: from CTV to chat, from tiny blog to the World Cup.

🎯
Built for outcomes
Buy the way you want to grow
🤖
Built for agents
Supports MCP and A2A protocols
🌍
Built for everyone
A diverse ecosystem of tech and content
v2.5.0 ReleasedDeveloper experience and API refinement: type safety, batch previews (5-10x faster), schema versioning, and more!Read the release notes →

Why we built AdCP

The advertising ecosystem is fragmented. Every platform has its own API, its own workflow, its own reporting format. Media buyers and agencies waste countless hours navigating this complexity.

The Integration Problem

Each new platform requires custom integration work. APIs change, documentation varies, and maintenance never ends. Teams spend more time on plumbing than on strategy.

The Discovery Problem

Inventory is scattered across platforms with different taxonomies and targeting options. Finding the right audiences means learning multiple systems and manually comparing options.

The Automation Problem

AI agents and automation tools can't easily interact with advertising platforms. Each integration is bespoke, limiting the potential of AI-powered workflows.

We believe there's a better way. A single protocol that any platform can implement and any tool can use. An open standard that makes advertising technology work together, not against each other.

Agentic Advertising

Managed by Agentic Advertising

AdCP is stewarded by Agentic Advertising (AAO), an industry trade association advancing open standards for AI-powered advertising. AAO brings together publishers, platforms, agencies, and technology providers to shape the future of the ecosystem.

Limited time: Founding member pricing ends March 31, 2026

One protocol. Every platform. Total control.

AdCP is the open standard that unifies advertising workflows across all platforms.
Think of it as the USB-C of advertising technology.

Before AdCP

  • 15+ different platform APIs
  • Months of custom integration
  • Manual data reconciliation
  • Fragmented reporting
  • Vendor lock-in

With AdCP

  • One unified interface
  • Deploy in days
  • Automated workflows
  • Consolidated analytics
  • Complete flexibility

See the difference

Traditional Workflow

1. Log into Platform A
2. Search for audiences (30 min)
3. Export to spreadsheet
4. Log into Platform B
5. Manually recreate targeting
6. Wait for approval (2 days)
7. Repeat for 10 more platforms...

AdCP Workflow

"Find sports enthusiasts with
high purchase intent, compare
prices across all platforms,
and activate the best option."

✓ Done in minutes

Everything you need, production-ready

AdCP v2.5.0 includes a complete suite of capabilities for modern advertising workflows.

🛒 Media Buy Protocol

Complete campaign lifecycle management with 9 core tasks:

  • get_products - Discover inventory with natural language
  • create_media_buy - Launch campaigns across platforms
  • get_media_buy_delivery - Real-time performance metrics
  • Plus sync, update, feedback, and more

🎨 Creative Protocol

AI-powered creative generation and management:

  • build_creative - Generate creatives from briefs
  • preview_creative - Visual preview generation
  • list_creative_formats - Discover format specs
  • Standard formats library included

📊 Signals Protocol

First-party data integration:

  • get_signals - Discover available signals
  • activate_signal - Activate for campaigns
  • Privacy-first audience building
  • Platform-agnostic data sharing

⚡ Protocol Features

Enterprise-ready infrastructure:

  • MCP & A2A protocol support
  • Async workflows with webhooks
  • Human-in-the-loop approval
  • JSON Schema validation

How AdCP works

Built on the Model Context Protocol (MCP), AdCP provides a unified interface for advertising operations across any platform.

1

Discovery

Use natural language to describe your target audience. AdCP searches across all connected platforms to find matching inventory and audiences.

"Find sports enthusiasts interested in running gear"
2

Comparison

Get standardized results from all platforms in a consistent format. Compare pricing, reach, and targeting capabilities side by side.

Platform A: $12 CPM • 2.3M reach
Platform B: $18 CPM • 4.1M reach
Platform C: $9 CPM • 1.8M reach
3

Activation

Launch campaigns across multiple platforms with a single command. AdCP handles the technical details while maintaining platform-specific optimizations.

"Activate on Platform B with $10,000 budget"
4

Management

Monitor performance, adjust budgets, and generate reports across all platforms from one interface. Set up automated rules and alerts.

"Show performance metrics for all active campaigns"

Ready to join the revolution?

Whether you're a platform provider or an advertiser, AdCP is your path to the future of advertising.

Platform Providers

Make your inventory accessible to every AI assistant and automation platform.

  • Enable AI-powered workflows for your inventory
  • Simplify integration with a standard protocol
  • Reach new customers through automation platforms
Explore the Spec

Open source • MIT licensed

Advertisers & Agencies

Start using natural language to manage campaigns across all platforms.

  • Manage campaigns with natural language
  • Access unified analytics across platforms
  • Build on open standards, avoid vendor lock-in
Start Building Today

Documentation & guides

Join the conversation

AdCP is an open standard developed in collaboration with the advertising community. We're building this together, and your input matters.

Open Development

All development happens in the open on GitHub. Watch progress, submit issues, and contribute code.

Working Group

Join monthly meetings to discuss protocol evolution, implementation challenges, and future directions.

Implementation Support

Get help implementing AdCP for your platform or building tools that use the protocol.

+

The Open Standard for Agentic Advertising

From brief to buy, helping agents advertise anywhere: from CTV to chat, from tiny blog to the World Cup.

🎯
Built for outcomes Buy the way you want to grow
🤖
Built for agents Supports MCP and A2A protocols
🌍
Built for everyone A diverse ecosystem of tech and content
v2.5.0 ReleasedDeveloper experience and API refinement: type safety, batch previews (5-10x faster), schema versioning, and more!Read the release notes →

Why we built AdCP

The advertising ecosystem is fragmented. Every platform has its own API, its own workflow, its own reporting format. Media buyers and agencies waste countless hours navigating this complexity.

The Integration Problem

Each new platform requires custom integration work. APIs change, documentation varies, and maintenance never ends. Teams spend more time on plumbing than on strategy.

The Discovery Problem

Inventory is scattered across platforms with different taxonomies and targeting options. Finding the right audiences means learning multiple systems and manually comparing options.

The Automation Problem

AI agents and automation tools can't easily interact with advertising platforms. Each integration is bespoke, limiting the potential of AI-powered workflows.

We believe there's a better way. A single protocol that any platform can implement and any tool can use. An open standard that makes advertising technology work together, not against each other.

Agentic Advertising

Managed by Agentic Advertising

AdCP is stewarded by Agentic Advertising (AAO), an industry trade association advancing open standards for AI-powered advertising. AAO brings together publishers, platforms, agencies, and technology providers to shape the future of the ecosystem.

Limited time: Founding member pricing ends March 31, 2026

One protocol. Every platform. Total control.

AdCP is the open standard that unifies advertising workflows across all platforms.
Think of it as the USB-C of advertising technology.

Before AdCP

  • 15+ different platform APIs
  • Months of custom integration
  • Manual data reconciliation
  • Fragmented reporting
  • Vendor lock-in

With AdCP

  • One unified interface
  • Deploy in days
  • Automated workflows
  • Consolidated analytics
  • Complete flexibility

See the difference

Traditional Workflow

1. Log into Platform A
2. Search for audiences (30 min)
3. Export to spreadsheet
4. Log into Platform B
5. Manually recreate targeting
6. Wait for approval (2 days)
7. Repeat for 10 more platforms...

AdCP Workflow

"Find sports enthusiasts with
high purchase intent, compare
prices across all platforms,
and activate the best option."

✓ Done in minutes

Everything you need, production-ready

AdCP v2.5.0 includes a complete suite of capabilities for modern advertising workflows.

🛒 Media Buy Protocol

Complete campaign lifecycle management with 9 core tasks:

  • get_products - Discover inventory with natural language
  • create_media_buy - Launch campaigns across platforms
  • get_media_buy_delivery - Real-time performance metrics
  • Plus sync, update, feedback, and more

🎨 Creative Protocol

AI-powered creative generation and management:

  • build_creative - Generate creatives from briefs
  • preview_creative - Visual preview generation
  • list_creative_formats - Discover format specs
  • Standard formats library included

📊 Signals Protocol

First-party data integration:

  • get_signals - Discover available signals
  • activate_signal - Activate for campaigns
  • Privacy-first audience building
  • Platform-agnostic data sharing

⚡ Protocol Features

Enterprise-ready infrastructure:

  • MCP & A2A protocol support
  • Async workflows with webhooks
  • Human-in-the-loop approval
  • JSON Schema validation

How AdCP works

Built on the Model Context Protocol (MCP), AdCP provides a unified interface for advertising operations across any platform.

1

Discovery

Use natural language to describe your target audience. AdCP searches across all connected platforms to find matching inventory and audiences.

"Find sports enthusiasts interested in running gear"
2

Comparison

Get standardized results from all platforms in a consistent format. Compare pricing, reach, and targeting capabilities side by side.

Platform A: $12 CPM • 2.3M reach
Platform B: $18 CPM • 4.1M reach
Platform C: $9 CPM • 1.8M reach
3

Activation

Launch campaigns across multiple platforms with a single command. AdCP handles the technical details while maintaining platform-specific optimizations.

"Activate on Platform B with $10,000 budget"
4

Management

Monitor performance, adjust budgets, and generate reports across all platforms from one interface. Set up automated rules and alerts.

"Show performance metrics for all active campaigns"

Ready to join the revolution?

Whether you're a platform provider or an advertiser, AdCP is your path to the future of advertising.

Platform Providers

Make your inventory accessible to every AI assistant and automation platform.

  • Enable AI-powered workflows for your inventory
  • Simplify integration with a standard protocol
  • Reach new customers through automation platforms
Explore the Spec

Open source • MIT licensed

Advertisers & Agencies

Start using natural language to manage campaigns across all platforms.

  • Manage campaigns with natural language
  • Access unified analytics across platforms
  • Build on open standards, avoid vendor lock-in
Start Building Today

Documentation & guides

Join the conversation

AdCP is an open standard developed in collaboration with the advertising community. We're building this together, and your input matters.

Open Development

All development happens in the open on GitHub. Watch progress, submit issues, and contribute code.

Working Group

Join monthly meetings to discuss protocol evolution, implementation challenges, and future directions.

Implementation Support

Get help implementing AdCP for your platform or building tools that use the protocol.

From 48a5754d70e6160c40c33235c1242b2d6c4db3fc Mon Sep 17 00:00:00 2001 From: Vishveshwar Jatain Date: Wed, 17 Dec 2025 15:29:46 -0700 Subject: [PATCH 02/15] Refine hero section typography and spacing for cleaner presentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update hero subtitle text to describe AdCP as open-source interoperable protocol - Condense hero point descriptions to 9-11 words each for better scannability - Standardize all hero text to 1.2 line-height for tight, modern display typography - Remove gap between emoji icons and feature text for cohesive appearance - Add explicit 4rem top/bottom padding to hero section for balanced spacing - Tighten release banner spacing with reduced gaps and consistent padding Typography improvements create more impactful, professional hero presentation while maintaining readability and visual hierarchy. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- server/public/index.html | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/server/public/index.html b/server/public/index.html index 3fa07b91..037e7aba 100644 --- a/server/public/index.html +++ b/server/public/index.html @@ -209,6 +209,13 @@ /* Release Banner - override green from bundled CSS */ .releaseBanner_qgG2 { background: linear-gradient(135deg, var(--color-primary-700) 0%, var(--color-primary-600) 100%) !important; + padding: 1.25rem 0 !important; + } + .releaseBannerContent_dZLA { + gap: 0.25rem !important; + } + .releaseText_vBj7 { + margin-right: 0.5rem !important; } /* Override Docusaurus green theme colors with blue */ :root { @@ -254,7 +261,7 @@ text-align: center !important; } .pointIcon_AYD6 { - margin-bottom: 0.5rem !important; + margin-bottom: 0 !important; } .pointText_BlCe { display: flex !important; @@ -262,10 +269,14 @@ align-items: center !important; max-width: 220px !important; font-size: 1.05rem !important; - line-height: 1.5 !important; + line-height: 1.2 !important; } /* Hero section spacing and typography */ + .heroBanner_qdFl { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } .heroTitle_qg2I { margin-bottom: 1.5rem !important; max-width: 700px !important; @@ -278,7 +289,7 @@ max-width: 650px !important; margin-left: auto !important; margin-right: auto !important; - line-height: 1.4 !important; + line-height: 1.2 !important; } .heroPoints_gRrZ { margin-bottom: 3rem !important; @@ -298,7 +309,7 @@ -

The Open Standard for Agentic Advertising

From brief to buy, helping agents advertise anywhere: from CTV to chat, from tiny blog to the World Cup.

🎯
Built for outcomes Buy the way you want to grow
🤖
Built for agents Supports MCP and A2A protocols
🌍
Built for everyone A diverse ecosystem of tech and content
v2.5.0 ReleasedDeveloper experience and API refinement: type safety, batch previews (5-10x faster), schema versioning, and more!Read the release notes →

Why we built AdCP

The advertising ecosystem is fragmented. Every platform has its own API, its own workflow, its own reporting format. Media buyers and agencies waste countless hours navigating this complexity.

The Integration Problem

Each new platform requires custom integration work. APIs change, documentation varies, and maintenance never ends. Teams spend more time on plumbing than on strategy.

The Discovery Problem

Inventory is scattered across platforms with different taxonomies and targeting options. Finding the right audiences means learning multiple systems and manually comparing options.

The Automation Problem

AI agents and automation tools can't easily interact with advertising platforms. Each integration is bespoke, limiting the potential of AI-powered workflows.

We believe there's a better way. A single protocol that any platform can implement and any tool can use. An open standard that makes advertising technology work together, not against each other.

Agentic Advertising

Managed by Agentic Advertising

AdCP is stewarded by Agentic Advertising (AAO), an industry trade association advancing open standards for AI-powered advertising. AAO brings together publishers, platforms, agencies, and technology providers to shape the future of the ecosystem.

Limited time: Founding member pricing ends March 31, 2026

One protocol. Every platform. Total control.

AdCP is the open standard that unifies advertising workflows across all platforms.
Think of it as the USB-C of advertising technology.

Before AdCP

  • 15+ different platform APIs
  • Months of custom integration
  • Manual data reconciliation
  • Fragmented reporting
  • Vendor lock-in

With AdCP

  • One unified interface
  • Deploy in days
  • Automated workflows
  • Consolidated analytics
  • Complete flexibility

See the difference

Traditional Workflow

1. Log into Platform A
2. Search for audiences (30 min)
3. Export to spreadsheet
4. Log into Platform B
5. Manually recreate targeting
6. Wait for approval (2 days)
7. Repeat for 10 more platforms...

AdCP Workflow

"Find sports enthusiasts with
high purchase intent, compare
prices across all platforms,
and activate the best option."

✓ Done in minutes

Everything you need, production-ready

AdCP v2.5.0 includes a complete suite of capabilities for modern advertising workflows.

🛒 Media Buy Protocol

Complete campaign lifecycle management with 9 core tasks:

  • get_products - Discover inventory with natural language
  • create_media_buy - Launch campaigns across platforms
  • get_media_buy_delivery - Real-time performance metrics
  • Plus sync, update, feedback, and more

🎨 Creative Protocol

AI-powered creative generation and management:

  • build_creative - Generate creatives from briefs
  • preview_creative - Visual preview generation
  • list_creative_formats - Discover format specs
  • Standard formats library included

📊 Signals Protocol

First-party data integration:

  • get_signals - Discover available signals
  • activate_signal - Activate for campaigns
  • Privacy-first audience building
  • Platform-agnostic data sharing

⚡ Protocol Features

Enterprise-ready infrastructure:

  • MCP & A2A protocol support
  • Async workflows with webhooks
  • Human-in-the-loop approval
  • JSON Schema validation

How AdCP works

Built on the Model Context Protocol (MCP), AdCP provides a unified interface for advertising operations across any platform.

1

Discovery

Use natural language to describe your target audience. AdCP searches across all connected platforms to find matching inventory and audiences.

"Find sports enthusiasts interested in running gear"
2

Comparison

Get standardized results from all platforms in a consistent format. Compare pricing, reach, and targeting capabilities side by side.

Platform A: $12 CPM • 2.3M reach
Platform B: $18 CPM • 4.1M reach
Platform C: $9 CPM • 1.8M reach
3

Activation

Launch campaigns across multiple platforms with a single command. AdCP handles the technical details while maintaining platform-specific optimizations.

"Activate on Platform B with $10,000 budget"
4

Management

Monitor performance, adjust budgets, and generate reports across all platforms from one interface. Set up automated rules and alerts.

"Show performance metrics for all active campaigns"

Ready to join the revolution?

Whether you're a platform provider or an advertiser, AdCP is your path to the future of advertising.

Platform Providers

Make your inventory accessible to every AI assistant and automation platform.

  • Enable AI-powered workflows for your inventory
  • Simplify integration with a standard protocol
  • Reach new customers through automation platforms
Explore the Spec

Open source • MIT licensed

Advertisers & Agencies

Start using natural language to manage campaigns across all platforms.

  • Manage campaigns with natural language
  • Access unified analytics across platforms
  • Build on open standards, avoid vendor lock-in
Start Building Today

Documentation & guides

Join the conversation

AdCP is an open standard developed in collaboration with the advertising community. We're building this together, and your input matters.

Open Development

All development happens in the open on GitHub. Watch progress, submit issues, and contribute code.

Working Group

Join monthly meetings to discuss protocol evolution, implementation challenges, and future directions.

Implementation Support

Get help implementing AdCP for your platform or building tools that use the protocol.

+

The Open Standard for Agentic Advertising

Ad Context Protocol (AdCP) is an open-souce, interoperable protocol designed from the ground up to make buying, selling, and transacting in digital media more autonomous.

🎯
Built for outcomes Buy based on conversions and revenue, not just impressions.
🤖
Built for agents Native support for AI assistants using MCP and A2A protocols.
🌍
Built for everyone Open standard for all platforms, from CTV networks to blogs.
v2.5.0 ReleasedDeveloper experience and API refinement: type safety, batch previews (5-10x faster), schema versioning, and more!Read the release notes →

Why we built AdCP

The advertising ecosystem is fragmented. Every platform has its own API, its own workflow, its own reporting format. Media buyers and agencies waste countless hours navigating this complexity.

The Integration Problem

Each new platform requires custom integration work. APIs change, documentation varies, and maintenance never ends. Teams spend more time on plumbing than on strategy.

The Discovery Problem

Inventory is scattered across platforms with different taxonomies and targeting options. Finding the right audiences means learning multiple systems and manually comparing options.

The Automation Problem

AI agents and automation tools can't easily interact with advertising platforms. Each integration is bespoke, limiting the potential of AI-powered workflows.

We believe there's a better way. A single protocol that any platform can implement and any tool can use. An open standard that makes advertising technology work together, not against each other.

Agentic Advertising

Managed by Agentic Advertising

AdCP is stewarded by Agentic Advertising (AAO), an industry trade association advancing open standards for AI-powered advertising. AAO brings together publishers, platforms, agencies, and technology providers to shape the future of the ecosystem.

Limited time: Founding member pricing ends March 31, 2026

One protocol. Every platform. Total control.

AdCP is the open standard that unifies advertising workflows across all platforms.
Think of it as the USB-C of advertising technology.

Before AdCP

  • 15+ different platform APIs
  • Months of custom integration
  • Manual data reconciliation
  • Fragmented reporting
  • Vendor lock-in

With AdCP

  • One unified interface
  • Deploy in days
  • Automated workflows
  • Consolidated analytics
  • Complete flexibility

See the difference

Traditional Workflow

1. Log into Platform A
2. Search for audiences (30 min)
3. Export to spreadsheet
4. Log into Platform B
5. Manually recreate targeting
6. Wait for approval (2 days)
7. Repeat for 10 more platforms...

AdCP Workflow

"Find sports enthusiasts with
high purchase intent, compare
prices across all platforms,
and activate the best option."

✓ Done in minutes

Everything you need, production-ready

AdCP v2.5.0 includes a complete suite of capabilities for modern advertising workflows.

🛒 Media Buy Protocol

Complete campaign lifecycle management with 9 core tasks:

  • get_products - Discover inventory with natural language
  • create_media_buy - Launch campaigns across platforms
  • get_media_buy_delivery - Real-time performance metrics
  • Plus sync, update, feedback, and more

🎨 Creative Protocol

AI-powered creative generation and management:

  • build_creative - Generate creatives from briefs
  • preview_creative - Visual preview generation
  • list_creative_formats - Discover format specs
  • Standard formats library included

📊 Signals Protocol

First-party data integration:

  • get_signals - Discover available signals
  • activate_signal - Activate for campaigns
  • Privacy-first audience building
  • Platform-agnostic data sharing

⚡ Protocol Features

Enterprise-ready infrastructure:

  • MCP & A2A protocol support
  • Async workflows with webhooks
  • Human-in-the-loop approval
  • JSON Schema validation

How AdCP works

Built on the Model Context Protocol (MCP), AdCP provides a unified interface for advertising operations across any platform.

1

Discovery

Use natural language to describe your target audience. AdCP searches across all connected platforms to find matching inventory and audiences.

"Find sports enthusiasts interested in running gear"
2

Comparison

Get standardized results from all platforms in a consistent format. Compare pricing, reach, and targeting capabilities side by side.

Platform A: $12 CPM • 2.3M reach
Platform B: $18 CPM • 4.1M reach
Platform C: $9 CPM • 1.8M reach
3

Activation

Launch campaigns across multiple platforms with a single command. AdCP handles the technical details while maintaining platform-specific optimizations.

"Activate on Platform B with $10,000 budget"
4

Management

Monitor performance, adjust budgets, and generate reports across all platforms from one interface. Set up automated rules and alerts.

"Show performance metrics for all active campaigns"

Ready to join the revolution?

Whether you're a platform provider or an advertiser, AdCP is your path to the future of advertising.

Platform Providers

Make your inventory accessible to every AI assistant and automation platform.

  • Enable AI-powered workflows for your inventory
  • Simplify integration with a standard protocol
  • Reach new customers through automation platforms
Explore the Spec

Open source • MIT licensed

Advertisers & Agencies

Start using natural language to manage campaigns across all platforms.

  • Manage campaigns with natural language
  • Access unified analytics across platforms
  • Build on open standards, avoid vendor lock-in
Start Building Today

Documentation & guides

Join the conversation

AdCP is an open standard developed in collaboration with the advertising community. We're building this together, and your input matters.

Open Development

All development happens in the open on GitHub. Watch progress, submit issues, and contribute code.

Working Group

Join monthly meetings to discuss protocol evolution, implementation challenges, and future directions.

Implementation Support

Get help implementing AdCP for your platform or building tools that use the protocol.

From 5ca1ee05c9e503d595fd728c84c8a794259a3443 Mon Sep 17 00:00:00 2001 From: Vishveshwar Jatain Date: Wed, 17 Dec 2025 16:07:43 -0700 Subject: [PATCH 03/15] Apply refined color scheme and CTA design to hero section MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Color scheme updates: - Hero background: Light pastel blue (#e6f2ff) for clean, modern feel - Notification bar: Navy blue (#000080) for strong contrast - Primary CTA: Navy button with white outline secondary option - Hero point cards: Translucent white (50% opacity) with glass effect - Text colors: Black titles, dark grey (#333333) body text CTA simplification: - Single primary "Start Building" button (large) - Secondary action as subtle text link below: "Or try it live →" - Vertical stack with minimal spacing for cohesive presentation Card design refinements: - Individual translucent containers for each hero point - Removed borders for cleaner aesthetic - 8px rounded corners with backdrop blur - Centered layout with 1.5rem horizontal spacing These changes create a sophisticated, lightweight design that emphasizes the content while maintaining clear visual hierarchy and modern aesthetics. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- server/public/index.html | 51 +++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 6 deletions(-) diff --git a/server/public/index.html b/server/public/index.html index 037e7aba..3438761d 100644 --- a/server/public/index.html +++ b/server/public/index.html @@ -208,7 +208,7 @@ } /* Release Banner - override green from bundled CSS */ .releaseBanner_qgG2 { - background: linear-gradient(135deg, var(--color-primary-700) 0%, var(--color-primary-600) 100%) !important; + background: #000080 !important; padding: 1.25rem 0 !important; } .releaseBannerContent_dZLA { @@ -259,6 +259,11 @@ flex-direction: column !important; align-items: center !important; text-align: center !important; + background: rgba(255, 255, 255, 0.5) !important; + border: none !important; + border-radius: 8px !important; + padding: 1.5rem !important; + backdrop-filter: blur(10px) !important; } .pointIcon_AYD6 { margin-bottom: 0 !important; @@ -267,7 +272,7 @@ display: flex !important; flex-direction: column !important; align-items: center !important; - max-width: 220px !important; + max-width: 240px !important; font-size: 1.05rem !important; line-height: 1.2 !important; } @@ -276,27 +281,61 @@ .heroBanner_qdFl { padding-top: 4rem !important; padding-bottom: 4rem !important; + background: #e6f2ff !important; + } + .heroBanner_qdFl h1 { + color: #000000 !important; + } + .heroBanner_qdFl p, + .heroBanner_qdFl .pointText_BlCe { + color: #333333 !important; + } + .heroBanner_qdFl strong { + color: #000000 !important; + } + .heroBanner_qdFl .button--primary { + background-color: #000080 !important; + border-color: #000080 !important; + color: #ffffff !important; + } + .heroBanner_qdFl .button--primary:hover { + background-color: #000066 !important; + border-color: #000066 !important; + } + .heroBanner_qdFl .button--secondary { + background-color: transparent !important; + border-color: #000080 !important; + color: #000080 !important; + } + .heroBanner_qdFl .button--secondary:hover { + background-color: rgba(0, 0, 128, 0.1) !important; + } + .buttons_AeoN .margin-right--md { + margin-right: 0.75rem !important; } .heroTitle_qg2I { - margin-bottom: 1.5rem !important; + margin-bottom: 1rem !important; max-width: 700px !important; margin-left: auto !important; margin-right: auto !important; line-height: 1.2 !important; } .heroSubtitle_jFu1 { - margin-bottom: 2.5rem !important; + margin-bottom: 1rem !important; max-width: 650px !important; margin-left: auto !important; margin-right: auto !important; line-height: 1.2 !important; } .heroPoints_gRrZ { - margin-bottom: 3rem !important; + margin-bottom: 4rem !important; gap: 1.5rem !important; } .buttons_AeoN { margin-top: 0 !important; + display: flex !important; + flex-direction: column !important; + align-items: center !important; } @@ -309,7 +348,7 @@ -

The Open Standard for Agentic Advertising

Ad Context Protocol (AdCP) is an open-souce, interoperable protocol designed from the ground up to make buying, selling, and transacting in digital media more autonomous.

🎯
Built for outcomes Buy based on conversions and revenue, not just impressions.
🤖
Built for agents Native support for AI assistants using MCP and A2A protocols.
🌍
Built for everyone Open standard for all platforms, from CTV networks to blogs.
v2.5.0 ReleasedDeveloper experience and API refinement: type safety, batch previews (5-10x faster), schema versioning, and more!Read the release notes →

Why we built AdCP

The advertising ecosystem is fragmented. Every platform has its own API, its own workflow, its own reporting format. Media buyers and agencies waste countless hours navigating this complexity.

The Integration Problem

Each new platform requires custom integration work. APIs change, documentation varies, and maintenance never ends. Teams spend more time on plumbing than on strategy.

The Discovery Problem

Inventory is scattered across platforms with different taxonomies and targeting options. Finding the right audiences means learning multiple systems and manually comparing options.

The Automation Problem

AI agents and automation tools can't easily interact with advertising platforms. Each integration is bespoke, limiting the potential of AI-powered workflows.

We believe there's a better way. A single protocol that any platform can implement and any tool can use. An open standard that makes advertising technology work together, not against each other.

Agentic Advertising

Managed by Agentic Advertising

AdCP is stewarded by Agentic Advertising (AAO), an industry trade association advancing open standards for AI-powered advertising. AAO brings together publishers, platforms, agencies, and technology providers to shape the future of the ecosystem.

Limited time: Founding member pricing ends March 31, 2026

One protocol. Every platform. Total control.

AdCP is the open standard that unifies advertising workflows across all platforms.
Think of it as the USB-C of advertising technology.

Before AdCP

  • 15+ different platform APIs
  • Months of custom integration
  • Manual data reconciliation
  • Fragmented reporting
  • Vendor lock-in

With AdCP

  • One unified interface
  • Deploy in days
  • Automated workflows
  • Consolidated analytics
  • Complete flexibility

See the difference

Traditional Workflow

1. Log into Platform A
2. Search for audiences (30 min)
3. Export to spreadsheet
4. Log into Platform B
5. Manually recreate targeting
6. Wait for approval (2 days)
7. Repeat for 10 more platforms...

AdCP Workflow

"Find sports enthusiasts with
high purchase intent, compare
prices across all platforms,
and activate the best option."

✓ Done in minutes

Everything you need, production-ready

AdCP v2.5.0 includes a complete suite of capabilities for modern advertising workflows.

🛒 Media Buy Protocol

Complete campaign lifecycle management with 9 core tasks:

  • get_products - Discover inventory with natural language
  • create_media_buy - Launch campaigns across platforms
  • get_media_buy_delivery - Real-time performance metrics
  • Plus sync, update, feedback, and more

🎨 Creative Protocol

AI-powered creative generation and management:

  • build_creative - Generate creatives from briefs
  • preview_creative - Visual preview generation
  • list_creative_formats - Discover format specs
  • Standard formats library included

📊 Signals Protocol

First-party data integration:

  • get_signals - Discover available signals
  • activate_signal - Activate for campaigns
  • Privacy-first audience building
  • Platform-agnostic data sharing

⚡ Protocol Features

Enterprise-ready infrastructure:

  • MCP & A2A protocol support
  • Async workflows with webhooks
  • Human-in-the-loop approval
  • JSON Schema validation

How AdCP works

Built on the Model Context Protocol (MCP), AdCP provides a unified interface for advertising operations across any platform.

1

Discovery

Use natural language to describe your target audience. AdCP searches across all connected platforms to find matching inventory and audiences.

"Find sports enthusiasts interested in running gear"
2

Comparison

Get standardized results from all platforms in a consistent format. Compare pricing, reach, and targeting capabilities side by side.

Platform A: $12 CPM • 2.3M reach
Platform B: $18 CPM • 4.1M reach
Platform C: $9 CPM • 1.8M reach
3

Activation

Launch campaigns across multiple platforms with a single command. AdCP handles the technical details while maintaining platform-specific optimizations.

"Activate on Platform B with $10,000 budget"
4

Management

Monitor performance, adjust budgets, and generate reports across all platforms from one interface. Set up automated rules and alerts.

"Show performance metrics for all active campaigns"

Ready to join the revolution?

Whether you're a platform provider or an advertiser, AdCP is your path to the future of advertising.

Platform Providers

Make your inventory accessible to every AI assistant and automation platform.

  • Enable AI-powered workflows for your inventory
  • Simplify integration with a standard protocol
  • Reach new customers through automation platforms
Explore the Spec

Open source • MIT licensed

Advertisers & Agencies

Start using natural language to manage campaigns across all platforms.

  • Manage campaigns with natural language
  • Access unified analytics across platforms
  • Build on open standards, avoid vendor lock-in
Start Building Today

Documentation & guides

Join the conversation

AdCP is an open standard developed in collaboration with the advertising community. We're building this together, and your input matters.

Open Development

All development happens in the open on GitHub. Watch progress, submit issues, and contribute code.

Working Group

Join monthly meetings to discuss protocol evolution, implementation challenges, and future directions.

Implementation Support

Get help implementing AdCP for your platform or building tools that use the protocol.

+

The Open Standard for Agentic Advertising

Ad Context Protocol (AdCP) is an open-souce, interoperable protocol designed from the ground up to make buying, selling, and transacting in digital media more autonomous.

🎯
Built for outcomes Buy based on results and revenue, not just impressions.
🤖
Built for agents Native support for AI assistants using MCP and A2A protocols.
🌍
Built for everyone Open standard for all platforms, from CTV networks to blogs.
v2.5.0 ReleasedDeveloper experience and API refinement: type safety, batch previews (5-10x faster), schema versioning, and more!Read the release notes →

Why we built AdCP

The advertising ecosystem is fragmented. Every platform has its own API, its own workflow, its own reporting format. Media buyers and agencies waste countless hours navigating this complexity.

The Integration Problem

Each new platform requires custom integration work. APIs change, documentation varies, and maintenance never ends. Teams spend more time on plumbing than on strategy.

The Discovery Problem

Inventory is scattered across platforms with different taxonomies and targeting options. Finding the right audiences means learning multiple systems and manually comparing options.

The Automation Problem

AI agents and automation tools can't easily interact with advertising platforms. Each integration is bespoke, limiting the potential of AI-powered workflows.

We believe there's a better way. A single protocol that any platform can implement and any tool can use. An open standard that makes advertising technology work together, not against each other.

Agentic Advertising

Managed by Agentic Advertising

AdCP is stewarded by Agentic Advertising (AAO), an industry trade association advancing open standards for AI-powered advertising. AAO brings together publishers, platforms, agencies, and technology providers to shape the future of the ecosystem.

Limited time: Founding member pricing ends March 31, 2026

One protocol. Every platform. Total control.

AdCP is the open standard that unifies advertising workflows across all platforms.
Think of it as the USB-C of advertising technology.

Before AdCP

  • 15+ different platform APIs
  • Months of custom integration
  • Manual data reconciliation
  • Fragmented reporting
  • Vendor lock-in

With AdCP

  • One unified interface
  • Deploy in days
  • Automated workflows
  • Consolidated analytics
  • Complete flexibility

See the difference

Traditional Workflow

1. Log into Platform A
2. Search for audiences (30 min)
3. Export to spreadsheet
4. Log into Platform B
5. Manually recreate targeting
6. Wait for approval (2 days)
7. Repeat for 10 more platforms...

AdCP Workflow

"Find sports enthusiasts with
high purchase intent, compare
prices across all platforms,
and activate the best option."

✓ Done in minutes

Everything you need, production-ready

AdCP v2.5.0 includes a complete suite of capabilities for modern advertising workflows.

🛒 Media Buy Protocol

Complete campaign lifecycle management with 9 core tasks:

  • get_products - Discover inventory with natural language
  • create_media_buy - Launch campaigns across platforms
  • get_media_buy_delivery - Real-time performance metrics
  • Plus sync, update, feedback, and more

🎨 Creative Protocol

AI-powered creative generation and management:

  • build_creative - Generate creatives from briefs
  • preview_creative - Visual preview generation
  • list_creative_formats - Discover format specs
  • Standard formats library included

📊 Signals Protocol

First-party data integration:

  • get_signals - Discover available signals
  • activate_signal - Activate for campaigns
  • Privacy-first audience building
  • Platform-agnostic data sharing

⚡ Protocol Features

Enterprise-ready infrastructure:

  • MCP & A2A protocol support
  • Async workflows with webhooks
  • Human-in-the-loop approval
  • JSON Schema validation

How AdCP works

Built on the Model Context Protocol (MCP), AdCP provides a unified interface for advertising operations across any platform.

1

Discovery

Use natural language to describe your target audience. AdCP searches across all connected platforms to find matching inventory and audiences.

"Find sports enthusiasts interested in running gear"
2

Comparison

Get standardized results from all platforms in a consistent format. Compare pricing, reach, and targeting capabilities side by side.

Platform A: $12 CPM • 2.3M reach
Platform B: $18 CPM • 4.1M reach
Platform C: $9 CPM • 1.8M reach
3

Activation

Launch campaigns across multiple platforms with a single command. AdCP handles the technical details while maintaining platform-specific optimizations.

"Activate on Platform B with $10,000 budget"
4

Management

Monitor performance, adjust budgets, and generate reports across all platforms from one interface. Set up automated rules and alerts.

"Show performance metrics for all active campaigns"

Ready to join the revolution?

Whether you're a platform provider or an advertiser, AdCP is your path to the future of advertising.

Platform Providers

Make your inventory accessible to every AI assistant and automation platform.

  • Enable AI-powered workflows for your inventory
  • Simplify integration with a standard protocol
  • Reach new customers through automation platforms
Explore the Spec

Open source • MIT licensed

Advertisers & Agencies

Start using natural language to manage campaigns across all platforms.

  • Manage campaigns with natural language
  • Access unified analytics across platforms
  • Build on open standards, avoid vendor lock-in
Start Building Today

Documentation & guides

Join the conversation

AdCP is an open standard developed in collaboration with the advertising community. We're building this together, and your input matters.

Open Development

All development happens in the open on GitHub. Watch progress, submit issues, and contribute code.

Working Group

Join monthly meetings to discuss protocol evolution, implementation challenges, and future directions.

Implementation Support

Get help implementing AdCP for your platform or building tools that use the protocol.

From e36aa2521c9761c79e779983ef9fe83f3d551c78 Mon Sep 17 00:00:00 2001 From: Vishveshwar Jatain Date: Thu, 18 Dec 2025 10:23:35 -0700 Subject: [PATCH 04/15] Move hero point styles to design system and use CSS variables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Address PR feedback from @bokelley about moving reusable styles to design-system.css: - Add .hero-point, .hero-point-icon, .hero-point-text classes to design system - Replace all hardcoded hex colors with CSS custom properties - Replace hardcoded spacing values with design system variables - Keep page-specific Docusaurus overrides in index.html but use design system tokens This makes the hero point styling reusable across the site and follows the design system's "single source of truth" principle. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- server/public/design-system.css | 33 ++++++++++++++++++ server/public/index.html | 60 ++++++++++++++++----------------- 2 files changed, 63 insertions(+), 30 deletions(-) diff --git a/server/public/design-system.css b/server/public/design-system.css index a2033202..ccbdf84b 100644 --- a/server/public/design-system.css +++ b/server/public/design-system.css @@ -957,6 +957,39 @@ body { text-decoration: underline; } +/* Hero Points - Vertical cards with frosted glass effect */ +.hero-point { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + background: rgba(255, 255, 255, 0.5); + border: none; + border-radius: var(--radius-lg); + padding: var(--space-6); + backdrop-filter: blur(10px); + transition: var(--transition-all); +} + +.hero-point:hover { + background: rgba(255, 255, 255, 0.65); + transform: translateY(-2px); +} + +.hero-point-icon { + font-size: var(--text-3xl); + margin-bottom: var(--space-2); +} + +.hero-point-text { + display: flex; + flex-direction: column; + align-items: center; + max-width: 240px; + font-size: var(--text-lg); + line-height: var(--leading-tight); +} + /* ----------------------------------------------------------------------------- 12.2 Buttons diff --git a/server/public/index.html b/server/public/index.html index 3438761d..f5fdc17c 100644 --- a/server/public/index.html +++ b/server/public/index.html @@ -208,14 +208,14 @@ } /* Release Banner - override green from bundled CSS */ .releaseBanner_qgG2 { - background: #000080 !important; - padding: 1.25rem 0 !important; + background: var(--color-primary-900) !important; + padding: var(--space-5) 0 !important; } .releaseBannerContent_dZLA { - gap: 0.25rem !important; + gap: var(--space-1) !important; } .releaseText_vBj7 { - margin-right: 0.5rem !important; + margin-right: var(--space-2) !important; } /* Override Docusaurus green theme colors with blue */ :root { @@ -253,7 +253,7 @@ background-color: rgba(26, 54, 180, 0.1) !important; } - /* Stack hero points vertically */ + /* Stack hero points vertically using design system */ .point__uAb { display: flex !important; flex-direction: column !important; @@ -261,8 +261,8 @@ text-align: center !important; background: rgba(255, 255, 255, 0.5) !important; border: none !important; - border-radius: 8px !important; - padding: 1.5rem !important; + border-radius: var(--radius-lg) !important; + padding: var(--space-6) !important; backdrop-filter: blur(10px) !important; } .pointIcon_AYD6 { @@ -273,63 +273,63 @@ flex-direction: column !important; align-items: center !important; max-width: 240px !important; - font-size: 1.05rem !important; - line-height: 1.2 !important; + font-size: var(--text-lg) !important; + line-height: var(--leading-tight) !important; } /* Hero section spacing and typography */ .heroBanner_qdFl { - padding-top: 4rem !important; - padding-bottom: 4rem !important; - background: #e6f2ff !important; + padding-top: var(--space-16) !important; + padding-bottom: var(--space-16) !important; + background: var(--color-primary-100) !important; } .heroBanner_qdFl h1 { - color: #000000 !important; + color: var(--color-gray-950) !important; } .heroBanner_qdFl p, .heroBanner_qdFl .pointText_BlCe { - color: #333333 !important; + color: var(--color-text-heading) !important; } .heroBanner_qdFl strong { - color: #000000 !important; + color: var(--color-gray-950) !important; } .heroBanner_qdFl .button--primary { - background-color: #000080 !important; - border-color: #000080 !important; - color: #ffffff !important; + background-color: var(--color-primary-900) !important; + border-color: var(--color-primary-900) !important; + color: white !important; } .heroBanner_qdFl .button--primary:hover { - background-color: #000066 !important; - border-color: #000066 !important; + background-color: var(--color-primary-800) !important; + border-color: var(--color-primary-800) !important; } .heroBanner_qdFl .button--secondary { background-color: transparent !important; - border-color: #000080 !important; - color: #000080 !important; + border-color: var(--color-primary-900) !important; + color: var(--color-primary-900) !important; } .heroBanner_qdFl .button--secondary:hover { - background-color: rgba(0, 0, 128, 0.1) !important; + background-color: rgba(15, 31, 107, 0.1) !important; } .buttons_AeoN .margin-right--md { - margin-right: 0.75rem !important; + margin-right: var(--space-3) !important; } .heroTitle_qg2I { - margin-bottom: 1rem !important; + margin-bottom: var(--space-4) !important; max-width: 700px !important; margin-left: auto !important; margin-right: auto !important; - line-height: 1.2 !important; + line-height: var(--leading-tight) !important; } .heroSubtitle_jFu1 { - margin-bottom: 1rem !important; + margin-bottom: var(--space-4) !important; max-width: 650px !important; margin-left: auto !important; margin-right: auto !important; - line-height: 1.2 !important; + line-height: var(--leading-tight) !important; } .heroPoints_gRrZ { - margin-bottom: 4rem !important; - gap: 1.5rem !important; + margin-bottom: var(--space-16) !important; + gap: var(--space-6) !important; } .buttons_AeoN { margin-top: 0 !important; From 9da92c70e97eb8dca4ef1c8809150c700c4ca190 Mon Sep 17 00:00:00 2001 From: Vishveshwar Jatain Date: Thu, 18 Dec 2025 10:34:13 -0700 Subject: [PATCH 05/15] Format index.html for better diff readability MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Address PR feedback from @bokelley about the HTML blob making diffs difficult: - Installed js-beautify and prettier for HTML formatting - Formatted index.html with proper line breaks (354 → 705 lines) - Future changes will now show line-by-line diffs instead of entire blob changes - Added .prettierrc config for consistent formatting This is a formatting-only change with no visual or functional changes to the page. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- .prettierrc | 11 + package-lock.json | 249 +++++++++- package.json | 2 + server/public/index.html | 1015 +++++++++++++++++++++++++------------- 4 files changed, 940 insertions(+), 337 deletions(-) create mode 100644 .prettierrc diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..522b7d12 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,11 @@ +{ + "printWidth": 100, + "tabWidth": 2, + "useTabs": false, + "semi": true, + "singleQuote": false, + "trailingComma": "es5", + "bracketSpacing": true, + "htmlWhitespaceSensitivity": "ignore", + "endOfLine": "lf" +} diff --git a/package-lock.json b/package-lock.json index 14a3a278..32a5d1bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,8 +43,10 @@ "glob": "^11.1.0", "husky": "^9.1.7", "jest": "^30.2.0", + "js-beautify": "^1.15.4", "mintlify": "^4.2.240", "msw": "^2.12.4", + "prettier": "^3.7.4", "puppeteer": "^24.33.0", "supertest": "^7.1.4", "ts-jest": "^29.4.6", @@ -801,6 +803,22 @@ "semver": "^7.5.3" } }, + "node_modules/@changesets/apply-release-plan/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/@changesets/assemble-release-plan": { "version": "6.0.9", "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-6.0.9.tgz", @@ -1022,6 +1040,22 @@ "prettier": "^2.7.1" } }, + "node_modules/@changesets/write/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/@emnapi/core": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz", @@ -4485,6 +4519,13 @@ "node": ">= 8" } }, + "node_modules/@one-ini/wasm": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", + "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", + "dev": true, + "license": "MIT" + }, "node_modules/@open-draft/deferred-promise": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", @@ -8194,6 +8235,16 @@ "react-dom": ">=18" } }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", @@ -10167,6 +10218,17 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -10806,6 +10868,51 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/editorconfig": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", + "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@one-ini/wasm": "0.1.1", + "commander": "^10.0.0", + "minimatch": "9.0.1", + "semver": "^7.5.3" + }, + "bin": { + "editorconfig": "bin/editorconfig" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/editorconfig/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/editorconfig/node_modules/minimatch": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -15173,6 +15280,115 @@ "node": ">=10" } }, + "node_modules/js-beautify": { + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz", + "integrity": "sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "config-chain": "^1.1.13", + "editorconfig": "^1.0.4", + "glob": "^10.4.2", + "js-cookie": "^3.0.5", + "nopt": "^7.2.1" + }, + "bin": { + "css-beautify": "js/bin/css-beautify.js", + "html-beautify": "js/bin/html-beautify.js", + "js-beautify": "js/bin/js-beautify.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/js-beautify/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/js-beautify/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/js-beautify/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/js-beautify/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/js-beautify/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -17249,6 +17465,22 @@ "dev": true, "license": "MIT" }, + "node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -18350,16 +18582,16 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, "license": "MIT", "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -18430,6 +18662,13 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC" + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", diff --git a/package.json b/package.json index 35f3639d..1b4a0ec0 100644 --- a/package.json +++ b/package.json @@ -71,8 +71,10 @@ "glob": "^11.1.0", "husky": "^9.1.7", "jest": "^30.2.0", + "js-beautify": "^1.15.4", "mintlify": "^4.2.240", "msw": "^2.12.4", + "prettier": "^3.7.4", "puppeteer": "^24.33.0", "supertest": "^7.1.4", "ts-jest": "^29.4.6", diff --git a/server/public/index.html b/server/public/index.html index f5fdc17c..730457c4 100644 --- a/server/public/index.html +++ b/server/public/index.html @@ -1,355 +1,706 @@ + - -AdCP - Open Standard for Advertising Workflows - - - - - - - - - - - - - - - - - - - + + - -
- - - - - -

The Open Standard for Agentic Advertising

Ad Context Protocol (AdCP) is an open-souce, interoperable protocol designed from the ground up to make buying, selling, and transacting in digital media more autonomous.

🎯
Built for outcomes Buy based on results and revenue, not just impressions.
🤖
Built for agents Native support for AI assistants using MCP and A2A protocols.
🌍
Built for everyone Open standard for all platforms, from CTV networks to blogs.
v2.5.0 ReleasedDeveloper experience and API refinement: type safety, batch previews (5-10x faster), schema versioning, and more!Read the release notes →

Why we built AdCP

The advertising ecosystem is fragmented. Every platform has its own API, its own workflow, its own reporting format. Media buyers and agencies waste countless hours navigating this complexity.

The Integration Problem

Each new platform requires custom integration work. APIs change, documentation varies, and maintenance never ends. Teams spend more time on plumbing than on strategy.

The Discovery Problem

Inventory is scattered across platforms with different taxonomies and targeting options. Finding the right audiences means learning multiple systems and manually comparing options.

The Automation Problem

AI agents and automation tools can't easily interact with advertising platforms. Each integration is bespoke, limiting the potential of AI-powered workflows.

We believe there's a better way. A single protocol that any platform can implement and any tool can use. An open standard that makes advertising technology work together, not against each other.

Agentic Advertising

Managed by Agentic Advertising

AdCP is stewarded by Agentic Advertising (AAO), an industry trade association advancing open standards for AI-powered advertising. AAO brings together publishers, platforms, agencies, and technology providers to shape the future of the ecosystem.

Limited time: Founding member pricing ends March 31, 2026

One protocol. Every platform. Total control.

AdCP is the open standard that unifies advertising workflows across all platforms.
Think of it as the USB-C of advertising technology.

Before AdCP

  • 15+ different platform APIs
  • Months of custom integration
  • Manual data reconciliation
  • Fragmented reporting
  • Vendor lock-in

With AdCP

  • One unified interface
  • Deploy in days
  • Automated workflows
  • Consolidated analytics
  • Complete flexibility

See the difference

Traditional Workflow

1. Log into Platform A
2. Search for audiences (30 min)
3. Export to spreadsheet
4. Log into Platform B
5. Manually recreate targeting
6. Wait for approval (2 days)
7. Repeat for 10 more platforms...

AdCP Workflow

"Find sports enthusiasts with
high purchase intent, compare
prices across all platforms,
and activate the best option."

✓ Done in minutes

Everything you need, production-ready

AdCP v2.5.0 includes a complete suite of capabilities for modern advertising workflows.

🛒 Media Buy Protocol

Complete campaign lifecycle management with 9 core tasks:

  • get_products - Discover inventory with natural language
  • create_media_buy - Launch campaigns across platforms
  • get_media_buy_delivery - Real-time performance metrics
  • Plus sync, update, feedback, and more

🎨 Creative Protocol

AI-powered creative generation and management:

  • build_creative - Generate creatives from briefs
  • preview_creative - Visual preview generation
  • list_creative_formats - Discover format specs
  • Standard formats library included

📊 Signals Protocol

First-party data integration:

  • get_signals - Discover available signals
  • activate_signal - Activate for campaigns
  • Privacy-first audience building
  • Platform-agnostic data sharing

⚡ Protocol Features

Enterprise-ready infrastructure:

  • MCP & A2A protocol support
  • Async workflows with webhooks
  • Human-in-the-loop approval
  • JSON Schema validation

How AdCP works

Built on the Model Context Protocol (MCP), AdCP provides a unified interface for advertising operations across any platform.

1

Discovery

Use natural language to describe your target audience. AdCP searches across all connected platforms to find matching inventory and audiences.

"Find sports enthusiasts interested in running gear"
2

Comparison

Get standardized results from all platforms in a consistent format. Compare pricing, reach, and targeting capabilities side by side.

Platform A: $12 CPM • 2.3M reach
Platform B: $18 CPM • 4.1M reach
Platform C: $9 CPM • 1.8M reach
3

Activation

Launch campaigns across multiple platforms with a single command. AdCP handles the technical details while maintaining platform-specific optimizations.

"Activate on Platform B with $10,000 budget"
4

Management

Monitor performance, adjust budgets, and generate reports across all platforms from one interface. Set up automated rules and alerts.

"Show performance metrics for all active campaigns"

Ready to join the revolution?

Whether you're a platform provider or an advertiser, AdCP is your path to the future of advertising.

Platform Providers

Make your inventory accessible to every AI assistant and automation platform.

  • Enable AI-powered workflows for your inventory
  • Simplify integration with a standard protocol
  • Reach new customers through automation platforms
Explore the Spec

Open source • MIT licensed

Advertisers & Agencies

Start using natural language to manage campaigns across all platforms.

  • Manage campaigns with natural language
  • Access unified analytics across platforms
  • Build on open standards, avoid vendor lock-in
Start Building Today

Documentation & guides

Join the conversation

AdCP is an open standard developed in collaboration with the advertising community. We're building this together, and your input matters.

Open Development

All development happens in the open on GitHub. Watch progress, submit issues, and contribute code.

Working Group

Join monthly meetings to discuss protocol evolution, implementation challenges, and future directions.

Implementation Support

Get help implementing AdCP for your platform or building tools that use the protocol.

- - + +
+ + + + + + + + + +
+
+
+
+
+
+

The Open Standard for Agentic Advertising

+

Ad Context Protocol (AdCP) is an open-souce, interoperable protocol designed from the ground up to make buying, selling, and transacting in digital media more autonomous.

+
+
+
🎯
+
Built for outcomes Buy based on results and revenue, not just impressions.
+
+
+
🤖
+
Built for agents Native support for AI assistants using MCP and A2A protocols.
+
+
+
🌍
+
Built for everyone Open standard for all platforms, from CTV networks to blogs.
+
+
+ +
+
+
+
+
+
+
+
v2.5.0 ReleasedDeveloper experience and API refinement: type safety, batch previews (5-10x faster), schema versioning, and more!Read the release notes →
+
+
+
+
+
+
+
+

Why we built AdCP

+

The advertising ecosystem is fragmented. Every platform has its own API, its own workflow, its own reporting format. Media buyers and agencies waste countless hours navigating this complexity.

+
+
+

The Integration Problem

+

Each new platform requires custom integration work. APIs change, documentation varies, and maintenance never ends. Teams spend more time on plumbing than on strategy.

+
+
+

The Discovery Problem

+

Inventory is scattered across platforms with different taxonomies and targeting options. Finding the right audiences means learning multiple systems and manually comparing options.

+
+
+

The Automation Problem

+

AI agents and automation tools can't easily interact with advertising platforms. Each integration is bespoke, limiting the potential of AI-powered workflows.

+
+
+
+

We believe there's a better way. A single protocol that any platform can implement and any tool can use. An open standard that makes advertising technology work together, not against each other.

+
+
+
+
+
+
+
+
+
+
+
+
+
Agentic Advertising
+
+

Managed by Agentic Advertising

+

AdCP is stewarded by Agentic Advertising (AAO), an industry trade association advancing open standards for AI-powered advertising. AAO brings together publishers, platforms, agencies, and technology providers to shape the future of the ecosystem.

+ +

Limited time: Founding member pricing ends March 31, 2026

+
+
+
+
+
+
+
+ +
+
+
+
+

One protocol. Every platform. Total control.

+

AdCP is the open standard that unifies advertising workflows across all platforms.
Think of it as the USB-C of advertising technology.

+
+
+

Before AdCP

+
    +
  • 15+ different platform APIs
  • +
  • Months of custom integration
  • +
  • Manual data reconciliation
  • +
  • Fragmented reporting
  • +
  • Vendor lock-in
  • +
+
+
+

With AdCP

+
    +
  • One unified interface
  • +
  • Deploy in days
  • +
  • Automated workflows
  • +
  • Consolidated analytics
  • +
  • Complete flexibility
  • +
+
+
+
+

See the difference

+
+
+

Traditional Workflow

1. Log into Platform A
2. Search for audiences (30 min)
3. Export to spreadsheet
4. Log into Platform B
5. Manually recreate targeting
6. Wait for approval (2 days)
7. Repeat for 10 more platforms...
+
+
+

AdCP Workflow

"Find sports enthusiasts with
high purchase intent, compare
prices across all platforms,
and activate the best option."

✓ Done in minutes
+
+
+
+
+
+
+
+
+
+
+
+

Everything you need, production-ready

+

AdCP v2.5.0 includes a complete suite of capabilities for modern advertising workflows.

+
+
+

🛒 Media Buy Protocol

+

Complete campaign lifecycle management with 9 core tasks:

+
    +
  • get_products - Discover inventory with natural language
  • +
  • create_media_buy - Launch campaigns across platforms
  • +
  • get_media_buy_delivery - Real-time performance metrics
  • +
  • Plus sync, update, feedback, and more
  • +
+
+
+

🎨 Creative Protocol

+

AI-powered creative generation and management:

+
    +
  • build_creative - Generate creatives from briefs
  • +
  • preview_creative - Visual preview generation
  • +
  • list_creative_formats - Discover format specs
  • +
  • Standard formats library included
  • +
+
+
+

📊 Signals Protocol

+

First-party data integration:

+
    +
  • get_signals - Discover available signals
  • +
  • activate_signal - Activate for campaigns
  • +
  • Privacy-first audience building
  • +
  • Platform-agnostic data sharing
  • +
+
+
+

⚡ Protocol Features

+

Enterprise-ready infrastructure:

+
    +
  • MCP & A2A protocol support
  • +
  • Async workflows with webhooks
  • +
  • Human-in-the-loop approval
  • +
  • JSON Schema validation
  • +
+
+
+
+
+
+
+
+
+
+
+

How AdCP works

+

Built on the Model Context Protocol (MCP), AdCP provides a unified interface for advertising operations across any platform.

+
+
+
1
+
+

Discovery

+

Use natural language to describe your target audience. AdCP searches across all connected platforms to find matching inventory and audiences.

"Find sports enthusiasts interested in running gear" +
+
+
+
2
+
+

Comparison

+

Get standardized results from all platforms in a consistent format. Compare pricing, reach, and targeting capabilities side by side.

Platform A: $12 CPM • 2.3M reach
Platform B: $18 CPM • 4.1M reach
Platform C: $9 CPM • 1.8M reach
+
+
+
+
3
+
+

Activation

+

Launch campaigns across multiple platforms with a single command. AdCP handles the technical details while maintaining platform-specific optimizations.

"Activate on Platform B with $10,000 budget" +
+
+
+
4
+
+

Management

+

Monitor performance, adjust budgets, and generate reports across all platforms from one interface. Set up automated rules and alerts.

"Show performance metrics for all active campaigns" +
+
+
+
+
+
+
+
+
+
+
+

Ready to join the revolution?

+

Whether you're a platform provider or an advertiser, AdCP is your path to the future of advertising.

+
+
+

Platform Providers

+

Make your inventory accessible to every AI assistant and automation platform.

+
    +
  • Enable AI-powered workflows for your inventory
  • +
  • Simplify integration with a standard protocol
  • +
  • Reach new customers through automation platforms
  • +
+
Explore the Spec +

Open source • MIT licensed

+
+
+
+

Advertisers & Agencies

+

Start using natural language to manage campaigns across all platforms.

+
    +
  • Manage campaigns with natural language
  • +
  • Access unified analytics across platforms
  • +
  • Build on open standards, avoid vendor lock-in
  • +
+
Start Building Today +

Documentation & guides

+
+
+
+
+
+
+
+
+
+
+
+

Join the conversation

+

AdCP is an open standard developed in collaboration with the advertising community. We're building this together, and your input matters.

+
+
+

Open Development

+

All development happens in the open on GitHub. Watch progress, submit issues, and contribute code.

+
+
+

Working Group

+

Join monthly meetings to discuss protocol evolution, implementation challenges, and future directions.

+
+
+

Implementation Support

+

Get help implementing AdCP for your platform or building tools that use the protocol.

+
+
+ +
+
+
+
+ +
+ + + + \ No newline at end of file From 289fd2409a211df91308eaeabf9d288777f3cd84 Mon Sep 17 00:00:00 2001 From: Vishveshwar Jatain Date: Fri, 19 Dec 2025 09:16:57 -0700 Subject: [PATCH 06/15] =?UTF-8?q?Fix=20typo:=20open-souce=20=E2=86=92=20op?= =?UTF-8?q?en-source?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- server/public/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/public/index.html b/server/public/index.html index 730457c4..677356d4 100644 --- a/server/public/index.html +++ b/server/public/index.html @@ -423,7 +423,7 @@

The Open Standard for Agentic Advertising

-

Ad Context Protocol (AdCP) is an open-souce, interoperable protocol designed from the ground up to make buying, selling, and transacting in digital media more autonomous.

+

Ad Context Protocol (AdCP) is an open-source, interoperable protocol designed from the ground up to make buying, selling, and transacting in digital media more autonomous.

🎯
From 527afecfb16808b01fc44d968ec644a4f4b644b7 Mon Sep 17 00:00:00 2001 From: Vishveshwar Jatain Date: Fri, 19 Dec 2025 09:19:19 -0700 Subject: [PATCH 07/15] Use design system classes for hero points MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace Docusaurus-specific class names with design system classes: - point__uAb → hero-point - pointIcon_AYD6 → hero-point-icon - pointText_BlCe → hero-point-text Removed now-unused CSS overrides from index.html since the design system classes provide the same styling and are reusable across the site. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- server/public/index.html | 46 +++++++++------------------------------- 1 file changed, 10 insertions(+), 36 deletions(-) diff --git a/server/public/index.html b/server/public/index.html index 677356d4..b010a56d 100644 --- a/server/public/index.html +++ b/server/public/index.html @@ -302,32 +302,6 @@ background-color: rgba(26, 54, 180, 0.1) !important; } - /* Stack hero points vertically using design system */ - .point__uAb { - display: flex !important; - flex-direction: column !important; - align-items: center !important; - text-align: center !important; - background: rgba(255, 255, 255, 0.5) !important; - border: none !important; - border-radius: var(--radius-lg) !important; - padding: var(--space-6) !important; - backdrop-filter: blur(10px) !important; - } - - .pointIcon_AYD6 { - margin-bottom: 0 !important; - } - - .pointText_BlCe { - display: flex !important; - flex-direction: column !important; - align-items: center !important; - max-width: 240px !important; - font-size: var(--text-lg) !important; - line-height: var(--leading-tight) !important; - } - /* Hero section spacing and typography */ .heroBanner_qdFl { padding-top: var(--space-16) !important; @@ -340,7 +314,7 @@ } .heroBanner_qdFl p, - .heroBanner_qdFl .pointText_BlCe { + .heroBanner_qdFl .hero-point-text { color: var(--color-text-heading) !important; } @@ -425,17 +399,17 @@

The Open Standard for Agentic Advertising

Ad Context Protocol (AdCP) is an open-source, interoperable protocol designed from the ground up to make buying, selling, and transacting in digital media more autonomous.

-
-
🎯
-
Built for outcomes Buy based on results and revenue, not just impressions.
+
+
🎯
+
Built for outcomes Buy based on results and revenue, not just impressions.
-
-
🤖
-
Built for agents Native support for AI assistants using MCP and A2A protocols.
+
+
🤖
+
Built for agents Native support for AI assistants using MCP and A2A protocols.
-
-
🌍
-
Built for everyone Open standard for all platforms, from CTV networks to blogs.
+
+
🌍
+
Built for everyone Open standard for all platforms, from CTV networks to blogs.
Start Building From 4eae6ffee9dd42ef1977165847d0c7a2bc1661df Mon Sep 17 00:00:00 2001 From: Vishveshwar Jatain Date: Fri, 19 Dec 2025 09:21:20 -0700 Subject: [PATCH 08/15] Fix broken documentation links MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix two 404 links in the features section: - /docs/media-buy/overview → /docs/media-buy - /docs/creatives/overview → /docs/creative 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- server/public/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/public/index.html b/server/public/index.html index b010a56d..fc5f0c00 100644 --- a/server/public/index.html +++ b/server/public/index.html @@ -525,7 +525,7 @@

Everything you need, production-ready

AdCP v2.5.0 includes a complete suite of capabilities for modern advertising workflows.

-

🛒 Media Buy Protocol

+

🛒 Media Buy Protocol

Complete campaign lifecycle management with 9 core tasks:

  • get_products - Discover inventory with natural language
  • @@ -535,7 +535,7 @@

    🛒

-

🎨 Creative Protocol

+

🎨 Creative Protocol

AI-powered creative generation and management:

  • build_creative - Generate creatives from briefs
  • From 4c143d1a32af5828ec825c03eac8febcc7c9e199 Mon Sep 17 00:00:00 2001 From: Vishveshwar Jatain Date: Fri, 19 Dec 2025 09:24:49 -0700 Subject: [PATCH 09/15] Simplify hero subtitle copy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update subtitle to be more concise: - Remove 'from the ground up' - Change 'buying, selling, and transacting' to 'buying and selling' 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- server/public/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/public/index.html b/server/public/index.html index fc5f0c00..fe3b8f1b 100644 --- a/server/public/index.html +++ b/server/public/index.html @@ -397,7 +397,7 @@

    The Open Standard for Agentic Advertising

    -

    Ad Context Protocol (AdCP) is an open-source, interoperable protocol designed from the ground up to make buying, selling, and transacting in digital media more autonomous.

    +

    Ad Context Protocol (AdCP) is an open-source, interoperable protocol designed to make buying and selling digital media more autonomous.

    🎯
    From 2697d593f68eb3da3db1f354380018909ce35f0d Mon Sep 17 00:00:00 2001 From: Vishveshwar Jatain Date: Fri, 19 Dec 2025 09:29:12 -0700 Subject: [PATCH 10/15] Standardize hero point descriptions to 10 words each MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update all three hero point descriptions to exactly 10 words: - Built for outcomes: Added 'actual' (9→10 words) - Built for agents: Simplified and reworded (11→10 words) - Built for everyone: Changed 'all platforms' to 'platforms' and 'blogs' to 'publisher blogs' (11→10 words) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- server/public/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/public/index.html b/server/public/index.html index fe3b8f1b..2a9963d9 100644 --- a/server/public/index.html +++ b/server/public/index.html @@ -401,15 +401,15 @@

    The Open Standard for Agentic Advertising

    🎯
    -
    Built for outcomes Buy based on results and revenue, not just impressions.
    +
    Built for outcomes Buy based on actual results and revenue, not just impressions.
    🤖
    -
    Built for agents Native support for AI assistants using MCP and A2A protocols.
    +
    Built for agents Support for AI assistants using MCP and A2A protocols natively.
    🌍
    -
    Built for everyone Open standard for all platforms, from CTV networks to blogs.
    +
    Built for everyone Open standard for platforms, from CTV networks to publisher blogs.
    Start Building From da3eca555188afef0bded77d5d996b96f6de919b Mon Sep 17 00:00:00 2001 From: Vishveshwar Jatain Date: Fri, 19 Dec 2025 09:30:15 -0700 Subject: [PATCH 11/15] Remove 'publisher' from third hero point MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change 'publisher blogs' to just 'blogs' for brevity. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- server/public/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/public/index.html b/server/public/index.html index 2a9963d9..919aba22 100644 --- a/server/public/index.html +++ b/server/public/index.html @@ -409,7 +409,7 @@

    The Open Standard for Agentic Advertising

    🌍
    -
    Built for everyone Open standard for platforms, from CTV networks to publisher blogs.
    +
    Built for everyone Open standard for platforms, from CTV networks to blogs.
    Start Building From 8653c606eeee0d0f89e02238b49b8890340d6177 Mon Sep 17 00:00:00 2001 From: Vishveshwar Jatain Date: Fri, 19 Dec 2025 09:31:16 -0700 Subject: [PATCH 12/15] Reword agents hero point for better flow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move 'Native' to the beginning for more natural reading. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- server/public/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/public/index.html b/server/public/index.html index 919aba22..c2a9d161 100644 --- a/server/public/index.html +++ b/server/public/index.html @@ -405,7 +405,7 @@

    The Open Standard for Agentic Advertising

    🤖
    -
    Built for agents Support for AI assistants using MCP and A2A protocols natively.
    +
    Built for agents Native support for AI assistants using MCP and A2A protocols.
    🌍
    From 747604ba3dbdb5423eebdc743567747888897d03 Mon Sep 17 00:00:00 2001 From: Vishveshwar Jatain Date: Fri, 19 Dec 2025 09:31:47 -0700 Subject: [PATCH 13/15] Change 'using' to 'via' in agents hero point MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- server/public/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/public/index.html b/server/public/index.html index c2a9d161..432f49f0 100644 --- a/server/public/index.html +++ b/server/public/index.html @@ -405,7 +405,7 @@

    The Open Standard for Agentic Advertising

    🤖
    -
    Built for agents Native support for AI assistants using MCP and A2A protocols.
    +
    Built for agents Native support for AI assistants via MCP and A2A protocols.
    🌍
    From 9b4ab7f733ce2b9ed7961f2dd0c312b8c22756c6 Mon Sep 17 00:00:00 2001 From: Vishveshwar Jatain Date: Fri, 19 Dec 2025 09:33:03 -0700 Subject: [PATCH 14/15] Simplify subtitle to use just 'AdCP' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove 'Ad Context Protocol' prefix for cleaner, more concise subtitle. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- server/public/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/public/index.html b/server/public/index.html index 432f49f0..9af4ca4d 100644 --- a/server/public/index.html +++ b/server/public/index.html @@ -397,7 +397,7 @@

    The Open Standard for Agentic Advertising

    -

    Ad Context Protocol (AdCP) is an open-source, interoperable protocol designed to make buying and selling digital media more autonomous.

    +

    AdCP is an open-source, interoperable protocol designed to make buying and selling digital media more autonomous.

    🎯
    From 9db4b8bc69c3a6e9526550a30910d53cad858e1e Mon Sep 17 00:00:00 2001 From: Vishveshwar Jatain Date: Fri, 19 Dec 2025 09:33:57 -0700 Subject: [PATCH 15/15] Add 'for all' to subtitle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Emphasize inclusive accessibility in the subtitle. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- server/public/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/public/index.html b/server/public/index.html index 9af4ca4d..d37fd13f 100644 --- a/server/public/index.html +++ b/server/public/index.html @@ -397,7 +397,7 @@

    The Open Standard for Agentic Advertising

    -

    AdCP is an open-source, interoperable protocol designed to make buying and selling digital media more autonomous.

    +

    AdCP is an open-source, interoperable protocol designed to make buying and selling digital media more autonomous for all.

    🎯