Informacia
Treść

Udostępnianie zgody na różnych urządzeniach

ConsentManager obsługuje udostępnianie zgody między urządzeniami. Aby udostępniać informacje o zgodzie na wiele urządzeń, witryna/aplikacja musi spełniać następujące wymagania:

  • Witryna/aplikacja musi być w stanie identyfikować użytkownika na różnych urządzeniach. Zwykle odbywa się to poprzez zalogowanie się na stronie internetowej lub w aplikacji: Za każdym razem, gdy użytkownik loguje się na konto, (nowe) urządzenie może udostępniać te same informacje o zgodzie, co wszystkie inne urządzenia tego samego użytkownika.
  • Twoja platforma (ta, która przechowuje login użytkownika) musi być w stanie przechowywać informacje o zgodzie użytkownika po stronie serwera. Informacja o zgodzie będzie ciągiem alfanumerycznym o rozmiarze do 8 kb

Konfiguracja ogólna

Aby udostępnić zgodę na wielu urządzeniach, zostaną wykonane następujące kroki:

  1. Gdy użytkownik najpierw odwiedza witrynę internetową lub aplikację, nie ma informacji o zgodzie i użytkownik zostanie poproszony o zgodę.
  2. Gdy użytkownik wyrazi zgodę, CMP będzie przechowywać informacje o zgodzie na urządzeniu użytkownika i powiadomi witrynę internetową lub aplikację, że dostępne są nowe informacje o zgodzie.
  3. Witryna lub aplikacja pobierze/wyeksportuje informacje o zgodzie z CMP i zapisze je we własnej bazie danych wraz z profilem użytkownika.
  4. Następnym razem, gdy użytkownik odwiedzi witrynę lub aplikację, zaimportuje istniejące informacje o zgodzie do CMP.

Sieć

Aby wyeksportować informacje o zgodzie, polecenie __cmp('exportConsent') może być zastosowane. Wygeneruje informacje o zgodzie jako zakodowany w base64 ciąg bezpieczny dla sieci.

Aby zaimportować istniejące informacje, polecenie __cmp('importConsent','....') może być zastosowane. Ustawi wewnętrzne informacje o zgodzie i wyłączy ekran akceptacji.

Alternatywnie możesz również przekazać informacje o zgodzie za pośrednictwem adresu URL za pomocą parametru ?cmpimport=... or #cmpimport=...

UWAGA: Aby uniknąć wyświetlenia ekranu zgody, polecenie importConsent powinno zostać wywołane bezpośrednio po kodzie CMP. CMP umieści polecenie w kolejce i automatycznie zaimportuje informacje o zgodzie jako pierwszy krok podczas ładowania CMP.

Oto prosty przykładowy kod, który wykona import, sprawdzi zmiany i wyeksportuje dane zgody, jeśli to konieczne:

<script>  
  window.cmp_waitfortimport = 1000; // tell the CMP to wait for max 1 second for incoming import calls
  var userConsentInfo = '... insert consent data from users profile if present, otherwise empty ...';
  function storeConsent(eventname, o)
  {
   var c = __cmp("exportConsent");
   if(c !== userConsentInfo)
   {
    console.log('new consent data: ', c);
    userConsentInfo = c;
     //send new consent info to server in order to store it there
   }
  }
  if(userConsentInfo != "")
  {
   __cmp('importConsent',userConsentInfo);
  }  
  else
  {
   __cmp('cancelwait'); //tell the CMP to no longer wait for import calls
  }
  __cmp('addEventListener', ['consent', storeConsent, false], null);
 </script>

Przykład udostępniania zgody między domenami po kliknięciu

<script>
 window.cmp_allowedDomains = [];
 //window.cmp_allowedDomains.push('*');           // use this line to append consent data to all urls ...
 window.cmp_allowedDomains.push('mywebsite.com'); // ... or add your domains here ...
 window.cmp_allowedDomains.push('myotherwebsite.com');
 window.cmp_allowedDomains.push('mythirdwebsite.com');

 window.cmp_appendclick = function (evt)
 {
  try
  {
   evt = evt || window.event;
   if (evt.target && evt.target.nodeName && evt.target.nodeName.toUpperCase() === 'A' && evt.target.hostname && evt.target.hostname != '' && evt.target.hostname != location.hostname)
   {
    var found = false;
    var hn    = evt.target.hostname.toLowerCase();
    for (var i = 0; i < window.cmp_allowedDomains.length; i++)
    {
     var d = window.cmp_allowedDomains[i].toLowerCase();
     var a = ('.' + hn).substr(hn.length - d.length, 9999);
     if (window.cmp_allowedDomains[i] == '*' || a == '.' + d)
     {
      found = true;
      break;
     }
    }
    if (found)
    {
     if ('hash' in evt.target && evt.target.hash == '')
     {
      evt.target.hash = '#' + __cmp('exportConsent');
     }
    }
   }
  }
  catch (e)
  {}
 };
 window.addEventListener('mousedown', window.cmp_appendclick);
</script>

App

W przypadku aplikacji procedura jest taka sama jak w przypadku Internetu, różnią się tylko funkcje/nazwy.

Android

Aby wyeksportować informacje o zgodzie, użyj

String consentData = CMPConsentTool.exportCMPData(this);

Aby zaimportować informacje o zgodzie, użyj

CMPConsentTool.importCMPData(this, "...data...");

iOS

Aby zaimportować/eksportować informacje o zgodzie, użyj (https://help.consentmanager.net/books/cmp/page/consentmanager-sdk-for-ios#bkmrk-import%2Fexport-consen)

// Instanstiate CMPConsentTool()
cmpConsentTool = CMPConsentTool.init(...)

// Importing consent data if you like
cmpConsentTool.importCMPData("${your consentString}");

// ... Your code here ...


// Exporting Consent data 
let consentString : String = CMPConsentTool.exportCMPData()

 

 

Powrót do góry