ConsentManager obsługuje funkcję Cross-Device Consent Shareing. Aby udostępniać informacje o zgodzie na wielu urządzeniach, strona internetowa/aplikacja musi spełniać następujące wymagania:
- Witryna internetowa/aplikacja musi być w stanie identyfikować użytkownika na różnych urządzeniach. Odbywa się to zazwyczaj poprzez logowanie na stronie internetowej lub w aplikacji: za każdym razem, gdy użytkownik loguje się na konto, (nowe) urządzenie może korzystać z tych samych informacji dotyczących zgody, co wszystkie inne urządzenia tego samego użytkownika.
- Twoja platforma (ta, która przechowuje dane logowania użytkownika) musi być w stanie przechowywać informacje o zgodzie użytkownika po stronie serwera. Informacje o zgodzie będą miały postać ciągu alfanumerycznego o rozmiarze do 8 KB.
Ogólna konfiguracja
Aby udostępnić zgodę na wielu urządzeniach, zostaną wykonane następujące kroki:
- Kiedy użytkownik odwiedza stronę internetową lub aplikację po raz pierwszy, nie ma tam żadnych informacji o zgodzie i użytkownik zostanie poproszony o wyrażenie zgody.
- Gdy użytkownik wyrazi zgodę, CMP zapisze informacje o zgodzie na urządzeniu użytkownika i powiadomi stronę internetową lub aplikację o obecności nowych informacji dotyczących zgody.
- Witryna internetowa lub aplikacja pobierze/wyeksportuje informacje o zgodzie z CMP i zapisze je we własnej bazie danych wraz z profilem użytkownika.
- Przy następnej wizycie użytkownika na stronie internetowej lub w aplikacji istniejące informacje o zgodzie zostaną zaimportowane do CMP.
Strona internetowa
Aby wyeksportować informacje o zgodzie, można użyć polecenia __cmp('exportConsent') . Wyświetli on informacje o zgodzie jako ciąg znaków zakodowany w base64, bezpieczny dla sieci.
Aby zaimportować istniejące informacje, można użyć polecenia __cmp('importConsent','....') . Ustawi to wewnętrzne informacje o zgodzie i wyłączy ekran zgody.
Alternatywnie możesz również przekazać informacje o zgodzie poprzez adres URL, używając parametru ?cmpimport=... lub #cmpimport=...
Uwaga: Aby uniknąć wyświetlania 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 w razie potrzeby wyeksportuje dane dotyczące zgody:
<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 przekazania zgody do innego okna lub strony internetowej:
<button onclick="redirectPage()">Click me!</button>
<script>
function redirectPage()
{
var c = __cmp("exportConsent");
location.href= "https://mywebsite.com/somepage?someparameter#cmpimport="+c;
}
</script>
Aplikacja
W przypadku aplikacji procedura jest taka sama jak w przypadku stron internetowych, różnią się jedynie funkcje/nazwy.
Android
Aby wyeksportować informacje dotyczące zgody, użyj
String consentData = CMPConsentTool.exportCMPData(this);
Aby zaimportować informacje dotyczące zgody, użyj
CMPConsentTool.importCMPData(this, "...data...");
iOS
Aby zaimportować/wyeksportować informacje dotyczące zgody, skorzystaj z (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()