Optionalrestricted_attributes?: RestrictedAttribute[]Restricted attribute categories this signal touches.
Optionalpolicy_categories?: string[]Policy categories this signal is sensitive for.
Optionaltaxonomy?: {Optional taxonomy metadata describing what this signal means in an external audience, content, retail-media, or provider-owned taxonomy.
Optionalsegmentation_criteria?: stringOptionalcriteria_url?: stringOptionaldata_sources?: (Optionalmethodology?: "modeled" | "observed" | "declared" | "derived" | "inferred"Optionalaudience_expansion?: booleanOptionaldevice_expansion?: booleanOptionalrefresh_cadence?: Optionallookback_window?: Optionalonboarder?: {Optionalcountries?: string[]Optionalconsent_basis?: ConsentBasis[]Data provider's declared GDPR Article 6 lawful basis or consent basis for the underlying signal definition, projected into this get_signals response row when requested. Sellers and federating agents that pass through another provider's signal MUST NOT substitute their own processing basis for the provider-declared basis.
Optionalart9_basis?: Data provider's declared GDPR Article 9 basis for the underlying signal definition when special-category data is involved and Article 9 applies, projected into this get_signals response row when requested. Sellers and federating agents that pass through another provider's signal MUST NOT substitute their own Article 9 basis for the provider-declared basis.
Optionalmodeling?: {Provider assertion that the seed source carries a signed attestation. Consumers MUST NOT treat this boolean alone as cryptographic proof.
Optionaldisclosure?: SignalModelingDisclosureOptionaldata_subject_rights?: {Per-signal data-subject-rights routing. This is a contact/routing reference, not a machine-callable AdCP API.
Optionallast_updated?: stringWhen this listing record was last updated. This indicates freshness of the listing record, not an attestation that the underlying data or model was refreshed at that time.
Optionaldts_compliant_version?: stringOptionalsignal_ref?: SignalRefOptionalsignal_id?: SignalIDHuman-readable signal name
Detailed signal description
Optionalmethodology_url?: stringOptional link to published methodology, media-kit, or data documentation. For data_provider and signal_source refs, this SHOULD match or supplement the referenced definition.
Optionalvalue_type?: SignalValueTypeOptionalcategories?: string[]Valid values for categorical signals. Present when value_type is 'categorical'. Buyers must use one of these values in SignalTargeting.values.
Optionalrange?: { min: number; max: number }Valid range for numeric signals. Present when value_type is 'numeric'.
Minimum value (inclusive)
Maximum value (inclusive)
Opaque resolved-segment handle issued by this signal source. Pass this string verbatim to activate_signal.signal_agent_segment_id, and echo it in package signal targeting when the selected product option exposes the same handle. Treat the value as provider-scoped and opaque: providers MAY namespace it so two providers can expose similarly named signals without relying on a shared taxonomy. Do not pass the signal_id object as this handle, and do not reconstruct a segment handle from categorical values when get_signals returned a resolved segment.
Optionaldata_provider?: stringHuman-readable source name for the signal, when applicable. For data_provider-scoped signals this is the data provider name; for signal_source-scoped signals it may identify the signal source or proprietary origin.
Optionalcoverage_percentage?: numberDEPRECATED for detailed planning. Optional legacy scalar percentage of audience coverage retained only as a fallback for clients that do not consume coverage_forecast. When coverage_forecast is present, coverage_forecast is authoritative for signal-level discovery and coverage_percentage is fallback-only. If coverage_forecast includes an absent bucket over the same denominator, coverage_percentage SHOULD align with 100 * (1 - absent coverage_rate.mid).
Optionalcoverage_forecast?: SignalCoverageForecastArray of deployment targets
Optionalpricing_options?: VendorPricingOption[]Pricing options available for this signal when it has an incremental price. The buyer selects one and passes its pricing_option_id in report_usage or package-level signal_targeting_groups for billing verification. Omit when pricing is unavailable to the caller, bundled into the destination product, or has no incremental cost.
Return pricing option ids from one discovered signal, preserving response order.