Welcome to Vanilla Breeze
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
Exclude an element (and everything inside it) from Vanilla Breeze analytics. No beacons fire from any descendant, regardless of data-vb-event or auto-wired VB events.
Put data-vb-no-track on any element to exclude it and all of its descendants from the Vanilla Breeze analytics pipeline. No click event fires, no outbound-link ping is wired, no custom VB event is forwarded — analytics treats the subtree as invisible.
Applies to: any element.
Value: boolean — presence is what matters; the attribute value is ignored.
Wrap any section you don't want measured.
<section data-vb-no-track> <h2>Internal tools</h2> <button>Delete account</button> <!-- click not tracked --> <a href="/admin/logs">View logs</a> <!-- no ping, no beacon --></section>
The exclusion is recursive. Anything nested inside, at any depth, is opted out.
You can also put the attribute on a single element.
<button data-vb-no-track>Skip survey</button> <a href="https://internal.example/tools" data-vb-no-track>Admin portal</a>
If a descendant has data-vb-event or would otherwise fire an auto-wired VB event, the nearest data-vb-no-track ancestor suppresses it. This makes it safe to gate a whole page region without combing through its children.
<section data-vb-no-track> <!-- None of these fire analytics: --> <button data-vb-event="secret_action">Secret</button> <tab-set> <!-- tab-set:change normally fires ui.tab_change — suppressed here --> <tab-panel label="A">…</tab-panel> <tab-panel label="B">…</tab-panel> </tab-set></section>
The page-level page.view event fires once on page load from Analytics.init(), regardless of where data-vb-no-track is placed — it is a page-level signal, not element-scoped. To opt the entire page out of all analytics, put the attribute on <html> or <body>.
<!-- No page.view, no events, no beacons — the analytics runtime early-returns when documentElement has this attribute. --><html data-vb-no-track> …</html>
data-vb-no-trackThere are two complementary mechanisms:
| Mechanism | Scope | Who controls it |
|---|---|---|
data-vb-no-track | Per element / subtree | Author (markup) |
Session opt-out (sessionStorage.vb_optout) | Entire page, this session | Visitor (via UI or Analytics.setConsent(false)) |
| Global Privacy Control / Do Not Track | Entire page, respected on every load | Visitor (browser setting) |
All three are evaluated on every event. Any one of them suppresses tracking.
data-vb-event — declare trackable click eventsping — native link-click tracking (not suppressed by data-vb-no-track on the link itself — the runtime removes ping wiring on excluded links, but an author-written ping attribute still fires)referrerpolicy — control referrer information on any request