Aquí podría ser tu PUBLICIDAD


¿Cómo rastreo las descargas de archivos?

votos
66

Tengo un sitio web que reproduce archivos mp3 en un reproductor flash. Si un usuario hace clic en reproducir, el reproductor flash automáticamente descarga un mp3 y comienza a reproducirlo.

¿Existe una manera fácil de hacer un seguimiento de cuántas veces se ha descargado un clip de canción en particular (o cualquier archivo binario)?


¿El enlace de reproducción es un enlace al archivo mp3 real o a algún código de javascript que muestra un jugador?

Si es lo último, puede agregar fácilmente su propio código de registro allí para rastrear el número de visitas a él.

Si es lo primero, necesitará algo que pueda rastrear el registro del servidor web y hacer esa distinción. Mi plan de hosting viene con webalizer, que lo hace muy bien.

Es código de JavaScript, por lo que responde eso.

Sin embargo, sería bueno saber cómo realizar un seguimiento de las descargas utilizando el otro método (sin cambiar de host).

Publicado el 01/08/2008 a las 18:14
fuente por usuario Grant
En otros idiomas...        العربية       

8 respuestas

votos
36

Lo gracioso es que escribí una galería de medios php para toda mi música hace 2 días. Tuve un problema similar. Estoy usando http://musicplayer.sourceforge.net/ para el jugador. Y la lista de reproducción se crea a través de php. Toda solicitud de música va allí un script llamado 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, '-_,', '+/='));
}

Y cuando llame archivos, use algo como:

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

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

Si está utilizando javascript o un reproductor flash (reproductor JW por ejemplo) que requiere que el enlace real sea un archivo mp3 o lo que sea, puede agregar el texto "& type = .mp3" para que el final linke sea algo así como: "www .example.com / xfer.php? file = 34842ffjfjxfh & type = .mp3 ". De esta manera, parece que termina con una extensión mp3 sin afectar el enlace del archivo.

Respondida el 01/08/2008 a las 06:33
fuente por usuario w-ll


Aquí podría ser tu PUBLICIDAD


votos
27

Usa tus archivos de registro httpd. Instalar http://awstats.sourceforge.net/

Respondida el 01/08/2008 a las 06:51
fuente por usuario Tim Boland

votos
21

Use bash:

grep mp3 /var/log/httpd/access_log | wc
Respondida el 02/10/2009 a las 03:12
fuente por usuario randy melder

votos
12

Si su archivo de canción / binario fue servido por apache, puede fácilmente grep el access_log para averiguar el número de descargas. Un script simple post-logrotate puede grep los registros y mantener sus estadísticas de conteo en un db. Esto tiene la ventaja de rendimiento al no estar en su ruta de código de solicitud en vivo. Hacer cosas no críticas como estadísticas fuera de línea es una buena idea para escalar su sitio web a una gran cantidad de usuarios.

Respondida el 12/10/2008 a las 10:10
fuente por usuario Vinay Y S

votos
11

Incluso podría configurar una directiva Apache .htaccess que convierta solicitudes * .mp3 en la querystring dubayou con la que está trabajando. Puede ser una forma elegante de mantener la solicitud directa y aún así poder incorporar la función de registro en la respuesta.

Respondida el 01/08/2008 a las 06:42
fuente por usuario saint_groceon

votos
6

¿El enlace de reproducción es un enlace al archivo mp3 real o a algún código de javascript que muestra un jugador?

Si es lo último, puede agregar fácilmente su propio código de registro allí para rastrear el número de visitas a él.

Si es lo primero, necesitará algo que pueda rastrear el registro del servidor web y hacer esa distinción. Mi plan de hosting viene con webalizer, que lo hace muy bien.

Respondida el 01/08/2008 a las 06:24
fuente por usuario Dillie-O

votos
3

El problema que tuve con cosas como AWStats / lectura a través de los registros del servidor web es que las grandes descargas menudo se pueden dividir en fragmentos de datos dentro de los registros. Esto hace que la conciliación de la cantidad exacta de descargas bastante duro.

Yo te sugeriría que la de Google Analytics seguimiento de eventos , ya que esto registrarse una vez por cada clic en un enlace de descarga.

Respondida el 09/06/2016 a las 06:38
fuente por usuario icc97

votos
3

¿Hay una base de datos para tu biblioteca de música? Si hay algún código de servidor que se ejecuta al descargar el mp3, entonces puede agregar código adicional para aumentar el conteo de reproducciones. También podría hacer que javascript haga una segunda solicitud para incrementar el recuento de reproducciones, pero esto podría llevar a que personas / robots incrementen recuentos falsamente.

Solía ​​trabajar para un sitio de radio por Internet y utilizamos tablas separadas para rastrear la hora en que se reproducía cada canción. Nuestras transmisiones fueron impulsadas por una secuencia de comandos de perl que ejecutaba icecast, por lo que activamos una solicitud de base de datos cada vez que se comenzó a reproducir una nueva pista. Luego, para calcular el recuento de reproducciones, ejecutamos una consulta para contar cuántas veces el ID de una canción estaba en el registro de reproducción.

Respondida el 04/09/2008 a las 07:44
fuente por usuario Mike H