Skip to content
17 changes: 14 additions & 3 deletions components/datatypes/paid-media/paid-media-targeting.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -159,12 +159,23 @@
"xdm:audienceType": {
"type": "string",
"title": "Audience Type",
"enum": ["custom", "lookalike", "retargeting", "similar"],
"enum": [
"custom",
"lookalike",
"retargeting",
"similar",
"logical",
"rule_based",
"crm_based"
],
"meta:enum": {
"custom": "Custom Audience",
"lookalike": "Lookalike Audience",
"retargeting": "Retargeting Audience",
"similar": "Similar Audience"
"retargeting": "Retargeting Audience (includes Google Ads REMARKETING and EXTERNAL_REMARKETING)",
"similar": "Similar Audience",
"logical": "Logical Combination Audience (Google Ads)",
"rule_based": "Rule-Based Audience (Google Ads)",
"crm_based": "CRM-Based Audience (first-party customer data)"
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@
"lead_form",
"playable",
"interactive",
"audio",
"call",
"smart",
"local",
"hotel",
"travel",
"other"
],
"meta:enum": {
Expand All @@ -56,6 +62,12 @@
"lead_form": "Lead Form Ad",
"playable": "Playable Ad",
"interactive": "Interactive Ad",
"audio": "Audio Ad",
"call": "Call Ad",
"smart": "Smart Campaign Ad",
"local": "Local Ad",
"hotel": "Hotel Ad",
"travel": "Travel Ad",
"other": "Other Ad Type"
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@
"app_install",
"lead_generation",
"reach_frequency",
"hotel",
"travel",
"audio",
"other"
],
"meta:enum": {
Expand All @@ -48,6 +51,9 @@
"app_install": "App Install Ad Group",
"lead_generation": "Lead Generation Ad Group",
"reach_frequency": "Reach & Frequency Ad Group",
"hotel": "Hotel Ad Group",
"travel": "Travel Ad Group",
"audio": "Audio Ad Group",
"other": "Other Ad Group Type"
}
},
Expand Down Expand Up @@ -99,28 +105,48 @@
"enhanced_cpc",
"maximize_clicks",
"maximize_conversions",
"maximize_conversion_value",
"target_cpa",
"target_roas",
"target_impression_share",
"automatic",
"lowest_cost",
"cost_cap",
"bid_cap",
"min_roas"
"min_roas",
"manual_cpm",
"manual_cpv",
"target_cpm",
Comment thread
ejsuncy marked this conversation as resolved.
"target_cpv",
"target_cpc",
"percent_cpc",
"commission",
"manual_cpa",
"fixed_cpm"
],
"meta:enum": {
"manual_cpc": "Manual CPC",
"enhanced_cpc": "Enhanced CPC",
"maximize_clicks": "Maximize Clicks",
"maximize_conversions": "Maximize Conversions",
"maximize_conversion_value": "Maximize Conversion Value",
"target_cpa": "Target CPA",
"target_roas": "Target ROAS",
"target_impression_share": "Target Impression Share",
"automatic": "Automatic Bidding",
"lowest_cost": "Lowest Cost",
"cost_cap": "Cost Cap",
"bid_cap": "Bid Cap",
"min_roas": "Minimum ROAS"
"min_roas": "Minimum ROAS",
"manual_cpm": "Manual CPM",
"manual_cpv": "Manual CPV",
"target_cpm": "Target CPM",
"target_cpv": "Target CPV",
"target_cpc": "Target CPC",
"percent_cpc": "Percent CPC",
"commission": "Commission Bidding",
"manual_cpa": "Manual CPA",
"fixed_cpm": "Fixed CPM"
}
},
"xdm:targetCpa": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,13 @@
"lead_form",
"dynamic_education",
"youtube_video",
"dynamic",
"call",
"app_link",
"booking",
"location",
"hotel_property",
"message",
"other"
],
"meta:enum": {
Expand All @@ -50,6 +57,13 @@
"lead_form": "Lead Form Asset",
"dynamic_education": "Dynamic Education Asset",
"youtube_video": "YouTube Video Asset",
"dynamic": "Dynamic Asset",
"call": "Call Asset",
"app_link": "App Link Asset",
"booking": "Booking Asset",
"location": "Location Asset",
"hotel_property": "Hotel Property Asset",
"message": "Message Asset",
"other": "Other Asset Type"
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"xdm:budgetSettings": {
"xdm:isCampaignBudgetOptimization": true,
"xdm:spendCap": 2500,
"xdm:bidStrategy": "LOWEST_COST_WITHOUT_CAP",
"xdm:bidStrategy": "lowest_cost",
"xdm:bidAmount": 0
},
"xdm:scheduling": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"xdm:campaignType": {
"type": "string",
"title": "Campaign Type",
"description": "Type of campaign",
"description": "Primary campaign channel type. Maps to Google Ads advertising_channel_type. For automation-specific classification, see automatedCampaignType.",
"enum": [
"search",
"display",
Expand All @@ -45,6 +45,14 @@
"sponsored_display",
"sponsored_tv",
"traffic",
"performance_max",
"demand_gen",
"multi_channel",
"local",
"local_services",
"hotel",
"travel",
"smart",
"other"
],
"meta:enum": {
Expand All @@ -64,13 +72,21 @@
"sponsored_display": "Sponsored Display (Amazon)",
"sponsored_tv": "Sponsored TV (Amazon)",
"traffic": "Traffic Campaign",
"performance_max": "Performance Max Campaign (Google)",
"demand_gen": "Demand Gen Campaign (Google)",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I want to understand the difference between this field and automatedCampaignType?
Do we expect automatedCampaignType to be mapped with Campaign Type or Campaign Sub Type in case of Google Ads?

https://github.com/googleads/google-ads-python/blob/main/google/ads/googleads/v23/enums/types/advertising_channel_type.py
https://github.com/googleads/google-ads-python/blob/main/google/ads/googleads/v23/enums/types/advertising_channel_sub_type.py

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here what is the definition of AutomationCampaignType? Is it any campaign type using automated bid strategies like TCPA/TROAS etc?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good questions. I've clarified the mapping in the latest commit:

  • campaignType maps to Google Ads advertising_channel_type — it's the primary campaign channel identity (SEARCH, DISPLAY, PERFORMANCE_MAX, etc.)
  • automatedCampaignType is a cross-platform automation product classification, not a 1:1 mapping of any single Google field. For Google Ads, automated sub-types from advertising_channel_sub_type (e.g., SMART_CAMPAIGN → SMART_PLUS, APP_CAMPAIGN → AUTO_CAMPAIGN) map here.
  • subType (free-form string) maps to advertising_channel_sub_type for non-automated variants (e.g., VIDEO_NON_SKIPPABLE, VIDEO_SEQUENCE).
  • isAutomatedCampaign = true for inherently automated campaign types (performance_max, smart, demand_gen) and platform automation features (TikTok Smart+, Meta Advantage+).

I also removed PERFORMANCE_MAX from automatedCampaignType since it's already captured by campaignType — having it in both was creating ambiguity.

"multi_channel": "Multi-Channel Campaign",
"local": "Local Campaign",
"local_services": "Local Services Campaign",
"hotel": "Hotel Campaign",
"travel": "Travel Campaign",
"smart": "Smart Campaign",
"other": "Other Campaign Type"
}
},
"xdm:subType": {
"type": "string",
"title": "Campaign Sub-type",
"description": "More specific campaign sub-type or format"
"description": "More specific campaign sub-type or format. Maps to Google Ads advertising_channel_sub_type for non-automated variants (e.g., VIDEO_NON_SKIPPABLE, VIDEO_SEQUENCE)."
},
"xdm:promotedObject": {
"type": "object",
Expand Down Expand Up @@ -135,7 +151,55 @@
"xdm:bidStrategy": {
"type": "string",
"title": "Bid Strategy",
"description": "Bidding strategy for the campaign"
"description": "Bidding strategy for the campaign",
"enum": [
Comment thread
waykar-prashant marked this conversation as resolved.
"manual_cpc",
"enhanced_cpc",
"maximize_clicks",
"maximize_conversions",
"maximize_conversion_value",
"target_cpa",
"target_roas",
"target_impression_share",
"automatic",
"lowest_cost",
"cost_cap",
"bid_cap",
"min_roas",
"manual_cpm",
"manual_cpv",
"target_cpm",
"target_cpv",
"target_cpc",
"percent_cpc",
"commission",
"manual_cpa",
"fixed_cpm"
],
"meta:enum": {
"manual_cpc": "Manual CPC",
"enhanced_cpc": "Enhanced CPC",
"maximize_clicks": "Maximize Clicks",
"maximize_conversions": "Maximize Conversions",
"maximize_conversion_value": "Maximize Conversion Value",
"target_cpa": "Target CPA",
"target_roas": "Target ROAS",
"target_impression_share": "Target Impression Share",
"automatic": "Automatic Bidding",
"lowest_cost": "Lowest Cost",
"cost_cap": "Cost Cap",
"bid_cap": "Bid Cap",
"min_roas": "Minimum ROAS",
"manual_cpm": "Manual CPM",
"manual_cpv": "Manual CPV",
"target_cpm": "Target CPM",
"target_cpv": "Target CPV",
"target_cpc": "Target CPC",
"percent_cpc": "Percent CPC",
"commission": "Commission Bidding",
"manual_cpa": "Manual CPA",
"fixed_cpm": "Fixed CPM"
}
},
"xdm:bidAmount": {
"type": "number",
Expand Down Expand Up @@ -338,16 +402,15 @@
"xdm:isAutomatedCampaign": {
"type": "boolean",
"title": "Is Automated Campaign",
"description": "Whether this is an automated/smart campaign with machine learning optimization"
"description": "Whether this campaign uses platform-level automation with machine learning optimization. Should be true for inherently automated campaign types (e.g., performance_max, smart, demand_gen) and platform automation features (e.g., TikTok Smart+, Meta Advantage+)."
},
"xdm:automatedCampaignType": {
"type": "string",
"title": "Automated Campaign Type",
"description": "Specific type of automated campaign",
"description": "Cross-platform automation product classification. Only populated when isAutomatedCampaign is true. Normalizes automation approaches across platforms. Not a direct 1:1 mapping of any single platform field. For Google Ads, automated sub-types from advertising_channel_sub_type (e.g., SMART_CAMPAIGN, APP_CAMPAIGN) map here.",
"enum": [
"SMART_PLUS",
"SMART_PERFORMANCE_WEB",
"PERFORMANCE_MAX",
"MAXIMUM_DELIVERY",
"AUTO_CAMPAIGN",
"DYNAMIC_CREATIVE",
Expand All @@ -357,9 +420,8 @@
"meta:enum": {
"SMART_PLUS": "Smart+ Campaign (TikTok)",
"SMART_PERFORMANCE_WEB": "Smart Performance Web Campaign (TikTok)",
"PERFORMANCE_MAX": "Performance Max (Google)",
Comment thread
waykar-prashant marked this conversation as resolved.
"MAXIMUM_DELIVERY": "Maximum Delivery (LinkedIn)",
"AUTO_CAMPAIGN": "Auto Campaign (Amazon)",
"AUTO_CAMPAIGN": "Auto Campaign (Amazon, Google App Campaigns)",
"DYNAMIC_CREATIVE": "Dynamic Creative Optimization",
"GMV_MAX": "GMV Max Campaign (TikTok)",
"OTHER": "Other Automated Type"
Expand All @@ -382,6 +444,7 @@
"enum": [
"CATALOG",
"STORE",
"GOOGLE_MERCHANT_CENTER",
"TIKTOK_SHOP",
"AMAZON",
"SHOPIFY",
Expand All @@ -391,6 +454,7 @@
"meta:enum": {
"CATALOG": "Product Catalog",
"STORE": "Online Store",
"GOOGLE_MERCHANT_CENTER": "Google Merchant Center",
"TIKTOK_SHOP": "TikTok Shop",
"AMAZON": "Amazon Store",
"SHOPIFY": "Shopify Store",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@
"canvas",
"instant_experience",
"playable",
"audio",
"responsive_search",
"responsive_display",
"dynamic_assembly",
"other"
],
"meta:enum": {
Expand All @@ -58,6 +62,10 @@
"canvas": "Canvas Experience",
"instant_experience": "Instant Experience",
"playable": "Playable Experience",
"audio": "Audio Experience",
"responsive_search": "Responsive Search Experience (Google Ads RSA - multiple headlines/descriptions dynamically combined)",
"responsive_display": "Responsive Display Experience (Google Ads RDA - multiple headlines/descriptions/images dynamically combined)",
"dynamic_assembly": "Dynamic Assembly Experience (e.g., Performance Max - platform dynamically assembles ads from asset pool)",
"other": "Other Experience Type"
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@
"PAYMENT_FAILURE",
"BILLING_HOLD",
Comment thread
ejsuncy marked this conversation as resolved.
"POLICING_SUSPENDED",
"LIMITED",
"LEARNING",
"NOT_ELIGIBLE",
"OTHER"
],
"meta:enum": {
Expand All @@ -92,6 +95,9 @@
"PAYMENT_FAILURE": "Payment Method Failed",
"BILLING_HOLD": "Billing Hold",
"POLICING_SUSPENDED": "Suspended for Policy Violation",
"LIMITED": "Limited Delivery",
"LEARNING": "In Learning Phase",
"NOT_ELIGIBLE": "Not Eligible to Serve",
"OTHER": "Other Status"
}
},
Expand Down