Skip to content
Open source ยท Runs in your browser

Every number in your Google Ads audit, checked.

Paste an audit from ChatGPT, Claude or your agency next to the export it came from, and see which numbers hold up. Or run a free audit of your own, where code computes every figure.

Works insideClaudeCursorChatGPT

No sign-up and no access to your account. In the app, your export never leaves your computer.

38 seconds: check an AI audit, find wasted spend, audit the account structure and make a client-ready report.

Check any AI audit

AI audits sound right. Their numbers often aren't.

We pasted an AI-written audit of a sample plumbing account next to its search terms export. 4 of its 11 numbers didn't hold up, and one sentence contradicted itself.

OpenPPC marks every figure, says what your file actually shows, and gives you a fix list to send back to whoever wrote it.

TracedMismatchNot in dataCan't checkContradiction
OpenPPC's verdict on a sample AI audit: 4 of 11 numbers don't hold up, with each problem listed
Works inside your AI

Works inside Claude, Cursor and ChatGPT

Ask your assistant to audit an export or check an audit. It calls OpenPPC for the numbers, so every figure it gives you traces back to your data.

Claude

Claude Code, Claude Desktop and claude.ai. On your computer, OpenPPC reads your exports where they are.

$ claude mcp add openppc -- uvx --from "openppc[mcp] @ git+https://github.com/secondsteplabs/openppc" openppc-mcp
Claude Desktop and claude.ai setup

Cursor

Add it in one click. It runs on your computer, next to your code and exports.

Add to Cursor

Or paste the server into ~/.cursor/mcp.json. Claude and Cursor use uv to fetch and run OpenPPC.

Cursor setup

ChatGPT

ChatGPT reaches OpenPPC as a web connector. A hosted one at mcp.openppc.si is coming soon.

Until then, run OpenPPC on your computer and connect it through OpenAI's Secure MCP Tunnel, or host the connector yourself. It keeps nothing.

ChatGPT setup

Every assistant gets the same three read-only tools: list the templates, run an audit, and check an audit's numbers.

How it works

Three steps, and nothing leaves your computer

  1. 1

    Export a report from Google Ads

    A search terms or keywords report as a .csv. OpenPPC never connects to your account.

  2. 2

    Check an audit, or run one

    Paste any AI's audit to check it against the export, or run a free template on the export itself.

  3. 3

    Every number traces back

    Code computes each figure, and the checker traces it to your file before you see it.

Features

An audit you can prove, from the export to the client

Free templates for the checks PPC teams run every week. Each one prints only numbers the code computed and the checker traced.

Wasted spend, ranked

Search terms that spent money and never converted, ranked by cost, with the chance each one is genuinely bad rather than unlucky.

  • Block the proven losers and give the rest more clicks
  • Copy them as exact-match negatives, or download a .csv
  • Brand searches and Performance Max handled apart
The wasted spend table: each search term with its cost, clicks and chance it's bad

Client-ready reports, every number checked

Your agency's name, logo and colors on a formal report: a cover, what we found, what we recommend, how the account compares and how it was made.

  • Letter or A4, laid out page by page
  • Nothing is cut: long tables continue on the next page
  • Saving unlocks only when every number traces
The cover of a branded client report for the sample account

Account structure

Broad match without Smart Bidding, negatives that block your own keywords, brand mixed with non-brand, thin or pinned ads and more.

Keyword audit

Keywords spending without converting, budget by match type, and spend on low Quality Scores.

Period over period

What changed between two periods, and whether it reads as an efficiency win, over-expansion or broken tracking.

Privacy

In the app, your export never leaves your computer

OpenPPC is built for agencies and freelancers working on client accounts, where uploading data is not an option. This is how the app handles your export; here is how the ChatGPT connector does.

Runs in the browser tab

The engine is compiled to WebAssembly and runs on your device. The first visit downloads it once.

Can't send your data

The app's security policy only lets it download its own runtime from one pinned source, so it has no way to upload your files.

Read-only

It never connects to Google Ads and never changes anything. You apply any change yourself.

Questions

Frequently asked

Is OpenPPC free?

Yes. The app, the templates and the checker are open source under the MIT license. You can use them, change them and run them yourself.

Does my data leave my computer?

Not in the app, the command line, Claude Code, Claude Desktop or Cursor: they all run OpenPPC on your computer. In ChatGPT and claude.ai, the export goes through a web connector to be audited, and the connector keeps nothing. To keep it on your computer in ChatGPT too, connect a local OpenPPC through OpenAI's Secure MCP Tunnel.

Which AI assistants does it work with?

Claude (Claude Code, Claude Desktop and claude.ai), Cursor and ChatGPT, through MCP. Your assistant calls OpenPPC for the numbers, so what it tells you traces back to your data. Any other MCP client works too.

Which audits can it check?

Any audit written as text: from ChatGPT, Claude, Gemini, another tool or an agency. Paste it next to the export it was written from.

Which Google Ads exports does it read?

Search terms and keywords reports as .csv, plus an account snapshot and two-period totals. The install guide shows how to export each one.

Does it change anything in my Google Ads account?

No. It never connects to Google Ads. It reads the file you give it, and you apply any change yourself.

Where do the industry averages come from?

From WordStream and LocaliQ's Google Ads Benchmarks 2026, US search. They are a ballpark for comparison, not a target.

Check your next audit before it reaches a client.

Open the app, try the sample account, then run it on your own export. It takes about a minute.