Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:

Autor Thema: ANLEITUNG: Cookie Banner mit Einwilligung für Google Analytics, Matomo & Facebook  (Gelesen 3070 mal)

Offline hpzeller

  • Experte
  • *****
  • Beiträge: 3.120
  • Geschlecht: Männlich
    • Teile Beitrag
    • xos-shop.com | XOS-Shop ist ein umfangreiches "Open Source Webshop-System", welches per Webinterface administriert wird und an die Bedürfnisse des Betreibers angepasst werden kann.
In meinem Testshop funktioniert TrackingPiwik trotz Einwilligung [Einverstanden] nicht, können andere Mitglieder dies bestätigen?

Habe in includes/external/smarty/plugins/function.piwik.php ab ca. Zeile 58 folgenden Code

Code: PHP  [Auswählen]
    <script type="text/javascript">
    function TrackingPiwik () {
      var _paq = _paq || [];
      (function(){
        var u="//'.$url.'/";
        _paq.push([\'setSiteId\', '.$id.']);
        _paq.push([\'setTrackerUrl\', u+\'piwik.php\']);
  '
."\n";

  $endCode = '
        _paq.push([\'trackPageView\']);
        _paq.push([\'enableLinkTracking\']);

        var d=document,
        g=d.createElement(\'script\'),
        s=d.getElementsByTagName(\'script\')[0];
        g.type=\'text/javascript\';
        g.defer=true;
        g.async=true;
        g.src=u+\'piwik.js\';
        s.parentNode.insertBefore(g,s);
      })();
    }
    </script>

mit diesem ersetzt.

Code: PHP  [Auswählen]
    <script type="text/javascript">
      var _paq = _paq || [];
      _paq.push([\'trackPageView\']);
      _paq.push([\'enableLinkTracking\']);              
    function TrackingPiwik () {
        var u="//'
.$url.'/";
        _paq.push([\'setSiteId\', '
.$id.']);
        _paq.push([\'setTrackerUrl\', u+\'piwik.php\']);
  '
."\n";

  $endCode = '
        var d=document,
        g=d.createElement(\'script\'),
        s=d.getElementsByTagName(\'script\')[0];
        g.type=\'text/javascript\';
        g.defer=true;
        g.async=true;
        g.src=u+\'piwik.js\';
        s.parentNode.insertBefore(g,s);
    }
    </script>

Jetzt funktioniert es in meinem Testshop.

Gruss
Hanspeter

Offline GTB

  • modified Team
  • *****
  • Gravatar
  • Beiträge: 5.333
  • Geschlecht: Männlich
    • Teile Beitrag
Habe es gerade getestet. Mein Code sieht nun so aus, der in r12272 ins SVN übernommen wurde:

Code: PHP  [Auswählen]
  $beginCode = '
    <script type="text/javascript">
      var _paq = _paq || [];
      function TrackingPiwik () {
        var u="//'
.$url.'/";
        _paq.push([\'setSiteId\', '
.$id.']);
        _paq.push([\'setTrackerUrl\', u+\'piwik.php\']);
        _paq.push([\'trackPageView\']);
        _paq.push([\'enableLinkTracking\']);
  '
."\n";

  $endCode = '
        (function(){
          var d=document,
          g=d.createElement(\'script\'),
          s=d.getElementsByTagName(\'script\')[0];
          g.type=\'text/javascript\';
          g.defer=true;
          g.async=true;
          g.src=u+\'piwik.js\';
          s.parentNode.insertBefore(g,s);
        })();
      }
    </script>
  '
;

Gruss Gerhard

[EDIT Tomcraft 15.10.2019: Korrektur in Modul aus Beitrag 1 aufgenommen.]

Offline noRiddle

  • Experte
  • *****
  • Beiträge: 10.112
  • Geschlecht: Männlich
    • Teile Beitrag
    • Webdesign Bonn - Köln
Falls es noch von Interesse ist bzgl. uBlock:
uBlock blockiert Cookie-Banner entgegen meiner Vermutung doch absichtlich, zumindest wenn im Dashboard im Tab "Filterlisten" "Fanboy’s Annoyance List" aktiviert ist.
Es wird dort allerdings nach Dateinamen die "CookieConsent" heißen oder beinhalten, sowie nach HTML-Elementen mit IDs oder Classes wie "cookieConsentWrapper" gesucht.

Würde man alles was "cookieConsent" heißt umbenennen in z.B. "modCC" würde 1. uBlock das Banner vorausssichtlich nicht mehr blocken können (noch nicht getestet) und 2. würde der neue Begriff wohl auch nicht so schnell in uBlock bzw. in die Liste "Fanboy’s Annoyance List" Eingang finden.
Wenn doch kommt dann leider Markus' berechtigte Argumentation aus Antwort #37 zum Tragen.

Mit einem gewissen Aufwand :hust: könnte man sogar, um bei meinem Beispiel zu bleiben, die Bezeichnung "modCC" alle paar Wochen automatisch ändern, in "m1odCC", "m2odCC", "m3odCC" oder was weiß ich.

Gruß,
noRiddle

*NACHTRAG*
Hab's gerade mal mit einer etwas älteren CookieConsent-Version ausprobiert. Funktioniert.
Habe einfach in der cookieconsent.css und in der cookieconsent.min.js mittels Suchen/Ersetzen "cc_" mit "modCC_" ersetzt.
In meiner Version wird noch "cc_" anstatt "cc-" für die Conteiner-IDs und- Classes benutzt.
Wenn die Komprimierung von CSS- und JS-Dateien aktiviert ist taucht außerdem der Name der Dateien nicht im HTML auf, womit die Erkennung seitens uBlock was die Dateinamen betrifft fehlschlägt.

Offline noRiddle

  • Experte
  • *****
  • Beiträge: 10.112
  • Geschlecht: Männlich
    • Teile Beitrag
    • Webdesign Bonn - Köln
Mir fällt gerade noch auf, daß im DEV-Demoshop das HTML für den Cookie-Banner direkt nach dem öffnenden body-tag injiziert wird.
Ich habe damit bei dem von mir bereits 2014 ins Forum gestellten und in diesem Thread schon zitierten Cookie-Plugin schlechte Erfahrungen gemacht.
Texte des Cookie-Banners erschienen in den Google-SERPs.
Man sollte das nötige HTML deshalb vor dem schließenden body-tag injizieren.

Gruß,
noRiddle

Offline Karl1

  • Viel Schreiber
  • *****
  • Beiträge: 568
    • Teile Beitrag
Hallo noRiddle,
der Platz nach dem öffnenden <body> ist nur der Standard der laut JS API jederzeit verlegt werden kann.

Ein Beispiel:
Am Ende der index.html haben wird diesen leeren Tag

Code: PHP  [Auswählen]
<div id="cookie"></div>

In die general_bottom.js.php nehmen wir die Zeile "container" auf

Code: Javascript  [Auswählen]
        window.cookieconsent.initialise({
                type: consent_type,
                container: document.getElementById("cookie"),
                ...

Dadurch wird der Cookiehinweis in obigen <div> eingefügt.

Gruß Karl

P.S.: jQuery z.B. $('#cookie') funktioniert nicht!

Offline noRiddle

  • Experte
  • *****
  • Beiträge: 10.112
  • Geschlecht: Männlich
    • Teile Beitrag
    • Webdesign Bonn - Köln
Danke Karl1, mir war allerdings klar, daß das irgendwie gehen muß.
Ich wollte das modified-Team darauf hinweisen, daß sie bei einem eventuellen Update die Sache mitbeachten.

Kann noch jemand mal testen was ich zu uBlock 3 Posts höher (Antwort #62) geschrieben habe ?

Gruß,
noRiddle

*NACHTRAG*
Ginge nicht auch direkt das, ohne einen leeren Container ?

Code: Javascript  [Auswählen]
                ...,
                container: document.body,

Habe mir die API-Doku nicht angeschaut, sorry.

*NACHTRAG 2*
In der Doku steht übrigens

Zitat
The tool is automatically appended to the HTML body. Use this option to select the parent element.

Nach dem wie es sich darstellt wird es aber "prepended" und nicht "appended" wenn man keinen container angibt.

Offline Karl1

  • Viel Schreiber
  • *****
  • Beiträge: 568
    • Teile Beitrag
Hallo noRiddle,
ich kann das Blockier-Verhalten von "uBlock" bei aktivierter Filterliste "Fanboy’s Annoyance List" bzw. "Fanboy’s Cookie List" bestätigen.

In den Blacklisten stehen allerdings nicht nur "cookieConsent" usw. sondern z.B. auch CSS-Selectoren wie "###cc-banner".

Es müssten aus meiner Sicht alle Dateinamen, Funktionen und Selectoren so verändert werden, dass Schlüsselwörter wie "Cookie, Consent, CC usw." nicht mehr auftauchen.

Eine neue Frage stelle ich mir in diesem Zusammenhang.
Javascript ist im Browser deaktiviert - muss ein Cookiehinweis eingeblendet werden (die MODsid wird gesetzt)?

Gruß Karl


Offline FräuleinGarn

  • Fördermitglied
  • *****
  • Beiträge: 3.173
    • Teile Beitrag
Müsste der change aus r12272 nicht auch noch mit ins Paket?

Da im Bugtracker nicht steht, was geändert wurde: Handelt es sich dabei um die Einwände von noRiddle und Karl1?

Gruß Timm

Online Tomcraft

  • modified Team
  • *****
  • Gravatar
  • Beiträge: 43.761
  • Geschlecht: Männlich
    • Teile Beitrag
    • https://www.modified-shop.org
Ist doch bereits drin, siehe Antwort #61.

Geändert wurde, dass das Piwik/Matomo Tracking nun funktioniert. :crazy:

Grüße

Torsten

Offline noRiddle

  • Experte
  • *****
  • Beiträge: 10.112
  • Geschlecht: Männlich
    • Teile Beitrag
    • Webdesign Bonn - Köln
Und meine Einwände bzgl. dessen wo das Banner im HTML injiziert wird ?
Auch uBlock könnte man testweise umgehen. Ob es dann lediglich vorrübergehend gewesen sein wird wird sich herausstellen.
Wenn man sich eigtl. Mitarbeit wünscht jedoch nach wie vor ständig konstruktive Einwände und Vorschläge ignoriert werden
- womit ich meine, daß gar nicht darauf reagiert wird -
fehlt irgendwann die Motivation.
Das sage ich ausdrücklich nur für Threads die offensichtlich von euch verfolgt werden, nicht für jeden Thread natürlich.

Auch stellt sich mir die Frage warum sich die CSS- und JS-Dateien einzeln im Download befinden und nicht in einem Ordner in einem Paket, wie bei allen sonstigen Erweiterungen und Modulen.

@Karl1
Mir ist bewußt, daß auch CSS-Selektoren in "Fanboy’s Annoyance List" erfasst sind.
Ich schrieb doch sehr explizit, daß ich die Klassen- und ID-Namen testweise in modCC_ geändert habe und damit Erfolg hatte.
Auch zu den Dateinamen habe ich etwas gesagt, nämlich, daß sie bei aktivierter CSS- und JS-Komprimierung nicht im Quellcode auftauchen und deshalb dann nicht geändert werden müssen.

Gruß,
noRiddle

Offline FräuleinGarn

  • Fördermitglied
  • *****
  • Beiträge: 3.173
    • Teile Beitrag
@Torsten
Den Edit hatte ich überlesen.

@noRiddle
Deshalb hatte ich in meinem letzten Post absichtlich eure Namen erwähnt.

Wenn man sich eigtl. Mitarbeit wünscht jedoch nach wie vor ständig konstruktive Einwände und Vorschläge ignoriert werden...

 :good:

Deshalb schreibe ich vornehmlich nur noch Tickets. Außer im responsive Template Thread, wo ich weiß, dass Markus mitliest.

Fände es aber auch besser, wenn man konstruktiv darüber diskutieren könnte, was im Ticket nicht so wirklich geht. Ich denke auch, dass viel Input dadurch verloren geht. Nicht jeder nutzt den Bugtracker. Und manch einer schreibt nichts mehr, wenn er eh weiß, dass es ignoriert wird.  Auch wenn das dann oft heißt, man ließt nicht überall mit. Ich finde in Systemmodulthreads wäre es angebracht das zu tun. Im Internetmarke Thread und auch im Paypal Plus Thread läuft es ja ähnlich.

Andererseits gibts auch Momente, wo Sachen gleich aufgegriffen und verbessert werden. Etwas mehr Konstanz in der Handhabung wäre wünschenswert, dass man sich als Helfender sicher sein kann, dass man es nicht umsonst schreibt.

Gruß Timm

Online Tomcraft

  • modified Team
  • *****
  • Gravatar
  • Beiträge: 43.761
  • Geschlecht: Männlich
    • Teile Beitrag
    • https://www.modified-shop.org
Und meine Einwände bzgl. dessen wo das Banner im HTML injiziert wird ?
Auch uBlock könnte man testweise umgehen. Ob es dann lediglich vorrübergehend gewesen sein wird wird sich herausstellen.
Wenn man sich eigtl. Mitarbeit wünscht jedoch nach wie vor ständig konstruktive Einwände und Vorschläge ignoriert werden
- womit ich meine, daß gar nicht darauf reagiert wird -
fehlt irgendwann die Motivation.
Das sage ich ausdrücklich nur für Threads die offensichtlich von euch verfolgt werden, nicht für jeden Thread natürlich.
[...]

Wenn wir auch nicht immer gleich antworten, dann seit euch sicher, dass wir da bereits hinter den Kulissen drüber reden. Ich hab den Tab zu Antwort #64 noch im Browser offen. ;-)

[...]
Auch stellt sich mir die Frage warum sich die CSS- und JS-Dateien einzeln im Download befinden und nicht in einem Ordner in einem Paket, wie bei allen sonstigen Erweiterungen und Modulen.
[...]

Der Einfachheit halber, da gerade bei Dateien, die sich im Template befinden ansonsten ein großes Fehlerpotential steckt beim Kopieren eines ordner namens "TEMPLATENAME" oder wie auch immer der Platzhalter des Templates dann heissen würde.

Grüße

Torsten

Online Tomcraft

  • modified Team
  • *****
  • Gravatar
  • Beiträge: 43.761
  • Geschlecht: Männlich
    • Teile Beitrag
    • https://www.modified-shop.org
Die Dateien aus Beitrag 1 wurden mit den Änderungen aus r12285 aktualisiert.

Grüße

Torsten

Offline Viol

  • Fördermitglied
  • *****
  • Beiträge: 1.454
    • Teile Beitrag
Zunächst einmal danke für die schnelle Zurverfügungstellung des Moduls.
Ich habe bei mir im Shop (aktuellste Version) das Modul eingebaut: MODUL: Artikel Anfrage
Dort erscheint im Popup dann auch immer der Cookiehinweis.
Woran könnte das liegen?


Teile per facebook Teile per linkedin Teile per twitter

 


             
anything