eS-IT / cookiehandlebar

Cookiebar für das Open Source CMS Contao
0 stars 0 forks source link

Matomo Cookies bleiben nach Deaktivierung bestehen #4

Closed landzone21 closed 4 years ago

landzone21 commented 4 years ago

Hallo, ich versuche die Cookiebar mit Matomo einzusetzen. Wenn ich das Tracking erlaube, werden 3 Cookies gesetzt: MATOMO_SESSID, _pk_id und _pk_ses. Wenn ich das Tracking wieder verbiete, wird nur das MATOMO_SESSID entfernt, die anderen beiden Cookies bleiben bestehen. Der Trackingcode sieht so aus:

<script type="text/javascript">
  var _paq = window._paq || [];
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="domain.de";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '1']);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>

Wie kann ich erreichen, dass alle Cookies wieder entfernt werden?

Ich habe noch einen zweiten Weg versucht, Matomo bietet selbst eine "Asking for consent" Funktion an: [https://developer.matomo.org/guides/tracking-javascript-guide#asking-for-consent] Hierzu müsste ich in einer Abfrage die folgenden Befehle dem Scriptcode zufügen:

// user has given consent to process their data
_paq.push(['setConsentGiven']);

je nachdem, ob die Zustimmung erfolgt oder nicht. Wie müsste die Abfrage denn aussehen, damit ich die Checkbox (enabled/disabled) prüfen kann? Danke für die Hilfe.

eS-IT commented 4 years ago

Wenn ich das Tracking wieder verbiete, wird nur das MATOMO_SESSID entfernt, die anderen beiden Cookies bleiben bestehen.

Das liegt wohl daran, dass die anderen Cokkies scheinbar vom verwendeten Script gesetzt werden und nicht von der CookieBar. Die Bar kümmert sich nur um die Dinge, die im Backend eingegeben werden.

Ich bin aber kein JavaScript- oder Matomo-Experte und kann da nur begrenzt weiterhelfen.

landzone21 commented 4 years ago

Danke. Und wie kann ich im Scriptcode den Zustand der entsprechenden Checkbox der Cookiebar (z.B. id=chb-5e3ab9da4ce04) abfragen, also ob sie "enabled" oder "disabled" ist? Das würde mir schon weiterhelfen.

eS-IT commented 4 years ago

Wenn Du jQuery einsetzt, vielleicht so:

if ($('#chb-5e3ab9da4ce04').checked) {
    // ... do something
}

Quell: https://stackoverflow.com/questions/901712

Wie gesagt, ich bin auch kein JS-Expert.

landzone21 commented 4 years ago

Danke, konnte es nun lösen, hier ist mein Matomo Tracking Code:

<!-- Matomo -->
<script type="text/javascript">
 var _paq = window._paq || [];
  _paq.push(['requireConsent']);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  // Check the consent tool
 if (document.getElementById("chb-1a2ab3cd4ce56").checked == false){
    _paq.push(['forgetConsentGiven'])
 }
 (function() {
    var u="https://domain.de/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '1']);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js';    s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Matomo Code -->
eS-IT commented 4 years ago

Danke für den Hinweis. Ich mache das Ticket dann zu.