A paid media audit run across all 12 ad platforms in one surface beats separate per-platform tools because the hard problems are cross-platform: incompatible conversion windows, inconsistent evidence quality, and budget calls that only make sense against the whole portfolio. A per-platform tool can be excellent inside its silo and still leave the risky work, reconciliation and prioritization, to a hand-built spreadsheet. Claude Ads runs the full audit as one command, /ads audit all, treating Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, Apple, Amazon, Reddit, Pinterest, Snapchat, and X as surfaces of one system with one evidence model and one scoring engine underneath.
Why per-platform tools fail the paid media audit
Teams running a multi-platform stack usually end up with a tool per silo: a Google Ads script here, a Meta dashboard there, a retail-media console for Amazon. PPC management software is usually built this way, deep on one platform and blind to the rest. Each tool has its own definition of a conversion, its own idea of what "healthy" means, and its own report format. The gaps show up in three places.
First, the numbers do not add up, literally. Meta reporting on a seven-day window and Google on a thirty-day window measure different things, and summing them produces a conversion total that no platform ever recorded. Second, findings are not comparable. A "critical issue" flag from one tool and a "warning" from another carry no shared severity or confidence scale, so triage becomes guesswork. Third, nobody weights priorities by spend. A broken pixel on the platform taking most of the budget and a missing sitelink on a platform taking a sliver of it look equally urgent in separate dashboards.
A single operating surface does not fix these by being convenient. It fixes them by forcing every platform through the same contracts.
A shared evidence model
In Claude Ads, every platform audit produces findings in one schema, not twelve report styles. Each control resolves to pass, fail, unknown, or not_applicable, and each finding carries a control ID, severity, confidence, observations, evidence references, and a recommendation. Confidence is graded high, medium, low, or none, and the source behind a claim is classified separately as evidence-based, practitioner, contested, or folklore.
That separation matters in practice. When two sources contradict each other, the system surfaces the contradiction instead of averaging it away. When a platform claim goes stale past its refresh date, it is demoted to provisional rather than silently reused. Per-platform tools rarely expose any of this; you get a verdict with no visible chain back to the data that produced it.
The architecture behind it is one conductor and bounded workers. The conductor owns scope, policy, aggregation, and the final artifacts. Workers analyze bounded slices, one platform, tracking, creative, finance, and return schema-valid findings. Workers never write the final report. The canonical result is versioned JSON, and Markdown, HTML, and PDF are renderings of that same validated bundle, so the client deck and the raw data cannot drift apart. You can see how each platform maps into this model on the platforms page.
Cross-platform reconciliation, not aggregation
The most common cross-platform mistake is adding conversions across platforms with different attribution windows. Claude Ads refuses it as a hard rule: a request like "add Meta seven-day and Google thirty-day conversions" gets the sources reported side by side until the windows and definitions are reconciled, never a blended total.
The same discipline applies where platforms share infrastructure. YouTube data often arrives through the Google Ads API, but shared APIs do not collapse distinct platform scores. YouTube stays a separately reported surface with its own controls, so a healthy Search account cannot mask a weak video program.
Running the whole stack is one command:
/ads audit all
Scoped runs like /ads google or /ads amazon route to the matching platform audit, but they still emit findings in the same schema, so a scoped run today reads on the same severity and confidence scales as a full-stack audit tomorrow.
One health score that admits what it does not know
A single score across twelve platforms is only useful if it is honest about coverage. Claude Ads keeps health and evidence coverage as separate numbers. Controls that come back unknown do not drag health down; they reduce evidence coverage instead. Coverage then gates how the score may be presented:
| Evidence coverage | Result label |
|---|---|
| 80% or more | Graded |
| 60 to 79% | Provisional |
| Below 60% | Insufficient evidence |
Two failure modes common in per-platform tools are excluded by design. A platform that fails to authenticate is not scored as a zero; it is excluded from the portfolio score, its weight is removed from the denominator, and the whole run is labeled partial rather than presented as a complete audit. And features an account is not eligible for, beta, premium, or regionally unavailable, are recorded as unscored opportunities instead of health penalties. The score reflects the account, not the account's access tier.
Spend-weighted priorities
Portfolio health in Claude Ads is weighted by same-window spend share, with equal provisional weights used only when spend data is unavailable. That single rule changes what gets investigated first. A tracking gap on the platform carrying most of the budget moves portfolio health more than the same gap on a platform spending almost nothing, because each platform's health enters the aggregate through its spend share. In the scoring contract, scores exist to prioritize investigation, so the investigation follows the money.
This is also where the read-only default earns its place. Everything above happens without write access: audits, scores, and prioritized recommendations come from authorized exports or account reads. Drafted changes stay drafts until the exact platform and operation pass approval, idempotency, verification, audit, and rollback gates. You get portfolio-level decisions without handing portfolio-level write access to a tool. The full workflow set, 33 skills across audits, planning, creative, monitoring, and reporting, is on the features page.
Where one surface is not magic
Honest limits: a unified surface cannot conjure data a platform will not give it. If exports are thin or an API scope is missing, the affected controls land in unknown and coverage drops, which is the correct outcome but still means less signal. Required-worker failures make a run partial, and a partial run is disclosed as partial rather than dressed up as complete. And reconciliation surfaces disagreements between platforms; it does not resolve attribution disputes for you. What it removes is the silent variant of all three problems, which is where per-platform stacks quietly lose money.
Run a paid media audit
Claude Ads installs as a Claude Code plugin in two commands:
/plugin marketplace add AgriciDaniel/claude-ads
/plugin install claude-ads@ai-marketing-hub-claude-ads
Full install options, including local checkout and verified release archives, are on the install page. Run /ads audit all against your own stack and compare the prioritized list to what your current per-platform tools surface.