Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:survey:opt-in-live [21.05.2015 13:31] – [Automatischer Versand von Einladungen] lena.neumeierde:survey:opt-in-live [01.02.2023 14:54] (aktuell) – [Position der Opt-In-Frage] impactofhomeoffice
Zeile 1: Zeile 1:
 ====== Mehrwellige Befragungen bei Selbstrekrutierung ====== ====== Mehrwellige Befragungen bei Selbstrekrutierung ======
  
-Für eine mehrwellige Befragung ist es i.d.R. notwendig, die E-Mail-Adressen der Teilnehmer zu kennen. Schließlich muss man die Befragten irgendwann zu einer späteren Befragungswelle einladen. Falls die Teilnehmer allerdings durch Links auf einer Website, in sozialen Medien oder via Werbebanner rekrutiert werden, sind deren E-Mail-Adressen vorab nicht bekannt. Dieses Kapitel erläutert technische Lösungen, welche die Anonymität der Befragten gewährleisten.+Möchte man für eine mehrwellige Befragung die [[:de:survey:mailing|Serienmail-Funktion]] verwendenso benötigt man eigentlich vorab die E-Mail-Adressen der Befragten. Schließlich muss man die Befragten irgendwann zu einer späteren Befragungswelle einladen.
  
-Die beiden Möglichkeiten unterscheiden sich darin, wann der Teilnehmer seine E-Mail-Adresse preisgeben muss: Entweder man fragt die Teilnehmer zu Beginn nach der E-Mail-Adresse oder am Schluss des ersten Fragebogens.+Falls die Teilnehmer allerdings durch Links auf einer Website, in sozialen Medien oder via Werbebanner rekrutiert werden, sind deren E-Mail-Adressen vorab nicht bekannt. Dieses Kapitel zeigt eine technisch Lösung, bei welcher die Befragten im ersten Fragebogen ihre E-Mail-Adresse eintragen und diese verwendet wird, um automatisch die Einladung zum zweiten Fragebogen zu versenden. Für die Zuordnung werden Pseudonyme verwendet, sodass der Datensatz keine personenbezogenen Daten enthält.
  
-Wenn sich die Teilnehmer vorab für die Studie "registrieren" müssen, so ist das eine gewisse Hürde. Es besteht die Gefahr, dass viele Teilnehmer um Sorge um die Anonymität gar nicht erst teilnehmen. Vorteil der a-priori-Abfrage ist aber, dass die Teilnahme erst nach Angabe einer gültigen E-Mail-Adresse möglich ist -- wer sich vertippt oder gar keine E-Mail-Adresse angeben will, kommt gar nicht zum ersten Fragebogen. Es springen also weniger Teilnehmer zwischen den Befragungswellen ab (Drop-Out). 
  
-Ein weiterer Vorteil der Vorab-Abfrage ist, dass Sie mit ''[[:de:create:functions:mailresume|mailResume()]]'' und Unterbrecher-Seiten arbeiten können. Das erlaubt es, alle Angaben eines Teilnehmers gleich in einer Datenzeile zu sammeln.+===== Position der Opt-In-Frage =====
  
 +Die E-Mail-Adresse der Teilnehmer wird mit einer Frage des Typs [[:de:create:questions:opt-in]] abgefragt. Sie sollten sich frühzeitig Gedanken machen, an welcher Stelle im ersten Fragebogen Sie diese Frage platzieren möchten. Natürlich sollten Sie in jedem Fall frühzeitig erwähnen, dass es sich um eine Befragung mit mehreren Fragebögen handelt und dass der Fragebogen nach der E-Mail-Adresse fragen wird.
  
-===== E-Mail-Adresse zu Beginn abfragen =====+Einige Befragte möchten ihre E-Mail-Adresse wahrscheinlich nicht angeben (sei es aus Sorge um Spam/Werbung oder aus Datenschutz-Erwägungen) und können dadurch nicht zum zweiten Teil der Befragung eingeladen werden.
  
-  * Vorab wird für jede Befragungswelle (auch für die erste) eine Serienmail angelegt (**Einladungen verschicken** -> **Serienmails**). In der Serienmail wird u.a. im Karteireiter //Fragebogen-Link// eingestellt, welcher Fragebogen für die einzelnen Wellen verwendet werden soll. +Wenn Sie die E-Mail-Adresse sehr frühzeitig im ersten Fragebogen abfragen, hat das folgende Vorteile:
-  * Der Teilnehmer muss seine E-Mail-Adresse vorab für die Studie registrieren. Dafür legt man im Befragungsprojekt einen zusätzlichen Fragebogen an (**Fragebogen zusammenstellen** -> //Weitere Fragebögen//). Dieser Fragebogen enthält lediglich eine Frage vom Typ "[[:de:create:questions:opt-in|Opt-In für E-Mail-Verteiler]]"+
-  * Anschließend gibt es wieder zwei Möglichkeiten:+
  
-==== Manueller Versand der Einladungen ====+  * Teilnehmer, die kategorisch keine E-Mail-Adresse angeben möchte, werden gleich zu Beginn von der Studie ausgeschlossen. Diese Teilnehmer verschwenden keine Zeit auf den ersten Fragebogen. 
 +  * Sie können mit ''[[:de:create:functions:mailresume|mailResume()]]'' und Unterbrecher-Seiten arbeiten. Das erlaubt es, alle Angaben eines Teilnehmers in einer Datenzeile zu sammeln. Ansonsten erhalten Sie für jeden Teilnehmer mehrere Datenzeilen (eine pro Fragebogen).
  
-Dieses Vorgehen ist sinnvoll, wenn die Teilnehmer den Fragebogen ungefähr zur selben Zeit ausfüllen sollen. Zwar erstreckt sich der Erhebungszeitraum weiterhin über mehrere Tage, weil nicht jeder sofort auf die E-Mail reagiert -- gerade bei einer längeren Rekrutierung sind die Daten aber in zeitlicher Hinsicht besser vergleichbar als beim automatischen Versand (s. unten).+Wenn Sie die E-Mail-Adresse erst am Ende des ersten Fragebogens abfragen, hat das folgende Vorteile:
  
-  * Es werden eine Weile Adressen gesammelt -- und wenn genug Adressen in der **Adressliste** liegenwird die erste Serienmail (Einladung zum ersten Fragebogen) an alle verschickt+  * Sie erhalten mehr Datensätze für den ersten Fragebogen -- das ist sinnvollwenn Sie die Daten des ersten Fragebogens auch separat verwerten können
-  * Auch weitere Einladungen werden manuell (und für alle zum gleichen Zeitpunktüber die Serienmail-Funktion verschickt.+  * Am Ende des ersten Fragebogens hat man bereits einige Zeit in die Teilnahme investiert und konnte (hoffentlichein wenig Vertrauen in die ehrbaren Absichten des Forschers gewinnen. Damit ist die Wahrscheinlichkeit höher, dass Teilnehmer ihre E-Mail-Adresse preisgeben.
  
-==== Automatischer Versand von Einladungen ==== 
  
-Dieses Vorgehen ist sinnvoll, wenn die Teilnehmer direkt nach der Registrierung mit der Befragung starten sollen.+===== Schritt 1: Fragebögen anlegen ======
  
-  * In der Opt-In-Frage wird bei //Fragebogen-Link aus// die erste Serienmail ausgewähltDadurch beginnt der Teilnehmer direkt nach Bestätigung seiner E-Mail-Adresse mit dem ersten Fragebogen+Benötigt werden insgesamt drei Fragebögen, nachfolgend als "A1", "A2" (für die erste Welle) und "B" bezeichnetLegen Sie diese unter **Fragebogen zusammenstellen** anWelche Kennungen Sie für die Fragebögen tatsächlich verwenden, ist unerheblich.
-  Am Ende des Fragebogens wird die PHP-Funktion ''[[:de:create:functions:mailschedule|mailSchedule()]]'' (für getrennte Datensätze) oder ''[[:de:create:functions:mailresume|mailResume()]]'' (wenn alle Wellen in einer Datenzeile gespeichert werden sollen) verwendet, um den zeitgesteuerten Versand der nächsten Serienmail(s) zu planenUnabhängig davon, welche der beiden Funktionen Sie verwenden, geben Sie als ersten Parameter ''false'' an, als zweiten Parameter die Kennung der Serienmail.+
  
 +  - Der erste Fragebogen (A1) dient zur Rekrutierung, hier wird unter anderem die E-Mail-Adresse abgefragt. Diesen Fragebogen füllen die Teilnehmer unmittelbar nach [[:de:survey:url|Aufruf des Fragebogen-Links]] aus.
 +  - Der zweite Fragebogen (A2) wird aufgerufen, wenn die Teilnehmer ihre E-Mail-Adresse bestätigen (Double Opt-In). Also im Idealfall wenige Minuten nach A1. Dieser Fragebogen bereitet die Versand der Einladungsmails für den zweiten Befragungszeitpunkt vor.
 +  - Ein dritter Fragebogen (B) enthält die Fragen für die zweite Befragungswelle. Wenn weitere Befragungszeitpunkte geplant sind, benötigt man ggf. weitere Fragebögen (C, D, E, ...).
  
----- +Unter **Fragebogen zusammenstellen** -> Karteireiter //Einstellugen// legen Sie für die Fragebögen "A2" und "B" bitte den [[:de:create:access|Zugriffsmodus]] "Serienmail" fest. So ist sichergestellt, dass sich nicht isoliert aufgerufen werden können.
-----+
  
-**Beispiel mit X Messzeitpunkten (alle Daten pro Teilnehmer in einer Zeile) und den Funktionen mailResume() und mailRevoke()**+Unter **Fragebogen zusammenstellen** -> **Fragebögen verwalten** wählen Sie unter //Standard-Fragebogen// bitte den Fragebogen A1 aus und speichern Sie diese Einstellung ({{:button.save.png|Knopf zum Speichern}}).
  
-Ein Beispiel für eine Erhebung mit X Messzeitpunkten (in diesem Bsp: X = 3), bei der alle Daten pro Teilnehmer in einer Datenzeile gespeichert werden sollen (z.B. sinnvoll bei Verlaufsmessungen, Interventionsstudien, Prä-/Post- Untersuchungen): +Die Fragen für den ersten Erhebungszeitpunkt können nach Belieben auf "A1" und "A2" verteilt werden.
  
-Funktionen dieser Umsetzung: +Erstellen Sie im **Fragenkatalog** eine Frage vom Typ [[:de:create:questions:opt-in]]. Unter //Datenschutz// im Reiter //Einstellungen für die Frage// muss hier "Pseudonym" eingetragen werden. Bei //Funktionalität// sollte die Standard-Einstellung "Double Opt-In" eingestellt sein. Außerdem müssen Sie mindestens einen //Betreff// und einen //Inhalt der Bestätigungsmail// eingeben. Letzterer Text muss den Platzhalter ''%opt-in%'' erhalten. An dieser Stelle wird dann beim Versand der Bestätigungslink eingesetzt.
-  Teilnehmer sollen automatisch nach bestimmter Zeit die Einladung zum nächsten Messzeitpunkt/nächsten Fragebogenteil bekommen, vor Ablauf dieser Zeit aber noch keinen Zugriff auf den nächsten Teil des Fragebogens/die Fragen des nächsten Messzeitpunkts haben +
-  * Teilnehmer sollen automatische Erinnerungsmails bekommen, falls sie nicht innerhalb einer bestimmten Zeit auf die erste Einladung zum nächsten Messzeitpunkt reagieren +
  
-Vorbereitungen: +Beim Double Opt-In wird zunächst eine Bestätigungsmail an die eingetragene E-Mail-Adresse geschickt. Erst wenn der Teilnehmer den Link in der Bestätigungsmails anklickt, wird die E-Mail-Adresse in den Mailverteiler (**Einladungen verschicken** -> **Adressliste**) übernommen. Dadurch ist sichergestelltdass die E-Mail-Adresse korrekt ist und dass nicht eine Dritte Person einfach fremde E-Mail-Adressen für die Studie registriert.
-  * Einstellung der Zugriffsbeschränkung „Serienmail“ beim entsprechenden Fragebogen (Einladung zum entsprechenden Fragebogen per manueller Serienmail, falls Teilnehmer Emailadressen bekannt; oder per Opt-in Frage in einem separaten Fragebogen mit Zugriffsbeschränkung „öffentlich“falls Rekrutierung über soziale Medien usw.)+
  
-----+Fügen Sie die Opt-In-Frage anschließend an geeigneter Stelle in den Fragebogen A1 ein.
  
-**PHP Code für die Umsetzung**+**Hinweis:** Sie müssen später noch eine Änderung an der Opt-In-Frage vornehmen (s. Schritt 2), sodass die Befragten nach der Bestätigung der Mailadresse zum Fragebogen A2 geleitet werden.
  
-Hinweis: Alle Zahlen können/sollen beliebig ausgetauscht werden je nach Bedarf des zeitlichen Abstands/der jeweiligen ID der entsprechenden Serienmail) 
  
-**Messzeitpunkt 1:**+===== Schritt 2Serienmails =====
  
-PHP Code auf der letzten Seite des ersten Fragebogenteils/des ersten Messzeitpunktes (Unterbrecherseite):+Wählen Sie nun bitte **Einladungen verschicken**. Dort fordert SoSci Survey Sie u.U. zunächst auf, einen AVV zu vereinbaren. Denn E-Mail-Adressen sind [[:de:general:dsgvo|personenbezogene Daten]], die u.a. laut DSGVO besonderen Schutz genießen. Sie müssen (z.B. im Fragebogeneinigen Informationspflichten nachkommen und Sie müssen einen AVV vereinbaren, bevor Sie einen Subunternehmer (z.B. die Sosci Survey GmbH) zur Verarbeitung solcher Daten nützen. Wenn Sie unsicher sind, wenden Sie sich bitte an den Datenschutzbeauftragen (DSB) Ihrer Hochschule, Ihrer Einrichtung oder Ihres Unternehmens.
  
-<code>+Nun legen Sie unter **Einladungen verschicken** -**Serienmails** bitte zwei [[:de:survey:mailing|Serienmails]] an.
  
-//Neue Zeit-variable generierenin der die aktuelle Zeit abgespeichert wird (um die Zeit des ersten Aufrufs der Unterbrecherseite zu speichern) +  Die Serienmail Nr. 1 dient lediglich dem Aufruf des Fragebogens "A2". Sie wird nie wirklich verschickt, d.h., der Inhalt ist nicht weiter relevant. Wichtig ist aber, dass im Karteireiter //Link zum Fragebogen// der Fragebogen "A2" ausgewählt wird. 
-//Wegen isset() und registerVariable() wird Folgendes nur beim ersten Aufruf der Seite ausgeführt (sinnvoll, falls Teilnehmer die Seite nochmal neu lädt):+  - Die Serienmail Nr. 2 ist die Einladung zur zweiten Befragungswelle. Sie wird zeitversetzt verschickt und ihre Nummer (z.B. 2) wird später im PHP-Code benötigt für die Funktion ''[[:de:create:functions:mailschedule]]''
 +  - Falls Sie weitere Befragungszeitpunkte vorsehen, legen Sie entsprechend zusätzliche Serienmails an, eine pro Befragungszeitpunkt. Sie können auch Erinnerungsmails erstellen, falls die Teilnehmer nicht auf die erste Einladungsmail reagieren.
  
-if (!isset($timepart1)) { +Nun öffnen Sie bitte nochmal die Opt-In-Frage zum Bearbeiten. Unter //Weitere Einstellungen//, Karteireiter //Bestätigung// wählen Sie unter //Weiterleitung nach Bestätigung// -> //Fragebogen-Link aus// nun bitte die Serienmail 1 aus. Es ist zweckmäßig, dass Sie in der Opt-In-Frage __keinen__ Text zur Bestätigung (//Text bei Bestätigung//) eintragen, dann werden die Befragten nach der Bestätigung direkt zu Fragebogen A2 (worauf die Serienmail 1 verweistweitergeleitet. Speichern Sie diese Einstellung ({{:button.save.png|Frage Speichern}}).
-    //Zeit speichern +
-    $timepart1 = time()+
-    registerVariable('timepart1');+
  
-    //Einladung mit der Serienmail ID 1 zum zweiten Messzeitpunkt nach 7 Tagen senden (In der Serienmail ID 1 den entsprechenden Fragebogen beim Tab „Fragebogen-link“ einstellen, beim Tab „Erinnerungen/Folgemail“ unter „Art der Folgemail“ einstellen dass es eine Erinnerung oder Fortsetzung ist; und im Mailtext folgendes als Link angeben %link%)+Der Ablauf bisher ist wie folgt:
  
- mailResume(false, 1, 7 * 24 * 3600);+  - Der Teilnehmer klickt den Link zum Fragebogen an ([[:de:survey:participants]]und gelangt dadurch zum Fragebogen A1. 
 +  - Dort beantwortet er Fragen und trägt (früher oder später) seine E-Mail-Adresse in die Opt-In-Frage ein. 
 +  - Sobald die E-Mail-Adresse eingetragen und die Daten mit dem "Weiter"-Knopf an den Server übermittelt wurden, verschickt SoSci Survey eine Bestätigungsmail an die angegeben E-Mail-Adresse. 
 +  - Der Teilnehmer erhält die E-Mail und klickt auf den Bestätigungslink. Dadurch öffnet sich nun der Fragebogen A2.
  
-    //Erste Erinnerungsmail mit Serienmail ID 2  nach 9 Tagen senden (d.h. zwei Tage nach der ersten Einladung zum zweiten Messzeitpunkt) (In der Serienmail ID 2 den entsprechenden Fragebogen beim Tab „Fragebogen-link“ einstellen, beim Tab „Erinnerungen/Folgemail“ unter „Art der Folgemail“ einstellen dass es eine Erinnerung oder Fortsetzung ist; und im Mailtext folgendes als Link angeben:  %link%) 
  
- mailResume(false, 2, 9 * 24 * 3600);+===== Schritt 3: Mailversand automatisieren =====
  
-    //Zweite Erinnerungsmail mit Serienmail ID 3 nach 11 Tagen senden (d.h. vier Tage nach der ersten Einladung) (In der Serienmail ID 3 den entsprechenden Fragebogen beim Tab „Fragebogen-link“ einstellen, beim Tab „Erinnerungen/Folgemail“ unter „Art der Folgemail“ einstellen dass es eine Erinnerung oder Fortsetzung ist; und im Mailtext folgendes als Link angeben:  %link%)+Prinzipiell könnten Sie mit der bisherigen Lösung schon arbeiten. Die E-Mail-Adressen werden in der **Adressliste** gespeichert und Sie könnten die Serienmail Nr. 2 manuell versenden, um die Einladung zum zweiten Erhebungszeitpunkt zu versenden.
  
- mailResume(false3, 11 * 24 * 3600); +Oftmals soll der Versand der Einladung aber automatisiert erfolgen. Entweder zu einem vorab definierten Zeitpunkt oder eine bestimmte Zeitspanne nach dem Aufruf von A2. Dafür wird im Fragebogen A2 [[:de:create:php|PHP-Code]] verwendetspezifisch der Befehl ''[[:de:create:functions:mailschedule]]''.
-+
  
-//Prüfen, wie viel Zeit seit dem ersten Aufruf der Seite vergangen ist und Unterbrecherseite weiterhin anzeigen falls es weniger als 7 Tage ist, damit Teilnehmer nicht schon früher die Fragen des zweiten Messzeitpunkts sehen können +Fügen Sie auf der ersten Seite des Fragebogens A2 ein Element "PHP-Code" ein und darin den folgenden Befehl:
-//Falls die aktuelle Zeit minus die beim ersten Aufruf der Unterbrecherseite gespeicherte Zeit-Variable kleiner als 7 Tage ist+
  
-if (time() - $timepart1 < 7 * 24 * 3600) { +<code php> 
- option('resume', true); //Hinweis auf fortgesetztes Interview verhindern +mailSchedule(false, 2, 7 * 24 * 3600); 
- option('nextbutton', false); //Weiter-Knopf ausblenden (Interview unterbrechen)+</code>
  
-//Ist der Teilnehmer nach 7 Tagen zurückgekehrt und somit die aktuelle Zeit minus die neue Zeit-Variable größer als 7 Tage ist: Dann geht der Fragebogen auf der nächsten Seite weiter +Der Befehl ''mailSchedule()'' hat drei Parameter.
  
-} else { +  - Der erste spezifiziert den Adresseintrag, an welchen die Einladungsmail geschickt werden soll. Nachdem unser Teilnehmer durch den (individuellen) Bestätigungslink zum Fragebogen A2 gelangt ist, kennt SoSci Survey den richtigen Adresseintrag bereits, deshalb ist hier ''false'' vermerkt. 
- goToPage('next'); +  - Der zweite Parameter gibt an, welche Serienmail verschickt werden soll. Im Beispiel oben ist das die Serienmail mit der Nummer 2. 
-}+  - Der dritte Parameter gibt den Zeitpunkt an, wann die Serienmail verschickt werden soll. Dies kann entweder eine Zeitspanne in Sekunden sein oder ein Unix-Zeitstempel. Im obigen Beispiel sind es 7 Tage (7 mal 24 Stunden á 3600 Sekunden). Alternativ könnten Sie z.B. auch als dritten Parameter eintragen ''strtotime('+7 days')'' oder für einen vordefinierten Zeitpunkt ''strtotime('2020-10-31 08:00:00')''. 
 + 
 +**Tipp:** Tragen Sie zum Testen für den dritten Parameter einen kleinen Wert ein, z.B. 300 Sekunden (5 Minuten). 
 + 
 +**Tipp:** Nutzen Sie zum Testen Wegwerf-Mailadressen ([[https://praxistipps.chip.de/wegwerf-email-adressen-diese-anbieter-gibts_1674|Chip: Wegwerf-Email-Adressen]]. Denn wenn eine E-Mail-Adresse schonmal per Opt-In eingetragen wurde, dann werden u.U. keine weiteren Bestätigungsmails mehr an diese Adresse versendet. 
 + 
 +Man kann die Registrierung mit einer E-Mail-Adresse beliebig oft testen, sofern man die Adresse anschließend wieder aus der Adressliste löscht (**Einladungen verschicken** -> **Adressliste**). Eine E-Mail-Adresse ist nach Versand der Opt-In-Mail für 10 Minuten blockiert, bevor eine weitere Opt-In-Mail versandt werden kann. 
 + 
 +**Tipp:** Starten Sie den ersten Fragebogen unter **Fragebogen zusammenstellen** im Debug-Modus ({{:button.debug.gif|Fragebogen im Debug-Modus starten}}). Dann können Sie auch außerhalb des in den **Projekt-Einstellungen** festgelegten Befragungszeitraums testen. 
 + 
 +Wenn Sie nun den ersten Fragebogen aufrufen, dort eine E-Mail-Adresse eintragen und den Link in der Bestätigungsmail anklicken, dann können Sie unter **Einladungen verschicken** -> **Adressliste** den neuen Adresseintrag sehen. Und unter **Serienmail** sehen Sie auch, dass der Versand der Serienmail an eine Adresse vorbereitet ist. 
 + 
 + 
 +==== Mehrere Serienmails ==== 
 + 
 +Wenn Sie mehrere Einladungen zu unterschiedlichen Zeitpunkten versenden möchten, dann wiederholen Sie den ''mailSchedule()''-Befehl einfach für jede Serienmail. Im folgenden Beispiel werden z.B. Einladungen nach 7, 14 und 21 Tagen versendet (Nummern 2, 3, 4) und jeweils eine Erinnerung (Nummern 5, 6, 7) am folgenden Tag.
  
 +<code php>
 +// Einladungsmails
 +mailSchedule(false, 2, 7 * 24 * 3600);
 +mailSchedule(false, 3, 14 * 24 * 3600);
 +mailSchedule(false, 4, 21 * 24 * 3600);
 +// Erinnerungen
 +mailSchedule(false, 5, 8 * 24 * 3600, ['status' => 'no-response']);
 +mailSchedule(false, 6, 15 * 24 * 3600, ['status' => 'no-response']);
 +mailSchedule(false, 7, 22 * 24 * 3600, ['status' => 'no-response']);
 </code> </code>
  
-**Messzeitpunkt 2:**+Eine Erinnerungsmails erstellen Sie genauso wie eine Serienmail. Anschließend wählen Sie im Karteireiter //Erinnerung/Folgemail// bei //Erinnerung/Folgemail für// bitte die Serienmail, an welche Sie den Teilnehmer erinnern möchten.
  
-PHP Code auf der letzten Seite des zweiten Fragebogenteils/des zweiten Messzeitpunktes (Zweite Unterbrecherseite): 
  
-<code>+===== Hinweise für Teilnehmer =====
  
-//Neue Zeit-variable generieren, in der die aktuelle Zeit abgespeichert wird (um die Zeit des ersten Aufrufs der zweiten Unterbrecherseite zu speichern) +Im Fragebogen A1 sollten Sie den Teilnehmer auf Folgendes hinweisen:
-//Wegen isset() und registerVariable() wird Folgendes nur beim ersten Aufruf der Seite ausgeführt (sinnvoll, falls Teilnehmer die Seite nochmal neu lädt)+
  
-if (!isset($timepart2)) { +  * Je nachdem, welchen Provider oder Mailserver der Teilnehmer verwendet, kann sich die Zustellung der Bestätigungsmail verzögern -- üblich sind 0 bis 30 Minuten. 
-    //Zeit speichern +  * Manchmal verfangen sich Bestätigungsmails im Spam-Filter. 
-    $timepart2 = time(); +  * Zur Fortsetzung der Befragung ist es notwendig, in der Bestätigungsmail auf den Bestätigungslink zu klicken. Falls man den Link nicht direkt anklicken kann (sehr selten), muss man ihn evtl. in die Adresszeile des Internet-Browsers kopieren.
-    registerVariable('timepart2');+
  
-    //Erinnerungsmails löschen, falls Teilnehmer direkt auf erste Einladungsmail zum zweiten Messzeitpunkt reagiert 
  
-        mailRevoke(false, 2); +===== Manueller Versand der Einladungen =====
-        mailRevoke(false, 3);+
  
-    //Einladung mit der Serienmail ID 4 zum dritten Messzeitpunkt nach 7 Tagen senden (In der Serienmail ID 4 den entsprechenden Fragebogen beim Tab „Fragebogen-link“ einstellen, beim Tab „Erinnerungen/Folgemail“ unter „Art der Folgemail“ einstellen dass es eine Erinnerung oder Fortsetzung ist; und im Mailtext folgendes als Link angeben:  %link%)+Als Alternative zur automatisierten Vorbereitung des Versands von Serienmail Nr. 2 können Sie diese Serienmail auch manuell versenden -- ''mailSchedule()'' fällt dann weg und eventuell auch Fragebogen A2.
  
- mailResume(false47 * 24 * 3600);+Dieses Vorgehen ist sinnvollwenn alle Teilnehmer den Fragebogen ungefähr zur selben Zeit ausfüllen sollen. Zwar erstreckt sich der Erhebungszeitraum weiterhin über mehrere Tageweil nicht jeder sofort auf die E-Mail reagiert -- gerade bei einer längeren Rekrutierung sind die Daten aber in zeitlicher Hinsicht besser vergleichbar als beim automatischen Versand (wo dafür der Zeitabstand zwischen den beiden Erhebungswellen gleich ist).
  
-    //Erste Erinnerungsmail mit Serienmail ID 5  nach 9 Tagen senden (d.hzwei Tage nach der ersten Einladung zum dritten Messzeitpunkt(In der Serienmail ID 5 den entsprechenden Fragebogen beim Tab „Fragebogen-link“ einstellenbeim Tab „Erinnerungen/Folgemail“ unter „Art der Folgemail“ einstellen dass es eine Erinnerung oder Fortsetzung ist; und im Mailtext folgendes als Link angeben:  %link%)+  * Es werden eine Weile Adressen gesammelt -- und wenn genug Adressen in der **Adressliste** liegen, wird die Serienmail Nr2 (Einladung zum Fragebogen "B"an alle verschickt. 
 +  * Sollte die Rekrutierung danach noch fortgesetzt werden, kann die Serienmail nach Bedarf erneut verschickt werden. Teilnehmerwelche die Serienmail schon erhalten haben, erhalten sie __nicht__ erneut. Sofern weitere Befragungswellen erfolgen sollen, können weitere Serienmails verschickt werden.
  
- mailResume(false, 5, 9 * 24 * 3600); 
  
-    //Zweite Erinnerungsmail mit Serienmail ID 6 nach 11 Tagen senden (d.h. vier Tage nach der ersten Einladung zum dritten Messzeitpunkt) (In der Serienmail ID 6 den entsprechenden Fragebogen beim Tab „Fragebogen-link“ einstellen, beim Tab „Erinnerungen/Folgemail“ unter „Art der Folgemail“ einstellen dass es eine Erinnerung oder Fortsetzung ist; und im Mailtext folgendes als Link angeben:  %link%)+===== Datensatz =====
  
- mailResume(false, 6, 11 * 24 * 3600); +Im Datensatz haben Sie am Ende pro Teilnehmer drei Datenzeilen -- zumindest wenn der Teilnehmer eine gültige E-Mail-Adresse angegeben und die Links in beiden E-Mails angeklickt hat:
-+
  
-//Prüfen, wie viel Zeit seit dem ersten Aufruf der zweiten Unterbrecher Seite vergangen ist und Unterbrecherseite weiterhin anzeigen falls es weniger als 7 Tage ist, damit Teilnehmer nicht schon früher die Fragen des dritten Messzeitpunkts sehen können +  - Antworten auf "A1" -- die Kennung des Teilnehmers ist hier in der Variable der Opt-In-Frage vermerkt. 
-//Falls die aktuelle Zeit minus die beim ersten Aufruf der Unterbrecherseite gespeicherte Zeit-Variable kleiner als 7 Tage ist:+  - Antworten auf "A2" -- die Kennung steht hier in der Variable //SERIAL//
 +  - Antworten auf "B" -- die Kennung steht hier erneut in //SERIAL//.
  
-if (time() $timepart2 < 7 * 24 * 3600) { +Wenn alle Antworten später in der Statistik-Software zu einer Datenzeile verschmolzen werden sollen (MERGE), dann ist es zweckmäßig, in allen drei Fragebögen unterschiedliche Fragen zu verwenden, sodass die Variablen unterschiedliche Kennungen bekommen. Falls Fragen sowohl in "A" wie auch in "B" abgefragt werden sollen, kopieren Sie einfach die entsprechende Rubrik.
- option('resume', true); //Hinweis auf fortgesetztes Interview verhindern +
- option('nextbutton'false); //Weiter-Knopf ausblenden (Interview unterbrechen)+
  
-//Ist der Teilnehmer nach 7 Tagen zurückgekehrt und somit die aktuelle Zeit minus die neue Zeit-Variable größer als 7 Tage ist: Dann geht der Fragebogen auf der nächsten Seite weiter 
  
 +===== Daten in einer Datenzeile =====
 +
 +Statt unterschiedliche Fragebögen für "A2" und "B" zu verwenden, kann man die Fragen auch in einem Fragebogen platzieren und mit Unterbrecherseiten arbeiten. Das hat den Vorteil, dass die Daten in einer Datenzeile im Datensatz gespeichert werden. Außerdem können Filter in Teil "B" auf Antworten aus "A2" zurückgreifen. In diesem Fall kommt ''[[:de:create:functions:mailresume|mailResume()]]'' statt ''mailSchedule()'' zum Einsatz.
 +
 +Das folgende Beispiel demonstriert die Verwendung von ''[[:de:create:functions:mailresume|mailResume()]]'' und ''[[:de:create:functions:mailrevoke|mailRevoke()]]'' für eine Erhebung mit drei Messzeitpunkten, wobei alle Daten eines Teilnehmers in derselben Datenzeile gespeichert werden. Mögliche Einsatzbereiche sind z.B. eine Verlaufsmessung, Interventionsstudie oder Prä-/Post-Untersuchungen.
 +
 +
 +==== Funktionen ====
 +
 +  * Teilnehmer erhalten automatisch nach einer bestimmter Zeit die Einladung zum nächsten Messzeitpunkt (nächsten Fragebogenteil) und sollen vor Ablauf dieser Zeit auch keinen Zugriff auf die Fragen des nächsten Fragebogenteils haben.
 +  * Teilnehmer erhalten automatische Erinnerungsmails, falls sie nicht innerhalb einer bestimmten Zeit auf die erste Einladung zum nächsten Messzeitpunkt reagieren.
 +
 +
 +==== Vorbereitungen ====
 +
 +Alle Fragebogen-Teile werden in einem Fragebogen hintereinander angeordnet. Als Zugriffsmodus für den Fragebogen wird "Serienmail" eingestellt.
 +
 +Falls die E-Mail-Adressen der Teilnehmer __nicht__ vorab bekannt sind, wird ein zweiter Fragebogen mit einer Frage [[:de:create:questions:opt-in|Opt-In für E-Mail-Verteiler]] erstellt. Für diesen Fragebogen wird der Zugriffsmodus "öffentlich" eingestellt.
 +
 +Legen Sie eine Serienmail (im Beispiel ID 1) an, welche nach 7 Tagen als Einladung für den Messzeitpunkt 2 verschickt werden soll. Im Karteireiter "Erinnerungen/Folgemail" wird unter "Art der Folgemail“ eingestellt, dass es eine Erinnerung oder Fortsetzung ist. Im Text der E-Mail muss (wie üblich) der Platzhalter %link% verwendet werden.
 +
 +Legen Sie zwei weitere Serienmails (im Beispiel ID 2 und 3) an. Diese dienen als Erinnerung, wenn der Teilnehmer den zweiten Fragebogen-Teil nach 9 bzw. 11 Tagen noch noch ausgefüllt hat (Einstellungen wie bei der Serienmail 1).
 +
 +Legen Sie drei weitere Serienmails (im Beispiel ID 4-6) an: Eine Einladung zum dritten Teil und zwei Erinnerungen (Einstellungen wie bei der Serienmail 1).
 +
 +
 +==== PHP-Code für Zeitpunkt 1 ====
 +
 +Die Werte (Zahlen) im PHP-Code sind entsprechend der jeweiligen Studie anzupassen, insbesondere Zeitabstände und die Serienmail-IDs.
 +
 +Zwischen dem ersten und zweiten Fragebogen-Teil wird beim Fragebogen zusammenstellen eine zusätzlich Seite eingefügt (Unterbrecherseite). Die Unterbrecherseite hat folgende Funktion:
 +
 +  * Sie versendet mittels ''mailResume()'' die Einladung zum nächsten Fragebogen Teil.
 +  * Wenn der Teilnehmer die Seite erstmals aufruft (am Ende des ersten Fragebogen-Teils), zeigt sie eine Verabschiedung.
 +  * Wenn der Teilnehmer die Seite erneut aufruft (nachdem er die Einladung zum zweiten Fragebogen-Teil bekommen hat) leitet sie direkt weiter zur nächsten Seite.
 +
 +**Wichtig:** Der Teilnehmer muss sich tatsächlich bis zu der Seite auf welcher der PHP-Code eingefügt wurde durchklicken. Ansonsten wird keine Einladungsmail verschickt. Ist die letzte Seite des ersten Fragebogens bereits eine Verabschiedung, kann auch diese Seite als Unterbrecherseite dienen. In diesem Fall benötigen Sie keine weitere Seite zwischen den beiden Fragebogen-Teilen. Beachten Sie dann aber bitte, dass die Verabschiedung __nicht__ "in die Seite gezogen", sondern mit dem Befehl ''text()'' im PHP-Code angezeigt wird. Falls der Text bereits auf die Seite gezogen wurde, entfernen Sie ihn von der Seite bevor (oder nachdem) Sie den PHP-Code einfügen.
 +
 +Beim **Fragebogen zusammenstellen** wird auf der Unterbrecherseite folgender PHP-Code platziert:
 +
 +<code php>
 +// Die Zeit des ersten Aufrufs der Unterbrecherseite wird in Variable $timepart1 gespeichert
 +// isset() und registerVariable() verhindern, dass diese Zeit beim erneuten Aufruf der Seite (z.B. Neuladen der Seite) geändert wird und/oder dass E-Mails doppelt geplant werden
 +if (!isset($timepart1)) {
 +  // Zeit speichern
 +  $timepart1 = time();
 +  registerVariable($timepart1);
 +
 +  // Einladung mit der Serienmail ID 1 zum zweiten Messzeitpunkt nach 7 Tagen senden
 +  // Der Zeitabstand wird jeweils in Sekunden angegeben: 7 x 24 x 3600 Sekunden = 7 Tage
 +  mailResume(false, 1, 7 * 24 * 3600);
 +
 +  // Erste Erinnerungsmail mit Serienmail ID 2 nach 9 Tagen senden
 +  // (d.h. zwei Tage nach der ersten Einladung zum zweiten Messzeitpunkt)
 +  mailResume(false, 2, 9 * 24 * 3600);
 +
 +  // Zweite Erinnerungsmail mit Serienmail ID 3 nach 11 Tagen senden
 +  // (d.h. vier Tage nach der ersten Einladung)
 +  mailResume(false, 3, 11 * 24 * 3600);
 +
 +
 +// Prüfen, wie viel Zeit seit dem ersten Aufruf der Seite vergangen ist
 +if ((time() - $timepart1) < 7 * 24 * 3600) {
 +  // Unterbrecherseite anzeigen falls es weniger als 7 Tage sind,
 +  // damit Teilnehmer nicht schon früher die Fragen des zweiten Messzeitpunkts sehen können.
 +  option('resume', true); // Kein Hinweis, dass das Interview fortgesetzt wird
 +  option('nextbutton', false); // Weiter-Knopf ausblenden (Interview unterbrechen)
 +  text('ende1');  // Evtl. eine Verabschiedung zum ersten Fragebogen-Teil anzeigen
 } else { } else {
- goToPage('next');+  // Ist der Teilnehmer nach 7 Tagen zurückgekehrt und somit die aktuelle Zeit minus die neue Zeit-Variable 
 +  // größer als 7 Tage ist, dann wird die Befragung auf der nächsten Seite fortgesetzt 
 +  goToPage('next');
 } }
- 
 </code> </code>
  
-**Messzeitpunkt 3:** 
  
-PHP Code auf der vorletzten Seite des dritten Fragebogenteils/des dritten Messzeitpunktes:+==== PHP-Code für Zeitpunkt 2 ====
  
-<code>+Zwischen dem zweiten und dritten Fragebogen-Teil wird erneut eine Unterbrecherseite platziert oder alternativ auf der letzten Seite des zweiten Fragebogen-Teils. Der PHP-Code entspricht weitgehend dem obigen Code. Allerdings sorgt mailRevoke() dafür, dass eventuell noch ausstehende Erinnerungen (Serienmails ID 2 und 3) nicht mehr versendet werden.
  
-//Erinnerungsmails löschen, falls Teilnehmer direkt auf erste Einladungsmail zum dritten Messzeitpunkt reagiert+<code php> 
 +// Neue Zeit-Variable für die zweiten Zeitpunkt 
 +if (!isset($timepart2)) { 
 +  $timepart2 = time(); 
 +  registerVariable($timepart2); 
 +  // Erinnerungsmails löschen, falls diese noch ausstehen 
 +  mailRevoke(false, 2); 
 +  mailRevoke(false, 3);
  
-        mailRevoke(false, 5); +  // Einladung zum dritten Messzeitpunkt mit der Serienmail ID 4 nach 7 Tagen senden 
-        mailRevoke(false, 6); +  mailResume(false, 4, 7 * 24 * 3600); 
-        + 
 +  // Erste Erinnerungsmail nach 9 Tagen 
 +  mailResume(false, 5, 9 * 24 * 3600); 
 + 
 +  // Zweite Erinnerungsmail nach 11 Tagen 
 +  mailResume(false, 6, 11 * 24 * 3600); 
 +}  
 + 
 +// Unterbrechung für 7 Tage 
 +if ((time() - $timepart2) < 7 * 24 * 3600) { 
 +  option('resume', true); 
 +  option('nextbutton', false); 
 +} else { 
 +  goToPage('next'); 
 +}
 </code> </code>
  
  
-**Hinweise**+==== PHP-Code für Zeitpunkt 3 ====
  
-  * Wichtig: auf Unterbrecherseiten keine Fragen platzieren; stattdessen z.B. einen Text mit Danke, Verabschiedung und bis zum nächsten Messzeitpunkt +Auf der vorletzten Seite des Fragebogens müssen noch die eventuell ausstehenden Erinnerungsmails gelöscht werden. 
-  * Den Teilnahmestatus der Fortsetzungs- und Erinnerungs-Serienmails kann man bei diesem Vorgehen nicht überprüfen…die Kugel bleibt grau für die Serienmails mit ID 1, ID 2 und ID 3 (usw.)– nur für die Opt-in Serienmail wird der Teilnahmestatus angezeigt. Um den Teilnahmestatus jedoch nachzuvollziehen kann man sich die bereits erhobenen Daten anschauen: damit sieht manwelche Fragebogenteile bis jetzt bereits von wem ausgefüllt wurden(allerdings muss man bei Anonymität „Personalisierter Eintrag“ einstellen). + 
-  * Wenn man weniger Aufwand haben möchtekann man auch immer wieder dieselben Erinnerungsmails benutzen (mit einem allgemein gefassten Erinnerungstext). Im obigen Beispiel könnte man statt der beiden Erinnerungsmails mit ID 5 und ID 6 wieder die Erinnerungsmails mit ID 2 und ID 3 senden.+<code php> 
 +  mailRevoke(false5); 
 +  mailRevoke(false6);       
 +</code>
  
  
----- +==== Hinweise ====
-----+
  
 +**Wichtig:** Platzieren Sie auf den Unterbrecherseiten keine Fragen -- der PHP-Code oben sieht lediglich einen Text vor (Danke, Verabschiedung und Hinweis auf den nächsten Messzeitpunkt).
  
 +**Hinweis:** Die Einladung zum dritten Fragebogen-Teil erfolgt relativ zu dem Zeitpunkt, wenn der Teilnehmer der Einladung zu Teil 2 gefolgt ist. Wenn er also Teil 2 erst 10 Tage nach Teil 1 ausfüllt, dann wird die Einladung zu Teil 3 erst 17 Tage nach dem Ausfüllen von Teil 1 verschickt. Alternativ könnte man alle (!) Einladungen und Erinnerungen gleich am Ende von Teil 1 einplanen. Der Filter am Ende von Teil 2 müsste sich dann auf ''$timepart1'' statt ''$timepart2'' beziehen.
  
-===== E-Mail-Adresse am Ende des ersten Fragebogens abfragen =====+**Hinweis:** In der Adressliste ist der Teilnahmestatus für die Fortsetzungs- und Erinnerungs-Serienmails __nicht__ ersichtlich (graue Markierung für die Serienmails). Der Teilnahmestatus wird nur für eine eventuelle Opt-in Serienmail angezeigt. Um den Teilnahmestatus jedoch nachzuvollziehen kann man sich die bereits erhobenen Daten ansehen. Eine individuelle Zuordnung anhand der Variable SERIAL ist allerdings nur möglich, wenn die E-Mail-Adresse mit der Einstellung "Personalisierter Eintrag" für "Anonymität" importiert wurden.
  
-  Auch für diese Variante benötigen Sie eine Frage vom Typ "[[:de:create:questions:opt-in|Opt-In für E-Mail-Verteiler]]". Diese wird am Ende des ersten Fragebogens platziert -- sinnvollerweise mit einem Verweis auf die weiteren Erhebungswellen. +**Tipp:** Man kann dieselben Erinnerungsmails mehrfach verwenden (mit einem allgemein gefassten Erinnerungstext). Im obigen Beispiel könnte man z.B. Serienmail ID 2 für alle Erinnerungen (also statt den Serienmails ID 34 und 5senden.
-  Weiterhin benötigen Sie einen zusätzlichen Fragebogen (**Fragebogen zusammenstellen** -> //Weitere Fragebögen//), welcher sich um den zeitgesteuerten Versand der Einladungsmail(skümmertFalls Sie die Einladungen manuell über die Serienmail-Funktion versenden möchten, ist der zusätzliche Fragebogen natürlich nicht erforderlich. +
-  *  Legen Sie für jede Befragungswelle (auch für die erste) eine Serienmail an (**Einladungen verschicken** -> **Serienmails**)In der Serienmail wird u.a. im Karteireiter //Fragebogen-Link// eingestellt, welcher Fragebogen für die einzelnen Wellen verwendet werden soll. Bei der ersten Serienmail verweist der Link aber nicht auf den ersten Fragebogensondern auf den zusätzlichen Fragebogen, welcher sich um den zeitgesteuerten Versand kümmert. +
-  * Die Planung des zeitgesteuerten Versands erfolgt mithilfe der Funktion ''[[:de:create:functions:mailschedule|mailSchedule()]]''. In dieser Funktion geben Sie als ersten Parameter ''false'' an, als zweiten Parameter die Kennung der Serienmail. +
-  * Wählen Sie in der Opt-In-Frage bei //Fragebogen-Link aus// diese spezielle Serienmail aus. Dann wird der Versand der weiteren Einladungsmail(sunmittelbar nach Abschluss der Opt-In-Bestätigung ausgeführt.+
de/survey/opt-in-live.txt · Zuletzt geändert: 01.02.2023 14:54 von impactofhomeoffice
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki