@adcp/sdk 6.7.0 → 6.8.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/bin/adcp.js +15 -3
- package/dist/lib/adapters/derived-account-store.d.ts +152 -0
- package/dist/lib/adapters/derived-account-store.d.ts.map +1 -0
- package/dist/lib/adapters/derived-account-store.js +135 -0
- package/dist/lib/adapters/derived-account-store.js.map +1 -0
- package/dist/lib/adapters/implicit-account-store.d.ts +3 -1
- package/dist/lib/adapters/implicit-account-store.d.ts.map +1 -1
- package/dist/lib/adapters/implicit-account-store.js +3 -1
- package/dist/lib/adapters/implicit-account-store.js.map +1 -1
- package/dist/lib/adapters/index.d.ts +1 -0
- package/dist/lib/adapters/index.d.ts.map +1 -1
- package/dist/lib/adapters/index.js +7 -1
- package/dist/lib/adapters/index.js.map +1 -1
- package/dist/lib/adapters/oauth-passthrough-resolver.d.ts +3 -1
- package/dist/lib/adapters/oauth-passthrough-resolver.d.ts.map +1 -1
- package/dist/lib/adapters/oauth-passthrough-resolver.js +3 -1
- package/dist/lib/adapters/oauth-passthrough-resolver.js.map +1 -1
- package/dist/lib/adapters/roster-account-store.d.ts +85 -24
- package/dist/lib/adapters/roster-account-store.d.ts.map +1 -1
- package/dist/lib/adapters/roster-account-store.js +52 -30
- package/dist/lib/adapters/roster-account-store.js.map +1 -1
- package/dist/lib/index.d.ts +3 -3
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +13 -8
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/mock-server/creative-ad-server/seed-data.d.ts +81 -0
- package/dist/lib/mock-server/creative-ad-server/seed-data.d.ts.map +1 -0
- package/dist/lib/mock-server/creative-ad-server/seed-data.js +200 -0
- package/dist/lib/mock-server/creative-ad-server/seed-data.js.map +1 -0
- package/dist/lib/mock-server/creative-ad-server/server.d.ts +39 -0
- package/dist/lib/mock-server/creative-ad-server/server.d.ts.map +1 -0
- package/dist/lib/mock-server/creative-ad-server/server.js +618 -0
- package/dist/lib/mock-server/creative-ad-server/server.js.map +1 -0
- package/dist/lib/mock-server/index.d.ts.map +1 -1
- package/dist/lib/mock-server/index.js +180 -24
- package/dist/lib/mock-server/index.js.map +1 -1
- package/dist/lib/mock-server/sales-non-guaranteed/seed-data.d.ts +66 -0
- package/dist/lib/mock-server/sales-non-guaranteed/seed-data.d.ts.map +1 -0
- package/dist/lib/mock-server/sales-non-guaranteed/seed-data.js +193 -0
- package/dist/lib/mock-server/sales-non-guaranteed/seed-data.js.map +1 -0
- package/dist/lib/mock-server/sales-non-guaranteed/server.d.ts +33 -0
- package/dist/lib/mock-server/sales-non-guaranteed/server.d.ts.map +1 -0
- package/dist/lib/mock-server/sales-non-guaranteed/server.js +782 -0
- package/dist/lib/mock-server/sales-non-guaranteed/server.js.map +1 -0
- package/dist/lib/mock-server/sponsored-intelligence/seed-data.d.ts +50 -0
- package/dist/lib/mock-server/sponsored-intelligence/seed-data.d.ts.map +1 -0
- package/dist/lib/mock-server/sponsored-intelligence/seed-data.js +133 -0
- package/dist/lib/mock-server/sponsored-intelligence/seed-data.js.map +1 -0
- package/dist/lib/mock-server/sponsored-intelligence/server.d.ts +13 -0
- package/dist/lib/mock-server/sponsored-intelligence/server.d.ts.map +1 -0
- package/dist/lib/mock-server/sponsored-intelligence/server.js +609 -0
- package/dist/lib/mock-server/sponsored-intelligence/server.js.map +1 -0
- package/dist/lib/protocols/mcp.d.ts.map +1 -1
- package/dist/lib/protocols/mcp.js +1 -41
- package/dist/lib/protocols/mcp.js.map +1 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/account-mode.d.ts +113 -0
- package/dist/lib/server/account-mode.d.ts.map +1 -0
- package/dist/lib/server/account-mode.js +125 -0
- package/dist/lib/server/account-mode.js.map +1 -0
- package/dist/lib/server/adcp-server.js +41 -0
- package/dist/lib/server/adcp-server.js.map +1 -1
- package/dist/lib/server/auth.d.ts +35 -0
- package/dist/lib/server/auth.d.ts.map +1 -1
- package/dist/lib/server/auth.js.map +1 -1
- package/dist/lib/server/create-adcp-server.d.ts +26 -9
- package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
- package/dist/lib/server/create-adcp-server.js +46 -20
- package/dist/lib/server/create-adcp-server.js.map +1 -1
- package/dist/lib/server/ctx-metadata/store.d.ts +1 -1
- package/dist/lib/server/ctx-metadata/store.d.ts.map +1 -1
- package/dist/lib/server/ctx-metadata/store.js +1 -0
- package/dist/lib/server/ctx-metadata/store.js.map +1 -1
- package/dist/lib/server/decisioning/account.d.ts +5 -0
- package/dist/lib/server/decisioning/account.d.ts.map +1 -1
- package/dist/lib/server/decisioning/account.js.map +1 -1
- package/dist/lib/server/decisioning/buyer-agent.d.ts +37 -4
- package/dist/lib/server/decisioning/buyer-agent.d.ts.map +1 -1
- package/dist/lib/server/decisioning/buyer-agent.js +12 -2
- package/dist/lib/server/decisioning/buyer-agent.js.map +1 -1
- package/dist/lib/server/decisioning/compose.d.ts +33 -2
- package/dist/lib/server/decisioning/compose.d.ts.map +1 -1
- package/dist/lib/server/decisioning/compose.js +13 -46
- package/dist/lib/server/decisioning/compose.js.map +1 -1
- package/dist/lib/server/decisioning/index.d.ts +2 -1
- package/dist/lib/server/decisioning/index.d.ts.map +1 -1
- package/dist/lib/server/decisioning/index.js +2 -1
- package/dist/lib/server/decisioning/index.js.map +1 -1
- package/dist/lib/server/decisioning/platform-helpers.d.ts +18 -0
- package/dist/lib/server/decisioning/platform-helpers.d.ts.map +1 -1
- package/dist/lib/server/decisioning/platform-helpers.js +20 -0
- package/dist/lib/server/decisioning/platform-helpers.js.map +1 -1
- package/dist/lib/server/decisioning/platform.d.ts +19 -21
- package/dist/lib/server/decisioning/platform.d.ts.map +1 -1
- package/dist/lib/server/decisioning/platform.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.js +334 -44
- package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/observed-modes.d.ts +40 -0
- package/dist/lib/server/decisioning/runtime/observed-modes.d.ts.map +1 -0
- package/dist/lib/server/decisioning/runtime/observed-modes.js +82 -0
- package/dist/lib/server/decisioning/runtime/observed-modes.js.map +1 -0
- package/dist/lib/server/decisioning/runtime/protocol-for-tool.js +2 -2
- package/dist/lib/server/decisioning/runtime/protocol-for-tool.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/validate-platform.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/validate-platform.js +9 -1
- package/dist/lib/server/decisioning/runtime/validate-platform.js.map +1 -1
- package/dist/lib/server/decisioning/specialisms/sponsored-intelligence.d.ts +125 -0
- package/dist/lib/server/decisioning/specialisms/sponsored-intelligence.d.ts.map +1 -0
- package/dist/lib/server/decisioning/specialisms/sponsored-intelligence.js +52 -0
- package/dist/lib/server/decisioning/specialisms/sponsored-intelligence.js.map +1 -0
- package/dist/lib/server/decisioning/tenant-registry.d.ts +16 -0
- package/dist/lib/server/decisioning/tenant-registry.d.ts.map +1 -1
- package/dist/lib/server/decisioning/tenant-registry.js.map +1 -1
- package/dist/lib/server/index.d.ts +4 -1
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/index.js +9 -3
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/server/serve.js +20 -2
- package/dist/lib/server/serve.js.map +1 -1
- package/dist/lib/server/test-controller.d.ts +3 -0
- package/dist/lib/server/test-controller.d.ts.map +1 -1
- package/dist/lib/server/test-controller.js +23 -20
- package/dist/lib/server/test-controller.js.map +1 -1
- package/dist/lib/testing/comply-controller.d.ts +23 -2
- package/dist/lib/testing/comply-controller.d.ts.map +1 -1
- package/dist/lib/testing/comply-controller.js +19 -2
- package/dist/lib/testing/comply-controller.js.map +1 -1
- package/dist/lib/testing/index.d.ts +1 -1
- package/dist/lib/testing/index.d.ts.map +1 -1
- package/dist/lib/testing/index.js.map +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/validations.js +36 -54
- package/dist/lib/testing/storyboard/validations.js.map +1 -1
- package/dist/lib/testing/test-controller.d.ts +10 -4
- package/dist/lib/testing/test-controller.d.ts.map +1 -1
- package/dist/lib/testing/test-controller.js +9 -3
- package/dist/lib/testing/test-controller.js.map +1 -1
- package/dist/lib/types/index.d.ts +3 -2
- package/dist/lib/types/index.d.ts.map +1 -1
- package/dist/lib/types/index.js +3 -0
- package/dist/lib/types/index.js.map +1 -1
- package/dist/lib/utils/glob.d.ts +4 -2
- package/dist/lib/utils/glob.d.ts.map +1 -1
- package/dist/lib/utils/glob.js +4 -2
- package/dist/lib/utils/glob.js.map +1 -1
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/docs/llms.txt +2 -2
- package/examples/README.md +29 -13
- package/examples/hello-cluster.ts +62 -23
- package/examples/hello_creative_adapter_ad_server.ts +790 -0
- package/examples/hello_seller_adapter_guaranteed.ts +80 -22
- package/examples/hello_seller_adapter_non_guaranteed.ts +1020 -0
- package/examples/hello_si_adapter_brand.ts +572 -0
- package/package.json +3 -2
- package/skills/build-creative-agent/SKILL.md +103 -183
- package/skills/build-generative-seller-agent/SKILL.md +15 -9
- package/skills/build-governance-agent/SKILL.md +20 -11
- package/skills/build-retail-media-agent/SKILL.md +10 -8
- package/skills/build-seller-agent/SKILL.md +15 -13
- package/skills/build-seller-agent/specialisms/sales-non-guaranteed.md +9 -31
- package/skills/build-si-agent/SKILL.md +251 -196
- package/skills/build-signals-agent/SKILL.md +2 -0
- package/skills/call-adcp-agent/SKILL.md +7 -1
- package/skills/call-adcp-agent.previous/SKILL.md +0 -261
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Seed data for the `sales-non-guaranteed` mock-server.
|
|
4
|
+
*
|
|
5
|
+
* Closes #1457 (sub-issue of #1381). Programmatic-auction shape:
|
|
6
|
+
* floor pricing per product (`min_cpm`), sync confirmation on
|
|
7
|
+
* `POST /v1/orders` (no HITL approval), single-bucket delivery
|
|
8
|
+
* scaling with budget × pacing curve. No guaranteed-availability
|
|
9
|
+
* surface — forecast is `spend`-only with saturating returns at
|
|
10
|
+
* high budgets (auction-clearing premium ~1.3x floor at modest
|
|
11
|
+
* budgets, asymptoting at ~2x).
|
|
12
|
+
*
|
|
13
|
+
* Compare to `sales-guaranteed/seed-data.ts`:
|
|
14
|
+
* - `MockProduct.pricing.cpm` (fixed) → `MockProduct.pricing.min_cpm` (floor) + optional `target_cpm`.
|
|
15
|
+
* - `MockProduct.availability.available_impressions` → out of scope (programmatic).
|
|
16
|
+
* - `MockProduct.delivery_type: 'guaranteed'` → always `'non_guaranteed'`.
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.DEFAULT_API_KEY = exports.PRODUCTS = exports.AD_UNITS = exports.NETWORKS = void 0;
|
|
20
|
+
exports.NETWORKS = [
|
|
21
|
+
{
|
|
22
|
+
network_code: 'net_remnant_us',
|
|
23
|
+
display_name: 'Programmatic Remnant Network — US',
|
|
24
|
+
adcp_publisher: 'remnant-network.example',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
network_code: 'net_remnant_eu',
|
|
28
|
+
display_name: 'Programmatic Remnant Network — EU',
|
|
29
|
+
adcp_publisher: 'remnant-network.eu',
|
|
30
|
+
},
|
|
31
|
+
// Storyboard-fixture-aligned entries — the `sales_non_guaranteed`
|
|
32
|
+
// storyboard sends payloads with these publisher domains. Mirrors the
|
|
33
|
+
// pattern from `sales-guaranteed/seed-data.ts`. Without seeded fixture
|
|
34
|
+
// domains, every `_lookup/network` returns 404 and a blind agent has
|
|
35
|
+
// to invent a fallback that contradicts the skill's "fail closed on
|
|
36
|
+
// 404" advice. Track upstream-fixture rationale at adcontextprotocol/adcp#3822.
|
|
37
|
+
{
|
|
38
|
+
network_code: 'net_acmeoutdoor',
|
|
39
|
+
display_name: 'Acme Outdoor Media',
|
|
40
|
+
adcp_publisher: 'acmeoutdoor.example',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
network_code: 'net_pinnacle',
|
|
44
|
+
display_name: 'Pinnacle Agency',
|
|
45
|
+
adcp_publisher: 'pinnacle-agency.example',
|
|
46
|
+
},
|
|
47
|
+
];
|
|
48
|
+
exports.AD_UNITS = [
|
|
49
|
+
{
|
|
50
|
+
ad_unit_id: 'au_us_display_medrec',
|
|
51
|
+
name: 'US Display Medrec — Run of Network',
|
|
52
|
+
path: '/remnant/us/display/medrec',
|
|
53
|
+
network_code: 'net_remnant_us',
|
|
54
|
+
sizes: [{ width: 300, height: 250 }],
|
|
55
|
+
environment: 'web',
|
|
56
|
+
targetable: true,
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
ad_unit_id: 'au_us_display_leaderboard',
|
|
60
|
+
name: 'US Display Leaderboard — Run of Network',
|
|
61
|
+
path: '/remnant/us/display/leaderboard',
|
|
62
|
+
network_code: 'net_remnant_us',
|
|
63
|
+
sizes: [{ width: 728, height: 90 }],
|
|
64
|
+
environment: 'web',
|
|
65
|
+
targetable: true,
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
ad_unit_id: 'au_us_video_outstream',
|
|
69
|
+
name: 'US Video Outstream — Run of Network',
|
|
70
|
+
path: '/remnant/us/video/outstream',
|
|
71
|
+
network_code: 'net_remnant_us',
|
|
72
|
+
sizes: [{ width: 640, height: 360 }],
|
|
73
|
+
environment: 'web',
|
|
74
|
+
targetable: true,
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
ad_unit_id: 'au_us_ctv_15s',
|
|
78
|
+
name: 'US CTV 15s — Programmatic Remnant',
|
|
79
|
+
path: '/remnant/us/ctv/15s',
|
|
80
|
+
network_code: 'net_remnant_us',
|
|
81
|
+
sizes: [{ width: 1920, height: 1080 }],
|
|
82
|
+
environment: 'ctv',
|
|
83
|
+
targetable: true,
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
ad_unit_id: 'au_eu_display_medrec',
|
|
87
|
+
name: 'EU Display Medrec — Run of Network',
|
|
88
|
+
path: '/remnant/eu/display/medrec',
|
|
89
|
+
network_code: 'net_remnant_eu',
|
|
90
|
+
sizes: [{ width: 300, height: 250 }],
|
|
91
|
+
environment: 'web',
|
|
92
|
+
targetable: true,
|
|
93
|
+
},
|
|
94
|
+
// Storyboard-fixture-aligned ad units.
|
|
95
|
+
{
|
|
96
|
+
ad_unit_id: 'au_acmeoutdoor_dooh',
|
|
97
|
+
name: 'Acme Outdoor — DOOH Programmatic',
|
|
98
|
+
path: '/acme/outdoor/dooh',
|
|
99
|
+
network_code: 'net_acmeoutdoor',
|
|
100
|
+
sizes: [{ width: 1920, height: 1080 }],
|
|
101
|
+
environment: 'web',
|
|
102
|
+
targetable: true,
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
ad_unit_id: 'au_pinnacle_remnant',
|
|
106
|
+
name: 'Pinnacle Display Remnant',
|
|
107
|
+
path: '/pinnacle/display/remnant',
|
|
108
|
+
network_code: 'net_pinnacle',
|
|
109
|
+
sizes: [{ width: 300, height: 250 }],
|
|
110
|
+
environment: 'web',
|
|
111
|
+
targetable: true,
|
|
112
|
+
},
|
|
113
|
+
];
|
|
114
|
+
exports.PRODUCTS = [
|
|
115
|
+
{
|
|
116
|
+
product_id: 'display_medrec_remnant',
|
|
117
|
+
name: 'Display Medrec — Remnant',
|
|
118
|
+
network_code: 'net_remnant_us',
|
|
119
|
+
delivery_type: 'non_guaranteed',
|
|
120
|
+
channel: 'display',
|
|
121
|
+
format_ids: ['display_300x250'],
|
|
122
|
+
ad_unit_ids: ['au_us_display_medrec'],
|
|
123
|
+
pricing: { min_cpm: 1.5, target_cpm: 2.25, currency: 'USD' },
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
product_id: 'display_leaderboard_remnant',
|
|
127
|
+
name: 'Display Leaderboard — Remnant',
|
|
128
|
+
network_code: 'net_remnant_us',
|
|
129
|
+
delivery_type: 'non_guaranteed',
|
|
130
|
+
channel: 'display',
|
|
131
|
+
format_ids: ['display_728x90'],
|
|
132
|
+
ad_unit_ids: ['au_us_display_leaderboard'],
|
|
133
|
+
pricing: { min_cpm: 1.0, target_cpm: 1.5, currency: 'USD' },
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
product_id: 'video_outstream_remnant',
|
|
137
|
+
name: 'Video Outstream — Remnant',
|
|
138
|
+
network_code: 'net_remnant_us',
|
|
139
|
+
delivery_type: 'non_guaranteed',
|
|
140
|
+
channel: 'video',
|
|
141
|
+
format_ids: ['video_30s', 'video_15s'],
|
|
142
|
+
ad_unit_ids: ['au_us_video_outstream'],
|
|
143
|
+
pricing: { min_cpm: 8.0, target_cpm: 12.0, currency: 'USD', min_spend: 1_000 },
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
product_id: 'ctv_15s_remnant',
|
|
147
|
+
name: 'CTV 15s — Programmatic Remnant',
|
|
148
|
+
network_code: 'net_remnant_us',
|
|
149
|
+
delivery_type: 'non_guaranteed',
|
|
150
|
+
channel: 'ctv',
|
|
151
|
+
format_ids: ['video_15s'],
|
|
152
|
+
ad_unit_ids: ['au_us_ctv_15s'],
|
|
153
|
+
pricing: { min_cpm: 15.0, target_cpm: 22.0, currency: 'USD', min_spend: 5_000 },
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
product_id: 'display_medrec_remnant_eu',
|
|
157
|
+
name: 'Display Medrec — Remnant (EU)',
|
|
158
|
+
network_code: 'net_remnant_eu',
|
|
159
|
+
delivery_type: 'non_guaranteed',
|
|
160
|
+
channel: 'display',
|
|
161
|
+
format_ids: ['display_300x250'],
|
|
162
|
+
ad_unit_ids: ['au_eu_display_medrec'],
|
|
163
|
+
pricing: { min_cpm: 1.2, target_cpm: 1.8, currency: 'EUR' },
|
|
164
|
+
},
|
|
165
|
+
// Storyboard-fixture-aligned products.
|
|
166
|
+
{
|
|
167
|
+
product_id: 'acme_dooh_remnant_q2',
|
|
168
|
+
name: 'Acme Outdoor — DOOH Programmatic Q2',
|
|
169
|
+
network_code: 'net_acmeoutdoor',
|
|
170
|
+
delivery_type: 'non_guaranteed',
|
|
171
|
+
channel: 'video',
|
|
172
|
+
format_ids: ['video_15s'],
|
|
173
|
+
ad_unit_ids: ['au_acmeoutdoor_dooh'],
|
|
174
|
+
pricing: { min_cpm: 6.0, target_cpm: 9.0, currency: 'USD', min_spend: 500 },
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
product_id: 'pinnacle_display_remnant_q2',
|
|
178
|
+
name: 'Pinnacle Display Remnant Q2',
|
|
179
|
+
network_code: 'net_pinnacle',
|
|
180
|
+
delivery_type: 'non_guaranteed',
|
|
181
|
+
channel: 'display',
|
|
182
|
+
format_ids: ['display_300x250'],
|
|
183
|
+
ad_unit_ids: ['au_pinnacle_remnant'],
|
|
184
|
+
pricing: { min_cpm: 0.85, target_cpm: 1.3, currency: 'USD' },
|
|
185
|
+
},
|
|
186
|
+
];
|
|
187
|
+
/** Default static API key (Bearer). Real DSPs / SSPs typically use OAuth
|
|
188
|
+
* or signed-request auth; static Bearer keeps the test surface varied
|
|
189
|
+
* (sales-social already exercises OAuth, sales-guaranteed uses static
|
|
190
|
+
* Bearer too — this mock matches the latter to focus on the auction
|
|
191
|
+
* shape rather than re-exercising OAuth). */
|
|
192
|
+
exports.DEFAULT_API_KEY = 'mock_sales_non_guaranteed_key_do_not_use_in_prod';
|
|
193
|
+
//# sourceMappingURL=seed-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed-data.js","sourceRoot":"","sources":["../../../../src/lib/mock-server/sales-non-guaranteed/seed-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `sales-non-guaranteed` upstream-shape mock-server. Programmatic-auction
|
|
3
|
+
* remnant inventory; sync confirmation on `POST /v1/orders`; floor pricing
|
|
4
|
+
* per product; spend-only forecast (no availability check).
|
|
5
|
+
*
|
|
6
|
+
* Closes #1457 (sub-issue of #1381). Pattern modeled on
|
|
7
|
+
* `sales-guaranteed/server.ts` with these deltas:
|
|
8
|
+
*
|
|
9
|
+
* - Order confirmation is **sync**: `POST /v1/orders` returns
|
|
10
|
+
* `status: 'confirmed'` immediately. No HITL approval task.
|
|
11
|
+
* - Pricing is **floor-based** (`min_cpm`). Effective CPM at the
|
|
12
|
+
* requested budget = `target_cpm` if set, else `1.3 × min_cpm`,
|
|
13
|
+
* saturating toward `2 × min_cpm` at high budgets.
|
|
14
|
+
* - Forecast is **`spend`-only**. No `availability` unit; auction
|
|
15
|
+
* mocks don't pre-commit inventory.
|
|
16
|
+
* - Delivery scales with `(budget × elapsed_pct × pacing_curve)`.
|
|
17
|
+
* Pacing modes: `even`, `asap`, `front_loaded`.
|
|
18
|
+
* - No CAPI / conversions surface (out of scope per #1457).
|
|
19
|
+
*/
|
|
20
|
+
import { type MockAdUnit, type MockNetwork, type MockProduct } from './seed-data';
|
|
21
|
+
export interface BootOptions {
|
|
22
|
+
port: number;
|
|
23
|
+
apiKey?: string;
|
|
24
|
+
networks?: MockNetwork[];
|
|
25
|
+
adUnits?: MockAdUnit[];
|
|
26
|
+
products?: MockProduct[];
|
|
27
|
+
}
|
|
28
|
+
export interface BootResult {
|
|
29
|
+
url: string;
|
|
30
|
+
close: () => Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
export declare function bootSalesNonGuaranteed(options: BootOptions): Promise<BootResult>;
|
|
33
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../src/lib/mock-server/sales-non-guaranteed/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAKL,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAsED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA6pBtF"}
|