@adcp/sdk API Reference - v10.0.1
    Preparing search index...

    Interface NormalizedDiscoveredSignal

    interface NormalizedDiscoveredSignal {
        raw: {
            restricted_attributes?: RestrictedAttribute[];
            policy_categories?: string[];
            taxonomy?: {
                ref: string;
                version?: string;
                segtax?: number;
                etag?: string;
                values: { id: string; path?: string; modifiers?: string[] }[];
                value_mappings?: {
                    value: string;
                    taxonomy_value_id: string;
                    path?: string;
                    modifiers?: string[];
                }[];
                parent_match_behavior?: | "unknown"
                | "exact_only"
                | "descendants_supported";
            };
            segmentation_criteria?: string;
            criteria_url?: string;
            data_sources?: (
                | "email"
                | "app_behavior"
                | "app_usage"
                | "web_usage"
                | "geo_location"
                | "tv_ott_or_stb_device"
                | "panel"
                | "online_ecommerce"
                | "credit_data"
                | "loyalty_card"
                | "transaction"
                | "online_survey"
                | "offline_survey"
                | "public_record_census"
                | "public_record_voter_file"
                | "public_record_other"
                | "offline_transaction"
            )[];
            methodology?: "modeled"
            | "observed"
            | "declared"
            | "derived"
            | "inferred";
            audience_expansion?: boolean;
            device_expansion?: boolean;
            refresh_cadence?:
                | "daily"
                | "weekly"
                | "monthly"
                | "quarterly"
                | "intra_day"
                | "bi_monthly"
                | "bi_annually"
                | "annually";
            lookback_window?: | "daily"
            | "weekly"
            | "monthly"
            | "quarterly"
            | "intra_day"
            | "bi_monthly"
            | "bi_annually"
            | "annually";
            onboarder?: {
                match_keys: (
                    | "email"
                    | "name"
                    | "address"
                    | "postal"
                    | "lat_long"
                    | "mobile_id"
                    | "cookie_id"
                    | "ip"
                    | "customer_id"
                    | "phone"
                )[];
                pre_onboarding_audience_expansion?: boolean;
                pre_onboarding_device_expansion?: boolean;
                pre_onboarding_precision_level?: | "individual"
                | "household"
                | "business"
                | "geography";
            };
            countries?: string[];
            consent_basis?: ConsentBasis[];
            art9_basis?: | "explicit_consent"
            | "manifestly_made_public"
            | "substantial_public_interest"
            | "vital_interests";
            modeling?: {
                method: "lookalike"
                | "supervised"
                | "embedding"
                | "rules";
                seed_source: {
                    type:
                        | "panel"
                        | "first_party_crm"
                        | "declared_survey"
                        | "transactional"
                        | "behavioral";
                    provider_signed: boolean;
                };
                training_data_jurisdictions: string[];
                ai_act_risk_class: "minimal"
                | "limited"
                | "high_risk";
                disclosure?: SignalModelingDisclosure;
            };
            data_subject_rights?: {
                upstream_source_domain?: string;
                channels: {
                    rights: (
                        "access"
                        | "rectification"
                        | "erasure"
                        | "portability"
                        | "objection"
                    )[];
                    url?: string;
                    email?: string;
                    languages?: string[];
                    countries?: string[];
                }[];
                response_sla_days?: number;
                ccpa_opt_out_url?: string;
            };
            last_updated?: string;
            dts_compliant_version?: string;
            signal_ref?: SignalRef;
            signal_id?: SignalID;
            name: string;
            description: string;
            methodology_url?: string;
            value_type?: SignalValueType;
            categories?: string[];
            range?: { min: number; max: number };
            signal_agent_segment_id: string;
            signal_type: SignalAvailabilityType;
            data_provider?: string;
            coverage_percentage?: number;
            coverage_forecast?: SignalCoverageForecast;
            deployments: Deployment[];
            pricing_options?: VendorPricingOption[];
        };
        signalAgentSegmentId: string;
        signalId?: SignalID;
        signalIdValue?: string;
        signalSource?: "agent"
        | "catalog";
        signalIssuer?: string;
        pricingOptionIds: string[];
        restrictedAttributes: string[];
        policyCategories: string[];
    }
    Index

    Properties

    raw: {
        restricted_attributes?: RestrictedAttribute[];
        policy_categories?: string[];
        taxonomy?: {
            ref: string;
            version?: string;
            segtax?: number;
            etag?: string;
            values: { id: string; path?: string; modifiers?: string[] }[];
            value_mappings?: {
                value: string;
                taxonomy_value_id: string;
                path?: string;
                modifiers?: string[];
            }[];
            parent_match_behavior?: "unknown"
            | "exact_only"
            | "descendants_supported";
        };
        segmentation_criteria?: string;
        criteria_url?: string;
        data_sources?: (
            | "email"
            | "app_behavior"
            | "app_usage"
            | "web_usage"
            | "geo_location"
            | "tv_ott_or_stb_device"
            | "panel"
            | "online_ecommerce"
            | "credit_data"
            | "loyalty_card"
            | "transaction"
            | "online_survey"
            | "offline_survey"
            | "public_record_census"
            | "public_record_voter_file"
            | "public_record_other"
            | "offline_transaction"
        )[];
        methodology?: "modeled"
        | "observed"
        | "declared"
        | "derived"
        | "inferred";
        audience_expansion?: boolean;
        device_expansion?: boolean;
        refresh_cadence?:
            | "daily"
            | "weekly"
            | "monthly"
            | "quarterly"
            | "intra_day"
            | "bi_monthly"
            | "bi_annually"
            | "annually";
        lookback_window?: | "daily"
        | "weekly"
        | "monthly"
        | "quarterly"
        | "intra_day"
        | "bi_monthly"
        | "bi_annually"
        | "annually";
        onboarder?: {
            match_keys: (
                | "email"
                | "name"
                | "address"
                | "postal"
                | "lat_long"
                | "mobile_id"
                | "cookie_id"
                | "ip"
                | "customer_id"
                | "phone"
            )[];
            pre_onboarding_audience_expansion?: boolean;
            pre_onboarding_device_expansion?: boolean;
            pre_onboarding_precision_level?: | "individual"
            | "household"
            | "business"
            | "geography";
        };
        countries?: string[];
        consent_basis?: ConsentBasis[];
        art9_basis?: | "explicit_consent"
        | "manifestly_made_public"
        | "substantial_public_interest"
        | "vital_interests";
        modeling?: {
            method: "lookalike"
            | "supervised"
            | "embedding"
            | "rules";
            seed_source: {
                type:
                    | "panel"
                    | "first_party_crm"
                    | "declared_survey"
                    | "transactional"
                    | "behavioral";
                provider_signed: boolean;
            };
            training_data_jurisdictions: string[];
            ai_act_risk_class: "minimal"
            | "limited"
            | "high_risk";
            disclosure?: SignalModelingDisclosure;
        };
        data_subject_rights?: {
            upstream_source_domain?: string;
            channels: {
                rights: (
                    "access"
                    | "rectification"
                    | "erasure"
                    | "portability"
                    | "objection"
                )[];
                url?: string;
                email?: string;
                languages?: string[];
                countries?: string[];
            }[];
            response_sla_days?: number;
            ccpa_opt_out_url?: string;
        };
        last_updated?: string;
        dts_compliant_version?: string;
        signal_ref?: SignalRef;
        signal_id?: SignalID;
        name: string;
        description: string;
        methodology_url?: string;
        value_type?: SignalValueType;
        categories?: string[];
        range?: { min: number; max: number };
        signal_agent_segment_id: string;
        signal_type: SignalAvailabilityType;
        data_provider?: string;
        coverage_percentage?: number;
        coverage_forecast?: SignalCoverageForecast;
        deployments: Deployment[];
        pricing_options?: VendorPricingOption[];
    }

    Original get_signals row. Preserved so helpers never hide seller data.

    Type Declaration

    • Optionalrestricted_attributes?: RestrictedAttribute[]

      Restricted attribute categories this signal touches.

    • Optionalpolicy_categories?: string[]

      Policy categories this signal is sensitive for.

    • Optionaltaxonomy?: {
          ref: string;
          version?: string;
          segtax?: number;
          etag?: string;
          values: { id: string; path?: string; modifiers?: string[] }[];
          value_mappings?: {
              value: string;
              taxonomy_value_id: string;
              path?: string;
              modifiers?: string[];
          }[];
          parent_match_behavior?: "unknown"
          | "exact_only"
          | "descendants_supported";
      }

      Optional taxonomy metadata describing what this signal means in an external audience, content, retail-media, or provider-owned taxonomy.

    • Optionalsegmentation_criteria?: string
    • Optionalcriteria_url?: string
    • Optionaldata_sources?: (
          | "email"
          | "app_behavior"
          | "app_usage"
          | "web_usage"
          | "geo_location"
          | "tv_ott_or_stb_device"
          | "panel"
          | "online_ecommerce"
          | "credit_data"
          | "loyalty_card"
          | "transaction"
          | "online_survey"
          | "offline_survey"
          | "public_record_census"
          | "public_record_voter_file"
          | "public_record_other"
          | "offline_transaction"
      )[]
    • Optionalmethodology?: "modeled" | "observed" | "declared" | "derived" | "inferred"
    • Optionalaudience_expansion?: boolean
    • Optionaldevice_expansion?: boolean
    • Optionalrefresh_cadence?:
          | "daily"
          | "weekly"
          | "monthly"
          | "quarterly"
          | "intra_day"
          | "bi_monthly"
          | "bi_annually"
          | "annually"
    • Optionallookback_window?:
          | "daily"
          | "weekly"
          | "monthly"
          | "quarterly"
          | "intra_day"
          | "bi_monthly"
          | "bi_annually"
          | "annually"
    • Optionalonboarder?: {
          match_keys: (
              | "email"
              | "name"
              | "address"
              | "postal"
              | "lat_long"
              | "mobile_id"
              | "cookie_id"
              | "ip"
              | "customer_id"
              | "phone"
          )[];
          pre_onboarding_audience_expansion?: boolean;
          pre_onboarding_device_expansion?: boolean;
          pre_onboarding_precision_level?: | "individual"
          | "household"
          | "business"
          | "geography";
      }
    • 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?:
          | "explicit_consent"
          | "manifestly_made_public"
          | "substantial_public_interest"
          | "vital_interests"

      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?: {
          method: "lookalike" | "supervised" | "embedding" | "rules";
          seed_source: {
              type:
                  | "panel"
                  | "first_party_crm"
                  | "declared_survey"
                  | "transactional"
                  | "behavioral";
              provider_signed: boolean;
          };
          training_data_jurisdictions: string[];
          ai_act_risk_class: "minimal"
          | "limited"
          | "high_risk";
          disclosure?: SignalModelingDisclosure;
      }
      • method: "lookalike" | "supervised" | "embedding" | "rules"
      • seed_source: {
            type:
                | "panel"
                | "first_party_crm"
                | "declared_survey"
                | "transactional"
                | "behavioral";
            provider_signed: boolean;
        }
        • type: "panel" | "first_party_crm" | "declared_survey" | "transactional" | "behavioral"
        • provider_signed: boolean

          Provider assertion that the seed source carries a signed attestation. Consumers MUST NOT treat this boolean alone as cryptographic proof.

      • training_data_jurisdictions: string[]
      • ai_act_risk_class: "minimal" | "limited" | "high_risk"
      • Optionaldisclosure?: SignalModelingDisclosure
    • Optionaldata_subject_rights?: {
          upstream_source_domain?: string;
          channels: {
              rights: (
                  "access"
                  | "rectification"
                  | "erasure"
                  | "portability"
                  | "objection"
              )[];
              url?: string;
              email?: string;
              languages?: string[];
              countries?: string[];
          }[];
          response_sla_days?: number;
          ccpa_opt_out_url?: string;
      }

      Per-signal data-subject-rights routing. This is a contact/routing reference, not a machine-callable AdCP API.

    • Optionallast_updated?: string

      When 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?: string
    • Optionalsignal_ref?: SignalRef
    • Optionalsignal_id?: SignalID
    • name: string

      Human-readable signal name

    • description: string

      Detailed signal description

    • Optionalmethodology_url?: string

      Optional 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?: SignalValueType
    • Optionalcategories?: 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'.

      • min: number

        Minimum value (inclusive)

      • max: number

        Maximum value (inclusive)

    • signal_agent_segment_id: string

      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.

    • signal_type: SignalAvailabilityType
    • Optionaldata_provider?: string

      Human-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?: number

      DEPRECATED 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).

      0

      100

    • Optionalcoverage_forecast?: SignalCoverageForecast
    • deployments: Deployment[]

      Array 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.

    signalAgentSegmentId: string

    Canonical value to pass as activate_signal.signal_agent_segment_id.

    signalId?: SignalID

    Provenance object returned as signal_id, when the seller provides one.

    signalIdValue?: string

    signal_id.id, when signal_id is present. Not the activation key.

    signalSource?: "agent" | "catalog"

    signal_id.source, when signal_id is present.

    signalIssuer?: string

    data_provider_domain for catalog signals, agent_url for agent-native signals.

    pricingOptionIds: string[]

    pricing_options[].pricing_option_id values in response order.

    restrictedAttributes: string[]

    Governance metadata copied from the signal row when present.

    policyCategories: string[]

    Governance metadata copied from the signal row when present.