WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Spåra antalet nedladdningar av ett program (https://www.wn.se/forum/showthread.php?t=28348)

radioaktivitet 2008-04-03 14:18

Man har ju vant sig vid att använda Google Analytics för att spåra allting som händer på sin webbplats. Men nu har jag stött på ett problem. Jag vill spåra någonting, men JavaScript är inte tillgängligt :(

Jag håller på och utvecklar en applikation för mobiltelefoner där man kan ladda ner flera olika paket. Allting är gratis och kräver inte någon registrering.

Nu vill jag spåra vilka paket och vilka versioner av paketen som laddas ner, samt hur många användare jag har. Själva nedladdningen sker från min webbserver, via http. Det finns inte något stöd för kakor inbyggt i mobilen, så jag kan inte sätta några id:n.

Det jag har tänkt att lagra är IP-ADRESS, VERSION, PAKETNAMN, DATUM OCH TID

Denna informationen lagrar jag alltså på min webbserver.

Min fråga är - hur lagrar jag bäst denna information så att jag kan analysera den på bästa sätt (gruppera på dag, månad, år samt selektera på paket och version)?

Edit: ett sätt är kanske att använda Google Graphs Api. Men min fråga kvarstår. Hur lagrar jag datan på bästa sätt för att snabbt få fram bra data som jag kan koppla till google graphs api, eller motsvarande tjänst?

coredev 2008-04-03 14:38

I din databas? :-)

Daniel.st 2008-04-03 14:51

Du borde kunna plocka fram detta ur webbserverns loggar om du har tillgång till dessa (tillsammans med en massa annan statistik).

radioaktivitet 2008-04-04 09:08

Jo, databasen är ett bra sätt att lagra information på... Själv använder jag mysql.

Men det jag undrar specifikt är alltså hur jag skall lagra datan för att kunna analysera den snabbt. vilket typ av index behövs för att kunna gruppera på månad, år, dag m.m. blixtsnabbt.

jag tänkte att statistiken skall vara publik, så därför kan det bli en hel del frågor mot databasen som är likadana.

Någon som gjort någonting liknande som kan ge mig tips om vad jag bör tänka på?

Magnus_A 2008-04-04 10:14

Det går aldeles utmärkt att spåra detta i Analytics om du vill.
Hur spårar jag nedladdningar

Jonas 2008-04-04 11:04

Citat:

Ursprungligen postat av Magnus_A
Det går aldeles utmärkt att spåra detta i Analytics om du vill.
http://www.google.com/support/googleanalyt...sv&answer=55529



Problemet kvarstår fortf. att vissa mobiler har inget eller väldigt begränsat Javascript stöd.

Citat:

Ursprungligen postat av radioaktivitet
Men det jag undrar specifikt är alltså hur jag skall lagra datan för att kunna analysera den snabbt. vilket typ av index behövs för att kunna gruppera på månad, år, dag m.m. blixtsnabbt.
jag tänkte att statistiken skall vara publik, så därför kan det bli en hel del frågor mot databasen som är likadana.
Någon som gjort någonting liknande som kan ge mig tips om vad jag bör tänka på?

Du kan gruppera ut detta ur Mysql på ett väldigt effektivt sätt, GROUP BY nedladdningsdatum (Som bör vara ett DATE fält, DATETIME fungerar också, men du måste du plocka ut datat först till YYYY-MM-DD format.)

elitasson 2008-04-04 12:56

aah, läste hela inlägget nu. Fix kommer.

Citat:



$id = $_GET['id'];

$fil = mysql_fetch_array(mysql_query("SELECT * FROM filer WHERE id = '$id'"));

mysql_query("INSERT INTO downloads (fil, datum) VALUES ('$fil[fil]', NOW())");

header('Content-Disposition: attachment; filename="$fil[fil]"');


Sen är det bara att kolla vilken fil som ligger med flest gånger. Busenkelt =)

Magnus_A 2008-04-04 13:09

Då är jag med.
Du kan lägga till 1 på varje rad som passar
$mysqli->query("update tbl set antal= antal +1 where program='programnamn'");
och för att fånga upp nya versioner:
if( $mysqli->affected_rows ==0) {
$mysqli->query("insert ignore into tbl program, antal values ('programnamn',1)");
}
om du inte lägger in dem på något annat sätt när du uppdaterar eller så.

så slipper du gruppera

martine 2008-04-05 13:33

Jag skulle nog använda strukturen
id INT, program ENUM('pr 1','pr 2', …), plattform ENUM('IE6','IE7','FF',…), när TIMESTAMP
(och eventuellt skippa plattform) med datum,program indexerat.

Man kan ju också normalisera den på riktigt (utan ENUM) huvudsaken är att man inte har textfält i tabellen eftersom de gör att tabellen växer exposionsartat.


Alla tider är GMT +2. Klockan är nu 15:52.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson