Documentation
Everything you need to know.
From your first audit to advanced workflows — the short version of everything NiceLookingData does.
Click "Run My Free Audit" on the homepage and sign in with your Google account. Initial sign-in is read-only — we request read access to your GA4 properties and GTM containers, nothing more. If you later click "apply fix" on a GTM finding, Google asks once for Tag Manager edit access (incremental consent) — and every fix lands in a shadow workspace you review and publish yourself.
Navigate to GA4 Auditor from the top nav, select a property from the dropdown, and click "Run Audit". The audit runs 61 checks across 5 chapters — Foundation, Data Accuracy, Measurement, Privacy & Security, and Optimization.
Navigate to GTM Auditor, select an account and container, and click "Analyze Container". We run 44 checks across tags, triggers, variables, Consent Mode v2, and security & governance.
Navigate to URL Auditor and paste any public web page URL. The software fetches the HTML and runs 37 checks across Foundation (tracking detection), Integrity (placeholder IDs, double-loaders), Security (HTTPS hygiene, blocking scripts), and Marketing (pixel inventory + consent). It's the fastest way to get an audit-shaped read without OAuth.
Your health score (0–100) is calculated based on the severity and count of issues found. Critical issues have the highest weight, followed by Warnings and Optimizations. A score above 80 is considered healthy.
Data collection settings, event tracking quality, conversion setup, custom dimensions/metrics, Google Signals configuration, cross-domain tracking, data retention, referral exclusions, internal traffic filters, and more.
CRITICAL — Issues that cause data loss or major inaccuracies. WARNINGS — Problems that affect report quality. OPTIMIZATIONS — Suggestions to improve your analytics setup. GOOD — Checks that passed successfully.
After each audit, our Gemini AI generates a prioritized action plan in plain English. It explains what each issue means, why it matters, and exactly how to fix it — no developer needed.
Export your audit as a beautifully formatted PDF report, or share it via a unique link. Shared reports are read-only and easy to send to clients or teammates.
We analyse your published GTM container for tag naming conventions, trigger efficiency, variable usage, unused tags, custom HTML security, and more.
Each tag, trigger, and variable receives a health status. We flag potential PII leaks in Custom HTML tags, identify redundant triggers, and highlight tags that fire on all pages unnecessarily.
We check that your tags follow a consistent naming pattern (e.g., "Platform - Action - Detail"). Consistent naming helps teams scale their GTM container without chaos.
Foundation (4 checks) — GA4 measurement ID detection, GTM container detection, dataLayer initialization, legacy Universal Analytics. Integrity (5 checks) — placeholder tracker IDs in production, gtag + GTM double-loaders, Meta Pixel duplicates. Security (3 checks) — tracking scripts loaded over HTTP, render-blocking analytics scripts, page protocol. Marketing (4+ checks) — pixel inventory across Meta/TikTok/LinkedIn/Pinterest/Bing/X/Reddit/Snap, pixel sprawl warnings, consent framework signals.
PageSpeed and Lighthouse measure performance metrics. URL audit reads the analytics + marketing layer — what tracking scripts loaded, whether your dataLayer initialized, whether a placeholder GA4 ID shipped to prod, how many marketing pixels are firing, whether a consent framework is wired up. Different question, complementary tool.
URL audits persist like any other audit type. They appear in your history, support public share links (with optional password), branded PDF export, and AI Ask Anything follow-ups (all Pro). Re-audits of the same URL stay grouped via a stable propertyId derived from the URL.
Single URL per audit today. Multi-page crawl is a planned Sprint 2 wave — gated on Sprint 1 usage data so we ship the right depth, not the obvious one.
Free includes 3 audits per month with the full 61 GA4 check depth, 44 GTM checks, and plain-English reporting. Great for freelancers and small sites validating analytics health. Upgrade for history, PDF export, AI insights, and scheduled monitoring.
Pro includes unlimited audits, AI recommendations, scheduled audits, PDF exports, shareable reports, and team workspace support for growing teams.
Agency includes everything in Pro plus white-label reports, self-serve API access, unlimited team members, and unlimited alert rules for multi-client operations.
Paid users can manage billing, update payment methods, and cancel anytime through the Stripe customer portal. Navigate to Dashboard → Manage Billing to access it.
Reads only: analytics.readonly, analytics.manage.users.readonly, tagmanager.readonly. Scoped writes: tagmanager.edit.containers and tagmanager.edit.containerversions — used only when you explicitly click "apply fix" on a GTM finding, and only to create a shadow workspace + version for your review. We never request tagmanager.publish, so we cannot publish to your live container.
Audit results are stored server-side and linked to your account. We do not store raw analytics data, user behaviour data, or PII from your properties. You can delete your data at any time.
We use Google OAuth 2.0 for authentication. Your access token and refresh token are encrypted and stored securely. You can revoke access anytime from your Google Account settings.
Requests authenticate with an API key: `Authorization: Bearer <key>`. Issue your key in Settings → API & integrations (Agency plan). One active key per account — the plaintext key is shown once at generation and cannot be retrieved later. Regenerating replaces the key immediately.
Returns your most recent audit as a stable JSON subset — score, severity counts, property name/id, audit type, and timestamp. Rate limit is 60 requests per minute per key, with X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers on every response. Returns 401 on a missing or invalid key, 429 if you go over the rate limit. Example: `curl -H "Authorization: Bearer $NLD_API_KEY" https://www.nicelookingdata.com/api/v1/audits/latest`
Connect NiceLookingData to Claude, ChatGPT, Cursor, or any MCP-compatible client so you can ask your analyst questions from inside the tools you already work in. Endpoint: `https://www.nicelookingdata.com/api/mcp` (Streamable HTTP transport). Auth is the same API key as the REST API: `Authorization: Bearer <key>`. Four tools are exposed — `get_latest_audit` (your most recent audit, score + severity counts), `list_recent_audits` (up to 20 recent audits across all properties), `get_audit_findings` (per-check findings for one audit by id, ownership-checked), and `ask_analyst` (ask a free-form question about your audit portfolio, answered by the same AI analyst that powers the dashboard). Rate limit and tier gate are identical to the REST API: 60 requests/minute per key, Agency plan required. Claude Desktop / Claude Code config example — add to your MCP client config: `{ "mcpServers": { "nicelookingdata": { "url": "https://www.nicelookingdata.com/api/mcp", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } } }`.
Regenerate or revoke your key anytime in Settings → API & integrations. Revoking takes effect immediately; any integration using the old key starts receiving 401s. This applies to both the REST API and the MCP server — they share the same key.
v0 is deliberately read-only: no write endpoints, no webhooks, and no per-check stable IDs yet. If you need one of these, email hello@nicelookingdata.com — the roadmap is demand-driven.
Still have questions?
Reach out.
We're here to help. Email us and we'll get back within 24 hours.