Google Ads Landing Page Audit
nowork-studio/notfair-plugin
Scores Google Ads landing pages on five weighted dimensions and diagnoses why high-CTR ad groups convert poorly, with concrete fixes for each page.
Connected-mode onboarding, health check, and customer selection for Google Ads Copilot.
$ npx skills add TheMattBerman/google-ads-copilot --skill google-ads-connect -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install TheMattBerman/google-ads-copilot google-ads-connect --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/TheMattBerman/google-ads-copilot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/google-ads-connect .claude/skills/google-ads-connect && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "google-ads-connect" agent skill from https://github.com/TheMattBerman/google-ads-copilot/tree/main/skills/google-ads-connect into .claude/skills/google-ads-connect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "google-ads-connect", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/TheMattBerman/google-ads-copilot/tree/main/skills/google-ads-connectType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add TheMattBerman/google-ads-copilot --skill google-ads-connect -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install TheMattBerman/google-ads-copilot google-ads-connect --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheMattBerman/google-ads-copilot.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/google-ads-connect .agents/skills/google-ads-connect && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "google-ads-connect" agent skill from https://github.com/TheMattBerman/google-ads-copilot/tree/main/skills/google-ads-connect into .agents/skills/google-ads-connect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "google-ads-connect", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TheMattBerman/google-ads-copilot --skill google-ads-connect -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install TheMattBerman/google-ads-copilot google-ads-connect --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheMattBerman/google-ads-copilot.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/google-ads-connect .cursor/skills/google-ads-connect && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "google-ads-connect" agent skill from https://github.com/TheMattBerman/google-ads-copilot/tree/main/skills/google-ads-connect into .cursor/skills/google-ads-connect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "google-ads-connect", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/TheMattBerman/google-ads-copilot.git --path skills/google-ads-connect--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add TheMattBerman/google-ads-copilot --skill google-ads-connect -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install TheMattBerman/google-ads-copilot google-ads-connect --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheMattBerman/google-ads-copilot.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/google-ads-connect .gemini/skills/google-ads-connect && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "google-ads-connect" agent skill from https://github.com/TheMattBerman/google-ads-copilot/tree/main/skills/google-ads-connect into .gemini/skills/google-ads-connect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "google-ads-connect", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install TheMattBerman/google-ads-copilot google-ads-connectInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add TheMattBerman/google-ads-copilot --skill google-ads-connect -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/TheMattBerman/google-ads-copilot.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/google-ads-connect .github/skills/google-ads-connect && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "google-ads-connect" agent skill from https://github.com/TheMattBerman/google-ads-copilot/tree/main/skills/google-ads-connect into .github/skills/google-ads-connect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "google-ads-connect", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TheMattBerman/google-ads-copilot --skill google-ads-connect -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install TheMattBerman/google-ads-copilot google-ads-connect --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheMattBerman/google-ads-copilot.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/google-ads-connect .opencode/skills/google-ads-connect && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "google-ads-connect" agent skill from https://github.com/TheMattBerman/google-ads-copilot/tree/main/skills/google-ads-connect into .opencode/skills/google-ads-connect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "google-ads-connect", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
google-ads-connectConnected-mode onboarding, health check, and customer selection for Google Ads Copilot.
Google Ads Connect is an agent skill from TheMattBerman/google-ads-copilot. Connected-mode onboarding, health check, and customer selection for Google Ads Copilot. Verifies MCP server availability, discovers accessible accounts, helps the operator select the right customer ID, and writes the selection to workspace memory. Run this before any other skill when using connected mode for the first time — or whenever switching accounts.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Marketing & SEO, covering Paid advertising. It works with Google Ads, Model Context Protocol and Google Cloud. The repository describes itself as: Google Ads Copilot: operator kit for audits, MCP-connected reads, export-mode analysis, and draft/apply workflows. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2c253ee. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GOOGLE_APPLICATION_CREDENTIALSGOOGLE_ADS_DEVELOPER_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Google Ads Connect loads about 2.2k tokens when it runs. Until then it costs about 94 tokens; SKILL.md has 713 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from TheMattBerman/google-ads-copilot at commit 2c253ee, republished under its MIT licence (© TheMattBerman). 713 words, ~2,183 tokens.
.claude/skills/google-ads-connect/SKILL.md (or your agent's skills folder).This skill handles the plumbing so the other skills can focus on strategy.
Read workspace if available:
workspace/ads/account.md/google-ads connect setupFull onboarding flow: check MCP → discover accounts → select account → fingerprint. Use this the first time you connect.
/google-ads connect healthcheckQuick validation: MCP alive? Account selected? Data flowing? Use this before an audit or when something feels broken.
/google-ads connect select [customer_id]Switch to a different account. Updates workspace memory.
Test: Call list_accessible_customers via the google-ads-mcp MCP server.
If it succeeds:
✅ MCP server is live
Accessible accounts: NIf it fails, diagnose:
| Symptom | Likely Cause | Fix |
|---|---|---|
| MCP tool not found | Server not configured in MCP host | Add config — see data/mcp-config.md |
| "No credentials found" | GOOGLE_APPLICATION_CREDENTIALS missing or wrong path | Check the env var points to a valid JSON file |
| "Developer token not approved" | Token missing or pending | Check GOOGLE_ADS_DEVELOPER_TOKEN env var |
| "Project not found" | Wrong project ID | Use GOOGLE_CLOUD_PROJECT (not GOOGLE_PROJECT_ID) |
| Connection timeout | pipx or network issue | Verify pipx is installed, internet is up |
| "Manager account required" | MCC access needed | Add GOOGLE_ADS_LOGIN_CUSTOMER_ID |
| Variable | Required | Purpose |
|---|---|---|
GOOGLE_APPLICATION_CREDENTIALS | Yes | Path to OAuth/ADC credentials JSON |
GOOGLE_CLOUD_PROJECT | Yes | Google Cloud project ID (⚠️ NOT GOOGLE_PROJECT_ID) |
GOOGLE_ADS_DEVELOPER_TOKEN | Yes | Google Ads API developer token |
GOOGLE_ADS_LOGIN_CUSTOMER_ID | If MCC | Manager account customer ID (no dashes) |
⚠️ Common gotcha: The MCP server uses GOOGLE_CLOUD_PROJECT, not GOOGLE_PROJECT_ID. Earlier docs may reference the wrong name. GOOGLE_CLOUD_PROJECT is correct.
Call list_accessible_customers. This returns customer IDs and descriptive names.
Present as a selection table:
## Accessible Google Ads Accounts
| # | Customer ID | Descriptive Name | Notes |
|---|-------------|-------------------|-------|
| 1 | 1234567890 | Acme Equipment Co. | |
| 2 | 9876543210 | Metro Recycling LLC | |
| 3 | 1234567890 | [Manager Account] | MCC — not a direct account |
Which account should we work with?workspace/ads/account.md already has a customer ID: Mention it — "Currently selected: [Name] ([ID]). Switch?"Critical safety check: If the operator asked about a specific business (e.g., "audit Acme Equipment"), verify the descriptive name matches:
✅ Customer "Acme Equipment Co." (1234567890) matches your request.or
⚠️ Warning: You asked about "Acme Equipment" but the closest match is
"Metro Recycling LLC" (9876543210). Please confirm this is the right account,
or provide the correct customer ID.This prevents auditing the wrong account — a real problem we encountered in live testing.
Once a customer is selected, pull basic metadata:
Account overview query:
Resource: customer
Fields: customer.id, customer.descriptive_name, customer.currency_code, customer.time_zone, customer.auto_tagging_enabled, customer.statusCampaign summary query:
Resource: campaign
Fields: campaign.name, campaign.status, campaign.advertising_channel_type
Conditions: campaign.status != 'REMOVED'Present the fingerprint:
## Account Fingerprint
| Field | Value |
|-------|-------|
| Customer ID | 1234567890 |
| Name | Acme Equipment Co. |
| Currency | USD |
| Timezone | America/New_York |
| Auto-tagging | Enabled ✅ |
| Account status | ENABLED |
### Campaigns
| Campaign | Status | Type |
|----------|--------|------|
| Search - Core Services | ENABLED | SEARCH |
| Brand - Acme Equipment | ENABLED | SEARCH |
| PMax - Lead Gen | PAUSED | PERFORMANCE_MAX |
**Active campaigns:** 2 search, 0 PMax
**Total campaigns:** 3 (1 paused)| Status | Meaning | Action |
|---|---|---|
| ENABLED | Active, can serve ads | Proceed with analysis |
| SUSPENDED | Billing/policy issue, not serving | Flag immediately — this is P0 |
| CLOSED | Permanently closed | Cannot analyze, need different account |
| CANCELLED | Cancelled by user | Cannot serve, may be recoverable |
If suspended: Stop and surface this as the #1 finding. No amount of optimization matters if ads can't serve. Direct the operator to check Billing and Policy Center in the Google Ads UI.
Update workspace/ads/account.md with the fingerprint:
## Last Updated
2026-03-14 by /google-ads connect
# Account Profile
## Identity
- Customer ID: 1234567890
- Descriptive Name: Acme Equipment Co.
- Currency: USD
- Timezone: America/New_York
- Account Status: ENABLED
- Auto-tagging: Enabled
## Connection
- Mode: Connected (google-ads-mcp)
- Last verified: 2026-03-14
- Accessible accounts: 3 (selected this one)
## Business
- Business model: [to be filled by audit]
- Industry: [to be filled by audit]
- Primary offer: [to be filled by audit]
- Geo scope: [to be filled by audit]
## Campaign Summary
- Search campaigns: 2 active
- PMax campaigns: 0 active (1 paused)
- Total campaigns: 3
## Notes
- [Any observations from the fingerprint]Run a quick data flow validation:
list_accessible_customersIf step 6 returns zero rows: The account may be dormant. This is NOT a failure — it's useful information. Note: "Account is dormant — no activity in the last 7 days. Date range fallback will be needed for analysis."
Output:
## Health Check Results
| Check | Status | Notes |
|-------|--------|-------|
| MCP server | ✅ | Responding |
| Account access | ✅ | CID 1234567890 accessible |
| Account metadata | ✅ | Acme Equipment Co. |
| Campaign data | ✅ | 3 campaigns found |
| Active campaigns | ✅ | 2 ENABLED |
| Recent data (7d) | ⚠️ | No activity — account may be dormant |
**Ready for analysis:** Yes (use date range fallback for dormant periods)account.mdGOOGLE_CLOUD_PROJECT in all docs and examples — not GOOGLE_PROJECT_ID© TheMattBerman, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/google-ads-connect of TheMattBerman/google-ads-copilot.
Open the folder on GitHubat commit 2c253ee
Google Ads Connect next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Google Ads Connect this skillTheMattBerman/google-ads-copilot | 238 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Google Ads Landing Page Auditnowork-studio/notfair-plugin | 3.9k | — | ~306 | Automated safety check: Pass | MIT | |
| Google Analytics Admin API Basicsgoogle/skills | 21k | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Google Ads API MCP Setupgoogle/skills | 21k | — | ~6.1k | Automated safety check: Notes | Apache-2.0 | |
| 21 Audit Ads Performanceminhnv0807/ai-business-skills | 610 | — | ~4.6k | Automated safety check: Pass | MIT | |
| Connectindranilbanerjee/digital-marketing-pro | 859 | 1 repos | ~2k | Automated safety check: Pass | MIT |
nowork-studio/notfair-plugin
Scores Google Ads landing pages on five weighted dimensions and diagnoses why high-CTR ad groups convert poorly, with concrete fixes for each page.
google/skills
Manages Google Analytics account and property settings, enables the Analytics Admin API via the Cloud CLI, lists accounts and properties, and manages data streams, custom dimensions, conversion…
google/skills
Guides developers through downloading, configuring, and installing the official open-source Google Ads MCP Server.
minhnv0807/ai-business-skills
Dung khi can ra soat CAU HINH tai khoan quang cao mot cach he thong — 6 khau tu account, campaign, adset, creative, landing den tracking, cham Health Score 0-100 va liet ke Quick Wins.
indranilbanerjee/digital-marketing-pro
Guide the connection of a known MCP integration to the plugin — looks up the connector registry via connector-status.py, checks current status, and returns transport-specific setup steps (OAuth for…
indranilbanerjee/digital-marketing-pro
Create and launch a paid ad campaign on Google, Meta, LinkedIn, or TikTok through the connected ad-platform MCP — campaign structure, audience targeting, bid strategy, negative targeting, creative…
TheMattBerman/google-ads-copilot
Google Ads operator system for search-term analysis, intent mapping, wasted spend control, account structure decisions, tracking diagnostics, RSA generation, budget review, account planning, and…
TheMattBerman/google-ads-copilot
Execute approved draft actions in Google Ads accounts. An agent skill from TheMattBerman/google-ads-copilot.
TheMattBerman/google-ads-copilot
Full Google Ads review that synthesizes tracking, search terms, intent mapping, negatives, structure, RSAs, budget decisions, and PMax context into a single operator read.
TheMattBerman/google-ads-copilot
Review Google Ads budget allocation and scaling decisions based on signal quality, intent clarity, tracking confidence, and structural health.
TheMattBerman/google-ads-copilot
Daily operator review for Google Ads. An agent skill from TheMattBerman/google-ads-copilot.
TheMattBerman/google-ads-copilot
Summarize all pending drafts across accounts. An agent skill from TheMattBerman/google-ads-copilot.
Categories
Connected-mode onboarding, health check, and customer selection for Google Ads Copilot. Google Ads Connect is an agent skill from TheMattBerman/google-ads-copilot. Connected-mode onboarding, health check, and customer selection for Google Ads Copilot.
Google Ads Connect fits situations like: tasks that involve Paid advertising.
Run `npx skills add TheMattBerman/google-ads-copilot --skill google-ads-connect -a claude-code`. Or copy the skill folder (skills/google-ads-connect in TheMattBerman/google-ads-copilot) into .claude/skills/google-ads-connect in your project. Claude Code loads it when a task matches its description.
Run `npx skills add TheMattBerman/google-ads-copilot --skill google-ads-connect -a codex`. Or copy the skill folder (skills/google-ads-connect in TheMattBerman/google-ads-copilot) into .agents/skills/google-ads-connect in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TheMattBerman/google-ads-copilot --skill google-ads-connect -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/google-ads-connect, .gemini/skills/google-ads-connect, .github/skills/google-ads-connect and .opencode/skills/google-ads-connect in your project.
Going by SKILL.md and its folder, Google Ads Connect needs credentials named GOOGLE_APPLICATION_CREDENTIALS and GOOGLE_ADS_DEVELOPER_TOKEN. Our summary lists: A credential in GOOGLE_ADS_DEVELOPER_TOKEN.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Google Ads Connect is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Google Ads Connect: Google Ads Landing Page Audit (nowork-studio/notfair-plugin, 3.9k stars), Google Analytics Admin API Basics (google/skills, 21k stars), Google Ads API MCP Setup (google/skills, 21k stars) and 21 Audit Ads Performance (minhnv0807/ai-business-skills, 610 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
TheMattBerman (a GitHub user) maintains it in TheMattBerman/google-ads-copilot, which has 238 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on June 10, 2026.
Source: TheMattBerman/google-ads-copilot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.