0 votes
in SoSci Survey (dt.) by s178714 (155 points)

Liebes SoSci-Survey-Team,

im Rahmen einer Befragung arbeiten wir mit einem externen Anbieter für die Rekrutierung vn Befragten zusammen. Unser Ziel ist es, die Mehrfachteilnahme auszuschließen und zwar auch dann, wenn der Fragebogen nicht vollständig ausgefüllt wurde.

Leider können wir beim externen Anbieter nur einen Link für alle Befragten implementieren. Daher scheint ein Ausschluss der Mehrfachteilnahme anhand von Seriennummern oder personalisierten Links nicht möglich. (Um die Erhebung personenbezogener Daten zu vermeiden, wollen wir keine IP-Adressen erheben oder Cookies verwenden, um die Teilnehmenden zu identifizieren.)

Allerdings wird die ID der Teilnehmenden beim Aufrufen des Fragebogens übermittelt und mittels interner Variablen bereits im Fragebogen gespeichert. Ist es möglich anhand der ID (bspw. mittels PHP-Code) die Mehrfachteilnahme auszuschließen?

Unsere Idee war, die Funktion serialCheck() zu verwenden, aber nicht die Seriennummer (SERIAL) zu verwenden, sondern direkt die ID. Anhand der Funktion serialCheck() müssten sich auch diejenigen ausschließen lassen, die bereits zuvor an der Befragung teilgenommen hatten. Lediglich an der Umsetzung haperte es bisher, mangels PHP-Kenntnissen.

Mit besten Grüßen

1 Answer

0 votes
by SoSci Survey (322k points)
selected by s178714
 
Best answer

IP-Adressen und Cookies würden nicht wirklich helfen, wenn jemand die Beschränkung umgehen wollte: Mehrfachteilnahme ausschließen

Allerdings wird die ID der Teilnehmenden beim Aufrufen des Fragebogens übermittelt und mittels interner Variablen bereits im Fragebogen gespeichert.

Ihnen ist bewusst, dass die ID das Ganze ohnehin zu personenbezogenen oder zumindest zu pseudonymen Daten macht? Wesentlich klarer noch als eine IP-Adresse. Sie sollten mit dem zuständigen Datenschutzbeauftragten unbedingt klären, ob Sie da nicht das komplette DSGVO-Procedere mit AVV benötigen!

Ist es möglich anhand der ID (bspw. mittels PHP-Code) die Mehrfachteilnahme auszuschließen?

Im Prinzip können Sie das relativ einfach über die Datenbank für Inhalte realisieren: Ist schon ein Eintrag für die ID vorhanden, wird die Person abgewiesen, ansonsten wird (auf der nächsten Seite, damit es beim Neu-Laden keine Probleme gibt!) ein neuer Eintrag angelegt. Wenn man im Eintrag das Interview-Token (caseToken()) speichert, könnte man anhand der ID sogar einen vorher begonnenen Fragebogen fortführen.

Lediglich an der Umsetzung haperte es bisher, mangels PHP-Kenntnissen.

Versuchen Sie als erstes einmal, dass Sie einen Eintrag in der Datenbank für Inhalte mittels dbSet() anlegen. Als Schlüssel verwenden Sie Ihre ID. Vielleicht möchten Sie noch "ID" als Präfix voranstellen. Das würde dann so aussehen:

$key = 'ID'.value('IV01_01');
dbSet($key, caseToken());

Im nächsten Schritt versuchen Sie sich bitte an einem PHP-Code, welcher prüft, ob zu einer ID bereits ein Eintrag existiert.

by s178714 (155 points)
Vielen Dank für die schnelle Antwort!

A) Zur ID: Wir bekommen zwar die ID übermittelt, aber keine personenbezogenen Daten, da der externe Dienstleister über diese verfügt, wir aber nicht. Umgekehrt erhält auch der Dienstleister keine Ergebnisse der Befragung von uns.

B) Vielen Dank für die Hinweise.
Ich habe nun eine, wenngleich wenig elegante, Lösung gefunden:

1) Auf Seite 1 die ID mittels Get-Variable unter einer internen Variablen (ID01_RV1) abspeichern.

2) Auf Seite 1 Prüfung, ob $key bzw. (ID01_RV1) bereits zuvor abgespeichert wurde:
$key = 'ID'.value('ID01_RV1');
if (dbGet($key) == false) {
    goToPage('start');    
    }
else {
    goToPage('Abbruch');
    }

3) Auf einer Folgeseite ID01_RV1 in der Datenbank unter $key abspeichern.
$id = value('ID01_RV1');
$key = 'ID'.value('ID01_RV1');
dbSet($key, $id);

Wenig elegant ist der Code, weil er nur abprüft, ob "dbGet($key)" eine Fehlermeldung generiert, was immer dann der Fall ist, wenn keine User-ID beim Aufruf des Fragebogens übermittelt wird. In der Folge lassen sich Pretests nicht mehr ohne Weiteres durchführen.

Beste Grüße
by SoSci Survey (322k points)
> Wir bekommen zwar die ID übermittelt, aber keine personenbezogenen Daten, da der externe Dienstleister über diese verfügt, wir aber nicht.

Sie wissen ja normalerweise auch nicht, wer sich hinter einer IP-Adresse verbirgt - trotzdem werden die Datenschutzbeauftragten schon bei dem Begriff ganz nervös. Aber ob das personenbezogen ist oder nicht, müssen Sie mit Ihrem DSB klären. Sie sind am Ende verantwortlich und haftbar im Sinne der DSGVO.

> Wenig elegant ist der Code, weil er nur abprüft, ob "dbGet($key)" eine Fehlermeldung generiert

Nachdem Sie die ID vorher nicht kennen, können Sie aber nur darauf prüfen, ob eine unbekannte/neue ID übermittelt wurde. Und dafür ist dieses Vorgehen m.E. genau richtig. Es ist auch nicht besonders unelegant :)
by s178714 (155 points)
Herzlichen Dank für die Unterstützung und die Antworten!

Die Datenschutz-Fragestellung klären wir intern.

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

...