Speicherdauer für Cookies festlegen


#1

Hallo,

in einem Fachtext zur DS-GVO habe ich gelesen, dass Matomo-Nutzer die Speicherdauer von Besucher-Cookies selbst festlegen können. Ich habe nun mein Matomo und auch die FAQ gründlich durchsucht - und keine solche Funktion gefunden. Gibt es sie tatsächlich nicht, oder habe ich sie irgendwo übersehen?


Gibt es sie tatsächlich nicht, oder habe ich sie irgendwo übersehen?
(Lukas Winkler) #2

Hallo,

Um die Dauer der Server-Cookies umzustellen, gibt es drei Javascript Funktionen:

  • setVisitorCookieTimeout( seconds ) - the default is 13 months
  • setReferralCookieTimeout( seconds ) - the default is 6 months
  • setSessionCookieTimeout( seconds ) - the default is 30 minutes

https://developer.matomo.org/api-reference/tracking-javascript#configuration-of-tracking-cookies

Falls du third-party-cookies verwendest (also use_third_party_id_cookie aktiviert hast), gibt es noch eine Einstellung in der config.ini.php.

[Tracker]
; by default, the Matomo tracking cookie expires in 13 months (365 + 28 days)
; This is used only if use_third_party_id_cookie = 1
cookie_expire = 33955200;

#3

Vielen Dank für die Hinweise, aus denen sich nun noch eine Frage ergibt:

Sind die genannten Speicherzeiten für die Server-Cookies nach der DS-GVO erlaubt?


(Lukas Winkler) #4

Hallo,

Soweit ich weiß (ich gebe aber keine Garantien) sagt GDPR garnichts über Cookies oder die Dauer der Speicherung von Daten (außer nicht länger als notwendig) aus.

Das kann sich aber bald mit der ePrivacy Regulation ändern.


#5

Dann scheint das also zumindest bisher noch keine so ganz dringende Frage zu sein.


#6

@Weissseit @Lukas: Ich hoffe es ist okay wenn ich mich hier einklinke, denn zu der Antwort von Lukas habe ich Nachfragen, denn ich bekomme es einfach nicht hin das _pk.id Cookie on 13 auf 1 Monat zu bekommen. Ich weiß das bei mit die Third-Party-ID-Cookie auf Null steht, also müsste doch ein zusätzlicher Eintrag in der folgenden Tracking code eingefügt werden:

<!-- Matomo -->
<script type="text/javascript">
  var _paq = _paq || [];
  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://piwik.xxxxxxxxxxxxxxxxxxxxxxxx.de/";
    _paq.push(['setTrackerUrl', u+'piwik.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+'piwik.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Matomo Code -->

Nur, wohin genau? In einem anderen beitrag habe ich gelesen, das man

_paq.push([“setVisitorCookieTimeout”, “604800”]);

direkt VOR dem TrackPageView setzen muss.
Das habe ich auch getan, der geänderte Tracking code sieht dann so aus:

<!-- Matomo -->
<script type="text/javascript">
  var _paq = _paq || [];
  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
  _paq.push([“setVisitorCookieTimeout”, “2592000”]);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://piwik.xxxxxxxxxxxxxxxxxxxxxxxx.de/";
    _paq.push(['setTrackerUrl', u+'piwik.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+'piwik.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Matomo Code -->

Das Ergebnis ist dann, dass die beiden Matomo Cookies “_pk.id” und “_pk.ses” nicht mehr angelegt werden.
Wo habe ich hier den Denkfehler? Wieso klappt das nicht, was beim TE funktioniert?


(Lukas Winkler) #7

Hallo @lvbs,

Du hast genau dasselbe Problem wie Keine Aufzeichnung und Fehlermeldung

Wenn du dir die setVisitorCookieTimeout Zeile in der Code-Box in deinem Post anschaust, siehst du schon, dass das Syntax-Highlighting anders ist.

Denn anstelle eines Normalen Anführungszeichen " verwendest du ein typographisches und , welches natürlich in keiner Programmiersprache erkannt wird. Ersetze es also durch ein " oder ein ' und es sollte funktionieren.


#8

@Lukas: Du glaubst nicht was für Glückgefühle du mir mit deiner Antwort bereitet hast.:grinning:

Genau DAS mit den Gänsefüßchen war das Problem, entstanden durch einfaches Copy&Paste. Ich schlage dich als “Held des Tages” vor, hast mir den Arbeitstag gerettet.


#9

Hallo,

@Lukas: ich klinke mich hier einmal ein:

Gibt es denn eine Möglichkeit, die default-Werte anzupassen? Bzw. was ist die richtige Stelle dazu? direkt die piwik.js oder die /js/piwik.js.

Bräuchte es als Workaround bevor ich auf >300 Seiten den JS-Code austausche / austauschen lasse.


#10

hab’s in beiden angepasst und damit funktioniert es jetzt :slight_smile: damit hat es sich erledigt


(Lukas Winkler) #11

Hallo @TobBen ,

Eine kleine Idee im Interesse der Wartbarkeit: (Ich weiß aber nicht, ob es funktioniert)

Du kannst ganz leicht ein Plugin schreiben, welches eine tracker.js (oder tracker.min.js) enthält, welche dann von Matomo automatisch in die piwik.js hinzugefügt wird.
(wie zum Beispiel GitHub - sgiehl/piwik-plugin-DeviceFeatureWebGL: Piwik Plugin for tracking browser compatibility for WebGL)

So kannst du Matomo-Updates installieren, ohne dir Sorgen zu machen, dass die Änderungen überschrieben werden.