Hallo,
wenn ich bei Cookiebot alle Cookiekategorien mit Haken bestätige, wird PollUnit nicht mehr angezeigt.
Pollunit-Script hat data-cookieconsent="necessary" und in Cookiebot selbst sind die PollUnit-Cookies der Kategorie "notwendig" zugeordnet.
Habe eine Testseite nur mit Cookiebot und PollUnit erstellt ohne andere Scripte, die stören könnten.
https://www.thueringer-schiefergebirge-obere-saale.de/lernen-mitgestalten/test-fotowettbewerb/
Kennt jemand eine Lösung für dieses Problem?
Ich bin mit Cookiebot selbst nicht vertraut, aber das PollUnit-Script wartet auf das DOMContentLoaded
-Event und generiert dann den Code, der für die Einbettung von PollUnit verantwortlich ist. Ich vermute, dass Cookiebot diesen Ablauf verzögert, sodass das Script erst ausgeführt wird, wenn das Event bereits vorbei ist. Ich hoffe, das hilft dir trotzdem ein Stück weiter!
Du könntest den Code von https://pollunit.com/embed/parent_code.js
selbst hosten und dort Anpassungen machen. Allerdings würdest Du dann natürlich Updates dieser Datei verpassen.
Danke für die Info Markus! Laut Cookiebot gibt es keinen consent-mode "necessary", also habe ich das data-cookieconsent auf "preferences" geändert. Das Ergebnis ist leider das Gleiche. Wenn alle drei Kategorien im Cookiebot-Dialog angehakt sind, wird das Widget blockiert. :-(
Hast Du nochmal was geändert? Bei mir geht es jetzt.
Wenn du type="text/plain" verwendest, wird der Inhalt nicht als JavaScript interpretiert, sondern einfach als normaler Text behandelt. Das Script wird dann nicht ausgeführt.
Ich vermute Cookiebot, braucht das so, um es erst im nachhinein zu aktivieren? Da unser Script auf den Event wartet, dass die Seite bereit ist, aber der Event schon vorbei ist wenn Cookiebot das Script aktiviert, musst Du die https://pollunit.com/embed/parent_code.js
anpassen und selber hosten. Oder zumindest den Teil der durch den DOMContentLoaded-Event ausgelöst wird selbst auslösen.
Das "text/plain" am PollUnit-Script wird von Cookiebot auch bei Auswahl aller Kategorien korrekt geändert in "text/javascript", aber es wird trotzdem nicht oder nicht korrekt ausgeführt.
Das Script selber hosten ist keine Option und am PollUnit-Script herumbasteln halte ich auch nicht für den richtigen Weg. Alle anderen Scripts auf der Seite harmonieren ja mit Cookiebot. Bei Cookiebot selbst hatte ich noch mal kontrolliert, ob alle PollUnit-Cookies der Kategorie "Preferences" zugeordnet sind.
Leider finde ich auch keine anderen Beispielseiten, auf denen Cookiebot läuft und das PollUnit-Widget eingebaut ist, um zu checken, ob dort das gleiche Problem besteht.
PollUnit muss nachdem die Seite geladen ist verschiedene Dinge tun um das iFrame einzubinden. Wir nutzen dazu den korrekten Event. Dadurch, dass Du PollUnit nicht so implementierst wie vorausgesetzt, musst Du leider auf Deiner Seite etwas anpassen - auch wenn andere Scripte das nicht benötigen.
Cookiebot hat seine eigenen Events die hier beschrieben sind: https://support.cookiebot.com/hc/en-us/articles/360020661139-How-to-find-out-when-the-Cookiebot-script-has-loaded
Ich denke, CookiebotOnAccept
ist der den Du brauchst. Wenn dieser Event gefeuert wird müsstest Du die PollUnit Funktionen auslösen, die normalerweise bei DOMContentLoaded
ausgelöst werden.
Wir werden mit einem der nächsten Updates an unserem embedding Script, eine eigene init Funktion zur Verfügung stellen. Aber auch diese müsste von Dir dann zum richtigen Zeitpunkt ausgelöst werden.
Erst mal vielen Dank für die ausführliche Antwort zu meinem Problem. Habe jetzt mit den verschiedenen Event-Listenern von Cookiebot herumprobiert - leider ohne Erfolg. Den Code für die Einbettung von PollUnit habe ich von meinen Auftraggebern bekommen, wieso soll der nicht ok sein?
Momentan hoste ich ein von mir angepasstes PollUnit-Script auf unserem Server, bis Eure überarbeitete Version verfügbar ist. Ich habe jetzt einfach den Bereich für die Initialisierung am Ende des Scripts platziert und den DOMContentLoaded-Listener ersetzt durch eine einfache Abfrage, ob das div für das Widget existiert. Ist vielleicht nicht sehr professionell, aber läuft erst mal korrekt mit Cookiebot zusammen.
Ihr könnt mich ja auf dem Laufenden halten bezüglich des Scripts…
Das Script mit text/plain
einzubinden, macht es inkorrekt. Ich denke die Woche werden wir noch ein Update veröffentlichen, dass es in Deiner Situation leichter machen sollte.
<script type="text/plain"… muss eingestellt werden gefolgt vom Cookiebot-Consent-Type data-cookieconsent="preferences". Wenn im Cookiebot-Dialog dann mindestens "Preferences" ausgewählt wurde, ersetzt Cookiebot das type="text/plain" durch type="text/javascript". Dies garantiert, dass bis zur Bestätigung der entsprechenden Cookies Scripts nicht ausgeführt werden.
Wir drehen uns im Kreis ;) Das ist korrekt, aber dann muss man eben selbst PollUnit initialisieren. Die korrekte Implementierung aus Sicht von PollUnit sieht anders aus.
Und genau das mache ich ja im Moment. Ich bastele am PollUnit-Script, damit es mit Cookiebot harmoniert. Das kann aber nicht die Lösung sein, da unser Kunde damit von automatischen Updates ausgeschlossen ist.
Ich warte jetzt erst mal, was das nächste PollUnit-Update bringt.
Trotz allem bin ich beeindruckt von der schnellen Reaktion des PollUnit-Supports! :-)
Es gibt jetzt eine neue Version, die eingebettet werden kann. Den entsprechenden Code findest Du hier:
https://pollunit.com/de/tutorials/embed_poll
Bitte achte darauf, auch den neuen Integrity Hash aus dem Tutorial zu übernehmen. Dieser Hash stellt sicher, dass die eingebundene Datei beim Laden nicht manipuliert wurde – das dient der Sicherheit. Aus diesem Grund sind automatische Updates dieser Datei leider nicht möglich. Alle anderen Updates bekommen Deine Kunden automatisch.
Die alte Version bleibt weiterhin kompatibel.
Neu in dieser Version: Du kannst jetzt die Funktion pollUnitInit()
aufrufen. Damit lässt sich PollUnit gezielt zu einem bestimmten Zeitpunkt oder im passenden Event initialisieren.