Functionality by category

Google groups the functionality it expects from a Google Ads API tool into three categories: creation, management and reporting. This page maps this tool against that structure, item by item, and says for each one whether it is built today.

The Required Minimum Functionality rules apply formally at the Standard access level. This page exists anyway, for two reasons: it is the clearest way to describe the shape of the tool in the vocabulary a reviewer already uses, and writing the list out makes the gaps visible instead of leaving them to be discovered.

This is a full-service tool in that classification: it creates campaigns, manages them, and reports on them. It is operated by one person, on Google Ads accounts that person owns.

Creation

CapabilityHow it works hereState
Create a Search campaignOne request builds budget, campaign, targeting, ad group, keywords and a responsive search ad together. Validated first, then created paused.Specified, not built
Geo and language targetingLocation names resolved to geo target constants before the campaign request is sent, so a misspelled country fails before anything is created.Specified, not built
Campaign budgetDaily budget set at creation; shared budgets flagged rather than silently edited.Specified, not built
Bidding strategyTarget CPA, Target ROAS, or Maximize Conversions, chosen explicitly at creation.Specified, not built
Ad groups and keywordsKeywords added with match type stated per keyword; errors reported per keyword rather than failing the whole batch.Specified, not built
Campaign negative keywordsAdded at creation and editable afterwards.Specified, not built
Ad extensionsCallout, sitelink and snippet assets.Specified, not built
Conversion tracking setupNot planned. Conversion actions are configured in the Google Ads interface, not by this tool.Out of scope

Every campaign is created in the paused state. Nothing this tool creates can start spending without a separate, deliberate action.

Management

CapabilityHow it works hereState
Pause, enable, removeCampaigns, ad groups, ads and keywords.Specified, not built
Edit campaign settingsName, status, targeting, schedule, device bid adjustments.Specified, not built
Change daily budgetWith a warning when the budget is shared with another campaign, because editing it there changes a campaign the operator did not name.Specified, not built
Adjust bidding strategyIncluding a maximum CPC ceiling.Specified, not built
Add and remove keywords and negativesPer-keyword result reporting.Specified, not built
Edit responsive search adsHeadline and description length checked before the request is sent.Specified, not built

Reporting

CapabilityHow it works hereState
Account-level metricsClicks, cost, impressions, conversions.Specified, not built
Campaign performanceSame metrics per campaign, over a chosen date range.Specified, not built
Ad group and ad performanceIncluding per-asset performance for responsive search ads.Specified, not built
Keyword performancePer keyword, with match type.Specified, not built
Search termsThe queries that actually triggered an ad — the report that decides which negatives to add.Specified, not built
Bidding strategy performancePer strategy.Specified, not built
Spend against budgetToday and month to date against the sum of daily budgets, so an overspend is visible the same day.Specified, not built
Daily snapshotsStored locally so a trend can be read without re-querying history.Specified, not built

Keyword research

This is the one part with working code. It calls KeywordPlanIdeaService.GenerateKeywordIdeas for a merchant and reads search volume, competition and bid ranges for the terms it returns.

It is also the part that cannot run at the Explorer access level, where keyword planning services are blocked — which is why Basic is the level requested, not Explorer.

Why so much of this says “not built”

Because it is not built, and saying otherwise would be checkable. The earlier Google Cloud project was deleted, every call from it failed, and there was no point writing campaign code against an API that returned an error on every request. The design is complete and the safety layer is specified first on purpose: the daily operation cap, the audit log of every write, the read-only mode, and the back-off on rate-limit errors are all ahead of the first write operation in the build order.

What this page will not do is describe a feature as finished so that a list looks complete. The safeguards page follows the same rule.