Problem
get_audience_performance and GAQL custom_audience queries return audience segments without indicating which campaign types they're compatible with. This leads to proposing audience assignments that are impossible to execute.
Specifically: custom segments (custom_audience resource) cannot be assigned to Search campaigns — they only work in Display, Video, PMax, and Demand Gen. This is a Google Ads platform limitation, not an API limitation.
We spent significant time investigating why custom competition audiences ("Visitantes ES/EN competencia") couldn't be assigned to Search campaigns via the UI, only to discover the fundamental incompatibility.
Current behavior
get_audience_performance returns audience data for all campaign types without distinguishing compatibility
- GAQL queries on
custom_audience list segments without indicating which campaign types accept them
- Orchestration rules don't document the audience type → campaign type compatibility matrix
- No validation exists to warn when proposing incompatible audience assignments
Suggested improvements
1. Add compatibility info to get_audience_performance output
When the tool returns audience results, include a note or warning for audiences that cannot be assigned to the campaign's type. For example:
⚠️ Note: Custom segments (custom_audience) cannot be used in Search campaigns.
They are only compatible with Display, Video, Performance Max, and Demand Gen campaigns.
2. Document the compatibility matrix in orchestration rules
Add to the canonical rules file:
| Audience Type |
Resource |
Search |
Display |
Video |
PMax |
Demand Gen |
| Custom segments |
custom_audience |
❌ |
✅ |
✅ |
✅ |
✅ |
| Remarketing lists |
user_list |
✅ |
✅ |
✅ |
✅ |
✅ |
| Affinity / In-market |
user_interest |
✅ |
✅ |
✅ |
✅ |
✅ |
3. Optional: validation helper
A validate_audience_assignment check (or inline logic in audience tools) that cross-references audience type with campaign type before suggesting assignment operations.
Context
- AdLoop version: v0.9.0
- Campaign types affected: SEARCH
- Audience resources affected:
custom_audience (type AUTO, INTEREST, PURCHASE_INTENT)
- GAQL resources:
custom_audience, campaign_criterion
Problem
get_audience_performanceand GAQLcustom_audiencequeries return audience segments without indicating which campaign types they're compatible with. This leads to proposing audience assignments that are impossible to execute.Specifically: custom segments (
custom_audienceresource) cannot be assigned to Search campaigns — they only work in Display, Video, PMax, and Demand Gen. This is a Google Ads platform limitation, not an API limitation.We spent significant time investigating why custom competition audiences ("Visitantes ES/EN competencia") couldn't be assigned to Search campaigns via the UI, only to discover the fundamental incompatibility.
Current behavior
get_audience_performancereturns audience data for all campaign types without distinguishing compatibilitycustom_audiencelist segments without indicating which campaign types accept themSuggested improvements
1. Add compatibility info to
get_audience_performanceoutputWhen the tool returns audience results, include a note or warning for audiences that cannot be assigned to the campaign's type. For example:
2. Document the compatibility matrix in orchestration rules
Add to the canonical rules file:
custom_audienceuser_listuser_interest3. Optional: validation helper
A
validate_audience_assignmentcheck (or inline logic in audience tools) that cross-references audience type with campaign type before suggesting assignment operations.Context
custom_audience(type AUTO, INTEREST, PURCHASE_INTENT)custom_audience,campaign_criterion