Как отслеживать загрузки файлов

У меня есть веб-сайт, который играет mp3s в Flash-плеере. Если пользователь нажимает кнопку «play», проигрыватель flash player автоматически загружает mp3 и начинает его воспроизведение.

Есть ли простой способ отслеживать, сколько раз конкретный клип песни (или любой двоичный файл) был загружен?


Является ли play link ссылкой на фактическую
mp3-файл или код javascript
что всплывает игрок?

Если последнее, вы можете легко добавить ваш
иметь код входа в там для того чтобы отслеживать
количество попаданий в него.

Если первое, то вам понадобится что-то
который может отслеживать журнал веб-сервера
сама и делаю это различие. Мой
хостинг план поставляется с webalizer,
что делает это красиво.

Это код javascript, так что ответ на этот вопрос.

Тем не менее, было бы неплохо знать, как отслеживать загрузки с помощью другого метода (без переключения хостов).

8 ответов

  1. Является ли play link ссылкой на фактический mp3-файл или на какой-то код javascript, который выскакивает плеер?

    Если последнее, вы можете легко добавить свой собственный код регистрации там, чтобы отслеживать количество посещений к нему.

    Если первое, вам понадобится что-то, что может отслеживать сам журнал веб-сервера и сделать это различие. Мой хостинг план поставляется с webalizer, который делает это красиво.

  2. Забавно, что я написал медиа-галерею php для всей моей музыки 2 дня назад. У меня была похожая проблема. Я использую http://musicplayer.sourceforge.net / для игрока. И плейлист построен через php. Все музыкальные запросы идут туда скриптом под названием xfer.php?файл=что угодно

    $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, '-_,', '+/='));
    }
    

    И при вызове файлов используйте что-то вроде:

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

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

    Если вы используете какой-то javascript или flash player (например, JW player), который требует, чтобы фактическая ссылка была mp3-файлом или чем-то еще, вы можете добавить текст «&type=.mp3 » таким образом, конечная Линке становится чем — то вроде:
    «www.example.com/xfer.php?file=34842ffjfjxfh&type=.mp3». Таким образом, это выглядит, как это заканчивается с расширением mp3, не затрагивая ссылку на файл.

  3. Вы даже можете настроить Apache .директива htaccess, преобразующая *.запросы mp3 в строку запросов, с которой работает dubayou. Это может быть элегантный способ сохранить прямой запрос и все еще быть в состоянии slipstream функцию журнала в ответ.

  4. Есть ли база данных для вашей музыкальной библиотеки? Если есть какой-либо серверный код, который работает при загрузке mp3, то вы можете добавить дополнительный код там, чтобы увеличить количество воспроизведения. Вы также можете попросить javascript сделать второй запрос, чтобы увеличить количество воспроизведения, но это может привести к людям/роботам, ложно увеличивающим количество.

    Я работал на сайте интернет-радио,и мы использовали отдельные таблицы, чтобы отслеживать время каждой песни. Наши потоки питались скриптом perl с icecast, поэтому мы запускали запрос базы данных при каждом запуске нового трека. Затем, чтобы вычислить количество воспроизведения, мы запустили бы запрос, чтобы подсчитать, сколько раз идентификатор песни был в журнале воспроизведения.

  5. Если ваш файл song / binary обслуживался apache, вы можете легко grep access_log, чтобы узнать количество загрузок. Простой сценарий post-logrotate может grep журналы и поддерживать статистику подсчета в БД.
    Это имеет преимущество в производительности, не находясь в пути кода live запроса. Делать некритические вещи, такие как статистика в автономном режиме, — хорошая идея для масштабирования вашего сайта до большого количества пользователей.

  6. Проблема, которую я имел с такими вещами, как AWStats / чтение через журналы веб-сервера, заключается в том, что большие загрузки часто могут быть разделены на куски данных в журналах. Это делает согласование точное количество загрузок довольно трудно.

    Я бы предложил отслеживание событий Google Analytics, так как это будет регистрироваться один раз за клик по ссылке загрузки.