@adcp/sdk 14.1.0 → 14.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/core/SingleAgentClient.d.mts +4 -1
- package/dist/lib/core/SingleAgentClient.d.ts +4 -1
- package/dist/lib/core/SingleAgentClient.js +25 -4
- package/dist/lib/core/SingleAgentClient.mjs +25 -4
- package/dist/lib/core/TaskExecutor.d.mts +3 -1
- package/dist/lib/core/TaskExecutor.d.ts +3 -1
- package/dist/lib/core/TaskExecutor.js +15 -11
- package/dist/lib/core/TaskExecutor.mjs +15 -11
- package/dist/lib/core/buyer-account-registry.d.mts +30 -2
- package/dist/lib/core/buyer-account-registry.d.ts +30 -2
- package/dist/lib/core/buyer-account-registry.js +126 -42
- package/dist/lib/core/buyer-account-registry.mjs +127 -43
- package/dist/lib/index.d.mts +3 -2
- package/dist/lib/index.d.ts +3 -2
- package/dist/lib/index.js +9 -0
- package/dist/lib/index.mjs +12 -1
- package/dist/lib/net/agent-transport-fetch.d.mts +4 -0
- package/dist/lib/net/agent-transport-fetch.d.ts +4 -0
- package/dist/lib/net/agent-transport-fetch.js +18 -5
- package/dist/lib/net/agent-transport-fetch.mjs +17 -5
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/signing/agent-resolver/errors.d.mts +2 -0
- package/dist/lib/signing/agent-resolver/errors.d.ts +2 -0
- package/dist/lib/signing/agent-resolver/errors.js +6 -0
- package/dist/lib/signing/agent-resolver/errors.mjs +6 -0
- package/dist/lib/signing/agent-resolver/fetch-helpers.d.mts +9 -0
- package/dist/lib/signing/agent-resolver/fetch-helpers.d.ts +9 -0
- package/dist/lib/signing/agent-resolver/fetch-helpers.js +35 -1
- package/dist/lib/signing/agent-resolver/fetch-helpers.mjs +38 -2
- package/dist/lib/signing/agent-resolver/legacy-brand.js +1 -1
- package/dist/lib/signing/agent-resolver/legacy-brand.mjs +2 -2
- package/dist/lib/signing/agent-resolver/resolve-agent.d.mts +1 -1
- package/dist/lib/signing/agent-resolver/resolve-agent.d.ts +1 -1
- package/dist/lib/signing/agent-resolver/resolve-agent.js +47 -5
- package/dist/lib/signing/agent-resolver/resolve-agent.mjs +55 -6
- package/dist/lib/signing/brand-jwks.d.mts +2 -0
- package/dist/lib/signing/brand-jwks.d.ts +2 -0
- package/dist/lib/signing/brand-jwks.js +10 -2
- package/dist/lib/signing/brand-jwks.mjs +10 -2
- package/dist/lib/signing/errors.d.mts +4 -2
- package/dist/lib/signing/errors.d.ts +4 -2
- package/dist/lib/signing/errors.js +3 -1
- package/dist/lib/signing/errors.mjs +3 -1
- package/dist/lib/signing/verifier.js +1 -1
- package/dist/lib/signing/verifier.mjs +1 -1
- package/dist/lib/signing/webhook-verifier.js +2 -2
- package/dist/lib/signing/webhook-verifier.mjs +3 -3
- package/dist/lib/testing/storyboard/validations.d.mts +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +1 -1
- package/dist/lib/types/accept-proposal.d.ts +19 -1
- package/dist/lib/types/buy-products.d.ts +19 -1
- package/dist/lib/types/check-governance.d.ts +19 -1
- package/dist/lib/types/comply-test-controller.d.ts +19 -1
- package/dist/lib/types/control-media-buy.d.ts +19 -1
- package/dist/lib/types/core.generated.d.mts +14 -1
- package/dist/lib/types/core.generated.d.ts +14 -1
- package/dist/lib/types/create-media-buy.d.ts +14 -1
- package/dist/lib/types/get-media-buys.d.ts +14 -1
- package/dist/lib/types/get-products.d.ts +19 -1
- package/dist/lib/types/list-products.d.ts +19 -1
- package/dist/lib/types/refine-proposals.d.ts +19 -1
- package/dist/lib/types/request-proposals.d.ts +19 -1
- package/dist/lib/types/schemas.generated.d.ts +12 -3
- package/dist/lib/types/schemas.generated.js +4 -1
- package/dist/lib/types/schemas.generated.mjs +4 -1
- package/dist/lib/types/tools.generated.d.mts +14 -1
- package/dist/lib/types/tools.generated.d.ts +14 -1
- package/dist/lib/types/update-media-buy.d.ts +14 -1
- package/dist/lib/version.d.mts +3 -3
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/dist/lib/version.mjs +3 -3
- package/dist/lib/webhooks/index.d.mts +24 -0
- package/dist/lib/webhooks/index.d.ts +24 -0
- package/dist/lib/webhooks/index.js +50 -24
- package/dist/lib/webhooks/index.mjs +49 -24
- package/dist/lib/wholesale-feed-sync/index.d.mts +2 -0
- package/dist/lib/wholesale-feed-sync/index.d.ts +2 -0
- package/dist/lib/wholesale-feed-sync/index.js +7 -0
- package/dist/lib/wholesale-feed-sync/index.mjs +4 -0
- package/dist/lib/wholesale-feed-sync/mirror.d.mts +97 -0
- package/dist/lib/wholesale-feed-sync/mirror.d.ts +97 -0
- package/dist/lib/wholesale-feed-sync/mirror.js +350 -0
- package/dist/lib/wholesale-feed-sync/mirror.mjs +322 -0
- package/dist/lib/wholesale-feed-sync/sync.d.mts +12 -29
- package/dist/lib/wholesale-feed-sync/sync.d.ts +12 -29
- package/dist/lib/wholesale-feed-sync/sync.js +153 -297
- package/dist/lib/wholesale-feed-sync/sync.mjs +158 -297
- package/docs/README.md +6 -0
- package/docs/TYPE-SUMMARY.md +2 -2
- package/docs/guides/BUYER-STORAGE.md +3 -0
- package/docs/guides/FIRST-CALL-TO-A-SELLER.md +3 -1
- package/docs/guides/account-resolution.md +46 -10
- package/docs/llms.txt +2 -2
- package/docs/migration-14.0-to-14.1.md +85 -0
- package/docs/migration-14.x-rc-worksheet.md +4 -4
- package/docs/migration-agent-resolution-3.3.md +5 -3
- package/docs/recipes/verifying-inbound-webhooks.md +4 -0
- package/package.json +2 -1
- package/skills/adcp-brand.previous/SKILL.md +0 -200
- package/skills/adcp-creative.previous/SKILL.md +0 -305
- package/skills/adcp-governance.previous/SKILL.md +0 -566
- package/skills/adcp-measurement.previous/SKILL.md +0 -136
- package/skills/adcp-media-buy.previous/SKILL.md +0 -556
- package/skills/adcp-si.previous/SKILL.md +0 -206
- package/skills/adcp-signals.previous/SKILL.md +0 -204
|
@@ -129,6 +129,11 @@ export type ActivationKey = {
|
|
|
129
129
|
value: string;
|
|
130
130
|
};
|
|
131
131
|
|
|
132
|
+
/**
|
|
133
|
+
* User-level bases that may resolve age for demographic targeting execution. Population estimates are deliberately absent because aggregate composition cannot establish an individual impression's age.
|
|
134
|
+
*/
|
|
135
|
+
export type AgeDeterminationBasis = 'verified' | 'declared' | 'inferred';
|
|
136
|
+
|
|
132
137
|
/**
|
|
133
138
|
* Age restriction for compliance. Use for legal requirements (alcohol, gambling), not audience targeting.
|
|
134
139
|
*/
|
|
@@ -583,7 +588,20 @@ export type DemographicAgeRange = {} & {
|
|
|
583
588
|
* Canonical demographic audience targeting intent with optional constraints on how age may be determined. This is distinct from age_restriction: demographics selects an audience, while age_restriction expresses a legal eligibility or verification floor. Fresh create/update targeting MUST compile exactly or be rejected. During get_products, a seller may offer a different configured predicate only through sparse targeting_resolution modifications on a distinguishable product_id; selecting that product accepts the alternative. Sellers never silently broaden, narrow, default, drop, or substitute the basis.
|
|
584
589
|
*/
|
|
585
590
|
export interface DemographicTargetingIntent {
|
|
586
|
-
age: DemographicAgeRange & {
|
|
591
|
+
age: DemographicAgeRange & {
|
|
592
|
+
/**
|
|
593
|
+
* User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.
|
|
594
|
+
*
|
|
595
|
+
* @minItems 1
|
|
596
|
+
*/
|
|
597
|
+
accepted_bases?: [AgeDeterminationBasis, ...AgeDeterminationBasis[]];
|
|
598
|
+
/**
|
|
599
|
+
* Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.
|
|
600
|
+
*
|
|
601
|
+
* @minItems 1
|
|
602
|
+
*/
|
|
603
|
+
accepted_verification_methods?: [AgeVerificationMethod, ...AgeVerificationMethod[]];
|
|
604
|
+
};
|
|
587
605
|
}
|
|
588
606
|
|
|
589
607
|
/**
|
|
@@ -6388,7 +6388,20 @@ export interface PackageSignalTargetingGroup {
|
|
|
6388
6388
|
* Canonical demographic audience targeting intent with optional constraints on how age may be determined. This is distinct from age_restriction: demographics selects an audience, while age_restriction expresses a legal eligibility or verification floor. Fresh create/update targeting MUST compile exactly or be rejected. During get_products, a seller may offer a different configured predicate only through sparse targeting_resolution modifications on a distinguishable product_id; selecting that product accepts the alternative. Sellers never silently broaden, narrow, default, drop, or substitute the basis.
|
|
6389
6389
|
*/
|
|
6390
6390
|
export interface DemographicTargetingIntent {
|
|
6391
|
-
age: DemographicAgeRange & {
|
|
6391
|
+
age: DemographicAgeRange & {
|
|
6392
|
+
/**
|
|
6393
|
+
* User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.
|
|
6394
|
+
*
|
|
6395
|
+
* @minItems 1
|
|
6396
|
+
*/
|
|
6397
|
+
accepted_bases?: [AgeDeterminationBasis, ...AgeDeterminationBasis[]];
|
|
6398
|
+
/**
|
|
6399
|
+
* Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.
|
|
6400
|
+
*
|
|
6401
|
+
* @minItems 1
|
|
6402
|
+
*/
|
|
6403
|
+
accepted_verification_methods?: [AgeVerificationMethod, ...AgeVerificationMethod[]];
|
|
6404
|
+
};
|
|
6392
6405
|
}
|
|
6393
6406
|
/**
|
|
6394
6407
|
* Reference to a property list for targeting specific properties within this product. The package runs on the intersection of the product's publisher_properties and this list. Sellers SHOULD return a validation error if the product has property_targeting_allowed: false.
|
|
@@ -6388,7 +6388,20 @@ export interface PackageSignalTargetingGroup {
|
|
|
6388
6388
|
* Canonical demographic audience targeting intent with optional constraints on how age may be determined. This is distinct from age_restriction: demographics selects an audience, while age_restriction expresses a legal eligibility or verification floor. Fresh create/update targeting MUST compile exactly or be rejected. During get_products, a seller may offer a different configured predicate only through sparse targeting_resolution modifications on a distinguishable product_id; selecting that product accepts the alternative. Sellers never silently broaden, narrow, default, drop, or substitute the basis.
|
|
6389
6389
|
*/
|
|
6390
6390
|
export interface DemographicTargetingIntent {
|
|
6391
|
-
age: DemographicAgeRange & {
|
|
6391
|
+
age: DemographicAgeRange & {
|
|
6392
|
+
/**
|
|
6393
|
+
* User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.
|
|
6394
|
+
*
|
|
6395
|
+
* @minItems 1
|
|
6396
|
+
*/
|
|
6397
|
+
accepted_bases?: [AgeDeterminationBasis, ...AgeDeterminationBasis[]];
|
|
6398
|
+
/**
|
|
6399
|
+
* Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.
|
|
6400
|
+
*
|
|
6401
|
+
* @minItems 1
|
|
6402
|
+
*/
|
|
6403
|
+
accepted_verification_methods?: [AgeVerificationMethod, ...AgeVerificationMethod[]];
|
|
6404
|
+
};
|
|
6392
6405
|
}
|
|
6393
6406
|
/**
|
|
6394
6407
|
* Reference to a property list for targeting specific properties within this product. The package runs on the intersection of the product's publisher_properties and this list. Sellers SHOULD return a validation error if the product has property_targeting_allowed: false.
|
|
@@ -5771,7 +5771,20 @@ export interface DemographicPredicate {
|
|
|
5771
5771
|
* Canonical demographic audience targeting intent with optional constraints on how age may be determined. This is distinct from age_restriction: demographics selects an audience, while age_restriction expresses a legal eligibility or verification floor. Fresh create/update targeting MUST compile exactly or be rejected. During get_products, a seller may offer a different configured predicate only through sparse targeting_resolution modifications on a distinguishable product_id; selecting that product accepts the alternative. Sellers never silently broaden, narrow, default, drop, or substitute the basis.
|
|
5772
5772
|
*/
|
|
5773
5773
|
export interface DemographicTargetingIntent {
|
|
5774
|
-
age: DemographicAgeRange & {
|
|
5774
|
+
age: DemographicAgeRange & {
|
|
5775
|
+
/**
|
|
5776
|
+
* User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.
|
|
5777
|
+
*
|
|
5778
|
+
* @minItems 1
|
|
5779
|
+
*/
|
|
5780
|
+
accepted_bases?: [AgeDeterminationBasis, ...AgeDeterminationBasis[]];
|
|
5781
|
+
/**
|
|
5782
|
+
* Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.
|
|
5783
|
+
*
|
|
5784
|
+
* @minItems 1
|
|
5785
|
+
*/
|
|
5786
|
+
accepted_verification_methods?: [AgeVerificationMethod, ...AgeVerificationMethod[]];
|
|
5787
|
+
};
|
|
5775
5788
|
}
|
|
5776
5789
|
|
|
5777
5790
|
/**
|
|
@@ -4598,7 +4598,20 @@ export type DemographicSystem = 'nielsen' | 'nielsen_audio' | 'barb' | 'agf' | '
|
|
|
4598
4598
|
* Canonical demographic audience targeting intent with optional constraints on how age may be determined. This is distinct from age_restriction: demographics selects an audience, while age_restriction expresses a legal eligibility or verification floor. Fresh create/update targeting MUST compile exactly or be rejected. During get_products, a seller may offer a different configured predicate only through sparse targeting_resolution modifications on a distinguishable product_id; selecting that product accepts the alternative. Sellers never silently broaden, narrow, default, drop, or substitute the basis.
|
|
4599
4599
|
*/
|
|
4600
4600
|
export interface DemographicTargetingIntent {
|
|
4601
|
-
age: DemographicAgeRange & {
|
|
4601
|
+
age: DemographicAgeRange & {
|
|
4602
|
+
/**
|
|
4603
|
+
* User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.
|
|
4604
|
+
*
|
|
4605
|
+
* @minItems 1
|
|
4606
|
+
*/
|
|
4607
|
+
accepted_bases?: [AgeDeterminationBasis, ...AgeDeterminationBasis[]];
|
|
4608
|
+
/**
|
|
4609
|
+
* Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.
|
|
4610
|
+
*
|
|
4611
|
+
* @minItems 1
|
|
4612
|
+
*/
|
|
4613
|
+
accepted_verification_methods?: [AgeVerificationMethod, ...AgeVerificationMethod[]];
|
|
4614
|
+
};
|
|
4602
4615
|
}
|
|
4603
4616
|
|
|
4604
4617
|
/**
|
|
@@ -519,6 +519,11 @@ export interface AdInventoryConfiguration {
|
|
|
519
519
|
*/
|
|
520
520
|
export type AdvertiserIndustry = 'automotive' | 'automotive.electric_vehicles' | 'automotive.parts_accessories' | 'automotive.luxury' | 'beauty_cosmetics' | 'beauty_cosmetics.skincare' | 'beauty_cosmetics.fragrance' | 'beauty_cosmetics.haircare' | 'cannabis' | 'cpg' | 'cpg.personal_care' | 'cpg.household' | 'dating' | 'education' | 'education.higher_education' | 'education.online_learning' | 'education.k12' | 'energy_utilities' | 'energy_utilities.renewable' | 'fashion_apparel' | 'fashion_apparel.luxury' | 'fashion_apparel.sportswear' | 'finance' | 'finance.banking' | 'finance.insurance' | 'finance.investment' | 'finance.cryptocurrency' | 'food_beverage' | 'food_beverage.alcohol' | 'food_beverage.restaurants' | 'food_beverage.packaged_goods' | 'gambling_betting' | 'gambling_betting.sports_betting' | 'gambling_betting.casino' | 'gaming' | 'gaming.mobile' | 'gaming.console_pc' | 'gaming.esports' | 'government_nonprofit' | 'government_nonprofit.political' | 'government_nonprofit.charity' | 'healthcare' | 'healthcare.pharmaceutical' | 'healthcare.medical_devices' | 'healthcare.wellness' | 'home_garden' | 'home_garden.furniture' | 'home_garden.home_improvement' | 'media_entertainment' | 'media_entertainment.podcasts' | 'media_entertainment.music' | 'media_entertainment.film_tv' | 'media_entertainment.publishing' | 'media_entertainment.live_events' | 'pets' | 'professional_services' | 'professional_services.legal' | 'professional_services.consulting' | 'real_estate' | 'real_estate.residential' | 'real_estate.commercial' | 'recruitment_hr' | 'retail' | 'retail.ecommerce' | 'retail.department_stores' | 'sports_fitness' | 'sports_fitness.equipment' | 'sports_fitness.teams_leagues' | 'technology' | 'technology.software' | 'technology.hardware' | 'technology.ai_ml' | 'telecom' | 'telecom.mobile_carriers' | 'telecom.internet_providers' | 'transportation_logistics' | 'travel_hospitality' | 'travel_hospitality.airlines' | 'travel_hospitality.hotels' | 'travel_hospitality.cruise' | 'travel_hospitality.tourism';
|
|
521
521
|
|
|
522
|
+
/**
|
|
523
|
+
* User-level bases that may resolve age for demographic targeting execution. Population estimates are deliberately absent because aggregate composition cannot establish an individual impression's age.
|
|
524
|
+
*/
|
|
525
|
+
export type AgeDeterminationBasis = 'verified' | 'declared' | 'inferred';
|
|
526
|
+
|
|
522
527
|
/**
|
|
523
528
|
* Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.
|
|
524
529
|
*/
|
|
@@ -5662,7 +5667,20 @@ export interface DemographicTargetingCapability {
|
|
|
5662
5667
|
* Canonical demographic audience targeting intent with optional constraints on how age may be determined. This is distinct from age_restriction: demographics selects an audience, while age_restriction expresses a legal eligibility or verification floor. Fresh create/update targeting MUST compile exactly or be rejected. During get_products, a seller may offer a different configured predicate only through sparse targeting_resolution modifications on a distinguishable product_id; selecting that product accepts the alternative. Sellers never silently broaden, narrow, default, drop, or substitute the basis.
|
|
5663
5668
|
*/
|
|
5664
5669
|
export interface DemographicTargetingIntent {
|
|
5665
|
-
age: DemographicAgeRange & {
|
|
5670
|
+
age: DemographicAgeRange & {
|
|
5671
|
+
/**
|
|
5672
|
+
* User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.
|
|
5673
|
+
*
|
|
5674
|
+
* @minItems 1
|
|
5675
|
+
*/
|
|
5676
|
+
accepted_bases?: [AgeDeterminationBasis, ...AgeDeterminationBasis[]];
|
|
5677
|
+
/**
|
|
5678
|
+
* Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.
|
|
5679
|
+
*
|
|
5680
|
+
* @minItems 1
|
|
5681
|
+
*/
|
|
5682
|
+
accepted_verification_methods?: [AgeVerificationMethod, ...AgeVerificationMethod[]];
|
|
5683
|
+
};
|
|
5666
5684
|
}
|
|
5667
5685
|
|
|
5668
5686
|
/**
|
|
@@ -258,6 +258,11 @@ export type ActivationKey = {
|
|
|
258
258
|
*/
|
|
259
259
|
export type AdvertiserIndustry = 'automotive' | 'automotive.electric_vehicles' | 'automotive.parts_accessories' | 'automotive.luxury' | 'beauty_cosmetics' | 'beauty_cosmetics.skincare' | 'beauty_cosmetics.fragrance' | 'beauty_cosmetics.haircare' | 'cannabis' | 'cpg' | 'cpg.personal_care' | 'cpg.household' | 'dating' | 'education' | 'education.higher_education' | 'education.online_learning' | 'education.k12' | 'energy_utilities' | 'energy_utilities.renewable' | 'fashion_apparel' | 'fashion_apparel.luxury' | 'fashion_apparel.sportswear' | 'finance' | 'finance.banking' | 'finance.insurance' | 'finance.investment' | 'finance.cryptocurrency' | 'food_beverage' | 'food_beverage.alcohol' | 'food_beverage.restaurants' | 'food_beverage.packaged_goods' | 'gambling_betting' | 'gambling_betting.sports_betting' | 'gambling_betting.casino' | 'gaming' | 'gaming.mobile' | 'gaming.console_pc' | 'gaming.esports' | 'government_nonprofit' | 'government_nonprofit.political' | 'government_nonprofit.charity' | 'healthcare' | 'healthcare.pharmaceutical' | 'healthcare.medical_devices' | 'healthcare.wellness' | 'home_garden' | 'home_garden.furniture' | 'home_garden.home_improvement' | 'media_entertainment' | 'media_entertainment.podcasts' | 'media_entertainment.music' | 'media_entertainment.film_tv' | 'media_entertainment.publishing' | 'media_entertainment.live_events' | 'pets' | 'professional_services' | 'professional_services.legal' | 'professional_services.consulting' | 'real_estate' | 'real_estate.residential' | 'real_estate.commercial' | 'recruitment_hr' | 'retail' | 'retail.ecommerce' | 'retail.department_stores' | 'sports_fitness' | 'sports_fitness.equipment' | 'sports_fitness.teams_leagues' | 'technology' | 'technology.software' | 'technology.hardware' | 'technology.ai_ml' | 'telecom' | 'telecom.mobile_carriers' | 'telecom.internet_providers' | 'transportation_logistics' | 'travel_hospitality' | 'travel_hospitality.airlines' | 'travel_hospitality.hotels' | 'travel_hospitality.cruise' | 'travel_hospitality.tourism';
|
|
260
260
|
|
|
261
|
+
/**
|
|
262
|
+
* User-level bases that may resolve age for demographic targeting execution. Population estimates are deliberately absent because aggregate composition cannot establish an individual impression's age.
|
|
263
|
+
*/
|
|
264
|
+
export type AgeDeterminationBasis = 'verified' | 'declared' | 'inferred';
|
|
265
|
+
|
|
261
266
|
/**
|
|
262
267
|
* Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.
|
|
263
268
|
*/
|
|
@@ -1379,7 +1384,20 @@ export interface DemographicTargetingCapability {
|
|
|
1379
1384
|
* Canonical demographic audience targeting intent with optional constraints on how age may be determined. This is distinct from age_restriction: demographics selects an audience, while age_restriction expresses a legal eligibility or verification floor. Fresh create/update targeting MUST compile exactly or be rejected. During get_products, a seller may offer a different configured predicate only through sparse targeting_resolution modifications on a distinguishable product_id; selecting that product accepts the alternative. Sellers never silently broaden, narrow, default, drop, or substitute the basis.
|
|
1380
1385
|
*/
|
|
1381
1386
|
export interface DemographicTargetingIntent {
|
|
1382
|
-
age: DemographicAgeRange & {
|
|
1387
|
+
age: DemographicAgeRange & {
|
|
1388
|
+
/**
|
|
1389
|
+
* User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.
|
|
1390
|
+
*
|
|
1391
|
+
* @minItems 1
|
|
1392
|
+
*/
|
|
1393
|
+
accepted_bases?: [AgeDeterminationBasis, ...AgeDeterminationBasis[]];
|
|
1394
|
+
/**
|
|
1395
|
+
* Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.
|
|
1396
|
+
*
|
|
1397
|
+
* @minItems 1
|
|
1398
|
+
*/
|
|
1399
|
+
accepted_verification_methods?: [AgeVerificationMethod, ...AgeVerificationMethod[]];
|
|
1400
|
+
};
|
|
1383
1401
|
}
|
|
1384
1402
|
|
|
1385
1403
|
/**
|
|
@@ -408,6 +408,11 @@ export type ActivationKey = {
|
|
|
408
408
|
*/
|
|
409
409
|
export type AdvertiserIndustry = 'automotive' | 'automotive.electric_vehicles' | 'automotive.parts_accessories' | 'automotive.luxury' | 'beauty_cosmetics' | 'beauty_cosmetics.skincare' | 'beauty_cosmetics.fragrance' | 'beauty_cosmetics.haircare' | 'cannabis' | 'cpg' | 'cpg.personal_care' | 'cpg.household' | 'dating' | 'education' | 'education.higher_education' | 'education.online_learning' | 'education.k12' | 'energy_utilities' | 'energy_utilities.renewable' | 'fashion_apparel' | 'fashion_apparel.luxury' | 'fashion_apparel.sportswear' | 'finance' | 'finance.banking' | 'finance.insurance' | 'finance.investment' | 'finance.cryptocurrency' | 'food_beverage' | 'food_beverage.alcohol' | 'food_beverage.restaurants' | 'food_beverage.packaged_goods' | 'gambling_betting' | 'gambling_betting.sports_betting' | 'gambling_betting.casino' | 'gaming' | 'gaming.mobile' | 'gaming.console_pc' | 'gaming.esports' | 'government_nonprofit' | 'government_nonprofit.political' | 'government_nonprofit.charity' | 'healthcare' | 'healthcare.pharmaceutical' | 'healthcare.medical_devices' | 'healthcare.wellness' | 'home_garden' | 'home_garden.furniture' | 'home_garden.home_improvement' | 'media_entertainment' | 'media_entertainment.podcasts' | 'media_entertainment.music' | 'media_entertainment.film_tv' | 'media_entertainment.publishing' | 'media_entertainment.live_events' | 'pets' | 'professional_services' | 'professional_services.legal' | 'professional_services.consulting' | 'real_estate' | 'real_estate.residential' | 'real_estate.commercial' | 'recruitment_hr' | 'retail' | 'retail.ecommerce' | 'retail.department_stores' | 'sports_fitness' | 'sports_fitness.equipment' | 'sports_fitness.teams_leagues' | 'technology' | 'technology.software' | 'technology.hardware' | 'technology.ai_ml' | 'telecom' | 'telecom.mobile_carriers' | 'telecom.internet_providers' | 'transportation_logistics' | 'travel_hospitality' | 'travel_hospitality.airlines' | 'travel_hospitality.hotels' | 'travel_hospitality.cruise' | 'travel_hospitality.tourism';
|
|
410
410
|
|
|
411
|
+
/**
|
|
412
|
+
* User-level bases that may resolve age for demographic targeting execution. Population estimates are deliberately absent because aggregate composition cannot establish an individual impression's age.
|
|
413
|
+
*/
|
|
414
|
+
export type AgeDeterminationBasis = 'verified' | 'declared' | 'inferred';
|
|
415
|
+
|
|
411
416
|
/**
|
|
412
417
|
* Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.
|
|
413
418
|
*/
|
|
@@ -1987,7 +1992,20 @@ export interface DemographicTargetingCapability {
|
|
|
1987
1992
|
* Canonical demographic audience targeting intent with optional constraints on how age may be determined. This is distinct from age_restriction: demographics selects an audience, while age_restriction expresses a legal eligibility or verification floor. Fresh create/update targeting MUST compile exactly or be rejected. During get_products, a seller may offer a different configured predicate only through sparse targeting_resolution modifications on a distinguishable product_id; selecting that product accepts the alternative. Sellers never silently broaden, narrow, default, drop, or substitute the basis.
|
|
1988
1993
|
*/
|
|
1989
1994
|
export interface DemographicTargetingIntent {
|
|
1990
|
-
age: DemographicAgeRange & {
|
|
1995
|
+
age: DemographicAgeRange & {
|
|
1996
|
+
/**
|
|
1997
|
+
* User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.
|
|
1998
|
+
*
|
|
1999
|
+
* @minItems 1
|
|
2000
|
+
*/
|
|
2001
|
+
accepted_bases?: [AgeDeterminationBasis, ...AgeDeterminationBasis[]];
|
|
2002
|
+
/**
|
|
2003
|
+
* Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.
|
|
2004
|
+
*
|
|
2005
|
+
* @minItems 1
|
|
2006
|
+
*/
|
|
2007
|
+
accepted_verification_methods?: [AgeVerificationMethod, ...AgeVerificationMethod[]];
|
|
2008
|
+
};
|
|
1991
2009
|
}
|
|
1992
2010
|
|
|
1993
2011
|
/**
|
|
@@ -476,6 +476,11 @@ export type ActivationKey = {
|
|
|
476
476
|
*/
|
|
477
477
|
export type AdvertiserIndustry = 'automotive' | 'automotive.electric_vehicles' | 'automotive.parts_accessories' | 'automotive.luxury' | 'beauty_cosmetics' | 'beauty_cosmetics.skincare' | 'beauty_cosmetics.fragrance' | 'beauty_cosmetics.haircare' | 'cannabis' | 'cpg' | 'cpg.personal_care' | 'cpg.household' | 'dating' | 'education' | 'education.higher_education' | 'education.online_learning' | 'education.k12' | 'energy_utilities' | 'energy_utilities.renewable' | 'fashion_apparel' | 'fashion_apparel.luxury' | 'fashion_apparel.sportswear' | 'finance' | 'finance.banking' | 'finance.insurance' | 'finance.investment' | 'finance.cryptocurrency' | 'food_beverage' | 'food_beverage.alcohol' | 'food_beverage.restaurants' | 'food_beverage.packaged_goods' | 'gambling_betting' | 'gambling_betting.sports_betting' | 'gambling_betting.casino' | 'gaming' | 'gaming.mobile' | 'gaming.console_pc' | 'gaming.esports' | 'government_nonprofit' | 'government_nonprofit.political' | 'government_nonprofit.charity' | 'healthcare' | 'healthcare.pharmaceutical' | 'healthcare.medical_devices' | 'healthcare.wellness' | 'home_garden' | 'home_garden.furniture' | 'home_garden.home_improvement' | 'media_entertainment' | 'media_entertainment.podcasts' | 'media_entertainment.music' | 'media_entertainment.film_tv' | 'media_entertainment.publishing' | 'media_entertainment.live_events' | 'pets' | 'professional_services' | 'professional_services.legal' | 'professional_services.consulting' | 'real_estate' | 'real_estate.residential' | 'real_estate.commercial' | 'recruitment_hr' | 'retail' | 'retail.ecommerce' | 'retail.department_stores' | 'sports_fitness' | 'sports_fitness.equipment' | 'sports_fitness.teams_leagues' | 'technology' | 'technology.software' | 'technology.hardware' | 'technology.ai_ml' | 'telecom' | 'telecom.mobile_carriers' | 'telecom.internet_providers' | 'transportation_logistics' | 'travel_hospitality' | 'travel_hospitality.airlines' | 'travel_hospitality.hotels' | 'travel_hospitality.cruise' | 'travel_hospitality.tourism';
|
|
478
478
|
|
|
479
|
+
/**
|
|
480
|
+
* User-level bases that may resolve age for demographic targeting execution. Population estimates are deliberately absent because aggregate composition cannot establish an individual impression's age.
|
|
481
|
+
*/
|
|
482
|
+
export type AgeDeterminationBasis = 'verified' | 'declared' | 'inferred';
|
|
483
|
+
|
|
479
484
|
/**
|
|
480
485
|
* Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.
|
|
481
486
|
*/
|
|
@@ -2075,7 +2080,20 @@ export interface DemographicTargetingCapability {
|
|
|
2075
2080
|
* Canonical demographic audience targeting intent with optional constraints on how age may be determined. This is distinct from age_restriction: demographics selects an audience, while age_restriction expresses a legal eligibility or verification floor. Fresh create/update targeting MUST compile exactly or be rejected. During get_products, a seller may offer a different configured predicate only through sparse targeting_resolution modifications on a distinguishable product_id; selecting that product accepts the alternative. Sellers never silently broaden, narrow, default, drop, or substitute the basis.
|
|
2076
2081
|
*/
|
|
2077
2082
|
export interface DemographicTargetingIntent {
|
|
2078
|
-
age: DemographicAgeRange & {
|
|
2083
|
+
age: DemographicAgeRange & {
|
|
2084
|
+
/**
|
|
2085
|
+
* User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.
|
|
2086
|
+
*
|
|
2087
|
+
* @minItems 1
|
|
2088
|
+
*/
|
|
2089
|
+
accepted_bases?: [AgeDeterminationBasis, ...AgeDeterminationBasis[]];
|
|
2090
|
+
/**
|
|
2091
|
+
* Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.
|
|
2092
|
+
*
|
|
2093
|
+
* @minItems 1
|
|
2094
|
+
*/
|
|
2095
|
+
accepted_verification_methods?: [AgeVerificationMethod, ...AgeVerificationMethod[]];
|
|
2096
|
+
};
|
|
2079
2097
|
}
|
|
2080
2098
|
|
|
2081
2099
|
/**
|
|
@@ -1825,7 +1825,10 @@ export declare const DemographicTargetingIntentSchema: z.ZodObject<{
|
|
|
1825
1825
|
min: z.ZodOptional<z.ZodNumber>;
|
|
1826
1826
|
max: z.ZodOptional<z.ZodNumber>;
|
|
1827
1827
|
include_unknown: z.ZodBoolean;
|
|
1828
|
-
}, z.core.$loose>, z.ZodObject<{
|
|
1828
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
1829
|
+
accepted_bases: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"verified">, z.ZodLiteral<"declared">, z.ZodLiteral<"inferred">]>>>;
|
|
1830
|
+
accepted_verification_methods: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"facial_age_estimation">, z.ZodLiteral<"id_document">, z.ZodLiteral<"digital_id">, z.ZodLiteral<"credit_card">, z.ZodLiteral<"world_id">]>>>;
|
|
1831
|
+
}, z.core.$loose>>;
|
|
1829
1832
|
}, z.core.$loose>;
|
|
1830
1833
|
export declare const SellerAgentReferenceSchema: z.ZodObject<{
|
|
1831
1834
|
agent_url: z.ZodString;
|
|
@@ -5126,7 +5129,10 @@ export declare const DemographicTargetingResolutionSchema: z.ZodObject<{
|
|
|
5126
5129
|
min: z.ZodOptional<z.ZodNumber>;
|
|
5127
5130
|
max: z.ZodOptional<z.ZodNumber>;
|
|
5128
5131
|
include_unknown: z.ZodBoolean;
|
|
5129
|
-
}, z.core.$loose>, z.ZodObject<{
|
|
5132
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
5133
|
+
accepted_bases: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"verified">, z.ZodLiteral<"declared">, z.ZodLiteral<"inferred">]>>>;
|
|
5134
|
+
accepted_verification_methods: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"facial_age_estimation">, z.ZodLiteral<"id_document">, z.ZodLiteral<"digital_id">, z.ZodLiteral<"credit_card">, z.ZodLiteral<"world_id">]>>>;
|
|
5135
|
+
}, z.core.$loose>>;
|
|
5130
5136
|
}, z.core.$loose>;
|
|
5131
5137
|
applied: z.ZodObject<{
|
|
5132
5138
|
age: z.ZodObject<{
|
|
@@ -22439,7 +22445,10 @@ export declare const PackageTargetingResolutionSchema: z.ZodObject<{
|
|
|
22439
22445
|
min: z.ZodOptional<z.ZodNumber>;
|
|
22440
22446
|
max: z.ZodOptional<z.ZodNumber>;
|
|
22441
22447
|
include_unknown: z.ZodBoolean;
|
|
22442
|
-
}, z.core.$loose>, z.ZodObject<{
|
|
22448
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
22449
|
+
accepted_bases: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"verified">, z.ZodLiteral<"declared">, z.ZodLiteral<"inferred">]>>>;
|
|
22450
|
+
accepted_verification_methods: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"facial_age_estimation">, z.ZodLiteral<"id_document">, z.ZodLiteral<"digital_id">, z.ZodLiteral<"credit_card">, z.ZodLiteral<"world_id">]>>>;
|
|
22451
|
+
}, z.core.$loose>>;
|
|
22443
22452
|
}, z.core.$loose>;
|
|
22444
22453
|
applied: z.ZodObject<{
|
|
22445
22454
|
age: z.ZodObject<{
|
|
@@ -2933,7 +2933,10 @@ const PackageSignalTargetingSchema = SignalTargetingExpressionSchema.and(import_
|
|
|
2933
2933
|
activation_key: ActivationKeySchema.optional()
|
|
2934
2934
|
}).passthrough());
|
|
2935
2935
|
const DemographicTargetingIntentSchema = import_zod.z.object({
|
|
2936
|
-
age: DemographicAgeRangeSchema.and(import_zod.z.object({
|
|
2936
|
+
age: DemographicAgeRangeSchema.and(import_zod.z.object({
|
|
2937
|
+
accepted_bases: import_zod.z.array(AgeDeterminationBasisSchema).optional(),
|
|
2938
|
+
accepted_verification_methods: import_zod.z.array(AgeVerificationMethodSchema).optional()
|
|
2939
|
+
}).passthrough())
|
|
2937
2940
|
}).passthrough();
|
|
2938
2941
|
const SellerAgentReferenceSchema = import_zod.z.object({
|
|
2939
2942
|
agent_url: import_zod.z.string().refine(adcpJsonSchemaUri, "Invalid URI"),
|
|
@@ -1416,7 +1416,10 @@ const PackageSignalTargetingSchema = SignalTargetingExpressionSchema.and(z.objec
|
|
|
1416
1416
|
activation_key: ActivationKeySchema.optional()
|
|
1417
1417
|
}).passthrough());
|
|
1418
1418
|
const DemographicTargetingIntentSchema = z.object({
|
|
1419
|
-
age: DemographicAgeRangeSchema.and(z.object({
|
|
1419
|
+
age: DemographicAgeRangeSchema.and(z.object({
|
|
1420
|
+
accepted_bases: z.array(AgeDeterminationBasisSchema).optional(),
|
|
1421
|
+
accepted_verification_methods: z.array(AgeVerificationMethodSchema).optional()
|
|
1422
|
+
}).passthrough())
|
|
1420
1423
|
}).passthrough();
|
|
1421
1424
|
const SellerAgentReferenceSchema = z.object({
|
|
1422
1425
|
agent_url: z.string().refine(adcpJsonSchemaUri, "Invalid URI"),
|
|
@@ -1617,7 +1617,20 @@ export interface PackageSignalTargetingGroup {
|
|
|
1617
1617
|
* Canonical demographic audience targeting intent with optional constraints on how age may be determined. This is distinct from age_restriction: demographics selects an audience, while age_restriction expresses a legal eligibility or verification floor. Fresh create/update targeting MUST compile exactly or be rejected. During get_products, a seller may offer a different configured predicate only through sparse targeting_resolution modifications on a distinguishable product_id; selecting that product accepts the alternative. Sellers never silently broaden, narrow, default, drop, or substitute the basis.
|
|
1618
1618
|
*/
|
|
1619
1619
|
export interface DemographicTargetingIntent {
|
|
1620
|
-
age: DemographicAgeRange & {
|
|
1620
|
+
age: DemographicAgeRange & {
|
|
1621
|
+
/**
|
|
1622
|
+
* User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.
|
|
1623
|
+
*
|
|
1624
|
+
* @minItems 1
|
|
1625
|
+
*/
|
|
1626
|
+
accepted_bases?: [AgeDeterminationBasis, ...AgeDeterminationBasis[]];
|
|
1627
|
+
/**
|
|
1628
|
+
* Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.
|
|
1629
|
+
*
|
|
1630
|
+
* @minItems 1
|
|
1631
|
+
*/
|
|
1632
|
+
accepted_verification_methods?: [AgeVerificationMethod, ...AgeVerificationMethod[]];
|
|
1633
|
+
};
|
|
1621
1634
|
}
|
|
1622
1635
|
/**
|
|
1623
1636
|
* Reference to a property list for targeting specific properties within this product. The package runs on the intersection of the product's publisher_properties and this list. Sellers SHOULD return a validation error if the product has property_targeting_allowed: false.
|
|
@@ -1617,7 +1617,20 @@ export interface PackageSignalTargetingGroup {
|
|
|
1617
1617
|
* Canonical demographic audience targeting intent with optional constraints on how age may be determined. This is distinct from age_restriction: demographics selects an audience, while age_restriction expresses a legal eligibility or verification floor. Fresh create/update targeting MUST compile exactly or be rejected. During get_products, a seller may offer a different configured predicate only through sparse targeting_resolution modifications on a distinguishable product_id; selecting that product accepts the alternative. Sellers never silently broaden, narrow, default, drop, or substitute the basis.
|
|
1618
1618
|
*/
|
|
1619
1619
|
export interface DemographicTargetingIntent {
|
|
1620
|
-
age: DemographicAgeRange & {
|
|
1620
|
+
age: DemographicAgeRange & {
|
|
1621
|
+
/**
|
|
1622
|
+
* User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.
|
|
1623
|
+
*
|
|
1624
|
+
* @minItems 1
|
|
1625
|
+
*/
|
|
1626
|
+
accepted_bases?: [AgeDeterminationBasis, ...AgeDeterminationBasis[]];
|
|
1627
|
+
/**
|
|
1628
|
+
* Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.
|
|
1629
|
+
*
|
|
1630
|
+
* @minItems 1
|
|
1631
|
+
*/
|
|
1632
|
+
accepted_verification_methods?: [AgeVerificationMethod, ...AgeVerificationMethod[]];
|
|
1633
|
+
};
|
|
1621
1634
|
}
|
|
1622
1635
|
/**
|
|
1623
1636
|
* Reference to a property list for targeting specific properties within this product. The package runs on the intersection of the product's publisher_properties and this list. Sellers SHOULD return a validation error if the product has property_targeting_allowed: false.
|
|
@@ -5449,7 +5449,20 @@ export interface DemographicPredicate {
|
|
|
5449
5449
|
* Canonical demographic audience targeting intent with optional constraints on how age may be determined. This is distinct from age_restriction: demographics selects an audience, while age_restriction expresses a legal eligibility or verification floor. Fresh create/update targeting MUST compile exactly or be rejected. During get_products, a seller may offer a different configured predicate only through sparse targeting_resolution modifications on a distinguishable product_id; selecting that product accepts the alternative. Sellers never silently broaden, narrow, default, drop, or substitute the basis.
|
|
5450
5450
|
*/
|
|
5451
5451
|
export interface DemographicTargetingIntent {
|
|
5452
|
-
age: DemographicAgeRange & {
|
|
5452
|
+
age: DemographicAgeRange & {
|
|
5453
|
+
/**
|
|
5454
|
+
* User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.
|
|
5455
|
+
*
|
|
5456
|
+
* @minItems 1
|
|
5457
|
+
*/
|
|
5458
|
+
accepted_bases?: [AgeDeterminationBasis, ...AgeDeterminationBasis[]];
|
|
5459
|
+
/**
|
|
5460
|
+
* Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.
|
|
5461
|
+
*
|
|
5462
|
+
* @minItems 1
|
|
5463
|
+
*/
|
|
5464
|
+
accepted_verification_methods?: [AgeVerificationMethod, ...AgeVerificationMethod[]];
|
|
5465
|
+
};
|
|
5453
5466
|
}
|
|
5454
5467
|
|
|
5455
5468
|
/**
|
package/dist/lib/version.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AdCP SDK library version
|
|
3
3
|
*/
|
|
4
|
-
export declare const LIBRARY_VERSION = "14.
|
|
4
|
+
export declare const LIBRARY_VERSION = "14.2.0";
|
|
5
5
|
/**
|
|
6
6
|
* AdCP specification version this library is built for
|
|
7
7
|
*/
|
|
@@ -33,10 +33,10 @@ export type AdcpVersion = (typeof COMPATIBLE_ADCP_VERSIONS)[number];
|
|
|
33
33
|
* Full version information
|
|
34
34
|
*/
|
|
35
35
|
export declare const VERSION_INFO: {
|
|
36
|
-
readonly library: "14.
|
|
36
|
+
readonly library: "14.2.0";
|
|
37
37
|
readonly adcp: "3.2.1";
|
|
38
38
|
readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.2.1", "3.2"];
|
|
39
|
-
readonly generatedAt: "2026-10-
|
|
39
|
+
readonly generatedAt: "2026-10-05T12:32:54.072Z";
|
|
40
40
|
};
|
|
41
41
|
/**
|
|
42
42
|
* Get the AdCP specification version this library is built for
|
package/dist/lib/version.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AdCP SDK library version
|
|
3
3
|
*/
|
|
4
|
-
export declare const LIBRARY_VERSION = "14.
|
|
4
|
+
export declare const LIBRARY_VERSION = "14.2.0";
|
|
5
5
|
/**
|
|
6
6
|
* AdCP specification version this library is built for
|
|
7
7
|
*/
|
|
@@ -33,10 +33,10 @@ export type AdcpVersion = (typeof COMPATIBLE_ADCP_VERSIONS)[number];
|
|
|
33
33
|
* Full version information
|
|
34
34
|
*/
|
|
35
35
|
export declare const VERSION_INFO: {
|
|
36
|
-
readonly library: "14.
|
|
36
|
+
readonly library: "14.2.0";
|
|
37
37
|
readonly adcp: "3.2.1";
|
|
38
38
|
readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.2.1", "3.2"];
|
|
39
|
-
readonly generatedAt: "2026-10-
|
|
39
|
+
readonly generatedAt: "2026-10-05T12:32:54.072Z";
|
|
40
40
|
};
|
|
41
41
|
/**
|
|
42
42
|
* Get the AdCP specification version this library is built for
|
package/dist/lib/version.js
CHANGED
|
@@ -31,7 +31,7 @@ __export(version_exports, {
|
|
|
31
31
|
toReleasePrecisionVersion: () => toReleasePrecisionVersion
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(version_exports);
|
|
34
|
-
const LIBRARY_VERSION = "14.
|
|
34
|
+
const LIBRARY_VERSION = "14.2.0";
|
|
35
35
|
const ADCP_VERSION = "3.2.1";
|
|
36
36
|
const ADCP_MAJOR_VERSION = 3;
|
|
37
37
|
const COMPATIBLE_ADCP_VERSIONS = [
|
|
@@ -95,10 +95,10 @@ const COMPATIBLE_ADCP_VERSIONS = [
|
|
|
95
95
|
"3.2"
|
|
96
96
|
];
|
|
97
97
|
const VERSION_INFO = {
|
|
98
|
-
library: "14.
|
|
98
|
+
library: "14.2.0",
|
|
99
99
|
adcp: "3.2.1",
|
|
100
100
|
compatibleVersions: COMPATIBLE_ADCP_VERSIONS,
|
|
101
|
-
generatedAt: "2026-10-
|
|
101
|
+
generatedAt: "2026-10-05T12:32:54.072Z"
|
|
102
102
|
};
|
|
103
103
|
function getAdcpVersion() {
|
|
104
104
|
return ADCP_VERSION;
|
package/dist/lib/version.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const LIBRARY_VERSION = "14.
|
|
1
|
+
const LIBRARY_VERSION = "14.2.0";
|
|
2
2
|
const ADCP_VERSION = "3.2.1";
|
|
3
3
|
const ADCP_MAJOR_VERSION = 3;
|
|
4
4
|
const COMPATIBLE_ADCP_VERSIONS = [
|
|
@@ -62,10 +62,10 @@ const COMPATIBLE_ADCP_VERSIONS = [
|
|
|
62
62
|
"3.2"
|
|
63
63
|
];
|
|
64
64
|
const VERSION_INFO = {
|
|
65
|
-
library: "14.
|
|
65
|
+
library: "14.2.0",
|
|
66
66
|
adcp: "3.2.1",
|
|
67
67
|
compatibleVersions: COMPATIBLE_ADCP_VERSIONS,
|
|
68
|
-
generatedAt: "2026-10-
|
|
68
|
+
generatedAt: "2026-10-05T12:32:54.072Z"
|
|
69
69
|
};
|
|
70
70
|
function getAdcpVersion() {
|
|
71
71
|
return ADCP_VERSION;
|
|
@@ -28,6 +28,8 @@ export interface VerifyWebhookRequestOptions {
|
|
|
28
28
|
timestamp?: WebhookHeaderValue;
|
|
29
29
|
/** Allowed absolute timestamp skew in seconds. Defaults to 300. */
|
|
30
30
|
skewSeconds?: number;
|
|
31
|
+
/** Alias shared with preflight; takes precedence when both are provided. */
|
|
32
|
+
maxSkewSeconds?: number;
|
|
31
33
|
/** Current unix time in seconds. Defaults to `Date.now() / 1000`. */
|
|
32
34
|
now?: () => number;
|
|
33
35
|
}
|
|
@@ -50,3 +52,25 @@ export type VerifyWebhookRequestResult = {
|
|
|
50
52
|
* `@adcp/sdk/signing/server`.
|
|
51
53
|
*/
|
|
52
54
|
export declare function verifyWebhookRequest(options: VerifyWebhookRequestOptions): VerifyWebhookRequestResult;
|
|
55
|
+
/** Input for a secret-less check of the deprecated HMAC webhook profile. */
|
|
56
|
+
export type PreflightWebhookRequest = Pick<VerifyWebhookRequestOptions, 'headers' | 'signature' | 'timestamp'>;
|
|
57
|
+
export interface PreflightWebhookRequestOptions {
|
|
58
|
+
/** Current unix time in seconds. */
|
|
59
|
+
now?: () => number;
|
|
60
|
+
/** Allowed absolute timestamp skew; defaults to 300 seconds. */
|
|
61
|
+
maxSkewSeconds?: number;
|
|
62
|
+
/** Alias shared with verifyWebhookRequest. */
|
|
63
|
+
skewSeconds?: number;
|
|
64
|
+
}
|
|
65
|
+
export type PreflightWebhookRequestResult = {
|
|
66
|
+
ok: true;
|
|
67
|
+
signature: string;
|
|
68
|
+
timestamp: number;
|
|
69
|
+
checkedAt: number;
|
|
70
|
+
} | {
|
|
71
|
+
ok: false;
|
|
72
|
+
reason: Exclude<VerifyWebhookFailureReason, 'missing_secret' | 'bad_signature'>;
|
|
73
|
+
message: string;
|
|
74
|
+
};
|
|
75
|
+
/** Validate headers and freshness before looking up a secret. Success does not authenticate the request. */
|
|
76
|
+
export declare function preflightWebhookRequest(request: PreflightWebhookRequest, options?: PreflightWebhookRequestOptions): PreflightWebhookRequestResult;
|
|
@@ -28,6 +28,8 @@ export interface VerifyWebhookRequestOptions {
|
|
|
28
28
|
timestamp?: WebhookHeaderValue;
|
|
29
29
|
/** Allowed absolute timestamp skew in seconds. Defaults to 300. */
|
|
30
30
|
skewSeconds?: number;
|
|
31
|
+
/** Alias shared with preflight; takes precedence when both are provided. */
|
|
32
|
+
maxSkewSeconds?: number;
|
|
31
33
|
/** Current unix time in seconds. Defaults to `Date.now() / 1000`. */
|
|
32
34
|
now?: () => number;
|
|
33
35
|
}
|
|
@@ -50,3 +52,25 @@ export type VerifyWebhookRequestResult = {
|
|
|
50
52
|
* `@adcp/sdk/signing/server`.
|
|
51
53
|
*/
|
|
52
54
|
export declare function verifyWebhookRequest(options: VerifyWebhookRequestOptions): VerifyWebhookRequestResult;
|
|
55
|
+
/** Input for a secret-less check of the deprecated HMAC webhook profile. */
|
|
56
|
+
export type PreflightWebhookRequest = Pick<VerifyWebhookRequestOptions, 'headers' | 'signature' | 'timestamp'>;
|
|
57
|
+
export interface PreflightWebhookRequestOptions {
|
|
58
|
+
/** Current unix time in seconds. */
|
|
59
|
+
now?: () => number;
|
|
60
|
+
/** Allowed absolute timestamp skew; defaults to 300 seconds. */
|
|
61
|
+
maxSkewSeconds?: number;
|
|
62
|
+
/** Alias shared with verifyWebhookRequest. */
|
|
63
|
+
skewSeconds?: number;
|
|
64
|
+
}
|
|
65
|
+
export type PreflightWebhookRequestResult = {
|
|
66
|
+
ok: true;
|
|
67
|
+
signature: string;
|
|
68
|
+
timestamp: number;
|
|
69
|
+
checkedAt: number;
|
|
70
|
+
} | {
|
|
71
|
+
ok: false;
|
|
72
|
+
reason: Exclude<VerifyWebhookFailureReason, 'missing_secret' | 'bad_signature'>;
|
|
73
|
+
message: string;
|
|
74
|
+
};
|
|
75
|
+
/** Validate headers and freshness before looking up a secret. Success does not authenticate the request. */
|
|
76
|
+
export declare function preflightWebhookRequest(request: PreflightWebhookRequest, options?: PreflightWebhookRequestOptions): PreflightWebhookRequestResult;
|