+2 votes
in SoSci Survey (dt.) by s048152 (200 points)

Guten Tag,

Ich programmiere im Rahmen einer Studie gerade einen Fragebogen, für den es hilfreich wäre, wenn wir bei einigen Fragen eine Art Mouse Tracking Tool in unseren Sosci Fragebogen einbetten könnten. Ich habe im Forum bereits vom MouselabWEB gelesen und wollte fragen, ob man den MouseTracker (http://www.mousetracker.org) auf ähnliche Art und Weise auch einbetten könnte? Oder gibt es möglicherweise andere Optionen die Entscheidungsdauer von ProbandInnen sowie den Weg des Cursors irgendwie aufzuzeichnen?

Vielen Dank im Voraus!

2 Answers

0 votes
by SoSci Survey (303k points)

Diese Frage hatten wir 2016 mal im alten Support-Forum:
https://forum.onlineforschung.org/viewtopic.php?p=31659#p31659

Hilft Ihnen diese Information dort weiter? Wenn nicht, müssten Sie bitte Ihre Frage nochmal spezifizieren. Danke.

by s019137 (150 points)
Mich würde die Antwort auf die Frage auch interessieren. Leider funktioniert der Link zum Beitrag im alten Support-Forum nicht mehr. Ist der Beitrag über einen anderen Link abrufbar?

Danke!
0 votes
by SoSci Survey (303k points)
edited by SoSci Survey

Das alte Forum wurde schon vor längerem abgeschaltet - deshalb hier kurz die Eckdaten:

  • Für das Mouse-Tracking ist i.d.R. eine JavaScript-Bibliothek erforderlich, welche die Mausposition aufzeichnet. Im Prinzip kann man das mit nur einer Zeile JavaScript erledigen, aber ich gehe davon aus (hoffe), dass die Tracking-Bibliotheken da noch ein wenig Datenbereinigung vornehmen. Sonst kommen sehr schnell sehr große Datenmengen zusammen.
  • Solche JavaScript-Dateien kann man einfach über Bilder und Mediendateien ins Verzeichnis des Befragungsprojekts hochladen, um sie dann in den Fragebogen einzubinden.
  • Zum Speichern der Daten kann man interne Variablen verwenden. Hier sind bis zu 32 KB erlaubt. Man muss dem Tracking-Script dann nur erklären, dass es seine Daten dort ablegen soll. Entweder kontinuierlich oder spätestens beim Absenden der Fragebogen-Seite.

Um es einmal zu verdeutlichen. Das folgende Script würde die Mausspur (bestehend aus X, Y [Pixel] und Zeit [ms]).

Ach ja ... das Script nimmt an, dass eine interne Variable IV01_01 auf die Seite gezogen wurde.

<script type="text/javascript">
var d0 = new Date();
var t0 = d0.getTime();
document.addEventListener("mousemove", function(evt) {
  var pos = SoSciTools.getMousePos(evt);
  var d1 = new Date();
  var t1 = d1.getTime();
  document.getElementById("IV01_01").value+= evt.x + "," + evt.y + "," + (d1 - d0) + ";";
});
</script>

Pro Datenpunkt sind das ca. 16 Byte. Es könnten also ca. 2000 Datenpunkte aufgezeichnet werden. Wenn man einmal quer über die Seite fährt, sind gleich mal 500 bis 1000 Datenpunkte beisammen. Für die praktische Anwendung wird man also z.B. die Auflösung auf max. 10 Messungen pro Sekunde beschränken müssen. Auch dazu gern ein Script - diesmal mit Speicherung der Datenpunkte im JSON-Format und Zehntelsekunden.

<script type="text/javascript">
var data;
try {
  data = JSON.parse(document.getElementById("IV01_01").value);
} catch(e) {
  var d0 = new Date();
  data = {t0 : d0.getTime()};
}
document.addEventListener("mousemove", function(evt) {
  var d1 = new Date();
  var t1 = d1.getTime();
  var ts = Math.floor((d1- data.t0) / 100);
  var pos = SoSciTools.getMousePos(evt);
  data[String(ts)] = [pos.x, pos.y];
  document.getElementById("IV01_01").value = JSON.stringify(data);
});
</script>

Damit hätte man bei ca. 16-18 Byte pro Datenpunkt min. 1800 Datenpunkte, mithin min. 180 Sekunden aufgezeichnet. Aber das geht nur einmal pro Interview, denn die Gesamtspeichermenge pro Interview mit allen Antworten und Daten ist auf 64KB beschränkt. Wenn man mehr benötigt, muss man sich z.B. den Fragetyp "Dateiinhalte übertragen" ansehen und die Dateien einzeln herunterladen.

Klicks u.s.w. sind in den obigen Scripts noch nicht aufgezeichnet. Und im Idealfall findet (oder baut) man natürlich ein Script, welches gleich eine erste Auswertung vornimmt und nicht mehr alle Rohdaten speichert. Aber da kämen wir jetzt zu weit in die Auswertungsmöglichkeiten des Maus-Tracking, Zielvariablen etc.

Zusatztipp 1: Mit SoSciTools.getNodePos() können Sie die Pixel-Abmessungen von HTML-Elementen auf der Seite bestimmen und z.B. auch in internen Variablen speichern. Denn zur Auswertung wird ja auch die Position der Elemente benötigt. Diese kann sich je nach Größe des Browserfensters verändern. Natürlich kann man auch gleich abspeichern, ob sich der Mauszeiger über einem best. Element befindet - und wie lange.

Zusatztipp 2: Das Ganze ist erstmal für die Position des Mauszeigers programmiert. Wenn Personen per Smartphone oder Tablet teilnehmen, benötigen Sie Touch- oder Pointer-Positionen. Da muss man dann aber ein wenig darauf aufpassen, welche Browser welche JavaScript-Events liefern.

by s168567 (165 points)
Thank you for this info! What would be an easy way to sketch out the mouse movement using the coordinates stored in the internal variable?
by SoSci Survey (303k points)
One option would be the plot() function in R.

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

...