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

Hallo und vielen Dank für die bisherige Hilfe - dadurch bin ich schon ziemlich weit gekommen.

Damit Sie eventuell noch genauer verstehen, wo mein Problem ist, hier mal ein Paar Bilder und mein Vorgehen. Nachdem ich die vorherigen Tipps (und ja es ist immer der User) alle angewendet habe, stehe ich nun noch vor folgendem Problem:

  1. Wo genau soll ich die Interne Variable platzieren. Ist der php-Code so richtig?
  2. Wann soll ich die Gruppenzugehörigkeit also den Zufallsgenerator anwenden. Am liebsten direkt nach Eingang der E-mail, dass konnte ich nicht finden. Bis gestern hatte ich noch das Vorhaben 3 Fragebogen zu haben und diese dann den Texten+Fragen der Experimental- oder Kontrollgruppe zuzuweisen -in einem Fragebogen.

Nun mit dem lesen über panelData() und den dazugehörigen Informationen habe ich die Fragebogen bzw. beide Gruppen in zwei unterschiedliche Fragebogen aufgeteilt (nun 6 Fragebogen) die dementsprechenden an den 3 aufeinander folgenden Tagen jeweils die richtigen E-Mail zugesendet bekommen.

Mir fehlt jetzt noch absolut das Verständnis wo ich a) die Gruppeneinteilung sei´s per Zufallsgenerator oder über den Adresseintrag den ich bis Dato auch nicht verstehe (vielleicht sollte ich den pre Test durchführen und verstehe es dann, weil dann auch Daten auftauchen) - bisher habe ich mit einigen wegwerf-mails zumindest ein wenig Verständnis bekommen.

  1. Dann ist mir nicht ganz klar ob es nicht reicht wenn die Personen entweder die E-mail bekommen, da ich ihnen dann lediglich den Link mit einer der beiden Gruppen zukommen lasse oder ob ich da zusätzlich noch die - $group = $info['subgroup'];
    put('IV01_01', $group); - info als php-Code vermitteln muss. (s.Sceenshot)

  2. Ich habe alle Anweisungen die letzten 4 Wochen intensiv durchgelesen (dadurch fällt natürlich auch vieles wesentlich leichter) aber mir fehlt immer noch das kleine bisschen damit er Test fertig wird. Ich hoffe wirklich sehr, dass Sie mein Problem erkennen und mir helfen können, damit ich mich nicht immer weiter verzettele.

  3. Bei der Zeit des Versendens ist mir auch nicht ganz klar, ob ich ein eigene Seite brauche oder wie in den php-code einfach darunter anbringe -

  1. Bin ich da mit der Gleichverteilten Ziehung nun richtig - ich habe da mittlerweile so viel unterschiedliches gelesen das ich mir unsicher bin, weil ich ja immer wieder was geändert habe - generell was es bei mir wichtig, dass die Verteilung trotz "wahrscheinlich hoher Abbrecher" gleich bleibt !

  2. Das durchlesen der Anleitung für MailSchedule() hat mir nicht geholfen weil ich nicht weiß wo ich das einsetzte.

Hier noch das Bild wie ich die Gruppeneinteilung vorher hatte alle auf einer Seite, da kann man auch auf einen Text verweisen, bei der Neuen Variante die ich aber wegen dem panelData(), so wie ich es gelesen habe, brauche. Jetzt kann ich das nicht mehr so machen, weil ich ja keinen entweder/oder Text mehr auf der Seite habe. Vielleicht irre ich mich ja auch und soll es wieder anders machen deswegen habe ich den Vorgang hier auch nochmal mit rein gebracht.

Danke nochmal für das Bemühen - es hilft wirklich!

1 Answer

0 votes
by SoSci Survey (350k points)

Puh, das sind ziemlich viele Fragen auf einmal, ich versuche, das kompat zu beantworten, aber vielleicht müssen wir die ein oder ander Detailfrage in eine separate Frage auslagern.

Wo genau soll ich die Interne Variable platzieren. Ist der php-Code so richtig?

Ich habe den Kontext nicht genau im Kopf, aber höchstwahrscheinlich müssen Sie die interne Variable auf gar keine Seite ziehen. Diese Frage existiert nur dafür im Fragenkatalog, damit Sie mittels put() etwas in die Variable schreiben und per value() bei Bedarf wieder auslesen können.

Wann soll ich die Gruppenzugehörigkeit also den Zufallsgenerator anwenden. Am liebsten direkt nach Eingang der E-mail, dass konnte ich nicht finden.

Sie verwenden ein Opt-In mit Double-Opt-In, also mit Bestätigungsmail? Wenn dem so ist, dann definieren Sie einen Fragebogen, der direkt nach der Bestätigung der E-Mail-Adresse aufgerufen wird, und verwenden Sie dort den Zufallsgenerator.

Mir fehlt jetzt noch absolut das Verständnis wo ich a) die Gruppeneinteilung sei´s per Zufallsgenerator oder über den Adresseintrag den ich bis Dato auch nicht verstehe (vielleicht sollte ich den pre Test durchführen und verstehe es dann, weil dann auch Daten auftauchen) - bisher habe ich mit einigen wegwerf-mails zumindest ein wenig Verständnis bekommen.

Ja, testen Sie mal - und verwenden Sie möglichst viel die Debug-Information. Die macht einiges klarer, was im Hintergrund passiert.

Nehmen wir mal an, Sie schreiben die Gruppenzugehörigkeit mittels panelUpdate() in den Adresseintrag, dann können Sie das erstmal in der Adressliste sehen, wenn Sie den entsprechenden Adresseintrag anklicken.

Und in den folgenden Fragebögen können Sie es mit panelData() aufrufen, da bekiommen Sie allerdings ein Array (s. Anleitung) mit allen möglichen Infos, und müssen sich noch den richtigen Eintrag heraussuchen. Damit Sie etwas sehen:

debug(panelData());

Dann ist mir nicht ganz klar ob es nicht reicht wenn die Personen entweder die E-mail bekommen, da ich ihnen dann lediglich den Link mit einer der beiden Gruppen zukommen lasse oder ob ich da zusätzlich noch die - $group = $info['subgroup'];

Wir haben mehrere verschiedene Varianten. Es kommt darauf an, ob Sie die Experimentalgruppe vor der Opt-In-Frage festlegen möchten oder erst danach, z.B. nach Bestätigung der Mailadresse.

Das $group = $info['subgroup'] würden Sie auf alle Fälle erst in einem späteren Fragebogen verwenden.

Ich hoffe wirklich sehr, dass Sie mein Problem erkennen und mir helfen können, damit ich mich nicht immer weiter verzettele.

Lassen Sie uns das Schritt für Schritt angehen. Schritt 1: Überlegen Sie sich, an welcher Stelle die Randomisierung erfolgen soll. Schritt 2: Sehen wir zu, dass diese Info im Adresseintrag landet. Schritt 3: Holen wir die Info in den späteren Fragebögen wieder aus dem Adresseintrag und zeigen dann die richtigen Inhalte.

Bei der Zeit des Versendens ist mir auch nicht ganz klar, ob ich ein eigene Seite brauche oder wie in den php-code einfach darunter anbringe

Die mailSchedule() Befehle können Sie direkt mit anderen Fragen auf einer Seite platzieren. Oder eben in einem separaten Fragebogen, wenn Sie das mit dem Double-Opt-In und der Bestätigung machen (s. Mehrwellige Befragungen bei Selbstrekrutierung).

Bin ich da mit der Gleichverteilten Ziehung nun richtig

Ja.

Das durchlesen der Anleitung für MailSchedule() hat mir nicht geholfen weil ich nicht weiß wo ich das einsetzte.

Wahrscheinlich in dem Extra-Fragebogen, der nach dem Double-Opt-In aufgerufen wird (s. Anleitugn oben). Dieser Befehl macht das, was Sie normalerweise unter Serienmail -> versenden bei den Einstellungen manuell festlegen würden. Nur dass er eben nur den Versand an eine Person vorbereitet und nicht an alle.

Hier noch das Bild wie ich die Gruppeneinteilung vorher hatte alle auf einer Seite,

Das ist für Anfänger, Sie sind inzwischen fortgeschritten ;)

by s325843 (120 points)
Heute bin ich ein ganzes Stück weiter gekommen.

Allerdings haben sich einige Probleme eingeschlichen, ich hoffe die können wir noch gemeinsam klären:

Die Debug-Funktion hat hervorragend funktioniert und ich konnte mit dem was ich in die Php-eingetragen habe gut arbeiten. auf jede erste Seite Schreiben Tag 1-3

panelData();
mailSchedule(false, 3, 120);

zumindest bilde ich mir ein das dadurch mein Datensatz dann abgerufen wird und die Test haben auch immer den gleichen "SERIAL" bei allen TEST hinterlassen Tag (Serienmail)  1-5

Im DEBUG Modus bekomm ich da mal eine Meldung und mal nicht - was heißt das wenn ich damit dann ins Feld gehen würde und was muss ich eventuell noch ändern. Nicht das ich das was verändere und dann nichts mehr geht.

panelData();

if (value('RD01') == 1) {
  mailSchedule(false, 2, 60);
}
else
{ mailSchedule(false, 5, 120);
}


Unter meiner Gruppeneinteilung, die ich direkt auf der ersten Seite meines 2ten Fragebogens A2 eingefügt habe (diesen bekommen alle - Problem 2 weiter unten) , konnte ich dadurch die unterschiedlichen Zuordnungen zur Experimental- und Kontrollgruppe mehrmals prüfen. Hat geklappt.

Serienmails laufen dann wie erwartet gut ab. Das einzige was ich dann noch machen muss ist statt der Zeit - mailSchedule(false, 5, 120);

das noch für den nächsten Tag einzutragen ich glaube, dass war dann mit der stortime-Funkfion - ist es richtig, dass ich mit dem Befehl

mailSchedule(false, 2, strtotime('next day 12:00:00'));

direkt am nächsten Tag die Mail um 8:00 bekomme oder muss ich das auf einen Wochentag festlegen - das ist für meine Studie nicht vorgesehen. Ich hoffe das klappt.

Problem 2:
(A1 - ist ja der "Wartefragebogen den ich übrigens bei dem ersten Neuanordnen der Serienmail gelöscht habe und dann nicht wieder neu erstellt habe) da lag auch das Problem. Jetzt habe ich den A10 aber auf die gleiche weise Verlinkt und es klappt.

Jetzt ist es so, wenn ich den 1sten Link den ich verschicke der nur die DSGVO und den Email-Eintrag enthält also noch keine Gruppenzuordnung dann passiert folgendes:

Entweder es gibt den Ablauf wie beschrieben richtig ab oder er nimmt eine Mail die schon längst nicht mehr in den Serienmail verankert ist. Ich erkenne das, weil ich ausversehen in der zweiten Serienmail den Hinweis gegeben habe, dass die Teilnehmenden ihre E-Mail Adresse hinterlassen soll. Ist natürlich nach bereits eingetroffener E-Mail hinfällig.

Diese Serienmail taucht aber nirgendwo auf und ich weiß auch nicht wie ich das Problem beheben soll. Ich hab schon Angst das komplette Projekt neu erstellen zu müssen.

Das zweite Problem was dabei entsteht und das ist meiner Meinung nach das eigentlich wesentliche Problem - wenn die Teilnehmenden auf diesen Pfad geleitet werden (den ich nicht finde) dann können sie den Fragebogen einerseits immer wieder ausfüllen (bitte nicht) und andererseits kommen sie dann auf die erste Seite zurück - ich weiß, dass ich das am Anfang mal eingestellt habe aber nicht für die neue Abfolge.

Eine Weitere Frage ist:
Kann man beim Pretest diese Abfolge der richtigen Reihenfolge auch testen weil ich ja 5 einzelne Fragebögen habe und der link zum verschicken ja immer einzelne sind.

Das zweite Problem was ich beim Pretest habe ist, dass er mir natürlich den Kommentar gibt das dieser Test nicht mit der Serienmail begonnen wurde und deswegen ein testen nicht möglich ist - was muss ich dabei beachten gibt es eine Möglichkeit?

Kann man Projekte komplett Kopieren?

Könnte ich das Projekt auch aktivieren und es dennoch nur testen oder stoße ich dann einen Prozess an? Und Eventuell dann eingetragene Daten löschen die dadurch entstehen?

Danke nochmal für die Hilfe!
by SoSci Survey (350k points)
> im DEBUG Modus bekomm ich da mal eine Meldung und mal nicht

Wenn ich Ihnen mehr zu Meldungen sagen soll, dann müssen Sie mir deren Wortlaut verraten.

> mailSchedule(false, 2, strtotime('next day 12:00:00'));

Ja, das würde als Zeitpunkt den jeweils morgigen Tag um 12 Uhr berechnen.

> Entweder es gibt den Ablauf wie beschrieben richtig ab oder er nimmt eine Mail die schon längst nicht mehr in den Serienmail verankert ist.

Eigentlich kann SoSci Survey keine E-Mails verschicken, deren Inhalt er nicht aus den existierenden Serienmails laden kann. Aber prüfen Sie doch bitte mal, ob sich der HTML- und Text-Inhalt einer Serienmail unterscheidet. Womöglich haben Sie eingestellt, dass Sie diese beiden Inhalte getrennt verwalten möchten. Verschickt werden immer beide Teile (außer Sie deaktivieren HTML ganz) und je nach E-Mail-Client sehen Sie dann die Text- oder die HTML-Version.

> wenn die Teilnehmenden auf diesen Pfad geleitet werden (den ich nicht finde) dann können sie den Fragebogen einerseits immer wieder ausfüllen

Um das zu klären müssten Sie mir mal einen Link schicken, welcher dieses Problem verursacht. Stellen Sie im Fragebogen auch die Zugriffsbeschränkung "Serienmail" ein. Wenn der Fragebogen auf "öffentlich" steht, dann kann man auch mit ungültigen Links teilnehmen, und zwar beliebig oft.

> Kann man beim Pretest diese Abfolge der richtigen Reihenfolge auch testen weil ich ja 5 einzelne Fragebögen habe und der link zum verschicken ja immer einzelne sind.

Wenn Sie beim Versand jeweils 10 Minuten Pause lassen, sollte das gut zu testen sein.

> dass er mir natürlich den Kommentar gibt das dieser Test nicht mit der Serienmail begonnen wurde

Wenn Sie eine E-Mail-Adresse im Debug-Modus eintragen, dann wird sie in der Adressliste orange markiert und alle Fragebögen starten dann auch im Debug-Modus.

Wenn Sie eine Adresse direkt in die Adressliste importieren, können Sie da ein Kreuzchen setzen, dass die Fragebögen im Debug-Modus starten sollen.

> Kann man Projekte komplett Kopieren?

Ja, wie das geht, wird in der Anleitung beschrieben.

> Könnte ich das Projekt auch aktivieren und es dennoch nur testen

Ja können Sie. Das Eintragen eines Befragungszeitraums hat keine weiteren Nebeneffekte. Aber mit dem o.g. Vorgehen, dass Sie einen Debug-Adresseintrag verwenden, sollte es eigentlich nicht notwendig sein.
by s325843 (120 points)
Nach mehrmaligen Tests hat nun soweit alles funktioniert - Meine Frage ist nun da ich das leider nicht gefunden habe, wie ich die Follow-up Befragung nach 4 Wochen auch um 8:00 verschicken und habe diesbezüglich keinen Code gefunden: mein bisheriger Versuch hat im Debug-Modus folgenden Fehlercode ausgegeben:

"Das dritte Argument in der Funktion mailSchedule() muss eine Zahl sein. Der Wert +2 days 08:00 ist ungültig."

Das ist der php-Code:

"panelData();
mailSchedule(false, 9, ('+2 days 08:00'));"

außerdem wollte ich in diesem Fall Fragen wie sich das einstellen lässt, dass ich die Frage durch die Teilnehmenden bejahen oder verneinen lasse und wollte das dann automatisch mit dessen Antwort verknüpfen - also wenn Sie bei der Follow-up ja drücken das Sie dann die Mail bekommen und wenn nicht dann keine automatische Mail mehr nach 4 Wochen. Lässt sich das irgendwie Programmieren? Wahrscheinlich müsste der Code dann auch in die letzte Serienmail bzw. den letzten Fragebogen so dass man dort Abfragt wenn aus vorheriger Frage z.B. A101 Antwort ja dann Serienmail versenden ansonsten nicht - aber auch hier habe ich keinen Code gefunden.

Vielen Dank
by SoSci Survey (350k points)
> mailSchedule(false, 9, ('+2 days 08:00'));

da fehlt die Funktion strtotime(), welche die Angabe '+2 days 08:00' in einen Unix-Zeitstempel umrechnet.

mailSchedule(false, 9, strtotime('+2 days 08:00'));

oder eben

mailSchedule(false, 9, strtotime('+4 weeks 08:00'));

> also wenn Sie bei der Follow-up ja drücken das Sie dann die Mail bekommen und wenn nicht dann keine automatische Mail mehr nach 4 Wochen.

Entweder Sie wissen das schon zum Zeitpunkt, wo Sie mailSchedule() aufrufen...

if (value('AB01') == 1) {
    mailSchedule(false, 9, strtotime('+4 weeks 08:00'));
}

Damit würde der Mailversand nur eingeplant, wenn in AB01 die Antwort 1 ausgewählt wurde.

Oder Sie erledigen das nachträglich in einem der Follow-Ups, das ginge mit mailRevoke(). Damit werden künftig geplante Serienmails storniert.
by s325843 (120 points)
Hallo und Danke für die Rückmeldung ich weiß das sehr zu schätzen,

kann ich bei der Datenschutzbestimmung auch eine Weiterleitung z.B. auf Seite 03 des ersten Fragebogen (noch vor der E-mail Abfrage) machen? wo dann die email abgefragt wird und bei der Beantwortung mit "nein, möchte nicht an der Studie teilnehmen", direkt auf die von Survey eingestellt End-Seite also in dem Fall Seite 04, sodass nicht welche teilnehmen, die der DSGVO (hier ja im besonderen der pseudonymisierten Verarbeitung der Daten) nicht zugestimmt haben.

Ich gehe davon aus dass es ein Befehl sein könnte der in etwa so aussieht:

if (value('BB01') == 1) {
goToPage(EMAIL);
}
else {
  goToPage(end);
}

Allerdings ist dadurch der Survey "WEITER" Button verschwunden und es passiert auch nichts. Gibt es da eine andere Lösung oder soll ich dann einfach hoffen, dass die VPn dann ihre email nicht eintragen, bzw. diese dann im nachhinein aussortieren.   

Außerdem teste ich gerade ob ich mit Ihrer vorherigen Antwort richtig liege, wenn ich den Code nicht wie bisher an der ersten Seite platziere sondern direkt auf der Seite wo sich die Frage AB01 befindet, sodass ich nicht mit mailRevoke() arbeiten muss. Ich hoffe das klappt auch.

Danke
by s325843 (120 points)
Test fehlgeschlagen:

Außerdem teste ich gerade ob ich mit Ihrer vorherigen Antwort richtig liege, wenn ich den Code nicht wie bisher an der ersten Seite platziere sondern direkt auf der Seite wo sich die Frage AB01 befindet, sodass ich nicht mit mailRevoke() arbeiten muss. Ich hoffe das klappt auch.

ich bekomme keine Follow-up Mail

panelData();
if (value('A108') == 1) {
    mailSchedule(false, 9, 30);
}

und alle anderen haben wie immer funktioniert? Was mache ich falsch?
by SoSci Survey (350k points)
> kann ich bei der Datenschutzbestimmung auch eine Weiterleitung z.B. auf Seite 03 des ersten Fragebogen (noch vor der E-mail Abfrage) machen?

Ich sehe nicht genau, welchen Zweck eine Weiterleitung hat.

Das einzige, was Sie m.E. benötigen ist ein Filter, der beim "Nein" ein Screenout auslöst. Entweder durch einen Filter direkt in der Einwilligungs-Frage oder über einen kleinen PHP-Code zu Beginn der folgenden Seite:

if (value('BB01') != 1) {
  goToPage('end');
}

Die Anführungszeichen sind aber wichtig.

Im anderen Fall müssen Sie nicht springen, sondern können einfach mit der Seite fortfahren.

> Allerdings ist dadurch der Survey "WEITER" Button verschwunden

Nicht durch diesen Code, würde ich sagen. Dieses Problem liegt wahrscheinlich an anderer Stelle.

> sondern direkt auf der Seite wo sich die Frage AB01 befindet

Sie können eine Antwort erst auf der folgenden Seite verwenden - oder im "Verarbeitung der Antworten mittels PHP", aber nicht innerhalb derselben Seite auf der auch die Frage gestellt wird. Denn in dem Moment liegt ja noch keine Antwort vor.

Sie können aber durchaus einfach noch eine ansonsten leere Seite dafür einfügen.

> ich bekomme keine Follow-up Mail

Prüfen Sie bitte, was die Debug-Information anzeigt.
by s325843 (120 points)
Mein Fragebogen ist im Feld und läuft bereits gut!
Serienmails und Randomisierung funktionieren. Morgen sind die ersten durch!   

Mein Problem:
Nun hat sich ein Teilnehmer gemeldet, dass er nach der zweiten Serienmail (Fragebogen) keine 3te bekommen hat obwohl er alles wie beschreiben und vorher gemacht hat. Der Bitte, zu schauen ob der Link von Fragebogen 2 noch aktiv ist - wurde mit nein beantwortet (dieser Fragebogen wurde beendet).

Nun die Frage gibt es irgendeine Möglichkeit dem Teilnehmenden die weiteren 2 Fragebogen zu zusenden das Problem zu beheben oder herauszufinden woran es liegt! Hinweis: Zuordnung der verschiedenen Tage anhand der durch Serienmail erstellten SERIAL keine Zuordnung möglich.

Wäre eine andere Möglichkeit die Fragebogenreihe von vorne zu beginnen? Durch bereits investierte Zeit sehe ich diese Lösung als fragwürdig an.

Danke für die Hilfe!
by SoSci Survey (350k points)
Prüfen sie bitte mal den Adresseintrag des Teilnehmers unter "Adressen verwalten". Dort sehen Sie ganz unten einerseits, welche Serienmails er bekommen hat (vielleicht blieb die dritte im Spam stecken - oder Sie sehen, dass Sie ein Problem mit der Programmierung haben) und dort können Sie mit den kleinen Knöpfen auch gezielt weitere Serienmails versenden.

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

...