Appearance
Setup health
Admin → Setup health checks your property for tagging and configuration problems that reports alone do not show: a tag that stopped sending, a key event that never fires, a regular expression that matches everything. It is the first tab of Admin and is visible to everyone with access to the property.
Each check is passed or needs attention. A check that needs attention shows the evidence (counts, names, patterns) and how to fix it. Checks look at the last 28 complete days.
| Check | Severity | Needs attention when |
|---|---|---|
| Tracked sessions are stable | critical | Agent and human sessions dropped by more than half compared with the 28 days before |
| Regex conditions are specific | critical | A created event or content group uses a regular expression that matches every value (an empty alternative such as a leading |, or .*) |
| Every key event fires | warning | A key event had no data in the period |
| Internal and developer traffic is excluded | warning | A data filter is still in Testing, so the traffic it matches is labelled but not excluded |
| Consent is wired to your consent banner | warning | Consent is required but no consent platform is connected |
| Crawlers and AI readers are measured | warning | No server-side hits arrived, so indexing bots and AI readers are invisible |
| Human traffic looks human | warning | More than 15% of "human" page views come from data-centre networks, or more than 25% use a 1280×720 screen (a headless-browser default) |
| History is kept long enough | info | Data retention is under 14 months, which rules out year-over-year comparisons |
| Viewed pages show engagement | info | Pages with at least 5 human views record no engagement time at all |
| Sessions start with a page view | info | More than 5% of sessions have no landing page ((not set)) |
Changes you make in Admin (fixing a regex, activating a filter, removing a key event) show up in Setup health within a minute.
What a check returns
The Admin page reads the checks from the app endpoint GET /api/properties/:pid/health. Each check has the same fields:
json
{
"id": "regex_matches_everything",
"title": "Regex conditions are specific",
"severity": "critical",
"status": "fail",
"evidence": "Created event \"content_view\" uses \"|/guides/|/blog/\". …",
"fix": "Remove the empty alternative …",
"details": [{ "object": "Created event", "name": "content_view", "pattern": "|/guides/|/blog/" }]
}Setup health is not part of the public API yet.
In the demo
The demo property is set up with a few deliberate mistakes so you can see the checks at work: a created event whose regex starts with |, a key event (demo_request) that never fires, and an internal-traffic filter left in Testing.