Bots nicht mitzählen oder bei den Reports rausfiltern

Hallo,
vielen Dank euch alle für den Einsatz.
Ich glaube auch nicht das DNT beim PHP-Tracking wirkt.
Mich interessiert grundsätzlich auch immer noch, warum der Unterschied so groß ist.
Das deaktivieren von

$t->setBrowserHasCookies(true);
$t->setPlugins($flash = true, $java = true, $silverlight = true, $pdf = true);

hat nichts gebracht.

Ich glaube mit dem erstellen eines Segments mit nur Besucher aus DE komme ich am weitesten.
Werde das Thema auch noch weiterverfolgen.
Danke & Viele Grüße
Olli

Die PiwikTracker.php ist nur ein Teil von Matomo. Damit wird die Matomo DoNotTrack function nicht ignoriert.

@Olli, wieso solltest du voreilig eventuell echte Besucher absichtlich ignorieren? Es ist weiterhin gut möglich, dass mit PHP Tracking viel mehr als mit JavaScript Tracking getrackt werden. AdBlocker und dergleichen AddOns sind kein Mysterium.

Das führt nur dazu, dass nicht mehr fälschlicherweise angezeigt wird, dass alle Benutzer Flash unterstützen, weil der Server das ja nicht wissen kann.

Die PiwikTracker.php ist unabhängig vom Rest und macht nur eine HTTP Anfrage an die Tracking API (wo vermutlich der DNT Header des Besuchers nicht mehr weitergeleitet wird)

Für mich sieht das nur nach einer Sammlung von functions in einer class aus, die von Matomo genutzt wird, nix unabhängig, niemals standalone. Es wäre seltsam, wenn DNT ignoriert werden würde.
https://developer.matomo.org/api-reference/PHP-Piwik-Tracker

Dafür kann es doch eine Menge Gründe geben, z.B., dass Ollis Interesse ausschließlich Besuchern aus Deutschland gillt.
Es kommt halt immer drauf an, was man denn auswerten will, wenn Hits aus China und Korea nicht interessant sind gibt es m.E. keinen Grund, warum man die nicht filtern sollte.
Für Ollis Anwendung passte die Default-Auswertung nun mal nicht, ist doch gut, wenn er über Segmentierung dort ankommt, wo die für ihn relevanten Daten zu finden sind - und die AdBlocker der ihm wichigen Besucher hat er ja trotz Segmentierung erfolgreich umschifft.

Wir können jetzt trefflich streiten, wie und ob die Matomo php tracking default Einstellung verbessert werden könnte (mein Dank an jene, die die Bot-Liste pflegen), aber bei den von Dir selber beschriebenen individuellen Unterschieden der Logs Deiner Projekte zeigt sich doch, dass die projektspezifischen Unterschiede groß sind - und damit eine “one-size-fits-all” default Lösung eher unwahrscheinlich ist.

Am Ende bieten sowohl das JS tracking als auch das php tracking jeweils nur einen Kompromiss, und das wird sich auch nicht gänzlich ändern lassen.
Gut ist halt, wenn man mit den Vor- und Nachteilen eines Kompromisses vertraut ist.
Was m.e. konstruktiv getan werden könnte, währe eine Übersichtstabelle zu erstellen, in denen die erwartbaren Vor- und Nachteile der jeweiligen Tracking-Varianten übersichtlich verglichen werden könnten -
die gibt es meines Wissens nicht.

Ob dann in der “Unterstützt/Respektiert DNT”-Zeile beim php tracking ein Häckchen rein muss oder nicht wäre noch herauszufinden,
aber für jemanden wie Olli gäbe es dann schon im Vorfeld der Entscheidung eine Referenz-Seite,
auf der er sich mit den Unterschieden der Tracking-Varianten hätte vertraut machen können.

Offensichtlich sind die Unterschiede recht groß, darauf im Vorfeld hinzuweisen erscheint mir sinnvoll, denn am Ende geht es auch darum, dass die Nutzer Ihren Matomo Ergebnissen vertrauen wollen.
Unverhoffte 200% Besucherzuwachs innerhalb der selben Software ist m.E. keine so vertrauenerweckende Nutzererfahrung, und nicht jeder Nutzer wird sich dann erstmal Rat suchend hier im Forum melden.

@Lukas Ich wäre bereit, besagte Übersichtstabelle bzw. eine Art Entscheidungshilfe “Welche Tracking Variante soll ich wählen” mal anzudenken, wenn Du/Ihr das für sinnvoll erachtest.
Inhaltlich müsste das aber jemand verifizieren, da ich mit dem php Tracking selber keine ausreichende Erfahrung habe.

Hallo,

Wenn du willst kannst du in der Knowledge base einen Artikel beginnen und ich mache ihn dann zum Wiki, sodass jeder ihn verbessern kann.

Ich habe auch schon mal zum Tracking-Pixel geschrieben, der ja auch in soeine Tabelle gehören würde:

Richards Idee find ich unterstützenswert!

  • JavaScript Tracking
  • Image Tracking
  • JavaScript Tracking + Image Tracking
  • PHP Tracking
  • Server Log Tracking

Achso, und das Thema an sich ist ja erledigt, da Bots bei allen Versionen gefiltert werden werden.

Kennt ihr das schon?

Ja, aber das hat mit dem Thema nur wenig zu tun. Da geht es um eine kleine Schnittmenge der Bots die so tun als währen sie von ihrer Seite gekommen, wodurch ihre Webseiten in der Referrerliste in Matomo auftauchen.

@Lukas & @melbao
Ich bin die Übersicht mal angegangen, schaut mal hier:
https://forum.matomo.org/t/js-tracking-php-tracking-logfile-import-or-image-tracking-which-method-should-i-choose-and-why/26974
Hoffe, daraus lässt sich mit Eurer Hilfe etwas machen, ist mal ein erster Anlauf :slight_smile:

Hallo,
vielleicht auch nochmal als Abschluss:
Ich hatte zu diesem Thema bevor ich hier im Forum gefragt habe, auch beim Matomo Support nachgefragt und jetzt die Antwort erhalten, die ich euch nicht vorenthalten möchte:

When you use the PHP Tracking API, it is possible to enable an optional Tracking API parameter which will result in all bots being tracked in your instance.
You can do this by calling the following function in your code:

$tracker->setCustomTrackingParameter('bots', 1);

Please note that we currently do not set a flag for bots, therefore it will be hard to see which requests are from bots and which are from normal users. Bots will be mixed with non-bots.
If you are interested, it would be possible for you to actually detect whether user is a bot or not directly in your PHP script, by replicating the logic we do in Matomo.
This way youd be able to set a custom dimension to distinguish bots VS non-bots.
FYI the code we use in Matomo to detect a bot uses our Device detector library:
device-detector
And here is the code:

$deviceDetector = DeviceDetectorFactory::getInstance($this->userAgent);
return !$allowBots && ($deviceDetector->isBot() || $this->isIpInRange());

Das noch für Euch zur Info.
Vielleicht werde ich das mal machen, wenn mehr Zeit ist.

1 Like

@MrSnuts, das sieht schon sehr informativ aus.

@Olli, wirst du einen Testlauf mit deaktiviertem Bot-Detector machen um den Unterschied zu erkennen?

Nachdem ich ein wenig programmiert habe und das access_log sowie die Matomo Datenbank dabei verwendet habe, bin ich zu dem Schluß gekommen, dass ein Vergleich zwischen Javascript Tracking / PHP Tracking / Server Log Tracking am einfachst ist, wenn eine zweite Instanz von Matomo mit eigener Datenbank für das Vergleichs-Tracking verwendet wird. Allles andere selbstprogrammierte würde bedeuten, Matomo nachzubauen.

Apropos Kombinieren:
https://github.com/matomo-org/matomo/issues/9665

Ein Feature, welches bei weitem nicht trivial ist, aber in der fernen Zukunft einmal zu Matomo kommen könnte, wäre die Möglichkeit die Daten aus mehreren Quellen zu verknüpfen.

Das würde natürlich neue Möglichkeiten eröffnen.

A post was split to a new topic: Demo.matomo.org verbessern

Hallo,
ich habe folgende Zeile

heute mal Testweise eingebaut und einen 3/4 Tag mitlaufen lassen.
Ergebnis:
ca 500 (!) Besucher mehr
ca. 3000 (!!!) Seitenansichten mehr

Genauer habe ich nicht geguckt.
Habe mir aber -wie weiter oben geschrieben und jetzt unabhängig vom Custom Parameter “bot”- ein Segment gebaut nur mit Besucher aus Deutschland.
Hier habe ich soweit ich das Beurteilen kann eine reelle Besucher- und Seitenansichtenzahl.

Viele Grüße
Olli

Hallo,

Das ist irgendwie absehbar, da laut der Datei oben, deine Webseite über 5500 mal alleine vom Bing Bot aufgerufen wurde. Und mit $tracker->setCustomTrackingParameter(‘bots’, 1); werden diese nun nicht mehr ignoriert.

Das mit dem Eingrenzen und Ausgrenzen finde ich Quatsch. Internet kennt keine Grenzen. “Deutsche” sind überall auf der Welt unterwegs. Deutsche arbeiten im Ausland, also vom Ausland aus im Internet. Büros sind überflüßig. Zudem sind ständig Deutsche irgendwo im Ausland im Urlaub und machen keinen Urlaub vom Internet. Aber muss jeder selbst wissen was er macht.

Ich will dies doch schon älteres Thema mal auffrischen, weil die Thematik hier indirekt etwas damit zu tun hat, wofür ich im Moment noch keine Lösung finde.

Grundsätzlich halte ich die Methodik wie Matomo Bots rausfiltert für nicht mehr zeitgemäß, weil diese in hohem Maße unsicher ist, zu viel Performance abverlangt und außerdem zu viele Ressourcen verbraucht. Die Filterung an Hand des UA ist außerdem sehr oft false postiv, zumal es sehr einfach ist den User-Agent zu faken. Inzwischen und doch schon seit längerem ermöglicht der Chrome, bzw. Chrome basierte Browser, sowie der Firefox die Möglichkeit den Nutzer an Hand von sec-fetch-* Header zu identifizieren, allerdings macht da der Safari Browser (noch) nicht mit, was aber kein Problem ist.

Ich logge (unabhängig von Matomo) nun schon seit mehreren Monaten alle Aufrufe und erfasse damit die Existenz dieser besagten Header. Die Treffer Quote liegt bislang bei 100%, heißt ich kann zu 100% sicherstellen, was ein natürlicher Nutzer ist und was etwas maschinengetriebenes ist und das komplett unabhängig vom UA, weil sowohl die offiziellen als auch die Fake Bots diese Header nicht mitsenden. Die einzige Schwäche liegt zumindest aktuell noch darin, dass ich einen ge-fake-ten Safari Browser, der von einem Bot genutzt wird, noch nicht von einem Safari Browser von einem natürlichen Safari unterscheiden kann, eben weil der Safari Browser diese Header generell nicht mitschickt.

Um meine Methodik trotz des Safari Handicaps abzusichern, sodass am Ende dann doch 100% rauskommen, verwende ich zusätzlich die PHP API und dafür braucht es bekanntlich kein Javascript. Damit ich durch die zusätzliche PHP API nicht doppelt tracke, ist der Aufruf der API durch einen Filter abgesichert, der mir dann auch ermöglicht einen ge-fake-ten Safari Browser von einem echten unterscheiden zu können. Außerdem loggt die API eine andere Seiten ID als der herkömmliche Javascript Tracker. Diese beschriebene Methodik mit der API erlaubt mir außerdem auch != 200 Aufrufe zu tracken. Mal abgesehen von etwaigen 50xer, sehe ich mit Matomo alles, wofür ich ansonsten erst in der access_log nachsehen müsste. Eigentlich perfekt, aber nur beinahe.

Was mir im Moment noch fehlt sind die Aufrufe der Bots, die von Matomo rausgefiltert werden, weil ich die Bots sehr wohl haben will. Die PHP API hat zwar einen Switch, der der Doku nach auch Bots tracked, aber der funzt nicht. Sämtliche Versuche dem Device Detector beizubringen keine Bots mehr rauszufiltern, sind bislang gescheitert.

Hat jemand eine Idee wie man dem Device Detector das abgewöhnen kann?

Hallo Serpent_Driver,

ich bin an der Sache nach wie vor dran, wobei sich die Sache (bei mir) spezialisiert hat, auf Besucher aus Clouds: “direct view - 0 seconds - 1 page”.

Wenn du auch Bots tracken willst, dann musst du die Bot-Blacklist in Matomo löschen, bzw. dort alle Einträge rauslöschen oder zumindest auskommentieren. Die findest du in irgendeiner Datei der matomo Installation. Frag mich nicht, aber irgenwo da habe ich sie schon einmal gesehen. Dazu musst du ein bisschen PHP können.

unten bei Usage:

if ($dd->isBot()) {
  // handle bots,spiders,crawlers,...
  $botInfo = $dd->getBot();
} else {
  $clientInfo = $dd->getClient(); // holds information about browser, feed reader, media player, ...
  $osInfo = $dd->getOs();
  $device = $dd->getDeviceName();
  $brand = $dd->getBrandName();
  $model = $dd->getModel();
}

@melbao

Was hat denn bitte der Device Detector mit der robots.txt zu tun?!

Die Matomo Robots.txt soll verhindern, dass Deine Statistiken gecrawlt oder indexiert werden …. Also Matomo Seiten

Hat also nix mit deinem Webauftritt zu tun.