Vor kurzem habe ich die Download-Zahlen für ein Plugin im offiziellen WordPress.org Plugin-Directory nachgeschlagen. Unter „Erweiterte Ansicht“ eines jeden Plugins findet man eine Grafik mit den „Downloads pro Tag“ und den Zahlen aus den letzten 267 Tagen. Sehen wir uns diesen Graphen für das beliebte Antispam Bee Plugin an:
Wenn ihr mit der Maus über den Graphen fahrt, dann findet ihr zu jedem Tag die entsprechenden Downloads von diesem Tag. Ich wollte aber die Summe der Downloads aus den letzten paar Wochen nach der letzten Veröffentlichung wissen (die Spitze im Graphen) und diese manuell niederzuschreiben und zusammenzurechnen wäre dann doch ein wenig zu viel Arbeit gewesen. Wie komme ich also leichter an diese Zahlen heran?
Auslesen der Zahlen aus dem Quellcode der erweiterten Ansicht
Mein erster Versuch war es, den Graphen zu untersuchen in der Hoffnung dort die Zahlen zu finden. Leider waren die Zahlen im SVG nicht enthalten. Aber direkt darunter habe ich ein vielversprechendes Element gefunden:
<svg width="611" height="350" aria-label="A chart." style="overflow: hidden;">
<div aria-label="A tabular representation of the data in the chart." style="position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden;">
<table>
...
Die CSS Eigenschaften des DIV verbergen es aus dem sichtbaren Bereich. Wenn ihr die Tabelle also sehen wollt, könnt ihr die Eigenschaften über den Insepctor deaktivieren. Danach könnt ihr die Daten in Excel/Calc oder ähnliche Programme kopieren.
Die Tabelle ist nicht im Seitenquellcode zu finden, da der Graph und die versteckte Tabelle per AJAX nachgeladen werden, nachdem die Seite initial geladen wurde. Genau hier können wir ansetzen und die Daten auf eine andere Weise bekommen.
Auslesen der Zahlen von der WordPress.org API
Es gibt eine Reihe von API Endpoints von WordPress.org, die nicht sehr bekannt oder dokumentiert sind. Aber einige davon sind wirklich nützlich für verschiedene Anwendungsfälle. Die „erweiterte Ansicht“ verwendet selbst vier dieser Endpunkte. Eine davon können wir nutzen um die rohen Downloadzahlen als JSON Objekt zu erhalten:
https://api.wordpress.org/stats/plugin/1.0/downloads.php?slug=antispam-bee&limit=267
Dieser Aufruf entspricht in etwa dem von der „erweiterten Ansicht“ und holt die Zahlen der letzten 267 Tage. Das JSON Objekt sieht in etwa wie folgt aus:
{
"2020-06-07": "1520",
"2020-06-08": "2309",
"2020-06-09": "2209",
...
Wenn ihr also die Downloadzahlen in einem Programm verarbeiten wollte, dann ist der REST API Endpoint mit den Daten als JSON Objekt die bessere Wahl. Durch anhängen des undokumentierten Parameters historical_summary=1
könnt ihr die aggregierten Zahlen für heute, gestern, die letzten 7 Tage sowie die gesamte Zeit abrufen.
Fazit
Selbst nach so vielen Jahren Arbeit mit WordPress gibt es immer noch Dinge, die ich aus WordPress.org noch nicht zuvor entdeckt habe. Ich habe die WordPress.org API zuvor bereits genutzt, aber für meinen Anwendungsfall war die Tabelle sehr viel einfacher zu nutzen.
Ich kann euch sehr empfehlen auch einmal die anderen Endpoints zu testen. Hier gibt es nicht nur Endpoints für andere Statistiken, sondern auch solche, um nähere Informationen zu Plugins uns Theme zu erhalten.
Hey Bernhard.
Danke für dein Beitrag.
Leider ist das ganze wordpress.org Repo in der Hinsicht ein Trauerspiel.
– nicht wirklich verifizierten Bewertungen
– keine Anzeige der tatsächlichen Downloads (ich könnte jede Woche ein Update machen und schon gehen die Downloadzahlen nach oben)
– wie werden aktive Installationen gezählt und warum ist das keine genaue Zahl? (ist das überhaupt DSGVO konform? )
und und und
Leider ist Automattic immer sehr untransparent und wie es sich für einen Ami gehört, wird dies auch so bleiben, da ist oft mehr schein als sein, schade denn ich denke das sie es nicht nötig hätten.
Ahoi
Nick
Hallo Nick,
ich stimme dir zu, dass es einige Daten gibt, die hier fehlen. Die Anzahl der Downloads ist aber natürlich auch kein Maßstab dafür, wie beliebt ein Plugin ist. Hier ist es schon eher die Anzahl der aktiven Installationen. Dass es hier keine exakte Zahl gibt ist wirklich schade. Bezüglich DSGVO sehe ich hier aber keine Probleme, da aggregierte Daten ja keine personenbezogenen Daten sind. Ermittelt werden diese, wenn ich noch richtig informiert bin, über die Abfragen von WordPress-Installationen gegen die WordPress.org API bei der Prüfung auf Auto-Updates. Hierbei werden die installierten Plugins, das aktive Theme, die Anzahl der User (aber nicht deren personenbezogenen Daten) und ähnliches übermittelt.
Das Problem mit den Bewertungen ist natürlich ein ganz anderes. Jedes Bewertungssystem ist potentiell anfällig für falsche Bewertungen. Eine falsche Bewertung kann gemeldet werden. Inwiefern hier aber automatisierte oder manuelle Prüfungen regelmäßig stattfinden, kann ich leider nicht sagen. Mit Automattic hat das aber alles nichts zu tun und auch nicht mit „Amis“. Die WordPress.org Seite ist noch immer ein globales Thema der Community.