Skip to content

Implements the Deals Protocol (renamed from Curation Protocol).#273

Closed
bmilekic wants to merge 2 commits intoadcontextprotocol:mainfrom
bmilekic:main
Closed

Implements the Deals Protocol (renamed from Curation Protocol).#273
bmilekic wants to merge 2 commits intoadcontextprotocol:mainfrom
bmilekic:main

Conversation

@bmilekic
Copy link
Copy Markdown
Contributor

@bmilekic bmilekic commented Dec 5, 2025

Summary

This PR implements the complete Deals Protocol (renamed from Curation Protocol) to enable buyer agents to discover and activate pre-packaged and ad-hoc inventory deal packages from SSPs and curation platforms.

New Protocol: Deals Protocol

The Deals Protocol provides an alternative to the Media Buy Protocol for package-based buying, enabling:

  • Natural language deal discovery
  • Activation on SSP platforms (Magnite, Pubmatic, OpenX, Index Exchange, Microsoft Curate, etc.)
  • Support for PMP and Curated deal types
  • Integration with Signals Protocol for audience-targeted inventory packages

Tasks Implemented

get_deals

  • Discover deal packages using natural language descriptions
  • Simplified API similar to get_products from the Media Buy protocol
  • Returns deals with platforms array showing where they can be activated

activate_deal

  • Activate deals on specific SSP platforms
  • Atomic success/error responses
  • Uses deployment model similar to Signals Protocol

Architecture

Integration Flow:
Buyer Agent → Deals Agent → Signals Agent
(Deals Protocol) (Signals Protocol)

  • Deals Agents integrate with Signals Agents (using Signals Protocol)
  • Buyer Agents interact with Deals Agents (using Deals Protocol)
  • Parallel architecture to Media Buy Protocol's Sales Agent integration

Documentation

  • /docs/deals/overview.mdx: User-friendly protocol introduction with use cases
  • /docs/deals/specification.mdx: Complete RFC specification with task definitions and data models
  • Updated intro, README, and navigation to reflect Deals Protocol

Key Design Decisions

  1. Simplified get_deals: Natural language brief and optional filters (similar to get_products)
  2. Platform availability in deals: Each deal includes platforms array showing where it can be activated
  3. SSP-focused: All examples use SSPs (not DSPs) as activation destinations
  4. Draft deals: Discovered deals have status "draft" until activated

Testing

✅ All schema validation tests pass (111 schemas validated)
✅ All example data validation tests pass
✅ TypeScript type checking passes

Changeset

A changeset has been included for major version bump automation.

🤖 Generated with Claude Code and verified and edited by humans

The Deals Protocol enables buyer agents to discover and activate pre-packaged and bespoke signal-enriched inventory deal packages from SSPs and curation platforms.

The Deals Protocol provides an alternative to the Media Buy Protocol for package-based buying, enabling:

- Natural language deal discovery
- Activation on SSP platforms (Magnite, Pubmatic, OpenX, Index Exchange, Microsoft Curate, etc.)
- Support for PMP and Curated deal types
- Integration with Signals Protocol for audience-targeted inventory packages
Updates the Deals Protocol schemas and documentation to match the established patterns used in the Media Buy Protocol, improving consistency across AdCP.

Key changes:
- Rename deal_spec → brief to match get_products pattern
- Add structured filters support via new deal-filters.json schema
- Add brand_manifest support (inline or URL reference)
- Add ext field for platform-specific extensions
- Update context/ext to use $ref to core schemas throughout

This improves developer experience by providing consistent request/response patterns across protocols while maintaining backward compatibility via changesets.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@bokelley bokelley closed this Mar 15, 2026
@github-actions
Copy link
Copy Markdown
Contributor

IPR Policy Agreement Required

Thank you for your contribution! Before we can accept your pull request, you must agree to our Intellectual Property Rights Policy.

By making a Contribution, you agree that:

  • You grant the Foundation a perpetual, irrevocable, worldwide, non-exclusive, royalty-free copyright license to your Contribution
  • You grant a patent license under any Necessary Claims
  • You represent that you own or have sufficient rights to grant these licenses

To agree, please comment below with the exact phrase:

I have read the IPR Policy

You can read the full IPR Policy here.


I have read the IPR Policy


Bosko Milekic seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants