0 votes
in SoSci Survey (dt.) by s082232 (470 points)

Liebes Support-Team,

wir würden gern eine Soft Launch unserer mehrsprachigen Befragung machen und dann den Fragebogen ggf. anpassen. Wir erheben mit Selbstrekrutierung und automatischem Versand des ersten Fragebogens nach Double-Opt-in.

Idealerweise sollen jeweils 10 Menschen pro Sprache den Fragebogen beantworten. Alle weiteren, die sich danach anmelden, sollen in eine Art Wartezimmer versetzt werden. Das heißt sie sollen den Fragebogen dennoch erhalten, aber erst nach einer Pause von 48 Stunden, damit wir Zeit haben, Änderungen vorzunehmen.

Ich habe mich etwas zur Quotierung belesen, aber das passt nicht so ganz, da wir die Teilnehmenden ja nicht abweisen, sondern nur ins Wartezimmer schicken wollen. Gibt es da eine Möglichkeit?

Vielen Dank für Ihre Hilfe!

1 Answer

0 votes
by SoSci Survey (339k points)

Alle weiteren, die sich danach anmelden, sollen in eine Art Wartezimmer versetzt werden.

Also nach dem Opt-In - das heißt, sie sollen nach Bestätigung der E-Mail-Adresse nicht direkt fortfahren, sondern nach 48 Stunden nochmal eine E-Mail bekommen?

Kein Problem. Die Quotierung haben sie ja schon gefunden. Die Funktion ist im Prinzip die richtige. Was Sie erstmal brauchen, ist ein Extra-Fragebogen. Der wird nach der Bestätigung im Double-Opt-In aufgerufen (vgl. Mehrwellige Befragungen bei Selbstrekrutierung).

Dieser Extra-Fragebogen zählt nun die Quoten. Und je nachdem, ob Sie dann aus einem Land weniger oder mehr als 10 Fälle haben, leitet der Fragebogen entweder per goToQuestionnaire() zum eigentlichen Fragebogen oder verwendet mailSchedule(), um eine E-Mail in 48 Stunden zu versenden.

by s082232 (470 points)
Vielen Dank! Ich habe jetzt etwas herumexperimentiert und folgenden Code entwickelt (aktuell mit Testeinstellungen):

// Auslesen Sprache
put('SD29_01', getLanguage());
$lang = value('SD29_01');
debug($lang);

// Definition Quoten
$quotaLang = [
    'eng' => 2,
    'ger' => 10,
    'fre' => 10,
    'zho' => 10,
    'jpn' => 10,
    'hin' => 10,
    'por' => 10,
    'spa' => 10,
    'dut' => 10,
];


// Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$casesLang = statistic('count', 'SD29_01', $lang);

// Auslesen der Quoten für die angegeben Merkmale
$maxPerLang = $quotaLang[$lang];

// Panel Update
put('SD29_01', $lang);
debug($casesLang);
 
// Quotenstopp
if (($casesLang >= $maxPerLang)) {
    mailSchedule(false, 10, 60);
    goToPage('end');
} else {
    goToQuestionnaire('base');
}

Das funktioniert auf den ersten Blick ganz gut.

Allerdings ist mir nicht ganz klar, wie genau die Quoten gezählt werden, also was z.B. passiert, wenn die Leute mehrfach auf den Link in ihrer Serienmail klicken.

Und ich muss vermutlich neue Serienmails anlegen für die vorerst zurückgestellten Personen, richtig? Der Hauptfragebogen ist auf die Personen zugeschnitten, die den Haupt-Fragebogen direkt beantworten, inkl. Erinnerungsmails. Wenn die zurückgestellten Personen den Hauptfragebogen über eine neue Serienmail aufrufen (ID 10 statt ID1), benötigen sie vermutlich eigene Erinnerungen, die auch im Hauptfragebogen entsprechend hinterlegt werden müssen. Den Versand der ursprünglichen Erinnerungsmails habe ich blockiert durch den Befehl goToPage('end').

Und es sieht so aus als würden die Personen, die direkt zum Hauptfragebogen gelangen, nicht korrekt behandelt. Zum einen werden sie nicht als abgeschlossen vermerkt, obwohl der Hauptfragebogen vollständig ausgefüllt wurde. Zum anderen kann keine Information aus $info['mailing']; ausgelesen werden.

Vielen Dank für Ihre Hilfe!
by SoSci Survey (339k points)
> wie genau die Quoten gezählt werden

Der statistic() Befehl zählt standardmäßig nur abgeschlossene Fälle, vgl. https://www.soscisurvey.de/help/doku.php/de:create:functions:statistic

Falls Sie das noch genauer steuern möchten, könnten Sie das put('SD29_01', getLanguage()); an eine andere Stelle setzen, mehr dazu unten.

> Wenn die zurückgestellten Personen den Hauptfragebogen über eine neue Serienmail aufrufen (ID 10 statt ID1), benötigen sie vermutlich eigene Erinnerungen

Über die Funktion panelData() können Sie ermitteln, ob jemand per Serienmail teilgenommen hat und wenn ja, über welche. Eventuell reicht das schon, um den Hauptfragebogen geeignet zu variieren.

> Wenn die zurückgestellten Personen den Hauptfragebogen über eine neue Serienmail aufrufen (ID 10 statt ID1), benötigen sie vermutlich eigene Erinnerungen

Ich sehe spontan keine Notwendigkeit, bei den Erinnerungsmails zu differenzieren. Eventuell müssen Sie nur den Zeitpunkt anpassen, wann diese verschickt werden sollen.

> Und es sieht so aus als würden die Personen, die direkt zum Hauptfragebogen gelangen, nicht korrekt behandelt.

Wenn Sie mittels goToQuestionnaire() den aktuellen Fragebogen verlassen, wird der Fall nicht als abgeschlossen markiert, das ist korrekt. Sie können aber folgende Zeile ergänzen, um zumindest den korrekten Status zu vermerken:

setStatus('complete');

Und ja, für die statistic()-Funktion ist das problematisch. Auf welcher Seite des Fragebogens steht denn Ihr Quotestopp? Vermutlich müssen Sie in statistic() noch angeben, dass auch unvollständige Fälle gezählt werden sollen.

Und wie kommen die Befragten denn zu diesem ersten Fragebogen? Nachdem Sie mailSchedule(false,...) verwenden, vermute ich, dass sie bereits mit einem personalisierten Link dorthin gelangen. Das würde aber auch bedeuten, dass sie bei mehrfachem Aufruf des Links immer im selben Fall landen und mehrfache Aufrufe daher für die statistic()-Funktion unproblematisch wären.

> Zum anderen kann keine Information aus $info['mailing']; ausgelesen werden.

Sprechen wir von panelData()? Wenn ja, dann lassen Sie sich doch mal ein debug($info) ausgeben. Setzen Sie im Adresseintrag das Häkchen, dass es sich um einen Test-Eintrag handelt (vor dem Erzeugen des Links/Versand der Serienmail), damit Sie Debug-Informationen sehen.
by s082232 (470 points)
Die Versuchspersonen melden sich über einen Opt-in Fragebogen an und erhalten dann eine erste Serienmail inkl. Link. Der Link führt zum Quoten-Fragebogen, wo dann zu einem dritten Base-Fragebogen weitergeleitet wird. Dieser hat noch eine Menge eigenen Code, der aber außer Kraft gesetzt wird durch die Weiterleitung:

option('progress', 'no');
$info = panelData(); // read data from SoSci address panel

if ($info) {
$studyWave = $info['mailing']; // mail number
put('SD21_01',$studyWave); // save wave in questionnaire data
registerVariable($studyWave);
}

if (($studyWave == 1) or ($studyWave == 2) or ($studyWave == 7)) { // if first or second wave
setPageOrder('Filter-AN, end');
} elseif (($studyWave == 3) or ($studyWave == 4) or ($studyWave == 8)) {
setPageOrder('Filter, Beginner-Beginner2, Med1-Pers, Religion2, AN, end');
} else {
setPageOrder('Filter, Beginner-Beginner2, Med1-Pers, Religion2, AN-end');
}

//schedule all mails
//Erinnerung Mail 1
mailSchedule(false, 2, strtotime('+3 day'), ['status' => 'incomplete']);
mailSchedule(false, 7, strtotime('+7 day'), ['status' => 'incomplete']);
// Wave 2
mailSchedule(false, 3, strtotime('+182 day'));
mailSchedule(false, 4, strtotime('+185 day'), ['status' => 'incomplete']);
mailSchedule(false, 8, strtotime('+189 day'), ['status' => 'incomplete']);
// Wave 3
mailSchedule(false, 5, strtotime('+365 day'));
mailSchedule(false, 6, strtotime('+368 day'), ['status' => 'incomplete']);
mailSch
by SoSci Survey (339k points)
Nachdem der dritte Fragebogen in jedem Fall über einen Serienmail-Link aufgerufen wird, sollte panelData() eigentlich immer zuverlässig Daten liefern.

Wenn die Serienmails 2 und 7 Reminder für die allererste Teilnahme sind, wären die zugehörigen mailSchedule()-Befehle in dem Warteraum-Fragebogen wahrscheinlich besser aufgehoben als im Hauptfragebogen.

>  der aber außer Kraft gesetzt wird durch die Weiterleitung

Ich sehe im obigen Code keinen Filter, der irgendetwas außer Kraft setzen würde? Das scheint mir aber auch nicht notwendig, wenn ich Ihre Beschreibung korrekt verstehe.
by s082232 (470 points)
Das Problem ist, dass der Code auf die Serienmail mit der ID1 zurückgreift, die auf den Quoten-Fragebogen verlinkt, d.h. nur wenn dieser nicht abgeschlossen wurde, werden entsprechende Erinnerungen verschickt.

Die Teilenehmenden aus dem Wartezimmer benötigen eine neue Serienmail, da die erste bereits beim Opt-in verschickt wurde. Wenn sie Erinnerungen für die erste Mail bekommen, landen sie wieder beim Quoten-Fragebogen und werden wieder aussortiert...

Oder kann man da etwas anders einstellen?
by SoSci Survey (339k points)
Ja, jede Serienmail darf nur einmal pro Adresseintrag verwendet werden. Wenn sie eine Serienmail versenden möchten, dürfen Sie diese nicht auch für die Opt-In-Weiterleitung verwenden und umgekehrt.

Und ja, wenn sich die Reminder auf eine andere Serienmail beziehen, dann brauchen Sie auch dort evtl. zusätzliche. Denn die Reminder für den Quoten-Fragebogen und jene für den Warteraum können ja theoretisch beide notwendig werden.
by s082232 (470 points)
Dankeschön! Allerdings ist mir noch nicht ganz klar, wie ich die Erinnerungsmails setzen soll. Die Serienmails 2 und 7 sind Erinnerungen für die erste Serienmail, die nach dem Opt-in versendet wird, aber nun auf den Quoten-Fragebogen verweist. D.h. nur wenn der Quoten-Fragebogen nicht beendet wird, werden sie versendet. Das ist aber unabhängig vom Beenden des Hauptfragebogens...

Wenn ich also setStatus('complete'); setze, dann bekommen sie gar keine Erinnerungen. Kann ich es irgendwie einstellen, dass die Erinnerungen immer zum Hauptfragebogen führen?
by SoSci Survey (339k points)
> Die Serienmails 2 und 7 sind Erinnerungen für die erste Serienmail, die nach dem Opt-in versendet wird, aber nun auf den Quoten-Fragebogen verweist.

Nun, wahrscheinlich sollten Sie die Reminder für "nach dem Opt-In" erstmal mittels mailRevoke() deaktivieren, wenn jemand im Warteraum ist. Und dann planen Sie ja ohnehin eine weitere Serienmail, um für die eigentliche Befragung einzuladen. Und für diese können Sie natürlich auch gleich noch 2 Reminder planen.

Ob die Idee mit dem Warteraum ein so hervorragende Idee ist, weiß ich nicht. Vielleicht wäre es sinnvoller, gleich beim Opt-In das Land abzufragen (da könnten sie mit der subgroup der Adresseinträge arbeiten), sodass Sie Ihren Softstart gezielt aussteuern können und die Leute nicht mehrfach auf einen Fragebogen klicken müssen, nur um zu erfahren, dass sie nochmal warten müssen. Da dürfen Sie zwischen jedem Klick ca. 40% Dropout rechnen. Mit den Remindern weniger, aber immer noch einiges.
by s082232 (470 points)
Danke für Ihre Hilfe und Ihre Einschätzung. Wir haben jetzt beschlossen doch ohne Warteraum zu arbeiten und den Fragebogen vorerst nicht zu breit zu streuen um nur eine kleine Gruppe am Anfang zu rekrutieren. Aber einen Versuch war es auf jeden Fall Wert!

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...