# Google Ads

Create and manage full Google Ads campaigns: budgets, ad groups, ads, keywords, audiences and reports.

- Category: Marketing
- Connection: Sign in. Sign in with your Google Ads account. No API key to copy.
- Plans: Free: Not included; MCP only ($9/mo): 2,000 calls a month; Pro: 20,000 calls a month; Max: 20,000 calls a month
- Consent: Ad spend consent (https://krypton.bot/terms/#publishing). Before Google Ads connects, you confirm the ad spend consent: your bots can create and change campaigns that spend money from your ad account, billed to you by the ad platform.
- Vendor site: https://ads.google.com

## Tools

- Create budget (`google_ads_create_budget`): Create a campaign budget. amount_micros is the daily amount in account currency micros (1000000 = 1.00).
- Create campaign (`google_ads_create_campaign`): Create a campaign (Search, Display, Performance Max, Demand Gen, Shopping...). It is created PAUSED unless status ENABLED is set explicitly. Create the budget first.
- Create ad group (`google_ads_create_ad_group`): Create an ad group in a campaign. Created PAUSED unless status ENABLED is set explicitly.
- Create responsive search ad (`google_ads_create_responsive_search_ad`): Create a responsive search ad: 3-15 headlines (30 chars), 2-4 descriptions (90 chars), final URLs. Created PAUSED unless status ENABLED is set explicitly.
- Create responsive display ad (`google_ads_create_responsive_display_ad`): Create a responsive display ad from image assets (upload them with google_ads_upload_image_asset). Created PAUSED unless status ENABLED is set explicitly.
- Create ad (`google_ads_create_ad`): Create any other ad type (video responsive, Demand Gen, app, call...) from Ad REST JSON. Created PAUSED unless status ENABLED is set explicitly.
- Create asset (`google_ads_create_asset`): Create other assets from Asset REST JSON: text, sitelink, callout, structured snippet, call, lead form, or a YouTube video ({youtubeVideoAsset: {youtubeVideoId}}; Google Ads plays video from YouTube).
- Create label (`google_ads_create_label`): Create a label to organise campaigns, ad groups, ads and keywords.
- Create conversion action (`google_ads_create_conversion_action`): Create a conversion action (website tag, offline click import, phone calls...). Values in account currency units.
- Create bidding strategy (`google_ads_create_bidding_strategy`): Create a portfolio bidding strategy shared by campaigns. Targets in account currency micros.
- Create audience (`google_ads_create_audience`): Create an audience segment from REST JSON: a user list (rule-based website/app visitors, logical combinations), a custom audience (keywords, URLs, apps), or an audience. Customer Match uploads go through Google's Data Manager API, not this tool.
- Add keywords (`google_ads_add_keywords`): Add keywords (or negative keywords) to an ad group. Bids are max CPC in account currency micros. Valid keywords are added even if some fail.
- Add campaign targeting (`google_ads_add_campaign_targeting`): Add campaign targeting: locations and excluded locations (geo target ids from google_ads_search_geo_targets), languages, negative keywords, devices bid adjustments, ad schedule and audiences.
- Add ad group targeting (`google_ads_add_ad_group_targeting`): Add ad group audience and demographic targeting: user lists, interest and custom audiences, age ranges, genders, placements and topics. negative excludes them.
- Search (`google_ads_search`): Run a Google Ads Query Language (GAQL) query, e.g. SELECT campaign.id, campaign.name, metrics.clicks FROM campaign WHERE segments.date DURING LAST_7_DAYS. Paginated: pass next_page_token back as page_token.
- Search geo targets (`google_ads_search_geo_targets`): Find geo target ids for cities, regions and countries by name, for location targeting.
- Update budget (`google_ads_update_budget`): Change a campaign budget's amount (account currency micros, 1000000 = 1.00) or name.
- Update (`google_ads_update`): Update fields on any resource (campaign, ad group, ad, keyword bid, asset, conversion action, audience...) by resource name. fields are REST JSON (camelCase); only the given fields change.
- Upload image asset (`google_ads_upload_image_asset`): Upload an image (at most 5 MB) as an image asset, from base64 or a public https URL. Returns the asset resource name for ads, asset groups and links.
- Upload click conversions (`google_ads_upload_click_conversions`): Import offline conversions by click id (gclid, gbraid or wbraid). conversion_date_time like 2026-10-27 13:45:00+09:00. Valid rows are kept even if others fail.
- Apply label (`google_ads_apply_label`): Apply a label to campaigns, ad groups, ads (adGroupAds) or keywords (adGroupCriteria).
- Field metadata (`google_ads_field_metadata`): Look up which GAQL fields a resource has (selectable, filterable, segments, metrics) before writing a query.
- Generate keyword ideas (`google_ads_generate_keyword_ideas`): Keyword ideas with search volume and competition, from seed keywords and/or a URL. Paginated.
- Link assets (`google_ads_link_assets`): Attach assets to a campaign, ad group, asset group (Performance Max) or the whole account with a field type such as SITELINK, CALLOUT, HEADLINE, MARKETING_IMAGE, LOGO, YOUTUBE_VIDEO.
- List accounts (`google_ads_list_accounts`): List the Google Ads accounts this connection can reach, with name, currency, time zone and whether each is a manager.
- Mutate (`google_ads_mutate`): Advanced: several create/update/remove operations in one request (googleAds:mutate), e.g. a whole campaign with budget, ad groups, ads and Performance Max asset groups using temporary ids (customers/<id>/campaignBudgets/-1). Atomic unless partial_failure. Campaigns, ad groups, ads and asset groups without a status are created PAUSED.
- Remove (`google_ads_remove`): Remove resources by resource name (campaigns, ad groups, ads, keywords, labels, asset links...). This cannot be undone.
- Report (`google_ads_report`): Performance report without writing GAQL: pick a level, metrics, segments and a date range. cost_micros is in account currency micros (1000000 = 1.00).
- Set status (`google_ads_set_status`): Pause or enable campaigns, ad groups, ads (adGroupAds), keywords (adGroupCriteria) or asset groups. ENABLED makes them eligible to spend: use it only when the user explicitly asks to launch.

## Skills included

- google-ads-weekly-report: Weekly Google Ads report: spend, clicks, conversions, cost per conversion and the campaigns that changed most.
- google-ads-search-terms-cleanup: Find wasted Google Ads spend in search terms and propose negative keywords for the user to approve.
- google-ads-budget-pacing: Check whether each Google Ads campaign is on pace to spend its monthly budget and suggest changes.

## Questions

### How do I connect Google Ads to Krypton?

Open Integrations in Krypton, find Google Ads and choose Sign in. Every bot in the workspace can then use it, and you choose which bots get which apps.

### Which plan includes Google Ads?

MCP only with 2,000 calls a month, Pro and Max with 20,000. Calls are shared by every catalog app in the workspace. Past the monthly number they keep working from AI credits at $0.90 per 1,000 calls; the count resets on the 1st (UTC) and a retried call counts once.

### Can I use Google Ads from Claude or Cursor?

Yes. Connect it in your workspace, then add https://mcp.krypton.bot as a streamable HTTP MCP server with your kmcp_ workspace key. Calls count toward the same monthly number.

Back to the [MCP catalog](https://krypton.bot/mcp-catalog/).
