This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
en:survey:opt-in-live [25.06.2015 10:40] – [PHP Code for Time 1] alexander.ritter | en:survey:opt-in-live [24.05.2021 14:49] – sophia.schauer | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Multi-Wave Surveys with Self-Selection | + | ====== Multi-Wave Surveys with Self-Recruited Respondents |
- | As a general rule, participants' | + | If you want to use the [[: |
- | The two options differ from each other, if the participant has to disclose | + | However, if participants are recruited through links on a website, social media or via advertising banners, |
- | If the participant has to " | ||
- | Another advantage | + | ===== Position |
+ | The e-mailadress is required via a question of the type [[: | ||
+ | Some respondents do not want to provide their email address (whether due to spam/ | ||
- | ===== 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 // | + | * Participants who categorically do not wish to provide an email address will be excluded from the study right at the start. These 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// | + | * You can work with '' |
- | * After this there are two options: | + | |
- | | + | |
- | ==== Manual Sending | + | 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 | + | * You will receive more data records for the first questionnaire |
+ | * By the end of the first questionnaire, one has already invested some time in participating and has (hopefully) been able to gain some confidence in the researcher' | ||
- | * 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 | + | A total of three questionnaires are required, hereafter referred to as " |
- | This option | + | - The first questionnaire (A1) is used for recruitment, |
+ | - The second questionnaire (A2) is called | ||
+ | - 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, ...). | ||
- | | + | Unter **Fragebogen zusammenstellen** -> Karteireiter |
- | * At the end of the questionnaire, | + | |
- | + | ||
- | ===== Request Email Address at the End of the First Questionnaire ===== | + | |
- | * An " | + | 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 | + | |
- | * 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 set. For the first mailing, the link does not point to the first questionnaire, | + | |
- | * The scheduling of the time-controlled mailing occurs by using the '' | + | |
- | * Choose this particular mailing in the opt-in question in // | + | |
- | ===== Example ===== | + | The questions for the first survey time point can be distributed between " |
- | The following example demonstrates the use of '' | + | Create a question |
- | ==== 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 | + | Then insert |
- | * 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. " | + | ===== Step 2: Serial Mails ===== |
- | If the participants' | + | Now select **Send Invidation**. There, SoSci Survey may first ask you to agree on an AVV. This is because e-mail |
- | Create a mailing | + | Now please create two [[: |
- | Create two more mailings (ID 2 and 3 in the example). These serve as a reminder, if the participant | + | - The serial mail no. 1 is only used to call the questionnaire " |
+ | - The serial mail no. 2 is the invitation to the second survey wave. It will be sent delayed and its number | ||
+ | - If you plan additional survey times, create additional serial emails accordingly, | ||
- | Create | + | Now please open the opt-in question again for editing. Under // |
+ | |||
+ | The process so far is as follows: | ||
+ | |||
+ | - The participant clicks on the link to the questionnaire ([[: | ||
+ | - 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 " | ||
+ | - The participant receives the e-mail and clicks on the confirmation link. This now opens the A2 questionnaire. | ||
+ | |||
+ | |||
+ | ===== Step 3: Automate Mail Delivery ===== | ||
+ | |||
+ | In principle, you could already work with the previous solution. The email addresses are stored in the **Address List** and you could send the serial email #2 manually to send the invitation for the second survey date. | ||
+ | |||
+ | Often, however, the sending of the invitation should be automated. Either at a predefined time or a certain period of time after the call of A2. Therefore A2 [[: | ||
+ | |||
+ | On the first page of the A2 questionnaire, | ||
+ | |||
+ | <code php> | ||
+ | mailSchedule(false, | ||
+ | </ | ||
+ | |||
+ | The comand '' | ||
+ | |||
+ | - The first one specifies the address entry to which the invitation mail should be sent. After our participant has reached the questionnaire A2 through the (individual) confirmation link, SoSci Survey already knows the correct address entry, therefore '' | ||
+ | - The second parameter indicates which serial mail should be sent. In the example above, this is the serial mail with the number 2. | ||
+ | - The third parameter specifies the time when the serial mail should be sent. This can be either a time span in seconds or a Unix timestamp. In the example above the timestamp is 7 days (7 times 24 hours á 3600 seconds). Alternatively, | ||
+ | |||
+ | **Tip:** For testing, enter a small value for the third parameter, e.g. 300 seconds (5 minutes). | ||
+ | |||
+ | **Tip:** Use disposable email addresses for testing ([[https:// | ||
+ | |||
+ | You can test the registration with an e-mail address as often as you like, as long as you delete the address from the address list afterwards (**Send invitations** -> **Address list**). An email address is blocked for 10 minutes after the opt-in email is sent before another opt-in email can be sent. | ||
+ | |||
+ | **Tip:** Start the first questionnaire under **Create Questionnaire** in debug mode ({{: | ||
+ | |||
+ | If you now call up the first questionnaire, | ||
+ | |||
+ | |||
+ | ==== Multiple Serial Mails ==== | ||
+ | |||
+ | If you want to send multiple invitations at different times, then simply repeat the '' | ||
+ | |||
+ | <code php> | ||
+ | // Invitation mails | ||
+ | mailSchedule(false, | ||
+ | mailSchedule(false, | ||
+ | mailSchedule(false, | ||
+ | // Reminder | ||
+ | mailSchedule(false, | ||
+ | mailSchedule(false, | ||
+ | mailSchedule(false, | ||
+ | </ | ||
+ | |||
+ | You create a reminder email in the same way as you create a serial email. Then, in the // | ||
+ | |||
+ | |||
+ | ===== Note for Respondants ===== | ||
+ | |||
+ | In questionnaire A1, you should point out the following to the participant: | ||
+ | |||
+ | * Depending on which provider or mail server the subscriber is using, the delivery of the confirmation mail may be delayed -- usually 0 to 30 minutes. | ||
+ | * Sometimes confirmation emails get caught in the spam filter. | ||
+ | * To continue the survey, it is necessary to click on the confirmation link in the confirmation email. If you are not able to click on the link directly (very rare), you may have to copy it into the address line of your internet browser. | ||
+ | |||
+ | |||
+ | ===== Manual Sending of the Invitations ===== | ||
+ | |||
+ | As an alternative to the automated preparation of sending serial mail No. 2, you can also send this serial mail manually -- '' | ||
+ | |||
+ | This procedure is useful if all participants are to complete the questionnaire at approximately the same time. Although the survey period still extends over several days, because not everyone responds to the e-mail immediately -- especially in the case of longer recruitment, | ||
+ | |||
+ | * Addresses are collected for a while -- and when there are enough addresses in the **address list**, the serial mail No. 2 (invitation to questionnaire " | ||
+ | * If the recruitment continues after that, the serial mail can be sent again as needed. Participants who have already received the serial mail will __not__ receive it again. If further survey waves are to be carried out, additional serial e-mails can be sent. | ||
+ | |||
+ | |||
+ | ===== Dataset===== | ||
+ | |||
+ | In the dataset, you end up with three rows of data per participant -- at least if the participant provided a valid email address and clicked on the links in both emails: | ||
+ | |||
+ | - Responses to " | ||
+ | - Responses to " | ||
+ | - Responses to " | ||
+ | |||
+ | If all answers are later to be merged into one data row in the statistical software (MERGE), then it is expedient to use different questions in all three questionnaires, | ||
+ | |||
+ | |||
+ | ===== Data in a Data Row ===== | ||
+ | |||
+ | Instead of using different questionnaires for " | ||
+ | |||
+ | The following | ||
+ | |||
+ | |||
+ | ==== Fuctions ==== | ||
+ | |||
+ | * Participants automatically receive an invitation to the next measurement point (next questionnaire part) after a certain time and should not have access to the questions of the next questionnaire part before this time has expired. | ||
+ | * Participants receive automatic reminder emails if they do not respond to the first invitation to the next measurement point within a certain time. | ||
+ | |||
+ | |||
+ | ==== Preparations ==== | ||
+ | |||
+ | All questionnaire parts are arranged one after the other in one questionnaire. " | ||
+ | |||
+ | If the email addresses of the participants are __not__ known in advance, a second questionnaire with a question [[: | ||
+ | |||
+ | Create a serial mail (in the example ID 1), which should be sent after 7 days as an invitation for the measurement time point 2. In the " | ||
+ | |||
+ | Create two more serial mails (in the example ID 2 and 3). These serve as a reminder if the participant has still completed the second questionnaire part after 9 or 11 days (settings as for serial mail 1). | ||
+ | |||
+ | Create three more serial mails (in the example ID 4-6): An invitation to the third part and two reminders (settings as for serial mail 1). | ||
==== PHP Code for Time 1 ==== | ==== PHP Code for Time 1 ==== | ||
- | The values (numbers) in the PHP code are to be adapted | + | The values (numbers) in the PHP code are to be adjusted according |
+ | |||
+ | Between the first and the second part of the questionnaire an additional page is inserted (interrupter page). The interrupter page has the following function: | ||
+ | |||
+ | * It sends the invitation to the next questionnaire part by means of '' | ||
+ | * When the participant first accesses the page (at the end of the first part of the questionnaire), | ||
+ | * When the participant accesses the page again (after receiving the invitation to the second questionnaire part) it directly redirects to the next page. | ||
- | In **Compose Questionnaire**, an additional | + | **Importanta:** The participant must actually click through to the page on which the PHP code was inserted. Otherwise, no invitation email will be sent. If the last page of the first questionnaire |
+ | When **Compose Questionnaire**, | ||
<code php> | <code php> | ||
- | // Time which the page interruption was first accessed in stored in the $timepart1 | + | // The time of the first call of the breaker page is stored in variable |
- | // isset() | + | // isset() |
if (!isset($timepart1)) { | if (!isset($timepart1)) { | ||
- | // store time | + | // sve time |
$timepart1 = time(); | $timepart1 = time(); | ||
registerVariable($timepart1); | registerVariable($timepart1); | ||
- | // Send invitation with mailing | + | // Send invitation with serial mail ID 1 at the second measurement |
- | // Time interval | + | // The time interval |
mailResume(false, | mailResume(false, | ||
- | // Send first reminder | + | // Send first reminder |
- | // (i.e. two days after the first invitation to the second | + | // (i.e. two days after the first invitation to the second measurement |
mailResume(false, | mailResume(false, | ||
- | // Send second reminder | + | // Send second reminder |
// (i.e. four days after the first invitation) | // (i.e. four days after the first invitation) | ||
mailResume(false, | mailResume(false, | ||
Line 93: | Line 204: | ||
// Check how much time has passed since the page was first accessed | // Check how much time has passed since the page was first accessed | ||
if ((time() - $timepart1) < 7 * 24 * 3600) { | if ((time() - $timepart1) < 7 * 24 * 3600) { | ||
- | // Display | + | // Show breaker |
- | // so participants cannot see the questions | + | // so that participants cannot see the questions |
- | option(' | + | option(' |
- | option(' | + | option(' |
- | text('end1' | + | text('ende1' |
} else { | } else { | ||
- | // If the participant | + | // If the participant |
- | // more than 7 days, then the survey | + | // is greater |
goToPage(' | goToPage(' | ||
} | } | ||
Line 108: | Line 219: | ||
==== PHP Code for Time 2 ==== | ==== PHP Code for Time 2 ==== | ||
- | A new page interruption is placed between | + | Between |
<code php> | <code php> | ||
- | // New time variable for the second | + | // New time variable for the second |
if (!isset($timepart2)) { | if (!isset($timepart2)) { | ||
$timepart2 = time(); | $timepart2 = time(); | ||
registerVariable($timepart2); | registerVariable($timepart2); | ||
- | // Delete | + | // Delete |
mailRevoke(false, | mailRevoke(false, | ||
mailRevoke(false, | mailRevoke(false, | ||
- | // Send invitation | + | // Send invitation to third measurement |
mailResume(false, | mailResume(false, | ||
- | // First reminder | + | // First reminder after 9 days |
mailResume(false, | mailResume(false, | ||
- | // Second reminder | + | // Second reminder after 11 days |
mailResume(false, | mailResume(false, | ||
} | } | ||
- | // Pause for 7 days | + | // Interruption |
if ((time() - $timepart2) < 7 * 24 * 3600) { | if ((time() - $timepart2) < 7 * 24 * 3600) { | ||
option(' | option(' | ||
Line 138: | Line 248: | ||
} | } | ||
</ | </ | ||
+ | |||
==== PHP Code for Time 3 ==== | ==== PHP Code for Time 3 ==== | ||
- | Any reminder emails | + | On the third to last page of the questionnaire, |
<code php> | <code php> | ||
Line 148: | Line 259: | ||
</ | </ | ||
- | ==== Tips ==== | ||
- | |||
- | **Important: | ||
- | |||
- | **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, | ||
- | **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 " | + | ==== Notes ==== |
- | **Tip:** The same reminder emails can be used multiple times (with a general reminder text). In the above example, mailing ID 2 could be sent for all reminders | + | **Important:** Do not place any questions on the breaker pages -- the PHP code above only provides |
+ | **Note:** The invitation to the third questionnaire part takes place relatively at the time when the participant has accepted the invitation to part 2. So if he completes Part 2 only 10 days after Part 1, then the invitation to Part 3 will not be sent until 17 days after Part 1 is completed. Alternatively, | ||
+ | **Note:** In the address list, the participation status for the continuation and reminder serial mails __not__ is visible (gray marking for the serial mails). The participation status is only displayed for a possible opt-in serial mail. However, in order to track the participation status, one can look at the data already collected. An individual assignment based on the SERIAL variable is, however, only possible if the e-mail address was imported with the " | ||
- | + | **Tip:** You can use the same reminders multiple times (with a general reminder text). In the above example, you could send serial mail ID 2 for all reminders (so instead of serial mails ID 3, 4 and 5). |