Custom HTML Tag Code for Google Tag Manager
Creates a simple fake consent dialog to accept or decline all services defined in a "consentKeys" array. pushes consent to dataLayer in a Usercentrics-like format.
Custom HTML Tag Code for Google Tag Manager
Creates a simple fake consent dialog to accept or decline all services defined in a "consentKeys" array. pushes consent to dataLayer in a Usercentrics-like format.
| <script> | |
| /** | |
| * Fakecentrics - Shakespeare Edition | |
| * =================================== | |
| * creates a simple fake consent dialog to accept or decline | |
| * all services defined in a "consentKeys" array. | |
| * pushes consent to dataLayer in a Usercentrics-like format. | |
| * optional: init and update Google Consent Mode | |
| * | |
| * @version 1.1.0 | |
| * @author Markus Baersch <[email protected]> | |
| */ | |
| /*********************************** SETUP *****************************/ | |
| //add service names to be covered in dataLayer pushes | |
| //set one or both to null or undefined if no Consent Mode settings are needed | |
| var setConsentModeDefault = {'analytics_storage': 'denied', 'ad_storage': 'denied', | |
| 'ad_user_data': 'denied', 'ad_personalization': 'denied'}; | |
| var setConsentModeUpdate = {'analytics_storage': 'granted', 'ad_storage': 'granted', | |
| 'ad_user_data': 'granted', 'ad_personalization': 'granted'} | |
| //Define your consent keys to be set to true after consent for the current session | |
| var consentKeys = [ | |
| "Google Analytics 4", | |
| "Google Ads", | |
| "Solute", | |
| "Facebook Pixel", | |
| ]; | |
| //session cookie name for consent choice | |
| var fc_cookie = "fakeconsent"; | |
| //path to image file (will be scaled 150 pixels wide) | |
| var fc_img = "/areyouhere.png"; | |
| //translate title and button captions | |
| var fc_text = {title: "Sein oder Nichtsein?", accept: "Sein!", decline: "Nichtsein!"}; | |
| /********************************* END SETUP ***************************/ | |
| //Init GCM: | |
| if (typeof(window.gtag) !== "function") { | |
| window.gtag = function(){window.dataLayer.push(arguments);} | |
| } | |
| if (setConsentModeDefault) gtag('consent', 'default', setConsentModeDefault); | |
| </script> | |
| <style> | |
| #fakeconsent{z-index:1000;position:fixed;background:#fff1df;border-radius: 16px; | |
| padding:3em;top:50%;left:50%;color:#222;text-align:center;margin:auto;transform:translate(-50%, -50%); | |
| border:5px solid #222;box-shadow: #000000ab 0 0 10000px 10000px} | |
| .btrw {display:flex;gap:2em;justify-content:center;flex-wrap:wrap;margin:2em 3em 0 3em} | |
| .btrw button{letter-spacing:1px;min-width:8em;border-radius:6px;border:5px solid #222;color:#fff1df; | |
| background:#ff3434;padding:0.6em 1.8em; font-size:1em;font-weight:bold} | |
| #fc_c{text-decoration:none;display:block;float:right;margin:-2em;background:#b49f83;color:#fff; | |
| padding: 1px 10px;border-radius:50%} | |
| #fc_i{width:150px;margin:2em auto} | |
| #fc_t{font-size:2em;font-weight:bold} | |
| </style> | |
| <div id="fakeconsent" style="display:none"> | |
| <a id="fc_c" href="javascript:closeFakeConsent()">X</a> | |
| <div id="fc_t">Cookies okay?</div> | |
| <img id="fc_i" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="> | |
| <div class="btrw"> | |
| <button id="fc_ba" onclick="closeFakeConsent(true)" style="background:#52b752">Accept</button> | |
| <button id="fc_bd" onclick="closeFakeConsent(false)">Decline</button> | |
| </div> | |
| </div> | |
| <script> | |
| document.getElementById('fc_t').innerHTML = fc_text.title; | |
| document.getElementById('fc_ba').innerHTML = fc_text.accept; | |
| document.getElementById('fc_bd').innerHTML = fc_text.decline; | |
| function push2dl(cns, ac, tp) { | |
| if (cns === true && setConsentModeUpdate) | |
| gtag('consent', 'update', setConsentModeUpdate); | |
| var o={event: "consent_status", | |
| action: ac||"onInitialPageLoad", | |
| type: tp||"explicit", | |
| }; | |
| consentKeys.forEach(function(x){o[x] = cns}); | |
| window.dataLayer.push(o); | |
| } | |
| function closeFakeConsent(cns) { | |
| if (cns != undefined) { | |
| document.cookie = fc_cookie+"="+cns.toString()+";path=/"; | |
| push2dl(cns, cns ? "onAcceptAllServices" : "onDenyAllServices"); | |
| } else { | |
| push2dl(false, "onUpdateServices"); | |
| } | |
| fc_dlg.style.display = "none"; | |
| } | |
| var fc_dlg = document.getElementById("fakeconsent"); | |
| if (fc_img) document.getElementById("fc_i").src = fc_img; | |
| if (document.cookie.indexOf(fc_cookie+"=") >= 0) { | |
| push2dl(document.cookie.indexOf(fc_cookie+"=true") >= 0); | |
| } else { | |
| push2dl(false, null, "implicit"); | |
| fc_dlg.style.display = "block"; | |
| } | |
| </script> |
Update 2024-16-10: Added Google Consent Mode Default and Update settings.
Uh oh!
There was an error while loading. Please reload this page.