У меня есть сайт, который воспроизводит mp3 во флеш-плеере. Если пользователь нажимает 'play', флеш-плеер автоматически загружает mp3 и начинает его проигрывать.
Есть ли простой способ отследить, сколько раз был загружен определенный клип песни (или любой двоичный файл)?
Является ли ссылка на воспроизведение ссылкой на реальный mp3-файл или на какой-то код javascript. который всплывает в проигрывателе?
Если последнее, то вы можете легко добавить туда свой собственный код регистрации, чтобы отслеживать количество просмотров.
Если первое, то вам > понадобится что-то. что может отслеживать журнал веб-сервера. и делать это различие. Мой хостинг-план поставляется с Webalizer, который отлично справляется с этой задачей.
Это код javascript, так что это ответ на этот вопрос.
Однако было бы неплохо узнать, как отслеживать загрузки другим способом (без смены хостера).
Самое смешное, что 2 дня назад я написал php медиа галерею для всей моей музыки. У меня была похожая проблема. Для плеера я использую http://musicplayer.sourceforge.net/. И плейлист построен через php. Все запросы на музыку идут через скрипт 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, '-_,', '+/='));
}
И когда вы вызываете файлы, используйте что-то вроде:
function base64_url_encode($input) {
return strtr(base64_encode($input), '+/=', '-_,');
}
http://us.php.net/manual/en/function.base64-encode.php
Если вы используете javascript или флеш-плеер (например, JW player), который требует, чтобы фактическая ссылка была mp3-файлом или чем-то еще, вы можете добавить текст "&type=.mp3", чтобы конечная ссылка стала чем-то вроде: "www.example.com/xfer.php?file=34842ffjfjxfh&type=.mp3". Таким образом, ссылка будет выглядеть так, как будто она заканчивается расширением mp3, не влияя на ссылку на файл.
Если Ваша песня / бинарный файл подавался апачем, Вы можете легко grep access_log, чтобы узнать количество загрузок. Простой post-logrotate сценарий может grep регистрации и поддерживать Вашу статистику количества в db. У этого есть исполнительное преимущество, не находясь на Вашем живом кодовом пути запроса. Выполнение некритических вещей как статистика офлайн является хорошей идеей измерить Ваш веб-сайт к большому количеству пользователей.
Вы даже можете установить директиву Apache .htaccess, которая преобразует запросы *.mp3 в строку запроса, с которой работает dubayou. Это может быть элегантным способом сохранить прямой запрос и все же иметь возможность пропустить функцию журнала в ответ.
Является ли ссылка на воспроизведение ссылкой на реальный mp3-файл или на какой-то код javascript, который открывает плеер?
Если последнее, вы можете легко добавить туда свой собственный код регистрации, чтобы отслеживать количество просмотров.
Если первое, то вам понадобится что-то, что может отслеживать сам журнал веб-сервера и делать это различие. Мой хостинг-план поставляется с webalizer, который отлично справляется с этой задачей.
Проблема, которую я имел с вещами как AWStats / прочтение регистраций веб-сервера, состоит в том, что большие загрузки могут часто разделяться в частях данных в регистрациях. Это делает урегулирование точного количества загрузок довольно трудно.
I' d предлагают Google Analytics Отслеживание Событий, поскольку это зарегистрируется, как только за нажимают на ссылку для скачивания.
Есть ли база данных для Вашей музыкальной библиотеки? Если есть какой-либо кодекс сервера, который бежит, загружая mp3 тогда, Вы можете добавить дополнительный кодекс там, чтобы увеличить количество игры. У Вас мог также быть JavaScript, обращаются со второй просьбой, чтобы увеличить количество игры, но это могло привести к людям/роботам, ложно увеличивающим количество.
Я раньше работал на радио-Интернетом место, и мы использовали отдельные столы, чтобы отследить время, каждая песня игралась. Наши потоки были приведены в действие сценарием жемчуга, бегущим icecast, таким образом, мы вызвали запрос базы данных каждый раз, когда новый трек начал играть. Затем, чтобы вычислить игру учитываются, мы управляли бы вопросом, чтобы учитываться сколько раз song' s id был в журнале игры.