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
| Capability | How it works here | State |
|---|---|---|
| Create a Search campaign | One 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 targeting | Location 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 budget | Daily budget set at creation; shared budgets flagged rather than silently edited. | Specified, not built |
| Bidding strategy | Target CPA, Target ROAS, or Maximize Conversions, chosen explicitly at creation. | Specified, not built |
| Ad groups and keywords | Keywords added with match type stated per keyword; errors reported per keyword rather than failing the whole batch. | Specified, not built |
| Campaign negative keywords | Added at creation and editable afterwards. | Specified, not built |
| Ad extensions | Callout, sitelink and snippet assets. | Specified, not built |
| Conversion tracking setup | Not 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
| Capability | How it works here | State |
|---|---|---|
| Pause, enable, remove | Campaigns, ad groups, ads and keywords. | Specified, not built |
| Edit campaign settings | Name, status, targeting, schedule, device bid adjustments. | Specified, not built |
| Change daily budget | With 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 strategy | Including a maximum CPC ceiling. | Specified, not built |
| Add and remove keywords and negatives | Per-keyword result reporting. | Specified, not built |
| Edit responsive search ads | Headline and description length checked before the request is sent. | Specified, not built |
Reporting
| Capability | How it works here | State |
|---|---|---|
| Account-level metrics | Clicks, cost, impressions, conversions. | Specified, not built |
| Campaign performance | Same metrics per campaign, over a chosen date range. | Specified, not built |
| Ad group and ad performance | Including per-asset performance for responsive search ads. | Specified, not built |
| Keyword performance | Per keyword, with match type. | Specified, not built |
| Search terms | The queries that actually triggered an ad — the report that decides which negatives to add. | Specified, not built |
| Bidding strategy performance | Per strategy. | Specified, not built |
| Spend against budget | Today and month to date against the sum of daily budgets, so an overspend is visible the same day. | Specified, not built |
| Daily snapshots | Stored 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.