Skip to main content

google-ads

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.

インストールへ移動

ソース情報

リポジトリ
DojoCodingLabs/GTM-Engineering-Command-Center
ソースの最終更新活動
2026年6月15日 04:18
検出された SKILL.md の言語
英語
スター
2
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
10 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
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: ```bash GOOGLE_ADS_DEVELOPER_TOKEN=XXXXXXXXXX # From Google Ads API Center GOOGLE_ADS_CLIENT_ID=XXXXX.apps.google # OAuth client ID GOOGLE_ADS_CLIENT_SECRET=XXXXXX # OAuth client secret GOOGLE_ADS_REFRESH_TOKEN=1//XXXXXX # Long-lived refresh token GOOGLE_ADS_LOGIN_CUSTOMER_ID=XXX-XXX-XXXX # MCC account ID (if using manager) GOOGLE_ADS_CUSTOMER_ID=XXX-XXX-XXXX # Target ad account ``` **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)
GitHubで見る