Browse help topics
Choose when your Google tags load.
Choose whether Google tags load straight away with consent denied, or wait until the visitor consents. Then set up basic consent mode if you need it.
Compare the two modes
| Mode | Before the visitor chooses | After the visitor chooses |
|---|---|---|
| Advanced (Velo’s default) | Google tags load straight away. Velo sets the signals to denied, and Google receives cookieless pings. | Velo updates the signals on each choice. |
| Basic | Google tags do not load at all. Velo sends no Consent Mode commands. | Velo releases the Google tags for the categories the visitor allows. |
In advanced mode, the signals start as denied in opt-in regions. Turn on Require opt-in in every region to start them as denied everywhere.
The trade-off: basic mode sends Google nothing before consent, so Google has nothing to model from. Advanced mode keeps cookieless measurement.
Turn on basic consent mode
- Direct install: add
data-velo-consent-mode="basic"to the Velo script tag. Or add?consent_mode=basicto the end of itssrc. - Google Tag Manager: tick Basic consent mode in the Velo CMP tag, then publish the container.
<script src="https://cdn.veloconsent.com/v1/velo.js"
data-api="https://app.veloconsent.com"
data-velo-site="YOUR-SITE-ID"
data-velo-consent-mode="basic"
async></script>Velo still sets its Google developer ID. Because it sends no Consent Mode commands, your Google tags must not load until the visitor consents. Block them as shown below.
Block Google tags until consent
Direct install
Change each Google tag’s type to text/plain and add the Velo category it belongs to. Use analytics for Google Analytics and ads for Google Ads. Velo releases the tag when the visitor grants that category.
<script type="text/plain" data-velo-category="analytics"
src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX" async></script>
<script type="text/plain" data-velo-category="analytics">
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXX');
</script>Google Tag Manager
Fire your Google tags on the visitor’s choice instead of All Pages.
- Create a Data Layer Variable with the name
velo_categories.analytics. - Create a Custom Event trigger for the event
velo_consent_update. Set it to fire when that variable equalstrue. - On each Google Analytics tag, replace the All Pages trigger with this one.
- For Google Ads tags, repeat these steps with
velo_categories.ads. - Publish the container.
Velo pushes velo_consent_update each time consent takes effect, including on a returning visitor’s next page views. Once allowed, the tags fire on every page.
Switch back to advanced
Remove data-velo-consent-mode="basic" or the consent_mode=basic parameter. In GTM, untick Basic consent mode and publish.
Then return your Google tags to their usual script type and triggers, so they load straight away again. Consent Mode then controls what they send.
Test basic mode
- Open the published website in a fresh private window.
- In the Network panel, check that nothing loads from Google before you choose.
- Load the page with
?velo_debug=1and check that the consent mode shows basic. - Accept analytics and check that Google Analytics loads.
- In a new private window, reject everything and check that no Google tag loads.
- In GTM Preview, check that your Google tags fire on
velo_consent_update.