Google Ads Tools
Tools for creating, reading, updating, and optimizing Google Ads campaigns, ad groups, keywords, and ads.If you have only one Google Ads account connected, the
customerId parameter is optional — Lever auto-resolves it. If multiple accounts are connected, you must specify the ID. Use list_connections to find your account IDs.google_ads_list_campaigns
List all campaigns in the connected Google Ads account with performance metrics. Type: read
Example prompt: “Show me all my Google Ads campaigns”
Returns: Campaign name, status, daily budget, CPA, and CTR for each campaign.
google_ads_get_campaign
Get details of a specific Google Ads campaign. Type: read
Example prompt: “Get details for Google Ads campaign 12345”
Returns: Campaign name, ID, status, budget, impressions, clicks, and CPA.
google_ads_query
Execute a raw GAQL (Google Ads Query Language) query for advanced reporting. Returns paginated results (default 50 rows) with cursor-based pagination. Type: readDefault limit is 50 rows. Pass
limit: 10000 for larger result sets, or use cursor for pagination.
GAQL does not support OFFSET — use cursor-based pagination instead.
summary cannot be combined with limit or cursor.limit: 25, orderBy: "metrics.clicks DESC"
Example prompt: “Give me a summary of all search terms”
→ Uses summary: true
Example GAQL Queries
Campaign performance:google_ads_update_campaign
Update a Google Ads campaign’s name, status, budget, end date, or targeting. Goes through draft-preview-confirm — returns a preview that must be confirmed before the change executes. Type: write (draft-preview-confirm)
Example prompt: “Pause campaign 12345” or “Target the US and Canada for campaign 12345”
At least one field must be provided. Targeting updates replace all existing targets of that type. Common location IDs:
2840 (US), 2124 (Canada), 2826 (UK). Common language IDs: 1000 (English), 1003 (Spanish), 1001 (French).Budget updates on shared budgets (budgets linked to multiple campaigns) are not yet supported.
Use the Google Ads UI for shared budget changes.
draftId. Call confirm_draft to execute.
google_ads_create_ad_group
Create a new ad group with keywords and a responsive search ad in an existing Search campaign. Goes through draft-preview-confirm. Type: write (draft-preview-confirm)
Example prompt: “Create a new ad group ‘Running Shoes’ in campaign 12345 with keywords ‘running shoes’ and ‘athletic footwear’”
Only Search campaigns are supported. The ad group, keywords, and ad are created atomically — if any part fails, nothing is created.
draftId. Call confirm_draft to execute.
google_ads_update_ad_group
Update a Google Ads ad group’s name. Goes through draft-preview-confirm. Type: write (draft-preview-confirm)
Example prompt: “Rename ad group 12345 to ‘Brand Keywords’”
Returns: A draft preview with a
draftId. Call confirm_draft to execute.
google_ads_manage_keywords
Add and/or remove keywords in an ad group. Goes through draft-preview-confirm. Type: write (draft-preview-confirm)
Example prompt: “Add ‘running shoes’ and remove keyword 456 from ad group 123”
At least one of
add or remove must be provided. Additions are processed before removals. Get criterion IDs using google_ads_query on ad_group_criterion.draftId. Call confirm_draft to execute.
google_ads_update_keyword_bids
Update CPC bid overrides on keywords in an ad group. Goes through draft-preview-confirm. Type: write (draft-preview-confirm)
Example prompt: “Set the CPC bid for keyword 123 in ad group 789 to $2.50”
Returns: A draft preview with a
draftId. Call confirm_draft to execute.
google_ads_update_ad
Update a Responsive Search Ad’s headlines, descriptions, or landing page URL. Goes through draft-preview-confirm. Type: write (draft-preview-confirm)
Example prompt: “Update the headlines on ad 456 in ad group 123”
At least one field must be provided. When updating headlines or descriptions, provide the complete set — they replace all existing values. Only Responsive Search Ads are supported.
draftId. Call confirm_draft to execute.
