Come faccio a monitorare i download di file

voti
66

Ho un sito web che riproduce mp3 in un flash player. Se 'giocare' un utente fa clic flash player scarica automaticamente un mp3 e inizia a giocare.

C'è un modo semplice per tenere traccia di quante volte un clip particolare brano (o qualsiasi file binario) è stato scaricato?


È il link del gioco un collegamento al file mp3 reale o ad un codice JavaScript che si apre un giocatore?

In quest'ultimo caso, è possibile aggiungere facilmente il proprio codice di registrazione in là per tenere traccia del numero di visite ad esso.

Nel primo caso, avrete bisogno di qualcosa che permette di monitorare in sé log e fare questa distinzione il server web. Il mio piano di hosting viene fornito con webalizer, che fa questo bene.

E 'codice javascript, in modo che risponde che.

Tuttavia, sarebbe bello sapere come monitorare download utilizzando l'altro metodo (senza passare padroni di casa).

È pubblicato 01/08/2008 alle 18:14
fonte dall'utente
In altre lingue...                            


8 risposte

voti
6

È il link del gioco un collegamento al file mp3 reale o ad un codice JavaScript che si apre un giocatore?

In quest'ultimo caso, è possibile aggiungere facilmente il proprio codice di registrazione in là per tenere traccia del numero di visite ad esso.

Nel primo caso, avrete bisogno di qualcosa che permette di monitorare in sé log e fare questa distinzione il server web. Il mio piano di hosting viene fornito con webalizer, che fa questo bene.

Risposto il 01/08/2008 a 18:24
fonte dall'utente

voti
36

La cosa divertente è che ho scritto una galleria multimediale php per tutta la mia musica 2 giorni fa. Ho avuto un problema simile. Sto usando http://musicplayer.sourceforge.net/ per il giocatore. E l'elenco di riproduzione sono costruiti tramite php. Tutte le richieste di musica andare lì uno script chiamato xfer.php? File = WHATEVER

$filename = base64_url_decode($_REQUEST['file']);
header("Cache-Control: public");
header('Content-disposition: attachment; filename='.basename($filename));
header("Content-Transfer-Encoding: binary");
header('Content-Length: '. filesize($filename));

//  Put either file counting code here. either a db or static files

//

readfile($filename);  //and spit the user the file


function base64_url_decode($input) {
    return base64_decode(strtr($input, '-_,', '+/='));
}

E quando si chiama file utilizzano qualcosa come:

function base64_url_encode($input) {
     return strtr(base64_encode($input), '+/=', '-_,');
}

http://us.php.net/manual/en/function.base64-encode.php

Se si utilizza un javascript o un flash player (giocatore JW per esempio) che richiede il collegamento reale di essere un file mp3 o qualsiasi altra cosa, è possibile aggiungere il testo "& type = .mp3" in modo che il linke finale diventa qualcosa come: "www .example.com / xfer.php? file = 34842ffjfjxfh & type = .mp3" . In questo modo sembra che termina con un'estensione mp3 senza influire sul link del file.

Risposto il 01/08/2008 a 18:33
fonte dall'utente

voti
11

Si potrebbe anche impostare una direttiva Apache .htaccess che converte * .mp3 richieste nella querystring dubayou sta lavorando con. Potrebbe essere un elegante modo per mantenere la richiesta diretta ed essere ancora in grado di scia funzione log nella risposta.

Risposto il 01/08/2008 a 18:42
fonte dall'utente

voti
27

Utilizzare i file di log httpd. installare http://awstats.sourceforge.net/

Risposto il 01/08/2008 a 18:51
fonte dall'utente

voti
3

C'è una banca dati per la libreria musicale? Se non v'è alcun codice server che esegue durante il download del formato mp3, quindi è possibile aggiungere codice aggiuntivo lì per incrementare il conteggio di riproduzione. Si potrebbe anche avere javascript fare una seconda richiesta per incrementare il conteggio di riproduzione, ma questo potrebbe portare a persone / robot incrementare falsamente conta.

Ho usato per lavorare per un sito internet-radio e abbiamo usato tabelle separate per tenere traccia del tempo di ogni canzone è stato giocato. I nostri corsi d'acqua sono stati alimentati da uno script perl esecuzione icecast, così abbiamo innescato una richiesta di database ogni volta che una nuova traccia ha iniziato a giocare. Quindi per calcolare il numero di gioco avremmo eseguire una query per contare quante volte id di una canzone era nel registro gioco.

Risposto il 04/09/2008 a 19:44
fonte dall'utente

voti
12

Se il file di song / binario è stato servito da Apache, si può facilmente grep l'access_log per scoprire il numero di download. Uno script di post-logrotate semplice può grep i log e mantenere le tue statistiche di conteggio in un db. Questo ha il vantaggio di prestazioni non essendo nel tuo percorso di richiesta del codice dal vivo. Fare le cose non critici come statistiche offline è una buona idea per scalare il vostro sito web a un vasto numero di utenti.

Risposto il 12/10/2008 a 10:10
fonte dall'utente

voti
21

Utilizzare bash:

grep mp3 /var/log/httpd/access_log | wc
Risposto il 02/10/2009 a 03:12
fonte dall'utente

voti
3

Il problema che ho avuto con le cose come AWStats / lettura attraverso i log del server web è che download di grandi dimensioni spesso possono essere divisi in blocchi di dati all'interno dei registri. Questo rende conciliare il numero esatto di download molto difficile.

Io suggerirei di Google Analytics Monitoraggio eventi , in modo da registrarsi una sola volta per ogni clic su un link per il download.

Risposto il 09/06/2016 a 09:38
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more