Google Maps API : Va voir ailleurs si j’y suis

Le 9 mai dernier, le monolithe Google a annoncé l’air de rien l’augmentation massive des tarifs de plusieurs de ses APIs, jusqu’alors gratuites ou du moins bénéficiant d’un tarif très avantageux. Annonce assez discrète et à échéance du 11 juin.

Chez Malt, comme beaucoup d’autres marketplaces, nous utilisons majoritairement l’API Places pour la localisation de nos freelances et le champ de recherche par ville, pays ou région afin de proposer des résultats pertinents. Nous avons également quelques cartes affichées sur nos pages baromètres.

A titre indicatif, pour nous, le choix de continuer à utiliser Google Maps équivaudrait environ à un salaire selon les nouveaux tarifs (~350 000 requêtes / mois majoritairement sur l’API Places).

Un autre monde est possible

Personne n’ayant voulu démissionner pour compenser cette dépense, nous avons benchmarké plusieurs solutions. L’idée étant de trouver le meilleur équilibre entre pricing, facilité d’implémentation au vu du délai et les services offerts.

Après avoir rapidement lorgné du côté de MapBox et Algolia, nous avons finalement décidé de retenir ce dernier.

Leur API Places offre l’ensemble des services que l’on utilise actuellement et le fonctionnement du plugin javascript associé pour l’autocomplete est quasiment similaire à celui de Google.

Un feuilletage de doc plus tard, nous étions prêts à dire “adieu” à Google et “Arrête, plus besoin” à Jérémy qui avait commencé à écrire une lettre de démission dans un grand sens du sacrifice.

Il est venu le temps de la transition

Faire cohabiter les deux services, Google et Algolia n’a pas été compliqué. Chez Malt, nous sommes plus adeptes du features-flipping que du features branching (quesaco ? Réponse ici).

Ainsi, le temps du développement, l’idée n’était pas de repasser sur l’ensemble des formulaires de recherche par localisation de Malt (home, header, profil…) pour les adapter à l’API d’Algolia. Il nous a suffi de créer deux modules javascript distincts, l’un comprenant l’implémentation actuelle liée à Google Maps et l’autre dédié à celle d’Algolia Places et de switcher de l’un à l’autre pour tester la cohérence des deux services et la transparence pour l’utilisateur.

window.GEOLOCATION_PROVIDER étant seté à ‘google’ ou ‘algolia’ suivant notre système de feature-flipping

Algolia Places : en terrain connu

Pour ceux qui ont déjà utilisé la librairie js Places de Google, l’adaptation vers Algolia ne vous demandera pas d’effort. Le principe est le même : ciblage d’un Input (votre champ de recherche) dans votre document et création d’une nouvelle instance du plugin en fonction de cet élément.

On notera le fait que Algolia Places a son module npm, bien pratique.

Les options supplémentaires les plus intéressantes à retenir pouvant être fournies à l’initialisation du plugin étant :

  • La locale, vous n’avez pas envie d’indiquer des résultats en anglais à vos utilisateurs français.
  • Un template pour les items de suggestions. De base Algolia propose des items de liste avec icone, taille… Pas forcément raccord avec vos guidelines front.
  • Un filtre par type de résultat : ‘city’, ‘country’…

Comme dit plus haut, l’idée est d’adapter les résultats de l’API d’Algolia à nos formulaires de recherche existants sans avoir à modifier ces derniers. Le modèle des suggestions d’Algolia étant sensiblement différent de celui de Google Maps Places, un petit mapping s’impose.

Elémentaire mon cher Watson

La transition de Google vers Algolia n’est donc pas couteuse en terme de développement, quelques points à retenir :

  • module npm dédié
  • principe similaire de ciblage d’un input pour l’instanciation du plugin
  • un léger binding pour les champs de formulaire existant
  • paramètre de customisation du markup utilisé pour les suggestions

Rien de bien compliqué… Du coup, vraiment Jérémy, tu peux arrêter avec cette lettre de démission.

Algolia : action - réaction

Si vous êtes encore sceptique à l’idée de passer de Google à une plus petite boîte pour une feature aussi importante de votre service, sachez que l’équipe technique d’Algolia Places est plutôt réactive.

Et un bug de fixé !

Leur Software Engineer a répondu très rapidement aux quelques questions et bugs que nous lui avons remontés. Ils ont conscience de la demande provoquée par l’annonce de Google et sont en mesure d’offrir un service adéquat à tous ceux qui n’ont pas encore renvoyé un de leurs employés.

De notre côté nous avons un seul manque à l’appel des services que nous offrait Google Maps Places : la recherche par région. Nous sommes souvent confrontés à des recherches du type : Développeur — Auvergne-Rhône-Alpes par exemple. Actuellement, Algolia ne le permet pas. C’est inscrit dans leur roadmap mais pas pour le 11 juin malheureusement.

Et vous ?

Si vous êtes freelance et plus particulièrement sur Malt, n’hésitez pas à mettre en avant les compétences liées à un changement aussi impactant que celui impliqué par l’annonce de Google. Pensez donc à vous mettre à jour en ajoutant à votre profil : Algolia, OpenStreetMaps, MapBox… Ce sont des termes qui intéresseront certainement les clients qui ont fait le choix d’une alternative à Google Maps.

Et si vous êtes client et que le switch de Google Maps vers un autre service fait partie de vos priorités, sachez que vous pourrez trouver sur Malt plusieurs freelances étant à même de remplir cette mission pour vous.

Par ailleurs, non contents de n’avoir renvoyé personne, nous continuons de recruter, ça se passe ici!