파일 다운로드 추적 방법
나는 플래시 플레이어로 mp3를 재생하는 웹사이트를 가지고 있다.사용자가 '재생'을 클릭하면 플래시 플레이어는 자동으로 mp3를 다운로드하여 재생을 시작합니다.
특정 노래 클립(또는 바이너리 파일)이 다운로드된 횟수를 쉽게 추적할 수 있는 방법이 있습니까?
플레이 링크는 실제 mp3 파일에 대한 링크입니까, 아니면 플레이어를 띄우는 자바스크립트 코드에 대한 링크입니까?
후자의 경우는, 거기에 독자적인 로그 코드를 간단하게 추가해, 히트수를 추적할 수 있습니다.
전자의 경우 웹 서버 로그 자체를 추적하여 구별할 수 있는 것이 필요합니다.제 호스트 플랜은 Webalizer와 함께 제공되며, 이 기능은 훌륭합니다.
Javascript 코드라서 그게 답이야
다만, (호스트를 전환하지 않고) 다른 방법으로 다운로드를 추적하는 방법을 알면 좋을 것입니다.
재미있는 것은 이틀 전에 모든 음악들에 대해 php 미디어 갤러리를 썼다는 것입니다.저도 비슷한 문제가 있었어요.플레이어는 http://musicplayer.sourceforge.net/을 사용하고 있습니다.재생목록은 php를 통해 구축됩니다.모든 음악 요청은 xfer.php?file=WHANTHY라는 스크립트로 전송됩니다.
$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
mp3 파일의 실제 링크가 필요한 JavaScript 또는 플래시 플레이어(예를 들어 JW 플레이어)를 사용하는 경우 "&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에 의해 처리되었다면 access_log를 쉽게 grep하여 다운로드 수를 확인할 수 있습니다.간단한 로그 생성 후 스크립트는 로그를 grep하고 DB의 카운트 통계를 유지할 수 있습니다.이는 라이브 요청 코드 경로에 있지 않기 때문에 성능이 우수합니다.오프라인에서 통계와 같이 중요하지 않은 작업을 수행하는 것은 웹 사이트를 다수의 사용자에게 확장하기 위한 좋은 방법입니다.
*.mp3 요청을 작업 중인 쿼리 문자열 dubayou로 변환하는 Apache .htaccess 지시문을 설정할 수도 있습니다.직접 요청을 유지하면서 로그 기능을 응답에 슬립스트림할 수 있는 우아한 방법입니다.
플레이 링크는 실제 mp3 파일에 대한 링크입니까, 아니면 플레이어를 띄우는 자바스크립트 코드에 대한 링크입니까?
후자의 경우는, 거기에 독자적인 로그 코드를 간단하게 추가해, 히트수를 추적할 수 있습니다.
전자의 경우 웹 서버 로그 자체를 추적하여 구별할 수 있는 것이 필요합니다.제 호스팅 계획에는 웹앨라이저가 포함되어 있습니다. 웹앨라이저는 이 기능을 갖추고 있습니다.
당신의 음악 라이브러리용 데이터베이스가 있나요?mp3 다운로드 시 실행되는 서버 코드가 있는 경우 추가 코드를 추가하여 재생 횟수를 늘릴 수 있습니다.javascript에 재생 횟수를 늘리기 위한 두 번째 요청을 할 수도 있지만, 이로 인해 사람/로봇이 실수로 횟수를 늘릴 수 있습니다.
나는 인터넷 라디오 사이트에서 일했었는데 우리는 각각의 노래가 재생되는 시간을 추적하기 위해 별도의 테이블을 사용했다.당사의 스트림은 icecast를 실행하는 Perl 스크립트에 의해 구동되었기 때문에 새로운 트랙이 재생되기 시작할 때마다 데이터베이스 요청을 트리거했습니다.그런 다음 재생 횟수를 계산하기 위해 쿼리를 실행하여 재생 로그에 있는 곡의 ID 수를 계산합니다.
웹 서버 로그를 통한 AWStats/읽기 등의 문제가 있었습니다.대용량 다운로드가 로그 내의 데이터 청크로 분할되는 경우가 많습니다.따라서 정확한 다운로드 수를 조정하기가 매우 어렵습니다.
Google Analytics 이벤트 추적은 다운로드 링크를 클릭할 때마다 한 번씩 등록되므로 추천합니다.
언급URL : https://stackoverflow.com/questions/146/how-do-i-track-file-downloads
'programing' 카테고리의 다른 글
무엇:이 오류-치명적 오류를 일으키고 있다.지역 grunt"를 찾을 수 없습니다. (0) | 2022.09.23 |
---|---|
어레이 항목을 값별로 제거하는 중 (0) | 2022.09.23 |
belongsToMany 관계가 존재하는지 확인합니다(라벨). (0) | 2022.09.23 |
Vuex: 스토어 속성이 존재하는 경우에만 2초마다 함수를 디스패치하시겠습니까? (0) | 2022.09.23 |
Select Statement with LIKE 연산자의 MySQL Case (0) | 2022.09.23 |