Klicks zählen, ohne den Linktext zu lesen
Ein Zähler beantwortet „wie viele kamen". Die nützlichere Frage lautet meist „wie viele haben etwas getan" — auf den Kontaktverweis gedrückt, den Download geöffnet, hinaus auf ein Profil im sozialen Netz. Für so etwas gibt es hier Ereignisse, seit sie gebaut wurden: data-s4u-event="kontakt" an ein Element schreiben, und Klicks darauf werden unter diesem Namen gezählt.
Fast niemand hat es benutzt, weil fast niemand davon wusste. Es gibt deshalb jetzt einen Haken: Klicks auf Links automatisch zählen, ohne Attribute. Das Interessante ist nicht der Schalter. Interessant ist, wie das Gezählte heißt.
Nicht der Linktext
Der naheliegende Name für einen Klick sind die Wörter, auf die der Besucher gedrückt hat. Er ist auch der falsche.
Linktext ist freier Inhalt. Ein Verweis kann „Bestellung 4711" heißen oder „Nachricht von Anna", er kann eine Hausnummer tragen, eine Buchungsnummer, eine E-Mail-Adresse. All das landete in einer Datenbankspalte namens name und bliebe dort stehen. Die Datenschutzerklärung dieses Dienstes sagt, die Statistik enthalte keine personenbezogenen Daten, und das muss wahr bleiben, ohne davon abzuhängen, was ein Seitenbetreiber gerade in ein Verweis-Element schreibt.
Es gibt ein zweites Problem, kleiner, aber echt: zwanzig Verweise mit dem Wort „hier" auf einer Seite sind ein Name, der nichts sagt, und derselbe Verweis in elf Übersetzungen wären elf Namen von den fünfzig, die ein Zähler haben darf.
Der Name kommt deshalb aus dem Ziel-Pfad. Den hat der Seitenbetreiber gewählt, er ist stabil, und er ist ohnehin schon der Schlüssel, den die Seitenstatistik benutzt.
Drei Normalisierungen, jede aus einem Grund
- Sprachpräfix entfernt.
/de/blogund/pl/blogsind dieselbe Seite. Ohne das verbrauchte allein der Sprachumschalter einer mehrsprachigen Seite elf der fünfzig Namen. - Ziffernfolgen ab fünf werden zu
n. Zwei Statistikseiten mit verschiedenen Zählernummern sind nicht zwei Seiten, sondern zweimal dieselbe. - Verweise, die die Seite verlassen, werden
ex-plus Gastgeber. Der Pfad einer fremden Seite sagt dem Betreiber nichts. Wohin der Klick ging, schon.
Anker, mailto:, tel: und javascript: werden übersprungen — das sind keine Ziele, für die jemand eine Zahl braucht. Elemente, die schon einen eigenen Ereignisnamen tragen, ebenfalls, sonst zählte derselbe Klick zweimal.
Was es kostet
Das Skript im Browser ist um 1.022 Byte gepackt gewachsen, einmal je Erstbesuch. Sonst nichts: der Schalter fährt in einer Anfrage mit, die das Skript ohnehin bei jedem Seitenaufruf stellt — einer Anfrage, die bis jetzt immer dieselbe Konstante beantwortet hat — es gibt also keinen zweiten Weg. Auf dem Server steht die Liste der Zähler mit gesetztem Haken in einer kleinen Datei statt in einer Abfrage, denn diese Abfrage ist ein Vollscan über 166.433 Zeilen und kostet gemessene 143,9 Millisekunden.
Die Vorgabe ist aus, und sie bleibt aus. Bei diesem Verkehr würde es, überall eingeschaltet, rund neuntausend zusätzliche Schreibvorgänge am Tag in der meistbeschriebenen Tabelle bedeuten, die es hier gibt. Das ist etwas, das man einschaltet, nicht etwas, das einem passiert.