Festellen wie oft .jpg auf einer frmeden seite aufgerufen/angezeigt wird


rernanded

Erfahrenes Mitglied
Hallo,
vllt. bin ich hier falsch, lieber Moderator, dann bitte verschieben. Danke.

Frage:
Ich will ein .jpg auf einer fremden Seite platzieren und feststellen wie oft das .jpg aufgerufen/angezeigt wird.
Welche Möglichkeiten gibt es. Eine wäre zB das .jpg auf meinem Server zu lassen und es mittels
<img src="http://www.meinserver.net/image.jpg"> einbinden zu lassen.
Was aber, wenn das Bild auf dem fremden Server liegt und per <img src="image.jpg"> eingebunden wird?

Vllt. geht was mit einem js eventhandler wie onload den ich im img-Tag einbauen lassen kann?

Oder wenn das Bild mit einem Link auf meine Seite versehen wäre:
<a href="http://www.meineseite.net/mehrinfos.html"><img src="image.jpg"></a>
Vllt. gibt es dann Möglichkeiten im a-Tag?


Moni
 
Zuletzt bearbeitet:

cwriter

Erfahrenes Mitglied
Ich will ein .jpg auf einer fremden Seite platzieren und feststellen wie oft das .jpg aufgerufen/angezeigt wird.
Heikel.

Vllt. geht was mit einem js eventhandler wie onload den ich im img-Tag einbauen lassen kann?
Wenn du ohnehin JS laufen lassen kannst, dann ist das Zählen kein Problem, da du Daten an einen Server deiner Wahl schicken kannst (AJAX / XHTTPRequest).
Die Versierten werden aber NoScript verwenden, und das zurecht...

Wenn das Bild auf deinem Server liegt, kannst du den Webserver selbst mitloggen lassen (z.B. apache2 logfiles). Das ist vergleichsweise effizient zu loggen, aber mühsam auszulesen.

Alternativ kannst du mit mod_rewrite die Bild-Url zu einer .php-Datei umleiten (Oder einfach direkt den .php-Link als Bild angeben), die das Logging übernimmt und das Bild ausgibt.

Das Problem bei diesen Methoden: Du kannst nur Aufrufe, aber nicht so leicht unique users zählen.
Du kannst zwar User-Agent und diverse Meta-Informationen durch den HTTP-Request bekommen, aber:
1) Datenschutz: Die EU wird dir zu Recht aufs Dach steigen. Der Nutzer kann nicht sehen, dass du ihn mitloggst (u.a. dadurch, dass er vielleicht der Seite, die auf den Bild verlinkt, nicht aber dir ein eventuelles Einverständnis gibt). Daher: Verboten oder zumindest Grauzone.
2) Die Versierten werden auch hier entsprechende Vorkehrungen treffen.

https://de.wikipedia.org/wiki/Web_Analytics#Gesetzliche_Zul.C3.A4ssigkeit_in_Deutschland
Das Bundesdatenschutzgesetz lässt die Erhebung und die Speicherung von personenbezogenen Daten nur dann zu, wenn dies von einer gesetzlichen Vorschrift explizit erlaubt wird oder eine eindeutige und vorherige Einwilligung des Nutzers vorliegt.
Da Browser einen ziemlich guten "Fingerabdruck" hinterlassen, wäre ich entsprechend zumindest vorsichtig.
(In A und CH ist es ähnlich).
Umstritten ist, ob die IP-Adresse eines Internetnutzers in Verbindung mit dem Nutzungszeitpunkt ein personenbezogenes Datum darstellt. Das Amtsgericht München lehnte den Personenbezug einer dynamischen IP-Adresse, die durch den Betreiber eines Internetdienstes gespeichert worden war, in einem ergänzenden Hinweis (obiter dictum) ab (Urt. v. 30. September 2008 – 133 C 5677/08, MMR 2008, 860[5]). Es folgte damit einigen juristischen Kommentatoren (Gola/Schomerus, § 3 Rn. 10), die IP-Adressen nur für „relativ“ personenbezogen halten, so dass die Speicherung von IP-Adressen bei Content-Anbietern zulässig und erst ihre Übermittlung unzulässig sei.[6]

Das Amtsgericht Berlin-Mitte hat demgegenüber einen Personenbezug angenommen und es dem Betreiber eines Internetportals verboten, die IP-Adressen seiner Nutzer über die Dauer des Nutzungsvorgangs hinaus aufzubewahren (Urt. v. 27. März 2007 – 5 C 314/06, DuD 2007, 856-858, bestätigt durch Landgericht Berlin, Urt. v. 6. September 2007 – 23 S 3/07, MMR 2007, 799-800[7]).
Für dich hiesse der 2. Paragraph: IP Adressen dürfen nicht gespeichert werden.

Das reine Zählen der Aufrufe ist nicht verboten, aber dann brauchst du auch kein JS.

Wichtiger Hinweis:
Wer als deutscher Anbieter eines Internetdienstes externe Dienste wie Webanalysedienste in sein Angebot einbindet, haftet für die Einhaltung des deutschen Datenschutzrechts (sog. Auftragsdatenverarbeitung).
(=> Da du einen Webanalysedienst machen willst: Wo immer du das positionierst, der Inhaber haftet)

Wenn du Man-in-the-Middle spielen willst:
Entweder du fügst ein zusätzliches, eigenes Zählpixel neben dem verlinkten Bild ein, welches dann auf deinem Server liegt und entsprechend gezählt werden kann, oder du machst das volle Programm mit JS, also AJAX & Co.

Diese Art scheint aber moralisch noch morbider, da du die Zählung nicht als Nebenprodukt, sondern als Hauptzweck durchführst...

Dazu kommt, dass du DNT (Do Not Track) zu berücksichtigen hast.

Wie gesagt gilt all das rechtliche Geblubber nur, wenn du mehr als nur Aufrufe zählen (=1 einziger Counter) willst.

Generell dazu: https://de.wikipedia.org/wiki/Zählpixel

Kurzfassung:
Rechtliche Grauzone, mit Einwilligung des Nutzers kein Problem, aber du haftest für die Sicherheit der gespeicherten personenbezogenen Daten.
Technisch leicht umzusetzen.

Gruss
cwriter
 

rernanded

Erfahrenes Mitglied
@cwriter Danke, sehr ausführlich.
Vllt. kannst Du mal Code-Beispiele geben für

Alternativ kannst du mit mod_rewrite die Bild-Url zu einer .php-Datei umleiten (Oder einfach direkt den .php-Link als Bild angeben), die das Logging übernimmt und das Bild ausgibt.

und für

Entweder du fügst ein zusätzliches, eigenes Zählpixel neben dem verlinkten Bild ein, welches dann auf deinem Server liegt und entsprechend gezählt werden kann, oder du machst das volle Programm mit JS, also AJAX & Co.

Danke Dir.

MONI
 

cwriter

Erfahrenes Mitglied
Vllt. kannst Du mal Code-Beispiele geben
1)
html:
HTML:
<img src="meinbild.php"></img>
PHP:
<?php
header("content-type: image/jpeg"); //Oder Dynamisch auslesen, oder...

if(!(isset($_SERVER['HTTP_DNT']) && $_SERVER['HTTP_DNT'] == 1))
{
    //Logging code (MySQL, Datei, ...)
}
readfile("meinbild.jpg");
?>
2)
HTML:
<div id="counter">
<img src="fremd.irgendwo/bild.png"></img>
<img src="mein.server/meinbild.php"></img>
</div>
(Wobei meinbild.php identisch zu 1) sein kann, aber ein sehr kleines Bild liest, oft 1x1px)
Damit kann jemand immer noch deine Seite blocken und das Zählen verhindern; du kannst auch nur eine eigene Seite verlinken und das Bild dann von extern laden und durchreichen.
In diesem Falle kannst du statt readfile() ein
PHP:
echo "<img src='fremd.server/eigentlichesBild.jpg'></img>"; //Korrekterweise mit entsprechendem Doctype usw. versehen
machen (und den Mime-Type-Header entfernen) und so einen HTML-Code schreiben:
HTML:
<iframe src="mein.server/bild.php"/>
Mit AJAX: Müsste eigentlich klar sein; dasselbe in grün.

Das ganze kann man mit diversen GET-Variablen verbessern, aber die Idee sollte damit klar werden.

Gruss
cwriter
 
Zuletzt bearbeitet: