templates/flex/flex-no-tcf.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 to FirstID Flex (No TCF){% 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. </head>
  17. <body>
  18. <nav class="navbar navbar-expand-lg navbar-light bg-light">
  19.     <a class="navbar-brand" href="{{ path('app_index') }}">{{ site_name }}</a>
  20.     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
  21.             aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
  22.         <span class="navbar-toggler-icon"></span>
  23.     </button>
  24. </nav>
  25. <div class="container">
  26.     <div class="row">
  27.         <div class="col-md-12">
  28.             <h3>First ID (No TCF): <span id="firstid"></span></h3>
  29.         </div>
  30.     </div>
  31.     {% block body %}{% endblock %}
  32. </div>
  33. <script>
  34.     function getCookieValueFromCookieName(cookieName) {
  35.         let cookieArr = document.cookie.split(";");
  36.         for (let i = 0; i < cookieArr.length; i++) {
  37.             let cookiePair = cookieArr[i].split("=");
  38.             if (cookieName === cookiePair[0].trim()) {
  39.                 return decodeURIComponent(cookiePair[1]);
  40.             }
  41.         }
  42.         return null;
  43.     }
  44.     function loadFirstIdSdk() {
  45.         console.time("sdk:callback");
  46.         console.time("sdk:event");
  47.         var script = document.createElement('script');
  48.         script.src = "https://cdn.preprod.first-id.fr/sdk/loader/loader-latest-flex-no-tcf.js?id=1234567890";
  49.         script.defer = true;
  50.         document.head.appendChild(script);
  51.         script.onload = function () {
  52.             window.firstId = window.firstId || {
  53.                 callbacks: [],
  54.                 debug: true,
  55.                 cookieName: 'firstid',
  56.                 firstIdFlexFeature: true,
  57.             };
  58.             window.firstId.callbacks.push(() => {
  59.                 console.log('FirstID SDK (No TCF) loaded and initialized.');
  60.                 console.timeEnd("sdk:callback");
  61.                 // Additional FirstID SDK logic here
  62.             });
  63.             window.firstId.callbacks.push(() => {
  64.                 console.log(FIRSTID.getId());
  65.             });
  66.             // FirstID SDK will be initialized automatically
  67.         };
  68.     }
  69.     loadFirstIdSdk();
  70.     let interval = undefined;
  71.     function updateFid() {
  72.         let fid = getCookieValueFromCookieName('firstid');
  73.         if (fid) {
  74.             if (interval) {
  75.                 clearInterval(interval);
  76.             }
  77.             $('#firstid').text(fid);
  78.         } else {
  79.             $('#firstid').text('No First ID cookie found.');
  80.         }
  81.     }
  82.     interval = setInterval(updateFid, 1000);
  83.     
  84.     document.addEventListener('firstId:new', (event) => console.log('New first id:', event.detail));
  85.     document.addEventListener('firstId:initialized', (event) => {
  86.         console.log('First id initialized:', event.detail)
  87.         console.timeEnd("sdk:event");
  88.     });
  89. </script>
  90. </body>
  91. </html>