-
Notifications
You must be signed in to change notification settings - Fork 4
Write Tools
John Williams edited this page Mar 6, 2026
·
1 revision
All write operations use the execute_google_ads_action tool with confirmed: true. The agent always previews changes and asks for confirmation before executing.
| Action | Description | Required Params |
|---|---|---|
create_campaign |
Create a new campaign (SEARCH, DISPLAY, SHOPPING, PMAX, VIDEO, DEMAND_GEN) |
name, budgetAmountDollars
|
update_campaign_status |
Pause or enable a campaign |
campaignId, status
|
remove_campaign |
Remove a campaign | campaignId |
update_campaign_targeting |
Update campaign name, target CPA/ROAS | campaignId |
update_bidding_strategy |
Change bidding strategy |
campaignId, biddingStrategy
|
| Action | Description | Required Params |
|---|---|---|
update_budget |
Change campaign budget |
budgetId, amountDollars
|
create_shared_budget |
Create a shared budget |
name, amountDollars
|
update_shared_budget |
Update shared budget amount | budgetId |
assign_shared_budget |
Assign campaign to shared budget |
campaignId, budgetId
|
| Action | Description | Required Params |
|---|---|---|
create_ad_group |
Create a new ad group |
campaignId, name
|
update_ad_group |
Update ad group status/bid/name | adGroupId |
remove_ad_group |
Remove an ad group | adGroupId |
| Action | Description | Required Params |
|---|---|---|
create_ad |
Create a Responsive Search Ad |
adGroupId, headlines, descriptions, finalUrl
|
create_display_ad |
Create a Responsive Display Ad | adGroupId |
update_rsa |
Update RSA headlines/descriptions |
adGroupId, adId, headlines, descriptions, finalUrl
|
update_ad_status |
Pause or enable an ad |
adGroupId, adId, status
|
remove_ad |
Remove an ad |
adGroupId, adId
|
| Action | Description | Required Params |
|---|---|---|
create_keyword |
Add keyword(s) to an ad group |
adGroupId, keyword
|
update_keyword_status |
Pause or enable a keyword |
criterionId, adGroupId, status
|
update_keyword_bid |
Change keyword CPC bid |
adGroupId, criterionId, cpcBidMicros
|
remove_keyword |
Remove a keyword |
adGroupId, criterionId
|
create_negative_keyword |
Add campaign negative keyword |
campaignId, keyword
|
remove_negative_keyword |
Remove campaign negative keyword |
campaignId, criterionId
|
| Action | Description | Required Params |
|---|---|---|
create_sitelink |
Create sitelink extension |
campaignId, linkText, finalUrl
|
create_callout |
Create callout extension | calloutText |
create_structured_snippet |
Create structured snippet |
header, values (3+ items) |
create_call_extension |
Create call extension |
phoneNumber, countryCode
|
create_price_extension |
Create price extension |
type, priceOfferings (3+ items) |
create_promotion_extension |
Create promotion extension |
promotionTarget, finalUrl
|
create_lead_form_extension |
Create lead form extension |
headline, businessName, description, privacyPolicyUrl, fields
|
create_image_extension |
Create image extension | imageUrl |
| Action | Description | Required Params |
|---|---|---|
create_label |
Create a label | name |
apply_label |
Apply label to campaign/ad group |
labelId, campaignId or adGroupId
|
| Action | Description | Required Params |
|---|---|---|
create_user_list |
Create audience list |
name, listType
|
add_audience_to_campaign |
Add audience targeting |
campaignId, userListId
|
remove_audience_from_campaign |
Remove audience targeting |
campaignId, criterionId
|
add_placement |
Add display placement |
adGroupId, url
|
remove_placement |
Remove display placement |
adGroupId, criterionId
|
add_topic |
Add topic targeting |
adGroupId, topicId
|
remove_topic |
Remove topic targeting |
adGroupId, criterionId
|
add_content_exclusion |
Exclude content label |
campaignId, contentLabelType
|
| Action | Description | Required Params |
|---|---|---|
add_device_bid_modifier |
Set device bid adjustment |
campaignId, deviceType, bidModifier
|
add_location_bid_modifier |
Set location bid adjustment |
campaignId, geoTargetId
|
remove_campaign_criterion |
Remove campaign criterion |
campaignId, criterionId
|
| Action | Description | Required Params |
|---|---|---|
create_ad_schedule |
Set ad schedule |
campaignId, dayOfWeek, startHour, endHour
|
remove_ad_schedule |
Remove ad schedule |
campaignId, criterionId
|
update_ad_schedule_bid |
Adjust schedule bid modifier |
campaignId, criterionId, bidModifier
|
| Action | Description | Required Params |
|---|---|---|
add_ip_exclusion |
Exclude an IP address |
campaignId, ipAddress
|
remove_ip_exclusion |
Remove IP exclusion |
campaignId, criterionId
|
| Action | Description | Required Params |
|---|---|---|
create_conversion_action |
Create conversion action |
name, type, category
|
update_conversion_action |
Update conversion action | conversionActionId |
| Action | Description | Required Params |
|---|---|---|
apply_recommendation |
Apply Google's recommendation | recommendationResourceName |
dismiss_recommendation |
Dismiss a recommendation | recommendationId |
| Action | Description | Required Params |
|---|---|---|
create_experiment |
Create A/B test experiment |
name, campaignId, trafficSplitPercent
|
start_experiment |
Start an experiment | experimentId |
end_experiment |
End/promote experiment | experimentId |
| Action | Description | Required Params |
|---|---|---|
create_asset_group |
Create PMax asset group |
campaignId, name
|
add_asset_to_group |
Add asset to PMax group |
assetGroupId, assetId, fieldType
|
remove_asset_from_group |
Remove asset from PMax group |
assetGroupId, assetId, fieldType
|
upload_image_asset |
Upload image asset |
imageData, name
|
create_text_asset |
Create text asset | text |
| Action | Description | Required Params |
|---|---|---|
mc_insert_product |
Add product to Merchant Center |
merchantId, product
|
mc_list_products |
List products | merchantId |
mc_update_product |
Update product |
merchantId, productId, updates
|
mc_delete_product |
Delete product |
merchantId, productId
|
mc_get_product_status |
Get product statuses | merchantId |
| Action | Description | Required Params |
|---|---|---|
batch_operations |
Execute multiple operations in phases |
operations (array, max 20) |
Batch execution order: create_ad_group → create_keyword → create_ad → create_negative_keyword → other mutations.
All write operations follow the Confirm → Execute → Post-check protocol:
- Confirm: Agent describes what will change, shows preview, asks for user approval
-
Execute: Only runs with
confirmed: true - Post-check: Pre-write snapshot is compared against post-write state for validation