Skip to content

Redesign Offer macros as dynamic creative data #2199

@bokelley

Description

@bokelley

Context

The macros field on TMP Context Match Offer (Map<string, string>) was originally described as macro substitution values that flow through GAM custom macros into creative tracking URLs. This is incorrect — Offer macros are dynamic creative data (sponsor labels, promo codes, catalog items) that don't flow through GAM's macro system.

In #2079 we stripped the Offer macros narrative from the universal macros docs to avoid conflating tracking URL macros ({TMPX}, {CACHEBUSTER}) with dynamic creative content. The schema field remains but its usage is documented as "surface-dependent, will be refined."

What needs to happen

  • Rename or restructure the Offer macros field to reflect its actual purpose (dynamic creative data, not tracking URL macros)
  • Define how dynamic creative values flow from Context Match offers to creative rendering (this is native DCO, not GAM macro substitution)
  • Consider whether this belongs in creative_manifest rather than a separate field
  • Document the coordination contract: who defines the expected keys, how the creative declares what it needs

Related

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    claude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions