Add Demand Gen Ad Group
Add a new ad group with targeting and ads to an EXISTING Demand Gen campaign.
Use this after create_demandgen_campaign to add additional ad groups. Each ad group can have:
- Different location targeting (e.g., US cities vs India cities vs UAE cities)
- Different audience targeting (e.g., marketing pros vs tech founders vs agency owners)
- Same or different ad creative (headlines, descriptions, images, videos)
Reuse Existing Audiences: To attach an existing audience (from Google Ads UI or a previous campaign), pass:
- audience_segments.existing_audience_id: numeric audience ID
- audience_segments.existing_audience_resource_name: full resource name
Create New Audiences: To create a new audience from interest segments:
- audience_segments.in_market_audience_ids: [80517, 80520]
- audience_segments.affinity_audience_ids: [92948] Use search_audiences to find segment IDs.
Parameters:
- campaign_id: Demand Gen campaign ID (from create_demandgen_campaign or list_campaigns)
- ad_group_name: Descriptive name
- Same creative fields as create_demandgen_campaign (headlines, descriptions, images, etc.)
- target_locations: Location targeting specific to this ad group
- audience_segments: Audience targeting specific to this ad group
Execution time: 10-20 seconds
Authorizations
API key from https://adspirer.ai/keys. Prefix sk_live_. Treat as a secret — never commit.
Headers
Client-generated UUID to make writes idempotent. Strongly recommended for write tools. A repeat call with the same key returns the cached result instead of re-executing. Example: 550e8400-e29b-41d4-a716-446655440000
Body
All tool arguments are wrapped in an arguments object. The fields accepted inside arguments are listed below — required fields are marked with a red asterisk.
Input schema for add_demandgen_ad_group tool.
Adds a new ad group with targeting and ads to an existing Demand Gen campaign. Each ad group can have its own location targeting, audience targeting, and creative.
Response
Tool executed successfully. data.text carries the human-readable result (markdown-friendly). data.quota shows your current usage against the plan limit. data.structured appears when the tool emits machine-parseable structured content. data.content appears for tools that return non-text blocks (images, resources).
Returned on HTTP 200. data.text is the primary human-readable output. data.quota is always present for billable calls. data.structured is set only when the tool emits machine-parseable structured content. data.content is set only when the tool emits non-text content blocks.

