Skip to Content
Tool referenceAdd ad group to Google campaign

Add ad group to Google campaign (adsap_google_create_ad_group)

Platform: Google Ads · Read or write: Write · Plan: All plans · Consumes a task: Yes · Preview supported: Yes

What it does

Adds an ad group to an existing Search, Display or Demand Gen campaign, with optional keywords (Search only) and one optional ad. It can also add one responsive search ad to an ad group that already exists. If the parent campaign is active, the new ad group starts paused unless you say otherwise. Ask for a preview first.

Parameters

Descriptions are shortened from the tool schema. Your assistant sees the full text.

NameTypeRequiredDescription
ad_account_idstringYesBare 10-digit Google Ads customer ID (from adsap_google_list_ad_accounts). No dashes, no act_ prefix.
campaign_idstringYesNumeric id of the EXISTING campaign to add the ad group to (from adsap_google_list_campaigns).
channelone of search, display, demand_genYesMust match the campaign’s advertising channel type. The workflow verifies and rejects mismatches.
ad_group_idstringNoEXISTING-GROUP MODE: numeric id of an EXISTING ad group (from the campaign’s ad group list)… Mutually exclusive with ad_group.
ad_groupobjectNoCREATE MODE: the new ad group to create. Mutually exclusive with ad_group_id: exactly one of the two is required.
ad_group.namestringYesAd group name (Google requires uniqueness within the campaign).
ad_group.statusone of ENABLED, PAUSEDNoOmit for the safe default: PAUSED when the parent campaign is ACTIVE, ENABLED when it is PAUSED.
ad_group.keywordsarray of objectNoSEARCH ONLY. Optional, but a Search ad group without keywords gets no traffic.
ad_group.optimized_targetingbooleanNoDISPLAY / DEMAND_GEN only (default true).
ad_group.channelsobjectNoDEMAND_GEN only: channel controls: strategy OR selected, not both. Defaults to ALL_CHANNELS.
ad_group.geoobjectNoDEMAND_GEN only (REQUIRED there): Demand Gen targets geo at the AD GROUP level. Invalid for search/display: their geo lives on the campaign.
ad_group.language_idsarray of stringNoDEMAND_GEN only. Language constant ids (default 1000 = English).
adobjectNoOptional: omit to create the ad group without an ad (it will not serve until one is added).
ad.final_urlstringYesLanding page URL. Required whenever an ad is included.
ad.statusone of ENABLED, PAUSEDNoEXISTING-GROUP MODE ONLY (ad_group_id): the new ad’s own status: defaults to PAUSED so it never serves unreviewed. In create mode the ad is ENABLED inside the group whose status you control.
ad.headlinesanyNoSEARCH: 3-15 of { text (max 30), pinned_field? HEADLINE_1..3 }. DISPLAY/DG multi_asset: 1-5 plain strings max 30.
ad.descriptionsanyNoSEARCH: 2-4 of { text (max 90), pinned_field? DESCRIPTION_1..2 }. DISPLAY/DG: 1-5 plain strings max 90.
ad.path1stringNoSEARCH only: display path segment 1.
ad.path2stringNoSEARCH only: display path segment 2 (requires path1).
ad.business_namestringNoDISPLAY / DEMAND_GEN: required.
ad.long_headlinestringNoDISPLAY only: exactly one, required.
ad.landscape_image_asset_idsarray of stringNoImage ASSET ids (1.91:1). DISPLAY: >=1 required.
ad.square_image_asset_idsarray of stringNoImage ASSET ids (1:1). DISPLAY: >=1 required.
ad.logo_asset_idsarray of stringNoSquare logo ASSET ids. DG: 1-5 required; DISPLAY: optional.
ad.landscape_logo_asset_idsarray of stringNoDISPLAY only: landscape (4:1) logos.
ad.youtube_video_asset_idsarray of stringNoDISPLAY only: up to 5 YouTube video ASSET ids.
ad.call_to_action_textstringNoDISPLAY only: free-text CTA.
ad.ad_typeone of multi_asset, video_responsiveNoDEMAND_GEN: required: ‘multi_asset’ image ad or ‘video_responsive’ YouTube ad.
ad.namestringNoDEMAND_GEN: ad name (defaulted if omitted).
ad.call_to_actionstringNoDEMAND_GEN: CTA enum like LEARN_MORE, SHOP_NOW.
ad.long_headlinesarray of stringNoDG video_responsive: 1-5 long headlines max 90.
ad.portrait_image_asset_idsarray of stringNoDG multi_asset: portrait (4:5) images.
ad.tall_portrait_image_asset_idsarray of stringNoDG multi_asset: tall portrait (9:16) images.
ad.youtube_video_idsarray of stringNoDG video_responsive: 1-5 YouTube VIDEO ids (not asset ids).
dry_runbooleanNoPreview only: the request is validated and the resolved payload returned, nothing is created or changed.

Example prompts

  • “Add an ad group called Winter Boots to my Search campaign with these keywords and a new responsive search ad.”
  • “Add a second responsive search ad to the Trail Shoes ad group in campaign 1234567890.”
  • “Preview a new Demand Gen ad group targeting Germany with this image ad.”

Notes

Performance Max, App and Shopping campaigns are not supported. An ad group created without an ad does not serve until an ad is added.

  • adsap_google_list_extensions: List the extensions (sitelinks, callouts, structured snippets, call, promotion, price, image/AD_IMAGE) linked to Google Ads campaigns AND…
  • adsap_google_list_feed_labels: List the distinct Merchant Center feed labels visible to a Google Ads account (from the products synced via its Merchant Center link).
  • adsap_google_manage_extension: Manage Google Ads extensions (sitelinks, callouts, structured snippets, call, promotion, price) at CAMPAIGN level (default) or ACCOUNT…

Guide

Read Managing Google Ads in bulk for the workflow around this tool, and the Tool reference for every tool.

Last updated on