localStorage für Google Analytics OptOut in der modified eCommerce Shopsoftware

modified eCommerce Shopsoftware

Um die modified eCommerce Shopsoftware DSGVO konform zu halten setzen schon lange fast alle Betreiber auf die integrierte OptOut-Lösung für Google Analytics. Was bedeutet, dass durch klicken des Links in den Datenschutzerklärungen ein Cookie gesetzt wird, wodurch das Tracking durch Google Analytics unterbinden werden kann.

Mit dem ITP-Update von Safari beträgt die maximale Lebenszeit für Cookies nur noch sieben Tage, danach wird es automatisch entfernt. Auch Firefox und Chrome haben dieses Vorgehen für eines der nächsten Updates angekündigt, wann genau ist aber noch unklar. Dadurch werden Kunden, die das Tracking mittels OptOut deaktiviert haben und nach acht oder mehr Tagen wieder in den Shop kommen auch wieder von Google Analytics erfasst.

Die Lösung für das Problem wird mit dem Browser-Update gleich mitgeliefert und nennt sich localStorage.

Was ist localStorage?

Es ist eine Eigenschaft des Browsers die es erlaubt Daten ohne Ablaufzeit zu speichern. Diese Daten sind somit auch bei einem nächsten Besuch vorhanden ohne ein Cookie setzen zu müssen. Der Unterschied zu den Cookies besteht darin dass keine fremden Seiten durch einen sogenannten Pixel auf diese Daten zugreifen können. Ebenso sind diese Daten und der Zugriff an das Protokoll gebunden.

Lösung für die modified eCommerce Shopsoftware

Gerne möchten wir dir hier unsere Lösung vorstellen. Es muss nur eine Datei aktualisiert werden und schon ist alles wieder sicher.

Suche in der Datei /includes/external/smarty/plugins/function.googleanalytics.php ab Zeile 39 nach folgendem Code und passen diesen an:

  $beginCode = '
    <script type="text/javascript">
      // Set to the same value as the web property used on the site
      var gaProperty = \''.$account.'\';
          
      // Disable tracking if the opt-out cookie exists
      var disableStr = \'ga-disable-\' + gaProperty;
      // BOF - ShopModule.biz - gaOptout with localStorage
      var gaOptoutSet = document.cookie.indexOf(disableStr + \'=true\') > -1;
      if (window.localStorage) {
        // For backward compatibility: If there is (still) a cookie, also save in localStorage
        if (gaOptoutSet) {
          window.localStorage.setItem(\'gaOptout\', \'true\');
        }
        gaOptoutSet = gaOptoutSet || \'true\' === window.localStorage.getItem(\'gaOptout\');
      }
      // EOF - ShopModule.biz - gaOptout with localStorage
      if (gaOptoutSet) { // EDT - ShopModule.biz - gaOptout with localStorage
        window[disableStr] = true;
      }
          
      // Opt-out function
      function gaOptout() {
        document.cookie = disableStr + \'=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/\';
        // BOF - ShopModule.biz - gaOptout with localStorage
        // set in localStorage
        if (window.localStorage) {
          window.localStorage.setItem(\'gaOptout\', \'true\');
        }
        // EOF - ShopModule.biz - gaOptout with localStorage
        window[disableStr] = true;
      }
      '."\n";

Wir würden uns sehr freuen wenn diese Lösung den Weg in eine der kommenden Shopversionen findet.

Share this

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert