Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.adcontextprotocol.org/llms.txt

Use this file to discover all available pages before exploring further.

Key concepts

The Signals Protocol enables AI agents to discover, activate, and manage data signals for advertising campaigns. Signals represent targetable audiences, contextual categories, geographic regions, and other data attributes.

What are signals?

Signals are data segments used for targeting or measurement in advertising campaigns:
  • Audience signals: User segments based on demographics, interests, or behaviors
  • Contextual signals: Content categories or page contexts
  • Geographic signals: Location-based targeting data
  • Temporal signals: Time-based targeting patterns
  • Multi-dimensional signals: Combined or custom signal types

Signal value types

Every signal has a value_type that determines how buyers construct targeting expressions:

Binary

User either matches or doesn’t. The most common type.
{
  "id": "likely_ev_buyers",
  "name": "Likely EV Buyers",
  "value_type": "binary",
  "tags": ["automotive", "purchase_intent"]
}
Targeting: Include or exclude users matching this signal.

Categorical

User has one of several possible values.
{
  "id": "vehicle_ownership",
  "name": "Current Vehicle Ownership",
  "value_type": "categorical",
  "allowed_values": ["luxury_ev", "luxury_non_ev", "mid_range", "economy", "none"]
}
Targeting: Target users with specific values (e.g., “users who own a luxury EV or luxury non-EV”).

Numeric

User has a score or measurement within a range.
{
  "id": "purchase_propensity",
  "name": "Auto Purchase Propensity",
  "value_type": "numeric",
  "range": { "min": 0, "max": 1, "unit": "score" }
}
Targeting: Target users within a value range (e.g., “propensity score > 0.7”).

Signal references

Signals use signal_ref.scope as the identity discriminator:
ScopeFieldsVerification
data_providerdata_provider_domain + signal_idVerifiable via the publisher domain’s adagents.json signals[]
signal_sourcesignal_source_url + signal_idTrust-based — buyer trusts the issuing signal source
productsignal_idProduct-local; meaningful only in the selected product/package context
Data-provider signals come from external data providers who publish their offerings at /.well-known/adagents.json. Buyers can independently verify that a seller or signal source is authorized to resell them. Signal-source signals are proprietary to a signal source and use scope: "signal_source" with that source’s signal_source_url when they are not published in adagents.json signals[]. The legacy signal_id.source object is deprecated. New get_signals, product targeting, and buy-time references use signal_ref.

The two tasks

TaskPurpose
get_signalsDiscover signals matching campaign criteria
activate_signalActivate a signal for use in campaigns

Discovery with get_signals

Buyers describe what they need in natural language. The signal agent searches across its authorized data-provider signals and its own proprietary signals:
{
  "tool": "get_signals",
  "arguments": {
    "signal_spec": "In-market auto buyers with high purchase propensity"
  }
}
The response includes matching signals with pricing, size estimates, and value type metadata — everything a buyer agent needs to make a targeting decision.

Activation with activate_signal

Once a buyer selects a signal, they activate it on their DSP or data platform:
{
  "tool": "activate_signal",
  "arguments": {
    "signal_agent_segment_id": "trident_likely_ev_buyers",
    "pricing_option_id": "po_trident_ev_cpm",
    "destinations": [
      {
        "type": "platform",
        "platform": "the-trade-desk",
        "account": "agency-seat-123"
      }
    ]
  }
}
The signal agent pushes segment membership to the specified platform. The buyer’s campaign can then target against it using the platform’s standard tools.

Agent integration

The Signals Protocol operates within the broader AdCP ecosystem. Signal agents integrate directly with decisioning platforms (DSPs, orchestration platforms), eliminating intermediary reporting and usage tracking. Signal agents advertise their available data providers via get_adcp_capabilities. Once signals are activated on a platform, all usage reporting, billing, and campaign metrics are handled directly by that platform.

Authorization and trust

Data providers control who can resell their signals via the authorized_agents array in their adagents.json. Two patterns:
  • Signal IDs: Authorize specific local signals[].id values in the data provider’s catalog — fine-grained control
  • Signal tags: Authorize all signals with certain tags — scales as catalogs grow
Buyers can verify authorization by fetching the data provider’s adagents.json and checking whether the seller or signal source appears in authorized_agents.

Go deeper