diff options
| author | Yuriy Andamasov <yuriy@vyos.io> | 2026-05-07 18:52:45 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-07 18:52:45 +0300 |
| commit | 2b18f0a0acf337c1672fbc1dffb5f393d1149325 (patch) | |
| tree | 45af64df3c63f4194778863e4d9ee30a574acb3c /docs/_templates/layout.html | |
| parent | 4eaf1e11aabb09afc11b26b90ad0ab8c8aed5d58 (diff) | |
| parent | 6f35bf561b330385bbb848f96c4ea84dc6089f5c (diff) | |
| download | vyos-documentation-2b18f0a0acf337c1672fbc1dffb5f393d1149325.tar.gz vyos-documentation-2b18f0a0acf337c1672fbc1dffb5f393d1149325.zip | |
Merge pull request #1871 from vyos/feat/docs-cookiebot-gtm-consent
feat(docs): add Cookiebot CMP and GTM with Consent Mode v2
Diffstat (limited to 'docs/_templates/layout.html')
| -rw-r--r-- | docs/_templates/layout.html | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html index 5736a26f..fce69b86 100644 --- a/docs/_templates/layout.html +++ b/docs/_templates/layout.html @@ -1,6 +1,39 @@ {% extends "!layout.html" %} {%- set current_version = "1.5.x circinus" %} {% block extrahead %} + {% if gtm_id and cookiebot_id %} + {# Cookiebot CMP — must load first so its auto-blocker can scan/block other tags #} + <script id="Cookiebot" + src="https://consent.cookiebot.com/uc.js" + data-cbid="{{ cookiebot_id }}" + data-blockingmode="auto" + type="text/javascript"></script> + + {# Google Consent Mode v2 defaults — deny everything until Cookiebot fires the update #} + <script> + window.dataLayer = window.dataLayer || []; + function gtag(){window.dataLayer.push(arguments);} + gtag('consent', 'default', { + 'ad_storage': 'denied', + 'ad_user_data': 'denied', + 'ad_personalization': 'denied', + 'analytics_storage': 'denied', + 'functionality_storage': 'denied', + 'personalization_storage': 'denied', + 'security_storage': 'granted', + 'wait_for_update': 500 + }); + gtag('set', 'ads_data_redaction', true); + </script> + + {# Google Tag Manager #} + <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': + new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], + j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= + 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); + })(window,document,'script','dataLayer','{{ gtm_id }}');</script> + {% endif %} + <style>#vyos-header-iframe{position:fixed;top:0;left:0;right:0;z-index:999999999;width:100%;border:none}</style> <style>#vyos-footer-iframe{width:100%;border:none}</style> <iframe src='https://vyos.io/iframes/header' id='vyos-header-iframe'></iframe> @@ -28,5 +61,13 @@ <script type="text/javascript" charset="utf8" src="{{ pathto("_static/js/codecopier.js", True) }}"></script> <script type="text/javascript" charset="utf8" src="{{ pathto("_static/js/sidebar.js", True) }}"></script> <script type="text/javascript" charset="utf8" src="{{ pathto("_static/js/footer.js", True) }}"></script> - </script> +{% endblock %} + +{% block body %} + {% if gtm_id and cookiebot_id %} + <noscript><iframe src="https://www.googletagmanager.com/ns.html?id={{ gtm_id }}" + height="0" width="0" style="display:none;visibility:hidden" + title="Google Tag Manager"></iframe></noscript> + {% endif %} + {{ super() }} {% endblock %} |
