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.
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
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=trueto include removed entities orinclude_paused=falseto exclude paused entities at every level. Results include ad, ad-group, and campaign statuses for easier cleanup decisions.
- Disapproved-ad review excludes removed ads, ad groups, and campaigns by default, while including paused entities. Set
- 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.
- 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
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.
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
- 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 GAQL query — write any read-only SELECT query against the Google Ads API
- 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)
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
- 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)
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’
- 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
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
- Change headlines, descriptions, or display URL paths on an existing ad
- Change ad status (enable, pause, remove)
update_ad_statussupports 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.
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.
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:
- Keyword
- Ad group
- Campaign
- Account
- Inline fallback
- Attribute names and types cannot be changed after creation.
- Updating an existing scoped value replaces its previous association.
validate_only=truechecks 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.
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 promptsNegative 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 promptsIn 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.
Ad groups
Create ad groups or update their name and status. Example promptsDynamic 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
Usemanage_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.
Dynamic ads and webpage targets
Usecreate_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.
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. Goalsinstalls— drive app downloadsin_app_actions— drive specific in-app eventsin_app_action_value— optimize for conversion valueengagement_in_app_actions— re-engage existing usersengagement_in_app_action_value— re-engage users while optimizing for conversion value.pre_registration— pre-launch registrations
App ad groups and ads
HireOtto can also create ad groups and ads within existing App campaigns usingcreate_app_ad_entities.
Create App ad groups
Useaction="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.
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
Useaction="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.
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
Ad groups
What you can control- Channel strategy:
ALL_CHANNELS(all supported Demand Gen inventory) orALL_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
Assets
Create reusable assets before or during ad creation. Supported asset typesMARKETING_IMAGE— standard landscape imageSQUARE_MARKETING_IMAGE— square imageLOGO_IMAGE— brand logoYOUTUBE_VIDEO— YouTube video by video IDTEXT— standalone text assetCALL_TO_ACTION/CTA— supported values include: Apply now, Book now, Contact us, Download, Get quote, Learn more, Shop now, Sign up, Subscribe, Visit site
Ads
Supported ad types- Single image / Multi-asset
- Carousel image
- Video / Video responsive
- 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)
Inspect and update
Inspect Three listing actions are available under Discovery & listing:get_demand_gen_campaign_settings— campaign goal, bidding, devices, geo settingsget_demand_gen_ad_group_settings— channel controls, locations, languages, audiencesget_demand_gen_ads— ads and their creative asset references (optionally include removed ads)
- Campaign name, status, goal, bidding targets
- Budget assignment
- Device targeting, geo target type, ad schedule
- Start and end dates
- Channel strategy or explicit channel selection
- Ad group name and status
- 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.
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
SITELINKCALLOUTSTRUCTURED_SNIPPETCALLPRICE
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
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.
- Tracking template.
- Final URL suffix.
- Custom parameters.
- 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.
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.
- 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
- 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.
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
- 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
- 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.
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.
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.
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
Usemanage_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.
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.
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.
PURCHASE / WEBSITE or SUBMIT_LEAD_FORM / WEBSITE.
How assignment and validation work
validate_only=truevalidates a proposed mutation without applying it. The default is false.- When assigning a custom goal,
exclusive=trueis the default. It disables the campaign’s standard conversion goals so only the custom goal remains biddable. - Use
exclusive=falseto preserve existing standard goal biddability alongside the custom goal. - Updating a custom goal’s
conversion_action_idsreplaces 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=trueand a review of existing campaign assignments.
conversion_customer_id manually.
Recommended workflow
- Inspect the current account or campaign conversion goals.
- Identify the exact goals and conversion actions involved.
- Validate the proposed changes using
validate_only=true. - Review the current and proposed configuration.
- Approve and apply the change.
- Read the live configuration back to confirm the result.
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.
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
- 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
Add a new asset group
Add a second asset group to an existing PMax campaign.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):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)
- Date range (required)
- Filter by campaign or ad group
- Output mode:
summary,summary_and_csv,csv_only
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
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.