Status Panel
The status panel answers "is this thing working?" on the page itself, without DevTools, without an extension, and without asking anyone for help.
Add one parameter to any page on your site and a small panel appears in the bottom-left corner listing your snippet version, the key it found, the config it loaded and how old it is, every experiment and what the snippet decided about it, what the visitor has consented to, and every event the page has sent.
Turn it on
https://www.example.com/pricing?avsb_status=1Remove the parameter (or press Close on the panel) and it is gone. Unlike debug mode, the panel is not remembered between page loads: it covers the page you asked for and nothing else.
The panel only appears when the avsb_status parameter is in the URL of that
page load. It is not remembered, it is not shown to anyone else, and it changes
nothing about the visit: bucketing, variations, tracking, and your results are
exactly as they would be without it. Your own page views still count as normal
traffic, so use a preview link or an
internal traffic rule if you do not
want them in your results.
What each line means
| Line | What it tells you |
|---|---|
| Snippet | The snippet build running on this page. Handy when you want to confirm a release reached your site. |
| Build | Which of the four snippet files this page loaded. Your project is served the smallest one that can do everything your published content needs, so a project with no visual tests and no shop features gets a smaller file than one with both. |
| Build skew | Only appears when the file this page loaded is behind what you have published: the content needs something that build cannot do. It is normal for a little while after you publish, because browsers keep a copy of the snippet for a few minutes and may serve a stale one for up to a day after that. It clears itself once those copies refresh. If it is still showing a day later, see the caching note under Config. |
| Key | The key the snippet found in your loader tag. If it says "none found on this page", the tag is missing its data-avsb attribute. |
| Config | The format version of your published config, its state (active, paused, archived, suspended), and how long ago it was published. A publish that you made five minutes ago and an age of two days do not match, and that mismatch is usually a cache. |
| Runtime | Whether the snippet is running, and if not, exactly how far it got. See the table below. |
| Visitor | This browser's visitor id, or a note when there is no visitor cookie (a visitor who denied analytics never gets one). |
| Consent | What the visitor has agreed to, as allowed, denied, or not set per category. "Not set" means nobody expressed a choice yet, which is not the same as denied. |
Runtime values
| Value | What it means | What to do |
|---|---|---|
| running | Experiments have been evaluated on this page. | Nothing. Read the Experiments list below. |
| starting up | The config request is still in flight. | Wait a moment and press Refresh. |
| not started: no snippet key on this page | The loader tag has no data-avsb attribute. | Copy the tag again from Project Settings, Snippet. |
| not started: the configuration could not be loaded | The key is wrong, the response was not a config, or the request never left the browser. | Open the console: the snippet has already printed which of the three it was. A request that never left is usually a Content Security Policy or an ad blocker. |
| not started: the project is not active | The project is paused or archived, or the organization is suspended. | Resume it in Project Settings. |
| waiting for consent: the page has not called avsb.init() yet | Consent mode is on and your cookie banner has not accepted yet. | Accept the banner, or check that it calls avsb.init(). |
| not running: this visitor denied analytics, so the original page is served | Configured behaviour when your visitor cookie is classed as analytics and analytics is denied. | Nothing is broken. See Consent Mode. |
Experiments
Every experiment in your published config gets a line: whether it is running for this visitor, its name with the numeric Experiment ID the dashboard shows, and the reason in plain English.
| What the panel says | What it means | Where to change it |
|---|---|---|
| in the test | This visitor is in the experiment and the variation named on the line is applied. | Nothing to change |
| in the test, seeing the control | This visitor is in the experiment and was assigned the unchanged experience. | Step 2, Variations |
| eligible, waiting for its trigger to fire | The visitor qualifies and is bucketed, but the experiment's trigger has not fired yet. | Step 1, Trigger |
| this page does not match the URL targeting | The page URL is outside the experiment's targeting rules. For a split-URL experiment it also means this is not the control page. | Step 1, URL targeting |
| this visitor does not match the audience | One of the audience conditions failed. | Step 3, Audience |
| held out by an exclusion group, or by dev mode | Either another experiment in the same mutual-exclusion group has this visitor, or this browser is in dev mode and the experiment is not on its allow list. | Experiment settings, Exclusion group, or the dev-mode picker |
| this visitor is outside the traffic allocation | The visitor fell outside the percentage of traffic the experiment takes. | Step 4, Traffic allocation |
| the monthly tested-visitor limit is reached, so no new visitors enter | Your plan's monthly limit is used up. Visitors already bucketed keep running. | Billing |
| outside the experiment schedule | The start or end time excludes right now. | Step 4, Scheduling |
| could not be evaluated, or has no variations | Either the experiment has nothing to serve, or evaluating it raised an error. | Step 2, Variations, then the console |
Two of these lines cover more than one cause, because the snippet records the
same answer for both. When you need to know exactly which one it was, add
?avsb_debug=1 as well: the console prints a short code per experiment, and
Debug Mode has the table.
Experiments are re-evaluated on every in-app route change. The panel does not follow those on its own, so press Refresh after navigating to see the current page's answers.
Events
The bottom section lists what this page has sent, newest first: exposures with the experiment and variation, goals with their metric key, and purchases with their amount and currency. Events that are deliberately excluded from your results say so on the line, which is what you want to see when you are testing through a preview link or as internal traffic.
Goal, custom, and purchase events appear in this list even when this visitor is in no experiment, so you can verify a metric fires without being bucketed. Exposures still appear only when an experiment actually ran. "Nothing sent from this page yet" therefore means the page really sent nothing, not that you are outside the tests.
The same information is available from the console if you prefer to read it there:
avsb.getActiveExperiments() // what is running right nowavsb.getExperimentDecisions?.() // every experiment and whyavsb.consent?.get() // what the visitor agreed toThe panel does not appear
The panel itself is a small file loaded from the A vs B CDN, so the one thing that stops it is the same thing that stops the snippet: a blocked request. When that happens the snippet prints a line in the console naming the exact host to allow, for example:
[avsb] Status panel could not load https://cdn.avsb.cloud/status-ui.js. Allow https://cdn.avsb.cloud in script-src and connect-src, and check ad blockers.Allow that host in your Content Security Policy, or disable the ad blocker for your own site while you test. The Content Security Policy steps are in Snippet Not Detected.
If there is no such line and no panel, check that the parameter is spelled
avsb_status=1 and that the snippet tag is on the page at all.
The panel is for your live pages. It does not appear inside the visual editor,
or on a page opened with ?avsb_preview, because both of those already show
their own panel.
Preview links that expired
Preview links are signed and time-limited. If you open one after it expires, or after it has been revoked, the page you land on is the live page rather than the variation. A small notice now says exactly that in the top-right corner, with the first few characters of the link so you can tell which one died, and the console carries the same message.
Ask whoever shared it for a fresh link. Nothing is wrong with your site or with the experiment.
A similar notice reading Preview could not load is not about the link at all.
It means the preview data could not be fetched on this page, which is usually an
ad blocker or a Content Security Policy, and the fix is the same allow-listing
described above.