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

    Function buildActivateSignalRequest

    • Build an activate_signal request from a discovered signal row. The returned object is suitable for agent.activateSignal(...); the SDK will inject idempotency_key unless the caller supplied one.

      Parameters

      • signal:
            | {
                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[];
            }
            | NormalizedDiscoveredSignal
        • {
              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[];
          }
          • 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.

        • NormalizedDiscoveredSignal
      • options: BuildActivateSignalRequestOptions

      Returns MutatingRequestInput<ActivateSignalRequest>