Bonjour,
La solution mise en place se base sur le "user agent" fourni par le client.
La librairie Matomo fait la même chose. Elle est beaucoup plus grosse non pas car elle fait mieux, mais parce qu'elle inclut beaucoup d'autres choses qui n'ont rien à voir. Ce n'est pas parce que c'est plus gros que c'est mieux.
De plus, Matomo utilise d'autres mécanismes que le "user agent" pour savoir si un utilisateur est réel ou un robot. Par exemple, Matomo utilise du javascript côté client, et peut tracker le cheminement de l'utilisateur sur le site. Ces méthodes ne sont pas viables dans le cas présent. La géolocalisation doit être faite sur la première page à laquelle accède l'utilisateur ou le robot, avant que l'utilisateur ou le robot ait pu utilisé le javascript, ou qu'il soit possible de tracker le cheminement de l'utilisateur.
Donc il est normal que Matomo, a postériori arrive à mieux séparer les utilisateurs réels des robots car il peut se baser sur d'autres techniques qui ne sont pas possible dans le cas de la géolocalisation.
Le filtrage en fonction du "user agent" est grosso modo aussi efficace avec ce que j'ai rajouté au plugin que si j'aoutais le filtrage par "user agent" de Matomo.
Outre le user-agent, une autre solution pour savoir si un utilisateur arrivant sur un site est un robot ou non, c'est d'utiliser un service qui permette de savoir cela en fonction de l'adresse IP, comme par exemple:
ipdetective.io/
Mais bon, cela veut dire payer pour ce service pour moins payer pour IP2location. Pas sûr que ce soit rentable.
De plus, IP2location dispose aussi de cette capacité. C'est juste que dans notre situation c'est inutile. Que nous consommions un crédit pour récupérer le pays ou pour savoir si l'IP est un robot, c'est le même coût. Cela engendre juste du développement supplémentaire.
Donc je ne pense pas pouvoir améliorer les choses.