Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
en:survey:opt-in-live [25.06.2015 10:40] – [Preparation] alexander.ritteren:survey:opt-in-live [24.05.2021 10:36] sophia.schauer
Line 1: Line 1:
-====== Multi-Wave Surveys with Self-Selection ======+====== Multi-Wave Surveys with Self-Recruited Respondents ======
  
-As a general rule, participants' email addresses have to be known beforehand when carrying out a multi-wave survey as the respondents have to be invited, at some point, to a survey wave at a later date. However, if participants have been recruited via links on a website, social media or advertising banners, then their email addresses are not known beforehand. This chapter explains different technical solutions that guarantee the respondents' anonymity+If you want to use the [[:en:survey:mailing|serial mail function]] for a multi-wave survey, you actually need the email addresses of the respondents in advance. Eventually, respondents will need to be invited to participate in subsequent wave of surveys at some point.
  
-The two options differ from each other, if the participant has to disclose their email address: either the participant is asked for their email address at the beginning, or at the end of the first questionnaire.+However, if participants are recruited through links on a website, social media or via advertising banners, their email addresses are not known in advance. This chapter shows a technical solution where respondents enter their email address in the first questionnaire and this is used to automatically send the invitation to the second questionnaire. To assign the data, pseudonyms are used so that the data set does not contain any personal data.
  
-If the participant has to "register" for the study beforehand then this is a particular obstacle. The danger being that many participants will not want to take part at all due to concerns about anonymity. An advantage of requesting the email address a-priori is, however, that taking part in the survey is only possible after specifying a valid email address - if there is a typo or the person does not want to give an email address, then they will not be able to access the first questionnaire. There are, therefore, less dropouts between survey waves.   
  
-Another advantage of requesting the email address in advance is being able to work with ''[[:en:create:functions:mailresume|mailResume()]]'' and interruption pages. This enables all of a participant's data to be collected in a data record at the same time.+===== Position of the Opt-In-Question =====
  
 +The e-mailadress is required via a question of the type [[:en:create:questions:opt-in]]. You should think early on where in the first questionnaire you would like to place this question. Of course, in any case, you should mention early on that this is a survey with multiple questionnaires and that the questionnaire will ask for the email address.
  
 +Some respondents do not want to provide their email address (whether due to spam/advertising concerns or privacy considerations) and thus cannot be invited to the second part of the survey.
  
-===== Request Email Address at the Beginning =====+Asking for the email address very early in the first questionnaire has the following advantages:
  
-  * A mailing is creating beforehand for each survey wave (even for the first) (**Invitation Mailings** -> **Mailings**)In the //Questionnaire URL// tab, which questionnaire should be used for the individual waves is set+  * Participants who categorically do not wish to provide an email address will be excluded from the study right at the startThese participants do not waste time on the first questionnaire. 
-  * The participant has to register their email address for the study beforehand. An additional questionnaire is created in the survey project in order to do so (**Compose Questionnaire** -> //Further Questionnaires//). This questionnaire only contains a question type "[[:en:create:questions:opt-in|Opt/in for Mailing List]]". +  * You can work with ''[[:en:create:functions:mailresume|mailResume()]]'' and breaker pages. This allows to collect all data of a participant in one data line. Otherwise, you will receive several data lines for each participant (one per questionnaire).
-  * After this there are two options: +
-  +
  
-==== Manual Sending of Invitations ====+Asking for the email address by the end of the first questionnaire has the following advantages:
  
-This makes sense if participants should fill in the questionnaire around the same timeThe period of the survey continues over several days as not everyone will respond to the email immediately -- in particulardata collected over a longer period of recruitment are more comparable in terms of time than when mailings are dispatched automatically (see below).+  * You will receive more data records for the first questionnaire -- this is useful if you can also utilize the data from the first questionnaire separately. 
 +  * By the end of the first questionnaireone has already invested some time in participating and has (hopefullybeen able to gain some confidence in the researcher's honorable intentions. This makes it more likely that participants will reveal their email address.
  
-  * Adresses are collected over a period of time -- and when there are enough addresses in the **Address List**, the first mailing (invitation to take part in the first questionnaire) will be sent to everyone. 
-  * Further invitations will be manually (and at the same time for everyone) sent using the mailing function. 
  
 +===== Step 1: Create Questionnaires ======
  
-==== Automatic Sending of Invitations ====+A total of three questionnaires are required, hereafter referred to as "A1", "A2" (for the first wave) and "B". Create them under **Compose questionnaire**. Which identifiers you actually use for the questionnaires is irrelevant.
  
-This option is sensible when participants should start the survey straightaway after registering.+  - The first questionnaire (A1) is used for recruitment, here among other things the e-mail address is requested. Participants fill out this questionnaire immediately after [[:en:survey:url|calling up the questionnaire link]]. 
 +  - The second questionnaire (A2) is called when participants confirm their e-mail address (double opt-in). So ideally a few minutes after A1. This questionnaire prepares the sending of the invitation mails for the second survey date. 
 +  - A third questionnaire (B) contains the questions for the second survey wave. If further survey dates are planned, additional questionnaires may be needed (C, D, E, ...).
  
-  In the Opt-in question in //Personalized link from//, the first mailing is selected. This means the participant will begin with the first questionnaire directly after confirming their email address. +Unter **Fragebogen zusammenstellen** -> Karteireiter //Einstellugen// legen Sie für die Fragebögen "A2" und "B" bitte den [[:de:create:access|Zugriffsmodus]] "Serienmail" festSo ist sichergestelltdass sich nicht isoliert aufgerufen werden können.
-  * At the end of the questionnaire, the PHP function ''[[:en:create:functions:mailschedule|mailSchedule()]]'' (for separate data records) or ''[[:en:create:functions:mailresume|mailResume()]]'' (if all waves should be saved in one data record) will be used in order to schedule the time-controlled sending of the next mailing(s)Independent of which two functions you usespecify ''false'' for the first parameter and the ID of the mailing for the second parameter. +
-  +
-===== Request Email Address at the End of the First Questionnaire =====+
  
-  * An "[[:en:create:questions:opt-in|Opt-in for Mailing List]]" question type is also needed for this option. This is placed at the end of the first questionnaire -- it makes sense to include a reference to the next waves of survey. +Under **Compose questionnaire** -> **Manage questionnaires** please select questionnaire A1 under //Standard questionnaire// and save this setting ({{:button.save.png|Save button}})..
-  * In addition, you need another questionnaire (**Compose Questionnaire** -> //Further Questionnaires//, which takes care of the time-controlled sending of mailing(s). If you want to send invitations manually using the mailing function, this additional questionnaire is obviously not necessary. +
-  * Create a mailing for each survey wave (even for the first) (**Invitation Mailings** -> **Mailings**). In the //Questionnaire Link// tab, which questionnaire should be used for the individual waves is setFor the first mailing, the link does not point to the first questionnaire, but to the additional questionnaire which takes care of the time-controlled sending. +
-  * The scheduling of the time-controlled mailing occurs by using the ''[[:en:create:functions:mailschedule|mailSchedule()]]'' functionGive ''false'' for the first parameter in this function, the ID of the mailing for the second parameter. +
-  * Choose this particular mailing in the opt-in question in //Personalized link from//. The sending of further invitation emails will then be executed immediately on completion of the opt-in confirmation+
  
-===== Example =====+The questions for the first survey time point can be distributed between "A1" and "A2" as desired.
  
-The following example demonstrates the use of ''[[:en:create:functions:mailresume|mailResume()]]'' and ''[[:en:create:functions:mailrevoke|mailRevoke()]]'' for a survey with three measuring periods, where all data belonging to a participant will be stored in the same line of dataPossible areas of application arefor example, a follow-up measurement, intervention study, or pre/post analysis +Create a question of type [[:en:create:questions:opt-in]] in the **question catalog**. Under //Privacy// in the tab //Settings for the question// "Pseudonym" must be entered here. At //Functionality// the default setting should be "Double Opt-In". You must also enter at least a //Subject// and a //Content of the Confirmation Mail//. The latter text must have the wildcard ''%opt-in%''At this pointthe confirmation link is then inserted during the dispatch.
  
-==== Functions ====+With double opt-in, a confirmation email is first sent to the registered email address. Only when the participant clicks on the link in the confirmation mail, the e-mail address will be added to the mail distribution list (**Send invitations** -> **Address list**). This ensures that the email address is correct and that a third party does not simply register foreign email addresses for the study.
  
-  * Participants automatically receive an invitation to the next time of measurement (next part of the questionnaire) after a certain time and will not have access to the questions in the next part of the questionnaire prior to this. +Then insert the opt-in question at an appropriate place in questionnaire A1.
-  * Participants automatically receive reminder emails, if they do not respond to the first invitation to the next time of measurement within a certain amount of time.+
  
-==== Preparation ==== 
  
-All parts in the questionnaire are arranged one after the other in one questionnaire. "Mailings" is set as the access mode for the questionnaire.+===== Step 2: Serial Mails =====
  
-If the participants' email addresses are __not__ known in advance, a second questionnaire with a question [[:de:create:questions:opt-in|Opt-in for Email Distribution List]] is created"public" is set as the access mode for this questionnaire. +Now select **Send Invidation**. There, SoSci Survey may first ask you to agree on an AVV. This is because e-mail addresses are [[:en:general:dsgvo|personal data]], which enjoy special protection under the DSGVO, among other thingsYou must comply with some information obligations (e.g. in the questionnaire) and you must agree on a GCU before using a subcontractor (e.g. Sosci Survey GmbH) to process such data. If you are unsure, please contact the data protection officer (DPO) at your university, institution or company.
  
-Create a mailing (ID 1 in the example) which sends a invitation to the second time of measurement after 7 days. In the "Reminder/Follow-up" tab, the "Type of follow-up" is set so that there is a reminder or follow-up. In the email text the %link% placeholder has to be used (as usual).+Now please create two [[:en:survey:mailing|serial mails]] under **Send invitations** -> **Serial mails**.
  
-Create two more mailings (ID 2 and 3 in the example)These serve as a reminderif the participant is yet to fill in the second part of the questionnaire after 9 or 11 days (settings are the same as in mailing 1).+  - The serial mail no. 1 is only used to call the questionnaire "A2". It is never actually sent, i.e., the content is not further relevant. However, it is important that the questionnaire "A2" is selected in the //Link to questionnaire// tab. 
 +  - The serial mail no. 2 is the invitation to the second survey wave. It will be sent delayed and its number (e.g. 2) will be needed later in the PHP code for the function ''[[:en:create:functions:mailschedule]]''
 +  - If you plan additional survey times, create additional serial emails accordingly, one per survey time point. You can also create reminder emails in case participants do not respond to the first invitation email.
  
-Create three more mailings (ID 4-in the example): An invitation to the third part and two reminders (settings are the same as in mailing 1). +Now please open the opt-in question again for editing. Under //Additional settings//, tab //Confirmation// select under //Forward after confirmation// -> //Questionnaire link off// now please select the serial mail 1. Save this setting ({{:button.save.png|Save question}}).
  
 +The process so far is as follows:
  
-==== PHP Code for Time 1 ====+  - The participant clicks on the link to the questionnaire ([[:en:survey:participants]]) and thus gets to questionnaire A1. 
 +  - There he answers questions and (sooner or later) enters his e-mail address in the opt-in question. 
 +  - Once the email address has been entered and the data has been submitted to the server by clicking the "Next" button, SoSci Survey will send a confirmation email to the email address provided. 
 +  - The participant receives the e-mail and clicks on the confirmation link. This now opens the A2 questionnaire.
  
-The values (numbers) in the PHP code are to be adapted to each study, in particular regarding time intervals and mailing IDs. 
  
-In **Compose Questionnaire**, an additional page (page interruption) is inserted between the first and second part of the questionnaire. The following PHP code is put on this page.+===== Schritt 3: Mailversand automatisieren =====
  
 +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.
 +
 +Oftmals soll der Versand der Einladung aber automatisiert erfolgen. Entweder zu einem vorab definierten Zeitpunkt oder eine bestimmte Zeitspanne nach dem Aufrunf von A2. Dafür wird im Fragebogen A2 [[:de:create:php|PHP-Code]] verwendet, spezifisch der Befehl ''[[:de:create:functions:mailschedule]]''.
 +
 +Fügen Sie auf der ersten Seite des Fragebogens A2 ein Element "PHP-Code" ein und darin den folgenden Befehl:
 +
 +<code php>
 +mailSchedule(false, 2, 7 * 24 * 3600);
 +</code>
 +
 +Der Befehl ''mailSchedule()'' hat drei Parameter.
 +
 +  - 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.
 +  - 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). Alterantiv 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-Einstellugen** 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>
 +
 +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.
 +
 +
 +===== Hinweise für Teilnehmer =====
 +
 +Im Fragebogen A1 sollten Sie den Teilnehmer auf Folgendes hinweisen:
 +
 +  * Je nachdem, welchen Provider oder Mailserver der Teilnehmer verwendet, kann sich die Zustellung der Bestätigungsmail verzögern -- üblich sind 0 bis 30 Minuten.
 +  * Manchmal verfangen sich Bestätigungsmails im Spam-Filter.
 +  * 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.
 +
 +
 +===== Manueller Versand der Einladungen =====
 +
 +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.
 +
 +Dieses Vorgehen ist sinnvoll, wenn alle 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 (wo dafür der Zeitabstand zwischen den beiden Erhebungswellen gleich ist).
 +
 +  * Es werden eine Weile Adressen gesammelt -- und wenn genug Adressen in der **Adressliste** liegen, wird die Serienmail Nr. 2 (Einladung zum Fragebogen "B") an alle verschickt.
 +  * Sollte die Rekrutierung danach noch forgesetzt werden, kann die Serienmail nach Bedarf erneut verschickt werden. Teilnehmer, welche die Serienmail schon erhalten haben, erhalten sie __nicht__ erneut. Sofern weitere Befragungswellen erfolgen sollen, können weitere Serienmails verschickt werden.
 +
 +
 +===== Datensatz =====
 +
 +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:
 +
 +  - Antworten auf "A1" -- die Kennung des Teilnehmers ist hier in der Variable der Opt-In-Frage vermerkt.
 +  - Antworten auf "A2" -- die Kennung steht hier in der Variable //SERIAL//.
 +  - Antworten auf "B" -- die Kennung steht hier erneut in //SERIAL//.
 +
 +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.
 +
 +
 +===== 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> <code php>
-// time which the page interruption was first accessed in stored in the $timepart1 variable. +// Die Zeit des ersten Aufrufs der Unterbrecherseite wird in Variable $timepart1 gespeichert 
-// isset() und registerVariable() prevent this time being changed when the page is accessed again (e.gif the page is refreshedand/or emails being duplicated.+// isset() und registerVariable() verhindern, dass diese Zeit beim erneuten Aufruf der Seite (z.BNeuladen der Seitegeändert wird und/oder dass E-Mails doppelt geplant werden
 if (!isset($timepart1)) { if (!isset($timepart1)) {
-  // store time+  // Zeit speichern
   $timepart1 = time();   $timepart1 = time();
   registerVariable($timepart1);   registerVariable($timepart1);
  
-  // Send invitation with mailing ID 1 for the second period of measurement after days +  // Einladung mit der Serienmail ID 1 zum zweiten Messzeitpunkt nach Tagen senden 
-  // Time interval always given in seconds 7 x 24 x 3600 seconds = 7 days+  // Der Zeitabstand wird jeweils in Sekunden angegeben: 7 x 24 x 3600 Sekunden = 7 Tage
   mailResume(false, 1, 7 * 24 * 3600);   mailResume(false, 1, 7 * 24 * 3600);
  
-  // Send first reminder email with mailing ID 2 after days +  // Erste Erinnerungsmail mit Serienmail ID 2 nach Tagen senden 
-  // (i.etwo days after the first invitation to the second period of measurement)+  // (d.hzwei Tage nach der ersten Einladung zum zweiten Messzeitpunkt)
   mailResume(false, 2, 9 * 24 * 3600);   mailResume(false, 2, 9 * 24 * 3600);
  
-  // Send second reminder email with mailing ID 3 after 11 days +  // Zweite Erinnerungsmail mit Serienmail ID 3 nach 11 Tagen senden 
-  // (i.efour days after the first invitation)+  // (d.hvier Tage nach der ersten Einladung)
   mailResume(false, 3, 11 * 24 * 3600);   mailResume(false, 3, 11 * 24 * 3600);
  
  
-// Check how much time has passed since the page was first accessed+// Prüfen, wie viel Zeit seit dem ersten Aufruf der Seite vergangen ist
 if ((time() - $timepart1) < 7 * 24 * 3600) { if ((time() - $timepart1) < 7 * 24 * 3600) {
-  // Display page interruption if this is less than days+  // Unterbrecherseite anzeigen falls es weniger als Tage sind
-  // so participants cannot see the questions in the second period of measurement before this time has passed+  // damit Teilnehmer nicht schon früher die Fragen des zweiten Messzeitpunkts sehen können
-  option('resume', true); // No indication that the interview is being resumed. +  option('resume', true); // Kein Hinweis, dass das Interview fortgesetzt wird 
-  option('nextbutton', false); // Hide Next button (Interview interrupted+  option('nextbutton', false); // Weiter-Knopf ausblenden (Interview unterbrechen
-  text('end1');  // Maybe display a farewell indicating the end of the first part of the interview.+  text('ende1');  // Evtleine Verabschiedung zum ersten Fragebogen-Teil anzeigen
 } else { } else {
-  // If the participant returns after days, making the current time minus the new time variable +  // Ist der Teilnehmer nach Tagen zurückgekehrt und somit die aktuelle Zeit minus die neue Zeit-Variable 
-  // more than daysthen the survey will be resumed on the next page.+  // größer als Tage istdann wird die Befragung auf der nächsten Seite fortgesetzt
   goToPage('next');   goToPage('next');
 } }
Line 106: Line 217:
  
  
-==== PHP Code for Time 2 ==== +==== PHP-Code für Zeitpunkt 2 ====
- +
-A new page interruption is placed between the second and third parts of the questionnaire. To a great extent, the PHP code complies with the code above. However, mailRevoke() ensures that potential outstanding reminders (mailings ID 2 and 3) are no longer sent.+
  
 +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.
  
 <code php> <code php>
-// New time variable for the second period+// Neue Zeit-Variable für die zweiten Zeitpunkt
 if (!isset($timepart2)) { if (!isset($timepart2)) {
   $timepart2 = time();   $timepart2 = time();
   registerVariable($timepart2);   registerVariable($timepart2);
-  // Delete reminder emails if they are outstanding+  // Erinnerungsmails löschen, falls diese noch ausstehen
   mailRevoke(false, 2);   mailRevoke(false, 2);
   mailRevoke(false, 3);   mailRevoke(false, 3);
  
-  // Send invitation with mailing ID 4 to the third period of measurement after days+  // Einladung zum dritten Messzeitpunkt mit der Serienmail ID 4 nach Tagen senden
   mailResume(false, 4, 7 * 24 * 3600);   mailResume(false, 4, 7 * 24 * 3600);
  
-  // First reminder email after days+  // Erste Erinnerungsmail nach Tagen
   mailResume(false, 5, 9 * 24 * 3600);   mailResume(false, 5, 9 * 24 * 3600);
  
-  // Second reminder email after 11 days+  // Zweite Erinnerungsmail nach 11 Tagen
   mailResume(false, 6, 11 * 24 * 3600);   mailResume(false, 6, 11 * 24 * 3600);
  
  
-// Pause for days+// Unterbrechung für Tage
 if ((time() - $timepart2) < 7 * 24 * 3600) { if ((time() - $timepart2) < 7 * 24 * 3600) {
   option('resume', true);   option('resume', true);
Line 139: Line 249:
 </code> </code>
  
-==== PHP Code for Time 3 ==== 
  
-Any reminder emails that are yet to be sent have to be deleted on the penultimate page of the questionnaire.+==== PHP-Code für Zeitpunkt 3 ==== 
 + 
 +Auf der vorletzten Seite des Fragebogens müssen noch die eventuell ausstehenden Erinnerungsmails gelöscht werden.
  
 <code php> <code php>
Line 148: Line 259:
 </code> </code>
  
-==== Tips ==== 
- 
-**Important:** Do not place any questions on the interruption pages - the above PHP code only shows text (thanks, farewell and information regarding the next period of measurement). 
- 
-**Note:** The invitation to the third part of the questionnaire takes place in relation to the time the participant follows the invitation to part 2. Therefore, if they fill do not fill out part 2 until 10 days after part 1, the invitation to part 3 will be sent 17 days after part 1 has been filled out. Alternatively, you could include all (!) invitations and reminders right at the end of part 1. The filter at the end of part 2 would then have to refer to ''$timepart1'' instead of ''$timepart2''. 
  
-**Note:** The attendance status for the follow-up and reminder mailings are __not__ apparent in the address list (mailings are in gray). The attendance status will only be displayed for a potential Opt-in mailing. However, in order to get a feeling for the attendance status, you are able to look at data that has already been collected. Individual attribution using the SERIAL variable is only possible if email addresses have been imported using the "Personalized entry" setting for "Anonymity".+==== Hinweise ====
  
-**Tip:** The same reminder emails can be used multiple times (with a general reminder text). In the above examplemailing ID 2 could be sent for all reminders (i.e. instead of mailings ID 3, 5 and 5).+**Wichtig:** Platzieren Sie auf den Unterbrecherseiten keine Fragen -- der PHP-Code oben sieht lediglich einen Text vor (DankeVerabschiedung 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.
  
 +**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.
  
- +**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 3, 5 und 5) senden.
en/survey/opt-in-live.txt · Last modified: 07.09.2022 20:57 by admin
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki