Optimiser l'utilisation des services Web

Présentation

Si votre application dépasse les limites d'utilisation pour un service Web Google Maps APIs, le service renverra un message d'erreur. Si votre application continue de dépasser ces limites, l'accès au service Web pourra être bloqué et, dans certains cas, renvoyer des réponses « 403 Forbidden ».

Si les requêtes de service Web de votre application reçoivent des messages d'erreur, vous pouvez procéder comme suit :

  1. Réduire l'utilisation en optimisant les applications pour utiliser les services Web plus efficacement.
  2. Augmenter les limites d'utilisation, le cas échéant, en achetant des crédits Maps API supplémentaires.

Avant de commencer

Avant d'optimiser l'utilisation des services Web de votre application, vérifiez que vous utilisez le service adapté à votre situation et la bonne licence Maps API.

Valider votre cas d'utilisation

Les services Web Google Maps APIs sont mieux adaptés aux applications qui ne nécessitent pas de saisie en temps réel des utilisateurs ou aux cas où aucun navigateur Web n'est utilisé. Par exemple, vous devez utiliser les services Web si votre application utilise un jeu de données qui ne dépend pas de la saisie de l'utilisateur (un jeu d'adresses fixe sur le site Web d'une agence immobilière qui doit être géocodé, par exemple).

Notez qu'avec les services Web, la limite de requêtes par seconde (QPS) s'applique à votre licence Premium Plan, quel que soit le nombre d'adresses IP à partir desquelles les requêtes sont envoyées.

D'autre part, les services côté client disponibles avec Google Maps JavaScript API sont limités à un taux par session de navigateur, afin de répartir les requêtes entre tous vos utilisateurs et de les adapter au nombre d'utilisateurs. De ce fait, les services côté client sont mieux adaptés aux applications qui géocodent les adresses saisies par l'utilisateur en temps réel, comme un localisateur de magasin qui recherche des magasins à proximité de l'adresse du domicile de l'utilisateur.

Pour en savoir plus sur l'utilisation des services Web, voir Stratégies de géocodage. Bien que spécifiques au géocodage, les recommandations contenues dans ce document s'appliquent à tous les services Web, en expliquant dans quels cas il est préférable d'utiliser des services Web côté serveur ou leurs équivalents côté client.

Utiliser votre licence Google Maps APIs Premium Plan

Assurez-vous que les requêtes de votre application contiennent les données d'authentification correspondant à votre licence Google Maps APIs Premium Plan, c'est-à-dire votre ID client ou une clé d'API générée à partir de votre projet Premium Plan dans la Google API Console.

Si votre application n'utilise pas correctement la licence Premium Plan, elle sera soumise aux limites d'utilisation et aux restrictions des Conditions de service du plan Standard et ne sera pas couverte par le contrat de niveau de service de Premium Plan. Par ailleurs, vous ne pourrez pas bénéficier du support technique pour cette application.

Comment optimiser l'utilisation des services Web

Pour utiliser les services Web plus efficacement, vous pouvez réduire leur utilisation en envoyant des requêtes uniquement lorsque cela est nécessaire et en répartissant l'utilisation uniformément pour ne pas dépasser les limites.

Mettre en cache les résultats

La section 10.5.d des Conditions de service Maps API précise qu'il est possible de mettre temporairement en cache les données Google Maps, pour une période de 30 jours maximum, afin d'améliorer les performances de votre application. En mettant en cache les réponses des services Web, votre application peut éviter d'envoyer des requêtes en double sur de courtes périodes. En effet, les réponses des services Web incluent toujours l'en-tête HTTP Cache-Control, qui indique la période pendant laquelle vous pouvez mettre en cache le résultat—par exemple, Cache-Control: public, max-age=86400. Par souci d'efficacité, veillez à ce que votre application mette toujours en cache les résultats pendant une durée au moins égale à celle précisée dans l'en-tête, sans dépasser la durée maximale indiquée dans les Conditions de service Maps API.

Vous pouvez implémenter la mise en cache à l'aide des proxies Web, la plupart d'entre eux effectuant cette action de manière automatique. Vous pouvez également utiliser votre implémentation de proxy Web. Notez que certaines bibliothèques client HTTP mettent aussi en cache les réponses HTTP.

Pour accroître le taux de succès de cache, veillez à normaliser les coordonnées de latitude/longitude (lat/long) en les arrondissant à 6 décimales, pour une précision d'environ 11 centimètres au niveau de l'équateur. Si vous ajoutez plus de décimales, les résultats des services Web ne changeront pas mais le taux de succès de cache diminuera.

Réguler les requêtes

Pour éviter de dépasser les limites d'utilisation, vous pouvez configurer votre application pour qu'elle régule les requêtes, en les plaçant dans une file d'attente qui consigne l'heure à laquelle elles sont envoyées. Si votre application reçoit une requête supplémentaire au-delà de la limite de QPS, elle doit alors vérifier l'horodatage de la première requête et attendre 1 seconde.

Même avec la régulation, les applications peuvent continuer de recevoir des réponses avec le code d'état OVER_QUERY_LIMIT. Si tel est le cas, configurez votre application pour insérer un petit délai (20 ms) et réessayez.

Augmenter la limite de requêtes par seconde (QPS)

Si la régulation est correctement implémentée, votre application ne devrait pas envoyer de requêtes qui dépassent les limites d'utilisation. Toutefois, votre application peut recevoir une saisie trop importante ou à une vitesse supérieure à celle autorisée par les limites d'utilisation du service Web (en général, 50 requêtes par seconde). Dans ce cas, les files d'attente de régulation peuvent devenir trop importantes et créer des accumulations de requêtes. De même, Places API Web Service est initialement limité à 5 requêtes par seconde. Si votre application reçoit constamment ce type de retard, que ce soit à certaines heures de la journée ou toute la journée, vous devrez peut-être envisager d'augmenter les limites de QPS pour votre licence Google Maps APIs Premium Plan. Pour demander une augmentation du nombre de QPS, contactez votre gestionnaire de compte Google Maps APIs.