Skip to main content

Ad Context Protocol (AdCP)

The Ad Context Protocol (AdCP) is an open standard that enables AI agents to automate advertising workflows — discovering inventory, activating audiences, managing campaigns, and more — using a shared protocol that works across platforms.

AdCP defines structured tasks across eight domains: Accounts, Media Buy, Creative, Signals, Governance, Sponsored Intelligence, Brand Protocol, and Registry.

Classify implements the Signals domain, accessible via MCP (Model Context Protocol) transport — meaning any MCP-compatible AI assistant can connect to Classify's Signals Agent directly.


Classify as a Signals Agent

Classify operates as a Marketplace Signal Agent within the AdCP ecosystem. When an AI agent — whether it's embedded in a DSP, an agency planning tool, or a standalone assistant — needs contextual targeting segments, it can query Classify's Signals Agent to discover and activate them.

Classify offers two catalog types:

CatalogDescription
PublicPre-built IAB and seasonal segments available across open marketplaces
PersonalizedCustom segments built for specific clients using Classify's segment creation capabilities

Supported tasks

TaskStatusDescription
get_signalsAvailableDiscover segments matching a natural language campaign brief
activate_signalAvailableActivate a discovered segment for use in a campaign

How it works

  1. An AI agent describes what it needs — using natural language (e.g., "contextual segments for electric vehicle enthusiasts")
  2. Classify searches its catalog — matching against public and personalized segments using the description and any filters provided
  3. Classify returns matching signals — each with a name, description, deployment status across DSP platforms, and pricing
  4. The agent activates a signal — Classify pushes a Deal ID to the target platform so the buyer can use it in their campaign

get_signals

Discover signals matching campaign criteria. The agent sends a natural language description of the targeting it needs, along with where the signals should be deployable.

Request

{
"signal_spec": "Contextual segments for electric vehicle enthusiasts, including EV reviews, charging infrastructure, and battery technology",
"deliver_to": {
"deployments": [
{
"platform": "the-trade-desk",
"account": "buyer-seat-abc123"
}
]
},
"max_results": 5
}

Request parameters

ParameterTypeRequiredDescription
signal_specstringRequiredNatural language description of the desired targeting signals
deliver_toobjectRequiredWhere the signals need to be activated
deliver_to.deploymentsarray[object]RequiredList of DSP platforms and accounts to check availability against
deliver_to.deployments[].platformstringRequiredPlatform identifier (e.g. "the-trade-desk", "amazon-dsp", "google-dv360")
deliver_to.deployments[].accountstringRequiredBuyer seat or account ID on the platform
deliver_to.countriesarray[string]OptionalISO 3166-1 alpha-2 country codes for geo targeting
max_resultsnumberOptionalMaximum number of signals to return
filtersobjectOptionalAdditional filters to refine results
filters.max_cpmnumberOptionalMaximum CPM price filter
filters.catalog_typesarray[string]OptionalFilter by catalog type: "marketplace", "custom", "owned"

Response

{
"message": "Found 3 contextual segments matching your electric vehicle criteria, available on The Trade Desk.",
"context_id": "ctx-a1b2c3d4",
"adcp_version": "1.0.0",
"signals": [
{
"signal_agent_segment_id": "clsfy-seg-1042",
"name": "Electric Vehicles & EV Technology",
"description": "Pages covering electric vehicle reviews, EV market trends, battery technology, charging infrastructure, and the transition from internal combustion engines. Includes automotive publications, technology outlets, and energy industry content.",
"signal_type": "marketplace",
"data_provider": "Classify",
"coverage_percentage": 2.4,
"deployments": [
{
"platform": "the-trade-desk",
"account": "buyer-seat-abc123",
"is_live": true,
"scope": "platform",
"decisioning_platform_segment_id": "ttd-ctx-1042",
"estimated_activation_duration_minutes": 0
}
],
"pricing": {
"cpm": 1.50,
"currency": "USD"
}
},
{
"signal_agent_segment_id": "clsfy-seg-2187",
"name": "Sustainable Transportation",
"description": "Broader sustainability-focused content including electric vehicles, public transit innovation, cycling infrastructure, and urban mobility. Reaches readers interested in reducing transportation emissions.",
"signal_type": "marketplace",
"data_provider": "Classify",
"coverage_percentage": 3.1,
"deployments": [
{
"platform": "the-trade-desk",
"account": "buyer-seat-abc123",
"is_live": true,
"scope": "platform",
"decisioning_platform_segment_id": "ttd-ctx-2187",
"estimated_activation_duration_minutes": 0
}
],
"pricing": {
"cpm": 1.50,
"currency": "USD"
}
},
{
"signal_agent_segment_id": "clsfy-seg-3305",
"name": "EV Charging & Infrastructure",
"description": "Focused on EV charging networks, home charging solutions, fast charging technology, and government incentives for charging infrastructure buildout.",
"signal_type": "custom",
"data_provider": "Classify",
"coverage_percentage": 0.8,
"deployments": [
{
"platform": "the-trade-desk",
"account": "buyer-seat-abc123",
"is_live": false,
"scope": "account",
"decisioning_platform_segment_id": null,
"estimated_activation_duration_minutes": 120
}
],
"pricing": {
"cpm": 2.00,
"currency": "USD"
}
}
]
}

Response fields

FieldTypeDescription
messagestringHuman-readable summary of the results
context_idstringSession identifier for follow-up requests
adcp_versionstringAdCP specification version
signalsarray[object]Matching signals (see below)

Signal object

FieldTypeDescription
signal_agent_segment_idstringClassify's unique identifier for this signal
namestringHuman-readable segment name
descriptionstringDetailed description of what the segment targets
signal_typestring"marketplace" (public IAB/seasonal), "custom" (Classify-built), or "owned" (client-specific)
data_providerstringAlways "Classify"
coverage_percentagenumberEstimated audience coverage as a percentage
deploymentsarray[object]Deployment status per requested platform
pricingobjectcpm (number) and currency (string, e.g. "USD")

Deployment object

FieldTypeDescription
platformstringDSP platform identifier
accountstringBuyer account on that platform
is_livebooleanWhether the signal is currently active and targetable
scopestring"platform" (available platform-wide) or "account" (specific to this buyer)
decisioning_platform_segment_idstring | nullThe platform's segment ID for targeting. null if not yet activated.
estimated_activation_duration_minutesnumberMinutes until the signal is live. 0 if already active.

activate_signal

Once you've discovered a signal via get_signals, use activate_signal to make it targetable on a specific platform. Activation creates a Deal ID that the buyer can target in their DSP.

Request

{
"signal_agent_segment_id": "clsfy-seg-3305",
"deliver_to": {
"deployments": [
{
"platform": "the-trade-desk",
"account": "buyer-seat-abc123"
}
]
}
}

Request parameters

ParameterTypeRequiredDescription
signal_agent_segment_idstringRequiredThe signal ID returned by get_signals
deliver_toobjectRequiredDeployment target (same structure as get_signals)
deliver_to.deploymentsarray[object]RequiredPlatform and account to activate on

Response

{
"message": "Signal 'EV Charging & Infrastructure' is being activated on The Trade Desk for account buyer-seat-abc123.",
"context_id": "ctx-a1b2c3d4",
"adcp_version": "1.0.0",
"activation": {
"signal_agent_segment_id": "clsfy-seg-3305",
"deal_id": "classify-ttd-3305-x7k9m",
"platform": "the-trade-desk",
"account": "buyer-seat-abc123",
"status": "activating",
"estimated_activation_duration_minutes": 120
}
}

Once active, the deal_id can be used directly in the buyer's DSP campaign setup as a targeting parameter.

REST alternative

If you prefer to activate segments via a traditional API rather than through AdCP, see the Segment Activation API for the REST endpoint.


Signal types

TypeDescription
marketplacePre-built segments available in open marketplaces — IAB content categories, seasonal segments, and other broadly applicable targeting
customCustom segments built by Classify based on specific targeting criteria — prompts, seed URLs, or topic descriptions
ownedSegments the client created directly via the Segment Creation API — they own these segments, as opposed to pre-built marketplace or custom-built segments

Connecting to Classify's Signals Agent

Classify's AdCP endpoint is accessible to any AI agent or platform that supports the Ad Context Protocol. To connect:

  1. Obtain an API key — contact Classify or sign up at clsfy.me
  2. Configure your AdCP client to point at Classify's Signals Agent endpoint
  3. Send get_signals requests using your API key for authentication

For details on the full Ad Context Protocol specification, see the official AdCP documentation.