← All scenarios

Cookie consent banner (OneTrust / Cookiebot)

A test of a website behind a cookie-consent manager — the kind that blocks all tracking scripts until the user clicks Accept. Behind the scenes this delays wire.js from loading at all, which is the same situation that exposes the V1 race condition. The Decline button also tests the "negative path" — confirming that no pixel ever fires when the user explicitly refuses consent.

Each side runs the same scenario in its own iframe. The iframes load independently, so you can see how each pixel version behaves under identical conditions.

How to test:
  1. For the race-condition demo: set delay to 3 seconds in both columns, click "Accept after" in both, and wait. wire.js arrives 3 seconds after Accept, well after window.load has already fired.
  2. For the immediate case: reload, click "Accept now" in both. wire.js arrives quickly, before window.load — V1 may pass.
  3. For the negative path: reload, click "Decline" in both. The pixel column should never show a number.
Expected: Delayed Accept — V1 cannot fire (race lost), V2 fires on execute. Immediate Accept — both fire reliably. Decline — both stay at pixel ×0, confirming no tracking happens without consent.
V1 · current pixel
Verdict
Initialising…
window.load
—
wire.js
—
pixel
—
Event timeline
  1. No events recorded yet…
Script tag for this scenario
// Injected only after Accept. Never injected on Decline.
<script type="text/javascript" async src="https://staging-api.wire.spbx.app/wire.js?account_id=79&property_id=6a2111320c2dee2dc5548935"></script>
V2 · proposed fix
Verdict
Initialising…
window.load
—
wire.js
—
pixel
—
Event timeline
  1. No events recorded yet…
Script tag for this scenario
// Injected only after Accept. Never injected on Decline.
<script type="text/javascript" async src="https://staging-api.wire.spbx.app/wire.js?pixel_id=6a211df10c2dee2dc5548936&account_id=79&property_id=6a2111320c2dee2dc5548935"></script>