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

0 votes

Hallo zusammen,

ich möchte in meinem Fragebogen eine Quotierung einfügen. Aber nicht nach demografischen Daten, sondern, ob der Proband eine App nutzt oder nicht. Es sollen 440 App Nutzer und 120 Nicht-Nutzer sein. Danach soll der Quotalink erfolgen. Ich habe versucht anhand der Anleitung zur Quotierung den PHP-Code zu erstellen. Das funktioniert aber leider gar nicht bei mir. Ich habe erst die Frage gestellt, ob die App genutzt wird (ja/nein) und dann auf der nächsten Seite den folgenden Code eingefügt:

$quotaUseApp = [
  1 => 440,  // 440 Nutzer (Code 1)
  2 => 120   // 120 Nicht-Nutzer (Code 2)
];

// Nutzung wird direkt ausgelesen
$UseApp = value('CJ13');

// Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$casesUseApp = statistic('count', 'O003_01', $UseApp);
 
 
// Auslesen der Quoten für die angegeben Merkmale
$maxPerUseApp = $quotaUseApp[$UseApp];
 
// Quotenstopp
if (($casesUseApp >= $maxPerUseApp)) {
  redirect('https://www.panelanbieter.de/?xyz=quotaABCDEF&uid=%reference%');
}

O003_01 ist eine interne Variable. Wobei die Variabel O003 heißt und O003_01 die Ausprägung 1=Nutzer und O003_02 die Ausprägung 2=Nicht-Nutzer hat. Da bin ich mir schon nicht sicher, ob das richtig ist.

Zudem verstehe ich nicht, wie ich die PanelID in den Link einfüge. In der Anleitung steht , dass %reference% ein vordefinierter Platzhalter ist und die PanelIDs darüber übermittelt werden können. Aber wie, wenn man %reference% nicht selbst definiert.

Um die abgeschlossenen Fragebögen zu speichern, habe ich auf der vorletzten Seite folgenden Code eingefügt:

$UseApp = value('CJ13'); 

$UseID = $UseApp;
put('O003_01', $UseID);

redirect('https://www.panelanbieter.de/?xyz=completeDEFGHI&uid=%reference%');

Aber auch hier bin ich mir unsicher.

Ich danke euch schon einmal vielmals im Vorfeld!!

Viele Grüße

in SoSci Survey (dt.) by s104128 (170 points)
edited by SoSci Survey
> Wobei die Variabel O003 heißt und O003_01 die Ausprägung 1=Nutzer und O003_02 die Ausprägung 2=Nicht-Nutzer hat. Da bin ich mir schon nicht sicher, ob das richtig ist.

Nein, Sie benötigen nur eine Variable - diese ist dann genauso kodiert wie CJ13. Die zweite Variable stört aber nicht weiter.

> Aber wie, wenn man %reference% nicht selbst definiert.

Der Panel-Anbieter muss den Code für jeden Teilnehmer in den Link einfügen. Das können die, keine Sorge. Wie es funktioniert wird hier genauer beschrieben: https://www.soscisurvey.de/help/doku.php/de:survey:url

> Das funktioniert aber leider gar nicht bei mir.

Eigentlich sieht der Code ziemlich gut aus. Vielleicht könnten Sie kurz beschreiben, was nicht funktioniert. Und posten Sie auch gerne die Debug-Information von der Seite mit dem ersten PHP-Code: https://www.soscisurvey.de/help/doku.php/de:create:debugging
> Ich habe noch eine Frage zum complete Link. Diesen füge ich vor der letzten Seite ein. Also auch dort, wo die interne Variable "gefüllt" wird. Aber werden die Probanden dann als FINISHER gezählt, wenn sie die letzte Seite nicht mehr erreichen? Durch den Complete Link gelangen sie ja auf die Seite Panelanbieters.

Es kommt darauf an: Wenn Sie im redirect() keinen zweiten Parameter angeben, wird die Variable FINISHED durch den redirect() auf 1 gesetzt.
> Ich habe aber nochmal eine Frage zu den Links, weil ich das zum ersten Mal mache.

> Das heißt, ich schicke dem Panelanbieter meinen Fragebogenlink und füge die "Funktion" r hinzu?

> https://www.soscisurvey.de/demo/?r=

Es ist (wenn man es genau nimmt) keine Funktion, sondern ein Parameter. Aber ansonsten vollkommen richtig, ja. Sie schreiben das einfach "manuell" in Ihrer E-Mail an den Panelanbieter hinter den Link.

1 Answer

0 votes

Hallo,

vielen Dank für die schnelle Antwort.
Wenn ich den Code ausprobieren, dann kommt sofort nachdem ich die Frage zur Nutzung beantwortet habe, dass der Panelanbieter die Seite nicht freigeschaltet hat.

Nochmal zur internen Variable.
Ich habe folgende Variable erstellt:

[O003] Interne Variablen

Quote

O003_01 Ja
O003_02 Nein
Text/Zeichenkette

Dann ist doch O003_01 nur die erste Ausprägung.
Was muss ich denn dann in den Code schreiben? Weil O003 hat ja keine 7 Zeichen.

Habe ich das mit den Links richtig verstanden, dass ich in den Code den Link zur "Quotafull" Meldung einfüge mit dem Zusatz id=%reference% und dann fügt der Panelanbieter die ID automatisch hinzu?

Viele Grüße

by s104128 (170 points)
Ich glaube mein größtes Problem liegt im Verständnis der internen Variable.
In der Anleitung steht z. B.:

$casesGender = statistic('count', 'SD03_02', $gender);

Wenn ich das richtig verstehe ist SD03_02 die interne Variable. Aber "_02" steht doch nur für 1 Item, also nur für ein 1 Geschlecht. Dann greift der Quotenstopp doch nicht beim anderen Geschlecht oder?
> Wenn ich den Code ausprobieren, dann kommt sofort nachdem ich die Frage zur Nutzung beantwortet habe, dass der Panelanbieter die Seite nicht freigeschaltet hat.

Schreiben Sie bitte zum Testen zwei Schrägstriche (//) vor den redirect()-Befehl, um diesen erst einmal zu deaktivieren. Dadurch können Sie kontrollieren, was schief läuft.

> Ich glaube mein größtes Problem liegt im Verständnis der internen Variable.

Die interne Variable ist einfach eine Variable im Datensatz (Fall), welche Sie nach belieben mit einem Wert belegen können. In Ihrem Fall wird einfach der Wert aus der Variable CJ13 dorthin kopiert.
...