{
 "schema": "aiblocks-page/1",
 "id": "google-ads-audit-engine-builder",
 "type": "skill",
 "name": "Google Ads audit engine builder",
 "summary": "Plan a Google Ads audit engine for your own code, with typed checks and a score that counts only checks that ran. Read-only, with tests.",
 "headline": "Google Ads audit engine builder",
 "subhead": "Give it your project, your Google Ads access details and the checks you want. It plans a read-only audit engine with a typed list of checks, a score that counts only the checks that ran, and a coverage report. You also get a test plan. Nothing is run.",
 "job": {
  "id": "build-software",
  "name": "Build and ship software"
 },
 "level": "intermediate",
 "thinking": "medium",
 "tested": true,
 "updated": "2026-11-03",
 "first_published": "2026-10-25",
 "inputs": [
  {
   "type": "codebase",
   "required": true,
   "label": "Codebase",
   "what": "a project's code, in a folder or repo the AI can open"
  }
 ],
 "outputs": [
  {
   "type": "code_change",
   "required": true,
   "label": "Code change",
   "what": "a change to the code, with what it fixes and how it was checked"
  }
 ],
 "you_give": [
  "Your code project, or its main folders, language and database",
  "Your Google Ads access details by name, such as the manager account, the customer ID and where credentials are kept (never the secrets)",
  "The checks you want and the limits you accept, or a yes to the draft list",
  "The kinds of account you audit, such as lead generation or online store (optional)",
  "Small made-up sample data for tests (optional)"
 ],
 "you_get": [
  "A file map and the types for each finding and run",
  "A check registry with the data, the rule and the limit for each check",
  "Exact counts of checks planned, run, failed, missing and not applicable",
  "A score design that counts only the checks that ran, with a separate coverage line",
  "A test plan and a list of open questions"
 ],
 "use_when": [
  "You are building your own Google Ads audit tool and want one engine behind it.",
  "You have a list of checks, but no way to score them honestly when some can't run.",
  "An audit score looked good and you later found half the checks had been skipped.",
  "You work across several client accounts and need the same checks on each."
 ],
 "skip_when": [
  "You want a one-time audit of an account, not code. Paste an export into the Google Ads report auditor.",
  "You only need one area, such as Performance Max or Display placements. Use the Performance Max check code planner or the Display ad audit tool planner.",
  "You have no Google Ads API access yet. Start with the Google Ads OAuth setup planner, then the Google Ads developer access checker.",
  "You want the engine to fix the account. It reads and reports. You make changes in Google Ads.",
  "You only want the Meta and Google comparison module: use the Meta and Google comparison code planner."
 ],
 "output_sample": {
  "input": [
   "Your code project, or its main folders, language and database",
   "Your Google Ads access details by name, never the secrets",
   "The checks you want and the limits you accept, or a yes to the draft list",
   "The kinds of account you audit (optional)"
  ],
  "prerequisites": [
   "Google Ads API access with read permission, set up before you run the engine",
   "A coding assistant that can open your project, such as Claude Code or Codex"
  ],
  "output": [
   {
    "name": "File and interface map",
    "contains": "The files to add or change in your project and what each one exports."
   },
   {
    "name": "Finding contract",
    "contains": "The fields of a finding and of a run result, such as check ID, status, severity and evidence."
   },
   {
    "name": "Check registry",
    "contains": "Each check with its group, data needed, limit, and whether it is a rule or a review prompt."
   },
   {
    "name": "Inventory counts",
    "contains": "How many checks were planned, run, failed, missing and not applicable."
   },
   {
    "name": "Score and coverage report",
    "contains": "Group scores and an overall score from checks that ran, a coverage line and the top quick wins."
   },
   {
    "name": "Test plan",
    "contains": "Cases for money conversion, scoring, empty data, a check that can't run and a wrong account."
   },
   {
    "name": "Assumptions and open questions",
    "contains": "Each starting limit, weight and grade band, and who confirms it."
   },
   {
    "name": "Checks missed",
    "contains": "One line for each check that failed or could not run, or none."
   }
  ]
 },
 "output_shape": "STATUS\n<plan and draft only; nothing run; what was read>\n\nEVIDENCE USED\n<project files, reference brief, access details by name>\nMISSING: <each missing input and what it stops>\n\nFILE AND INTERFACE MAP\n<files to add or change, what each exports>\n\nFINDING CONTRACT\n<fields of a finding and of a run result>\n\nCHECK REGISTRY\n<id> | <group> | <what it tests> | <data needed> | <applies when> | <threshold> | <rule, review prompt or needs data>\n\nINVENTORY COUNTS\nplanned <n> | evaluated <n> | failed <n> | missing <n> | not applicable <n>\n\nSCORE AND COVERAGE REPORT\n<group scores, overall score, coverage line, quick wins>\n\nTEST PLAN\n<number> | <case> | <expected result> | <ran or not run>\n\nASSUMPTIONS AND OPEN QUESTIONS\n<starting values and who confirms them>\n\nNEXT STEP\n<the smallest useful step>\n\nCHECKS MISSED\n<one line per check that failed or could not run, or none>",
 "how_to_use": [
  "Open the skill in your AI. A chat AI works if you paste the code in. Claude Code or Codex can read your files.",
  "Paste your project details and the checks you want. If you have no list, say so and it uses the draft list.",
  "Give the access details by name. Never paste a developer token, secret or refresh token.",
  "Read the check registry first. Mark each check you don't want, and say yes or change each limit.",
  "Check the counts. Planned must not be shown as run.",
  "Build the engine in your own project from the plan, then run the tests on made-up data before any live account."
 ],
 "checks": [],
 "next": [
  {
   "name": "Simple code coach",
   "url": "https://useaiblocks.com/skills/simple-code-coach",
   "why": "Build it"
  }
 ],
 "source": null,
 "credits": [],
 "files": [
  "references/audit-engine-build-brief.md"
 ],
 "links": {
  "page": "https://useaiblocks.com/skills/google-ads-audit-engine-builder",
  "markdown": "https://useaiblocks.com/skills/google-ads-audit-engine-builder.md",
  "json": "https://useaiblocks.com/skills/google-ads-audit-engine-builder.json",
  "instructions": "https://useaiblocks.com/skills/google-ads-audit-engine-builder/SKILL.md",
  "download": "https://useaiblocks.com/skills/google-ads-audit-engine-builder.zip",
  "api_item": "https://useaiblocks.com/api/v1/items/google-ads-audit-engine-builder",
  "api_document": "https://useaiblocks.com/api/v1/documents/skill/google-ads-audit-engine-builder",
  "mcp": "https://useaiblocks.com/mcp"
 }
}
