This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
en:survey:opt-in-live [15.07.2015 21:19] – admin | en:survey:opt-in-live [23.05.2024 08:40] (current) – admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Multi-Wave Surveys with Self-Recruited Respondents ====== | ====== 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 " |
+ | |||
+ | Create a question of type [[: | ||
+ | |||
+ | 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 (**List of Contacts**). This ensures that the email address is correct and that a third party does not simply register foreign email addresses for the study. | ||
+ | |||
+ | Then insert the opt-in question at an appropriate place in questionnaire A1. | ||
+ | |||
+ | **Note:** Later you have to make some changes | ||
+ | ===== Step 2: Mailing | ||
+ | |||
+ | Now select **Invitation Mailings**. There, SoSci Survey may first ask you to agree on a DPA. This is because e-mail addresses are [[: | ||
+ | |||
+ | Now please create two [[: | ||
+ | |||
+ | - The mailing no. 1 is only used to call the questionnaire " | ||
+ | - The mailing | ||
+ | - If you plan additional survey times, create additional mailings accordingly, | ||
+ | |||
+ | Now please open the opt-in question again for editing. Under //Detail Settings//, tab // | ||
+ | |||
+ | 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 **List of Contacts** and you could send the mailing ID 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 mailing should be sent. In the example above, this is the mailing with the ID 2. | ||
+ | - The third parameter specifies the time when the emails 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 (**List of Contacts**). 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 **Compose Questionnaire** in debug mode ({{: | ||
+ | |||
+ | If you now call up the first questionnaire, | ||
+ | |||
+ | |||
+ | ==== Multiple Mailings ==== | ||
+ | |||
+ | 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 the initial invitation mailing. 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 mailing ID 2, you can also send this mailing 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 **List of Contacts**, the mailing ID 2 (invitation to questionnaire " | ||
+ | * If the recruitment continues after that, the mailing can be sent again as needed. Participants who have already received the mailing will __not__ receive it again. If further survey waves are to be carried out, additional mailings can be created. | ||
+ | |||
+ | |||
+ | ===== 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 example demonstrates the use of '' | ||
- | The following example demonstrates the use of '' | ||
==== Functions ==== | ==== Functions ==== | ||
- | * 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 | + | * Participants automatically receive an invitation to the next measurement |
- | * Participants | + | * Participants receive |
- | ==== Preparation ==== | ||
- | All parts in the questionnaire are arranged one after the other in one questionnaire. " | + | ==== Preparations ==== |
- | If the participants' | + | All questionnaire parts are arranged one after the other in one questionnaire. "Mailing / Access URL" is set as the access mode for the questionnaire. |
- | Create a mailing (ID 1 in the example) which sends a invitation to the second time of measurement after 7 days. In the " | + | If the email addresses |
- | Create | + | Create |
- | Create three more mailings (ID 4-6 in the example): An invitation to the third part and two reminders (settings | + | Create two more mailings (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 mailing ID 1). |
+ | |||
+ | Create three more mailings (in the example | ||
==== 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 | + | **Important:** 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 | + | // Send invitation mailing |
- | // 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 with mailing ID 4 to the third period of measurement | + | // Send invitation |
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 **List of Contacts**, the participation status for the continuation and reminder mailings __not__ is visible (gray marking for the mailings). The participation status is only displayed for a possible opt-in mailing. 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 mailing ID 2 for all reminders (so instead of mailings ID 3, 4 and 5). |