Skip to content
esc close · switch
LYRA/ Tools/ Diagnostic/ Performance Max Asset Diagnostics
Diagnostic Rule-basedDaily + on-demand

PMax assets, scored in seconds.

PMax Asset Diagnostics runs a rule-based audit on any Performance Max campaign in your account. Scores the asset library 0–100, flags missing asset types, names the asset groups dragging the campaign down, and writes a suggested fix per finding. Read-only — nothing changes in your account.

Rule-based, not ML · Daily + on-demand · sub-second per run · Read-only access
What we read · input surface

One PMax campaign, all its asset groups.

Each run is scoped to one PMax campaign. The tool reads asset-group composition, asset-type counts, ad-strength labels, and Google-supplied performance labels — no writes — and returns a structured report. These are the numbers behind one sample run.

Run · Sample · Basalt DTC · PMax · Autumn Completed in 0.8s · Apr 26, 2026 · 14:11 UTC
01 · Account 1 Per run One Google Ads account, one PMax campaign per run. Re-run on each campaign in your portfolio.
02 · Asset groups 4 In scope Every asset group in the campaign — Trail collection, Road collection, Brand, etc.
03 · Window 30 d Performance lookback Default 30-day window for performance labels and asset-level metrics. Configurable 7–90.
04 · Categories 4 Diagnostic categories Asset coverage, ad strength, performance labels, asset policy/eligibility.
The scorecard · generated artefact

Out: a PMax health readout , per asset group.

Below is a sample readout from the run above. Overall health score, severity-banded findings count, and the top individual findings — each with the affected asset group, the rule that fired, and a suggested fix.

PMax-report · basalt-autumn · #07 Apr 26, 2026 · 14:11 UTC 4 categories · 4 asset groups v.1.1.0 · rule-lib
Asset library health
71 / 100
Good · room to grow ▼ −4 vs run #06 · 14d ago
Findings by severity 9 open · across 4 asset groups
Critical 2
Warning 7
Healthy 32
# Check Scope What we found Suggested action Severity
01 Missing marketing image asset_coverage · marketing_image Brand asset group 0 marketing images (need at least 1). Missing a required asset type limits the combinations Google can serve. Upload at least one 1.91:1 marketing image Critical
02 Disapproved asset not serving asset_policy · eligibility Trail collection 1 asset is not eligible to serve (policy disapproval). It contributes nothing to delivery until fixed. Fix or replace the disapproved asset Critical
03 Headline count below recommended asset_coverage · headlines Trail collection 5 headlines (Google recommends 8–15). Fewer headlines reduce creative variety and search-term coverage. Add more short headlines toward 15 Warning
04 Description count below recommended asset_coverage · descriptions Trail collection 2 descriptions (Google recommends 4–5). Recommended = full set for combinations testing. Add 2 more descriptions, varied tone Warning
05 Long headline missing asset_coverage · long_headline Road collection 0 long headlines (up to 90 characters). Long-form display variants are disabled without one. Add at least one 90-char long headline Warning
06 Ad strength only AVERAGE ad_strength · distribution Brand asset group Ad strength is AVERAGE with no GOOD or EXCELLENT assets. Limits the combinations Google can test. Add unique headlines covering different value propositions Warning
07 LOW-performing assets performance · label Trail collection 3 assets currently labelled LOW by Google (as of the latest day). They drag the combination pool. Replace the LOW-performing assets with fresh alternatives Warning
08 Limited assets · restricted reach asset_policy · eligibility Road collection 2 assets are serving with limitations (under review / restricted). Reach is throttled until cleared. Review the limited assets and resolve the restriction Warning
09 Headline count below recommended asset_coverage · headlines Road collection 6 headlines (Google recommends 8–15). A second asset group short on headline variety. Add more short headlines toward 15 Warning
9 of 9 findings shown · ranked by severity × asset-group impact Stored in execution response · re-run anytime
Methodology · how the checks work

Each check is a rule , not a model.

Diagnostics is rule-based, not ML. Each finding has a predicate against PMAX_ASSET_LIMITS or a Google-supplied label. Same inputs, same findings, same severity — every run.

01 · Asset coverageCounts

Counts vs PMAX_ASSET_LIMITS.

For each asset type — headlines, long headlines, descriptions, marketing images, square images, logos — we count what's there and compare to the required minimum. Missing a required type fires critical; thin headline/description counts fire warnings. A type already flagged as missing-critical is not also counted as a low-count warning.

Critical Below the required minimum of a type
Warning Headlines < 8 or descriptions < 4
Warning No long headline present
02 · Ad strength1 check

Google's label distribution, not ours.

We read Google's POOR / AVERAGE / GOOD / EXCELLENT label per asset, as of the latest day in the window. We don't compute our own creative score. A POOR present is critical; an AVERAGE-only group (no GOOD or EXCELLENT) is a warning.

Critical Any POOR ad strength
Warning AVERAGE only, no GOOD/EXCELLENT
03 · Performance labels1 check

Google's LOW label, as of latest day.

We read Google's asset-level performance label (BEST / GOOD / LOW / LEARNING) as of the most recent day — not an aggregate. Assets currently labelled LOW are flagged for replacement.

Warning Asset currently labelled LOW
04 · Asset policy1 check

Eligibility from Google's primary status.

We read Google's primary serving status per asset. Disapproved / not-eligible assets are critical (not serving at all); limited assets are a warning (serving with restricted reach). Benign approved-but-labelled assets are not flagged.

Critical Disapproved / not eligible
Warning Limited (restricted reach)
05 · Health score modelDeductive

0–100 with hardcoded penalties.

Start at 100. Each critical finding deducts 25 points; each warning deducts 10. Healthy asset groups don't add — the score reflects what's broken, not what's working. Floor at 0.

Critical −25 pts each
Warning −10 pts each
06 · Suggested actions & cadenceTemplate

Fixed fix strings, daily + on-demand.

Suggested actions are template strings tied to each check — not Lyra-Agent-written, by design, since the rules are crisp enough to name the fix without narration. A daily background pass runs the audit fleet-wide; on-demand single-campaign runs return in well under a second.

Template Same fix string per rule
Cadence Daily pass + on-demand
Case · B2B SaaS · 4 accounts under one MCC · 90-day window
PMax Asset Diagnostics exposed asset-level coverage gaps and three theme mismatches. Qualified lead rate recovered from 18% to 26% the next quarter.
IH In-house strategist · B2B SaaS 4 accounts under one MCC · Europe · anonymized
Theme mismatches surfacedFirst audit run 3
Qualified lead rateQuarter-over-quarter +44%
Strategist time reclaimedPreviously spent on manual asset audits ~4h/wk
Sub-second per runRe-runnable after every asset edit <1s
Frequently asked

The honest answers about Diagnostics.

Is this AI?

Detection is rule-based — same inputs, same findings, same severity. Diagnostics doesn't use an LLM internally; suggested actions are template strings tied to each rule. Other Lyra tools use the Lyra Agent for narrative generation; this one doesn't need it because the fixes are crisp.

How often does the audit run?

Both ways. A daily background pass runs the audit across your account so findings land in your recommendations feed without you asking. You can also run it on-demand against any PMax campaign — point the tool at it and findings come back in well under a second, ideal right after an asset upload or before a quarterly review.

Does it modify my Google Ads account?

Never. Diagnostics has read-only scope. The output is a scored report with template-string suggested actions; applying anything is a separate step you do in Google Ads or in Google Ads Editor.

What does ad strength come from — your model or Google's?

Google's. We read Google's POOR / AVERAGE / GOOD / EXCELLENT label per asset group straight from the API and report the distribution. We don't compute our own creative score; that's Google's call.

Does this work on Search or Shopping campaigns too?

Not directly — this tool is scoped to Performance Max. For Search and Shopping campaign-level health, run Campaign Health Analyzer; it covers structure, spend, performance, Quality Score, and conversion across all campaign types.

14-day free trial · No credit card · Cancel in one click

Run the audit.
Keep the findings.

Connect your account and let Lyra run its 18 tools for 14 days. If the projected waste recovery isn't worth at least 10× the $49, don't pay. You keep every insight either way.

Read-only connect · write access opt-in per tool · SOC 2 in progress · GDPR + CCPA compliant