← All scenarios

Cookie consent + in-app navigation (combined)

The most realistic real-world edge case combined into one test: a website with a cookie-consent banner (the kind that blocks tracking until the user clicks Accept) that also has single-page navigation (where the URL changes without a full page reload — standard on most modern shopping sites). Two failure modes in one. V1 loses the race on consent delivery AND has no concept of in-app navigation. V2 handles both cleanly.

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. Set the delay input to 3 seconds in both columns. Click "Accept after" in both.
  2. Wait ~3 seconds for the status to read "accepted ✓ wire.js loading". Then wait another second or two for the pixel to appear.
  3. Once V2 shows pixel ×1, click the SPA buttons one at a time: pushState, replaceState, hashchange. Each click should bump V2’s pixel counter.
  4. Reload the page. This time, click Decline in both columns. Confirm the pixel never fires and the SPA buttons stay disabled.
Expected: V1 — pixel stays at ×0 or ×1. The race condition wins on the late consent delivery, and even if V1 does fire it can’t track the SPA navigations. V2 — pixel fires once on execute, then increments on every SPA button click. On Decline, both pixels stay at ×0.
V1 · current pixel
Verdict
Initialising…
window.load
—
wire.js
—
pixel
—
Event timeline
  1. No events recorded yet…
Script tag for this scenario
// Injected after consent. SPA buttons enabled post-consent.
<script type="text/javascript" async src="https://staging-api.wire.spbx.app/wire.js?account_id=79&property_id=6a2111320c2dee2dc5548935"></script>
// V1 has no SPA awareness — pixel stays at ×1 even if it fires at all.
V2 · proposed fix
Verdict
Initialising…
window.load
—
wire.js
—
pixel
—
Event timeline
  1. No events recorded yet…
Script tag for this scenario
// Injected after consent. SPA buttons enabled post-consent.
<script type="text/javascript" async src="https://staging-api.wire.spbx.app/wire.js?pixel_id=6a211df10c2dee2dc5548936&account_id=79&property_id=6a2111320c2dee2dc5548935"></script>
// V2 fires on execute, then refires on each SPA navigation.