Appearance
Popup, Slider und Ganzseite
Statt fest im Seiteninhalt kann eine Umfrage auch als Overlay erscheinen – auf Klick oder von selbst, z. B. nach einigen Sekunden, ab einer Scrolltiefe oder wenn Besucher die Seite verlassen wollen.
| Modus | Darstellung |
|---|---|
popup | Dialog in der Mitte über abgedunkelter Seite (auf Smartphones als Blatt am unteren Rand). Modal: Fokus bleibt im Dialog. |
slider | Kleines Fenster unten rechts oder links. Nicht modal: die Seite bleibt bedienbar, der Fokus wird nicht verschoben. |
fullpage | Füllt das ganze Fenster, der Inhalt steht mittig mit begrenzter Breite. Modal wie das Popup. |
Alle drei lassen sich mit dem ×-Knopf oder der Escape-Taste schließen; Popup und Ganzseite auch per Klick neben den Dialog (Popup). Danach springt der Fokus zurück auf das Element, das vorher fokussiert war.
Einrichten
Am einfachsten über eine Embed-Konfiguration: Darstellung „Popup“, „Slider“ oder „Ganzseitig“ wählen und unter Auslöser und Häufigkeit festlegen, wann sich das Overlay öffnet. Die Vorschau im Dialog zeigt Lage und Verhalten. Auf der Seite genügt dann das Snippet mit der Konfigurations-ID – spätere Änderungen in der Konfiguration wirken ohne neuen Code:
html
<div data-pollyou-survey="AbC123xyz0" data-embed-id="0192f0c4-…"></div>
<script src="https://embed.pollyou.org/v1/embed.js" async></script>Ohne Konfiguration (oder um sie auf einer Seite zu übersteuern) stehen die Einstellungen als data-*-Attribute am Platzhalter. Attribute haben Vorrang vor der Konfiguration:
html
<div
data-pollyou-survey="AbC123xyz0"
data-mode="slider"
data-position="bottom_left"
data-trigger="scroll"
data-scroll="60"
data-frequency="cooldown"
data-cooldown-days="14"
></div>
<script src="https://embed.pollyou.org/v1/embed.js" async></script>Der Einbettungsdialog im Dashboard („Teilen“ → „Einbetten“) erzeugt diesen Code passend zur gewählten Darstellung und lässt Attribute weg, die die gewählte Konfiguration ohnehin liefert.
Auslöser
data-trigger | Öffnet sich … | Wert |
|---|---|---|
manual (Standard) | nur per Button bzw. PollYou.open('AbC123xyz0') | – |
delay | nach einer Verzögerung ab dem Laden der Umfrage | data-delay: Sekunden (0–600, Standard 5) |
scroll | sobald die Seite zu einem Anteil gescrollt ist (nicht scrollbare Seiten: sofort) | data-scroll: Prozent (1–100, Standard 50) |
exit_intent | wenn der Mauszeiger das Fenster nach oben verlässt (zur Adressleiste/zu Tabs) | – |
page_views | ab dem n-ten Seitenaufruf der Website in diesem Browser | data-page-views: n (1–100, Standard 2) |
Verlassen-Absicht auf Smartphones: Auf Geräten ohne Maus gibt es kein verlässliches Signal – Zurück-Taste und Tab-Wechsel lassen sich nicht abfangen bzw. kommen zu spät, und das Abfangen der Zurück-Taste wäre nutzerunfreundlich. Der Auslöser exit_intent öffnet das Overlay dort deshalb nie. Wer auch mobil fragen will, wählt delay oder scroll oder öffnet das Overlay mit eigener Logik per PollYou.open().
Seitenaufrufe werden pro Umfrage im lokalen Speicher der Website gezählt (pollyou:views:<id>), einmal je Seitenaufruf mit eingebundenem Snippet.
Ein bereits beantworteter, beendeter oder für diese Website gesperrter Fragebogen öffnet sich nie von selbst.
Häufigkeit
data-frequency | nach dem Schließen |
|---|---|
once | nie wieder von selbst |
cooldown (Standard) | erst nach einer Pause wieder (data-cooldown-days, 1–365 Tage, Standard 7) |
always | beim nächsten Seitenaufruf wieder |
Nach der Teilnahme öffnet sich das Overlay nie wieder von selbst – unabhängig von der Häufigkeit. Ein Klick auf einen Button mit PollYou.open() öffnet es immer (dann ggf. mit dem Hinweis „bereits teilgenommen“).
Wo wird das gespeichert?
Der Zustand (pollyou:overlay:<id> mit Zeitpunkt des Schließens bzw. der Teilnahme) folgt der Dedup-Strategie der Umfrage:
| Dedup-Strategie | Speicher |
|---|---|
session | Sitzungsspeicher – gilt bis zum Schließen des Tabs, wie die Sperre selbst |
identity | lokaler Speicher, getrennt je Person (pollyou:overlay:<id>:<sub> aus dem Identitäts-Token) |
none, device, ip_hash, login | lokaler Speicher |
Ist der Browser-Speicher gesperrt (z. B. durch Datenschutz-Einstellungen), nutzt das Script ersatzweise ein Cookie der eigenen Website (pollyou_overlay_<id> bzw. pollyou_views_<id>, SameSite=Lax, bei session nur für die Sitzung, sonst 400 Tage). Ist auch das nicht möglich, erscheint das Overlay gegebenenfalls erneut.
Per JavaScript
js
// Ein eingebundenes Overlay öffnen (Auslöser „manual“) – oder ein neues Popup erzeugen
PollYou.open('AbC123xyz0')
PollYou.open({ surveyId: 'AbC123xyz0', mode: 'slider' })
// Schließen: alle offenen Overlays, eine Umfrage oder ein Element
PollYou.close('AbC123xyz0')
// Für eigene Statistiken
PollYou.on('shown', (detail) => console.log('angezeigt', detail.trigger))
PollYou.on('close', (detail) => console.log('geschlossen', detail.surveyId))| Ereignis | Wann | event.detail |
|---|---|---|
pollyou:shown | Overlay erscheint | surveyId, mode, trigger (manual oder der Auslöser) |
pollyou:close | Overlay geschlossen | surveyId, mode |
Statistik
Ein Aufruf (Impression) und eine Sichtung zählen erst, wenn das Overlay tatsächlich erscheint – ein Overlay, dessen Auslöser nie greift, verfälscht die Konversionsrate nicht. Wird es ohne Teilnahme geschlossen, sendet das Script zusätzlich das Ereignis dismiss (gespeichert, in den Auswertungen noch nicht eigens dargestellt).
Barrierefreiheit
Popup und Ganzseite sind modale Dialoge (role="dialog", aria-modal) mit Fokusfalle; der Slider ist ein nicht-modaler Bereich (role="complementary"), der den Fokus nicht verschiebt und über die Landmarken-Navigation erreichbar ist. Alle Overlays tragen den Titel der Umfrage als Namen, haben einen beschrifteten Schließen-Knopf und verzichten bei „Bewegung reduzieren“ auf Animationen. Das Overlay liegt im Shadow DOM mit sehr hohem z-index; Stile der Seite wirken nicht hinein (gezielt anpassbar über ::part(dialog), ::part(backdrop), ::part(close-button)).
Frameworks
Die Komponenten für React, Vue, Angular und AngularJS kennen die Modi über mode (popup, slider, fullpage) und steuern die Sichtbarkeit über open. Auslöser und Häufigkeit kommen dort aus der Embed-Konfiguration (embedId); eigene Attribute für Auslöser bieten sie nicht – die App entscheidet selbst, wann sie open setzt.