Optimiser l'utilisation des services Web

Remarque : Il n'est plus possible de s'inscrire au forfait Premium Google Maps Platform, et il n'est plus disponible non plus pour les nouveaux clients.

Présentation

Si votre application dépasse les limites d'utilisation pour un service Web Google Maps Platform, 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 "HTTP 403 Refusé".

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, dans la mesure du possible, en achetant des crédits d'API Google Maps 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 d'API Google Maps.

Valider votre cas d'utilisation

Les services Web Google Maps Platform 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 ensemble de données qui ne dépend pas de l'entrée 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 (RPS) s'applique à votre licence du forfait Premium, 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 l'API Maps JavaScript 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 outil de localisation 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, consultez la page Stratégies de geocoding. Bien que spécifiques au geocoding, les recommandations contenues dans ce document s'appliquent à tous les services Web, et vous expliquent dans quels cas il est préférable d'utiliser des services Web côté serveur ou leurs équivalents côté client.

Utiliser la licence du forfait Premium Google Maps Platform

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

Si votre application n'utilise pas correctement la licence du forfait Premium, elle est soumise aux limites d'utilisation du forfait standard et aux restrictions de licence figurant dans les conditions d'utilisation de Google Maps Platform. Elle n'est pas couverte par le contrat de niveau de service du forfait Premium. Par ailleurs, vous ne pourrez pas bénéficier de l'assistance technique pour cette application.

Optimiser l'utilisation des services Web

Pour utiliser les services Web plus efficacement, vous pouvez réduire leur utilisation en n'envoyant des requêtes que 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 3.2.4.b des conditions d'utilisation de Google Maps Platform indique que vous pouvez temporairement mettre en cache les données Google Maps pendant une période allant jusqu'à 30 jours. Cela vous permet 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. Pour plus d'efficacité, assurez-vous que votre application met toujours en cache les résultats pendant une durée au moins égale à celle spécifiée dans cet en-tête, sans toutefois dépasser la durée maximale indiquée dans les conditions d'utilisation de Google Maps Platform.

Vous pouvez mettre en œuvre la mise en cache à l'aide des proxys Web, la plupart d'entre eux effectuant cette action de manière automatique. Vous pouvez également utiliser votre mise en œuvre de proxy Web. Notez que certaines bibliothèques clientes 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 RPS, 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 associées au code d'état OVER_QUERY_LIMIT. Si tel est le cas, configurez votre application pour insérer un délai court (20 ms) et réessayez.

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

Si la régulation est correctement mise en œuvre, votre application ne devrait pas envoyer de requêtes qui dépassent les limites d'utilisation. Toutefois, elle peut recevoir une saisie trop importante ou à une vitesse supérieure à celle autorisée par les limites d'utilisation du service Web de Google Maps Platform (en général, 50 RPS). Dans ce cas, les files d'attente de régulation peuvent devenir trop importantes et créer des accumulations de requêtes. De plus, l'API Places est initialement limitée à 50 RPS. Si votre application reçoit constamment ce type d'accumulation, que ce soit à certaines heures ou tout au long de la journée, vous devrez peut-être augmenter les limites de RPS pour votre licence du forfait Premium Google Maps Platform. Pour demander une augmentation du nombre de RPS, contactez votre responsable de compte client Google Maps Platform.