| name | google-ads |
| description | Google Ads expertise — read/measure via the google-ads-open CLI + REST :mutate deploy, signal-first architecture (Hagakure, brand isolation, intent ladder, 5-pillar budget), Performance Max control + Moran feeder, Smart Bidding migration ladder, Enhanced Conversions + Consent Mode v2 + GCLID-to-CRM, broad-match-era keywords + n-gram mining, AI Max for Search, RSA/YouTube creative, policy/reinstatement. Ethical scores (whitehat/grayhat/blackhat 1-10) from the Google Ads Atlas 2026. |
Google Ads API & Campaign Management
In 2026 Google Ads is a signal-architecture discipline, not keyword management (Atlas Part I). The gap between an average advertiser and a sophisticated operator is not setup, bids, or even creative — it is the quality of the conversion truth fed back into the machine. Hyper-granular legacy Search structures are now a hidden cost; the winners run consolidated structures, broad match paired with Smart Bidding, and an obsessive focus on offline conversion imports, Enhanced Conversions, Customer Match, and value-based bidding. For info products and SaaS this matters more than for e-commerce, because the revenue event sits several stages downstream of the click — optimize to a proxy event (form fill, free trial, webinar reg) without sending the real outcome back and Google will find you an endless supply of junk.
Default Tooling
Execution is HYBRID. There is no first-party CLI that mutates Google Ads, so reads and writes use different paths — always be explicit which one a step is on.
- Read / measure / audit →
google-ads-open-cli (a Node 18+ CLI, READ-ONLY). Full command reference: rules/gads-cli.md. Install npm install -g google-ads-open-cli; output is pretty JSON (--format compact for one line).
- Campaign WRITES / deploys → Google Ads REST
:mutate endpoints via curl. No first-party CLI mutates; every create/update/delete is a POST …:mutate call against googleads.googleapis.com/vXX/.
Use the CLI for: account hierarchy, customers, campaigns/ad-groups/ads/keywords/negatives, audiences/user-lists, assets/extensions, conversion-actions, budgets, billing, change-status, all *-stats reporting, and raw GAQL (query <id> "SELECT …").
Use REST :mutate for: creating/updating/pausing campaigns, budgets, ad groups, RSAs, keywords, negatives, asset groups, audience signals, bid strategies, conversion actions, and offline conversion / Enhanced Conversion uploads.
MONEY IS IN MICROS. 1,000,000 micros = $1. Budgets are amountMicros; every stat cost_micros ÷ 1e6 = dollars. This is the Google analog of Meta's "cents" trap — divide before you report, multiply before you mutate.
ALL campaign writes default to status PAUSED. Launch is a separate, deliberate :mutate.
The Five Laws of 2026 Google Ads
From Atlas Part I — the operating system, not slogans.
| # | Law |
|---|
| 1 | Signal beats structure. The account that feeds the cleanest conversion truth wins. Offline imports, Enhanced Conversions for Leads, and value-based bidding are the OS now — manual bid tinkering is a rounding error next to data quality. |
| 2 | Isolate brand or lie to yourself. Mixed brand/non-brand inflates reported ROAS and mis-teaches the bidder. A dedicated brand campaign plus brand exclusions on every non-brand and automated campaign is non-negotiable. PMax backfills 10–42% of its reported conversions from your own brand if you let it. |
| 3 | PMax for lead gen is guilty until proven innocent. Left alone it finds the cheapest, lowest-quality lead possible. Only CRM-stage feedback, exclusions, audience inputs, geo, and schedule controls make it honest. Low CPLs are a hypothesis to test against pipeline, never a result. |
| 4 | Browse surfaces shape demand; Search captures it. Treat Demand Gen and YouTube like paid social, not watered-down Search. They need creative-led selection and low-friction offers. Forcing cold browse into a hard demo/application ask produces weak quality or policy trouble. |
| 5 | Automate selectively, never on a rep's say-so. Adopt Smart Bidding, AI Max, and PMax only after signal hygiene is in place. Keep Max Clicks / exact / manual alive longer than a rep would prefer if the data integrity isn't there. Use reps for product availability, not budget allocation. |
How to Read the Ethical Scores
Every tactic in this skill carries a classification and a 1–10 score (Atlas judgment, not Google's labels):
- WHITEHAT (8–10) — fully compliant, sustainable, no deception. Safe to scale; the backbone of a durable account.
- GRAYHAT (4–7) — exploits gaps, auction mechanics, or unenforced edges. Allowed or unpoliced but ethically ambiguous; watch for policy drift and reputational cost.
- BLACKHAT (1–3) — violates policy, deceives users, or causes harm. Documented for recognition only — never deploy. High suspension and consumer-harm risk.
This skill documents every tactic neutrally with its score; the operator decides. It does NOT inherit the gtm-atlas hub's "only recommend Tier 1–2" default.
The Cross-Surface Map
Each Google surface plays a distinct funnel role. Confusing those roles is the most common and most expensive mistake (Atlas Part I).
| Surface | Funnel role | Good at | 2026 risk |
|---|
| Search (brand) | Capture, defend | Highest ROAS, protects margin | Letting PMax cannibalize it |
| Search (non-brand) | Capture intent | High-intent demand, evaluation queries | Broad-match waste without negatives |
| Performance Max | Capture + light prospecting | Volume, cross-inventory reach | Junk leads, brand backfill, opacity |
| AI Max for Search | Enhanced capture | Query expansion, dynamic copy & URLs | Off-brand expansion, lost control |
| Demand Gen | Create & shape demand | Social-style browse reach | Treated like Search; Display spam |
| YouTube | Warm, pre-qualify | Lowers downstream Search CPA | Last-click ROAS misjudges it |
| Display | Prospect, remarket | Cheap reach | Spam leads in lead gen |
| Shopping | Capture (physical goods) | Product-feed intent | Mostly ineligible for digital goods |
| App | Acquire app users | Install & in-app scale | Optimizing to installs, not value |
Campaign Hierarchy
Google Ads Account (customer ID: XXX-XXX-XXXX)
└── Campaign (campaign_type, bidding_strategy, budget)
└── Ad Group (keywords, targeting, CPC bids)
└── Ad (responsive search ad, responsive display ad, etc.)
└── Extensions (sitelinks, callouts, structured snippets)
Reads traverse this with account-hierarchy/campaigns/ad-groups/ads. Writes hit POST /customers/{id}/<resource>:mutate. PMax replaces ad groups with asset groups:
Performance Max Campaign
└── Asset Group (equivalent to ad group)
├── Headlines (3-15, max 30 chars each)
├── Long Headlines (1-5, max 90 chars)
├── Descriptions (2-5, max 90 chars)
├── Images (min 3: landscape 1200x628, square 1200x1200, portrait 960x1200)
├── Logos (min 1: square 1200x1200, landscape 1200x300)
├── Videos (optional but recommended, 10s+ horizontal)
├── Final URL
└── Audience Signals (your targeting hints, not restrictions)
Account Architecture
Isolate distinct intent lanes so incompatible journeys are not force-fit into one bid target. Build at minimum four lanes, plus a fifth for SaaS (Atlas Part II):
- Brand — defends your own name at high ROAS / low CPC; isolated from everything.
- Non-brand high-intent — outcome, mechanism, and evaluation queries with real purchase intent.
- Broad discovery & expansion — broad match + Smart Bidding to find queries manual research misses, fenced by aggressive negatives.
- Competitor & conquesting — comparison/alternative queries in their own campaign, never sharing budget with core non-brand.
- SaaS only: company-size / use-case clusters — SMB self-serve demo queries behave nothing like enterprise RFP queries; bid separately.
Steady-state budget split (the five-pillar funnel matrix):
| Pillar | Budget share | Bidding & match |
|---|
| 1. Brand protection | 5–7% | Manual CPC, exact match |
| 2. High-intent product | 50–60% | tCPA, phrase + broad match |
| 3. Competitor conquest | 15–20% | tCPA, exact + phrase match |
| 4. Problem-aware | 10–15% | Maximize Conversions, broad match |
| 5. Remarketing & nurture | 10% | Maximize Conversions, audience lists |
→ rules/account-architecture.md
Smart Bidding Migration Ladder
Climb deliberately; each rung is a data prerequisite for the next. Do not jump to tROAS without value data (Atlas Part IV).
Manual CPC
└─→ Maximize Clicks (gather traffic + early conversion data)
└─→ Maximize Conversions (volume-stable, no value data yet)
└─→ tCPA (~30 conv/mo per campaign)
└─→ Maximize Conversion Value
└─→ tROAS (~60 days of value data + ≥2 distinct conversion values)
When you set a target, start at 70–80% of the trailing achieved target (looser CPA / lower ROAS than current actuals), then tighten — set it at the goal on day one and the bidder chokes volume.
→ rules/smart-bidding.md
Conversion Tracking & Privacy
- Enhanced Conversions for Leads — SHA-256 hashed first-party identifiers; target a 40–65% match rate (advance only above 40%).
- Consent Mode v2 — the four signals:
ad_storage, analytics_storage, ad_user_data, ad_personalization (Advanced mode for conversion modeling).
- GCLID → CRM offline loop — capture GCLID at click, store on the lead, import the closed-won outcome back via
offlineConversion/conversionAdjustment :mutate so the bidder optimizes to revenue, not form fills.
→ rules/conversion-tracking.md
Performance Max Control
PMax is guilty until proven innocent for lead gen — left alone it harvests the cheapest junk lead it can find. Distinguish the three control mechanisms:
- Brand exclusions — account-level lists that stop PMax backfilling conversions from your own brand searches (verify branded share trends toward zero).
- Negatives — query/placement exclusions (account-level negative lists, campaign negatives).
- Restrictions — audience signals, geo, schedule, URL/feed constraints that shape where PMax spends.
Moran feeder: starve PMax of branded and easy traffic upstream (dedicated brand + non-brand Search capture it first), so PMax is forced to do genuine prospecting on what's left.
→ rules/performance-max.md
Keywords in the Broad-Match Era
Broad match wins when the conversion signal is clean and bleeds you when it isn't — it inherits the quality of your Smart Bidding feedback. The search-terms report is degrading, so mine n-grams: tokenize search terms, rank waste by spend-with-no-conversion, and push losers to negatives weekly (daily on high spend). In the AI era, exact no longer fences broad — AI Overviews and close-variant matching mean an exact keyword can still trigger on loosely related queries, so negatives do the fencing exact used to.
→ rules/keywords-match-types.md
AI Max for Search
Cautious optimism. AI Max layers query expansion, dynamic copy, and dynamic URLs onto Search. The base rate is 84% neutral-or-negative, so partial adoption is the worst outcome — half-on, no guardrails produces off-brand drift with none of the upside. Run it as a contained, incrementally-measured experiment: one well-structured campaign, all three features on, full guardrails (brand restrictions, URL exclusions, text guidelines), evaluated at the account level. Kill it if account-level CPL or CAC worsens after 2–4 weeks.
→ rules/ai-max-search.md
Creative Strategy
- RSA — supply the full asset pool: 15 headlines, 4 descriptions; pin sparingly, include the keyword theme in headlines for relevance.
- YouTube — hybrid AI hook (AI-generated open) into a 2–3 minute human creative; tCPA-seed around $8 with 15% increments.
- SaaS — demo-first: lead with the product in motion, not a talking-head promise.
→ rules/creative-assets.md
SaaS & Info-Product Motions
SaaS — three motions: self-serve, free-trial, demo-led. Info products — three funnel shapes: webinar funnel, paid-community trial, tripwire/book. The unifying rule: bid to SQL or booked-call, not form-fill or application. A webinar registration, free-trial start, or cheap form fill is not a sale — optimize to the downstream truth via offline imports or Google will flood you with proxy events that never convert.
→ Atlas Parts X (info products) & XI (SaaS)
Cross-Surface Orchestration & Incrementality
Phase budget by spend level (Atlas Part XIV) — early money concentrates almost entirely on bottom-of-funnel capture before expanding into demand creation:
- Phase 1 (≤ $10k/mo) — ~90% BOFU Search (brand + high-intent non-brand). Fix measurement first.
- Phase 2 ($10–30k/mo) — ~70/30 Search / PMax once downstream feedback keeps automation honest.
- Phase 3 ($30k+/mo) — add YouTube / Demand Gen at 15–20% for demand creation.
Incrementality over attribution: geo holdouts, Conversion Lift experiments, and MER/MMM, not last-click platform ROAS. Reject any platform-reported win that does not survive CRM or causal-lift scrutiny.
Policy & Compliance
Enforcement is industrial: Google ran ~39.2M account suspensions in 2024. Trigger categories cluster around income/earnings claims, before-and-after, and sensitive verticals. Know the reinstatement framework before you scale anything risky, and never run multiple accounts to evade a suspension.
→ rules/policy-compliance.md
The Ethical Matrix
Every tactic in this skill is scored 1–10 inline. The full Unified Ethical Ranking Matrix — every documented tactic, its class, and its rationale in one table — is Atlas Part XVI.
Implementation Playbook
The staged sequence from Atlas Part XVII — do not skip ahead; measurement is the prerequisite for everything downstream.
- Stage 1 — Foundation (weeks 1–4): fix measurement (Enhanced Conversions web + Leads, Consent Mode v2, GCLID→CRM; advance only above 40% match) → isolate brand (dedicated campaign + exclusions everywhere) → consolidate to thematic Hagakure, kill SKAGs, build negative lists.
- Stage 2 — Signal & bidding (weeks 4–12): climb the bid ladder to SQL / purchase via offline imports → install the script stack (Mike Rhodes PMax script + n-gram analyzer; review search terms weekly, daily on high spend) → stabilize low-volume accounts with micro-conversion values.
- Stage 3 — Expansion (month 3+): add demand creation (YouTube + Demand Gen) → run AI Max as a contained, guardrailed experiment evaluated at account level → prove incrementality (geo holdouts, lift experiments) before pouring in budget.
Authentication
google-ads-open-cli auth: google-ads-open-cli auth login --developer-token=… --client-id=… --client-secret=…, OR env vars GOOGLE_ADS_ACCESS_TOKEN / GOOGLE_ADS_DEVELOPER_TOKEN / GOOGLE_ADS_LOGIN_CUSTOMER_ID. Creds are stored at ~/.config/google-ads-open-cli/credentials.json.
REST :mutate and full OAuth env:
GOOGLE_ADS_DEVELOPER_TOKEN=XXXXXXXXXX
GOOGLE_ADS_CLIENT_ID=XXXXX.apps.google
GOOGLE_ADS_CLIENT_SECRET=XXXXXX
GOOGLE_ADS_REFRESH_TOKEN=1//XXXXXX
GOOGLE_ADS_LOGIN_CUSTOMER_ID=XXX-XXX-XXXX
GOOGLE_ADS_CUSTOMER_ID=XXX-XXX-XXXX
Exit handling (read CLI): capture stderr. If non-zero and stderr matches /auth|token|credential|unauthenticated|permission/i → auth error, tell the operator to re-run google-ads-open-cli auth login. Otherwise → API error: back off and retry once. (This binary is NOT the Meta CLI — do not assume Meta's literal 0/3/4 exit codes.)
API rate limits:
- Basic access: 15,000 requests/day, 1,500 operations/mutate
- Standard access: 100,000 requests/day
- Reporting: 10 concurrent report requests
- Mutate operations: max 5,000 operations per request
Knowledge Base
Full tactic detail lives in knowledge/google-ads-atlas-2026.md (18 Parts + Appendices A–D). Cite as "Atlas Part X". Read it when you need:
- Full tactic detail and execution steps — any Part beyond the distillation here.
- Benchmarks — Appendix A (CPC, CPL, CVR by vertical and SaaS stage; directional only).
- The ethical matrix — Part XVI, the full Unified Ethical Ranking.
- Named-practitioner sources — Appendix C (who said what, with attribution).
Rules Reference
rules/gads-cli.md — google-ads-open-cli full read-only command reference (primary measurement tool)
rules/account-architecture.md — intent ladder, Hagakure consolidation, five-pillar budget, brand isolation
rules/performance-max.md — PMax control levers, brand exclusions vs negatives vs restrictions, Moran feeder
rules/smart-bidding.md — the migration ladder, 70–80% target rule, value-based bidding for low-volume
rules/conversion-tracking.md — Enhanced Conversions, Consent Mode v2, GCLID→CRM offline loop
rules/keywords-match-types.md — broad-match-era strategy, n-gram waste mining, negatives discipline
rules/ai-max-search.md — AI Max contained-experiment protocol and guardrails
rules/creative-assets.md — RSA asset construction, YouTube hooks, SaaS demo-first creative
rules/policy-compliance.md — enforcement triggers, reinstatement framework, cloaking (documented, not endorsed)