Voice of customer

Loaded only where a survey runs

A site with no survey never requests the file. Not a small file: no file.

Separate bundleRequested lastNever on sites without one

Survey code is a separate bundle from the experiment runtime, and a website with no survey running never asks for it. The flag that would trigger the request is absent from that site’s generated bundle rather than set to false, so the cost is nothing rather than a little.

When it is requested, it is requested last, and the ordering is deliberate in three ways. The page has already been revealed, so no survey code path can leave a visitor looking at a hidden page. Measurement has already been requested, so a survey failure cannot cost you a conversion event. And it runs as its own script with its own error handling, so a failure inside it is contained.

This is the same discipline the rest of the runtime follows, applied to the part that is easiest to get wrong. A feedback widget is exactly the sort of thing that ends up as a render-blocking third-party script on somebody’s checkout page, and that outcome is designed out here rather than mitigated afterwards.

There is also a way to switch surveys off entirely from the page itself, which is the escape hatch you want on a customer site when something needs to stop immediately.

Better experiments, better conversions

Test on all visitors with the world’s lightest script and make confident decisions powered by real-time reporting.