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

Plain text
https://www.example.com/pricing?avsb_status=1
Plain text1 line

Remove 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.

Your visitors never see it

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

LineWhat it tells you
SnippetThe snippet build running on this page. Handy when you want to confirm a release reached your site.
BuildWhich 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 skewOnly 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.
KeyThe key the snippet found in your loader tag. If it says "none found on this page", the tag is missing its data-avsb attribute.
ConfigThe 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.
RuntimeWhether the snippet is running, and if not, exactly how far it got. See the table below.
VisitorThis browser's visitor id, or a note when there is no visitor cookie (a visitor who denied analytics never gets one).
ConsentWhat 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

ValueWhat it meansWhat to do
runningExperiments have been evaluated on this page.Nothing. Read the Experiments list below.
starting upThe config request is still in flight.Wait a moment and press Refresh.
not started: no snippet key on this pageThe loader tag has no data-avsb attribute.Copy the tag again from Project Settings, Snippet.
not started: the configuration could not be loadedThe 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 activeThe 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() yetConsent 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 servedConfigured 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 saysWhat it meansWhere to change it
in the testThis visitor is in the experiment and the variation named on the line is applied.Nothing to change
in the test, seeing the controlThis visitor is in the experiment and was assigned the unchanged experience.Step 2, Variations
eligible, waiting for its trigger to fireThe visitor qualifies and is bucketed, but the experiment's trigger has not fired yet.Step 1, Trigger
this page does not match the URL targetingThe 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 audienceOne of the audience conditions failed.Step 3, Audience
held out by an exclusion group, or by dev modeEither 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 allocationThe 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 enterYour plan's monthly limit is used up. Visitors already bucketed keep running.Billing
outside the experiment scheduleThe start or end time excludes right now.Step 4, Scheduling
could not be evaluated, or has no variationsEither 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.

Single-page apps: press Refresh after navigating

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:

JavaScript
avsb.getActiveExperiments()      // what is running right nowavsb.getExperimentDecisions?.()  // every experiment and whyavsb.consent?.get()              // what the visitor agreed to
JavaScript3 lines

The 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:

Plain text
[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.
Plain text1 line

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 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.

Was this helpful?