The Velo journal

Do you still need a cookie banner with server side tagging

Consent Mode v2·24 July 2026·The Velo team

Yes, you still need a cookie banner with server side tagging. Server side tagging changes where your tags run, from the visitor's browser to a container on a server you control. It does not change whether you are allowed to collect the data in the first place. That question is answered by consent, and consent is what the banner captures.

What server side tagging actually moves

The confusion is fair, because server side tagging really does move a lot. Instead of a dozen vendor scripts firing in the browser, the page sends one request to a container you own, and that container does the talking to Google, Meta and everyone else. You get first party requests from your own domain, cookies with a longer life, and a chance to clean or drop data before it ever leaves.

None of that touches the moment a visitor decides what they will allow. That decision happens on the page, before any of the server side machinery runs. Here is the split.

STAYS IN THE BROWSER MOVES TO YOUR SERVER The banner where you ask The visitor's choice granted or denied The Consent Mode signal set in the page The legal duty to ask unchanged by server side tagging SIGNAL Tag execution runs in your container Data enrichment before it is forwarded First party requests from your own domain Cookie lifetime set server side The banner sits on the left. Server side tagging rearranges the right, and never the one you asked about.
where consent is capturedwhat server side tagging relocates
Server side tagging rearranges where your tags run and where the data is enriched. The banner, the visitor's choice and the duty to ask stay in the browser. The server can only enforce a choice the page has already captured and sent.

The consent decision never left the browser

A banner exists to do one thing: ask a visitor whether you may use non essential cookies and trackers, and record the answer. Server side tagging is about processing the data you are allowed to collect. It has nothing to say about the asking.

The law reads the same way. Whether you need consent depends on what you collect and the regions your visitors sit in, not on the server your tags happen to run on. An EU or UK visitor still gets the opt in. A Californian still gets the opt out. Move every tag into a container in your own cloud and the duty is exactly where it was.

Where the signal has to travel

This is the part the vendor guides skip. They tell you the consent platform transmits the signal to your server and stop there, as if it were automatic. It is not. The banner sets the Consent Mode v2 state in the browser, and that state has to travel with the request the browser sends to your container. In a Google setup it rides along as the gcs parameter. Your container reads it and decides what each tag may do.

Hold onto the direction. The choice is captured in the page and forwarded to the server. The server can honour it, model around it, enrich what is permitted. What it cannot do is invent a choice that was never made. No banner means no signal, and a container with nothing coming in is not compliant by virtue of being first party. It is a tracker that never asked. If you are not sure which mode your site even runs, we walked through how to tell in which Consent Mode your site is actually running.

Where this quietly breaks

Because server side requests come from your own domain, they look trustworthy in a way browser requests do not. That is exactly why the faults here are easy to miss.

The one we see most often is a GA4 client in the server container left to manage its own cookies. In that setting it stamps a first party identifier onto every incoming request, including the cookieless pings that were sent precisely because a visitor denied. Those denied pings stop being anonymous and start being counted as real sessions. We found this on a live consent rebuild after weeks of a client's Unassigned traffic climbing with no explanation, and the way it floods your reports is its own post: why your GA4 traffic shows as Unassigned after adding a cookie banner. The fix was one setting. The lesson is that server side tagging did not make consent safer here. It made a breach harder to spot.

How to check your own setup respects consent

  1. Confirm the banner still fires first

    Server side or not, the Consent Mode default has to be set to denied before any Google tag runs, on every page including the first of a visit. If the default lands after the tag, the opening hit leaves in a state nobody chose.

  2. Deny, then watch the request

    In an incognito window, reject everything and open the network panel. Find the request going to your server container. The gcs parameter names the state, and G100 means both storage types denied. That is the signal your server will act on.

  3. Check the denied ping stays anonymous

    On that same denied request, look for a client identifier. A denied ping carrying an id is the server managed cookie fault, and it will pad your numbers with traffic you were told to leave alone.

  4. Confirm the advertising tags hold

    With consent denied, the advertising tags in your container should not be sending identifiable data onward. If they fire regardless, the container is reading the request but not gating on it.

  5. Test as a returning visitor

    Load the site again with a stored denial. A setup that respects the first choice on a repeat visit, without silently overriding it, is the one you want.

What moving server side is actually worth

None of this is a reason to avoid server side tagging. Done properly it is one of the levers that wins back measurement a banner would otherwise cost you. Across Amplio Data client implementations we typically see around 34% of sessions sitting behind the banner, and 20 to 40% of the lost conversions recoverable once Consent Mode v2 and server side tagging are wired the way Google expects. Figures are measured ranges across Amplio Data client implementations, not a guarantee. Recovery depends on your traffic mix, regions and how your tags are configured.

Worth saying plainly, because it is where the topic gets muddled: that recovery comes from modelling and cleaner signal, not from collecting more than a visitor allowed. Server side tagging earns its keep by respecting the choice better, not by working around it. For the wider picture of what actually survives a rejection, we covered it in what happens to your GA4 data when users reject cookies.

The short version

Server side tagging moves your tags off the visitor's browser and onto a server you control. It does not move the moment of consent, which stays on the page, and it does not remove the duty to ask, which stays with your regions and your data. You still need the banner. What changes is that a well wired server gives that banner a cleaner place to be honoured, and a badly wired one gives it a cleaner place to be ignored.

Velo captures the choice in the browser and sends it in the shape Google expects, so the server side of your stack acts on a real signal rather than a missing one. The mechanism is on the product page.

Common questions

Do you still need a cookie banner with server side tagging?

Yes. Server side tagging changes where your tags run, not whether you are allowed to run them. If your site uses non essential cookies or trackers in a region that requires consent, you still have to ask, and the banner is where you ask. Moving the tags to your own server gives you a cleaner place to enforce the answer, but it does not remove the duty to get one.

Does server side tagging make you GDPR compliant on its own?

No. Server side tagging is an infrastructure choice about where data is processed. Compliance depends on capturing a valid consent choice before non essential tags fire and then honouring it, which is the banner's job. A server container with no consent signal coming into it is a first party tracker that never asked, which is further from compliant, not closer.

How does the consent signal reach the server with server side tagging?

The banner sets the Consent Mode v2 state in the browser, and that state travels with the request the browser sends to your server container. In a Google setup it rides along as the gcs parameter. The container reads it and decides what each tag is allowed to do. The point people miss is that the server can only act on a choice the browser already captured and forwarded, so if the signal is never sent, the server has nothing to honour.

Can server side tagging track users who rejected consent?

It can if it is misconfigured, and that is the risk nobody mentions. Because the requests are first party and come from your own domain, a server container can quietly write identifiers onto pings that were sent without consent, turning a denied visitor into a counted one. That is a fault to find, not a feature. The setup has to be checked to confirm a denial stays a denial the whole way through.

Back to the journal

Stay compliant.
Recover the signal.

Add Velo once and get the banner, the regions, the audit log
and Consent Mode v2 working together, live in minutes.