Wydarzenia CMP
Aby otrzymywać powiadomienia o wystąpieniu określonych zdarzeń, możesz użyć następujących metod JavaScript:
__cmp("addEventListener",["eventname",callableFunction,capture],null)
__cmp("removeEventListener",["eventname",callableFunction,capture],null)
__tcfapi("addEventListener",2, callableFunction)
__tcfapi("removeEventListener",2, callableFunction, listenerId)
CMP może wywołać następujące zdarzenia:
wydarzenie |
Opis Projektu |
|
Kod CMP został załadowany, a kod pośredniczący został usunięty. Na tym etapie CMP nie ma jeszcze informacji o zgodzie. |
|
CMP zakończył ładowanie ustawień. Jeśli ciąg zgody już istniał, dane zgody można teraz odczytać z CMP. |
|
CMP pokazuje ekran akceptacji |
|
CMP usuwa ekran akceptacji |
|
CMP pokazuje stronę z niestandardowymi wyborami |
|
CMP zebrał zgodę lub znaleziono wcześniej istniejący plik cookie. Dane zgody można teraz odczytać z CMP. |
|
Odwiedzający wyraził pozytywną zgodę na wszystkich dostawców/celów |
|
Odwiedzający odrzucił wszystkich dostawców i cele |
|
Odwiedzający udzielił niestandardowej zgody (akceptuje i odrzuca) |
|
Pojawia się ekran zgody, istnieje uzasadniony interes dla tego odwiedzającego. |
|
Odwiedzający zaakceptowany i dynamiczna pozycja treści. Identyfikator dostawcy akceptowanej pozycji można znaleźć w zmiennej podtypu. |
|
Różne wydarzenia dla standardu IAB GPP |
tcfv2 |
Różne wydarzenia dla standardu IAB TCF |
|
Po zakończeniu ładowania (zobacz event |
|
Po zakończeniu ładowania (zobacz event |
Programy obsługi zdarzeń są zdefiniowane jako:
var handler = function (eventname, cmpobject, subtype){…}
Ostrzeżenie: Nie używaj cmpobject
nie więcej. Funkcja jest przestarzała. Zamiast tego użyj wywołań API.
Przykład:
<script>
function getInfos(e,o)
{
var result = __cmp('getCMPData');
/*... do something with result ...*/
}
__cmp("addEventListener",["consent",getInfos,false],null);
</script>
Należy pamiętać, że polecenie IAB TCF v2 addEventListener zareaguje tylko na podzbiór zdarzeń.
Przykłady
Przekierowanie odwiedzającego na inną stronę internetową w przypadku braku zgody
Pamiętaj, że to zachowanie nie jest zalecane i może powodować problemy prawne!
<script>
function getInfos(e,o)
{
location.href = "https://www.mywebsite.com/alternative-content.html";
}
__cmp("addEventListener",["consentrejected",getInfos,false],null);
</script>
Wyświetlanie wiadomości, jeśli odwiedzający został odrzucony
<div id="mymessage" style="display:none; position:fixed; left:calc(50% - 300px); top:calc(50% - 200px); width:600px; height:400px; background-color: #fff0c7; padding: 20px; box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.25);"><b>Please consider</b><br>Our website is mainly financed by online advertising. Without consent we will not be able to show you tailored ads and our ad revenue will be much lower. As we respect your choice we like to ask you, if you maybe like to donate 1 EUR instead? This will help us keep the quality of our service up.<br>
<br>
<a href="donate.html"><b>Donate 1 EUR now!</b></a><br>
<br>
<a href="#" onclick="document.getElementById('mymessage').style.display = 'none';">No, thanks!</a>
</div>
<script>
function getInfos(e,o){ document.getElementById('mymessage').style.display = 'block';}
__cmp("addEventListener",["consentrejected",getInfos,false],null);
</script>
Przesuwanie zawartości strony w dół po otwarciu warstwy zgody
<script>
var iscmpopen = false;
function handleSize()
{
if(iscmpopen)
{
document.body.style.paddingTop = document.getElementById('cmpbox').offsetHeight + 'px';
}
else
{
document.body.style.paddingTop = 'inherit';
}
}
function pushDown(e, o)
{
iscmpopen = true;
handleSize();
}
function pushUp(e, o)
{
iscmpopen = false;
handleSize();
}
window.addEventListener('resize', handleSize, false);
window.addEventListener('load', handleSize, false);
__cmp('addEventListener', ['consentscreen', pushDown, false], null);
__cmp('addEventListener', ['consentscreenoff', pushUp, false], null);
</script>