Cookie Consent und Ghostery

Ghostery und Contao Marketing Suite - so geht es

Im Contao Forum wurde darauf hingewiesen, dass es bei der Nutzung der Cookie-Consent-Lösung der Contao Marketing Suite bei Aufruf zu einer "weißen" Seiten käme. Auf Nachfrage stellte sich heraus, dass dies bei Verwendung der Browsererweiterung Ghostery der Fall ist.

"Es wird [von Ghostery] ein "nicht identifizierter Tracker" (Werbetracker) angezeigt, der die Anzeige der Webseiten verhindert. Wenn ich als Einstellung "alle Tracker erlauben" klicke, dann wird nix mehr angezeigt, weil der Werbeblocker zu macht."

Leider meint es die Ghostery-Erweiterung etwas zu gut. Ziel ist es wohl, grundsätzlich alle Cookie-Consent-Dialoge auszublenden.

Um das zu erreichen, wird von Ghostery eine Liste von fixen CSS-Selektoren genutzt:

.cookie-bar-visible,
.block.cookies,
.grid > .container > #aside-promotion,
.ads.bottom,
.ads.cta,
.ads.grid-layout,
.ads.rectangle160,
.ads.rectangle300,
.ads.skyscraper160,
.ads.top,
.ads.widget,
.widget.cookies,
#header + #content > #left > #rlblock_left,
#header ~ div[aria-label*="cookieconsent"],
[href*="uselnk.com/"],
a[href^="http://api.content.ad/"],
a[href^="http://media.paddypower.com/redirect.aspx?"],
[href*="postlnk.com"],
[href*="passtechusa.com"],
[href*="librateam.net"],
a[href*="pussl"]

Die Contao Marketing Suite fügt bei Ausspielung des Consent-Dialoges, automatisch die Klasse cookie-bar-visible an den Body, um eventuell per Stylesheet darauf reagieren zu können. Leider führt das bei der strikten Ghostery Einstellung dazu, das der komplette Body ausgeblendet wird. Das Browserfenster ist "weiß".

So kann Ghostery das Problem fixen

Nutzer der Ghostery-Erweiterung sollten möglichst viele Seiten, welche die Cookie Consent Lösung der Contao Marketing Suite nutzen, als False-Positive den Entwicklern der Erweiterung melden. So kann dafür ein Fix geschaffen werden.

Workaround als Soforthilfe

Nutzer der Contao Marketing Suite können ein eigenes fe_page.html5 Template anlegen und diesen Teil:

<body id="top"<?php if ($this->class): ?> class="<?= $this->class ?>"<?php endif; ?>

gegen diesen Teil austauschen:

<body id="top"<?php if ($this->class): ?> class="<?= str_replace('cookie-bar-visible','',$this->class) ?>"<?php endif; ?>

Damit wird die Seite wieder wie gewünscht, ausgeliefert.