Free scan Install guides Developers Compare CMPs About Support Contact
Get Velo

Already have an account? Log in

One snippet,
then a dashboard.

Add one script tag, drop in a Google Tag Manager template, and you are done. Banners, regions, categories and Consent Mode v2 are configured in the dashboard, so the code you ship never has to change again.

The consent layer behind 100+ marketing teams.

Live in two lines.

Paste the tag once, near the top of your head element. Velo loads asynchronously, blocks every tag until the visitor decides, and applies the right regional regime on its own.

<!-- Before your other tags. That order is the point. --> <script src="https://veloconsent.com/v1/velo.js" data-velo-site="your-site-id" defer></script>

No GTM? This is the whole install. Running GTM? Use the tag template instead — one path, never both.

What happens when
your page loads.

Three phases run in order, so nothing fires before your visitor has made a choice.

Clay browser window with googly eyes01 · The snippet defers
Clay consent banner card with googly eyes02 · Tags wait for a choice
Clay database stack with googly eyes03 · Consent Mode v2 fires
The snippet defersVelo loads asynchronously and never blocks your render. The region is resolved at the nearest Cloudflare edge before the page finishes painting.
Tags wait for a choiceEvery tag is gated by category. Analytics fires on analytics consent, your pixels fire on advertising consent, and nothing leaks before the visitor decides.
Consent Mode v2 firesDefault and update calls fire in the order that modelling depends on, so declined visitors are modelled reliably and your reports stay whole.

A tag template,
not a tag rewrite.

Import the Velo template into your Google Tag Manager workspace once. It reads consent state straight from the data layer and gates every tag by category. The GTM install guide.

Velo CMP templateimported ✓
TriggerConsent Initialization – All Pages
Consent defaultdenied before any tag
GA4 configurationfires on analytics consent
Google Ads pixelheld for advertising consent
one template · gates every tag by category

Read consent,
react to changes.

One global queue, a handful of methods. Ask Velo for the current state, listen for updates, or reopen the preferences panel from anywhere on the page.

// synchronous, current visitor const s = velo("state"); // {{ region: "EEA", analytics: true, // advertising: false }}

Returns the current consent payload, synchronously. Returns the pending default before a choice is made.

velo("onChange", s => { // runs on set + every change if (s.advertising) loadPixel(); });

Runs your callback the moment consent is set, and again on every change. Perfect for loading a tag the instant its category is allowed.

btn.onclick = () => velo("open"); // reopens the preference panel

Reopen the preferences panel from your own button or footer link, so visitors can change their mind without hunting for it.

velo("region"); // "EEA" | "UK" | "US-CA" | "ROW"

The region resolved at the edge. Use it to branch your own logic without a geo lookup.

Install with agents.

Everything an AI assistant needs to know about Velo, in two plain text files. Paste them into Claude, Cursor or any coding agent and it installs Velo for you.

From the journal.

How to pass the consent signal to a server side tagging container Consent is decided in the web container and rides to the server on the request. 27 July 2026
How to check your cookie banner is sending the Consent Mode v2 signal Two reads settle it: the four consent signals inside the browser, and the state that actually reached Google on the request. 26 July 2026
What consent modelling is, and when Google actually switches it on Consent modelling estimates what declined visitors did. 11 August 2026

Your banner, your consent,
your data — all in one place.

Scan your site →
Pages Free scan Product Agencies Pricing Developers Install guides Compare CMPs
Company About Velo Blog Help Contact
Account Sign up Log in Get early access
GDPR CCPA
All rights reserved
© 2026 by Amplio Data