What VWO traffic looks like
VWO's SmartCode fetches settings, buckets the visitor, then beacons back, with the assignment state persisted client-side in cookies.
- Endpoint pattern
- Settings and library from
dev.visualwebsiteoptimizer.com(typically ajs_visitor_settings.phpor settings request keyed by account ID), with library assets also served from thed5phz18u4wuww.cloudfront.netCDN; tracking beacons go back todev.visualwebsiteoptimizer.com; a slow settings response here is what users experience as the anti-flicker blank flash - Transport
- Classic pixel-style requests on older SmartCode; newer versions send batched event calls with
vwo_-prefixed event names for variation shown and goal conversions - Key parameters
aaccount ID ·expexperiment ID ·ccombination/variation ID- Cookies
_vwo_uuidvisitor identity · per-experiment_vis_opt_exp_<id>_combirecords the locked-in variation: the beacon tells you what fired now, the cookie tells you what was assigned earlier
Debugging VWO with Event Watcher
- Detects VWO from its request URLs and names and categorizes every call in the live stream.
- No dedicated VWO parser: parsed query and body parameters make account, experiment, and combination IDs readable directly, rather than decoded sections.
- The per-event cookies panel surfaces the
_vis_opt_*assignment cookies. - The consent check runs on every request.
VWO and consent
Functional consentThe extension checks VWO against functional consent. VWO's beacons carry a persistent visitor UUID, so firing before the CMP grant means an identifier left the browser pre-consent. Those events are marked pre-consent and added to the violations counter.
Implementations that load SmartCode unconditionally (for anti-flicker reasons) but claim to suppress tracking are worth verifying: the settings request may be fine, but watch whether tracking beacons hold off until consent.
Common debugging scenarios
- Visitor not entering the test. Check for the settings request, then look for a beacon carrying the expected experiment ID. The
_vis_opt_exp_<id>_combicookie in the cookies section shows the stored assignment. - Goal conversions missing. Filter to VWO in the stream and confirm a conversion beacon fires on the goal page or click; compare its experiment/goal parameters against the campaign setup.
- Anti-flicker blank flash. SmartCode hides the page (typically
body, or configured elements) until settings arrive or a tolerance timeout expires. Script Tree shows whether a tag manager injected SmartCode, which delays settings and stretches the hide window. - Pre-consent bucketing. Use the consent badges to see whether assignment beacons fire before the CMP grant.
- Multiple testing tools colliding. Pivot Grouped view by Tool to see VWO next to AB Tasty or Optimizely when two tools fight over the same pages.