integrations tools google-ads
Google Ads MCP for your AI agent
Cogny's Google Ads integration exposes 77 tools (7 read, 56 write, 14 destructive) to an AI agent over MCP. The same tools are available on every plan, from your own AI client or inside the Cogny app.
- 7readonly reads data.
- 56writecreates or changes something.
- 14destructivedeletes, removes or replaces something.
Over MCP your own AI client asks before it runs a write. To take a tool away from your agent, block it in Settings → Integrations. Plans, approvals and limits
set it up.
Add Cogny to your AI client once, then connect Google Ads in Cogny. Every Google Ads tool below appears in the client.
- Claude CodeRun
claude mcp add --transport http cogny https://app.cogny.com/mcp, then authorise in the browser. - Claude.aiSettings → Connectors → Add custom connector, URL
https://app.cogny.com/mcp, then log in and pick your workspace. - ChatGPTSettings → Apps → Advanced settings → Developer mode → Create app, URL
https://app.cogny.com/mcp, authentication OAuth. - CursorIn Cogny, Settings → Data & Integrations → Connect AI Clients shows the block to paste into
.mcp.json, with an API key. - CodexRun
codex mcp add cogny --url https://app.cogny.com/mcp.
Connecting and limits
Connecting requests one Google OAuth scope, https://www.googleapis.com/auth/adwords. It is the only scope Google offers for the Ads API and covers read and write. You do not need your own developer token or Google Cloud project.
Reading is done with GAQL through tool_execute_gaql, which reaches every reporting view, including search terms, asset performance, Shopping products and Performance Max listing groups.
A workspace can make 2,000 Google Ads tool calls per day.
Known gaps
- Product filters and product groups are written one level deep: all products, or include or exclude by brand, item ID, product type, custom label or condition. Nested trees and a separate bid per product group are set up in the Google Ads UI. Writing a filter with the tool replaces the existing tree.
- Editing a responsive search ad replaces its headline and description lists. Pinned positions are not kept.
- No tools for editing responsive display ads in place, video ad creation, labels, experiments or account-level settings such as billing and user access.
what each tool does.
Read 7 · only reads data
tool_list_accessible_accountsReadLists Google Ads accounts directly accessible by the user.tool_execute_gaqlReadExecutes a Google Ads Query Language (GAQL) query to get reporting data.tool_get_gaql_docReadGet Google Ads Query Language (GAQL) guides.tool_get_reporting_view_docReadGet Google Ads API reporting view docs.tool_search_geo_targetsReadSearch for geographic targeting locations by name.tool_generate_keyword_ideasReadGenerate keyword ideas for research and campaign planning.tool_list_audience_segmentsReadList available remarketing audience segments (user lists) for a Google Ads account.
Write 56 · creates or changes something
tool_update_campaign_statusWriteUpdate the status of a campaign.tool_update_campaign_ad_rotationWriteSet a campaign's ad serving optimization (ad rotation) status.tool_update_campaign_budgetWriteUpdate the daily budget of a campaign.tool_create_campaign_budgetWriteCreate a standalone campaign budget.tool_assign_campaign_budgetWriteAssign a different budget to a campaign.tool_update_campaign_bidding_strategyWriteUpdate the bidding strategy of a campaign.tool_create_portfolio_bidding_strategyWriteCreate a portfolio (shared) bidding strategy.tool_update_portfolio_bidding_strategyWriteUpdate a portfolio bidding strategy's name or CPA/ROAS target.tool_update_campaign_location_targetsWriteAdd or remove location targeting criteria on an existing campaign.tool_add_campaign_proximity_targetWriteAdd a proximity (radius) location targeting criterion to a campaign.tool_update_campaign_schedule_datesWriteSet the start and/or end date of an existing campaign.tool_create_campaignWriteCreate a new campaign with a budget.tool_update_ad_group_statusWriteUpdate the status of an ad group.tool_update_ad_group_ad_rotationWriteSet an ad group's ad rotation mode.tool_update_ad_group_cpc_bidWriteSet the default max CPC bid on an existing ad group (Manual CPC).tool_update_ad_group_target_roasWriteSet or clear the Target ROAS override on an ad group.tool_update_keyword_cpc_bidWriteSet the max CPC bid on an existing keyword (Manual CPC).tool_create_ad_groupWriteCreate a new ad group in a campaign.tool_add_keywords_to_ad_groupWriteAdd keywords to an ad group.tool_update_ad_statusWriteUpdate the status of an ad.tool_add_negative_keywords_to_campaignWriteAdd negative keywords to a campaign.tool_add_negative_keywords_to_ad_groupWriteAdd negative keywords to an ad group.tool_create_responsive_search_adWriteCreate a new Responsive Search Ad (RSA) in an ad group.tool_add_placements_to_ad_groupWriteAdd managed placements (specific websites) to a Display ad group.tool_add_webpage_target_to_ad_groupWriteAdd a dynamic ad target (WEBPAGE criterion) to a Dynamic Search Ads ad group.tool_create_responsive_display_adWriteCreate a Responsive Display Ad (RDA) in a Display ad group.tool_upload_assetWriteUpload an asset (text, callout, sitelink, structured snippet, image, or YouTube video) to a Google Ads account.tool_create_app_adWriteCreate an App Ad in an ad group.tool_link_asset_to_campaignWriteLink an existing asset to a campaign.tool_link_asset_to_ad_groupWriteLink an existing asset to an ad group.tool_link_asset_to_customerWriteLink an existing asset at the account (customer) level.tool_update_sitelink_assetWriteUpdate an existing sitelink asset's link text, descriptions or destination URL.tool_update_customer_tracking_settingsWriteSet account-level URL tracking for the whole Google Ads account.tool_update_campaign_tracking_settingsWriteSet campaign-level URL tracking for a single campaign.tool_create_asset_groupWriteCreate an asset group for a Performance Max campaign.tool_add_asset_to_asset_groupWriteAdd an existing asset to a Performance Max asset group.tool_update_asset_groupWriteUpdate an existing Performance Max asset group.tool_create_asset_group_signalWriteAdd an audience signal or search theme to a Performance Max asset group.tool_add_negative_keyword_list_to_campaignWriteLink a shared negative keyword list to a campaign.tool_create_negative_keyword_listWriteCreate a shared negative keyword list, optionally seeded with keywords and linked to campaigns in the same call.tool_add_keywords_to_negative_keyword_listWriteAdd negative keywords to an existing shared negative keyword list.tool_create_conversion_actionWriteCreate a new conversion action.tool_update_conversion_actionWriteUpdate an existing conversion action's settings.tool_add_audience_to_campaignWriteAdd a remarketing audience (user list) to a campaign.tool_add_audience_to_ad_groupWriteAdd a remarketing audience (user list) to an ad group.tool_update_audience_bid_modifierWriteUpdate the bid modifier on an existing audience criterion.tool_set_campaign_targeting_settingWriteSet the audience targeting mode for a campaign.tool_update_app_campaign_settingWriteUpdate the bidding strategy goal type on an existing App campaign (MULTI_CHANNEL).tool_update_customer_conversion_goalWriteChange a conversion goal between primary (biddable) and secondary (observation-only).tool_update_campaign_conversion_goalWriteChange a campaign-level conversion goal between primary (biddable) and secondary (observation-only).tool_set_campaign_goal_config_levelWriteSwitch a campaign between account-level and campaign-level conversion goals.tool_update_campaign_ad_scheduleWriteCreate an ad schedule (dayparting) criterion on a campaign with a bid modifier.tool_update_campaign_device_bid_modifierWriteUpdate the bid modifier for a device type (MOBILE, DESKTOP, TABLET) on a campaign.tool_update_campaign_location_bid_modifierWriteUpdate the bid modifier on a campaign's LOCATION criterion.tool_update_campaign_geo_target_typeWriteUpdate the location options (geo target type setting) on an existing campaign.tool_update_responsive_search_adWriteEdit an existing Responsive Search Ad (RSA) in place.
Destructive 14 · deletes, removes or replaces something
tool_remove_campaign_budgetDestructiveRemove (delete) a campaign budget.tool_remove_campaign_proximity_targetDestructiveRemove a proximity (radius) location targeting criterion from a campaign.tool_update_keyword_statusDestructiveUpdate the status of a keyword (pause/enable), or remove it entirely.tool_remove_negative_keyword_from_campaignDestructiveRemove a negative keyword from a campaign.tool_remove_webpage_target_from_ad_groupDestructiveRemove a dynamic ad target or exclusion from a DSA ad group.tool_remove_asset_from_campaignDestructiveUnlink an asset from a campaign so it stops serving there.tool_remove_asset_from_customerDestructiveUnlink an asset at the account level so it stops serving account-wide.tool_remove_asset_from_asset_groupDestructiveUnlink an asset from a Performance Max asset group.tool_remove_asset_group_signalDestructiveRemove an audience signal or search theme from a Performance Max asset group.tool_remove_negative_keyword_list_from_campaignDestructiveUnlink a shared negative keyword list from a campaign.tool_remove_keywords_from_negative_keyword_listDestructiveRemove negative keywords from a shared negative keyword list.tool_delete_negative_keyword_listDestructiveDelete a shared negative keyword list.tool_set_asset_group_listing_groupsDestructiveReplace the product filter (listing groups) of a Performance Max asset group.tool_set_shopping_product_groupsDestructiveReplace the product groups (listing group tree) of a standard Shopping ad group.
Exact input schemas come from tools/list once Google Ads is connected; the free plan is enough to check. Missing something? Your agent can ask for it with request_feature.
This page as markdownAll integrationsHow Cogny uses Google Ads