Вопрос

У меня есть веб-сайт, который воспроизводит mp3-файлы во флэш-плеере.Если пользователь нажимает "воспроизвести", flash player автоматически загружает mp3-файл и начинает его воспроизведение.

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


Является ли ссылка на воспроизведение ссылкой на фактический файл mp3 или на какой-либо код javascript , который выводит проигрыватель?

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

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

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

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

Это было полезно?

Решение

Самое смешное, что я написал галерею мультимедиа на php для всей своей музыки 2 дня назад.У меня была похожая проблема.Я использую http://musicplayer.sourceforge.net/ для игрока.И список воспроизведения создается с помощью php.Все музыкальные запросы отправляются туда скриптом с именем xfer.php?file=ЧТО УГОДНО

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

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

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, не затрагивая ссылку на файл.

Другие советы

Используйте свои файлы журналов httpd.Установить http://awstats.sourceforge.net/

Используйте bash:

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

Если ваша песня / двоичный файл был обработан apache, вы можете легко просмотреть журнал доступа, чтобы узнать количество загрузок.Простой скрипт post-logrotate может обрабатывать журналы grep и сохранять статистику вашего количества в базе данных.Это дает преимущество в производительности, поскольку не находится в пути к вашему текущему коду запроса.Выполнение некритичных действий, таких как статистика, в автономном режиме - хорошая идея для масштабирования вашего сайта для большого числа пользователей.

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

Является ли ссылка на воспроизведение ссылкой на сам mp3-файл или на какой-то javascript-код, который выводит проигрыватель?

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top