adcp-signals
npx skills add https://github.com/adcontextprotocol/adcp --skill adcp-signals
Agent 安装分布
Skill 文档
AdCP Signals Protocol
This skill enables you to execute the AdCP Signals Protocol with signal agents. Use the standard MCP tools (get_signals, activate_signal) exposed by the connected agent.
Overview
The Signals Protocol provides 2 standardized tasks for discovering and activating targeting data:
| Task | Purpose | Response Time |
|---|---|---|
get_signals |
Discover signals using natural language | ~60s |
activate_signal |
Activate a signal on a platform/agent | Minutes-Hours |
Typical Workflow
- Discover signals:
get_signalswith a natural language description of targeting needs - Review options: Evaluate signals by coverage, pricing, and deployment status
- Activate if needed:
activate_signalfor signals not yet live on your platform - Use in campaigns: Reference the activation key in your media buy targeting
Task Reference
get_signals
Discover signals based on natural language description, with deployment status across platforms.
Request:
{
"signal_spec": "High-income households interested in luxury goods",
"deliver_to": {
"deployments": [
{
"type": "platform",
"platform": "the-trade-desk",
"account": "agency-123"
}
],
"countries": ["US"]
},
"filters": {
"max_cpm": 5.0,
"catalog_types": ["marketplace"]
},
"max_results": 5
}
Key fields:
signal_spec(string, required): Natural language description of desired signalsdeliver_to(object, required): Where signals will be useddeployments(array): Target platforms/agents withtype,platform/agent_url, and optionalaccountcountries(array): ISO country codes where signals will be used
filters(object, optional): Filter bycatalog_types,data_providers,max_cpm,min_coverage_percentagemax_results(number, optional): Limit number of results
Deployment types:
// DSP platform
{ "type": "platform", "platform": "the-trade-desk", "account": "agency-123" }
// Sales agent
{ "type": "agent", "agent_url": "https://salesagent.example.com" }
Response contains:
signals: Array of matching signals with:signal_agent_segment_id: Use this inactivate_signalname,description: Human-readable signal infodata_provider: Source of the signal datacoverage_percentage: Reach relative to agent’s populationdeployments: Status per platform withis_live,activation_key,estimated_activation_duration_minutespricing: CPM and currency
activate_signal
Activate a signal for use on a specific platform or agent.
Request:
{
"signal_agent_segment_id": "luxury_auto_intenders",
"deployments": [
{
"type": "platform",
"platform": "the-trade-desk",
"account": "agency-123-ttd"
}
]
}
Key fields:
signal_agent_segment_id(string, required): Fromget_signalsresponsedeployments(array, required): Target deployment(s) withtype,platform/agent_url, and optionalaccount
Response contains:
deployments: Array with activation results per targetactivation_key: The key to use for targeting (segment ID or key-value pair)deployed_at: ISO timestamp when activation completedestimated_activation_duration_minutes: Time remaining if async
errors: Any warnings or errors encountered
Key Concepts
Deployment Targets
Signals can be activated on two types of targets:
DSP Platforms:
{
"type": "platform",
"platform": "the-trade-desk",
"account": "agency-123"
}
Sales Agents:
{
"type": "agent",
"agent_url": "https://wonderstruck.salesagents.com"
}
Activation Keys
When signals are live, the response includes an activation key for targeting:
Segment ID format (typical for DSPs):
{
"type": "segment_id",
"segment_id": "ttd_segment_12345"
}
Key-Value format (typical for sales agents):
{
"type": "key_value",
"key": "audience_segment",
"value": "luxury_auto_intenders"
}
Signal Types
- marketplace: Licensed from data providers (CPM pricing)
- custom: Built for specific principal accounts
- owned: Private signals from your own data (no cost)
Coverage Percentage
Indicates signal reach relative to the agent’s population:
- 99%: Very broad signal (matches most identifiers)
- 50%: Medium signal
- 1%: Very niche signal
Asynchronous Operations
Signal activation may take time. Check the response:
is_live: true+activation_key: Ready to use immediatelyis_live: false+estimated_activation_duration_minutes: Activation in progress
Poll or use webhooks to check completion status.
Error Handling
Common error codes:
SIGNAL_AGENT_SEGMENT_NOT_FOUND: Invalid signal_agent_segment_idACTIVATION_FAILED: Could not activate signalALREADY_ACTIVATED: Signal already active on targetDEPLOYMENT_UNAUTHORIZED: Not authorized for platform/accountAGENT_NOT_FOUND: Private agent not visible to this principalAGENT_ACCESS_DENIED: Not authorized for this signal agent
Error responses include:
{
"errors": [
{
"code": "DEPLOYMENT_UNAUTHORIZED",
"message": "Account not authorized for this data provider",
"field": "deployment.account",
"suggestion": "Contact your account manager to enable access"
}
]
}