Skip to main content

Documentation Index

Fetch the complete documentation index at: https://leverhq.app/docs/llms.txt

Use this file to discover all available pages before exploring further.

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.

List all campaigns in the connected Google Ads account with performance metrics. Type: read
ParameterTypeRequiredDescription
customerIdstringNoGoogle Ads customer ID
Example prompt: “Show me all my Google Ads campaigns” Returns: Campaign name, status, daily budget, CPA, and CTR for each campaign.
Get details of a specific Google Ads campaign. Type: read
ParameterTypeRequiredDescription
customerIdstringNoGoogle Ads customer ID
campaignIdstringYesCampaign ID
Example prompt: “Get details for Google Ads campaign 12345” Returns: Campaign name, ID, status, budget, impressions, clicks, and CPA.
Execute a raw GAQL (Google Ads Query Language) query for advanced reporting. Returns paginated results (default 50 rows) with cursor-based pagination. Type: read
ParameterTypeRequiredDescription
customerIdstringNoGoogle Ads customer ID
querystringYesGAQL query string
limitnumberNoMaximum rows per page (default: 50, max: 10000). Response includes a cursor for the next page.
orderBystringNoSort results, e.g. metrics.clicks DESC. Injected as ORDER BY if not already in the query.
summarybooleanNoWhen true, returns aggregated stats (total count, summary metrics, top 10 rows) instead of full row data.
cursorstringNoPagination cursor from a previous response. Pass to fetch the next page.
Default 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.
Example prompt: “Run a GAQL query to get campaign performance for the last 30 days” Example prompt: “Get the top 25 search terms by clicks for campaign 12345” → Uses limit: 25, orderBy: "metrics.clicks DESC" Example prompt: “Give me a summary of all search terms” → Uses summary: true

Example GAQL Queries

Campaign performance:
SELECT
  campaign.name,
  campaign.status,
  metrics.impressions,
  metrics.clicks,
  metrics.cost_micros,
  metrics.conversions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESC
Ad group metrics:
SELECT
  ad_group.name,
  ad_group.status,
  metrics.impressions,
  metrics.clicks,
  metrics.average_cpc
FROM ad_group
WHERE campaign.id = 12345
  AND segments.date DURING LAST_7_DAYS
Keyword stats:
SELECT
  ad_group_criterion.keyword.text,
  ad_group_criterion.keyword.match_type,
  metrics.impressions,
  metrics.clicks,
  metrics.conversions
FROM keyword_view
WHERE segments.date DURING LAST_7_DAYS
ORDER BY metrics.impressions DESC
LIMIT 20
Keywords in an ad group:
SELECT
  ad_group_criterion.keyword.text,
  ad_group_criterion.keyword.match_type,
  ad_group_criterion.status
FROM ad_group_criterion
WHERE ad_group.id = 12345
  AND ad_group_criterion.type = 'KEYWORD'

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)
ParameterTypeRequiredDescription
customerIdstringNoGoogle Ads customer ID
campaignIdstringYesCampaign ID
campaignNamestringNoNew campaign name
statusENABLED | PAUSEDNoNew campaign status
dailyBudgetnumberNoNew daily budget in account currency
endDatestringNoCampaign end date (YYYY-MM-DD)
locationIdsstring[]NoGeo target constant IDs (replaces all existing locations)
languageIdsstring[]NoLanguage constant IDs (replaces all existing languages)
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.
Returns: A draft preview showing the proposed changes and a draftId. Call confirm_draft to execute.
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)
ParameterTypeRequiredDescription
customerIdstringNoGoogle Ads customer ID
campaignIdstringYesCampaign ID
adGroupNamestringYesAd group name
keywordsarrayYesKeywords (1-20)
keywords[].textstringYesKeyword text (max 80 chars)
keywords[].matchTypeBROAD | PHRASE | EXACTNoMatch type (default: BROAD)
headlinesstring[]YesRSA headlines (3-15, max 30 chars each)
descriptionsstring[]YesRSA descriptions (2-4, max 90 chars each)
finalUrlstringYesLanding page URL
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.
Returns: A draft preview showing the ad group, keywords, and ad to be created with a draftId. Call confirm_draft to execute.
Update a Google Ads ad group’s name. Goes through draft-preview-confirm. Type: write (draft-preview-confirm)
ParameterTypeRequiredDescription
customerIdstringNoGoogle Ads customer ID
adGroupIdstringYesAd group ID
adGroupNamestringYesNew ad group name
Example prompt: “Rename ad group 12345 to ‘Brand Keywords’” Returns: A draft preview with a draftId. Call confirm_draft to execute.
Add and/or remove keywords in an ad group. Goes through draft-preview-confirm. Type: write (draft-preview-confirm)
ParameterTypeRequiredDescription
customerIdstringNoGoogle Ads customer ID
adGroupIdstringYesAd group ID
addarrayNoKeywords to add (max 20)
add[].textstringYesKeyword text (max 80 chars)
add[].matchTypeBROAD | PHRASE | EXACTYesMatch type
removestring[]NoCriterion IDs of keywords to remove (max 20)
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.
Returns: A draft preview with a draftId. Call confirm_draft to execute.
Update CPC bid overrides on keywords in an ad group. Goes through draft-preview-confirm. Type: write (draft-preview-confirm)
ParameterTypeRequiredDescription
customerIdstringNoGoogle Ads customer ID
adGroupIdstringYesAd group ID
keywordsarrayYesKeywords with new bids (max 20)
keywords[].criterionIdstringYesKeyword criterion ID
keywords[].cpcBidnumberYesNew CPC bid in account currency
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.
Update a Responsive Search Ad’s headlines, descriptions, or landing page URL. Goes through draft-preview-confirm. Type: write (draft-preview-confirm)
ParameterTypeRequiredDescription
customerIdstringNoGoogle Ads customer ID
adGroupIdstringYesAd group ID containing the ad
adIdstringYesAd ID to update
headlinesstring[]NoNew headlines (3-15, max 30 chars each)
descriptionsstring[]NoNew descriptions (2-4, max 90 chars each)
finalUrlstringNoNew landing page URL
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.
Returns: A draft preview with a draftId. Call confirm_draft to execute.