Pergunta

Eu tenho um site que reproduz mp3s em um flash player.Se um usuário clicar em 'reproduzir', o flash player baixa automaticamente um mp3 e começa a reproduzi-lo.

Existe uma maneira fácil de rastrear quantas vezes um clipe de música específico (ou qualquer arquivo binário) foi baixado?


O link Play é um link para o arquivo MP3 real ou para algum código JavaScript que aparece um jogador?

Se este último, você pode adicionar facilmente seu próprio código de log para rastrear o número de hits.

Se o primeiro, você precisará de algo que possa rastrear o setor do servidor da web e fazer essa distinção.Meu plano de hospedagem vem com o webalizer, o que faz isso bem.

É um código javascript que responde a isso.

No entanto, seria bom saber como rastrear downloads usando o outro método (sem trocar de host).

Foi útil?

Solução

O engraçado é que escrevi uma galeria de mídia php para todas as minhas músicas há 2 dias.Eu tive um problema parecido.estou a usar http://musicplayer.sourceforge.net/ para o jogador.E a playlist é construída via php.Todos os pedidos de música vão para lá em um script chamado 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 você chamar arquivos use algo como:

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

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

Se você estiver usando algum javascript ou um flash player (JW player, por exemplo) que exija que o link real seja um arquivo mp3 ou qualquer outro, você pode anexar o texto "&type=.mp3" para que o link final se torne algo como:"www.example.com/xfer.php?file=34842ffjfjxfh&type=.mp3".Dessa forma, parece que termina com uma extensão mp3 sem afetar o link do arquivo.

Outras dicas

Use seus arquivos de log httpd.Instalar http://awstats.sourceforge.net/

Usar bash:

grep mp3 /var/log/httpd/access_log | wc

Se o seu arquivo de música/binário foi servido pelo Apache, você pode facilmente usar o grep no access_log para descobrir o número de downloads.Um simples script pós-logrotate pode coletar os logs e manter suas estatísticas de contagem em um banco de dados.Isso tem a vantagem de desempenho por não estar no caminho do código de solicitação em tempo real.Fazer coisas não críticas, como estatísticas off-line, é uma boa ideia para dimensionar seu site para um grande número de usuários.

Você pode até configurar uma diretiva Apache .htaccess que converta solicitações *.mp3 na string de consulta com a qual dubayou está trabalhando.Pode ser uma maneira elegante de manter a solicitação direta e ainda ser capaz de integrar a função de log na resposta.

O link de reprodução é um link para o arquivo mp3 real ou para algum código javascript que abre um player?

Neste último caso, você pode facilmente adicionar seu próprio código de registro para rastrear o número de acessos a ele.

No primeiro caso, você precisará de algo que possa rastrear o próprio log do servidor web e fazer essa distinção.Meu plano de hospedagem vem com webalizer, que faz isso muito bem.

Existe um banco de dados para sua biblioteca de música?Se houver algum código de servidor executado ao baixar o mp3, você poderá adicionar código extra para aumentar a contagem de reproduções.Você também pode fazer com que o javascript faça uma segunda solicitação para aumentar a contagem de reproduções, mas isso pode fazer com que pessoas/robôs aumentem falsamente as contagens.

Eu trabalhava para um site de rádio na Internet e usávamos tabelas separadas para controlar o tempo em que cada música era tocada.Nossos streams eram alimentados por um script perl rodando icecast, então acionamos uma solicitação de banco de dados sempre que uma nova faixa começava a ser reproduzida.Então, para calcular a contagem de reproduções, executaríamos uma consulta para contar quantas vezes o ID de uma música estava no registro de reprodução.

O problema que tive com coisas como AWStats/leitura de logs de servidores web é que downloads grandes muitas vezes podem ser divididos em blocos de dados dentro dos logs.Isso torna bastante difícil reconciliar o número exato de downloads.

Eu sugiro o Google Analytics Acompanhamento de eventos, pois isso será registrado uma vez por clique em um link de download.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top