Skip to content

compliance(sales-social): require preview_creative with catalog binding for substitution-safety coverage #4546

@bokelley

Description

@bokelley

Why

Spun off from #2651, which assumed sales platforms have no preview surface and proposed a new dry_run_substitution capability. That premise doesn't hold — Meta DPA, TikTok, Snap, Amazon Ads, and Walmart Connect all expose preview APIs that exercise catalog-item macro substitution (Meta's creative_preview, etc.). The right move is to require the existing preview_creative capability, not invent a new one.

What

Extend sales-social required_tools (static/compliance/source/specialisms/sales-social/index.yaml:8-12) to include preview_creative, with the obligation that preview output exercises catalog-item macro substitution when a catalog binding is provided.

Hook the existing substitution-observer-runner (modes html_inline and url_fetch) to the preview_creative response — same contract creative-generative already uses post-#2649.

Scope

  • sales-social only. sales-retail-media is not yet in the specialism enum; same requirement gets added when that specialism lands.
  • No new capability or schema. Reuses preview_creative and the existing observer runner.

Known coverage limitation

Preview-time substitution may diverge from serve-time substitution on platforms where the two execute different code paths. This is the same gap creative-generative carries today and should be documented in the storyboard rather than gated on a new attestation mechanism. Real-impression introspection is out of scope for 3.1.0 — file a follow-up if a platform demonstrates serve-time divergence in production.

Acceptance

Related

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions