Abstract
The Signals Protocol defines a standard interface for AI-powered signal discovery, activation, and management systems. This protocol enables AI assistants to help marketers discover, activate, and manage data signals (audiences, contextual, geographical, temporal, and multi-dimensional data) through natural language interactions.Protocol Overview
The Signals Protocol provides:- Natural language signal discovery based on marketing objectives
- Multi-platform signal discovery in a single request
- Signal activation for specific platforms and accounts
- Transparent pricing with CPM and revenue share models
- Signal size reporting with unit types (individuals, devices, households)
Transport Requirements
Signal agents MUST support at least one of the following transports:| Transport | Protocol | Description |
|---|---|---|
| MCP | Model Context Protocol | Tool-based interaction via JSON-RPC |
| A2A | Agent-to-Agent | Message-based interaction |
get_adcp_capabilities:
Core Concepts
Request Roles
Every signal request involves two roles:- Orchestrator: The platform making the API request (e.g., Scope3, Claude)
- Principal: The entity on whose behalf the request is made (e.g., Nike, Omnicom)
Signal Agent Types
Private Signal Agents — owned by the principal with exclusive access:- Signal agents MUST return
AGENT_NOT_FOUNDfor unauthorized principals - Signal agents MUST NOT expose private signals to other principals
- Signal agents MUST support public catalog access without principal registration
- Signal agents SHOULD support personalized catalogs for registered principals
Identifiers
-
signal_agent_segment_id: Unique identifier for a signal. Signal agents MUST return this for each signal. Orchestrators MUST use this inactivate_signalrequests. -
activation_key: Key for campaign targeting. Signal agents MUST return this whenis_live: trueAND the caller has access to the deployment. Orchestrators MUST use this for targeting (notsignal_agent_segment_id).
Governance metadata
Signal definitions MAY includerestricted_attributes and policy_categories fields to enable structural governance matching. Data providers SHOULD declare these so governance agents can deterministically evaluate compliance rather than inferring sensitivity from signal names.
restricted_attributes: Array of GDPR Article 9 special category values this signal touches. Governance agents SHOULD prefer declared attributes over semantic inference.policy_categories: Array of policy category IDs this signal is sensitive for. Governance agents match these against a plan’spolicy_categoriesto flag sensitive data usage.
Tasks
The Signals Protocol defines two tasks. See task reference pages for complete request/response schemas and examples.get_signals
Schema:get-signals-request.json / get-signals-response.json
Reference: get_signals task
Discover signals matching campaign criteria.
Requirements:
- Orchestrators MUST include
signal_specorsignal_ids - Signal agents MUST return all required fields per response schema
- Signal agents MUST include
activation_keywhenis_live: trueAND caller has deployment access
activate_signal
Schema:activate-signal-request.json / activate-signal-response.json
Reference: activate_signal task
Activate a signal for use on a decisioning platform.
Requirements:
- Orchestrators MUST include
signal_agent_segment_idanddestinations - On success, signal agents MUST return a
deploymentsarray withis_livefor each deployment - Signal agents MUST return
activation_keywhenis_live: trueAND caller has deployment access - On failure, signal agents MUST return an
errorsarray (with nodeploymentsarray)
Error Handling
Signal agents MUST return errors using the standard AdCP error schema. Signal agents MUST use Signals Protocol error codes as defined in the Error Handling Reference.Security Considerations
Transport Security
All Signals Protocol communications MUST use HTTPS with TLS 1.2 or higher.Authentication
- Orchestrators MUST authenticate with signal agents using valid credentials
- Signal agents MUST validate credentials before processing requests
- Signal agents SHOULD use principal context to determine catalog access level
Activation Key Security
- Signal agents MUST only return
activation_keyto authenticated callers with deployment access - Signal agents MUST NOT return activation keys for deployments the caller cannot access
Data Minimization
- Signal agents MUST NOT return signals the principal is not authorized to access
Conformance
Signal Agent Conformance
A conformant Signals Protocol agent MUST:- Support at least one specified transport (MCP or A2A)
- Implement
get_signalsandactivate_signaltasks per schema - Return required fields as defined in response schemas
- Use specified error codes
- Enforce access control for private signals and activation keys
Orchestrator Conformance
A conformant Signals Protocol orchestrator MUST:- Authenticate with signal agents
- Include required fields as defined in request schemas
- Handle async activation responses
- Use
activation_keyfor campaign targeting
Implementation Notes
Multi-Platform Discovery
Orchestrators MAY request signals across multiple platforms in a singleget_signals call.
Signal agents SHOULD return deployment information for all requested platforms.
Activation Timing
Signal activation is typically asynchronous:- Simple activations: 1-2 hours
- Complex deployments: up to 24-48 hours
Schema Reference
| Schema | Description |
|---|---|
signals/get-signals-request.json | get_signals request |
signals/get-signals-response.json | get_signals response |
signals/activate-signal-request.json | activate_signal request |
signals/activate-signal-response.json | activate_signal response |
core/deployment.json | Deployment target |
core/activation-key.json | Activation key |