Lessons in this module
Lesson 12 of 16
Additional Consent Settings
① Connect your GTM container
Paste your container ID to load it into this page. It only ever runs here.
Advanced: use a specific environment
Built-in consent checks only cover Google's tags. A third-party marketing pixel pasted into a Custom HTML tag knows nothing about Consent Mode, left alone it fires and drops its cookies no matter what the visitor chose. For those tags GTM gives you the other half of Consent Settings: Require additional consent for tag to fire. List the signals the tag needs, and GTM itself holds the tag until every one of them is granted.
The difference from built-in checks matters: a gated tag doesn't adapt or send cookieless pings, it simply does not run at all. Here you'll gate a stand-in pixel named Pixel - Marketing on ad_storage and ad_user_data, then watch the panel below: rejected means blocked, accepted means fired.
Goal
Gate Pixel - Marketing with additional consent so it cannot fire at all until ad_storage (and ad_user_data) are granted.
Build it in GTM
Trigger: Custom Event - Marketing Ping
Triggers → New → Custom Event, event namemarketing_ping(what the button below pushes). Save it.Tag: Pixel - Marketing
Tags → New → Custom HTML with<script></script>as the body, our harmless stand-in for a real vendor pixel. Fire it onCustom Event - Marketing Pingand name itPixel - Marketing.Require additional consent
In the tag, open Advanced Settings → Consent Settings, choose Require additional consent for tag to fire, and addad_storageandad_user_data. Save. Now GTM holds this tag whenever either signal is denied.
Debug in Tag Assistant
Copy this lesson's live URL and paste it into GTM Preview, that is the page Tag Assistant connects to. It has the clickable elements, so this page stays clean for reading.
- In your GTM, click Preview.
- Paste the live URL above and click Connect.
- Interact with the live page and watch your tag fire in Tag Assistant.
What you should expect to see
Pixel - Marketing under Tags Not Fired with the reason consent not granted. Accept all and push again, it moves to Tags Fired. Blocked is not "fired quietly", it never ran.Verify your container
Built it? Export your container, Admin → Export Container, choose your workspace, then drop the JSON here to check it against this lesson.
Drop your container .json here
or browse · checked in your browser, nothing is uploaded