Permalänk
Medlem

Mäta antal klick/tid

Jag behöver hjälp med ett skript för att kunna mäta antal klick en användare gör på en hemsida, samt kunna mäta tiden det tar för användaren att utföra en viss uppgift på sidan (ex. "hitta till kontaktformuläret). Och sedan spara ner detta till en csv fil(?).

Jag tänker mig att man börjar mäta från det första klicket användaren gör, till det sista. Så att man sedan kan se antalet klick användaren gjorde men även VAD hen klickade på. Jag antar att man börjar med att sätta unika id:n på de intressanta elementen (i princip alla) så kan man ju se vilket element som man klickade på och när. Och sedan får man hämta upp/skicka vidare id:na..? Vet dock inte hur jag ska göra detta. Samt hur ska jag få skriptet att "spara ner" antal klick och tiden?

Tack på förhand.

Permalänk
Medlem

Vad är det du egentligen vill uppnå? Se http://xyproblem.info/

Permalänk
Medlem
Skrivet av cfj:

Vad är det du egentligen vill uppnå? Se http://xyproblem.info/

Jag gör olika hemsidemenyer och vill mäta antal klick användaren gör i de olika menyerna och se hur de skiljer sig åt. Därför måste jag få till ett skript som räknar antal klick, men även antal sekunder/minuter då användaren även ska få uppgifter att göra på sidan.

Permalänk
Medlem

Finns ett antal produkter / frameworks för user research, så hitta något färdigt sådant, kanske https://lookback.io/

Permalänk
Medlem
Skrivet av gothxx:

Finns ett antal produkter / frameworks för user research, så hitta något färdigt sådant, kanske https://lookback.io/

Tack, men jag behöver skapa något eget

Permalänk
Medlem

om du kör jquery

$("*").click(function(element){
console.log(elemet + " blev klickat, borde loggas någonstans")
});

Visa signatur

CPU: Ryzen 9 3900x Noctua NH-D14 MOBO: TUF Gaming X570-PLUS GPU: GTX 980 RAM: 32 GB 3200 MHz Chassi: R4 PSU: Corsair AX860 Hörlurar: SteelSeries 840 Mus: Logitech G502 Lightspeed V.v. nämn eller citera mig för att få svar.

Permalänk
Medlem
Skrivet av Haptic:

om du kör jquery

$("*").click(function(element){
console.log(elemet + " blev klickat, borde loggas någonstans")
});

Aa, eller så använder man bara vanlig JS.

document.addEventListener("click", function(event){ console.log(event.target, " - Got clicked!") });

Permalänk
Medlem
Skrivet av Haptic:

om du kör jquery

$("*").click(function(element){
console.log(elemet + " blev klickat, borde loggas någonstans")
});

Skrivet av zaibuf:

Aa, eller så använder man bara vanlig JS.

document.addEventListener("click", function(event){ console.log(event.target, " - Got clicked!") });

Bra lösning, men jag kan inte ha det som en log utan måste spara ner det på något vis. Så att jag sedan kan analysera resultaten. Plus att det inte är särskilt smidigt för användarna att ha inspektera-fönstret uppe när de testar sidan

Permalänk
Medlem
Skrivet av zykoz:

Bra lösning, men jag kan inte ha det som en log utan måste spara ner det på något vis. Så att jag sedan kan analysera resultaten. Plus att det inte är särskilt smidigt för användarna att ha inspektera-fönstret uppe när de testar sidan

Tanken var inte att det var lösningen, utan ett exempel på hur du kan tracka klick event på sidan och vart de har klickat.
Du ska inte behöva inspektera fönstret eller dylikt, du byter ut console.log mot ett anrop mot ett API. Eller plussar på allt i en session som sedan skickas till ett API för lagring då tiden är slut.

Permalänk
Medlem

Det jag har gjort nu är att försöka alerta ut de ID:n som det klickas på, och sedan spara ner detta till en txt-fil m.h.a. php, men vet inte riktigt hur jag ska få det att fungera. Detta är koden jag testat lite med, men som inte fungerar särskilt bra:
<script>
function loaded() {
$(".navbar").click(function(e) {
alert(e.target.id);
alert("<?php echo tofile("www") ?>");
<?php echo tofile("<script> e.target.id</script>") ?>
});
}
</script>
<script src="js.js"></script>

</head>

<body onload="loaded()">
<?php
function tofile($test)
{
//$pathToFile = 'data.txt';
echo file_put_contents("data.txt", $test, FILE_APPEND);
}
?>

Något som har något tips?

Permalänk
99:e percentilen
Skrivet av zykoz:

Det jag har gjort nu är att försöka alerta ut de ID:n som det klickas på, och sedan spara ner detta till en txt-fil m.h.a. php, men vet inte riktigt hur jag ska få det att fungera. Detta är koden jag testat lite med, men som inte fungerar särskilt bra:
<script>
function loaded() {
$(".navbar").click(function(e) {
alert(e.target.id);
alert("<?php echo tofile("www") ?>");
<?php echo tofile("<script> e.target.id</script>") ?>
});
}
</script>
<script src="js.js"></script>

</head>

<body onload="loaded()">
<?php
function tofile($test)
{
//$pathToFile = 'data.txt';
echo file_put_contents("data.txt", $test, FILE_APPEND);
}
?>

Något som har något tips?

Granska JavaScript-koden du skickar till klienten, så kommer du nog se varför den inte gör det du vill.

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem
Skrivet av Alling:

Granska JavaScript-koden du skickar till klienten, så kommer du nog se varför den inte gör det du vill.

Hur menar du? Jag är verkligen inte bra på php så har svårt att förstå

Permalänk
99:e percentilen
Skrivet av zykoz:

Hur menar du? Jag är verkligen inte bra på php så har svårt att förstå

Detta handlar mindre om PHP och mer om principerna för hur webben fungerar. Varje gång du gör echo i PHP ska du tänka att du spottar ur dig kod som blir en del av HTML-dokumentet som skickas till klienten. Besök således din webbapplikation med en webbläsare och tryck Ctrl + U för att granska källkoden. Jag misstänker att innehållet i ditt första <script>-element inte makear sense alls. Kolla också i webbläsarens konsol vad du får för felmeddelanden; jag tror du får minst ett.

Värt att notera är också att du har definierat tofile så att den saknar explicit returvärde (vilket gör att dess returvärde blir NULL), men du använder den som att den returnerar en sträng (när du skriver echo tofile("...")).

Visa signatur

Skrivet med hjälp av Better SweClockers