templates/flex-gtm/flex-gtm.html.twig line 1

Open in your IDE?
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>{% block title %}Welcome!{% endblock %}</title>
  6.     <link rel="icon"
  7.           href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text></svg>">
  8.     <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css"
  9.           integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
  10.     <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"
  11.             integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
  12.             crossorigin="anonymous"></script>
  13.     <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js"
  14.             integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF"
  15.             crossorigin="anonymous"></script>
  16. {#    <script>#}
  17. {#        window.FirstIdSDKConfig = {#}
  18. {#            INCLUDE_FLEX_MODULE: true,#}
  19. {#            INCLUDE_TCFAPI_MODULE: true,#}
  20. {#            FLEX_CONSENT: true#}
  21. {#        }#}
  22. {#    </script>#}
  23.     <!-- Google Tag Manager -->
  24.     <script>(function (w, d, s, l, i) {
  25.             w[l] = w[l] || [];
  26.             w[l].push({
  27.                 'gtm.start':
  28.                     new Date().getTime(), event: 'gtm.js'
  29.             });
  30.             var f = d.getElementsByTagName(s)[0],
  31.                 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : '';
  32.             j.async = true;
  33.             j.src =
  34.                 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
  35.                 // 'https://lrnspb.editeur1-first-id.fr/gtm.js?id=' + i + dl;
  36.             f.parentNode.insertBefore(j, f);
  37.         })(window, document, 'script', 'dataLayer', 'GTM-NFW6BNDL');
  38.         /* GTM-PWSDN3WF / GTM-NT96JFSH for server side */
  39.         /* GTM-NFW6BNDL for client side */
  40.     </script>
  41.     <!-- End Google Tag Manager -->
  42.     {# Axeptio TCF API #}
  43.     <script>
  44.         window.axeptioSettings = {
  45.             clientId: "66137db6ae83de5e566cfc53",
  46.             cookiesVersion: "first-id sandbox-fr-EU",
  47.         };
  48.         (function (d, s) {
  49.             var t = d.getElementsByTagName(s)[0],
  50.                 e = d.createElement(s);
  51.             e.async = false;
  52.             e.src = "//static.axept.io/tcf/sdk.js";
  53.             e.type = "module";
  54.             t.parentNode.insertBefore(e, t);
  55.         })(document, "script");
  56.     </script>
  57.     {# End Axeptio TCF API #}
  58. </head>
  59. <body>
  60. <!-- Google Tag Manager (noscript) -->
  61. <noscript>
  62.     <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NFW6BNDL"
  63.             height="0" width="0" style="display:none;visibility:hidden"></iframe>
  64. </noscript>
  65. <!-- End Google Tag Manager (noscript) -->
  66. <nav class="navbar navbar-expand-lg navbar-light bg-light">
  67.     <a class="navbar-brand" href="{{ path('app_index') }}">{{ site_name }}</a>
  68.     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
  69.             aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
  70.         <span class="navbar-toggler-icon"></span>
  71.     </button>
  72. </nav>
  73. <div class="container">
  74.     <div class="row">
  75.         <div class="col-md-12">
  76.             <h3>First ID : <span id="firstid"></span></h3>
  77.         </div>
  78.     </div>
  79.     {% block body %}{% endblock %}
  80. </div>
  81. <script>
  82.     function getCookieValueFromCookieName(cookieName) {
  83.         let cookieArr = document.cookie.split(";");
  84.         for (let i = 0; i < cookieArr.length; i++) {
  85.             let cookiePair = cookieArr[i].split("=");
  86.             if (cookieName === cookiePair[0].trim()) {
  87.                 return decodeURIComponent(cookiePair[1]);
  88.             }
  89.         }
  90.         return null;
  91.     }
  92.     function updateFid() {
  93.         let fid = getCookieValueFromCookieName('firstid')
  94.         if (fid) {
  95.             if (interval) {
  96.                 clearInterval(interval)
  97.             }
  98.             $('#firstid').text(fid)
  99.         } else {
  100.             $('#firstid').text('No First ID cookie find.')
  101.         }
  102.     }
  103.     let interval = setInterval(updateFid, 1000)
  104. </script>
  105. </body>
  106. </html>