Skip to main content

What HireOtto can do in Google Ads

HireOtto connects your AI client to the Google Ads accounts you authorize. Use the tools reference to check which tasks are read-only, which can change an account, and which defaults apply before you run a prompt.
  • Read and report: discover accessible accounts, inspect campaign structure and settings, analyze performance, run audits, review change history, research keywords, and retrieve supported Search Console data.
  • Create and update: manage supported campaigns, ad groups, ads, keywords, negative keyword lists, budgets, bidding settings, assets, conversion actions, Performance Max campaigns, and Demand Gen campaigns.
  • Audit safely: daily operations, weekly optimization, and account health audits are read-only and available on the Agency plan.
  • Verify every write: name the customer ID and affected entities, review the proposed values, approve the change, and read the live setting back after the tool finishes.
Your Google Ads role still controls what the connected account can read or change. Search Console uses a separate Google permission and remains read-only.

Account discovery

List all Google Ads accounts accessible to your connected Google login(s). Options
  • Refresh live from Google (useful after being added to new accounts)
  • Filter by a specific connected profile / email
Example prompts

Account hygiene

Five point-in-time checks you can run on any account. Good first step whenever you take on a new account or do a quarterly review. What you can check
  • Auto-tagging — whether auto-tagging is enabled. HireOtto can also turn it on if it’s off.
  • Auto-apply recommendations — which Google recommendations are set to apply automatically. HireOtto can disable them.
  • Disapproved ads — any ads currently disapproved, with disapproval reasons.
    • Disapproved-ad review excludes removed ads, ad groups, and campaigns by default, while including paused entities. Set include_removed=true to include removed entities or include_paused=false to exclude paused entities at every level. Results include ad, ad-group, and campaign statuses for easier cleanup decisions.
  • Negative keywords — negative keywords at the campaign and ad group level. Optionally filtered to a specific campaign.
  • Conversion tracking setup — review conversion tracking status, conversion ownership, linked GA4 property evidence, and GA4 key events that have been imported or may be available to import into Google Ads. This is a read-only check; it does not create conversion actions or install tracking tags.
Options
  • Account to audit (required; HireOtto will ask if you have multiple)
  • For auto-tagging: whether to apply the fix, or just report
  • For auto-apply: whether to disable the subscriptions, or just report
  • For negative keywords: optionally filter to a specific campaign
Example prompts

Discovery & listing

Browse the structure of any account — campaigns, ad groups, keywords, ads, and negative keyword lists. These are navigation actions, not performance reports; they return IDs and status, not metrics. What you can list
  • Campaigns (ID, name, status)
  • Ad groups (filterable by campaign)
  • Keywords / positive keywords (filterable by campaign or ad group)
  • Ads (filterable by campaign, ad group, or ad ID)
  • Negative keyword lists (optionally include the keywords inside each list)
  • Campaign settings — bidding strategy, geo targeting, networks, ad schedule, devices
  • Performance Max asset groups, assets, and signals (see Performance Max section)
  • Audiences available in the account (used for PMax audience signals)
  • Demand Gen campaign settings — goal, bidding, devices, geo targeting
  • Demand Gen ad group settings — channel controls, locations, languages, audiences
  • Demand Gen ads and creative asset references
  • Dynamic Search Ads (DSA) webpage targets — positive and negative targets, targeting conditions, status, bids, and URL tracking settings.
  • DSA domain categories — Google-generated categories for the domain configured on a DSA-enabled Search campaign.
  • DSA page feeds — existing page-feed asset sets, linked campaigns, page URLs, custom labels, and asset IDs.
  • Ad customizers — attributes, scoped values, responsive search ad references, inline fallbacks, and potential inconsistencies.
Example prompts

Performance reporting

Pull metrics for any level of your account across any date range. All reports support filtering, sorting, and CSV export. Available reports Common reports
  • Campaign performance
  • Ad group performance
  • Ad performance
  • Keyword performance
  • Search terms report
  • DSA search terms report — search queries that triggered Dynamic Search Ads, including Google’s generated headlines and selected landing pages.
  • DSA page-feed performance — performance broken down by supplied page URLs and custom labels, optionally filtered to a specific page feed.
  • Geographic performance
  • Device performance
  • Impression share (competitive visibility)
  • Conversion actions
  • Age range performance
  • Gender performance
  • Extension asset performance
Performance Max
  • PMax campaign performance
  • PMax campaign placements
  • PMax campaign feed types
  • PMax asset group performance
  • PMax asset group strength (ad strength + action items)
  • PMax asset-level performance
  • Top asset combinations
  • PMax search terms report
Custom (Agency plan only)
  • Custom GAQL query — write any read-only SELECT query against the Google Ads API
Options
  • Date range: predefined (LAST_7_DAYS, LAST_30_DAYS, LAST_MONTH, THIS_MONTH, etc.) or a custom start/end date
  • Filter by campaign or ad group
  • Sort by: cost, clicks, impressions, conversions, CTR, average CPC, cost per conversion
  • Segment by day
  • Output mode: summary (default), summary_and_csv, csv_only
  • Inline row limit (default 50)
Example prompts
→ For a practical workflow, see Analyze Google Ads performance reports with AI.

Keyword research

Generate keyword ideas or get historical metrics for a list of known keywords. Uses the same underlying Google Keyword Planner API. What you can do
  • Keyword ideas — generate new keyword suggestions from seed keywords or a URL
  • Historical metrics — get search volume, competition, and bid ranges for keywords you already have
Options
  • Seed keywords or a page URL (for ideas)
  • Locations (country, region, or city — one or multiple)
  • Location mode: aggregated across all locations, or separate results per location
  • Language
  • Network: Google Search only, or Google Search + partners
  • Date range for historical data (default: last 12 complete months)
  • Sort by: average monthly searches, competition, bid ranges
  • Filter by minimum search volume or competition level (Low / Medium / High)
Example prompts
→ For a practical workflow, see Google Ads keyword research with AI.

Campaign creation

Search campaigns

Create a new Search campaign, paused by default so you can review before launching. What gets set at creation
  • Campaign name and daily budget
  • Location and language targeting
  • Bidding strategy
  • UTM tracking template (applied automatically)
  • EU political advertising: doesn’t contain
  • Status: paused
  • Network targeting: Google search only (no display or partners)
  • Location presence targeting: ‘Presence’ not ‘Presence or Interest’
Bidding strategies
  • Maximise clicks (with optional max CPC cap)
  • Maximise conversions (with optional target CPA)
  • Maximise conversion value (with optional target ROAS)
  • Target impression share (requires: location preference, share target, max CPC cap)
  • Manual CPC
Example prompt

Ad & keyword management

Responsive Search Ads Create new RSAs or update existing ones. Create
  • Requires: ad group, headlines (3–15, max 30 chars each), descriptions (2–4, max 90 chars each), final URL, and optional display URL paths
  • Supports headline and description pinning
Update
  • Change headlines, descriptions, or display URL paths on an existing ad
  • Change ad status (enable, pause, remove)
  • update_ad_status supports ENABLED, PAUSED, and REMOVED. Removal uses Google Ads’ remove operation and cannot be undone. Use PAUSED when you may want to reactivate the ad later. Failed API mutations are returned as errors rather than reported as successful changes.
Example prompts

Ad customizers

Ad customizers let responsive search ads display different values without rewriting every ad. For example, a headline can reference a stored price, rate, number, or text value. Example headline: Auto Loans From {CUSTOMIZER.AutoAPR:6.49%} Here, AutoAPR is the customizer attribute and 6.49% is the inline fallback used when no applicable stored value is available. What you can do Use manage_ad_customizers to:
  • create_attributes — create customizer attributes of type TEXT, NUMBER, PRICE, or PERCENT.
  • set_values — assign values at the account, campaign, ad group, or keyword level.
  • remove_values — remove specific values without deleting the attribute.
  • remove_attribute — remove an attribute after reviewing its current usage and confirming the removal.
Use list_search_ads_entities with action="review_ad_customizers" to inspect existing attributes, values, RSA references, and inline fallbacks. Value inheritance HireOtto supports increasingly specific values in this order:
  1. Keyword
  2. Ad group
  3. Campaign
  4. Account
  5. Inline fallback
The most specific available value takes precedence. For example, the same headline could display 6.49% by default, 5.99% in one campaign, and 5.49% for a particular ad group. Important behavior
  • Attribute names and types cannot be changed after creation.
  • Updating an existing scoped value replaces its previous association.
  • validate_only=true checks a proposed operation without intentionally changing the account. Some replacements cannot be fully validated while an existing value occupies the same resource; review the returned validation notes.
  • Removing an attribute requires a preview and confirmation. If active ads still reference it, review their inline fallbacks before approving removal.
  • To edit the RSA headline or description containing a customizer reference, use the existing Search Ads creation or update tools.
Example prompts
Review all ad customizers in account [CUSTOMER_ID]. Include their types, scoped values, responsive search ad references, and inline fallbacks. Do not make changes.
Create a PERCENT customizer attribute called “AutoAPR”. Set its account-level value to 6.49% and campaign [CAMPAIGN_ID] value to 5.99%. Validate the changes first.
Find all responsive search ads using the “AutoAPR” customizer. Show their existing inline fallbacks and current values before proposing any updates.
→ For a practical workflow, see Manage Google Ads Ad Customizers with AI.

Keywords

Add positive (targeted) keywords to an ad group, or manage negative keywords at the campaign level. Match types: Broad, Phrase, Exact Example prompts

Negative keyword lists

HireOtto can add keywords to a shared negative list, attach or detach a list from campaigns, and remove individual negative keywords. To remove one item, use its exact resource identifier when available. Otherwise provide the exact keyword text and match type, review the resolved match, and then approve the removal. Example prompts

In shared negative list 444555666, find the exact-match negative keyword [free template]. Show its resource identifier and current match type, then remove only that item and verify the remaining list.

→ For a practical workflow, see Manage Google Ads negative keywords with AI.

Ad groups

Create ad groups or update their name and status. Example prompts

Dynamic Search Ads

Dynamic Search Ads (DSA) let Google generate headlines and choose landing pages based on website content or explicitly supplied URLs. HireOtto supports DSA campaign configuration, dynamic ad groups, ads, webpage targets, and page feeds.

What you can do

  • Configure DSA settings on an existing Search campaign, including domain, language, and whether to use only supplied URLs.
  • Create dynamic ad groups and Dynamic Search Ads.
  • Create positive or negative webpage targets using URL, category, page title, page content, or custom label conditions.
  • Discover Google’s suggested domain categories.
  • Create and manage page feeds containing URLs and custom labels.
  • Attach or detach page feeds from DSA-enabled Search campaigns.
  • Review DSA search terms and page-feed performance.

DSA page feeds

Use manage_dsa_page_feeds to control which landing pages are supplied to Google. Supported actions:
  • create_feed — create a page feed with 1–100 URLs and optional labels. Optionally link it to a campaign.
  • add_pages — add new URLs to an existing feed.
  • replace_pages — replace URLs or labels on existing page assets.
  • remove_pages — unlink selected pages from a feed.
  • rename_feed — change the feed name.
  • attach_feed — link an existing feed to a campaign.
  • detach_feed — unlink a feed from a campaign.
  • delete_feed — remove a feed after detaching it from all campaigns.
Each page must have a unique URL within its feed. Page URLs and labels cannot be edited directly on an existing asset. HireOtto replaces the asset and updates its feed membership instead. Removing or replacing a page does not delete the underlying asset from Google Ads.

Dynamic ads and webpage targets

Use create_search_ads_entities to create dynamic ad groups, ads, and webpage targets.
  • create_dynamic_adgroup — requires a campaign ID and ad group name. Defaults to paused.
  • create_dynamic_search_ad — requires an ad group ID and description. A second description is optional. Google generates the headline and landing page. Defaults to paused.
  • create_dynamic_target — creates a positive or negative webpage target. Supports up to three conditions combined with AND logic. Positive targets default to paused; negative targets default to enabled.
Use update_search_ads_entities to update or replace existing dynamic targets. Existing DSA creative cannot be edited in place. To change an ad’s descriptions, create a replacement ad and review it before removing the old one.

Example prompts

Configure campaign [CAMPAIGN_ID] for Dynamic Search Ads using example.com and English. Show the current and proposed settings before making changes.
Create a DSA page feed called “Service Pages” containing these URLs: [URL_1], [URL_2], [URL_3]. Apply the custom label “Services” and attach it to campaign [CAMPAIGN_ID].
Create a paused dynamic ad group in campaign [CAMPAIGN_ID]. Add a positive webpage target for the “Services” custom label, then create a paused Dynamic Search Ad with these descriptions: [DESCRIPTION_1] and [DESCRIPTION_2].
Important: When using use_supplied_urls_only=true, a page feed must be attached. Before detaching a feed configured this way, change that campaign setting to false. → For a practical workflow, see Create and Manage Dynamic Search Ads with AI.

Performance Max campaigns

Create a full PMax campaign with budget, asset group, and initial assets in one step. See the Performance Max section for the full breakdown.

App campaigns

Create campaigns to drive app installs, in-app actions, or pre-registrations. Goals
  • installs — drive app downloads
  • in_app_actions — drive specific in-app events
  • in_app_action_value — optimize for conversion value
  • engagement_in_app_actions — re-engage existing users
  • engagement_in_app_action_value — re-engage users while optimizing for conversion value.
  • pre_registration — pre-launch registrations
Example prompt

App ad groups and ads

HireOtto can also create ad groups and ads within existing App campaigns using create_app_ad_entities.

Create App ad groups

Use action="create_app_ad_group" with a campaign ID and ad group name.
  • Standard App campaigns do not support audience list targeting through this action.
  • App campaigns for engagement typically require eligible user lists.
  • Pre-registration campaigns do not support user-list targeting through this action.
  • Engagement ad groups may support a target CPA.
Use list_search_ads_entities with action="list_user_lists_for_app_engagement" to discover potentially eligible audience lists before creating an engagement ad group.

Create App ads

Use action="create_app_ad" with an ad group ID and:
  • 1–5 headlines, up to 30 characters each.
  • 1–5 descriptions, up to 90 characters each.
  • Optional existing image, YouTube video, or HTML5 media bundle asset resource names.
  • An app URL when required by the campaign subtype.
For App campaigns for engagement, a valid app URL or deep link is required. Important: New App ads default to ENABLED unless status="PAUSED" is supplied. Specify PAUSED when you want to review the ad before activation. Non-text assets must already exist in Google Ads.

Example prompts

Create an ad group called “Returning Users” in App engagement campaign [CAMPAIGN_ID]. First identify eligible user lists and show the proposed targeting before creating it.
Create a paused App ad in ad group [ADGROUP_ID] using these headlines: [HEADLINES] and descriptions: [DESCRIPTIONS]. Include existing image asset [ASSET_RESOURCE_NAME] and return the new ad ID.
→ For a practical workflow, see Google Ads campaign management with AI.

Demand Gen campaigns

Create and manage Demand Gen campaigns — Google’s cross-inventory campaign type that runs across YouTube (in-stream, in-feed, Shorts), Discover, Gmail, and Display. Demand Gen has more moving parts than Search: campaign shell, ad group channel controls, assets, and ads are all separate layers. HireOtto handles each step in plain English.

Campaign shell

What gets set at creation
  • Campaign name
  • Budget: new daily budget (by amount) or an existing non-shared budget ID
  • Campaign goal: Conversions, Clicks, Conversion Value, or YouTube Engagements
  • Optional bid targets: target CPA, target ROAS, or target CPC
  • Device targeting (all devices eligible by default)
  • Geo target type (Presence or Presence or Interest)
  • Ad schedule
  • Status: Paused by default — review before enabling
Example prompts

Ad groups

What you can control
  • Channel strategy: ALL_CHANNELS (all supported Demand Gen inventory) or ALL_OWNED_AND_OPERATED_CHANNELS (YouTube, Discover, Gmail — no Display)
  • Explicit channel selection: YouTube in-stream, in-feed, Shorts, Discover, Gmail, Display, Maps
  • Location targeting (human-readable names: “India”, “Mumbai”)
  • Language targeting
  • Audience targeting (audience resource names — use List Audiences to get these)
  • Status: Paused by default
Use channel strategy for broad presets. Use explicit channel selection when you want to include or exclude specific inventory. Example prompts

Assets

Create reusable assets before or during ad creation. Supported asset types
  • MARKETING_IMAGE — standard landscape image
  • SQUARE_MARKETING_IMAGE — square image
  • LOGO_IMAGE — brand logo
  • YOUTUBE_VIDEO — YouTube video by video ID
  • TEXT — standalone text asset
  • CALL_TO_ACTION / CTA — supported values include: Apply now, Book now, Contact us, Download, Get quote, Learn more, Shop now, Sign up, Subscribe, Visit site
Example prompts

Ads

Supported ad types
  • Single image / Multi-asset
  • Carousel image
  • Video / Video responsive
What you can set
  • Final URLs
  • Business name
  • Headlines, descriptions, long headlines
  • Call to action text
  • Image assets: marketing, square, portrait, tall portrait, logo, classic display (by resource name or inline URL)
  • Video assets (by resource name or YouTube video ID)
  • Carousel cards (inline or by existing card asset resource names)
  • Breadcrumbs (carousel)
For one-off ads, inline image URLs and YouTube video IDs are usually easiest. For reusable creative libraries, create assets first and pass their resource names. Example prompts

Inspect and update

Inspect Three listing actions are available under Discovery & listing:
  • get_demand_gen_campaign_settings — campaign goal, bidding, devices, geo settings
  • get_demand_gen_ad_group_settings — channel controls, locations, languages, audiences
  • get_demand_gen_ads — ads and their creative asset references (optionally include removed ads)
Update campaigns
  • Campaign name, status, goal, bidding targets
  • Budget assignment
  • Device targeting, geo target type, ad schedule
  • Start and end dates
Update ad groups
  • Channel strategy or explicit channel selection
  • Ad group name and status
Update ads
  • Direct update: change top-level final URLs or supported tracking fields while preserving the ad ID.
  • Creative replacement: change images, videos, headlines, descriptions, logos, call-to-action text, or carousel creative. HireOtto creates a replacement ad and pauses the previous ad.
Before a creative replacement, inspect the live ad, prepare the complete replacement creative, and confirm the destination campaign and ad group. After the operation, read back both ads and verify that the replacement is in the intended state and the prior ad is paused. Example prompts
→ For a step-by-step workflow, see Demand Gen campaigns with AI.

Extension assets

Manage Google Ads extension-style assets such as sitelinks, callouts, structured snippets, call assets, and price assets.

These are reusable Google Ads assets. You can create an asset once, link it at the account, campaign, or ad group level where supported, and reuse the same asset across multiple eligible levels without recreating it.

What you can do

  • List existing extension assets and see their asset_resource_name
  • Create new sitelinks, callouts, structured snippets, call assets, and price assets
  • Link an existing asset at the account, campaign, or ad group level
  • Reuse the same asset across supported levels
  • Unlink an asset association without deleting the underlying reusable asset
  • Pull extension asset performance from the reporting tool

Supported asset types

  • SITELINK
  • CALLOUT
  • STRUCTURED_SNIPPET
  • CALL
  • PRICE
Create and link are separate operations. If you ask HireOtto to add a new sitelink or callout to a campaign, your AI assistant may first create the asset and then link it to the campaign.

Unlinking removes the association only. The underlying asset remains available by asset_resource_name, though Google Ads may show the removed association under removed asset filters in the UI.

Example prompts


Campaign settings

Update settings on existing Search campaigns. What you can change
  • Campaign status (enable / pause)
  • Daily budget
  • Bidding strategy
  • Location and language targeting
  • Network settings (Search Partners, Display Network)
  • Ad serving optimization
  • Campaign start and end dates
  • Device and location bid modifiers
  • EU political advertising declaration
Example prompts

URL tracking fields

HireOtto can read and update supported URL-tracking settings at account, campaign, ad-group, and ad level. Account level
  • Tracking template.
  • Final URL suffix.
  • Account-level custom parameters are not supported.
Campaign and ad-group level
  • Tracking template.
  • Final URL suffix.
  • Custom parameters.
Ad level Supported Search and Demand Gen ads can update the final URL, mobile final URL, tracking template, final URL suffix, and custom parameters. How updates behave
  • Omit a field to leave it unchanged.
  • Use an empty string to clear a tracking template or final URL suffix.
  • Use an empty object or list to clear custom parameters.
  • A custom-parameter update replaces the complete existing set, so include every parameter you want to keep.
  • Campaign custom parameters support up to 8 alphanumeric keys.
Demand Gen URL updates A direct update to a Demand Gen ad’s top-level final URL or tracking fields preserves the ad ID. It does not update URLs stored inside carousel cards. Changing creative fields uses the creative-replacement workflow instead: HireOtto creates a replacement ad and pauses the previous ad. Example

For customer 123-456-7890, show the current campaign tracking template, suffix, and custom parameters for campaign 111222333. Then replace the suffix with utm_source=google&utm_medium=cpc, preserve the current template, and verify the live values.

Common failures
  • The tracking template is invalid or contains unsupported ValueTrack syntax.
  • A custom-parameter key contains punctuation or exceeds platform limits.
  • An update unintentionally removes parameters because the complete existing set was not included.
  • The final URL belongs to a Demand Gen carousel card rather than the ad’s top-level URL.
  • The connected user can read the campaign but does not have permission to edit it.

Campaign budgets, bidding strategies, and conversions

Manage advanced optimization settings for existing Google Ads campaigns. These tools are useful when you want to split campaigns out of shared budgets, move campaigns between portfolio and standard bidding, clean up unused portfolio strategies, or update conversion action values for value-based bidding.

Campaign budgets

What you can do
  • List campaign budgets and see which campaigns use each budget
  • Create standalone/non-shared budgets
  • Create shared budgets
  • Move a campaign to an existing budget
  • Create a new dedicated budget and attach it to an existing campaign
  • Update budget amount and shareability where Google Ads allows it
  • Remove unused budgets safely
Important notes
  • Campaigns cannot have no budget.
  • “Detaching” a budget means replacing it with another budget.
  • Replacing a campaign’s budget can affect spend/overdelivery behavior. If the goal is only to change spend, update the current budget amount instead.
  • Otto does not remove old or unused budgets automatically.
Example prompts

Bidding strategies

What you can do
  • List portfolio bidding strategies
  • Create portfolio bidding strategies
  • Attach a campaign to an existing portfolio bidding strategy
  • Move a campaign back to standard campaign-level bidding
  • Remove unused portfolio bidding strategies safely
  • Link an existing portfolio bidding strategy to an existing shared budget
  • Attach a campaign to an aligned shared budget + portfolio strategy in one update
  • Move a campaign out of an aligned shared-budget + portfolio setup into a new dedicated budget and standard bidding
Supported examples
  • Standard bidding: Manual CPC, Target Spend, Maximize Conversions, Maximize Conversion Value, Target Impression Share
  • Portfolio bidding: Target Spend, Target CPA, Target ROAS, Maximize Conversions, Maximize Conversion Value, Target Impression Share
Important notes
  • Standard bidding belongs to one campaign and is set directly on the campaign.
  • Portfolio bidding is an account-level bidding strategy that can be shared across campaigns.
  • Shared budgets and portfolio strategies can be explicitly aligned in Google Ads.
  • When alignment exists, budget and bidding changes often need to happen together.
  • Otto includes atomic workflows for these aligned shared-budget + portfolio cases.
  • Otto does not remove unused portfolio strategies automatically.
Example prompts

Conversion actions

HireOtto can inspect conversion actions, create supported native Google Ads conversion actions, import eligible GA4 key events, and update supported conversion settings.

Create a native Google Ads conversion action

Provide a name and choose the source type:
  • WEBPAGE — default.
  • UPLOAD_CLICKS.
  • UPLOAD_CALLS.
You can also set the category, counting type, primary status, default value, whether to always use that value, and a supported attribution model. Creating a WEBPAGE action creates the Google Ads object. It does not install, test, or validate the website tag. Creating an UPLOAD_CLICKS or UPLOAD_CALLS action does not upload offline conversions.

Import a GA4 key event

The event must already be marked as a key event in a Google Analytics property linked to the Google Ads account. Provide the exact event name. Include the GA4 property ID when possible; it is required when the same event name exists in more than one linked property.

Update an existing action

Supported settings include the name, status, category, counting type, primary status, default value, value behavior, attribution model, and eligible lookback windows. Editability depends on the action’s source, ownership, and current Google Ads eligibility. Use primary status – not the legacy include-in-conversions field – to control whether an eligible conversion goal can influence optimization. Changing primary status or attribution can affect both reporting and automated bidding.

Safe sequence

  • List the existing actions and check for duplicates.
  • Confirm whether the business outcome belongs in Google Ads natively or should be imported from GA4.
  • Prepare the exact settings.
  • Create, import, or update one action.
  • Validate measurement data before making it primary.
  • Read the action back and confirm the live settings.

Examples

Create a secondary WEBPAGE conversion action named Qualified demo request for customer 123-456-7890. Count one conversion, use no default value, and return the new resource without changing campaign goals.

Import the GA4 key event qualified_lead from property 123456789 into customer 123-456-7890 as a secondary conversion. Show eligible matches before importing.

Update conversion action 987654321 so it remains secondary and uses a 30-day click-through lookback window. Show the current and proposed settings before applying the change.

Common failures

  • A conversion action with the same purpose already exists.
  • The GA4 property is not linked to the Google Ads account.
  • The GA4 event is not marked as a key event.
  • The event name is ambiguous across linked properties and no property ID was provided.
  • The requested field is not editable for that action type or origin.
  • The connected Google user lacks permission to make the change.
  • The tag or offline upload pipeline has not been implemented; creating the action alone does not solve measurement.
For creating or modifying the underlying measured events, see Conversion action management.

Conversion goals

Conversion goals determine which conversion outcomes Google Ads campaigns optimize toward. HireOtto can inspect and manage account-default goals, campaign-specific standard goals, and custom conversion goals. Unlike conversion actions, which define the measured events, conversion goals control which outcomes are used for optimization.

What you can do

Use manage_conversion_goals for the following operations. Inspect existing goals
  • inspect — show account conversion goals, conversion actions, and optionally a campaign’s effective optimization goals.
  • list_customer_goals — list account-default conversion goals and their biddable settings.
  • list_campaign_goals — list standard conversion goals for a specific campaign.
  • list_custom_goals — list custom goals and their associated conversion actions.
Manage custom goals
  • create_custom_goal — create a custom goal from existing enabled conversion actions.
  • update_custom_goal — rename a custom goal or replace its conversion action membership.
  • assign_custom_goal — assign a custom goal to a campaign.
  • remove_custom_goal — remove a custom goal after checking assignments and confirming removal.
Manage standard and account-default goals
  • set_campaign_goal_biddable — enable or disable a standard conversion goal for a campaign.
  • set_customer_goal_biddable — change an account-default conversion goal.
  • reset_campaign_goals — return a campaign to its account-default conversion goals.
Standard goals are identified by category and origin, such as PURCHASE / WEBSITE or SUBMIT_LEAD_FORM / WEBSITE.

How assignment and validation work

  • validate_only=true validates a proposed mutation without applying it. The default is false.
  • When assigning a custom goal, exclusive=true is the default. It disables the campaign’s standard conversion goals so only the custom goal remains biddable.
  • Use exclusive=false to preserve existing standard goal biddability alongside the custom goal.
  • Updating a custom goal’s conversion_action_ids replaces the entire action list, not just the specified members.
  • Changes to account-default goals may affect multiple campaigns.
  • Removing a custom goal requires confirm_removal=true and a review of existing campaign assignments.
HireOtto automatically resolves the conversion-tracking owner where possible. You generally do not need to provide conversion_customer_id manually.
  1. Inspect the current account or campaign conversion goals.
  2. Identify the exact goals and conversion actions involved.
  3. Validate the proposed changes using validate_only=true.
  4. Review the current and proposed configuration.
  5. Approve and apply the change.
  6. Read the live configuration back to confirm the result.
A successful validation is not an applied change. Verify the final state after execution.

Example prompts

Inspect the conversion goals for campaign [CAMPAIGN_ID]. Show the current account-default goals, campaign-specific goals, and custom goals. Do not make changes.
Create a custom conversion goal called “Qualified Leads” using conversion actions [ACTION_ID_1] and [ACTION_ID_2]. Validate it first, then show what will be created without applying the change.
Validate assigning custom goal [GOAL_ID] exclusively to campaign [CAMPAIGN_ID]. Compare the current and proposed optimization goals without changing the bidding strategy.
Enable the standard PURCHASE / WEBSITE conversion goal for campaign [CAMPAIGN_ID]. Preserve its existing custom goal and other enabled goals. Validate first and show the proposed change.
Reset campaign [CAMPAIGN_ID] to account-default conversion goals. Validate first, then apply only after approval and verify the result.

Important limitations

  • Custom goals can include secondary conversion actions, which may then participate in bidding through that custom goal.
  • Changing conversion goals does not automatically change a campaign’s bidding strategy.
  • Creating a custom goal does not create conversion events, install tracking tags, or upload offline conversions.
  • Customer-acquisition lifecycle goals are not managed by this tool.
  • A custom goal should be checked for active campaign assignments before removal.
→ For a practical workflow, see Manage Google Ads Conversion Goals with AI.

Performance Max

Full management for PMax campaigns — create, update assets, manage signals. → See the Performance Max guide for the full end-to-end walkthrough.

Create a PMax campaign

One step: creates the budget, campaign, asset group, and uploads your initial assets. Required assets
  • Headlines (3–15, max 30 chars each)
  • Long headline (1, max 90 chars)
  • Descriptions (2–5, max 90 chars each)
  • Business name
  • At least 1 landscape marketing image
  • At least 1 square marketing image
  • At least 1 logo
Optional
  • Audience signals and search themes
  • Location and language targeting
  • Target CPA / target ROAS
  • Brand guidelines (locks business name and logos at campaign level, shared across all asset groups)
  • EU political advertising declaration
Example prompt

Add a new asset group

Add a second asset group to an existing PMax campaign.
For brand-guidelines-enabled campaigns, omit business name and logo — they’re inherited from the campaign level.

Update asset group status

Pause, enable, or remove an asset group without touching the campaign.

Update assets

Add new assets (upload new creative by URL):
Attach existing assets (reuse already-uploaded assets from your library without creating duplicates):
Remove assets (requires exact asset resource names — list assets first):

List brand assets (brand-guidelines campaigns)

Returns business name, logo, and landscape logo assets attached at the campaign level.

Manage audience signals and search themes


Change history

See what changed in an account, when it changed, and who changed it. Two levels of detail
  • Quick scan — which campaigns and ad groups were touched in a given period
  • Detailed timeline — field-level change log with timestamps and editor info (last 30 days)
Options
  • Date range (required)
  • Filter by campaign or ad group
  • Output mode: summary, summary_and_csv, csv_only
Example prompts

Daily ops audit

The daily operations audit is a read-only Agency-plan check for delivery, pacing, and sudden spend changes. It is designed for daily triage, not a full optimization review.

What it checks

  • Campaigns that stopped serving even though they are enabled.
  • Spend spikes or drops against the recent baseline.
  • Campaign and shared-budget pacing.
  • Coverage gaps or partial results that may make a finding incomplete.

Defaults

  • Audit date: yesterday in the Google Ads account time zone.
  • Campaign scope: enabled campaigns. Paused campaigns can be included; removed campaigns are excluded.
  • Baseline: the previous 14 days.
  • Spend spike threshold: at least 1.5 times the baseline.
  • Spend drop threshold: at most 0.5 times the baseline.
  • Pacing thresholds: above 1.5 times or below 0.5 times expected pacing.
  • Minimum baseline activity: 1 unit of account currency in average daily cost and 10 average daily impressions.
  • Inline findings: 25 by default; set 1–100.
  • CSV link lifetime: 30 minutes by default; set 1–1,440 minutes.

What it does not check

Daily operations does not review search terms, keyword opportunities, ad creative, location performance, or device performance. Use the weekly optimization audit for those questions.

Example

Limits and failure cases

  • The audit never writes to Google Ads.
  • A shared budget is evaluated as a group, so the result may not assign all pacing pressure to one campaign.
  • Newly launched or very low-volume campaigns may not have enough baseline activity to classify a spike or drop.
  • If Google Ads returns only part of the requested data, treat the audit as partial and review the coverage notes.
  • Download links expire. Rerun the audit if a CSV link has expired.

Weekly optimization audit

The weekly optimization audit is a read-only Agency-plan review that turns recent Google Ads performance into a ranked decision queue. It covers campaign trends, search terms, keywords, and responsive search ads without changing the account.

Default windows and thresholds

  • Performance window: the last 7 days.
  • Comparison: the immediately preceding period of equal length.
  • Search-term lookback: 30 days, excluding the most recent 3 days to allow for reporting and conversion lag.
  • Negative-keyword candidate: fewer than 1 conversion, at least 3 clicks, and no minimum-spend requirement unless you set one.
  • New-keyword candidate: at least 1 conversion.
  • Keyword review: at least 10 clicks.
  • Target CPA: optional. If omitted, HireOtto can use the account CPA when the account has at least 5 conversions in the selected period.
  • High-CPA threshold: 1.5 times the target or account CPA.
  • RSA review: at least 100 impressions; low CTR is 75% or less of the ad group CTR.
  • Campaign performance drop: current conversions at 50% or less of the comparison period.
  • Detailed rows: 500 per detailed query by default; set 25–5,000.
  • Inline findings: 50 by default; set 1–200.
  • CSV link lifetime: 30 minutes by default; set 1–1,440 minutes.

What it can surface

  • Campaigns with material changes in spend, conversions, CPA, or search impression share.
  • Search terms that may belong on a negative list.
  • Converting search terms that may deserve their own keyword.
  • Manual CPC keywords that may need a bid review.
  • Disapproved or low-CTR responsive search ads.
  • Findings that need more evidence before a marketer acts.

Example

Limits and failure cases

  • Candidate means review, not automatic action. Check intent, conversion lag, sample size, match type, lead quality, and business context before approving a change.
  • A search-term row can be absent because of Google Ads privacy thresholds or reporting limits.
  • If the account has fewer than 5 conversions and no target CPA is supplied, CPA-based classifications may be limited.
  • Partial results and row limits appear in the coverage notes. Increase limits or narrow the scope when important entities are missing.
  • The audit never writes to Google Ads.

Account health audit

The account health audit is a read-only Agency-plan check for structural, tracking, targeting, quality, and coverage risks. Use it monthly, quarterly, or before taking over an account.

Defaults

  • Review window: the last 90 days.
  • Comparison: the immediately preceding 90 days.
  • RSA copy review: off by default.
  • Detailed checklist: off by default.
  • Keyword rows: 5,000 by default; set 100–20,000.
  • Ad rows: 1,000 by default when RSA copy review is enabled; set 100–5,000.
  • Inline findings: 100 by default; set 1–300.
  • CSV link lifetime: 30 minutes by default; set 1–1,440 minutes.

What it reviews

  • Auto-tagging and conversion-tracking readiness visible in Google Ads.
  • Search and display network settings.
  • Location targeting mode and language targeting.
  • Keyword count by ad group, match-type mix, Quality Score, and Quality Score components.
  • Negative-keyword coverage.
  • Geographic and device performance.
  • Search impression share lost to budget or rank.
  • Optional RSA counts, copy review, and pinning patterns.

Example

Limits and failure cases

  • The audit can only evaluate data available through the connected Google Ads account. It does not know CRM lead quality, competitor activity, landing-page experiments, or offline business context unless you provide that context separately.
  • Enabling RSA copy review increases the amount of ad data requested and can make large-account audits slower or more likely to return partial coverage.
  • A missing signal is not always a broken setup. Confirm account structure, measurement design, and campaign intent before changing anything.
  • Review coverage notes whenever limits, permissions, or Google Ads reporting restrictions exclude part of the account.
  • The audit never writes to Google Ads.

Google Search Console

Analyze organic search data and URL indexing from Google Search Console. Before using Search Console tools, connect Search Console:

What you can do

  • List Search Console properties available to your connected Google account
  • Pull organic query reports
  • Review page performance
  • Break down results by country, device, date, hour, or search appearance
  • Export Search Console data to CSV
  • Check whether a URL is indexed in Google
  • List submitted sitemaps

Example prompts

For setup and workflow details, see Google Search Console MCP reporting.

Common access, output, and safety rules

  • Account access: HireOtto only sees Google Ads accounts available to the Google identity you connect. The user’s Google Ads role determines whether a write can succeed.
  • Customer IDs: use the ten-digit customer ID without guessing. Manager-account access does not remove the need to target the intended client account.
  • Audit access: daily operations, weekly optimization, and account health audits are Agency-plan features and are always read-only.
  • Search Console: Search Console tools require separate authorization and remain read-only.
  • Inline and CSV output: large results may be summarized inline and returned as a downloadable CSV. CSV links expire; rerun the request to create a fresh link.
  • Partial coverage: API limits, row limits, permissions, privacy thresholds, and unavailable metrics can produce partial results. Read the coverage notes before acting.
  • Validation: Google Ads can reject writes because of account state, entity state, field compatibility, date rules, policy, or permissions. Correct the request and retry only after reviewing the error.
  • Verification: for consequential changes, ask HireOtto to show the current value, proposed value, customer ID, and entity IDs; wait for approval; apply one class of change; then read the live value back.
  • Pricing and credits: availability and credit use depend on the active HireOtto plan. Check the current pricing page before promising access.

Billing

Check your current HireOtto plan, credit balance, and billing period.
→ See Credits & billing for the full reference.