Wie erfasse ich Datei-Downloads

stimmen
66

Ich habe eine Website, die mp3s in einem Flash-Player spielt. Wenn ein ‚Spiel‘ Benutzer klickt auf dem Flash-Player lädt automatisch eine MP3 und es beginnt zu spielen.

Gibt es eine einfache Art und Weise, wie oft ein bestimmtes Lied Clip (oder jede binäre Datei) zu verfolgen heruntergeladen wurde?


Ist das Spiel Link ein Link auf die aktuelle MP3-Datei oder zu einem JavaScript-Code, der einen Spieler erscheint?

Wenn letzteres der Fall, können Sie Ihre eigenen Logging-Code in es einfach hinzufügen die Anzahl der Treffer, um es zu verfolgen.

Wenn die ehemaligen, müssen Sie etwas, dass der Webserver selbst verfolgen können protokollieren und diese Unterscheidung zu machen. Mein Hosting-Plan kommt mit webalizer, die dies gut tut.

Es ist Javascript-Code, so dass antwortet, dass.

Allerdings wäre es schön zu wissen, wie Downloads mit der anderen Methode verfolgen (ohne Rechner schaltend).

Veröffentlicht am 01/08/2008 um 18:14
quelle vom benutzer
In anderen Sprachen...                            


8 antworten

stimmen
36

Das Komische ist , den ich vor einer PHP - Mediengalerie für all meine Musik 2 Tage schrieb. Ich hatte ein ähnliches Problem. Ich verwende http://musicplayer.sourceforge.net/ für den Spieler. Und die Playlist über PHP gebaut. Alle Anfrage Musik gehen dort ein Skript namens 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, '-_,', '+/='));
}

Und wenn Sie anrufen Dateien verwenden, so etwas wie:

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

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

Wenn Sie einige Javascript oder einen Flash-Player (JW-Player zum Beispiel) verwenden, die die eigentliche Verbindung erfordert eine MP3-Datei oder was auch immer zu sein, können Sie den Text „& type = .mp3“ anhängen, so dass die endgültige linke wird so etwas wie: „www .example.com / xfer.php? file = 34842ffjfjxfh & type = .mp3" . So sieht es aus wie es mit einer MP3-Erweiterung endet, ohne die Datei Link zu beeinflussen.

Beantwortet am 01/08/2008 um 18:33
quelle vom benutzer

stimmen
27

Verwenden Sie Ihre httpd - Log - Dateien. installieren Sie http://awstats.sourceforge.net/

Beantwortet am 01/08/2008 um 18:51
quelle vom benutzer

stimmen
21

Verwenden Sie bash:

grep mp3 /var/log/httpd/access_log | wc
Beantwortet am 02/10/2009 um 03:12
quelle vom benutzer

stimmen
12

Wenn Ihr Song / Binär-Datei von Apache serviert wurde, können Sie bequem die access_log grep die Anzahl der Downloads, um herauszufinden. Ein einfaches Post-logrotate Skript kann die Protokolle grep und Ihre Zählung Statistiken in einem db halten. Dies hat den Leistungsvorteil von nicht in Ihrem Live-Anforderungs-Code-Pfad sein. Doing unkritische Dinge wie Statistiken offline ist eine gute Idee, um Ihre Website zu großer Anzahl von Benutzern zu skalieren.

Beantwortet am 12/10/2008 um 10:10
quelle vom benutzer

stimmen
11

Man könnte sogar eine Apache .htaccess Richtlinie einrichten, die * .mp3-Anfragen in die Abfragezeichenfolgeflag wandelt dubayou mit arbeitet. Es könnte eine elegante Möglichkeit, die direkte Anfrage zu halten und noch in der Lage seiner Funktion in die Antwort auf Slipstream anmelden.

Beantwortet am 01/08/2008 um 18:42
quelle vom benutzer

stimmen
6

Ist das Spiel Link ein Link auf die aktuelle MP3-Datei oder zu einem JavaScript-Code, der einen Spieler erscheint?

Wenn letzteres der Fall, können Sie Ihre eigenen Logging-Code in es einfach hinzufügen die Anzahl der Treffer, um es zu verfolgen.

Wenn die ehemaligen, müssen Sie etwas, dass der Webserver selbst verfolgen können protokollieren und diese Unterscheidung zu machen. Mein Hosting-Plan kommt mit webalizer, die dies gut tut.

Beantwortet am 01/08/2008 um 18:24
quelle vom benutzer

stimmen
3

Das Problem, das ich mit Dingen wie AWStats hatte / das Lesen durch Webserver-Logs ist, dass große Downloads können oft innerhalb der Protokolle in Datenblöcke aufgeteilt werden. Dies macht die genaue Anzahl der Downloads ziemlich schwer in Einklang zu bringen.

Ich würde das Google Analytics vorschlagen Ereignis - Tracking , da dies auf einem Download - Link einmal pro Klick registriert.

Beantwortet am 09/06/2016 um 09:38
quelle vom benutzer

stimmen
3

Gibt es eine Datenbank für die Musikbibliothek? Wenn es ein Server-Code, der ausgeführt wird, wenn die MP3-Download, dann können Sie dort zusätzlichen Code fügen Sie die Wiedergabe-Anzahl zu erhöhen. Sie könnten haben Javascript auch eine zweite Anforderung, um die Wiedergabe-Anzahl zu erhöhen, aber dies zu Menschen führen könnte / Roboter fälschlicherweise zählt erhöht wird.

Früher habe ich für eine Internet-Radio-Website arbeiten, und wir haben getrennte Tabellen, die Zeit gespielt wurde jeder Song zu verfolgen. Unsere Ströme wurden durch einen Perl-Skript ausgeführt wird icecast angetrieben, so dass wir lösten eine Datenbankanforderung jedes Mal eine neue Spur zu spielen begann. Dann die Spielzähler berechnen wir eine Abfrage ausführen würden zu zählen, wie oft ein Lied id im Spielprotokoll war.

Beantwortet am 04/09/2008 um 19:44
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more