@adcp/sdk 14.0.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.
Files changed (234) hide show
  1. package/dist/lib/adapters/implicit-account-store.d.mts +12 -7
  2. package/dist/lib/adapters/implicit-account-store.d.ts +12 -7
  3. package/dist/lib/adapters/implicit-account-store.js +69 -15
  4. package/dist/lib/adapters/implicit-account-store.mjs +69 -15
  5. package/dist/lib/core/AgentClient.d.mts +1 -0
  6. package/dist/lib/core/AgentClient.d.ts +1 -0
  7. package/dist/lib/core/AgentClient.js +3 -0
  8. package/dist/lib/core/AgentClient.mjs +3 -0
  9. package/dist/lib/core/SingleAgentClient.d.mts +35 -2
  10. package/dist/lib/core/SingleAgentClient.d.ts +35 -2
  11. package/dist/lib/core/SingleAgentClient.js +377 -36
  12. package/dist/lib/core/SingleAgentClient.mjs +387 -38
  13. package/dist/lib/core/TaskExecutor.d.mts +3 -1
  14. package/dist/lib/core/TaskExecutor.d.ts +3 -1
  15. package/dist/lib/core/TaskExecutor.js +17 -12
  16. package/dist/lib/core/TaskExecutor.mjs +17 -12
  17. package/dist/lib/core/account-key.d.mts +3 -0
  18. package/dist/lib/core/account-key.d.ts +3 -0
  19. package/dist/lib/core/account-key.js +41 -0
  20. package/dist/lib/core/account-key.mjs +17 -0
  21. package/dist/lib/core/account-resolution.d.mts +2 -0
  22. package/dist/lib/core/account-resolution.d.ts +2 -0
  23. package/dist/lib/core/buyer-account-registry.d.mts +93 -0
  24. package/dist/lib/core/buyer-account-registry.d.ts +93 -0
  25. package/dist/lib/core/buyer-account-registry.js +602 -0
  26. package/dist/lib/core/buyer-account-registry.mjs +578 -0
  27. package/dist/lib/core/product-cache.d.mts +18 -0
  28. package/dist/lib/core/product-cache.d.ts +18 -0
  29. package/dist/lib/core/product-cache.js +137 -0
  30. package/dist/lib/core/product-cache.mjs +112 -0
  31. package/dist/lib/errors/index.d.mts +40 -1
  32. package/dist/lib/errors/index.d.ts +40 -1
  33. package/dist/lib/errors/index.js +69 -3
  34. package/dist/lib/errors/index.mjs +64 -3
  35. package/dist/lib/governance/authorization.d.mts +17 -1
  36. package/dist/lib/governance/authorization.d.ts +17 -1
  37. package/dist/lib/governance/authorization.js +55 -7
  38. package/dist/lib/governance/authorization.mjs +59 -7
  39. package/dist/lib/governance/index.d.mts +2 -2
  40. package/dist/lib/governance/index.d.ts +2 -2
  41. package/dist/lib/governance/index.js +2 -0
  42. package/dist/lib/governance/index.mjs +3 -1
  43. package/dist/lib/index.d.mts +7 -4
  44. package/dist/lib/index.d.ts +7 -4
  45. package/dist/lib/index.js +29 -0
  46. package/dist/lib/index.mjs +31 -1
  47. package/dist/lib/net/agent-transport-fetch.d.mts +4 -0
  48. package/dist/lib/net/agent-transport-fetch.d.ts +4 -0
  49. package/dist/lib/net/agent-transport-fetch.js +18 -5
  50. package/dist/lib/net/agent-transport-fetch.mjs +17 -5
  51. package/dist/lib/protocols/a2a.js +9 -1
  52. package/dist/lib/protocols/a2a.mjs +9 -1
  53. package/dist/lib/protocols/index.js +9 -2
  54. package/dist/lib/protocols/index.mjs +9 -2
  55. package/dist/lib/protocols/mcp-modern.js +2 -1
  56. package/dist/lib/protocols/mcp-modern.mjs +2 -1
  57. package/dist/lib/protocols/mcp.js +5 -2
  58. package/dist/lib/protocols/mcp.mjs +5 -2
  59. package/dist/lib/protocols/rawResponseCapture.d.mts +6 -0
  60. package/dist/lib/protocols/rawResponseCapture.d.ts +6 -0
  61. package/dist/lib/protocols/rawResponseCapture.js +41 -29
  62. package/dist/lib/protocols/rawResponseCapture.mjs +40 -29
  63. package/dist/lib/protocols/signedRequestRejection.d.mts +9 -0
  64. package/dist/lib/protocols/signedRequestRejection.d.ts +9 -0
  65. package/dist/lib/protocols/signedRequestRejection.js +209 -0
  66. package/dist/lib/protocols/signedRequestRejection.mjs +189 -0
  67. package/dist/lib/protocols/transportDiagnostics.d.mts +1 -0
  68. package/dist/lib/protocols/transportDiagnostics.d.ts +1 -0
  69. package/dist/lib/protocols/transportDiagnostics.js +2 -0
  70. package/dist/lib/protocols/transportDiagnostics.mjs +1 -0
  71. package/dist/lib/registry/types.generated.d.mts +112 -45
  72. package/dist/lib/registry/types.generated.d.ts +112 -45
  73. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  74. package/dist/lib/server/account-provisioning.d.mts +2 -0
  75. package/dist/lib/server/account-provisioning.d.ts +2 -0
  76. package/dist/lib/server/account-provisioning.js +30 -0
  77. package/dist/lib/server/account-provisioning.mjs +6 -0
  78. package/dist/lib/server/account-reference-warnings.d.mts +12 -0
  79. package/dist/lib/server/account-reference-warnings.d.ts +12 -0
  80. package/dist/lib/server/account-reference-warnings.js +48 -0
  81. package/dist/lib/server/account-reference-warnings.mjs +23 -0
  82. package/dist/lib/server/auth-signature.js +1 -0
  83. package/dist/lib/server/auth-signature.mjs +1 -0
  84. package/dist/lib/server/create-adcp-server.d.mts +34 -0
  85. package/dist/lib/server/create-adcp-server.d.ts +34 -0
  86. package/dist/lib/server/create-adcp-server.js +225 -14
  87. package/dist/lib/server/create-adcp-server.mjs +225 -14
  88. package/dist/lib/server/decisioning/account.d.mts +2 -0
  89. package/dist/lib/server/decisioning/account.d.ts +2 -0
  90. package/dist/lib/server/decisioning/runtime/from-platform.js +49 -10
  91. package/dist/lib/server/decisioning/runtime/from-platform.mjs +49 -10
  92. package/dist/lib/server/index.d.mts +2 -2
  93. package/dist/lib/server/index.d.ts +2 -2
  94. package/dist/lib/server/index.js +2 -0
  95. package/dist/lib/server/index.mjs +3 -1
  96. package/dist/lib/signing/agent-resolver/consistency.d.mts +6 -13
  97. package/dist/lib/signing/agent-resolver/consistency.d.ts +6 -13
  98. package/dist/lib/signing/agent-resolver/consistency.js +0 -1
  99. package/dist/lib/signing/agent-resolver/consistency.mjs +0 -1
  100. package/dist/lib/signing/agent-resolver/errors.d.mts +3 -1
  101. package/dist/lib/signing/agent-resolver/errors.d.ts +3 -1
  102. package/dist/lib/signing/agent-resolver/errors.js +6 -0
  103. package/dist/lib/signing/agent-resolver/errors.mjs +6 -0
  104. package/dist/lib/signing/agent-resolver/fetch-helpers.d.mts +11 -0
  105. package/dist/lib/signing/agent-resolver/fetch-helpers.d.ts +11 -0
  106. package/dist/lib/signing/agent-resolver/fetch-helpers.js +37 -2
  107. package/dist/lib/signing/agent-resolver/fetch-helpers.mjs +40 -3
  108. package/dist/lib/signing/agent-resolver/jwks-set.js +24 -3
  109. package/dist/lib/signing/agent-resolver/jwks-set.mjs +24 -3
  110. package/dist/lib/signing/agent-resolver/legacy-brand.d.mts +15 -0
  111. package/dist/lib/signing/agent-resolver/legacy-brand.d.ts +15 -0
  112. package/dist/lib/signing/agent-resolver/legacy-brand.js +60 -0
  113. package/dist/lib/signing/agent-resolver/legacy-brand.mjs +36 -0
  114. package/dist/lib/signing/agent-resolver/operator-authorization.d.mts +13 -0
  115. package/dist/lib/signing/agent-resolver/operator-authorization.d.ts +13 -0
  116. package/dist/lib/signing/agent-resolver/operator-authorization.js +108 -0
  117. package/dist/lib/signing/agent-resolver/operator-authorization.mjs +84 -0
  118. package/dist/lib/signing/agent-resolver/resolve-agent.d.mts +14 -4
  119. package/dist/lib/signing/agent-resolver/resolve-agent.d.ts +14 -4
  120. package/dist/lib/signing/agent-resolver/resolve-agent.js +148 -137
  121. package/dist/lib/signing/agent-resolver/resolve-agent.mjs +157 -139
  122. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.d.mts +7 -1
  123. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.d.ts +7 -1
  124. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.js +50 -17
  125. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.mjs +50 -17
  126. package/dist/lib/signing/agent-resolver/select-agent.d.mts +14 -15
  127. package/dist/lib/signing/agent-resolver/select-agent.d.ts +14 -15
  128. package/dist/lib/signing/agent-resolver/select-agent.js +98 -13
  129. package/dist/lib/signing/agent-resolver/select-agent.mjs +95 -13
  130. package/dist/lib/signing/brand-jwks.d.mts +29 -75
  131. package/dist/lib/signing/brand-jwks.d.ts +29 -75
  132. package/dist/lib/signing/brand-jwks.js +120 -182
  133. package/dist/lib/signing/brand-jwks.mjs +120 -182
  134. package/dist/lib/signing/errors.d.mts +7 -3
  135. package/dist/lib/signing/errors.d.ts +7 -3
  136. package/dist/lib/signing/errors.js +7 -2
  137. package/dist/lib/signing/errors.mjs +7 -2
  138. package/dist/lib/signing/jwks-https.d.mts +7 -0
  139. package/dist/lib/signing/jwks-https.d.ts +7 -0
  140. package/dist/lib/signing/jwks-https.js +31 -8
  141. package/dist/lib/signing/jwks-https.mjs +31 -8
  142. package/dist/lib/signing/jwks.d.mts +8 -0
  143. package/dist/lib/signing/jwks.d.ts +8 -0
  144. package/dist/lib/signing/middleware.js +2 -1
  145. package/dist/lib/signing/middleware.mjs +2 -1
  146. package/dist/lib/signing/publisher-pins.d.mts +11 -0
  147. package/dist/lib/signing/publisher-pins.d.ts +11 -0
  148. package/dist/lib/signing/publisher-pins.js +125 -0
  149. package/dist/lib/signing/publisher-pins.mjs +101 -0
  150. package/dist/lib/signing/server.d.mts +1 -0
  151. package/dist/lib/signing/server.d.ts +1 -0
  152. package/dist/lib/signing/types.d.mts +5 -0
  153. package/dist/lib/signing/types.d.ts +5 -0
  154. package/dist/lib/signing/verifier.js +50 -5
  155. package/dist/lib/signing/verifier.mjs +50 -5
  156. package/dist/lib/signing/webhook-verifier.d.mts +7 -2
  157. package/dist/lib/signing/webhook-verifier.d.ts +7 -2
  158. package/dist/lib/signing/webhook-verifier.js +42 -2
  159. package/dist/lib/signing/webhook-verifier.mjs +42 -2
  160. package/dist/lib/testing/storyboard/account-policy.d.mts +2 -0
  161. package/dist/lib/testing/storyboard/account-policy.d.ts +2 -0
  162. package/dist/lib/testing/storyboard/account-policy.js +35 -0
  163. package/dist/lib/testing/storyboard/account-policy.mjs +11 -0
  164. package/dist/lib/testing/storyboard/context.js +6 -0
  165. package/dist/lib/testing/storyboard/context.mjs +6 -0
  166. package/dist/lib/testing/storyboard/request-builder.js +12 -2
  167. package/dist/lib/testing/storyboard/request-builder.mjs +12 -2
  168. package/dist/lib/testing/storyboard/runner.js +3 -2
  169. package/dist/lib/testing/storyboard/runner.mjs +3 -2
  170. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  171. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  172. package/dist/lib/types/accept-proposal.d.ts +19 -1
  173. package/dist/lib/types/buy-products.d.ts +19 -1
  174. package/dist/lib/types/check-governance.d.ts +19 -1
  175. package/dist/lib/types/comply-test-controller.d.ts +19 -1
  176. package/dist/lib/types/control-media-buy.d.ts +19 -1
  177. package/dist/lib/types/core.generated.d.mts +14 -1
  178. package/dist/lib/types/core.generated.d.ts +14 -1
  179. package/dist/lib/types/create-media-buy.d.ts +14 -1
  180. package/dist/lib/types/get-media-buys.d.ts +14 -1
  181. package/dist/lib/types/get-products.d.ts +19 -1
  182. package/dist/lib/types/list-products.d.ts +19 -1
  183. package/dist/lib/types/refine-proposals.d.ts +19 -1
  184. package/dist/lib/types/request-proposals.d.ts +19 -1
  185. package/dist/lib/types/schemas.generated.d.ts +12 -3
  186. package/dist/lib/types/schemas.generated.js +4 -1
  187. package/dist/lib/types/schemas.generated.mjs +4 -1
  188. package/dist/lib/types/tools.generated.d.mts +14 -1
  189. package/dist/lib/types/tools.generated.d.ts +14 -1
  190. package/dist/lib/types/update-media-buy.d.ts +14 -1
  191. package/dist/lib/version.d.mts +3 -3
  192. package/dist/lib/version.d.ts +3 -3
  193. package/dist/lib/version.js +3 -3
  194. package/dist/lib/version.mjs +3 -3
  195. package/dist/lib/webhooks/index.d.mts +24 -0
  196. package/dist/lib/webhooks/index.d.ts +24 -0
  197. package/dist/lib/webhooks/index.js +50 -24
  198. package/dist/lib/webhooks/index.mjs +49 -24
  199. package/dist/lib/wholesale-feed-sync/index.d.mts +2 -0
  200. package/dist/lib/wholesale-feed-sync/index.d.ts +2 -0
  201. package/dist/lib/wholesale-feed-sync/index.js +7 -0
  202. package/dist/lib/wholesale-feed-sync/index.mjs +4 -0
  203. package/dist/lib/wholesale-feed-sync/mirror.d.mts +97 -0
  204. package/dist/lib/wholesale-feed-sync/mirror.d.ts +97 -0
  205. package/dist/lib/wholesale-feed-sync/mirror.js +350 -0
  206. package/dist/lib/wholesale-feed-sync/mirror.mjs +322 -0
  207. package/dist/lib/wholesale-feed-sync/sync.d.mts +13 -29
  208. package/dist/lib/wholesale-feed-sync/sync.d.ts +13 -29
  209. package/dist/lib/wholesale-feed-sync/sync.js +208 -281
  210. package/dist/lib/wholesale-feed-sync/sync.mjs +213 -281
  211. package/dist/lib/wholesale-feed-sync/types.d.mts +4 -3
  212. package/dist/lib/wholesale-feed-sync/types.d.ts +4 -3
  213. package/docs/README.md +6 -0
  214. package/docs/TYPE-SUMMARY.md +2 -2
  215. package/docs/guides/BUILD-AN-AGENT.md +2 -2
  216. package/docs/guides/BUYER-QUICKSTART-3.2.md +2 -0
  217. package/docs/guides/BUYER-STORAGE.md +3 -0
  218. package/docs/guides/FIRST-CALL-TO-A-SELLER.md +106 -0
  219. package/docs/guides/SIGNING-GUIDE.md +16 -7
  220. package/docs/guides/account-resolution.md +132 -10
  221. package/docs/llms.txt +3 -2
  222. package/docs/migration-14.0-to-14.1.md +85 -0
  223. package/docs/migration-14.x-rc-worksheet.md +4 -4
  224. package/docs/migration-4.x-to-5.x.md +1 -0
  225. package/docs/migration-agent-resolution-3.3.md +125 -0
  226. package/docs/recipes/verifying-inbound-webhooks.md +60 -15
  227. package/package.json +3 -2
  228. package/skills/adcp-brand.previous/SKILL.md +0 -200
  229. package/skills/adcp-creative.previous/SKILL.md +0 -305
  230. package/skills/adcp-governance.previous/SKILL.md +0 -566
  231. package/skills/adcp-measurement.previous/SKILL.md +0 -136
  232. package/skills/adcp-media-buy.previous/SKILL.md +0 -556
  233. package/skills/adcp-si.previous/SKILL.md +0 -206
  234. package/skills/adcp-signals.previous/SKILL.md +0 -204
@@ -1,206 +0,0 @@
1
- ---
2
- name: adcp-si
3
- description: Execute AdCP Sponsored Intelligence (SI) Protocol operations with brand agents - start conversational sessions, send messages, preview offerings, and manage session lifecycle. Use when users want to have conversations with brand agents, explore product offerings, or manage sponsored interactions.
4
- ---
5
-
6
- # AdCP Sponsored Intelligence (SI) Protocol
7
-
8
- This skill enables you to execute the AdCP SI Protocol with brand agents. SI enables conversational commerce sessions where users engage directly with brand agents for shopping, inquiries, and transactions.
9
-
10
- > **Buyer-side basics** — idempotency replay, `oneOf` variants, async `status:'submitted'` polling, error recovery from `adcp_error.issues[]` — live in `skills/call-adcp-agent/SKILL.md`. This skill covers per-task semantics only.
11
-
12
- ## Overview
13
-
14
- The SI Protocol provides 4 standardized tasks for managing conversational sessions:
15
-
16
- | Task | Purpose | Response Time |
17
- |------|---------|---------------|
18
- | `si_initiate_session` | Start a brand conversation | ~2-5s |
19
- | `si_send_message` | Send a message in an active session | ~1-5s |
20
- | `si_get_offering` | Preview offerings before starting | ~1-3s |
21
- | `si_terminate_session` | End a session | ~1s |
22
-
23
- ## Typical Workflow
24
-
25
- 1. **Preview** (optional): `si_get_offering` to see what the brand offers before consent
26
- 2. **Start session**: `si_initiate_session` with the user's `intent` and consent
27
- 3. **Converse**: `si_send_message` to relay user messages and action responses
28
- 4. **End**: `si_terminate_session` when done
29
-
30
- ---
31
-
32
- ## Task Reference
33
-
34
- ### si_initiate_session
35
-
36
- Start a conversational session with a brand agent.
37
-
38
- **Request:**
39
- ```json
40
- {
41
- "intent": "I'm interested in your winter jacket collection",
42
- "identity": {
43
- "consent_granted": true,
44
- "consent_timestamp": "2025-01-15T10:30:00Z",
45
- "consent_scope": ["email", "name"],
46
- "user": {
47
- "email": "user@example.com",
48
- "name": "Jane Smith",
49
- "locale": "en-US"
50
- }
51
- },
52
- "placement": "chatgpt_search"
53
- }
54
- ```
55
-
56
- **Key fields:**
57
- - `intent` (string, required): Natural language description of user intent — the conversation handoff from host to brand agent
58
- - `identity` (object, required): User identity with consent status
59
- - `consent_granted` (boolean, required): Whether user consented to share identity
60
- - `consent_timestamp` (string, optional): ISO 8601 timestamp of consent
61
- - `consent_scope` (array, optional): Fields user agreed to share
62
- - `user` (object, optional): PII (only if consent_granted is true) — `email`, `name`, `locale`
63
- - `anonymous_session_id` (string, optional): Session ID if no consent
64
- - `media_buy_id` (string, optional): AdCP media buy ID if triggered by advertising
65
- - `placement` (string, optional): Where the session was triggered
66
- - `offering_id` (string, optional): Brand-specific offering reference
67
- - `offering_token` (string, optional): Token from `si_get_offering` for session continuity
68
- - `supported_capabilities` (object, optional): Host platform capabilities (modalities, components, commerce)
69
- - `context` (object, optional): Opaque correlation data (e.g., `{"trace_id": "abc-123"}`) echoed unchanged in the response — never parsed by the brand agent
70
-
71
- **Response contains:**
72
- - `session_id`: Use in subsequent `si_send_message` and `si_terminate_session` calls
73
- - `greeting`: Brand agent's initial message
74
- - `suggested_actions`: Optional UI elements (buttons, quick replies)
75
-
76
- ---
77
-
78
- ### si_send_message
79
-
80
- Send a message within an active SI session.
81
-
82
- **Text message:**
83
- ```json
84
- {
85
- "session_id": "sess_abc123",
86
- "message": "Do you have this in size medium?"
87
- }
88
- ```
89
-
90
- **Action response (button click, form submit):**
91
- ```json
92
- {
93
- "session_id": "sess_abc123",
94
- "action_response": {
95
- "action": "add_to_cart",
96
- "element_id": "btn_add_cart_sku789",
97
- "payload": {
98
- "size": "M",
99
- "color": "navy"
100
- }
101
- }
102
- }
103
- ```
104
-
105
- **Key fields:**
106
- - `session_id` (string, required): Session ID from `si_initiate_session`
107
- - `message` (string, conditional): User's text message. Required unless `action_response` is provided.
108
- - `action_response` (object, conditional): Response to a UI action — `action`, `element_id`, `payload`. Required unless `message` is provided.
109
-
110
- **Response contains:**
111
- - `message`: Brand agent's response text
112
- - `suggested_actions`: Optional UI elements for next interaction
113
- - `components`: Optional rich UI components (product cards, carousels, forms)
114
-
115
- ---
116
-
117
- ### si_get_offering
118
-
119
- Get offering details and availability before initiating a session. Allows showing rich previews before asking for user consent.
120
-
121
- **Request:**
122
- ```json
123
- {
124
- "offering_id": "winter-collection-2025",
125
- "intent": "Looking for warm jackets under $200",
126
- "include_products": true,
127
- "product_limit": 5
128
- }
129
- ```
130
-
131
- **Key fields:**
132
- - `offering_id` (string, required): Offering identifier from the catalog
133
- - `intent` (string, optional): Natural language description of user intent for personalized results (no PII)
134
- - `include_products` (boolean, optional): Include matching products
135
- - `product_limit` (number, optional): Max products to return (default 5, max 50)
136
- - `context` (object, optional): Opaque correlation data echoed unchanged in the response — never parsed by the brand agent
137
-
138
- **Response contains:**
139
- - `offering`: Offering details (name, description, availability)
140
- - `products`: Matching products if `include_products` is true
141
- - `offering_token`: Pass to `si_initiate_session` for session continuity
142
-
143
- ---
144
-
145
- ### si_terminate_session
146
-
147
- End an SI session.
148
-
149
- **Request:**
150
- ```json
151
- {
152
- "session_id": "sess_abc123",
153
- "reason": "user_exit"
154
- }
155
- ```
156
-
157
- **Key fields:**
158
- - `session_id` (string, required): Session ID to terminate
159
- - `reason` (string, required): Why the session is ending — `handoff_transaction`, `handoff_complete`, `user_exit`, `session_timeout`, `host_terminated`
160
- - `termination_context` (object, optional): Conversation summary, transaction intent, and cause for the termination
161
- - `context` (object, optional): Opaque correlation data echoed unchanged in the response — never parsed by the brand agent
162
-
163
- **Reason values:**
164
- - `handoff_transaction`: User is being redirected to complete a transaction
165
- - `handoff_complete`: Transaction completed within the session
166
- - `user_exit`: User chose to leave
167
- - `session_timeout`: Session timed out
168
- - `host_terminated`: Host platform ended the session
169
-
170
- ---
171
-
172
- ## Key Concepts
173
-
174
- ### Consent Model
175
-
176
- SI sessions require explicit user consent before sharing PII:
177
- - `consent_granted: false` + `anonymous_session_id`: Anonymous session
178
- - `consent_granted: true` + `user` object: Personalized session with identity
179
-
180
- ### Session Lifecycle
181
-
182
- ```
183
- si_get_offering (optional) → si_initiate_session → si_send_message (repeat) → si_terminate_session
184
- ```
185
-
186
- Sessions are stateful. The brand agent maintains context across messages within a session.
187
-
188
- ### Placements
189
-
190
- Where the SI session was triggered:
191
- - `chatgpt_search`: Within ChatGPT search results
192
- - `publisher_article`: On a publisher's article page
193
- - `social_feed`: In a social media feed
194
- - `ctv_overlay`: On a CTV streaming overlay
195
-
196
- ---
197
-
198
- ## Error Handling
199
-
200
- Common error codes:
201
-
202
- - `SESSION_NOT_FOUND`: Invalid or expired session_id
203
- - `SESSION_EXPIRED`: Session timed out
204
- - `CONSENT_REQUIRED`: Attempting to share PII without consent
205
- - `OFFERING_NOT_FOUND`: Invalid offering_id
206
- - `RATE_LIMITED`: Too many messages in quick succession
@@ -1,204 +0,0 @@
1
- ---
2
- name: adcp-signals
3
- description: Execute AdCP Signals Protocol operations with signal agents - discover audience signals using natural language and activate them on DSPs or sales agents. Use when users want to find targeting data, activate audience segments, or work with signal providers.
4
- ---
5
-
6
- # AdCP Signals Protocol
7
-
8
- This skill enables you to execute the AdCP Signals Protocol with signal agents. Use the standard MCP tools (`get_signals`, `activate_signal`) exposed by the connected agent.
9
-
10
- > **Buyer-side basics** — idempotency replay, `oneOf` variants, async `status:'submitted'` polling, error recovery from `adcp_error.issues[]` — live in `skills/call-adcp-agent/SKILL.md`. This skill covers per-task semantics only.
11
-
12
- ## Overview
13
-
14
- The Signals Protocol provides 2 standardized tasks for discovering and activating targeting data:
15
-
16
- | Task | Purpose | Response Time |
17
- |------|---------|---------------|
18
- | `get_signals` | Discover signals using natural language | ~60s |
19
- | `activate_signal` | Activate a signal on a platform/agent | Minutes-Hours |
20
-
21
- ## Typical Workflow
22
-
23
- 1. **Discover signals**: `get_signals` with a natural language description of targeting needs
24
- 2. **Review options**: Evaluate signals by coverage, pricing, and deployment status
25
- 3. **Activate if needed**: `activate_signal` for signals not yet live on your platform
26
- 4. **Use in campaigns**: Reference the activation key in your media buy targeting
27
-
28
- ---
29
-
30
- ## Task Reference
31
-
32
- ### get_signals
33
-
34
- Discover signals based on natural language description, with deployment status across platforms.
35
-
36
- **Request:**
37
- ```json
38
- {
39
- "signal_spec": "High-income households interested in luxury goods",
40
- "destinations": [
41
- {
42
- "type": "platform",
43
- "platform": "the-trade-desk",
44
- "account": "agency-123"
45
- }
46
- ],
47
- "countries": ["US"],
48
- "filters": {
49
- "max_cpm": 5.0,
50
- "catalog_types": ["marketplace"]
51
- },
52
- "max_results": 5
53
- }
54
- ```
55
-
56
- **Key fields:**
57
- - `signal_spec` (string, conditional): Natural language description of desired signals. Required unless `signal_ids` is provided.
58
- - `destinations` (array, optional): Filter signals to those activatable on specific agents/platforms. When omitted, returns all signals available on the current agent. Each item: `type`, `platform`/`agent_url`, optional `account`.
59
- - `countries` (array, optional): ISO 3166-1 alpha-2 country codes where signals will be used
60
- - `filters` (object, optional): Filter by `catalog_types`, `data_providers`, `max_cpm`, `min_coverage_percentage`
61
- - `max_results` (number, optional): Limit number of results
62
-
63
- **Deployment types:**
64
- ```json
65
- // DSP platform
66
- { "type": "platform", "platform": "the-trade-desk", "account": "agency-123" }
67
-
68
- // Sales agent
69
- { "type": "agent", "agent_url": "https://salesagent.example.com" }
70
- ```
71
-
72
- **Response contains:**
73
- - `signals`: Array of matching signals with:
74
- - `signal_agent_segment_id`: Use this in `activate_signal`
75
- - `name`, `description`: Human-readable signal info
76
- - `data_provider`: Source of the signal data
77
- - `coverage_percentage`: Reach relative to agent's population
78
- - `deployments`: Status per platform with `is_live`, `activation_key`, `estimated_activation_duration_minutes`
79
- - `pricing`: CPM and currency
80
-
81
- ---
82
-
83
- ### activate_signal
84
-
85
- Activate a signal for use on a specific platform or agent.
86
-
87
- **Request:**
88
- ```json
89
- {
90
- "signal_agent_segment_id": "luxury_auto_intenders",
91
- "deployments": [
92
- {
93
- "type": "platform",
94
- "platform": "the-trade-desk",
95
- "account": "agency-123-ttd"
96
- }
97
- ]
98
- }
99
- ```
100
-
101
- **Key fields:**
102
- - `signal_agent_segment_id` (string, required): From `get_signals` response
103
- - `deployments` (array, required): Target deployment(s) with `type`, `platform`/`agent_url`, and optional `account`
104
-
105
- **Response contains:**
106
- - `deployments`: Array with activation results per target
107
- - `activation_key`: The key to use for targeting (segment ID or key-value pair)
108
- - `deployed_at`: ISO timestamp when activation completed
109
- - `estimated_activation_duration_minutes`: Time remaining if async
110
- - `errors`: Any warnings or errors encountered
111
-
112
- ---
113
-
114
- ## Key Concepts
115
-
116
- ### Deployment Targets
117
-
118
- Signals can be activated on two types of targets:
119
-
120
- **DSP Platforms:**
121
- ```json
122
- {
123
- "type": "platform",
124
- "platform": "the-trade-desk",
125
- "account": "agency-123"
126
- }
127
- ```
128
-
129
- **Sales Agents:**
130
- ```json
131
- {
132
- "type": "agent",
133
- "agent_url": "https://wonderstruck.salesagents.com"
134
- }
135
- ```
136
-
137
- ### Activation Keys
138
-
139
- When signals are live, the response includes an activation key for targeting:
140
-
141
- **Segment ID format (typical for DSPs):**
142
- ```json
143
- {
144
- "type": "segment_id",
145
- "segment_id": "ttd_segment_12345"
146
- }
147
- ```
148
-
149
- **Key-Value format (typical for sales agents):**
150
- ```json
151
- {
152
- "type": "key_value",
153
- "key": "audience_segment",
154
- "value": "luxury_auto_intenders"
155
- }
156
- ```
157
-
158
- ### Signal Types
159
-
160
- - **marketplace**: Licensed from data providers (CPM pricing)
161
- - **custom**: Built for specific principal accounts
162
- - **owned**: Private signals from your own data (no cost)
163
-
164
- ### Coverage Percentage
165
-
166
- Indicates signal reach relative to the agent's population:
167
- - 99%: Very broad signal (matches most identifiers)
168
- - 50%: Medium signal
169
- - 1%: Very niche signal
170
-
171
- ### Asynchronous Operations
172
-
173
- Signal activation may take time. Check the response:
174
- - `is_live: true` + `activation_key`: Ready to use immediately
175
- - `is_live: false` + `estimated_activation_duration_minutes`: Activation in progress
176
-
177
- Poll or use webhooks to check completion status.
178
-
179
- ---
180
-
181
- ## Error Handling
182
-
183
- Common error codes:
184
-
185
- - `SIGNAL_AGENT_SEGMENT_NOT_FOUND`: Invalid signal_agent_segment_id
186
- - `ACTIVATION_FAILED`: Could not activate signal
187
- - `ALREADY_ACTIVATED`: Signal already active on target
188
- - `DEPLOYMENT_UNAUTHORIZED`: Not authorized for platform/account
189
- - `AGENT_NOT_FOUND`: Private agent not visible to this principal
190
- - `AGENT_ACCESS_DENIED`: Not authorized for this signal agent
191
-
192
- Error responses include:
193
- ```json
194
- {
195
- "errors": [
196
- {
197
- "code": "DEPLOYMENT_UNAUTHORIZED",
198
- "message": "Account not authorized for this data provider",
199
- "field": "deployment.account",
200
- "suggestion": "Contact your account manager to enable access"
201
- }
202
- ]
203
- }
204
- ```