Preview Links
Preview links let you share an unpublished variation with anyone (a client, an executive, a stakeholder without an A vs B account) by sending them a regular URL with a signed token appended.
Preview links work at every stage of an experiment's life: draft, scheduled, paused, running, and finished. Nothing has to be launched first, so a stakeholder can sign off on the real page before a single visitor is bucketed, and you can still walk someone through a variation months after the test has ended.
Generating a link
Open the experiment in the dashboard
Make sure your edits are saved. Preview links use the most recently saved state of each variation.
Click Generate preview link
In the experiment's action row (the same row that contains Pause / Edit Variation / Stop), click Generate preview link. A modal opens with link options.
Pick the variation
Pick the variation you want the recipient to see. Variations with saved changes are marked in the dropdown.
Set the expiry
Choose how long the link should be valid from the Link expiry dropdown. The options are 1 day, 7 days, 30 days, and 90 days. The default is 30 days; 90 days is the maximum.
Copy and send
Click Copy. Paste it into an email, Slack message, or doc and send to the recipient.
The share dialog has two parts. At the top: a variation picker, a Link expiry dropdown (1 / 7 / 30 / 90 days), a Generate link button, and (once generated) the link in a read-only field with a Copy button. Below that, a Preview links registry lists every link you've created for this experiment, each labelled with its variation, its expiry date, and who created it. Active links show a Revoke button; links that are already revoked or past their expiry appear greyed out with a "Revoked" or "Expired" tag.
Opening the visual editor does not add a link here. Edit with Visual Editor uses a private editor session instead: it shows the variation you are editing for as long as you edit, expires on its own after 8 hours, and never appears in the registry or the experiment's history. Only links you generate yourself are listed.
What the recipient sees
The recipient opens the link in any browser. They land on your production page, which is otherwise unchanged (no editor panel, no login prompt) but with the variation applied. The link works on Safari, mobile browsers, and any device the recipient happens to be using.
The signed token is appended as a query parameter, like this:
https://your-site.com/landing-page?avsb_preview_token=eyJhbGciOi...The snippet runtime detects it, verifies the signature, and forces the visitor into the corresponding variation for the rest of their session.
Customer-visible preview path
For convenience, preview links can also be presented as a short dashboard URL. The dashboard at <dashboard>/preview/<token> redirects the recipient to the underlying customer URL with the ?avsb_preview_token=<token> query string appended. This is the form the share dialog uses by default: it's easier to paste and looks tidier in email.
Expiry
- Options: 1 day, 7 days, 30 days, or 90 days, chosen from the Link expiry dropdown before you generate.
- Default expiry: 30 days from the moment the link is created.
- Maximum expiry: 90 days. Past this, you need to generate a new link.
- Expired links: Return the unmodified production page. The recipient sees the live experience, not an error. In the Preview links registry, expired links appear greyed out with an "Expired" tag.
Revoking a link
If you need to cancel access before expiry (for example, the recipient is no longer involved in the project), open the share dialog and find the link in the Preview links registry at the bottom. Click Revoke next to it. You'll be asked to confirm, since revoking cannot be undone: the confirmation names the variation and who created the link, so you know exactly what you're cutting off before you do it. Once you confirm, the token is invalidated server-side straight away, the list refreshes, and the row switches to a greyed-out "Revoked" state. Anyone who opens the link after revocation sees the unmodified production page.
Preview tokens are bearer tokens: anyone who receives the link can open it for as long as it's valid. Treat them like any other unlisted share link. For sensitive variations, use a short expiry and revoke as soon as the recipient has finished reviewing.
Security model
Preview tokens are designed so that database compromise alone does not leak working preview links.
- Token generation: Each link uses a cryptographically random opaque string. The raw token is shown to you exactly once, at generation time.
- Hash-only storage: We store a one-way hash of the token, not the raw value. Verification recomputes the hash from the incoming request and looks it up.
- Signature verification: The token also encodes a signed timestamp and variation reference, both verified by the snippet before applying the variation.
- Scope: A token only forces the specific variation it was generated for. It does not unlock any other dashboard data, identity, or org-level permissions.
Previewing from the dashboard
Opening Preview from an experiment in the dashboard is a different flow from the shareable links above. It shows one variation on your live site with a floating review panel: a variation picker, targeting and goals checks, and a list of any errors your variation code raised. Use it when you are the one reviewing; use a preview link when someone without a dashboard login is.
Session length. A dashboard preview session lasts 30 minutes from the last page you opened in it. Every page you visit while previewing keeps it alive, so walking a whole funnel never cuts out mid-review. Leaving the tab idle for more than 30 minutes ends the session, and the next page you open shows the live site again. When that happens, the browser console says Preview expired. Reopen the preview from the dashboard to continue.
Exiting. Use the panel's EXIT button, or run avsb.exitPreview() in the browser console if the panel is hidden or failed to appear. Both return you to the live page.
Troubleshooting. Four different notices mean four different things:
Preview link expiredmeans a shareable link was refused. Ask for a fresh link (see Expiry above).Preview could not loadmeans the check never finished: the preview data, or the link check itself, could not be fetched on this page. That is usually an ad blocker or your site's Content Security Policy. Allow the A vs B host, or turn the blocker off for your own site, then reload.Preview unavailablemeans the link is fine but the experiment or variation it points at could not be loaded here, usually because that variation was deleted after the link was made. Generate a new preview link from the dashboard.Preview is unavailable on this pagemeans the link and the test are both fine, but your site is currently being served a slimmer snippet that does not include the visual editor. That happens when no visual test on this project is running or scheduled yet, so nothing on your site needs it. Launch or schedule the test, publish, then open the link again. A new link will not help here: it would be refused in exactly the same way.
Generate a preview link for every variation before publishing. Share it with your QA team or copywriter; if any issue is spotted, fix it in the editor and re-share: the original link picks up the latest saved state automatically.