Background
scope3data/agentic-adapters ported all 13 platform adapters to @adcp/sdk v6 DecisioningPlatform shape during Phase B (PRs #207–#221). Across that fan-out, three wire-enum gaps surfaced where the v6 TypeScript surface anticipated a value the wire schema doesn't know about. Adapters had to claim adjacent values that fit imperfectly. Filing as a single tracking issue since the diagnosis is shared (adapter port surfaced cases the spec didn't anticipate).
Gap 1: creative-builder not in AdCPSpecialism
The v6 SDK has a CreativeBuilderPlatform TypeScript interface (referenced in RequiredPlatformsFor<S> mapping). The wire AdCPSpecialism enum only knows the legacy split: creative-template and creative-generative. Adapters using CreativeBuilderPlatform (e.g., AudioStack — a stateless brief→creative agent) had to claim creative-template even though structurally they're builders. The TS interface unifies both, but the wire enum still bifurcates.
Ask: add creative-builder to AdCPSpecialism and map both legacy values to it for backwards compat. The SDK's RequiredPlatformsFor already unifies them at the type level; the wire enum should follow.
Gap 2: MediaChannel has no generic audio
AudioStack outputs MP3 ads applicable to radio + streaming_audio + podcast — there's no umbrella audio value. Adapters had to advertise all three.
Current enum: display, olv, social, search, ctv, linear_tv, radio, streaming_audio, podcast, dooh, ooh, print, cinema, email, gaming, retail_media, influencer, affiliate, product_placement, sponsored_intelligence.
Ask: add audio as a parent / coverage value. Spec needs to define the relationship to the existing radio/streaming_audio/podcast values (semantic broadening vs. additional concrete value).
Gap 3: pricing models missing cpv, vcpm
Google Ads supports CPV (cost-per-view, video). Amazon DSP supports vCPM (viewable CPM). Neither is in the pricing-model enum — adapters used the values inline but they're not strictly-validated.
Ask: add cpv and vcpm to the pricing-model enum.
Why bundle
All three gaps share the same root cause: adapters from established ad-tech platforms encoding values the spec didn't anticipate at v3.0 freeze. Fixing them in one spec PR keeps the discussion coherent (semantics of "broader coverage" applies across all three) and lets adopters track one issue rather than three.
References
- Workspace migration PRs: scope3data/agentic-adapters#207 (snap), scope3data/agentic-adapters#218 (flashtalking —
CreativeAdServerPlatform), scope3data/agentic-adapters#219 (audiostack — CreativeBuilderPlatform).
- Each
packages/adapter-*/src/platform.ts carries inline TODO markers at the gap seams.
- Cross-ref: adcp-client#1145 (umbrella tracking issue for v6 interface gaps observed across the port).
Background
scope3data/agentic-adaptersported all 13 platform adapters to@adcp/sdkv6DecisioningPlatformshape during Phase B (PRs #207–#221). Across that fan-out, three wire-enum gaps surfaced where the v6 TypeScript surface anticipated a value the wire schema doesn't know about. Adapters had to claim adjacent values that fit imperfectly. Filing as a single tracking issue since the diagnosis is shared (adapter port surfaced cases the spec didn't anticipate).Gap 1:
creative-buildernot inAdCPSpecialismThe v6 SDK has a
CreativeBuilderPlatformTypeScript interface (referenced inRequiredPlatformsFor<S>mapping). The wireAdCPSpecialismenum only knows the legacy split:creative-templateandcreative-generative. Adapters usingCreativeBuilderPlatform(e.g., AudioStack — a stateless brief→creative agent) had to claimcreative-templateeven though structurally they're builders. The TS interface unifies both, but the wire enum still bifurcates.Ask: add
creative-buildertoAdCPSpecialismand map both legacy values to it for backwards compat. The SDK'sRequiredPlatformsForalready unifies them at the type level; the wire enum should follow.Gap 2:
MediaChannelhas no genericaudioAudioStack outputs MP3 ads applicable to radio + streaming_audio + podcast — there's no umbrella
audiovalue. Adapters had to advertise all three.Current enum:
display, olv, social, search, ctv, linear_tv, radio, streaming_audio, podcast, dooh, ooh, print, cinema, email, gaming, retail_media, influencer, affiliate, product_placement, sponsored_intelligence.Ask: add
audioas a parent / coverage value. Spec needs to define the relationship to the existing radio/streaming_audio/podcast values (semantic broadening vs. additional concrete value).Gap 3: pricing models missing
cpv,vcpmGoogle Ads supports CPV (cost-per-view, video). Amazon DSP supports vCPM (viewable CPM). Neither is in the pricing-model enum — adapters used the values inline but they're not strictly-validated.
Ask: add
cpvandvcpmto the pricing-model enum.Why bundle
All three gaps share the same root cause: adapters from established ad-tech platforms encoding values the spec didn't anticipate at v3.0 freeze. Fixing them in one spec PR keeps the discussion coherent (semantics of "broader coverage" applies across all three) and lets adopters track one issue rather than three.
References
CreativeAdServerPlatform), scope3data/agentic-adapters#219 (audiostack —CreativeBuilderPlatform).packages/adapter-*/src/platform.tscarries inlineTODOmarkers at the gap seams.