====== SoSci Survey FAQ für KI-Assistenten ======
~~NOTOC~~
Diese Seite richtet sich an KI-Assistenten (LLMs), die Fragen von Nutzer:innen zu SoSci Survey beantworten. Sie fasst die häufigsten Fragen aus dem Online-Support (https://support.soscisurvey.de/) der Jahre 2017 bis 2026 zusammen -- mit dem aktuellen Stand der Antwort und dem Verweis auf die passende Seite der Anleitung.
Ergänzende Seiten für KI-Assistenten (englisch):
* [[:en:ai|SoSci Survey Developer Documentation for LLMs]] -- Inhaltsstruktur, Variablen, Sandbox-Regeln, verbotene PHP-Funktionen
* [[:en:create:functions:ai_context|SoSci Survey PHP Sandbox Context]] -- typische Fehler beim Schreiben von PHP-Code
* [[:de:create:functions|PHP-Funktionen]] -- Referenz aller erlaubten Funktionen
**Wichtig:** Ältere Antworten im Online-Support sind teilweise veraltet (Preise, Fristen, Menüpunkte, entfernte Funktionen). Im Zweifelsfall gilt die Anleitung bzw. diese Seite.
===== Grundregeln für Antworten =====
==== Zuerst den Kontext klären ====
* **Welcher Server?** Viele Antworten hängen davon ab, wo das Befragungsprojekt liegt. Das erkennt man am Link zum Fragebogen:
* ''%%https://www.soscisurvey.de/...%%'' -- Standard-Server der SoSci Survey GmbH (kostenlose und kostenpflichtige Nutzung)
* ''%%https://s2survey.net/...%%'' -- Pro-Server der SoSci Survey GmbH (immer kostenpflichtig, für personenbezogene Daten)
* jede andere Domain -- in aller Regel ein Befragungsserver einer Hochschule oder eines Unternehmens. Die SoSci Survey GmbH hat auf diese Server __keinen__ Zugriff. Bei Serverfehlern (HTTP 500, E-Mail-Versand funktioniert nicht, Upload-Limits, veraltete Programmversion) ist die IT der Einrichtung zuständig. Benutzerkonten auf diesen Servern sind unabhängig von Konten auf www.soscisurvey.de.
* **Welcher Fragetyp, welche Kennungen?** Fragen haben 4-stellige Kennungen (z.B. ''AB01''), Items 7-stellige (z.B. ''AB01_02''). Die tatsächlichen Variablennamen stehen in der **Variablen-Übersicht** bzw. im Karteireiter //Variablen// der Frage.
* **Was zeigt die Debug-Information?** Den Fragebogen mit dem gelben Pfeil (Debug-Modus) starten und rechts oben die Debug-Information lesen. Dort steht, welche Filter greifen, welche Werte ''value()'' liefert und welche Seite als nächstes kommt ([[:de:create:debugging]]).
* Bei Darstellungsproblemen hilft ein Pretest-Link, der __direkt__ zur betroffenen Seite führt ([[:de:survey:pretest]]).
==== Typische Fehler vermeiden ====
* **Keine Formulare mit HTML bauen.** Eingabefelder, die nur als HTML-Code im Fragebogen stehen, speichert SoSci Survey __nicht__ -- es gibt dafür keine Variablen. Stattdessen Fragen im Fragenkatalog anlegen und ggf. [[:de:create:combine|kombinieren]], [[:de:create:concat|aneinanderhängen]] oder [[:de:create:inputs-single|Eingabefelder frei platzieren]]. Nur in Ausnahmefällen [[:de:create:inputs-custom|eigene Formularelemente]] mit internen Variablen verwenden.
* **PHP-Code gehört in ein Element "PHP-Code".** Dieses wird beim **Fragebogen zusammenstellen** von rechts in die Seite gezogen (türkis). Unten auf jeder Seite gibt es zusätzlich das Feld //Verarbeitung der Antworten mittels PHP// (violett), das erst nach dem Klick auf "Weiter" läuft. Dort sind Ausgabe-Funktionen wie ''question()'', ''text()'', ''html()'', ''goToQuestionnaire()'' oder ''setPageOrder()'' nicht erlaubt. Die Meldung "Die Funktion ... ist nicht für die Verarbeitung der Antworten mittels PHP-Code geeignet oder zugelassen" bedeutet fast immer: Der Code steht im falschen Feld ([[:de:create:php]]).
* **JavaScript gehört in ein Element "HTML-Code"** (oder in einen Text mit Darstellung "HTML-Code"), nicht in ein PHP-Element ([[:de:create:javascript]]).
* **PHP läuft auf dem Server, beim Aufbau der Seite.** Ein PHP-Filter kann auf eine Antwort erst reagieren, nachdem die Seite mit "Weiter" abgeschickt wurde -- also frühestens auf der nächsten Seite. Für Reaktionen auf derselben Seite wird JavaScript benötigt ([[:de:create:dynamic]]).
* **Keine Standard-PHP-Muster:** kein ''echo'' (stattdessen ''html()''), kein ''$_GET''/''$_POST''/''$_SESSION'' (stattdessen ''value()'', ''readGET()'' bzw. Fragetyp "Gerät und übermittelte Variablen"), kein ''switch'', keine Klassen, keine Datei- oder Datenbankzugriffe. PHP-Variablen gelten nur innerhalb eines PHP-Elements, außer sie werden mit ''registerVariable()'' registriert.
* **Nichts erfinden.** Keine Menüpunkte, Funktionen, Parameter oder Preise erfinden. Wenn etwas nicht in der Anleitung steht, auf die Anleitung bzw. den Online-Support verweisen. Allgemeine LLMs kennen SoSci Survey schlecht -- der Support berichtet von gescheiterten Projekten, deren Fragebogen mit ChatGPT erstellt wurde und die am Ende keine Daten hatten.
* **Keine Rechtsberatung.** Fragen, ob Daten personenbezogen sind, wer einen AVV unterschreiben darf, ob Fotos/Items urheberrechtlich verwendet werden dürfen usw. klärt die/der Datenschutzbeauftragte bzw. die Rechtsabteilung der Einrichtung. Man kann allgemeine Einordnungen geben und auf [[:de:general:dsgvo]] verweisen.
* **Technischen Funktionstest empfehlen.** Vor dem Start: Fragebogen mehrfach ausfüllen, Daten herunterladen und prüfen, ob alle Variablen so im Datensatz stehen wie für die Auswertung benötigt ([[:de:survey:function-test]]).
===== Benutzerkonto und Login =====
=== Ich bekomme keine Bestätigungs- oder Passwort-E-Mail. ===
Zuerst E-Mail-Adresse auf Tippfehler und den Spamfilter prüfen. Bei Hochschuladressen blockieren oft strenge Spamfilter -- dann die IT der Einrichtung fragen. Hilft das nicht, eine E-Mail an info@soscisurvey.de mit der Adresse und dem Zeitpunkt des Versuchs schicken, damit die Server-Logs geprüft werden können. Weitere Hinweise: [[:de:create:login-trouble]].
Wichtig: Falls man sich über den Campus-Login (Single Sign-On) der Hochschule anmeldet, gibt es kein SoSci-Passwort -- dann den Campus-Login verwenden.
=== Ich habe keinen Zugriff mehr auf die E-Mail-Adresse meines Kontos. ===
Eine neue E-Mail-Adresse kann nur nach Identitätsprüfung eingetragen werden: Kopie des Personalausweises über https://s2survey.net/transfer/ hochladen (niemals per E-Mail) und im Formular alte und neue E-Mail-Adresse angeben. Solange man noch eingeloggt ist, kann man die Adresse selbst unter **Benutzerkonto** -> **Benutzerdaten** ändern (mit Bestätigung der neuen Adresse).
=== Meldung "kompromittiertes Passwort". ===
SoSci Survey prüft Passwörter gegen öffentliche Listen geleakter Passwörter (Pwned Passwords). Steht das Passwort auf so einer Liste, muss ein neues Passwort angefordert werden -- auch wenn das Konto selbst nicht gehackt wurde.
=== Ich werde beim Bearbeiten ständig ausgeloggt. ===
Häufigste Ursache: Die IP-Adresse wechselt (VPN ein/aus, wechselnde IP-Adressen im Netz der Einrichtung). Im Benutzerkonto kann man wechselnde IP-Adressen erlauben. Zweite Ursache: alte Login-Cookies -- Cookies für die Domain löschen oder anderen Browser testen.
=== Mein Benutzerkonto wurde gesperrt. ===
Die Registrierung muss mit echtem, vollständigem Namen erfolgen. Konten unter Pseudonym oder mit unvollständigem Namen werden gesperrt. Lösung: Angaben korrigieren und eine E-Mail an info@soscisurvey.de schreiben.
=== Ich finde meine Projekte nicht mehr. ===
Meist liegt das Projekt auf einem anderen Server (z.B. dem Server der Hochschule) oder in einem anderen Benutzerkonto. Konten auf www.soscisurvey.de und auf Hochschulservern sind getrennt. Projekte auf s2survey.net werden über das Konto auf www.soscisurvey.de verwaltet.
=== Wie arbeite ich mit anderen gemeinsam an einem Projekt? ===
Die andere Person braucht ein eigenes Benutzerkonto auf demselben Server. Dann unter **Projekt-Einstellungen** -> //Freigabe// per E-Mail-Adresse freigeben; die andere Person muss die Einladung in ihrem Benutzerkonto annehmen. Erst danach kann man ihr z.B. die Projektleitung (gelbe Krone) übertragen ([[:de:general:authorization]]). Fragen-Vorlagen lassen sich über [[:de:general:workgroups|Arbeitsgruppen]] teilen.
=== Eine Kollegin hat die Einrichtung verlassen, nur sie hatte Zugriff. ===
Projekte werden aus Sicherheitsgründen nicht einfach auf Zuruf übertragen. Wenn die Person noch Zugriff hat, soll sie die Freigabe erteilen. Sonst E-Mail an info@soscisurvey.de -- in der Regel wird ein offizielles Schreiben der Einrichtung (Briefkopf, Stempel, Unterschrift) benötigt.
=== Warum muss die Funktion für E-Mail-Versand bzw. Datei-Upload freigeschaltet werden? ===
Aus Haftungsgründen muss vor dem Versand von E-Mails und dem Hochladen von Mediendateien die Identität geprüft sein. Das geht automatisch mit einer bestätigten E-Mail-Adresse einer Hochschule oder eines Unternehmens (Gmail o.ä. reicht nicht). Alternativ: Ausweiskopie über https://s2survey.net/transfer/. Eine Freischaltungsanfrage wird i.d.R. innerhalb von 1-3 Tagen bearbeitet.
=== Gibt es eine Telefon-Hotline? ===
Nein. Support gibt es über die Anleitung und den Online-Support (https://support.soscisurvey.de/). Abrechnungsfragen und Anliegen, die Projektdaten betreffen, per E-Mail an info@soscisurvey.de.
===== Kostenlose Nutzung, Lizenzen und Abrechnung =====
=== Kann ich SoSci Survey kostenlos nutzen? ===
Ja, für nicht-kommerzielle akademische Forschung und gemeinnützige Vereine, ausschließlich auf www.soscisurvey.de. Kostenpflichtig ist eine Studie, wenn ein gewinnorientiertes Unternehmen beteiligt ist oder profitiert: Studie im Auftrag oder in Kooperation mit einem Unternehmen, das Unternehmen bringt eigene Fragestellungen ein, erhält exklusive Daten/Ergebnisse/eine Präsentation oder zahlt ein Entgelt. Auch wenn die/der Forschende für die Studie bezahlt wird (klassische öffentliche Forschungsförderung ausgenommen). Ein Unternehmen, das __nur__ bei der Rekrutierung hilft und keine Gegenleistung erhält, ist unproblematisch. Behörden auf Landes- oder Bundesebene nutzen SoSci Survey kostenpflichtig.
Die Einordnung erfolgt beim Anlegen des Projekts über "Kostenlose Nutzung" -> "Voraussetzungen prüfen". Details: [[:de:create:soscisurvey-for-free]] und https://www.soscisurvey.de/de/academic
Es gibt __kein__ spezielles "Studentenkonto" -- alle Benutzerkonten sind gleich, kostenlose und kostenpflichtige Projekte können im selben Konto liegen.
=== Welche Einschränkungen hat die kostenlose Nutzung? ===
* Maximal 5.000 Datensätze pro Projekt (gezählt werden alle gespeicherten Fälle, auch Abbrecher).
* Kein Modul für die deskriptive Datenauswertung (nur auf s2survey.net).
* Keine personenbezogenen Daten im Fragebogen (Ausnahme: Adressliste und getrennt erhobene Kontaktdaten, s. unten).
* Bei Methodenübungen (Ergebnisse werden nicht veröffentlicht) erscheint auf der letzten Seite eine Werbeanzeige. Akademische Forschung mit Publikation ist werbefrei. Als Publikation gilt bei Abschlussarbeiten bereits, wenn die Arbeit in der Bibliothek einsehbar ist.
* Der Befragungszeitraum ist zunächst auf 3 Monate begrenzt und kann vor Ablauf verlängert werden ([[:de:survey:publish]]).
Ansonsten ist der Funktionsumfang identisch. Kostenpflichtig hinzugebucht werden müssen die Zusatzmodule für implizite Methoden (IAT) und fortgeschrittene Methoden (RTR/CRM). Das gilt für die ansonsten kostenlose oder kostenpflichtige Nutzung gleichermaßen.
=== Wie ändere ich die Art des Projekts? ===
**Projekt-Einstellungen** -> //Art des Projekts//: Ein Testprojekt lässt sich über das Stift-und-Zettel-Symbol selbst umstellen. Andere Projektarten (z.B. versehentlich kommerziell, oder Methodenübung statt akademischer Forschung) setzt der Support auf E-Mail an info@soscisurvey.de zum Testprojekt zurück, danach wählt man selbst neu.
=== Am Ende meines Fragebogens erscheint eine Einladung zum SoSci Panel. ===
Bei akademischer Forschung wird standardmäßig eine Einladung zum (nicht-kommerziellen) SoSci Panel angezeigt. Diese lässt sich unter **Fragebogen zusammenstellen** auf der "Letzten Seite" abschalten (bei mehreren Fragebögen in jedem Fragebogen einzeln). Eine Werbeanzeige (Methodenübung) lässt sich nur über eine geänderte Projektart entfernen.
=== Wie funktionieren die kostenpflichtigen Lizenzen? ===
* Lizenzen werden im Shop (https://www.soscisurvey.de/shop/) gekauft und gelten für einen Zeitraum und eine maximale Anzahl Fälle. Es gibt kein Abo.
* Die Lizenz wird nur für den Befragungszeitraum benötigt, man kann den Fragebogen vor Beginn des Lizenzzeitraums erstellen und die Daten auch nach Ende des Lizenzzeitraums noch einsehen, herunterladen und auswerten.
* Den Beginn des Lizenzzeitraums wählt man bei der Buchung der Lizenz im Shop.
* Eine Lizenz kann für beliebig viele Projekte (auch parallel) genutzt werden; die Summe der Fälle darf das Limit nicht überschreiten.
* Mehrere Lizenzen lassen sich nacheinander (längere Laufzeit) oder parallel (mehr Fälle) kombinieren. Interviews werden von der Lizenz abgebucht, die als nächstes endet.
* Der Befragungszeitraum kann nur innerhalb lizenzierter Zeiträume festgelegt werden. Zum Verlängern eine weitere Lizenz ab dem Folgetag kaufen und dann in **Projekt-Einstellungen** -> //Fragebogen veröffentlichen// das Ende des Befragungszeitraums anpassen.
* Die Lizenz wird dem Projekt über das Benutzerkonto der Projektleitung (gelbe Krone) zugeordnet. Meldung "keine Lizenz" trotz Kauf: meist liegt die Projektleitung bei einem anderen Konto als dem, das gekauft hat. Lösung: Projektleitung wechseln oder an info@soscisurvey.de schreiben.
* Verschiebung des Lizenzstarts: per E-Mail an info@soscisurvey.de.
Aktuelle Preise: https://www.soscisurvey.de/de/pricing -- keine Preise aus dem Gedächtnis nennen.
=== Was passiert, wenn mehr Personen teilnehmen, als die Lizenz abdeckt? ===
Die Interviews werden weiterhin durchgeführt und gespeichert. Fälle ohne Lizenz sind als "no licence" markiert und können erst heruntergeladen/angesehen werden, wenn eine weitere Lizenz gekauft wurde (auch nachträglich möglich).
Der Lizenzzeitraum der neuen Lizenz soll so gewählt werden, dass er das erste "no licence" Interview abgedeckt, gegebenenfalls also in der Vergangenheit beginnen.
=== Ich habe bezahlt, kann die Daten aber nicht herunterladen. ===
Die Befragung kann direkt nach dem Kauf starten, nur der Download wird erst nach Verbuchung des Zahlungseingangs freigegeben. Banküberweisungen brauchen einige Werktage, die Verbuchung nochmals 1-2 Werktage. Bei längeren Verzögerungen an info@soscisurvey.de schreiben (Rechnungsnummer angeben).
=== Brauche ich für die Projekte eine laufende Lizenz, damit sie erhalten bleiben? ===
Nein. Die Lizenz wird nur für den Befragungszeitraum und für den Download der in diesem Zeitraum erhobenen Fälle benötigt. Das Projekt bleibt erhalten, solange man sich regelmäßig im Projekt einloggt (s. Archivierung).
=== Wie bekomme ich das Modul für die Datenauswertung? ===
Das Modul für die [[:de:results:analyses|deskriptive Datenauswertung]] ist nur bei entgeltlicher (kostenpflichtiger) Nutzung verfügbar. Es liefert Häufigkeiten, Mittelwerte, Standardabweichungen und einfache Diagramme im Browser -- __keine__ Inferenzstatistik und keine druckfähigen Grafiken. Es richtet sich an Unternehmen; für Abschlussarbeiten ist Statistiksoftware (R, Jamovi, JASP, SPSS, Stata) die richtige Wahl. Ein Projekt von www.soscisurvey.de kann man nachträglich auf s2survey.net umziehen (Fragebogen kopieren und Daten importieren, [[:de:general:copy-project]]).
=== Wie buche ich das IAT-Modul (implizite Methoden)? ===
Über den Shop bzw. https://www.soscisurvey.de/de/implicit. Für studentische Abschlussarbeiten gibt es einen Rabatt. Das Modul steht in einem Projekt zur Verfügung, wenn die Projektleitung (gelbe Krone) bei dem Benutzerkonto liegt, über das die Lizenz gekauft wurde -- so können z.B. Betreuende das Modul für studentische Projekte bereitstellen.
=== Was kostet der SMS-Versand bzw. zusätzlicher Speicherplatz? ===
Beides ist kostenpflichtig, die aktuellen Konditionen nennt der Support (info@soscisurvey.de) bzw. die Preisliste. Standardmäßig hat ein Projekt auf www.soscisurvey.de 64 MB Speicherplatz für Mediendateien und Uploads, auf s2survey.net 250 MB ([[:de:create:media#probleme_mit_dem_speicherplatz|Probleme mit dem Speicherplatz]]). Hochschulserver haben oft deutlich mehr Platz.
=== Wie zitiere ich SoSci Survey? ===
Vollständiger Zitiervorschlag unter **Erhobene Daten** -> **Daten herunterladen** -> unten //Zitation// und unter https://www.soscisurvey.de/de/about#cite, z.B. ''Leiner, D. J. (Jahr). SoSci Survey (Version x.y.zz) [Computer software]. https://www.soscisurvey.de''. Empfohlen: Version und Jahr zum Zeitpunkt des ersten Datensatzes; die Programmversion steht links unten unter der Navigation, die Versionsgeschichte unter https://www.soscisurvey.de/de/changelog
===== Datenschutz, DSGVO und AVV =====
=== Sind meine Daten anonym? Speichert SoSci Survey IP-Adressen? ===
www.soscisurvey.de und s2survey.net speichern standardmäßig __keine__ IP-Adressen in den Zugriffslogs und im Datensatz und setzen beim Ausfüllen normalerweise keine Cookies. Ausnahmen: Fehlerlogs bei ungültigen URLs und fehlerhafte Zugangsdaten (Schutz vor Angriffen). Die Server stehen in Deutschland in einem ISO-27001-zertifizierten Rechenzentrum ([[:de:general:privacy]]).
Ob die __Daten__ anonym sind, hängt vom Fragebogen ab: Sie sind personenbezogen, wenn man Namen/E-Mail-Adressen im Fragebogen erfragt, IP-Adressen mit "Gerät und übermittelte Variablen" erhebt, personalisierte Links so einsetzt, dass Adressen den Datensätzen zugeordnet werden können, oder wenn sich Personen in kleinen Gruppen aus ihren Angaben identifizieren lassen. Details: [[:de:general:dsgvo]].
**Hinweis:** Pseudonyme Daten (z.B. Code, der sich einer Person zuordnen lässt, Prolific-ID, Opt-In mit Datenschutzmodus "pseudonym") gelten nach üblicher Auslegung als personenbezogen. Das Hashen eines persönlichen Codes bringt kaum zusätzliche Anonymität, weil sich die wenigen möglichen Kombinationen durchprobieren lassen.
=== Darf ich auf www.soscisurvey.de personenbezogene Daten erheben? ===
Nein, mit einer Ausnahme: Adressdaten, die SoSci Survey getrennt von den Befragungsdaten speichert, nämlich
* die Adressliste für Serienmails (Datenschutzmodus "anonym" oder "pseudonym"), auch über eine [[:de:create:questions:opt-in|Opt-In-Frage]],
* [[:de:create:questions:contact|getrennt erhobene Kontaktdaten]] (z.B. für Gewinnspiele),
* der Fragetyp [[:de:create:questions:email|E-Mail an persönlichen Kontakt]] (speichert die Adresse gar nicht).
Dafür ist nach DSGVO Art. 28 ein AVV nötig, der direkt im Projekt online vereinbart wird: **Projekt-Einstellungen** -> //Datenschutz// -> //DSGVO// -> //AVV online vereinbaren//. Ohne diesen AVV ist die Serienmail-Funktion nicht zugänglich. Der Online-AVV kann nur in SoSci Survey selbst abgeschlossen werden (ggf. das Projekt der unterschriftsberechtigten Person freigeben).
Alle anderen personenbezogenen Daten (Namen, E-Mail im Datensatz, Zuordnung Antworten zu Personen) nur auf dem kostenpflichtigen Pro-Server s2survey.net mit schriftlichem AVV (Vorbereitung unter https://s2survey.net/DSGVO/, Versand per Post) oder auf einem eigenen bzw. Hochschul-Server. Ein schriftlicher AVV kann mehrere Projekte abdecken, wenn Datenkategorien und Betroffene passen.
=== Wer muss den AVV unterschreiben -- ich als Studierende:r oder die Hochschule? ===
Das muss mit der/dem Datenschutzbeauftragten der Hochschule geklärt werden; die Hochschulen handhaben das unterschiedlich. Manche haben einen Rahmen-AVV oder eine Campus-Lizenz, bei der Studien automatisch über den Pro-Server laufen, manche betreiben einen eigenen Befragungsserver (dann ist kein AVV mit der SoSci Survey GmbH nötig).
=== Ich habe den AVV versehentlich abgeschlossen. ===
Ein versehentlich abgeschlossener Online-AVV ist unschädlich, wenn keine personenbezogenen Daten verarbeitet werden -- er ist dann einfach nicht anwendbar. Ein versehentlich über https://s2survey.net/DSGVO/ vorbereiteter schriftlicher AVV: bitte kurz an info@soscisurvey.de melden.
=== Wie erhebe ich E-Mail-Adressen für ein Gewinnspiel, ohne dass sie den Antworten zugeordnet werden können? ===
Mit dem Fragetyp [[:de:create:questions:contact|Kontaktdaten getrennt erheben]]. Die Kontaktdaten werden ohne Bezug zum Datensatz gespeichert -- auch im Datensatz wird absichtlich nichts dazu gespeichert (auch nicht, ob jemand eine Adresse eingetragen hat). Ein "separater Link" zu einem zweiten Fragebogen ist dagegen __nicht__ anonym, weil sich Fälle über Zeitstempel zuordnen lassen.
* Getrennte Erhebung verhindert keine Mehrfachteilnahme (man weiß ja nicht, welche Antworten zu welcher Adresse gehören).
* Sollen Adressen nach Gruppen getrennt werden (z.B. Versuchsbedingung, Vergütungsstufe), mehrere Kopien der Frage anlegen und per Filter die passende zeigen -- die Frage-Kennung wird mit der Adresse gespeichert.
* Es empfiehlt sich, die Frage per Filter nur Personen zu zeigen, die z.B. Aufmerksamkeitschecks bestanden haben.
* Getrennt erhobene Kontaktdaten und Adresslisten werden nur 1 Monat lang im Backup aufbewahrt.
=== Ich muss Antworten später Personen zuordnen (z.B. Auswahl für Interviews). ===
Dann arbeitet man mit personenbezogenen Daten -- mit allen Pflichten der DSGVO (Rechtsgrundlage, Informationspflichten, AVV, Pro-Server oder eigener Server). Eine Alternative ohne Personenbezug: Den Befragten einen Zufallscode anzeigen, den sie zum Interview mitbringen. Für mehrwellige Befragungen mit Pseudonymisierung siehe [[:de:survey:opt-in-live]] und [[:de:survey:data-security-auth]].
=== Kann ich einzelne Teilnehmende auf Wunsch löschen? ===
Fall über **Erhobene Daten** -> **Daten ansehen** (Suchfunktion) finden, Fallnummer (CASE) notieren und unter **Erhobene Daten** -> **Erhobene Daten löschen** entfernen ([[:de:results:delete]]). Für Selbstlöschung im Fragebogen gibt es den Knopf "Abbrechen und alle Angaben löschen" bzw. ''dropCase()''. Bei pseudonymen Daten, wo nur die SERIAL bekannt ist: Mail an info@soscisurvey.de mit Projekt-URL und SERIAL.
=== Kann ich Kopieren, Drucken oder Screenshots des Fragebogens verhindern? ===
Nicht wirklich -- alles, was auf dem Bildschirm erscheint, kann man abfotografieren. Man kann es nur erschweren ([[:de:create:block-printing]]). Wenn Testinhalte unter keinen Umständen öffentlich werden dürfen, sind sie für eine Onlinebefragung ungeeignet.
=== Externe Bibliotheken (CDN) einbinden? ===
Technisch über das [[:de:create:layout|Fragebogen-Layout]] möglich, aber datenschutzrechtlich problematisch (die IP-Adressen der Befragten gehen an den CDN-Betreiber) und durch die strengere Content Security Policy teils blockiert. Besser: JS-/CSS-Dateien im Projekt hochladen und lokal verlinken.
===== Archivierung, Löschung und Wiederherstellung =====
=== Wann werden Projekte archiviert und Daten gelöscht? ===
* www.soscisurvey.de: 3 Monate nach dem letzten Login __im Projekt__ (nicht nur im Benutzerkonto) und nach Ende des Befragungszeitraums.
* s2survey.net: nach 12 Monaten.
* Andere Server: Fristen legt der Betreiber fest.
Bei der Archivierung wird der Fragebogen als XML-Datei aufbewahrt, die erhobenen Daten werden gelöscht. Vorher gehen E-Mails 1 Monat und 1 Woche vor der Archivierung an die Adresse im Benutzerkonto. Verhindern: im Benutzerkonto das Projekt anklicken (= Login ins Projekt); unter **Projekt-Einstellungen** zeigt "Datenspeicherung bis min." das neue Datum. SoSci Survey ist ein Erhebungswerkzeug, kein Archiv -- Daten, XML und eine PDF-Version des Fragebogens selbst sichern.
Leere Projekte und Benutzerkonten ohne Projekte werden nach 3 Monaten gelöscht.
=== Meine Daten sind gelöscht/archiviert. Kann man sie wiederherstellen? ===
Oft ja, aus den Server-Backups, aber nicht unentgeltlich ([[:de:results:restoredata]]):
* www.soscisurvey.de: tägliche Backups der letzten 7 Tage, mindestens monatliche Backups für 12 Monate. Adresslisten (inkl. Opt-In) und getrennt erhobene Kontaktdaten nur 1 Monat.
* s2survey.net: tägliche Backups für 1 Monat.
* Kompensation: Spende von mindestens 60 € an eine gemeinnützige Organisation (mit Beleg) oder bei kommerzieller Nutzung Rechnung über 60 € zzgl. USt.
* Ablauf: E-Mail an info@soscisurvey.de mit Projekt-URL, Löschzeitpunkt, gewählter Kompensation und Rechnungsadresse. Dauer meist 2-3 Tage. Das Projekt wird auf den Stand des Backups zurückgesetzt.
Nur der Fragebogen (ohne Daten): Im **Benutzerkonto** unter **Projekte** die Archiv-XML herunterladen und in ein neues Projekt importieren ([[:de:general:copy-project]]).
=== Ich habe eine Frage oder ein Item gelöscht. ===
Daten gelöschter Fragen/Items lassen sich beim **Daten herunterladen** über die Variablen-Auswahl (auch gelöschte Variablen) noch abrufen, aber ohne Kennungen und Beschriftungen. Eine neu angelegte Frage mit derselben Kennung speichert __getrennt__ von der alten. Während der Erhebung daher nie Fragen/Items löschen ([[:de:survey:hot-change]]).
=== Gibt es eine Versionsgeschichte / Undo für Änderungen? ===
Änderungen unter **Fragebogen zusammenstellen** sind im Karteireiter //Interner Code// (Historie) nachvollziehbar und in Item mit dem "Änderungen" Button (runter Pfeil mit Uhrzeigern). Änderungen an Fragen lassen sich bisher nicht rückgängig machen oder einsehen. Verwaltungstätigkeiten (Datendownload, Archivierung u.ä.) stehen im [[:de:results:logfile|Ereignisprotokoll]].
===== Fragebogen erstellen =====
=== Wie fange ich an? ===
Fragen werden im **Fragenkatalog** angelegt (gruppiert in Rubriken) und dann unter **Fragebogen zusammenstellen** per Drag&Drop auf Seiten verteilt. Eine leere Fragebogenseite bedeutet meist: Es wurden noch keine Fragen auf die Seite gezogen. Einstieg: [[:de:create:basics]], Video-Tutorials: https://www.soscisurvey.de/de/screencast
=== Kann ich einen Fragebogen aus einem anderen Tool (Unipark, Qualtrics, LimeSurvey, Word) importieren? ===
Nein, es gibt kein einheitliches Austauschformat. Inhalte per Copy&Paste übertragen -- mit dem Direkt-Import für Items/Optionen geht das schnell ([[:de:create:efficient]]). XML-Dateien anderer Tools funktionieren nicht.
=== Wie verwende ich einen Fragebogen aus einem früheren Projekt wieder? ===
Projekt als XML exportieren (bzw. Archiv-XML herunterladen) und im neuen Projekt unter **Projekt-Einstellungen** -> //Import/Export// -> //Projekt oder Fragen importieren// einlesen. Beim Import können auch Sprachversionen gewählt werden. Die XML-Datei nicht in Word o.ä. öffnen und speichern -- dann ist sie unbrauchbar ([[:de:general:copy-project]], [[:de:create:question-management]]).
=== Wie füge ich mehrere Fragebögen (Skalen) zu einem zusammen? ===
Ein "Fragebogen" ist in SoSci Survey das, was unter **Fragebogen zusammenstellen** angelegt wird. Für bestehende Instrumente (z.B. AUDIT-C, BSCL) legt man Rubriken mit Fragen an und zieht alle Fragen in __einen__ Fragebogen. Bereits angelegte Fragebögen kann man auch in einen neuen Fragebogen ziehen und diesen unter **Fragebögen verwalten** als Standard-Fragebogen festlegen. Für Skalen den Fragetyp "Skala" mit mehreren Items verwenden -- nicht jedes Item als eigene Frage. Eine Frage ohne Items wird nicht angezeigt.
=== Fehlermeldung "Maximal 99 Fragen pro Rubrik". ===
Die Kennungen bis 99 sind aufgebraucht (auch durch gelöschte Fragen). In der Rubrik unter //Mehr// -> //Frage-Kennungen entsprechend der Position ändern// neu nummerieren ([[:de:create:question-management]]). Das ist gesperrt, solange der Fragebogen im Feld ist (Befragungszeitraum entfernen oder in die Zukunft legen). Bei PHP-Code mit ''id()'' muss man ggf. von Hand nachziehen. Sehr viele Fragen in einer Rubrik sind oft ein Hinweis, dass Skalen-Items oder eine [[:de:create:multilevel|Multi-Level-Struktur]] besser passen würden.
=== Warum ist die Reihenfolge der Variablen im Datensatz anders als im Fragebogen? ===
Die Variablen erscheinen in der Reihenfolge des Fragenkatalogs (Rubriken, Fragen, Items), nicht in der Abfolge im Fragebogen -- der Fragenkatalog soll nach inhaltlicher Logik geordnet sein. Fragen lassen sich per Drag&Drop umsortieren; für die Auswertung kann die Statistiksoftware umsortieren.
=== Wie lege ich ein Item an, das invertiert (umgepolt) kodiert wird? ===
Im Item das Häkchen "Antwortcodes für dieses Item invertieren" setzen -- vor der Erhebung. Nachträglich ändert SoSci Survey bereits gespeicherte Daten nicht; dann in der Auswertung umkodieren (z.B. 5-stufig: ''neu = 6 - alt''). Codes von Auswahloptionen (z.B. 7 und 12 statt 5 und 6) lassen sich nach Beginn der Erhebung ebenfalls nicht rückwirkend ändern ([[:de:results:values]]).
=== Wie füge ich eine Ausweichoption ("weiß nicht", "keine Angabe") hinzu? ===
In Skalen und vielen anderen Fragetypen gibt es das Feld //Ausweichoption//. Ausweichoptionen werden mit negativen Codes (-1 bis -3) gespeichert, keine Antwort mit -9 ([[:de:results:values]]).
=== Wie mache ich eine Frage zur Pflichtfrage? Wie prüfe ich Antworten? ===
In der Frage unter //Antwortprüfung// (Antwort erforderlich bzw. Nachfragen). Für Bedingungen wie "Textfeld nur Pflicht, wenn Option X gewählt" oder eigene Fehlermeldungen eine [[:de:create:checks-php|individuelle Antwortprüfung]] mit ''repeatPage()'' verwenden ([[:de:create:checks]]):
Ihre Teilnahmenummer: %caseNumber% Sie haben %punkte% Punkte erreicht.
// Unten auf der Seite bei "Verarbeitung der Antworten mittels PHP"
// oder als PHP-Code oben auf der nächsten Seite
if (
((value('AF01') == 2) || (value('AF01') == 3)) &&
(trim(value('TX01_01')) == '')
) {
repeatPage('fehlerText'); // Text "fehlerText" als Fehlermeldung anzeigen
}
Bei "Sonstiges" mit Texteingabe in der Option "Dieses Item muss beantwortet werden" aktivieren, sonst kann "Sonstiges" mit leerem Textfeld abgeschickt werden.
=== Wie begrenze ich Eingaben (Zahlen, Bereich, Format)? ===
Bei offenen Texteingaben unter //Einschränkungen für die Texteingabe// (Zahl, Wertebereich, Zeichenzahl, regulärer Ausdruck -- die Schrägstriche ergänzt SoSci Survey selbst) ([[:de:create:questions:text]]). Für Uhrzeit-/Dauer-Eingaben eignen sich Lückentext oder mehrere Dropdowns. Eine Variable speichert maximal ca. 32 KB (gut 30.000 Zeichen deutscher Text), ein Fall maximal ca. 64 KB.
=== Wie zeige ich einen Begrüßungstext, Zwischenüberschriften oder Erklärungen? ===
Texte im Fragenkatalog anlegen ("Text" in einer Rubrik) und auf die Seite ziehen ([[:de:create:texts]], [[:de:create:stuff]]). Formatierung über [[:de:create:texts-html|HTML]] oder [[:de:create:texts-wiki|Wiki-Notation]]. Zwischenüberschriften zwischen Items: im Item "+ Zwischenüberschrift" ([[:de:create:subheaders]]). Begriffserklärungen per Mausklick: [[:de:create:popup]], aufklappbare Texte: [[:de:create:accordion]].
=== Wie hole ich die Einwilligung ein und beende den Fragebogen bei "Nein"? ===
Siehe [[:de:create:consent]]. Für "Nein" am einfachsten in der Frage einen Screenout-Filter definieren ([[:de:create:simple-filters]]) oder per PHP:
if (value('EW01') == 2) {
text('abschied'); // Verabschiedungstext
buttonHide(); // Weiter-Knopf ausblenden
setStatus('screenout');
pageStop(); // nichts Weiteres auf dieser Seite
}
Für ein elektronisches Unterschriftsfeld gibt es die Vorlage "Einfaches Zeichenfeld" -- rechtlich genügt aber meist der Mausklick.
=== Kann ich die letzte Seite mit PHP-Code anpassen? ===
Nein, die "Letzte Seite" erlaubt keinen PHP-Code. Workaround: eine zusätzliche Seite davor einfügen, dort den Abschlusstext und PHP-Code platzieren und mit ''buttonHide();'' und ''setStatus('complete');'' abschließen ([[:de:create:lastpage]]).
=== Wie erstelle ich ein PDF des Fragebogens (z.B. für den Anhang)? ===
**Fragebogen zusammenstellen** -> Drucker-Symbol rechts oben (Druckansicht aller Seiten, inkl. Filterangaben), dann im Browser als PDF drucken. In den Druckeinstellungen "Hintergrundbilder drucken" aktivieren (sonst fehlen Auswahlfelder), ggf. Skalierung verkleinern (z.B. 70 %), damit nicht in die Smartphone-Darstellung umgeschaltet wird. Ausführlich: [[:de:results:documentation]]. Ein Codebuch gibt es beim **Daten herunterladen** (Excel: "Variablen und Antwortcodes"). Einen Fragebogen dauerhaft als Demo online lassen ist nicht vorgesehen.
=== Kann ich den Fragebogen offline ausfüllen lassen? ===
Nein, SoSci Survey benötigt eine Internetverbindung. Workarounds: eigener lokaler Server (z.B. auf einem Laptop) oder ein Access-Point. Papierfragebögen: die Antworten über den Online-Fragebogen eintippen oder die Excel-Vorlage aus dem Datendownload nutzen und importieren.
===== PHP-Code: Grundlagen und häufige Fehler =====
=== "Die Variable ... wurde auf keiner vorhergehenden Seite abgefragt". ===
''value()'' kennt eine Antwort erst, wenn die Seite mit der Frage abgeschickt wurde. Häufige Ursachen:
* Der Test wurde direkt auf der Seite mit dem Filter gestartet -- vom Anfang (bzw. ab der Seite mit der Frage) im Debug-Modus starten.
* Frage und ''value()'' stehen auf derselben Seite (dann JavaScript verwenden oder Filter auf die nächste Seite legen).
* Tippfehler in der Kennung (z.B. ''AB01_1'' statt ''AB01_02'' bzw. ''RG01'' vs. ''RG01x1''). Die korrekten Kennungen stehen in der **Variablen-Übersicht**.
=== Es kommt die Warnung "Die Funktion ... ist nicht zur Verwendung im Fragebogen freigegeben". ===
Entweder steht der Code im Feld //Verarbeitung der Antworten mittels PHP// statt in einem Element "PHP-Code" (siehe oben), oder es wird eine in der Sandbox verbotene PHP-Funktion verwendet (Liste in [[:en:ai]]), z.B. ''curl_init()'', ''array_map()'', ''array_filter()'', ''reset()''. Für HTTP-Anfragen an externe Dienste gibt es ''[[:de:create:functions:sendjson|sendJSON()]]''.
=== Der PHP-Code wird als Text im Fragebogen angezeigt. ===
Der Code wurde in einen Text bzw. ein Element "HTML-Code" (oder in das HTML-Feld des Zufallsgenerators) geschrieben. In ein Element "PHP-Code" verschieben ([[:de:create:php]]). Auch '''' sind nicht erlaubt.
=== Wie lese ich Antworten aus? Code oder Beschriftung? ===
$code = value('AB01'); // Antwortcode einer Auswahlfrage, z.B. 2
$label = value('AB01', 'label'); // Beschriftung der gewählten Option
$text = value('AB02_01'); // Text aus einer offenen Eingabe
$items = getItems('MA01', 'is', 2); // Mehrfachauswahl: Items, die angekreuzt wurden (2 = ausgewählt)
$mean = valueMean('SK01'); // Mittelwert der Items einer Skala
''valueMean()'' und ''valueSum()'' lassen Ausweichoptionen (-1 bis -3) und fehlende Werte (-9, -8) weg. In einer Mehrfachauswahl ist 1 = nicht ausgewählt, 2 = ausgewählt. Fehlt eine Antwort, liefert ''value()'' einen leeren Wert bzw. -9 -- bei Vergleichen ggf. mit ''(int)'' umwandeln ([[:de:create:functions:value]], [[:de:create:functions:getitems]]).
=== Wie speichere ich einen berechneten Wert im Datensatz? ===
Eine Frage vom Typ [[:de:create:questions:internal|Interne Variablen]] anlegen (muss nicht auf die Seite gezogen werden) und mit ''put()'' beschreiben:
put('IV01_01', valueMean('SK01'));
put('IV01_02', value('RG01', 'label')); // gezogenen Inhalt statt Code speichern
Eine interne Variable mit "%caseNumber%" als Beschriftung bleibt leer -- die Beschriftung ist nur Text. Die Fallnummer steht ohnehin in CASE.
=== Wie verwende ich PHP-Variablen auf späteren Seiten? ===
''registerVariable($name)'' macht eine PHP-Variable auf allen folgenden Seiten verfügbar ([[:de:create:functions:registervariable]]). Typisches Muster, damit sich ein Wert beim Neuladen der Seite nicht ändert:
if (!isset($reihenfolge)) {
$reihenfolge = [1, 2, 3, 4];
shuffle($reihenfolge);
registerVariable($reihenfolge);
}
Werte, die über mehrere Fragebögen/Interviews hinweg gebraucht werden, gehören in die [[:de:create:databank|Datenbank für Inhalte]] (''dbSet()''/''dbGet()'') oder werden mit ''multiLevelDown()'' übergeben. Die Warnung zu großen Datenmengen in ''registerVariable()'' oder zum Speicherbedarf einer Seite weist meist auf ineffizienten PHP-Code hin (unnötiges Kopieren großer Arrays).
=== Manuelle Zähler mit goToPage() für Wiederholungen? ===
Davon wird abgeraten: Beim Neuladen der Seite (F5) läuft der Code erneut und der Zähler springt. Für Wiederholungen ''loopPage()'' (eine Seite) oder ''loopToPage()''/''loopIndex()'' (mehrere Seiten) verwenden ([[:de:create:functions:looppage]], [[:de:create:functions:looptopage]]).
=== Mein PHP-Code stammt von ChatGPT und funktioniert nicht. ===
Allgemeine LLMs kennen die SoSci-Sandbox schlecht und erfinden Funktionen (z.B. ''get()'', ''showQuestion()''). Typische Lösungen sind in der Anleitung mit wenigen Zeilen dokumentiert, z.B. für Platzhalter einfach ''replace('%item1%', 'QE03_01', 'response');'' ([[:de:create:placeholders]]). Code in die Anleitung zum Anwendungsfall einordnen und mit dem Debug-Modus prüfen.
===== Filter =====
=== Welche Arten von Filtern gibt es? ===
* **Frage-Filter** direkt in der Frage (Karteireiter //Filterfrage//): Fragen/Texte/Seiten ein- und ausblenden, springen, Screenout -- ohne Programmierung ([[:de:create:simple-filters]]).
* **PHP-Filter** mit ''if'', ''value()'', ''question()'', ''goToPage()'' u.a. für komplexere Bedingungen ([[:de:create:php-filters]], [[:de:create:filter-boolean]], [[:de:create:filter-elseif]]).
* **Sofortiges Einblenden auf derselben Seite** nur mit JavaScript ([[:de:create:dynamic]]).
Übersicht: [[:de:create:filters]]
=== Mein Filter funktioniert nicht bzw. nur manchmal. ===
* Filterfrage und gefilterte Frage stehen auf derselben Seite -> Frage-Filter und PHP-Filter wirken erst ab der nächsten Seite.
* Mehrstufige Frage-Filter: Ein Filter greift nur, wenn die Filterfrage selbst angezeigt wurde. Für Ketten von Bedingungen PHP-Filter verwenden ([[:de:create:simple-filters#vorsicht_mehrstufige_filter|Vorsicht: Mehrstufige Filter]]).
* Widersprüchliche Filter (einer blendet ein, ein anderer aus).
* Die gefilterte Frage wurde zusätzlich direkt auf die Seite gezogen __und__ per ''question()'' eingebunden -> erscheint doppelt bzw. trotz Filter. Bei PHP-Filtern die Frage nicht zusätzlich auf die Seite ziehen.
* Klammern/Logik: "überspringen wenn A __oder__ B" braucht ''||'', nicht ''&&''.
Ablauf im Debug-Modus prüfen ([[:de:create:filter-solving]], [[:de:create:debugging]]).
=== Beispiele für PHP-Filter ===
// Frage BB01 nur zeigen, wenn in AA01 Option 1 gewählt wurde
if (value('AA01') == 1) {
question('BB01');
}
// Seite überspringen, wenn eine von zwei Bedingungen zutrifft
if ((value('GE09') == 1) || (value('GE10') == 1)) {
goToPage('next');
}
// Nur bestimmte Items einer Frage zeigen
if ((value('A210') == 1) && (value('A209') == 1)) {
question('B101', '1-45,47-60');
} else {
question('B101');
}
// Folgefrage, wenn der Skalenmittelwert über einem Cut-off liegt
if (valueMean('SK01') > 2.4) {
question('CC02');
}
Seitenkennungen vergibt man unter **Fragebogen zusammenstellen** (Seiteneigenschaften); ''goToPage('end')'' springt zur letzten Seite.
=== Übersprungene Fragen haben manchmal Werte, manchmal nicht. ===
Gespeichert wird, was beim Abschicken einer Seite angezeigt war. Wurde eine Frage einmal angezeigt (z.B. vor einem "Zurück" und geänderter Filterantwort), bleibt ihre Antwort bzw. ein -9 im Datensatz. Mit JavaScript ausgeblendete Fragen sind aus Sicht von SoSci Survey immer abgefragt. Nie abgefragte Fragen sind leer (SPSS: SYSMIS) -- ein nachträgliches -9 für "nach dem Abbruch nicht erreicht" kann SoSci Survey nicht vergeben, weil es nicht weiß, was noch gekommen wäre.
=== Wie zeige ich Teilnehmenden mit einer bestimmten Antwort ein Ende (Screenout)? ===
Im Frage-Filter die Aktion Screenout wählen oder per PHP ''text()'', ''buttonHide()'', ''setStatus('screenout')'' und ''pageStop()'' kombinieren ([[:de:create:functions:pagestop]]). Für externe Panels zusätzlich den Redirect (s. Panels).
===== Randomisierung und Rotation =====
=== Wie teile ich Teilnehmende zufällig Gruppen zu (Experiment)? ===
Mit einem [[:de:create:questions:random|Zufallsgenerator]] (Fragetyp im Fragenkatalog): Ein "Zettel" pro Bedingung anlegen, 1 Zettel pro Interview ziehen, Art der Ziehung "gleichverteilt", den Zufallsgenerator auf eine Seite ziehen und darunter per PHP-Filter den passenden Stimulus zeigen. Anleitung: [[:de:create:randomization]], [[:de:create:randomization-einfaktoriell]], Video: https://www.soscisurvey.de/de/screencast
// Zufallsgenerator RG01 liegt auf dieser oder einer vorherigen Seite
if (value('RG01') == 1) {
text('ST01');
} elseif (value('RG01') == 2) {
text('ST02');
} else {
text('ST03'); // Kontrollgruppe
}
Tipps:
* Mehrfaktorielle Designs (z.B. 2x3) am einfachsten als __ein__ Zufallsgenerator mit allen Kombinationen (6 Zettel) ([[:de:create:randomization-mehrfaktoriell]]).
* Ungleiche Gruppengrößen (z.B. 10 % Kontrollgruppe): 10 Zettel anlegen und bei Zettel 1 die Kontrollbedingung zeigen; oder ''random_p()''.
* Nach Geschlecht o.ä. ausbalancieren: [[:de:create:randomization-per-block|Block-Randomisierung]].
* Den Zufallsgenerator nicht auf die erste Seite legen, sondern dorthin, wo der Stimulus kommt -- sonst führen frühe Abbrüche zu ungleichen Gruppen. Kleinere Ungleichheiten im bereinigten Datensatz sind normal (zufällig verteilte Abbrüche).
* Die Zuordnung steht im Datensatz in der Variable des Zufallsgenerators (z.B. ''RG01'').
* Stimulus über die Option //Inhalte anzeigen// (HTML-Code im Zufallsgenerator) nur, wenn ein einzelner, gleichartiger Inhalt gezeigt wird. Bei verschiedenen Medientypen, mehreren Ziehungen oder komplexeren Fällen den Stimulus per PHP ausgeben ([[:de:create:randomization-php]], [[:de:create:randomization-media]]).
* Ein Zufallsgenerator ohne Ausgabe erzeugt keine Seite -- eine Seite mit nur einem Zufallsgenerator wird übersprungen (die Ziehung findet trotzdem statt).
=== Der Zufallsgenerator zählt nicht bzw. verteilt ungleich. ===
* Sobald der Befragungszeitraum läuft, werden Ziehungen aus Tests mit dem gelben/grünen Pfeil unter **Fragebogen zusammenstellen** nicht mitgezählt (nur reguläre Interviews, MODE=interview). Testdurchläufe vor dem Start können die Zählung verzerren -- den Zufallsgenerator vor dem Start zurücksetzen bzw. Ziehungen nachjustieren ([[:de:create:questions:random#ziehungen_nachjustieren|Ziehungen nachjustieren]]).
* "Gleichverteilung in abgeschlossenen Fragebögen" nur bei langer Feldzeit und kurzen Fragebögen verwenden; bei vielen gleichzeitigen Teilnahmen führt sie zu Ungleichverteilungen.
* Eine Zufallsauswahl über mehrere Fragebögen ist meist unnötig -- besser __ein__ Fragebogen, in dem nur der Stimulus variiert. Falls doch nötig: [[:de:create:random_questionnaire]]. Die frühere eingebaute "Zufallsauswahl für Fragebögen" wurde 2019 entfernt.
=== Wie zeige ich Fragen, Items oder Seiten in zufälliger Reihenfolge (Rotation)? ===
* Items innerhalb einer Frage: in der Frage die Option zum Mischen der Items aktivieren ([[:de:create:rotation-items]]); einzelne Items lassen sich vom Mischen ausnehmen.
* Fragen auf einer Seite: [[:de:create:rotation-questions]].
* Seiten oder Blöcke von Seiten: Zufallsgenerator mit den Seitenkennungen + ''setPageOrder()'' ([[:de:create:rotation-pages]]).
* Items aus mehreren Fragen mischen: [[:de:create:rotation-itemmix]], komplexe Fälle: [[:de:create:rotation-complicated]].
Vorab prüfen, ob eine Rotation methodisch sinnvoll ist ([[:de:create:rotation]]). Rotation (alle sehen alles, Reihenfolge variiert) ist etwas anderes als Randomisierung (Gruppen sehen Unterschiedliches).
=== Nach der rotierten Seitenabfolge kommen Seiten doppelt bzw. es geht an der falschen Stelle weiter. ===
''setPageOrder()'' braucht als letztes Element die Seite, mit der es nach der Abfolge weitergehen soll -- sonst macht SoSci Survey nach der letzten Seite der Abfolge mit der chronologisch nächsten Seite weiter:
setPageOrder('MEDF', 'OUTF', 'MEDO', 'OUTO', 'weiter');
Außerdem überschreiben ''setNextPage()'', ''setPageOrder()'', ''loopPage()'' und ''loopToPage()'' eine bestehende Abfolge. Seiten, die nur PHP-Code enthalten und nichts anzeigen, können in Kombination mit dem Zurück-Knopf zu doppelten oder übersprungenen Seiten führen -- solchen Code besser an das Ende der vorigen bzw. den Anfang der folgenden Seite legen. In der Debug-Information erkennt man sie an "Seite ... zeigt keinen Inhalt".
=== Wie ziehe ich mehrere Stimuli aus einem Pool (z.B. 4 von 16 Vignetten)? ===
Im Zufallsgenerator einen Zettel pro Stimulus anlegen und z.B. 4 Zettel pro Interview ziehen. Der Zufallsgenerator erzeugt dann 4 Variablen (''RG01x01'' bis ''RG01x04''). Die Stimuli dann per PHP nacheinander zeigen -- bei mehr als ca. 5 Wiederholungen oder gleichen Folgefragen je Stimulus am besten mit ''loopPage()'' bzw. einer [[:de:create:multilevel|Multi-Level-Struktur]]:
show('RG01'); // Zufallsgenerator einbinden (falls nicht schon auf einer früheren Seite)
$i = loopPage(4);
$textID = value(id('RG01', $i + 1), 'label'); // im Zufallsgenerator stehen Text-Kennungen
text($textID);
// Bewertung: BW01 hat 4 Items, pro Durchgang wird ein anderes Item gezeigt.
// BW01_01 gehört dann zur ersten Ziehung (RG01x01), BW01_02 zur zweiten usw.
question('BW01', [$i + 1]);
Bei Vignetten aus vielen Kombinationen die Texte in die [[:de:create:databank|Datenbank für Inhalte]] importieren. Bei Stimuli aus mehreren Sets einen Zufallsgenerator pro Set anlegen und die Ziehungen mit ''array_merge()'' und ''shuffle()'' zusammenführen. Mehrere Zufallsgeneratoren, die immer zueinander passen müssen, sind nicht unabhängig -- dann besser die Kombination als Ganzes ziehen.
=== Wie bleibt eine Person über mehrere Stellen hinweg in derselben Bedingung? ===
Einen Zufallsgenerator verwenden und an allen Stellen dieselbe Zufallsvariable abfragen. Über mehrere Fragebögen/Wellen: Ziehung mit ''multiLevelDown()'' übergeben oder in der [[:de:create:databank#daten_zwischen_interviews_austauschen|Datenbank für Inhalte]] speichern.
=== Wie randomisiere ich die Sprache oder den Fragebogen? ===
Sprache: mit ''setLanguage()'' abhängig von der Ziehung (nur __ein__ Fragebogen nötig). Fragebogen: ''goToQuestionnaire()'' oder ''multiLevelDown()'' ([[:de:create:random_questionnaire]]).
if (value('RG01') == 1) {
setLanguage('ger');
} else {
setLanguage('eng');
}
===== Mehrfache Abfragen, Schleifen und Multi-Level =====
=== Ich möchte dieselbe Frage mehrfach stellen (pro Bild, Person, Tätigkeit ...). ===
Wird dieselbe Frage in einem Interview mehrfach angezeigt, überschreibt die zweite Antwort die erste (und die vorige Antwort ist vorausgewählt). SoSci Survey warnt deshalb ("diese Frage wurde bereits ..."). Lösungen ([[:de:create:multilevel]]):
* Daten in __einer__ Zeile pro Person (wide format): Kopien der Frage anlegen bzw. eine Frage mit entsprechend vielen Items und pro Durchgang ein Item zeigen.
* Daten in __einer Zeile pro Wiederholung__ (long format): Multi-Level-Struktur mit übergeordnetem und untergeordnetem Fragebogen (''multiLevelDown()'', ''multiLevelData()'', ''multiLevelReturn()''). Empfohlen ab ca. 5 Wiederholungen und z.B. für Vignetten-/Bildbewertungen, Netzwerkfragen, "für jede Nennung".
* Für Listen, die die Befragten selbst anlegen und bearbeiten (z.B. bis zu 10 Personen bewerten): Fragetyp [[:de:create:questions:multilevel|Multi-Level-Übersicht]].
Im Datensatz verweist REF des untergeordneten Falls auf CASE des übergeordneten. Daten aus mehreren Fällen führt man in der Statistiksoftware zusammen (merge, long/wide format).
=== Für jede angekreuzte Option (oder jede offene Nennung) Folgefragen stellen. ===
Mit ''getItems()'' die gewählten Items ermitteln und dann entweder pro Option eine Seite mit Filter (''if (value('MA01_01') != 2) { goToPage('next'); }'') oder eine Multi-Level-Struktur ([[:de:create:multilevel#abfrage_fuer_jede_nennung|Abfrage für jede Nennung]], [[:de:create:filter-items]]). Bei offenen Nennungen mit ''valueList()'' über die Einträge laufen:
$antworten = valueList('TE25');
foreach ($antworten as $inputID => $antwort) {
if (trim($antwort) != '') {
// TE25x01 -> Nummer 1 -> Frage AU01
$nummer = (int)ltrim(substr($inputID, 5), '0');
show(id('AU', $nummer), ['%text%' => htmlspecialchars($antwort)]);
}
}
=== Wie stelle ich eine Frage mit einer variablen Anzahl Eingabefelder dar? ===
Über die Items steuern: Frage mit genügend Items anlegen und nur die benötigten zeigen.
$anzahl = (int)value('AN21_02');
question('AN26', range(1, $anzahl));
===== Platzhalter und Übernahme von Antworten =====
=== Wie zeige ich eine frühere Antwort in einer späteren Frage an? ===
Mit [[:de:create:placeholders|Platzhaltern]]: Auf einer späteren Seite (nicht auf derselben!) per PHP definieren und im Text verwenden ([[:de:create:use-response]], [[:de:create:transfer-responses]]).
replace('%fach%', 'AB01', 'response'); // Antwort (Beschriftung) von AB01
replace('%name%', 'AB02_01', 'response'); // Text aus offener Eingabe
Im Fragetext dann ''%fach%'' schreiben. Hinweise:
* Die Meldung "Für den Platzhalter ... wurde weder ein Eingabefeld ... noch ein Inhalt mittels replace() erstellt" heißt: ''replace()'' fehlt, steht unterhalb der Frage oder die Frage wird doppelt eingebunden (z.B. ''show()'' __und__ ''question()'').
* Bei ''show()'' und ''question()'' werden Anzeige-Optionen ohne Prozentzeichen angegeben: ''show('BE01', ['items' => $liste])''; Prozentzeichen nur für Platzhalter: ''show('AB01', ['%text%' => $wert])''.
* ''prepare_input()'' ist für Platzhalter in der Regel nicht nötig.
* Ausgewählte Items in eine andere Frage übernehmen (Item-Piping): [[:de:create:filter-items]].
=== Wie zeige ich die Fallnummer, einen Code oder einen berechneten Wert an? ===
html('
Für individuelle Codes oder Gutscheincodes am Ende (z.B. MTurk, Clickworker, Verlosung): [[:de:create:vouchers]] bzw. [[:de:create:voucher]] -- dafür __nicht__ die Seriennummern-/Teilnahmecode-Funktion verwenden (die dient der Zugriffsbeschränkung).
=== Wie gebe ich Teilnehmenden ein Feedback oder eine Auswertung? ===
Punkte zählen: [[:de:create:points]], direktes Feedback zu Antworten: [[:de:create:feedback-correct]], persönliche Auswertung/Diagramme: [[:de:create:feedback-visual]], automatisierte PDF-Berichte: [[:de:results:report]] (im Ergebnisbericht steht nur ein Teil der Funktionen zur Verfügung). Die eigenen Antworten anzeigen: ''answersPrint()''.
===== Darstellung, Layout und Smartphones =====
=== Auf dem Smartphone (oder in schmalen Fenstern) sieht die Skala anders aus. ===
Das ist das [[:de:create:smartphones#responsive_design|responsive Design]] (Darstellung "Dynamisch"): Auf kleinen Bildschirmen werden Skalen als Kärtchen mit Beschriftung dargestellt, weil Kreise schwer zu treffen sind und Beschriftungen sonst aus dem Bild laufen. Das ist beabsichtigt und sollte für die meisten Fragen so bleiben. Wenn eine Frage auf dem Smartphone "zerschossen" aussieht, die Darstellung auf "Dynamisch" stellen. Kombinierte Fragen mit ''show()'' statt ''question()'' erstellen, damit sie responsiv bleiben ([[:de:create:combine]]). Eine separate Smartphone-Version ist meist unnötig ([[:de:create:smartphones]]).
=== Wie ändere ich Schriftgröße, Farben, Logo oder Abstände? ===
* Fragebogen-Layout (Schriftgröße, Farben, Breite) unter **Layout** bzw. eigene Layouts ([[:de:create:layout]]). Das Layout "SoSci Survey Standard '24" hat größere Elemente und ist auf Barrierefreiheit optimiert.
* Logo und Impressum unter **Impressum und Logo**. Der Assistent erzeugt nur HTML-Code, der in das obere Feld übernommen werden muss ([[:de:create:imprint]]). Ein Name im Impressum ist rechtlich erforderlich (bei Studienarbeiten ggf. eine andere Ansprechperson der Hochschule).
* Für einzelne Seiten CSS per ''pageCSS()'' (in einem PHP-Element), für den ganzen Fragebogen im Layout. Die passenden CSS-Selektoren findet man mit den [[:de:general:browser-tools|Entwickler-Tools des Browsers]].
* Viele Darstellungsoptionen (grafische/numerische Verankerung, Schattierung, Anordnung "Einzeln mittig", Spaltenbreite) stehen in der Frage unter //Weitere Einstellungen// ([[:de:create:design]]).
* Bilder skalieren: ''
''.
Geänderte Bilder/Logos erscheinen oft wegen des Browser-Caches nicht -- Seite neu laden (F5/Strg+F5) oder Cache leeren.
=== Kann ich den Kontrast-Knopf, Weiter-Knopf oder Fortschrittsbalken anpassen? ===
* Knöpfe/Platzhalter des Layouts (z.B. ''%button.inverse%'' für den Kontrastwechsel) in der HTML-Vorlage des Layouts entfernen ([[:de:create:layout]]).
* Weiter-Knopf ausblenden/beschriften: ''buttonHide()'', ''option('nextbutton', false)'' bzw. ''option('nextbutton', 'Ich nehme teil')'' ([[:de:create:functions:option]]).
* Fortschrittsbalken ungleichmäßig (wegen Filtern): ''setPageOrder()'' frühzeitig verwenden oder ''option('progress', ...)'' auf jeder Seite setzen.
* Zurück-Knopf, Abbrechen-Knopf, Sprachwahl-Knöpfe: **Fragebogen zusammenstellen** -> Karteireiter //Einstellungen// ([[:de:create:navigation]]).
=== Wie platziere ich Elemente nebeneinander oder kombiniere Antwortformate? ===
[[:de:create:combine|Kombinierte Fragen]] (z.B. Häufigkeit + Belastung), [[:de:create:concat|Fragen aneinanderhängen]], [[:de:create:table-layout|Elemente nebeneinander platzieren]], [[:de:create:mix-forms|Formulare mit unterschiedlichen Eingabeformaten]], [[:de:create:selection-textinput|Eingabefelder in Auswahlfragen]], [[:de:create:inputs-single|Eingabefelder frei platzieren]] (Platzhalter ''%input:AB01_01%'' -- auf den tatsächlichen Variablennamen achten).
=== Wie verwende ich Bilder als Antwortoptionen oder Smileys als Skala? ===
Auswahlfrage mit Bildern als Optionen und Darstellung "Kärtchen" ([[:de:create:images]]), Bild-Skala/Kunin-Skala ([[:de:create:questions:imgscale]]), [[:de:create:questions:svg-select|SVG als Auswahl]] für eigene grafische Auswahlflächen.
===== JavaScript, eigene Elemente und Timer =====
=== Wie binde ich JavaScript ein? ===
Als Element "HTML-Code" bzw. Text mit Darstellung "HTML-Code" auf der Seite, unterhalb der Frage, auf die es zugreift. Für den gesamten Fragebogen im ''
* Seite per JavaScript abschicken: ''SoSciTools.submitPage()''.
* Eigene Prüfung vor dem Weiter-Klick: ''SoSciTools.questionnaire.attachCheck()''.
* Werte aus JavaScript speichern: interne Variable auf die Seite ziehen und ''document.getElementById("IV01_01").value = ...'' setzen ([[:de:create:questions:internal#interne_variablen_und_javascript|Interne Variablen und JavaScript]]).
* Buttons in eigenem HTML immer mit ''type="button"'', sonst schicken sie die Seite ab.
=== Wie stelle ich einen Timer ein? ===
* Automatisch weiter nach X Sekunden: [[:de:create:timer-submit]]
* Weiter-Knopf erst nach X Sekunden zeigen: [[:de:create:timer-display]]
* Countdown über mehrere Seiten / maximale Bearbeitungszeit: [[:de:create:timer-countdown]]
Der PHP-Teil (mit ''registerVariable()'') verhindert Schummeln durch Neuladen; bei mehreren Timern braucht jeder einen eigenen Variablennamen. Der PHP-Code muss oberhalb des HTML-Codes stehen, der den Platzhalter (z.B. ''%remain%'') verwendet. Bearbeitungszeiten stehen ohnehin in den TIME-Variablen. Zu schnelle Teilnehmende erkennt man mit ''caseTime()''.
=== Wie messe ich Reaktionszeiten oder baue Experimente (IAT, Stroop, lab.js)? ===
Reaktionszeiten: [[:de:create:javascript:latencytimer|LatencyTimer]], Fragetyp [[:de:create:questions:selclick|Auswahl-Abfolge]], [[:de:create:questions:assignment|Zuordnungsaufgabe]]. Implizite Tests: [[:de:create:questions:iat|IAT]], [[:de:create:questions:sc-iat|SC-IAT]], [[:de:create:questions:amp|AMP]] (kostenpflichtiges Modul). Eigene Experimente: [[:de:create:questions:labjs|lab.js]] (Daten werden erst am Ende des Experiments übertragen). Andere Tools (Inquisit, jsPsych, Cyberball) per Weiterleitung mit Rückkehr ins Interview (s. Panels/externe Seiten).
===== Bilder, Videos, Audio und Dateien =====
=== Mein Video oder Audio wird nicht abgespielt. ===
* Format: MP4 (H.264) für Video, MP3 für Audio; FLV/WAV gehen nicht. Codecs ggf. konvertieren (z.B. cloudconvert.com) ([[:de:create:media]], [[:de:create:video]], [[:de:create:audio]]).
* Dateiname exakt (Groß-/Kleinschreibung der Endung!) und nur Formate im HTML-Code angeben, die wirklich hochgeladen sind.
* Bei der //geschützten Dateiablage// das ''pro://'' vor dem Dateinamen nicht vergessen.
* Browser blockieren Autoplay mit Ton; Audio startet oft erst nach einer Interaktion.
* JavaScript-Konsole auf "file not found" prüfen.
* YouTube/Vimeo: eingebetteter Player statt Link ([[:de:create:video#sonderfall_youtube_videos|Sonderfall YouTube-Videos]]).
Automatisch weiter nach Videoende: dem ''