Add Velo to Drupal.
Install the Velo cookie banner and Google Consent Mode v2 on Drupal in minutes. One line in your theme template does it. If you already run Google Tag Manager, that route is on this page too.
Paste one line
before the head closes.
One line in Drupal, and the banner is on every page with the Consent Mode default set before any other tag can fire. Same banner, same wiring and the same audit log as the Tag Manager route.
Already running Google Tag Manager? Take that route instead ↓
Three steps · about five minutes
-
01
Copy the line
One script tag, the same on every page of the site. Everything below is about getting it into the right place, and that place is always the head, ahead of the tags it governs.
<!-- 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> -
02
Add the tag to your theme
Paste the snippet before </head> in your theme’s html.html.twig, or use the Asset Injector module if you prefer staying out of the theme. Clear caches after either.
your-site.com/admin · Asset Injector
-
03
Clear caches and reload
Drupal caches rendered pages aggressively, so flush caches once. The banner then renders on every page with the Consent Mode default set before any other tag can fire. The snippet is static, so page caching stays effective.
your-site.com
Drupal caches rendered pages aggressively, so flush caches once after the edit. The snippet is identical for every visitor, so page cache and CDN cache both keep working — region resolution and the decision happen in the visitor's browser and at the edge, not in Drupal.
Or import the tag
in Tag Manager.
One tag, no code on the page, and your whole measurement stack stays in one place. No Tag Manager yet? The Google Tag module installs the container cleanly from your Drupal admin, then start here.
- 01Import the Velo CMP templateTemplates→Tag Templates→New→Import
- 02Create the tagTags→New→Velo CMP template
- 03Tick the two recovery optionsAdvanced→url_passthrough→ads_data_redaction
- 04Fire it on Consent Initialization – All PagesTriggering→Consent Initialization – All Pages
- 05Turn on consent overview under AdminAdmin→Container Settings→Enable consent overview
- 06Preview, then publishPreview→Submit→Publish
Drupal questions,
answered.
What teams installing on Drupal ask first.
Which Drupal versions does this cover?
The steps are written for Drupal 10 and 11 and work the same on 9. Velo is one script tag with no module dependency, so core and contrib updates never touch it.
Do I need a dedicated module?
No. A theme template or Asset Injector both work, and the Tag Manager route needs no code at all. If you already run the EU Cookie Compliance module, disable it so only one consent layer is active.
Will Drupal’s caching break it?
No. The snippet is identical for every visitor, so page cache and CDN cache both keep working. Region resolution and the consent decision happen in the visitor’s browser and at the edge, not in Drupal.
Will it slow the site down?
No. The script loads deferred, never blocks rendering, and the visitor's region is resolved at the nearest edge before the page finishes painting. The banner itself is a few kilobytes of static code.
Can an AI assistant do this for me?
Yes. Copy the prompt in Install with agents, just below, into Claude, ChatGPT, Cursor or whichever assistant you already use. It carries the steps on this page, the order the tags have to load in, and the checks the agent has to run before it tells you the job is done.
Or hand it
to an agent.
Copy the prompt into Claude, ChatGPT, Cursor or whichever assistant you already use. It carries everything on this page: both routes, the order the tags have to load in, and the checks that prove it worked.
Paste it in as your first message, then swap your-site-id for the ID on your Velo dashboard. Everything else the agent needs is already written into it, including what to check before publishing.
Working with an agent that reads the web? Point it at veloconsent.com/llms.txt and /install.md for the same context in plain text.
From the journal.
Your banner, your consent,
your data — all in one place.


