Documentation
Connect your marketing data to Claude, ChatGPT and other LLMs.
Landing Page Analyzer
AI-powered audit of any URL — measures conversion-readiness from an ad-traffic perspective. Available from the Google Ads Insights page when reviewing search terms, ads or keywords.
Where to access it
Go to /accounts/{id}/insights (the "Insights" button on any Google Ads account card) → tab Diffusion or any tab showing landing URLs:
- Search terms / Keywords / Ads tables: each row with a
final_urlhas an "Analyze landing" button (purple) - Click → modal opens → audit runs in 10-30 seconds
final_url from the ad), not the display URL. So if you're using tracking templates that redirect, it scores the real destination.What gets scored (5 dimensions)
| Dimension | What's measured | Weight |
|---|---|---|
| Message match | Does the H1 + above-the-fold content match the ad's headline / keyword intent? | 25 |
| Trust signals | Reviews, certifications, social proof, secure-checkout badges | 20 |
| Call-to-action | CTA visibility, placement, copy clarity, urgency | 20 |
| Speed (PageSpeed Insights) | LCP, CLS, TBT mobile — direct from PSI API | 20 |
| Form & friction | Number of form fields, perceived effort, mobile usability | 15 |
Global score 0-100 + verdict (excellent / good / warning / critical) + per-dimension breakdown with specific recommendations.
What signals are collected before the AI runs
- HTML fetch of the landing page (server-side, follows redirects)
- PageSpeed Insights mobile (if Google API key configured by admin) — Core Web Vitals + score
- Optional: Firecrawl scrape (if Firecrawl key configured) — JS-rendered content for SPAs
Output sections
- Global score card with verdict color (red/amber/green)
- Quick wins — 3-5 bullet points actionable in < 1 hour
- Per-dimension cards — score + 1-2 paragraphs analysis + specific fixes
- Raw signals expandable — fetched HTML structure, PSI metrics, etc. (debug)
History tab
All your past landing page audits archived (no auto-prune, kept indefinitely). Click any past run to reload the full report. Useful to:
- Compare scores after a redesign / A-B test
- Re-send the brief to a designer with the latest snapshot
- Audit the same URL across different campaigns to spot intent mismatch
"Send brief to..." button
Generates a clean technical brief (markdown) and emails it. Use cases:
- To your designer: actionable list of UX fixes with PSI metrics + screenshot suggestions
- To your dev team: code-level recommendations (lazy-loading, image compression, JS deferral)
- To the client: executive summary with score + top 3 priorities, no jargon
Format: subject line + intro message + the AI report attached as markdown body. Rate-limit: 10 briefs/day per user.
Limits & quotas
| What | Limit |
|---|---|
| Audits per day per user | 20 |
| Briefs sent per day per user | 10 |
| Max landing page HTML size fetched | 5 MB |
| Fetch timeout | 15 seconds |
| Tokens per audit (typical) | 3-8k input + 1-2k output |
/admin/ai-usage if admin). A typical audit costs $0.005 - $0.02 depending on the model configured (defaults to the per-service model from /admin/general → Google Ads tab, falls back to global Insights model).FAQ
Why is the score lower than my Lighthouse score?
Lighthouse measures technical performance only. The Landing Page Analyzer adds 4 conversion dimensions on top (message match, trust, CTA, friction) which are evaluated by AI on the actual content — not just Core Web Vitals. A blazing-fast page with no CTA can score 95 on Lighthouse but 40 here.
Can I analyze a competitor's landing page?
Yes — the analyzer takes any public URL. Useful for benchmarking. Just paste the URL manually if there's no entry point in the Ads tables (admin can expose a manual input field if needed).
The page returned a 403/Cloudflare challenge — what now?
Some hosts block server-side fetches without a real browser. If you have Firecrawl configured, the analyzer falls back to its rendering engine which handles most challenges. Otherwise the audit will fail with "Could not fetch page" and you'll need to test with a different URL.
Does the analyzer execute JavaScript?
Default fetch is server-side HTML only (no JS). For SPAs (React / Vue / Next.js client-rendered), enable Firecrawl in /admin/general → Integrations — it spins a headless Chromium and waits for the JS to render. Otherwise SPAs will look "empty" to the analyzer.