Skip to content

Add Google Ads API v23 enum values to paid media field group schemas #2113

@ejsuncy

Description

@ejsuncy

Problem

The paid media XDM schemas currently lack enum values needed to properly represent Google Ads API v23 entities. Google Ads data mapped to XDM falls back to other for many fields (campaign types, ad types, bid strategies, etc.), losing important semantic information needed for cross-platform analytics.

Proposed Changes

Add new enum values to the following paid media field groups (additive only, no breaking changes):

  • campaignType: performance_max, demand_gen, multi_channel, local, local_services, hotel, travel, smart
  • adGroupType: hotel, travel, audio
  • bidStrategyType (adgroup-level): maximize_conversion_value, manual_cpm, manual_cpv, target_cpm, target_cpv, target_cpc, percent_cpc, commission, manual_cpa, fixed_cpm
  • bidStrategy (campaign-level): added same enum as adgroup-level bidStrategyType
  • adType: audio, call, smart, local, hotel, travel
  • assetType: dynamic, call, app_link, booking, location, hotel_property, message
  • servingStatus: LIMITED, LEARNING, NOT_ELIGIBLE
  • experienceType: audio
  • audienceType: logical, rule_based, crm_based (from Google Ads user_list_type)
  • productSource: GOOGLE_MERCHANT_CENTER
  • dimensionalBreakdowns.platform, position, and adPosition: kept as free-form text fields (the ingest process will maintain mappings on their side for flexibility)

Schema Design Clarifications

  • campaignType maps to Google Ads advertising_channel_type — the primary campaign channel identity
  • subType maps to Google Ads advertising_channel_sub_type for non-automated variants
  • automatedCampaignType is a cross-platform automation product classification (not a 1:1 mapping of any single platform field). PERFORMANCE_MAX removed from this enum since it's already captured by campaignType.
  • isAutomatedCampaign = true for inherently automated campaign types (performance_max, smart, demand_gen) and platform automation features

Rationale

These additions are derived from a comprehensive mapping of Google Ads API v23 enum values against existing XDM fields. All new values are intentionally platform-agnostic (e.g., hotel not google_hotel) to support cross-platform paid media analytics. The platform, position, and adPosition fields remain free-form text to maintain flexibility — the ingest process will handle value mapping.

Files Changed

  • components/fieldgroups/paid-media/core-paid-media-campaign-details.schema.json
  • components/fieldgroups/paid-media/core-paid-media-adgroup-details.schema.json
  • components/fieldgroups/paid-media/core-paid-media-ad-details.schema.json
  • components/fieldgroups/paid-media/core-paid-media-asset-details.schema.json
  • components/fieldgroups/paid-media/core-paid-media-metadata.schema.json
  • components/fieldgroups/paid-media/core-paid-media-experience-details.schema.json
  • components/fieldgroups/paid-media/core-paid-media-dimensional-breakdowns.schema.json
  • components/datatypes/paid-media/paid-media-targeting.schema.json

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions