Otimizar o uso do Web Service

Observação: o plano Premium da Plataforma Google Maps não está mais disponível para a inscrição de novos clientes.

Visão geral

Se o aplicativo exceder os limites de uso de um serviço da Web da Plataforma Google Maps, o serviço retornará uma mensagem de erro. Se o aplicativo continuar estendendo os limites de uso, ele poderá ter o acesso ao serviço da Web bloqueado e, em alguns casos, receber respostas "403 Forbidden".

Se as solicitações de serviço da Web do aplicativo receberem mensagens de erro, você poderá fazer o seguinte:

  1. Diminua o uso otimizando os aplicativos para utilizar os serviços da Web com mais eficácia.
  2. Aumente os limites de uso, quando possível, comprando créditos das APIs Maps.

Antes de começar

Antes de otimizar o uso do serviço da Web do seu aplicativo, verifique se está utilizando o serviço correto para seu caso e a licença da API Maps correta.

Validar seu caso de uso

Os serviços da Web da Plataforma Google Maps são ideais para aplicativos que não exigem entradas de usuários em tempo real ou quando um navegador da Web não é utilizado. Por exemplo, você deve usar serviços da Web se o aplicativo utiliza um conjunto de dados independente da entrada de usuário — por exemplo, um conjunto de endereços fixo em um site de imobiliária que precisa ser geocodificado.

Com os serviços da Web, o limite de consultas por segundo (QPS) se aplica à sua licença do plano Premium, independentemente do número de solicitações de endereços IP.

Por outro lado, os serviços do lado do cliente disponíveis com a API Maps JavaScript têm limitação de taxas por sessão do navegador. Assim, as solicitações são distribuídas entre todos os seus usuários e aumentam de maneira proporcional. Portanto, os serviços do lado do cliente são ideais para aplicativos que geocodificam a entrada de endereço de usuários em tempo real, como um localizador de lojas que procura estabelecimentos perto do endereço residencial de um usuário.

Para ver uma discussão mais detalhada sobre quando usar os serviços da Web, consulte Estratégias de geocodificação. Apesar de ser específico para geocodificação, as recomendações neste documento se aplicam a todos os serviços da Web e detalham quando você deve usar serviços do lado do servidor ou equivalentes do lado do cliente.

Usar a licença do seu plano Premium da Plataforma Google Maps

Verifique se as solicitações do seu aplicativo incluem os detalhes de autenticação corretos para sua licença do plano Premium da Plataforma Google Maps, ou seja, o ID do cliente ou uma chave de API do projeto do plano Premium no Console do Google Cloud.

Se o aplicativo não usar a licença do plano Premium corretamente, ela estará sujeita aos limites de uso do plano padrão e às restrições de licenças nos Termos de Serviço da Plataforma Google Maps. Ele não estará coberto pelo SLA do plano Premium. Além disso, você não receberá suporte técnico para o aplicativo.

Como otimizar o uso do serviço da Web

Para usar os serviços da Web com mais eficácia, é possível diminuir o uso enviando solicitações somente quando necessário e distribuindo a utilização igualmente para respeitar os limites.

Armazenar resultados em cache

A seção 3.2.4.b dos Termos de Serviço da Plataforma Google Maps especifica que você pode armazenar em cache os dados do Google Maps temporariamente, por até 30 dias, para melhorar o desempenho do seu aplicativo. Ao armazenar as respostas do serviço da Web em cache, o aplicativo evita o envio de solicitações duplicadas em períodos curtos. Na verdade, as respostas do serviço da Web sempre incluem o cabeçalho "HTTP Cache-Control", que indica o período de armazenamento do resultado em cache, por exemplo, Cache-Control: public, max-age=86400. Para aumentar a eficiência, o aplicativo deve sempre armazenar em cache os resultados pelo menos pelo período especificado neste cabeçalho, mas não mais do que o tempo máximo especificado nos Termos de Serviço da Plataforma Google Maps.

É possível implementar o armazenamento em cache usando proxies da Web, e a maioria deles realiza essa função automaticamente. Se preferir, você pode usar uma implementação de proxy da Web própria. Observe que algumas bibliotecas de cliente HTTP também armazenam em cache respostas de HTTP.

Para aumentar as taxas de ocorrência em cache, lembre-se de normalizar as coordenadas de latitude/longitude arredondando para 6 números decimais, que fornece uma precisão de cerca de 11 centímetros ao redor do equador. Se você adicionar mais decimais, os resultados dos serviços da Web permanecerão iguais, mas as taxas de ocorrência em cache diminuirão.

Limitar solicitações

Para evitar exceder os limites de uso, é possível configurar o aplicativo para limitar solicitações colocando-as em uma fila que acompanha quando as solicitações são enviadas. Se o aplicativo receber uma solicitação além do limite de QPS, ele deverá verificar o timestamp da primeira solicitação e aguardar um segundo.

Mesmo com a limitação, os aplicativos ainda devem receber respostas com o código de status OVER_QUERY_LIMIT. Configure o aplicativo para inserir um pequeno atraso (20 ms) e tente novamente se ele receber uma resposta.

Aumentar o limite de QPS

Se você quiser implementar a limitação corretamente, o aplicativo não deverá enviar solicitações acima dos limites de uso. No entanto, ele poderá receber entradas muito grandes ou com uma velocidade maior do que a permitida pelos limites de uso do serviço da Web da Plataforma Google Maps (normalmente, 50 QPS). Neste caso, as filas de limitação podem ficar grandes, criando uma lista de pendências de solicitações. Além disso, a API Places inicialmente se limita a 50 QPS. Se o aplicativo recebe uma lista de pendências com frequência, seja em momentos específicos ou durante todo o dia, talvez seja necessário aumentar os limites de QPS da sua licença do plano Premium da Plataforma Google Maps. Para solicitar esse aumento de QPS, fale com seu gerente de contas de vendas da Plataforma Google Maps.