0 votes
in SoSci Survey (dt.) by s097933 (130 points)
edited by SoSci Survey

Liebes SoSci-Survey-Team,

für meine nächste Studie in Zusammenarbeit mit einem Panelanbieter muss ich Quotafull-Links programmieren.
Der Link für meinen Fragebogen ist folgender: https://www.soscisurvey.de/namestudie/?r=[panelID].
Die Redirect-Links meines Panelanbieters sind ist [habe ich hier anonymisiert, vor .com steht eigentlich der Name]: https://panelanbieter.com/z/QuotaFull

Für Quotafull bei Geschlecht habe ich folgendes als php-Code in meinen Fragebogen eingefügt:

$gender = value('SD02');

$quotaGender = [
 
1 => 520,

2 => 480,

3 => 3
];

$ngender = statistic('count', 'SD02', $gender); 
$ngendermax = $quotaGender[$gender];

if ($ngender > $ngendermax) {
redirect(' https://panelanbieter.com/z/QuotaFull=%reference%');
}

Bei jedem meiner Test, wenn ich die Quoten auf ganz niedrig setze und mich durch den Fragebogen klicke, werde ich automatisch auf die nächste Seite und nie auf den Quotafull-Links des Panelanbieters weitergeleitet.

Haben Sie eine Idee, woran das liegen könnte?

1 Answer

0 votes
by SoSci Survey (305k points)

Fangen wir mit dem Redirect an. Ich bin ziemlich sicher, dass der Panel-Code nicht (!) einfach am Ende angehägt wird. Fragen Sie den Panel-Anbieter nochmal, ob der Panel-Code überhaupt übergeben werden muss (oder ob er mit Cookies arbeitet) und wenn ja, an welcher Stelle.

Entfernen Sie auch das Leerzeichen im redirect()-Befehl vor dem https:.

Aber nun zum eigentlichen Problem, dass der Redirect gar nicht aufgerufen wird. Ergänzen Sie über dem if bitte die folgenden Zeilen und posten Sie den Inhalt der Debug-Information:

...
$ngendermax = $quotaGender[$gender];

debug($gender);
debug($ngender);
debug($ngendermax);

if ($ngender > $ngendermax) {
...
by s097933 (130 points)
Danke schon mal für die Hilfe! Ich habe im Code nun beim Redirect-Link die reference gelöscht und nun sieht er folgendermaßen aus:
$gender = value('SD02');

$quotaGender = [
1 => 520,
2 => 480,
3 => 3
];

$ngender = statistic('count', 'SD02', $gender);
$ngendermax = $quotaGender[$gender];

debug($gender);
debug($ngender);
debug($ngendermax);

if ($ngender > $ngendermax) {
redirect('https://webs.norstatsurveys.com/z/QuotaFull');
}

Die Debug-Information, die mir angezeigt wird, sieht so aus:
Debug-Information für $gender:
$gender = 2 (string)

Debug-Information für $ngender:
$ngender = 0 (integer)

Debug-Information für $ngendermax:
$ngendermax = 1 (integer)

Was bedeutet das genau?
by SoSci Survey (305k points)
Nachdem $ngender mit dem Wert 0 kleiner ist als $ngendermax (Wert 1), wird er IF-Filter nicht aktiv:

if ($ngender > $ngendermax)

Daran liegt es also nicht, dass Sie umgeleitet werden. Ich vermute weiterhin, dass Ihr Code inzwischen anders aussieht, denn die 1 kommt in $quotaGender eigentlich gar nicht vor.

Was zeigt denn die restliche Debug-Information (rechts oben) an?
https://www.soscisurvey.de/help/doku.php/de:create:debugging
by s097933 (130 points)
Nochmal anders getestet, hier die neuen Debugs-Infos:

php-Code:
$gender = value('SD02');

$quotaGender = [
1 => 520,
2 => 480,
3 => 3
];

$ngender = statistic('count', 'SD02', $gender);
$ngendermax = $quotaGender[$gender];

debug($gender);
debug($ngender);
debug($ngendermax);

if ($ngender > $ngendermax) {
redirect('https://webs.norstatsurveys.com/z/QuotaFull');
}

Debugs:
Debug-Information für $gender:
$gender = 1 (string)
Debug-Information für $ngender:
$ngender = 19 (integer)
Debug-Information für $ngendermax:
$ngendermax = 520 (integer)

Und die Infos oben rechts:
[Information]    Interview Nummer 145 wird fortgesetzt
[Information]    Der Fragebogen base im Projekt politischesmicrotargeting wird verwendet
[Information]    Die Verweildauer auf Seite 3 war 2 Sekunden
[Verarbeitung]    Lese Antworten von Seite 3
[Information]    Antwort auf SD02 = 1
[Information]    Fragen bisher zu 100% vollständig beantwortet
[Verarbeitung]    Erstelle Seite 4 in Fragebogen base
[Information]    value("SD02") = 1
[Information]    Statistik: Anzahl Antworten mit Wert 1 auf SD02: 19
debug()    Inhalt: $gender = 1 (string)
debug()    Inhalt: $ngender = 19 (integer)
debug()    Inhalt: $ngendermax = 520 (integer)
[Information]    Die Seite zeigt keine Inhalte, automatisch weiter mit Seite Nr. 5
[Verarbeitung]    Erstelle Seite 5 in Fragebogen base
[Inhalt]    Erstelle Frage SD03
by SoSci Survey (305k points)
In Ordnung, das sieht gut aus. Es liegen 19 Fäll mit $gender=1 vor, das ist unter der Grenze von 520 - also geht es weiter zur Seite 5 mit Frage SD03. Scheint soweit zu passen.
by s097933 (130 points)
Super, riesiges Danke für die Hilfe!
Eine hoffentlich letzte Frage: werden mir so, wie die Redirect-Links aussehen, später im Datensatz die IDs der einzelnen Teilnehmer angezeigt und abgespeichert? Ich muss dem Panelanbieter eine Liste der Completes und deren persönlichen IDs schicken, damit sie richtig incentiviert werden. Habe am Ende des Fragebogens den Complete-Redirect-Link eingefügt: redirect('https://webs.norstatsurveys.com/z/Complete')
by SoSci Survey (305k points)
> werden mir so, wie die Redirect-Links aussehen, später im Datensatz die IDs der einzelnen Teilnehmer angezeigt und abgespeichert?

Wahrscheinlich nicht - ob es IDs gibt und wie diese an den Panel-Anbieter zurück-übermittelt werden sollen, das müssen Sie mit dem Anbieter direkt besprechen.

Die Tatsache, dass in den Redirects kein Platz für eine ID vorgesehen ist, spricht dafür, dass Sie die IDs gar nicht zu Gesicht bekommen.

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

...