Cookie OptIn / Consent für TYPO3

Der Europäische Gerichtshof (EuGH) hat entschieden, dass Cookie-Banner, welche nicht ausdrücklich die Zustimmung des Webseitenbesuchers verlangen, nach der DSGVO nicht rechtmäßig sind. Um TYPO3-Entwicklern das Umsetzen dieser neuen Forderung zu erleichtern, haben wir sgalinski Cookie OptIn entwickelt, ein einfach integrierbares Modul, das eine Einbettung für Cookies und Tracking-Skripte ermöglicht, die mit DSGVO (GDPR) und ePrivacy konform ist. Weiterführende Informationen hierzu finden Sie auch im Blog-Artikel von Herrn Dr. Schwenke.

Kompatibilität

TYPO3 Versionen 6.2.X | 7.6.X | 8.7.X | 9.5.X | 10.4.X
PHP Versionen 5.5.X | 7.0.X | 7.1.X | 7.2.X | 7.3.X | 7.4.X
Getestete Browser Internet Explorer 11 und Evergreen Browser

Highlights

TYPO3-Erweiterung für ePrivacy & DSGVO

Cookies dürfen aufgrund der DSGVO (GDPR) und der ePrivacy-Verordnung nur noch geladen werden, wenn der jeweilige Seitenbesucher dem ausdrücklich zustimmt (Cookie Consent). Dadurch entfallen auch Opt-Out Lösungen, bei denen der User aktiv widersprechen muss, um keine Cookies mehr zu erhalten. Deshalb werden mit sgalinski Cookie OptIn standardmäßig nur Cookies eingebettet, die Sie als essenziell festlegen.

Cookies gruppieren & Cookie-Gruppen verwalten

Nicht-essenzielle Cookies werden im mitgelieferten Backend-Modul in eine beliebige Anzahl von Gruppen einsortiert. Den Besuchern Ihrer Seite werden diese Cookies transparent und übersichtlich mit Informationen wie Herkunft, Beschreibung und Laufzeit aufgelistet. Der Nutzer kann dann entscheiden, welche Cookie-Gruppen er akzeptieren möchte.

Sofort einsatzbereit

Die Extension installieren Sie per Composer oder das TER und binden es mit wenigen Zeilen TypoScript in Ihrer Instanz ein. Dank des übersichtlichen Backend-Moduls und einer intelligenten Vorkonfiguration ist Ihr Cookie Opt-In Banner mit ein paar Klicks in kürzester Zeit einsatzbereit. Auch beliebige Tracking-Skripte lassen sich in Windeseile hinzufügen, werden aber erst geladen, wenn der Nutzer dem zugestimmt hat.

Kompatibel mit Ihrem Design

Im Backend-Modul der Extension lässt sich die farbliche Gestaltung des Cookie Pop-Ups so konfigurieren, dass sich das Banner nahtlos in das Frontend Ihrer Webseite eingliedert. So haben Sie die volle Kontrolle über das Aussehen des Cookie-Hinweises.

Konfigurierbar für mehrere Sprachen

Das Cookie-Banner der Erweiterung lässt sich komplett in beliebig viele verschiedene Sprachen übersetzen und wird auf jeder Sprache Ihrer Webseite entsprechend ausgespielt.

Zusätzlich können für unterschiedliche Sprachversionen Ihrer Webseite verschiedene Cookie-Gruppen konfiguriert werden. So ist transparenter, flexibler Datenschutz für all Ihre User gesichert.

Google Tag Manager und andere Tracking-Services

Sie können beliebige Skripte in den Einstellungen von sgalinski Cookie OptIn einfügen, welche geladen werden, sobald der jeweilige Benutzer dem zugestimmt hat. Dabei haben wir besonders darauf geachtet, dass durch das OptIn-Banner keine Tracking-Informationen verloren gehen.

Preise

sgalinski Cookie OptIn für TYPO3

Sgalinski Cookie OptIn für TYPO3 ist die einfachste Lösung, sowohl Tracking-Skripte und -Tags als auch Cookies datenschutzrechtlich einwandfrei auszuspielen.

Mit dem übersichtlichen Opt-In-Banner schaffen Sie Vertrauen und Transparenz bei Ihren Nutzern.

Das Backend-Modul hilft Ihnen, in kürzester Zeit all Ihre Cookies, Tags und Skripte in Gruppen einzuteilen, welche die Nutzer frei akzeptieren können.

Dank unserem Lizenzmodell erhalten Sie alle Updates für sgalinski Cookie OptIn, sobald diese verfügbar sind.

  • Einfache Installation
  • Schnell konfiguriert
  • Übersichtlich
  • Transparent
  • Individuelle Gestaltung möglich
  • Kompatibel mit mehrsprachigen Instanzen
  • Simple Integration von Google Tag Manager und anderen Tracking-Diensten
  • Kostenfreie Updates für die gesamte Laufzeit Ihrer Lizenz

Preise:

  • Jahreslizenz1: 59,99 € pro Instanz
  • Lifetime-Lizenz1: 199,99 € pro Instanz
  • Volumenlizenz: Bei Bestellungen ab 20 Lizenzen werden 25 % Mengenrabatt gewährt und ab 50 Lizenzen werden 50% Rabatt vergeben.

Die Extension kann ohne Lizenz für 24h im Demomodus getestet werden.

sgalinski Website-Base inklusive OptIn Extension

Unsere auf TYPO3 basierende Website-Base ist ein umfangreiches Paket zum Erstellen und Verwalten von Webseiten aller Art. Das sgalinski Cookie Consent ist in der Website-Base inbegriffen. Dabei gibt es grundsätzlich die Möglichkeit eine Webseite zum Fixpreis erstellen zu lassen oder man entscheidet sich für ein Website as a Service Paket, mit dem keine weiteren Kosten für Hosting oder Sicherheits- und Funktionsupdates entstehen. Alle Informationen zu den verfügbaren Editionen der Website-Base finden Sie auf den unten verlinkten Seiten.

Installation & Konfiguration

Nach der erfolgreichen Installation & Konfiguration der sgalinski Cookie Consent Extension wird jeder neue Besucher Ihrer Webseite ein Fenster mit dem Cookie Consent sehen. Der User bestimmt welche Cookies er zulassen möchte und welche nicht. Folgende Cookie Gruppen sind zu sehen (essentielle Cookies werden immer akzeptiert, da sie für die Funktion einer Seite von Bedeutung sind):

  • Essentiell
  • Cookie Gruppen, die Sie selbst definiert haben
  • Externe Inhalte

Die individuelle Auswahl kann der User speichern oder mit nur einem Klick nur essentielle Cookies oder alle Cookies akzeptieren. Schließt ein Seitenbesucher das Fenster, ohne eine Auswahl getroffen zu haben, werden automatisch nur essentielle Cookies geladen.

Sie haben außerdem die Möglichkeit das Cookie Consent nach der Konfiguration in eine Seite zu integrieren, indem Sie das entsprechende Cookie-OptIn Inhaltselement einfügen.

Installation der Cookie OptIn/Consent Extension

Die Extension lässt sich einfach aus dem TER beziehen oder per Composer installieren.

Um die Extension per Composer zu installieren, muss einfachcomposer require sgalinski/sg-cookie-optin ausgeführt werden.

Im Anschluss muss in beiden Fällen die Extension über das Modul Template hinzugefügt werden und über das Modul Tracking / Cookies konfiguriert werden.

Cookie OptIn zur Instanz hinzufügen

Nach der Installation müssen Sie das statische TypoScript namens Cookie OptIn zu Ihrer Instanz hinzufügen. Dafür gehen Sie wie folgt vor:

  1. Öffnen Sie das Modul Template in Ihrem Backend und wählen innerhalb des Seitenbaums die Seite mit dem Root Template.
  2. Wählen Sie Info/Bearbeiten in der Auswahl oberhalb des Inhaltsbereiches
  3. Klicken Sie auf die Schaltfläche Vollständigen Template-Datensatz bearbeiten.
  4. Wählen Sie die Registerkarte Enthält.
  5. Wählen Sie die Vorlage Cookie Optin (sg_cookie_optin) auf der Mehrfachauswahlbox (rechts) mit dem Namen Statische Templates einschließen (aus Erweiterungen).
  6. Nach einem Klick auf die Auswahl erscheint die Vorlage in der linken Box.
  7. Sichern Sie Ihre Änderungen mit dem Speichern Button über dem Inhaltsbereich.

Wenn Ihre TYPO3-Installation in einem Unterverzeichnis liegt z.B. www.example.com/subdirectory, sollten Sie in Ihren Erweiterungseinstellungen im TYPO3-Backend den Wert general.folder anpassen.


Konfiguration

Cookies identifizieren

Bevor Sie die Cookie OptIn Extension im Backend konfigurieren, sollten Sie Ihre Webseite nach Cookies untersuchen. Nutzen Sie dafür folgendes Tool (öffnen Sie es am besten in einem neuen Tab oder einem neuen Fenster).

Geben Sie, wie unten zu sehen ist, Ihre Homepage-Adresse ein und bestätigen Sie die Eingabe mit Scan Now.

Neben dem Tool haben Sie außerdem die Möglichkeit Ihre Seite manuell nach Cookies zu überprüfen. Folgen Sie dafür dieser Anleitung.

Im Ergebnis erhalten Sie eine übersichtliche Tabelle, wie sie unten zu sehen ist. Aus dieser Tabelle entnehmen Sie die meisten Informationen, die für die Konfiguration der Extension notwendig sind. Im Abschnitt zu der Gruppe essentieller Skripte & Cookies ist beschrieben, welche Daten Sie an welcher Stelle eintragen müssen.

Beachten Sie bitte, dass diese Liste unvollständig sein könnte.

Es reicht außerdem nicht, nur die Homepage nach Cookies zu untersuchen. Es ist wichtig, alle Haupt- und Unterseiten zu scannen.

Denn nur wenn alle Cookies und Tracking-Skripte ausschließlich über die Cookie OptIn Extension geladen werden, ist es möglich eine DSGVO-konforme Webseite zu kreieren. Wenn das der Fall ist, wird das Tool bei erneuter Untersuchung nach der vollständigen Konfiguration keine Ergebnisse mehr liefern können. Sie erhalten in dem Fall den Hinweis: No Cookies Found. Sie müssen so lange Cookies und Skripte in das Cookie Consent einpflegen, bis das Tool auf keiner Seite mehr Cookies findet.

Cookie Consent anlegen

  1. Gehen Sie zu dem Modul Tracking / Cookies (vorletztes Modul in der Modulgruppe Web).
  2. Wählen Sie (falls notwendig) innerhalb des Seitenbaums die Seite mit dem Root Template oder wählen direkt die angezeigte Seite im Inhaltsbereich.
  3. Sollte noch kein Eintrag zum Datenschutz/Cookies vorhanden sein:
    • Klicken Sie auf den Button unter dem Einleitungstext.
    • Füllen Sie alle notwendigen Felder aus. Damit ist der Eintrag erstellt.
    • Fahren mit dem nächsten Schritt fort.
  4. Wenn bereits ein Eintrag vorhanden ist:
    • Klicken Sie einfach auf den Namen des Eintrags oder auf das Stiftsymbol rechts von dem Eintragsnamen, um das Cookie Consent zu konfigurieren/bearbeiten.

Cookie Consent bearbeiten

1. Tab: Texte & Menü

Sie sehen in der Abbildungen unten, welche Felder an welchen Stellen im Frontend zu sehen sein werden. Füllen Sie die Felder Titel des Opt-In Fensters bis Link zur Anzeige von Informationen der Cookies einer Gruppe aus.

Füllen Sie nun die vier Felder zu den Cookie Informationstexten aus. Nach diesen vier Informationen werden alle verwendeten Cookies aufgeschlüsselt, hier legen Sie lediglich die Beschriftung fest.

Impressum und Datenschutzerklärung verlinken

Im letzten Schritt verlinken Sie noch das Impressum und die Datenschutzerklärung. Gehen Sie wie folgt vor:

  1. Klicken Sie auf den Button Seite oder das Ordersymbol rechts neben dem Feld, wo die Links zu den beiden Seiten eingefügt werden sollen.
  2. Der Seitenbaum erscheint. Klicken Sie auf eine der beiden Seiten (Impressum oder Datenschutzerklärung).
  3. Sie haben nun einen Link zu dieser Seite hinzugefügt und befinden sich wieder im Reiter Texte & Menü.
  4. Wiederholen das Vorgehen für die andere Seite.

WICHTIG: Auf der Seite Ihrer Datenschutzerklärung sollten Sie einen Button/Link zu den Cookie-Einstellungen einbauen ODER das Cookie Consent Inhaltselement einfügen.

Sollten Sie sich für die Button/Link-Variante entscheiden, muss der User mit einem Klick auf den Button zu den Cookie-Einstellungen gelangen. Dafür legen Sie einen externen Link mit der URL Ihrer Datenschutzerklärung mit dem Parameter ?showOptIn=1 an. Der Link kann dann beispielsweise so aussehen: sgalinski.de/datenschutz/?showOptIn=1. Sollte ein Nutzer bereits entschieden haben, welche Cookies er laden möchte und gelangt zu einem späteren Zeitpunkt auf eine Seite mit dem Parameter ?showOptIn=1, werden die von ihm gewählten Checkboxen wieder angezeigt.

2. Tab: Template

Im ersten Teil des Reiters Template wählen Sie zunächst zwischen zwei Basis-Designvorlagen. In unserem Beispiel handelt es sich um die umfassende Variante. Ihnen steht außerdem das kompakte Design zur Verfügung.

Oder aber Sie setzten ein Häkchen bei Vorlage überschreiben und passen das Template Ihren Vorstellungen an.

Das Template lässt sich jederzeit im Frontend anzeigen, indem Sie auf den Button Template-Vorschau (unter dem Template-Code) klicken. In einem neuen Tab sehen Sie dann Ihre Seite mit dem aktuellen Design.

Wenn das Template gewählt ist, werden die Farben der einzelnen Komponenten angepasst. Als Erstes legen Sie die Farben des oberen Bereiches und der Überschrift sowie des Textes fest.

Danach folgen die Farben des Fensters, wo der größte Teil des Inhaltes angezeigt wird.

Die Gruppen-Checkboxen befinden sich in unserem Basis-Template links neben der Cookie-Gruppenbezeichnung. Essentielle Cookies und Skripte können eine andere Farbe bekommen als alle weiteren Gruppen.

Zu jedem Button in dem Cookie-Opt-In besteht die Möglichkeit den Hintergrund, das Button-Hover (Mouseover-Effekt zum Anzeigen einer verfügbaren Interaktion) und die Textfarbe verschieden zu gestalten.

Zum Schluss passen Sie noch die Farben der Liste der Gruppendetails und die der Cookie-Beschreibungstabellen an.

3. Tab: Externe Inhalte

Zum Aktivieren des Cookie Consents für Iframes müssen Sie in der Registrierkarte Externe Inhalte ein Häkchen setzen und die Felder Titel und Beschreibung ausfüllen sowie die Texte für die Button-Beschriftungen festlegen. Welche Felder, an welcher Stelle im Frontend erscheinen, können Sie mit den unteren Bildern nachvollziehen.

Ähnlich wie bei essentiellen Cookies können Sie unter dem Feld Beschreibung alle Cookies angeben, die von externen Skripten kommen. Die Informationen sind im Frontend im Cookie-Informationsteil des OptIn-Feldes zu sehen.

Farben anpassen

Unter der Spalte Texte (Button-Beschriftungen) befindet sich die Spalte Farben. Hier lassen sich die Box und die Buttons farblich anpassen.

Designvorlagen überschreiben

Es ist außerdem möglich direkt im Backend die Designvorlagen anzupassen oder ganz zu ändern.

Setzen Sie dafür ein Häkchen bei Template des Einstellungsfensters überschreiben, um den Code für das Design des Fensters mit den Einstellungen zu externen Inhalten zu überarbeiten und ein Häkchen bei iFrame-Ersatz-Template überschreiben, um das Template des Fensters zu ändern, das anstelle des iFrames zu sehen ist.

Durch einen überschriebenen Code werden zukünftige Updates nicht mehr automatisch übernommen. Wenn die Option deaktiviert wird, wird das Template wieder zurückgesetzt.

Externe Inhalte whitelisten

Wenn auf Ihrer Seite bestimmte externe Inhalte für die Funktionalität der Seite notwendig sind oder aus anderen Gründen unbedingt geladen werden müssen, können Inhalte ohne ausdrückliche Zustimmung des Benutzers geladen werden. Dafür besitzt die Extension eine Whitelisting-Funktion. Die Liste enthält automatisch reCAPTCHA, ein Dienst, dass ein Unterscheiden von Menschen und Bots ermöglicht. Wenn Sie ein Häkchen bei Template überschreiben setzen, können Sie weitere Ausnahmen einfügen. Die externen Inhalte (IFrame, Objekte, Audio- und Video-HTML-Tags) sind dann vom externen Schutz ausgenommen.

Inhaltselement als Externer Inhalt

Jedes Inhaltselement kann individuell als externer Inhalt geschützt werden. Das kann  z. B. nützlich sein, wenn der externe Inhalt durch ein komplexes JavaScript hinzugefügt wurde oder wenn die Inhalte selbst nur einen kleinen Teil eines großen Blocks darstellen, die Textheader, Steuerelemente usw. enthalten. Für Sie kann es dann bequemer sein, den gesamten Block als geschützt zu kennzeichnen. Es gibt drei Möglichkeiten ein Inhaltselement, als externes Element zu kennzeichnen.

  • Im Reiter Erscheinungsbild eines jeden Inhaltselementes können Sie einfach External Content wählen.
  • Im Inhaltselement Reines HTML können Sie zwei weitere Möglichkeiten nutzen, einen Inhalt als extern zu markieren.

Fügen Sie das Attribut data-external-content-protection dem HTML-Tag hinzu.

<div class="test-content-protection" data-external-content-protection="1">

This content would have not been protected

<iframe src=”some/external/page” />

</div>

Oder tragen Sie die Klasse frame-external-content-protection im HTML-Tag ein.

<div class="test-content-protection frame-external-content-protection">

Content comes here

</div>

Inhaltselement – Externen Inhalt immer laden

Es kann der Fall eintreten, dass Sie einzelne externe Inhalte nicht schützen möchten. Das kann z. B. notwendig sein, wenn die Funktion Ihrer Webseite davon abhängt, wenn es sich um iFrames von Whitelist-Domains handelt, die zu Ihrem Unternehmen gehören oder wenn der externe Inhalt keine Cookies mit sich bringt. Sie sollten also immer darauf achten, dass Ihre Seite DSGVO-konform bleibt.

Es gibt drei Möglichkeiten ein Inhaltselement, das als externes Element nicht automatisch auf der Seite angezeigt würde, trotzdem zu laden, ohne Zustimmung des Nutzers.

  • Im Reiter Erscheinungsbild eines jeden Inhaltselementes können Sie einfach Unprotected External Content wählen.
  • Im Inhaltselement Reines HTML können Sie zwei weitere Möglichkeiten nutzen, externe Inhalte automatisch zu laden.

Fügen Sie ein Attribut data-iframe-allow-always oder data-external-content-no-protection dem HTML-Tag hinzu.

<iframe width="560" height="315" src="https://www.youtube-nocookie.com/XYZ" data-iframe-allow-always="1">

</iframe>

 

Oder tragen Sie die Klasse frame-external-content-protection im HTML-Tag ein.

<iframe width="560" height="315" src="https://www.youtube-nocookie.com/XYZ" class="frame-external-content-no-protection">

</iframe>

Ändern des Button-Textes für ein bestimmtes externes Inhaltselement

Fügen Sie einfach das Datenattribut data-consent-button-text zu einem HTML-Tag in einem iFrame hinzu.

<iframe width="560" height="315" src="https://www.youtube-nocookie.com/XYZ" data-consent-button-text="Custom text here"></iframe>
Externer Inhalt– iFrame Beschreibung

Sie können eine Beschreibung des externen Inhaltes einfügen. Dafür müssen Sie in den HTML-Code des iFrames ein entsprechendes Attribut einsetzen: data-consent-description. Das iFrame-Tag im HTML-Inhaltselement kann dann wie folgt aussehen:

<iframe 
width="560" height="315" 
src="https://www.youtube-nocookie.com/XYZ" allowfullscreen 
data-consent-description="Ein wenig Zusatzbeschreibung" 
data-iframe-allow-always="1">
</iframe>
Externer Inhalt bei Nicht-Akzeptieren

Wenn ein User externe Inhalte nicht akzeptiert, werden Iframes nicht geladen und als Box dargestellt. Der Besucher hat nun bei jedem Iframe die Option nur das eine Iframe zu laden. Beim Klick auf den Button Einstellungen öffnen erscheint ein kleines Cookie Consent Fenster (siehe Screenshot unten), dort können alle externen Inhalte oder nur das eine Iframe akzeptiert werden.

4. Tab: Banner

Texte & Menü

Wenn in dieser Spalte der Häkchen bei dem weniger auffälligen Banner gesetzt wird, wird statt der ausführlichen Variante nur ein kleines Banner angezeigt. Selbst wenn der User nicht auf Akzeptieren klickt, bleibt die Website voll funktionsfähig. Die Position des Banners können Sie unten oder oben festlegen. In unserem Beispiel befindet sich der Banner unten. Auch in dieser Form des Cookie Consents soll ein Text den Seitenbesucher auf Cookies hinweisen. Den Erklärungstext fügen Sie in das dafür vorgesehene Feld ein (Erklärungstext im Banner).

Farben

Banner-Farben lassen sich ganz individuell für die einzelnen Komponenten einstellen: Bannerfarben für Hintergrund und Text sowie Farben für Einstellungen und Akzeptieren-Buttons. Den Einstellungsbutton sollte mit dem Setzen des Häkchens aktiviert werden, wenn Ihre Seite Cookies nutzt.

Banner-Designvorlagen

Wie in den Reitern Externe Inhalte oder Template lassen sich direkt im Backend Veränderungen am Design vornehmen. Setzen Sie dafür ein Häkchen bei Vorlage überschreiben.

Durch die Aktivierung dieser Option werden zukünftige Updates nicht mehr automatisch übernommen. Sobald die Einstellung deaktiviert wird, wird das Template wieder auf die Vorlage zurückgesetzt.

5. Tab: Gruppe essentieller Skripte & Cookies

Wenn ein Seitenbesucher das Cookie Consent im Frontend aufklappt, sind dort Informationen zu den verwendeten Cookies zu sehen. In diesem Tab müssen Sie alle essentiellen Skripte & Cookies eintragen.

Fügen Sie zunächst einen Gruppentitel ein. Dieser muss nicht unbedingt 'Essentiell' lauten, so wie in unserem Beispiel. Tragen Sie dann die Beschreibung der Cookie-Gruppe ein. Titel und Beschreibung sind auch im zugeklappten Zustand zu sehen.

Die einzelnen Skripte & Cookies, legen Sie im Anschluss an. Klicken Sie dafür jeweils auf den Button Neu anlegen und füllen alle Felder aus. Die notwendigen Informationen zu den Cookies finden Sie in der Auflistung des Tools aus dem ersten Schritt. Die Namen der Cookies befinden sich in der Spalte Cookies. Unter Description finden Sie den Zweck sowie zumeist auch den Anbieter/Provider der Cookies. Die Lebenszeit entspricht der Spalte Duration.

Schließlich verrät Ihnen die letzte Spalte, wie Sie Ihre Cookies gruppieren können: Wenn ein Cookie als Necessary (notwendig) kategorisiert wird, gehört es zu den essentiellen Cookies. Dieses ist also für die Funktionalität der Webseite unabdingbar Sie müssen es hier hinzufügen.

6. Tab: Weitere Skript- und Cookiegruppen

Alle nicht essentiellen Cookie- und Skriptgruppen fügen Sie im Reiter Weitere Skript- und Cookiegruppen hinzu. Bei der Einteilung von Cookies in Gruppen können Sie sich an der Tabelle vom ersten Schritt der Konfiguration orientieren.

Legen Sie eine Gruppe an und pflegen die dazugehörigen Cookies und Skripte ein. Zum Bearbeiten jeder Gruppe stehen drei Unterreiter zur Verfügung. Bei Allgemein tragen Sie einfach den Gruppentitel, den Gruppen-Key für GTM und die Beschreibung ein. Titel und Beschreibung sind im Frontend im nicht aufgeklappten Zustand des Cookie Consents bereits zu sehen.

Im Tab Cookies fügen Sie alle weiteren Cookies genauso hinzu, genauso wie die essentiellen Cookies.

Skripte hinzufügen und bearbeiten

Sie können Skripte als HTML-Code oder als Javascript implementieren. Die Skripte fügen Sie in Ihren angelegten Gruppen unter Skripte hinzu. Sie entscheiden, ob Sie das Skript als HTML oder als Javascript in die Cookie OptIn Extension einbauen. Je nachdem nutzen Sie einfach die dafür vorgesehene Box. Den Reiter Skripte und die Felder zum Eintragen des Codes sehen Sie hier im Screenshot. Bei einer Multi-Domain Umgebung, können Sie eine andere Vorgehensweise nutzen, die es Ihnen erlaubt, die ID per TypoScript zu setzen.

Es müssen alle Cookie-bezogenen Skripte zur Konfiguration hinzugefügt werden. Sie dürfen nirgendwo sonst geladen werden!

Beispielsweise kann der Google Tag Manager folgendermaßen integriert werden:

document.TagManagerLoaded = document.TagManagerLoaded || 0;
if (!document.TagManagerLoaded) {
  document.TagManagerLoaded = 1;
  (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtag/js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','YOUR GTM-CODE');
}

Das sieht im Tab Skripte einer Cookie- und Skriptgruppe wie folgt aus:

Vorgehen bei einer Multi-Domain Umgebung

In einem Multi-Domain System kann die oben beschriebene Methode zu Komplikationen führen, die Sie mit den folgend vorgestellten Vorgehensweisen vermeiden können. Unter anderem erlauben diese Alternativen die ID (Variable) direkt im TypoScript zu setzen.

Bei der ersten Variante geben Sie im HTML-Feld folgenden Code ein (als Beispiel dient wieder der Google Tag Manager):

<!-- Google Tag Manager -->
<script type="text/javascript">
        document.TagManagerLoaded = document.TagManagerLoaded || false;
        if (!document.TagManagerLoaded) {
            document.TagManagerLoaded = true;
            (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer', document.googleTagManagerId);
        }
</script>
<!-- End Google Tag Manager -->

Die ID/Variable wird dann über TypoScript im TS-Template der Instanz gesetzt und kann mit Bedingungen überschrieben werden:

page.headerData.14414 = TEXT
page.headerData.14414.value (
<script type="text/javascript">
document.googleTagManagerId = '<MEINE_ID>';
</script>
)

Alternativ können Sie das Skript komplett über das TypoScript einbinden:

<!-- Google Tag Manager -->
<script type="text/javascript">
    function addTagManager () {
        document.TagManagerLoaded = document.TagManagerLoaded || 0;
        if (!document.TagManagerLoaded) {
            document.TagManagerLoaded = 1;
            (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new
Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//
www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})
(window,document,'script','dataLayer','{$settings.gtm.id}');
        }
    }
</script>
<!-- End Google Tag Manager -->

Die Konstante settings.gtm.id kann dann über TypoScript Conditions dynamisch gesetzt werden. In der Extension tragen Sie nur noch die Zeile addTagManager(); ein.

Mit letzterer Variante kann die Variable/ID über TypoScript gesetzt werden und gleichzeitig entfällt das Kopieren des Codes in die verschiedenen Domains.

6. Tab: Einstellungen

Im Tab Einstellungen der Cookie Opt-In Extension können Sie die Laufzeit unseres Cookies anpassen. Nach Ablauf dieser Zeit werden Nutzer erneut aufgefordert werden, das Cookie Consent auszufüllen. Standardmäßig sind 12 Monate eingestellt, hier können Sie diesen Zeitraum anpassen.

Unser Cookie ist essentiell für die Funktion der Cookie Opt In Extension. Es muss gespeichert werden, damit das Tool weiß, welche Cookie-Gruppen der Nutzer akzeptiert hat. Die Struktur unseres Cookies sieht wie folgt aus:

  • Name: cookie_optin
  • Beispieldaten: essential: 1 | analytics: 0 | performance: 1

Die Beispieldaten bedeuten: Der User hat die essentiellen Cookies und Performance-Gruppen akzeptiert, jedoch nicht die Analysegruppen.

Alle CSS- und JavaScript-Dateien sind komprimiert. Sollten Sie das nicht wollen, müssen Sie die das Häkchen bei Erzeugte Dateien minifizieren herausnehmen.

Powered by deaktivieren

Sie können den Text Powered by sgalinski Cookie Opt In im Frontend ausblenden, indem Sie die Checkbox unter Powered by deaktivieren aktivieren.

Das Cookie für die gesamte Domain setzen

Wenn Sie sich in einer Subdomain befinden, z. B. subdomain.example.com, aber die Benutzereinstellungen für die gesamte Domäne example.com speichern möchten, können Sie das hier tun. Geben Sie dafür einfach die Domain an, für die das Cookie Consent gelten soll. Das funktioniert nicht mit externen Domains. Sie sollten immer sicherstellen, dass Ihre Einstellungen weiterhin DSGVO-konform sind.

Cookie Opt-In/Consent übersetzen

Um den Inhalt zu übersetzen, müssen Sie lediglich über dem Inhaltsbereich die Sprache auswählen, für die Sie eine Übersetzung anlegen möchten. Passen Sie einfach alle Inhalte an diese Sprache an und sichern Sie die Änderungen mit dem Speichern Button über dem Inhaltsbereich.


Google Tag Manager (GTM) – Integration

Wenn Sie den Google Tag Manager (GTM) nutzen, müssen Sie nach Einbindung & Konfiguration der Cookie Consent Extension Anpassungen im GTM vornehmen.

Voraussetzung dafür ist zunächst das Erstellen der Tracking-Gruppen in der Cookie OptIn Extension und das Hinzufügen der GTM Skriptes in allen relevanten Gruppen. Das vermeidet doppeltes Laden. Beachten Sie außerdem alternative Vorgehensweisen bei Nutzung von Multi-Domain Systemen.

Die folgenden Erläuterungen basieren auf den beispielhaften Skript- und Cookiegruppen Analytics und Marketing aus. Die dazugehörigen Gruppen-Keys, die Sie im Reiter Allgemein einer Gruppe eintragen, lauten in unserem Beispiel marketing und analytics.

Das Skript für den Google Tag Manager und den Tab Skripte sehen Sie in den unteren Abbildungen.

Nach der Konfiguration des Cookie Consents auf Ihrer Website müssen Sie nun für eine vollständige und erfolgreiche Integration mehrere Aktionen im GTM durchführen.

Variable angelegen

  1. Gehen Sie im GTM zu Variablen.
  2. Wählen Sie dann Benutzerdefinierten Variablen.
  3. Klicken Sie auf den Button Neu.
  4. Benennen Sie die neue Variable mit 'Cookie Consent' oder Ähnlichem.
    (Den Namen der Variable sehen Sie links oben in der Ecke des Screenshots.)
  5. Klicken Sie auf Variable konfigurieren.
  6. Wählen Sie anschließend First-Party-Cookie.
  7. Tragen Sie Cookie-Namen 'cookie_optin' ein, so wie es im Screenshot zu sehen ist.

Trigger für Consent-Gruppen angelegen

  1. Gehen Sie im GTM zu Trigger.
  2. Wählen Sie den Typen Seitenaufruf.
  3. Wählen Sie die Einige Seitenaufrufe.
  4. Klicken Sie dann im ersten Feld unten die eben erstellte Variable an.
  5. Da es sich um eine OptIn-Lösung handelt wählen Sie im mittleren Feld enthält.
  6. Tragen Sie im dritten Feld Sie den Key einer Cookie- und Skriptgruppe aus der Cookie OptIn Extension mit dem Wert, bei dem Cookies zum Einsatz kommen dürfen, in diesem Fall ist es die 1. In das Feld tragen Sie dann entsprechend unserem Beispiel marketing:1 ein.
  7. Legen Sie für jede Cookie- und Skriptgruppe einen Trigger an.

Trigger in Tags nutzen

Nun müssen Sie die neuen Trigger in Ihren Google Analytics Tags einstellen. Je nachdem welcher Cookie-Gruppe Sie einen Tag zugeordnet haben, passen Sie den entsprechenden Trigger im Tag an. Zum Umstellen des Triggers gehen Sie wie folgt vor:

  1. Gehen Sie im GTM auf Tags.
  2. Klicken Sie auf den Namen des Tags.
  3. Klicken Sie dann auf das Stiftsymbol zum Anpassen des Tags.
  4. Fügen Sie unter Auslösende Trigger den neuen Trigger hinzu.
  5. Entfernen Sie den alten Trigger, indem Sie neben dem Trigger auf Entfernen klicken.

Komplexere Trigger mittels Trigger-Gruppen umsetzen

Komplexere Trigger werden nicht auf jeder Seite ausgeführt. Im GTM müssen diese als Trigger-Gruppe umgesetzt werden. Um eine Trigger-Gruppe anzulegen, gehen Sie wie folgt vor:

  1. Gehen Sie im GTM zu Trigger.
  2. Klicken Sie auf Triggerkonfiguration und wählen Sie dort Trigger-Gruppe aus.
  3. Klicken Sie auf Hinzufügen und wählen mindestens zwei Trigger für die Gruppe aus.
  4. Unter Triggers erscheinen Ihre gewählten Trigger.

Trigger-Gruppen fügen Sie auf die gleiche Art und Weise wie andere Trigger einem Tag bei. In unserem Beispiel sehen Sie, dass die erstellte Trigger-Gruppe Trigger Group Event im Tag UA - Event zu finden ist. Dieses Tag wird nur aktiviert, wenn beide Trigger der Gruppe erfüllt sind.

Sie sind nun mit der Installation & Konfiguration des sgalinski Cookie Consent fertig!

Cookie OptIn Interaktion mit JavaScript für Entwickler

Für einige Anwendungsfälle haben wir Entwicklern ermöglicht, mit unserem Cookie OptIn System zu interagieren. Die Anwendungsfälle sehen Sie in unserer Demo.

SgCookieOptin.openCookieOptin([contentElement], [options])

Die Funktion öffnet den Cookie Opt-In Dialog.

Parameter

  • contentElement {dom} (optional) – Falls der Parameter angegeben wird, wird der Dialog als child des angegebenen Inhaltselements angehängt, wenn nicht, wird er an den <body> Tag angehängt.
  • options (optional) – Sie können andere Optionen als JSON weitergeben. Die unterstützte Option dabei ist:
    • {boolean} hideBanner: Blendet das Cookie-Banner aus, wenn es in den Einstellungen aktiviert wurde.

Beispiel

In 99 % der Fälle werden Sie die Funktion ohne Parameter aufrufen und der Dialog wird geöffnet.

SgCookieOptin.openCookieOptin();

Beispiel auf Demo-Seite

SgCookieOptin.addAcceptHandlerToProtectedElements(callback, [selector])

Der Parameter fügt allen geschützten Elementen eine Trigger-Funktion hinzu. Sie wird ausgelöst, wenn das jeweilige Element die Zustimmung erhalten hat. Sie können die Elemente durch einen CSS-Selektor filtern.

Das ist sehr praktisch, wenn Sie nach dem Hinzufügen eines Elements zum DOM eine spezielle Logik angewendet werden soll (z. B. Größenänderung des Elements oder Verwendung eines Highlight-Effekts).

Parameter

  • callback {function} – Stellt die Callback-Funktion dar, die im Falle des Ereignisses ausgelöst wird.

  • selector {string} (optional) – Ein CSS-Selektor wird verwendet, um nicht akzeptierte externe Inhaltselemente zu filtern. Bitte beachten Sie, dass an dieser Stelle der Runtime diese Elemente aus dem DOM herausgelöst und durch die Consent-Elemente ersetzt werden. Sie können also keine übergeordneten Selektoren in diesem String verwenden. Diese Selektoren können nur verwendet werden, um das externe Element selbst auf Attribute zu prüfen – id, class, src usw.

Beispiel

Im Beispiel wird das Element mit der ID rce-event über die vordefinierte Funktion resizeIframeAfterAccept in der Größe verändert.

SgCookieOptin.addAcceptHandlerToProtectedElements(resizeIframeAfterAccept, '#rce-event');

Beispiel auf der Demo-Seite

SgCookieOptin.replaceExternalContentWithConsent(externalContent)

Mit dieser Funktion können Sie jedes Element auf der Seite programmatisch durch ein Consent-Feld ersetzen. Probieren Sie in den Entwicklertools zu Test-Zwecken den unteren Befehl auszuführen.

Diese Funktion kann für externe Elemente genutzt werden, die mit AJAX nachgeladen werden. 

Parameter

  • externalContent {dom}: Stellt das DOM-Element dar, das ersetzt werden soll.

Beispiel

SgCookieOptin.replaceExternalContentWithConsent(document.getElementById('c20534'));

FAQ

Wo kann ich Fehler und Verbesserungsvorschläge melden?

Sie können sehr gerne jegliche Art von Verbesserungsvorschlägen und Feedback zu Fehlern in unserem Tracker in unserem internen Gitlab melden. Sie können dies ebenfalls über unsere Mail-Adresse support@sgalinski.de direkt an unseren Support schicken. 

Zum Tracker

[1] Es besteht keine Garantie für dauerhafte Verfügbarkeit oder Support der Software. Lizenzinhaber können die Software während der Lizenzlaufzeit verwenden, solange sie offiziell unterstützt wird und verfügbar ist.