
.avif)
.avif)

Si vous gérez un site d'annonces d'emploi avec un filtre basé sur le temps de trajet ("Moins de 45 minutes en voiture"), vous offrez une fonctionnalité cruciale. Mais derrière cette expérience utilisateur se cache un gouffre financier : l'API Google Distance Matrix.
Chaque fois qu'un utilisateur lance une recherche pour un rayon de 45 minutes, votre serveur interroge l'API pour calculer le temps de trajet réel (incluant les bouchons et les routes) entre le domicile de l'utilisateur et chacune des offres d'emploi de votre catalogue.
Le constat est simple : pour 800 offres x 100 recherches/jour = 80 000 requêtes payantes par jour. La facture s'envole.

Pour réduire les coûts, deux options ont été envisagées, mais nous les avons écartées au profit d'une approche plus fine :
L'approche consistant à imposer des filtres supplémentaires (Région, Langue) avant l'accès à la recherche géographique part d'une intention d'optimisation technique, mais elle ignore les lois fondamentales de l'expérience utilisateur (UX).
Le verdict est sans appel : On ne règle pas un problème de coût API en transférant l'effort sur l'utilisateur.
L'idée de passer sur OSM est souvent séduisante car les données cartographiques sont gratuites. Cependant, passer de l'API Google à une infrastructure OSM auto-hébergée pour du calcul de temps de trajet est un piège économique pour un catalogue de taille intermédiaire (~800 offres).
Verdict : Rejeté. L'installation et la maintenance d'un serveur OSM dédié représentent un coût caché en temps de développement et en infrastructure. Pour un site de ce volume, c'est une complexité inutile.
Nous avons choisi d'implémenter une architecture intelligente qui combine le meilleur des deux mondes : la vitesse d'un calcul interne gratuit et la précision de Google.
C'est là que réside l'économie massive. Pour chaque recherche d'utilisateur, nous exécutons un algorithme en deux temps :
Résultat : Au lieu d'interroger Google sur ~800 offres, le serveur filtre instantanément la base de données et ne conserve, par exemple, que 30 offres géographiquement plausibles. Coût : 0 €.
C'est l'étape de la précision.
Résultat : Nous n'affichons que les offres validées par Google (par exemple, 10 offres qui sont réellement accessibles en 45 minutes). Nous payons pour 30 requêtes au lieu de 800.
L'implémentation de cette logique a été réalisée grâce à un module custom. Cela nous a permis d'injecter la formule Haversine directement dans la requête SQL garantissant :
En adoptant cette stratégie, nous avons préservé une excellente expérience utilisateur et assuré la pérennité économique de la fonctionnalité "Temps de trajet" sur le long terme.