AdCP 3.1.13 · Negotiation layer

AdCP Signals

AdCP Signals is a schema group of the Ad Context Protocol holding 2 of the 64 operations in release 3.1.13, covering audience and contextual signal discovery and activation.

get_signals discovers audience and contextual signals. activate_signal pushes an audience segment to a DSP or a sales agent. activate_signal declares x-mutates-state and get_signals does not.

get_signals is one of seven operations in release 3.1.13 that publish a dedicated async response arm, so a discovery call can return submitted or working and be completed later against task_id.

What the 2 signals operations do

Signals — 2 operations
Operation Request fields Response fields What it does
activate_signal 11 13 activate_signal is the AdCP task for pushing audience segments to DSPs and sales agents.
get_signals 18 23 get_signals is the AdCP task for discovering audience and contextual signals.

activate_signal

activate_signal is the AdCP task for pushing audience segments to DSPs and sales agents.

Every field and edge case for activate_signal

activate_signal request — 11 fields, 3 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
actionstringWhether to activate or deactivate the signal. One of: activate, deactivate.
signal_agent_segment_idstringrequiredOpaque activation handle returned in the signal_agent_segment_id field of each get_signals response entry.
destinationsdestination[]requiredTarget destination(s) for activation.
pricing_option_idstringThe pricing option selected from the signal's pricing_options in the get_signals response.
governance_contextstringOpaque governance context returned by check_governance for this signal activation.
accountaccount-refAccount for this activation.
idempotency_keystringrequiredClient-generated unique key for this request.
contextcontextOpaque correlation data that is echoed unchanged in responses.
extextExtension object for platform-specific, vendor-namespaced parameters.
activate_signal response — 13 fields, 1 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
context_idstringSession/conversation identifier for tracking related operations across multiple task invocations.
contextcontextPer-request opaque caller-supplied correlation object echoed unchanged in the response.
task_idstringUnique identifier for tracking asynchronous operations.
statustask-statusrequiredCurrent task execution state. One of: submitted, working, input-required, completed, canceled, failed, rejected, auth-required, unknown.
messagestringHuman-readable summary of the task result.
timestampstringISO 8601 timestamp when the response was generated.
replayedbooleanSet to true when this response was returned from the idempotency cache rather than from a fresh execution.
adcp_errorerrorTransport-envelope error signal for fatal task failures.
push_notification_configpush-notification-configPush notification configuration for async task updates (A2A and REST protocols).
governance_contextstringGovernance context token issued by the account's governance agent during check_governance.
payloadobjectConceptual grouping for the task-specific response data defined by individual task response schemas (e.g., get-products-response.json, create-media-buy-response.json).
activate_signal — Example (json) — source
{
  "deployments": [
    {
      "type": "platform",
      "platform": "string",
      "account": "string",
      "activation_key": {
        "type": "segment_id",
        "segment_id": "string"
      },
      "estimated_activation_duration_minutes": "number",
      "deployed_at": "string"
    }
  ],
  "errors": [
    {
      "code": "string",
      "message": "string",
      "field": "string",
      "suggestion": "string",
      "details": {}
    }
  ]
}

get_signals

get_signals is the AdCP task for discovering audience and contextual signals.

Every field and edge case for get_signals

get_signals request — 18 fields, 0 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
discovery_modestringDeclares caller intent for this request. One of: brief, wholesale.
accountaccount-refAccount for this request.
signal_specstringNatural language description of the desired signals.
signal_refssignal-ref[]Specific signals to look up by reference.
signal_idssignal-id[]DEPRECATED.
destinationsdestination[]Filter signals to those activatable on specific agents/platforms.
countriesstring[]Countries where signals will be used (ISO 3166-1 alpha-2 codes).
filterssignal-filtersFilters to refine signal discovery results
fieldsstring[]Specific signal fields to include in the response, aligned with get_products.fields. One of: signal_ref, signal_id, signal_agent_segment_id, name, description, value_type, categories, range, signal_type, data_provider, coverage_percentage, deployments, pricing_options, taxonomy, data_sources, methodology, segmentation_criteria, criteria_url, refresh_cadence, lookback_window, onboarder, modeling, audience_expansion, device_expansion.
max_resultsintegerDEPRECATED: Use pagination.max_results instead.
paginationpagination-requestPagination parameters.
push_notification_configpush-notification-configOptional webhook configuration for async terminal completion/failure notifications on semantic signal discovery.
if_wholesale_feed_versionstringOpaque wholesale_feed_version token returned by a prior wholesale-mode get_signals response from this agent.
if_pricing_versionstringOpaque pricing_version token from a prior get_signals response.
contextcontextOpaque correlation data that is echoed unchanged in responses.
extextExtension object for platform-specific, vendor-namespaced parameters.
get_signals response — 23 fields, 1 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
context_idstringSession/conversation identifier for tracking related operations across multiple task invocations.
contextcontextOpaque correlation data that is echoed unchanged in responses.
task_idstringUnique identifier for tracking asynchronous operations.
statustask-statusrequiredCurrent task execution state. One of: submitted, working, input-required, completed, canceled, failed, rejected, auth-required, unknown.
messagestringHuman-readable summary of the task result.
timestampstringISO 8601 timestamp when the response was generated.
replayedbooleanSet to true when this response was returned from the idempotency cache rather than from a fresh execution.
adcp_errorerrorTransport-envelope error signal for fatal task failures.
push_notification_configpush-notification-configPush notification configuration for async task updates (A2A and REST protocols).
governance_contextstringGovernance context token issued by the account's governance agent during check_governance.
payloadobjectConceptual grouping for the task-specific response data defined by individual task response schemas (e.g., get-products-response.json, create-media-buy-response.json).
signalsobject[]Array of matching signals
errorserror[]Task-specific errors and warnings (e.g., signal discovery or pricing issues)
incompleteobject[]Declares what the agent could not finish within the caller's time_budget or due to internal limits.
wholesale_feed_versionstringOpaque token representing the version of the wholesale signals feed state used to compose this response.
pricing_versionstringOpaque token representing the version of the pricing layer.
cache_scopestringDeclares whether the wholesale_feed_version and pricing_version on this response describe a universal layer or an account-specific overlay. One of: public, account.
unchangedbooleanPresent and `true` ONLY on wholesale-mode responses when the request carried if_wholesale_feed_version (and/or if_pricing_version) matching the agent's current version for the caller's cache_scope, in which case signals…
paginationpagination-responseStandard cursor-based pagination metadata for list responses
sandboxbooleanWhen true, this response contains simulated data from sandbox mode.
extextExtension object for platform-specific, vendor-namespaced parameters.
get_signals — Example (json) — source
{
  "signals": [
    {
      "signal_ref": {
        "scope": "data_provider",
        "data_provider_domain": "string",
        "signal_id": "string"
      },
      "signal_agent_segment_id": "string",
      "name": "string",
      "description": "string",
      "signal_type": "string",
      "data_provider": "string",
      "coverage_percentage": "number (optional, deprecated)",
      "coverage_forecast": {
        "method": "estimate",
        "forecast_range_unit": "availability",
        "scope": {
          "kind": "inventory",
          "label": "network price-priority inventory"
        },
        "bucket_semantics": "exclusive",
        "bucket_completeness": "partial",
        "points": [
          {
            "label": "not present",
            "dimensions": [
              {
                "kind": "signal",
                "signal_ref": {
                  "scope": "data_provider",
                  "data_provider_domain": "weather-data.example",
                  "signal_id": "weather"
                },
                "signal_value": null,
                "presence": "absent"
              }
            ],
            "metrics": {
              "impressions": { "mid": 280000 },
              "coverage_rate": { "mid": 0.28 }
            }
          },
          {
            "label": "hot",
            "dimensions": [
              {
                "kind": "signal",
                "signal_ref": {
                  "scope": "data_provider",
                  "data_provider_domain": "weather-data.example",
                  "signal_id": "weather"
                },
                "signal_value": "hot",
                "presence": "present"
              }
            ],
            "metrics": {
              "impressions": { "mid": 180000 },
              "coverage_rate": { "mid": 0.18 }
            }
          }
        ]
      },
      "deployments": [
        {
          "type": "agent",
          "agent_url": "string",
          "account": "string",
          "is_live": "boolean",
          "activation_key": {
            "type": "segment_id",
            "segment_id": "string"
          },
          "estimated_activation_duration_minutes": "number"
        }
      ],
      "pricing_options": [
        {
          "pricing_option_id": "string",
          "model": "cpm | percent_of_media | flat_fee | per_unit | custom",
          "...": "..."
        }
      ]
    }
  ]
}

The other 9 AdCP areas

Related