Skip to content

Generalize paid-media-creative variants for Google Ads customizers (deprecate localeVariants) #2178

@ejsuncy

Description

@ejsuncy

Background

PR #2174 added xdm:localeVariants to the paid-media-creative datatype, modeled on Meta's asset_feed_spec language_label (multi-language ads).

During connector implementation review, it surfaced that Google Ads CustomizerAttribute substitution produces materially different rendered headlines/bodies that are not keyed by locale. Example: a headline Get {CUSTOMIZER.discount} on Adobe Creative Cloud Subscription with a discount attribute linked at the ad-group-criterion level can resolve to 5%, 10%, 15%, 20% across different keywords. Each of these is a distinct served impression that downstream consumers (CJA Content Analytics → feature extraction → LLM sentiment analysis) need to snapshot independently.

Storing only the unresolved template string loses fidelity for the analytics pipeline.

Proposed Change

  • Soft-deprecate xdm:localeVariants on the paidMediaCreative definition (meta:status: deprecated + description prefix "Deprecated: Use xdm:variants instead..."). Connector has not yet implemented populating this field, so deprecation cost is minimal.
  • Add a more general xdm:variants array. Each variant carries:
    • xdm:variantID — stable identifier
    • xdm:language — BCP 47 tag, optional (set for Meta-style multi-language variants)
    • xdm:customizers[] — optional, list of resolved customizer attributes (name, type, value, scope). scope enum: customer | account | campaign | adGroup | adGroupCriterion | asset | other
    • Per-variant overrides of title, body, callToAction, destinationURL, displayURL, trackingURLs, assets
  • Add new creativeCustomizer and creativeVariant sub-definitions.
  • Migrate paid-media-creative.example.4.json from xdm:localeVariants to xdm:variants.
  • Add paid-media-creative.example.5.json demonstrating Google Ads customizer expansion (4 rendered variants for 5 / 10 / 15 / 20 % discount).

Network Coverage

Ad network Variant signal Stored in
Meta multi-language ads language_label xdm:language
Google Ads CustomizerAttribute resolved attribute name/value/scope xdm:customizers[]
Meta + Google with both axes both both fields populated
TikTok / Snapchat / LinkedIn locale and/or template substitution same shape

Reference

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions