Add Velo to
Framer.
Install the Velo cookie banner and Google Consent Mode v2 on Framer in minutes. The recommended path is one tag imported into Google Tag Manager; one line in Framer’s custom code works just as well.
Two ways in.
Pick one.
The recommended install: one community template imported into your container. It sets the Consent Mode v2 default before any other tag fires, then loads the banner. Prefer code? Jump to the one line install.
Install through
Google Tag Manager.
One tag, no code on the page, and your whole measurement stack stays in one place. No Tag Manager on the project yet? Paste the GTM head snippet into Start of <head> tag and the noscript into Start of <body> tag under Site Settings → General → Custom Code, publish once, then start here.
Import the Velo CMP template
Download template.tpl from github.com/ampliodata/velo-cmp. In your container, open Templates → Tag Templates → New, then open the ⋮ menu at the top right of the editor and choose Import. Pick the file you just downloaded, save, and the Velo CMP tag is ready to configure. Velo CMP is awaiting its listing in Google’s Community Template Gallery — until it lands, importing the file is the way in, and the tag behaves identically.
Create the tag
Go to Tags → New and choose the Velo template. Enter your Velo site ID — lowercase letters, digits and dashes, exactly as the dashboard shows it — and pick the light or dark theme to match your site. Leave the API endpoint blank unless Velo issued one for your account: the banner and Consent Mode work fully without it, and when it is set the dashboard's remote configuration takes over copy and categories.

Tick the two recovery options
Under Advanced, two checkboxes are worth switching on. url_passthrough lets ad click, client and session identifiers survive navigation through URL parameters while storage consent is denied — it recovers attribution for the traffic your banner would otherwise lose. ads_data_redaction additionally drops ad click identifiers and goes cookieless on requests while ad_storage is denied — recommended for strict EU setups. The copy override fields can stay empty; prefer editing copy in the Velo dashboard.

Fire it on Consent Initialization – All Pages
This is the trigger Google provides specifically for consent defaults: it runs before every other trigger in the container, which is what guarantees the denied default is in place before any measurement tag can fire. Do not use Initialization or All Pages — both run too late. This one choice is most of what a correct consent install comes down to.

Turn on consent overview under Admin
In Admin → Container Settings, tick Enable consent overview. This switches the container’s consent features on: the shield icon in the Tags view that shows each tag’s consent status, and the consent state readings you are about to check in Preview. Do it before you open Preview — without it, GTM gives you no consent overview to debug against.

Preview, then publish
In Preview, check three things: the Velo tag fired on Consent Initialization before every other tag; the Consent tab in Tag Assistant shows every signal except security_storage denied by default from an EEA, UK or Swiss location; and accepting or declining in the banner flips the matching update row while a velo_consent_update event lands in the data layer. Then Submit → Publish. The banner is live on the next page load, and the Velo console flips to installed on its own when the first real signal arrives.

Paste one
line of code.
A direct install behaves identically to the Tag Manager install — same banner, same Consent Mode wiring, same audit log. Use whichever fits how your Framer site is managed.
One line, before your analytics and advertising tags. It loads without blocking your page and sets the Consent Mode default first. Your site ID is in the Velo dashboard.
Open Site Settings → Custom Code
In the Framer editor, click the gear icon top right to open Site Settings, stay on the General tab and scroll to Custom Code. Paste the snippet into Start of <head> tag — the earliest slot Framer offers, which is what lets Velo set the consent default before any other tag — and hit Save. Custom code needs a paid site plan (Mini or higher).

Publish the site
Framer applies custom code on publish: click Publish top right and reload the published URL — the editor preview does not run custom code. The banner renders and the Consent Mode default is set before anything else fires.

Then verify
from real traffic.
Whichever method you choose, the Velo console polls for the first real signal from your site — the banner loading or a decision being recorded — and flips to installed the moment one arrives. Then run the scan and set your regions.
Framer questions,
answered.
Does this work on the free plan?
Custom code, including any consent tool and Google Tag Manager itself, needs a paid Framer site plan (Mini and up). Once the site has one, either method on this page takes a couple of minutes.
Which custom code slot should I use?
Start of <head> tag. It is the earliest slot Framer offers, so the consent default is in place before anything else loads. End of <head> works too but runs later; never use the body slots for a consent script.
Does it work with Framer Analytics?
Framer’s built in analytics is cookieless and unaffected. Velo governs the Google tags you add yourself — GA4, Google Ads, or anything routed through Tag Manager — and recovers the signal consent would otherwise cost them.
I already have a CMP embed in my project.
Remove the old embed before publishing Velo. Two banners confuse visitors, and two tools writing Consent Mode defaults send Google conflicting signals. Velo takes over the whole job in one tag.
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 below into Claude, ChatGPT, Cursor or whichever assistant you already use. It carries everything on this page — the Tag Manager route, the Framer route, the order the tags have to load in, and the checks that prove it worked — so the agent can do the install with you and tell you exactly what it changed.
# Install Velo on Framer — cookie banner + Google Consent Mode v2
You are installing Velo, a consent management platform, on my Framer
site. Velo shows the cookie banner, sets the Google Consent Mode v2
defaults before any other tag can fire, and records every decision.
Ask me for these before you touch anything:
- My Velo site id — it is in the Velo dashboard. No account yet? Send me
to https://veloconsent.com/get-started and wait for the id.
- Whether the site already runs Google Tag Manager, and which container.
- Which cookie banner or consent tool is live on the site today.
## Path A — through Google Tag Manager (preferred when GTM is live)
1. Templates → Tag Templates → New, then ⋮ → Import. Import the
template.tpl from github.com/ampliodata/velo-cmp ("Velo CMP").
2. Create a tag from that template. Set my Velo site id and pick the
light or dark theme.
3. Fire it on the "Consent Initialization – All Pages" trigger. Not
Initialization, not All Pages — both run too late to set consent
defaults.
4. Preview, check the Consent tab in Tag Assistant, then Submit and
Publish.
No container yet? On Framer, open Site Settings → General → Custom Code
and paste the GTM snippets into the head and body slots, then publish.
## Path B — the snippet, straight into the site
Put this line in the <head>, above every analytics and advertising tag:
<script src="https://veloconsent.com/v1/velo.js"
data-velo-site="MY_SITE_ID" defer></script>
On Framer: the gear icon → Site Settings → General → Custom Code → the
"Start of <head> tag" slot → Save, then publish. That slot is the
earliest Framer offers, which is what lets Velo set the consent default
first. Custom code needs a paid site plan (Mini or higher).
## Rules
- One path, never both. Two installs means two banners.
- Velo loads first. Everything that measures or advertises comes after.
- Only one tool may set Consent Mode defaults. If a CMP embed is already
in the project, remove it before publishing Velo. Leave no hard coded
gtag('consent', 'default', ...) anywhere else either.
- Change nothing beyond what this install needs. Tell me first if a theme
file, plugin or existing tag has to be touched.
## Verify, then report back
- The banner renders on a fresh load in a private window.
- Before I choose, every consent signal except security_storage is denied
from an EEA, UK or Swiss location.
- Accepting and rejecting each flip the matching signals, and a
velo_consent_update event lands in the data layer.
- Google tags stay in their cookieless mode until consent is granted, and
any tag gated by hand fires only after it.
- window.Velo is defined, and Velo.open() reopens the preferences panel.
- On a Tag Manager install, Tag Assistant shows the Velo tag firing on
Consent Initialization ahead of every other tag.
Tell me what you changed, where you changed it, and what each check
showed. If a check fails, fix it and run the checks again.
Full guide: https://veloconsent.com/framer
More context for agents: https://veloconsent.com/llms.txt
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.
Compliant on Framer.
Signal recovered.
The banner, the regions, the audit log and Consent Mode v2,
working together on your Framer site, live in minutes.