Lessons in this module
Lesson 16 of 16
Consent & Privacy: Recap And Verify
Recap consent gating, then check your whole container in one pass.
Consent is one idea applied at three layers: a default state that must exist before anything fires (Consent Initialization), an update the banner announces (a gtag update plus an event you can trigger on), and per-tag behavior, built-in checks for Google's tags, additional consent or exception triggers for everything else. Regions just vary the default; wait_for_update buys the CMP time.
Export your container and verify the module below. Two lessons are mostly conceptual, built-in checks are automatic and the consent-advanced controls live in the Consent Mode template's config, so their checks stay lenient.
What you covered
- Consent Mode V2: Gate a tag on analytics_storage so it holds under denied and fires under granted.
- Consent Defaults Before Anything: A Custom HTML gtag consent default on Consent Initialization runs before every other trigger.
- Wire The Banner: A CMP button does two jobs: a gtag consent update, then a consent_update event your triggers react to.
- Built-In Consent Checks: GA4 and Ads tags read consent on their own: cookieless pings under denied, cookies under granted.
- Additional Consent Settings: Non-Google pixels need per-tag additional consent (ad_storage, ad_user_data) or they never hold.
- Exception Triggers On Consent State: A consent-state DLV drives a blocking exception, and a consent_update trigger refires the missed view.
- Regions And Wait_For_Update: Region arrays scope defaults (EEA denied, US-CA ads-only denied) and wait_for_update holds first hits for the CMP.
- Consent Mode Advanced: Region defaults, url_passthrough and ads_data_redaction (config lesson, nothing to export).
Check your knowledge
A quick quiz on what this module taught. Pass it and it counts toward your course certificate; you can retake it any time.
5 questions. Answer all of them, then submit; you need 4 of 5 to pass.
Answer every question to submit.
Verify your whole container
Built everything in this module? Export your container (Admin → Export Container, choose your workspace) and drop the JSON here. We run every lesson's check against your single export, so you can confirm the whole module in one pass. It's checked in your browser, nothing is uploaded.
Drop your container .json here
or browse · checked in your browser, nothing is uploaded
Stuck? Download the reference container for this module and import it in GTM (Admin → Import Container) to compare.