Check the published page first
curl -Ls https://example.com/ | grep 'cdn.prompteden.com/eden.js'Replace example.com with the hostname registered in PromptEden. The returned tag must use the exact CDN URL and an active pe_site_… key. If the command returns nothing, the live verifier cannot find the tag either.
After it finds the tag, the verifier loads the script itself. One same-host redirect from https://cdn.prompteden.com/eden.js to the current content-hashed path under /eden/v1/ is expected. Keep the stable /eden.js URL in your tag; do not copy the hashed location.
Script check failures
Swipe the table to see each fix.
| Result | What it means | Fix |
|---|---|---|
| script missing | No canonical tag was present in the returned HTML. | Publish it site-wide, clear caches, and avoid client-only injection. |
| wrong script source | A PromptEden key was attached to another URL. | Use exactly https://cdn.prompteden.com/eden.js. |
| site key missing | The CDN script has no data-site attribute. | Copy the complete generated tag from Integrations. |
| site key invalid | The key is malformed or belongs outside this property. | Remove hand-edited values and install the current generated tag. |
| site key stale | The key was replaced and its overlap window ended. | Publish the replacement snippet, then check again. |
| too many site keys | The page contains too many distinct PromptEden keys. | Keep one active tag for this hostname and remove old duplicates. |
Page fetch failures
- 401 or 403: the public homepage requires authentication or blocks the verifier. Allow the request to read the normal public HTML.
- 429: the site rate-limited the live check. Wait for the retry time, then allow or retry the verifier request.
- 5xx: the website returned a server error. Fix the deployment before checking again.
- Non-HTML response: the registered hostname returned a file, API response, or unsupported content type instead of a public HTML page.
Collector check failures
The collector row sends a protected synthetic pageview from PromptEden through https://app.prompteden.com/api/v1/analytics/collect. The browser-visible site key alone cannot mark an event synthetic or non-billable. Because this check runs from PromptEden, your site's Content Security Policy, browser extensions, and corporate network do not control whether this row passes.
- If the row shows a temporary service or rate-limit error, wait for the displayed retry time. Repeated clicking does not bypass the retry window.
- Do not test by constructing a collector request yourself. Use Verify installation so the probe remains synthetic and non-billable.
- If the row passes but real visits do not arrive, check the browser's Network panel for the collector request, allow
https://app.prompteden.comin the page'sconnect-srcpolicy, and check whether a proxy, privacy extension, or corporate network blocks it.
The checks pass, but no visits appear
Setup complete—waiting for the first data check means the tag and collector passed but no real collection pass has completed. Open the live site in a normal browser, visit a second route, and wait for the next collection pass.
A healthy zero means the latest pipeline pass succeeded and saw no new visits. Stale means the latest pipeline rollup is behind schedule and has not refreshed within its normal freshness window. Failed means PromptEden is withholding totals because the latest pipeline attempt did not complete safely. These states are deliberately different; do not interpret stale or failed as zero traffic.
Duplicate pageviews in a single-page app
Load the PromptEden script only once. Remove extra GTM History Change triggers, manual route-change pageviews, and page-component mounts. The script already watches History API and hash navigation.
You lost the site key
PromptEden does not reveal the existing full key again. In Analytics → Integrations, choose Create replacement snippet, publish the new tag, and then remove the old one. The old key remains valid only for the overlap window shown in the app.