0 votes
in SoSci Survey (dt.) by s311342 (120 points)
edited by s311342

Hallo liebes SoSci Survey Support Team,

ich bin gerade dabei im Rahmen eines Uni-Seminars eine Studie zu programmieren.
Bei der Studie werden Versuchspersonen in zwei Gruppen aufgeteilt - Experimental- und Kontrollgruppe. Hierfür habe ich bereits einen Zufallsgenerator erstellt und in den Fragebogen eingefügt.

Nun soll den Versuchspersonen in einem Zeitraum von 2 Wochen alle drei Tage ein Einladungslink zu einem Video (nicht auf SoSci Survey, sondern extern) und einem Fragebogen (auf SoSci Survey) zugeschickt bekommen. Auch das habe ich grundsätzlich mit Serienmails und mailSchedule hinbekommen.
Allerdings erhält die Kontrollgruppe andere Videos als die Experimentalgruppe. Jede Gruppe erhält im Laufe der zwei Wochen jeweils fünf Videos. Alle davon sind separat als Serienmails angelegt. Wie integriere ich nun in den mailSchedule-Befehl, welche Videos an die Experimentalgruppe (Gruppe 1) und welche an die Kontrollgruppe geschickt werden bzw. "wenn Gruppe 1" werden Videos 1-5 geschickt und "wenn Gruppe 2" Videos 6-10?

Am besten wäre ein Lösung mit mailSchedule und nicht mit mailResume, da ich leider nicht mehr viel Zeit habe, um alles für mailResume anzupassen.

Vielen Dank für die Hilfe und liebe Grüße!

1 Answer

0 votes
by SoSci Survey (348k points)

Ich gehe davon aus, dass Sie die Personen im ersten Fragebogen mittels Opt-In-Frage nach ihrer E-Mail-Adresse fragen?

Am einfachsten wäre es in dem Fall, wenn Sie abhängig von der Gruppenzuordnung eine von zwei unterschiedlichen Opt-In-Fragen anzeigen, und in jeder eine andere "Teilgruppe" vorgeben. Dann können Sie in jedem Folge-Fragebogen über panelData() die Gruppe ermitteln.

Und natürlich haben Sie im ersten Fragebogen die Möglichkeit, per PHP-Filter unterschiedliche mailSchedule()-Befehle aufzurufen. Also z.B. den Versand von Serienmail 1 an die Kontrollgruppe und den Versand von Serienmail 2 an die Experimentalgruppe.

by s311342 (120 points)
Hallo, danke für die schnelle Antwort!
Leider kenne ich mich überhaupt nicht mit Programmieren etc. aus.

Zu der ersten Variante: Wie kann ich bei einer Opt-In-Frage denn eine Teilgruppe vorgeben? Und könnte ich es irgendwie einstellen, dass der Versuchsperson nur zufällig eine Opt-In-Frage angezeigt wird?

Zur zweiten Variante: Das war die Lösung, die ich ursprünglich anstreben wollte. Mein Problem ist, dass ich nicht weiß, wie ich das in den PHP-Code schreiben soll. Was schreibe ich da am besten?
Und kann ich mit dieser Lösung auch wirklich den Mailversand für alle Mails in den kommenden zwei Wochen planen?

Vielen Dank!
by SoSci Survey (348k points)
> Leider kenne ich mich überhaupt nicht mit Programmieren etc. aus.

Dann ist jetzt der ideale Zeitpunkt, sich das ein wenig anzusehen :)

> Wie kann ich bei einer Opt-In-Frage denn eine Teilgruppe vorgeben?

Öffnen Sie die Frage im Fragenkatalog zum Bearbeiten und tragen Sie eine beliebige Bezeichnung für die Teilgruppe unter "Teilgruppe zuordnen" ein.

> Und könnte ich es irgendwie einstellen, dass der Versuchsperson nur zufällig eine Opt-In-Frage angezeigt wird?

Dazu lesen Sie bitte https://www.soscisurvey.de/help/doku.php/de:create:randomization-question

> Mein Problem ist, dass ich nicht weiß, wie ich das in den PHP-Code schreiben soll.

Lesen Sie sich bitte mal die Anleitung zu PHP-Filtern durch (https://www.soscisurvey.de/help/doku.php/de:create:php-filters), dann wird es ein wenig klarer. Die Details klären wir dann hier im Support.

> Kann ich mit dieser Lösung auch wirklich den Mailversand für alle Mails in den kommenden zwei Wochen planen?

Ja, Sie können natürlich nicht nur eine Mail planen, sondern auch mehrere. Dafür wird die Zeile mit mailSchedule() mehrfach wiederholt.
by s311342 (120 points)
Jetzt verstehe ich auf jeden Fall schon einmal mehr, danke.

Wieder zur ersten Variante: Ich erstelle also einen Zufallsgenerator, auf die Seiten danach werden zwei Opt-Ins gesetzt, die den jeweiligen Teilgruppen zugeordnet werden. Die Opt-Ins werden randomisiert.
Wie mache ich dann das mit dem Mailverteiler? Setze ich auf die gleiche Seite wie den Opt-In mit Gruppe 1 dann auch den PHP-Code mit mailSchedule für Gruppe 1 (analog Gruppe 2)? Würde das funktionieren?

Zu Variante 2: Bei der Seite, die Sie verlinkt haben, ist das große Stichwort ja "if". Könnte ich es so schreiben, damit es funktioniert?:
if (value ('Zufallsgenerator') == 1 (für Gruppe 1) { (hier dann die gesammelten mailSchedule-Befehle für Gruppe 1, also: mailSchedule (false, 1, strtotime('+1 day 14:00'));
mailSchedule (false, 2, strtotime('+4 days 14:00'));
mailSchedule (false, 3, strtotime('+7 days 14:00'));
mailSchedule (false, 4, strtotime('+10 days 14:00'));
mailSchedule (false, 5, strtotime('+13 days 14:00'));
}

Und was mir gerade noch eingefallen ist: Wo platziere ich bei dieser Variante den PHP-Code? Auf der gleichen Seite wie der Zufallsgenerator, wie der Mail-Verteiler oder doch auf einer eigenen Seite?
by SoSci Survey (348k points)
> auf die Seiten danach werden zwei Opt-Ins gesetzt

Fast. Sie schreiben ein paar Zeilen PHP-Code, der eine von den beiden Fragen einbindet - Sie dürfen die Fragen aber nicht (!) zusätzlich auf die Seiten ziehen.

> Wie mache ich dann das mit dem Mailverteiler?

Das ist ein wenig komplizierter, wenn Sie mit Double Opt-In arbeiten, weil die E-Mail-Adresse dann erst bestätigt werden muss. Sehen Sie sich dazu mal das hier an: https://www.soscisurvey.de/help/doku.php/de:survey:opt-in-live

Beim Single-Opt-In ist es ein wenig einfacher.

> Zu Variante 2: Bei der Seite, die Sie verlinkt haben, ist das große Stichwort ja "if".

Ihr Code ist so natürlich noch nicht auffähig, aber im Prinzip: Ja :)

> Wo platziere ich bei dieser Variante den PHP-Code? Auf der gleichen Seite wie der Zufallsgenerator

Ja, den können Sie direkt unterhalb des Zufallsgenerators platzieren, oder auf jeder beliebigen Seite danach.
by s311342 (120 points)
Dann würde ich vermutlich bei der zweiten Variante bleiben.
Was würde denn noch fehlen, damit der Code funktioniert?
by SoSci Survey (348k points)
Nun, da stehen noch ein paar Platzhalter wie "Zufallsgenerator" oder "(für Gruppe 1)". Das ließt sich so als ob Ihnen schon klar wäre, dass an der Stelle noch etwas anderes eingesetzt werden muss.

Allerdings müssen Sie auch bei Variante 2 überlegen, an welcher Stelle das Opt-In erfolgt. Denn das mailSchedule(false, ...) funktioniert erst, wenn das Opt-In bestätigt wurde (oder wenn man ein Single-Opt-In verwendet und dann statt false ein value(...) einsetzt).
by s311342 (120 points)
Die Platzhalter ersetze ich natürlich noch durch die richtigen Bezeichnungen.

Aber es würde bei dem Opt-In doch reichen, wenn ich mailSchedule auf die Seite nach nach dem Opt-In setze, oder?
Bei einem Single-Opt-In würde man also einfach mailSchedule (value (), ...) schreiben? Oder wird dann alles (1, strtotime('+1 day 14:00')) in die Klammer von value gesetzt?

Danke für die Hilfe auch am Wochenende!
by s311342 (120 points)
Und könnte man den den Code für Erinnerungsmails auch einfach darunter setzen?
by SoSci Survey (348k points)
Wenn Sie ein Single-Opt-In OI01 hätten, wäre es auf der nächsten Seite

mailSchedule(value('OI01'), 1, strtotime('+1 day 14:00'));

> Und könnte man den den Code für Erinnerungsmails auch einfach darunter setzen?

Ja.
by s311342 (120 points)
Ich habe jetzt einmal alles in die Tat umgesetzt: Ich habe auf der 1. Seite den Zufallsgenerator, auf der Seite danach das Opt-In und auf der Seite danach folgenden PHP-Code:

if (value('ZG01') == 1) {mailSchedule (value('MA01'), 1, strtotime('+1 day 14:00'));
mailSchedule (value('MA01'), 2, strtotime('+4 days 14:00'));
mailSchedule (value('MA01'), 3, strtotime('+7 days 14:00'));
mailSchedule (value('MA01'), 4, strtotime('+10 days 14:00'));
mailSchedule (value('MA01'), 5, strtotime('+13 days 14:00'));
}
elseif (value('ZG01') == 2) {mailSchedule (value('MA01'), 6, strtotime('+1 day 14:00'));
mailSchedule (value('MA01'), 7, strtotime('+4 days 14:00'));
mailSchedule (value('MA01'), 8, strtotime('+7 days 14:00'));
mailSchedule (value('MA01'), 9, strtotime('+10 days 14:00'));
mailSchedule (value('MA01'), 10, strtotime('+13 days 14:00'));
}

(Folgendes sind zwei Fragebögen, die an alle Versuchspersonen, unabhängig von der Gruppe, verschickt werden)
mailSchedule (value('MA01'), 11, strtotime('+6 days 14:00'));

mailSchedule (value('MA01'), 12, strtotime('+14 days 14:00'));

So sollte ja jetzt alles passen, oder? Den Code für die Erinnerungsmails habe ich noch nicht erstellt, ich würde ihn aber ja dann einfach darunter setzen. Vielen Dank für Ihre Hilfe!
by SoSci Survey (348k points)
Sieht gut aus, aber Sie sollten das Procedere mit ein paar eigenen E-Mail-Adressen (z.B. mit Wegwerfadressen) mal testen. Tragen Sie zum Testen einfach kürzere Intervalle ein, z.B. "hours" statt "days".

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

...