Guia de otimização

Estratégias de otimização

Segurança

Revisar as práticas recomendadas de segurança

As chaves de API são credenciais específicas do projeto que devem ser manipuladas com o mesmo cuidado que IDs de usuário e senhas. Lembre-se de revisar as Práticas recomendadas da chave de API para proteger suas chaves contra uso não intencional que pode levar ao uso indevido da cota e cobranças inesperadas na sua conta.

Usar as chaves de API para acessar as APIs Maps

As chaves de API são o método de autenticação preferencial para acessar as APIs da Plataforma Google Maps. Os IDs de cliente mais antigos continuam sendo aceitos, mas as chaves de API são compatíveis com controles de segurança mais refinados e podem ser ajustadas para funcionar com endereços da Web, endereços IP e SDKs para dispositivos móveis (Android e iOS) mais específicos. Para ver informações sobre como criar e proteger uma chave de API, consulte o documento "Acessar uma chave de API" referente a cada SDK ou API com que você está trabalhando (por exemplo, para a API Maps JavaScript, veja Acessar uma chave de API).

Desempenho

Usar a espera exponencial para lidar com erros

Se os seus apps apresentarem erros de tentativas excessivas de chamada de API em um curto período de tempo, como erros de QPS, considere usar a espera exponencial (link em inglês) para permitir que as solicitações sejam processadas.

Mais especificamente, você está ajustando o ritmo das consultas. No código, adicione um período de espera de S segundos entre as consultas. Se a consulta ainda resultar em um erro de QPS, dobre o tempo e envie outra consulta. Continue ajustando o período dessa maneira até que a consulta retorne sem erro.

Enviar solicitações de interação do usuário sob demanda

As solicitações de APIs que incluem interação do usuário precisam ser enviadas somente sob demanda. Isso significa aguardar o usuário final executar uma ação (como um clique) para iniciar a solicitação de API e, em seguida, usar os resultados para carregar um mapa, definir um destino ou exibir as informações apropriadas. O uso de uma abordagem sob demanda evita solicitações desnecessárias e reduz o consumo de APIs.

Evitar exibir conteúdo de sobreposição quando um mapa estiver sendo movido

Opte por não usar o método Draw() para exibir conteúdo de sobreposição personalizado em um mapa ao mesmo tempo que um usuário pode estar movendo ele. Como o mapa é redesenhado toda vez que um usuário o move, posicionar o conteúdo de sobreposição ao mesmo tempo pode gerar lentidão ou renderização visual lenta. Só adicione ou remova o conteúdo de sobreposição de um mapa quando o usuário parar de movimentar ou alterar o zoom.

Evitar operações intensivas em métodos "Draw"

De maneira geral, desaconselhamos usar operações de não desenho que exijam alto desempenho em um método Draw(). Por exemplo, evite o seguinte no código do método Draw():

  • Consultas que retornam uma grande quantidade de conteúdo.
  • Muitas alterações nos dados exibidos.
  • Manipular muitos elementos do Modelo de objeto de documento (DOM, na sigla em inglês).

Essas operações podem retardar o desempenho e introduzir lentidão ou renderização visual lenta no mapa.

Usar imagens rasterizadas para marcadores

Aplique imagens rasterizadas, como no formato .PNG ou .JPG, ao adicionar marcadores para identificar um local em um mapa. Evite usar imagens de Elementos gráficos vetoriais escaláveis (SVG). A renderização de imagens SVG pode gerar atraso quando o mapa é redesenhado.

Criar clusters para gerenciar a exibição de marcadores

Para ajudar você a gerenciar a exibição de marcadores para identificar locais em um mapa, crie um cluster usando a biblioteca Marker Clusterer (link em inglês). Essa biblioteca inclui opções para os seguintes aspectos:

  • Tamanho da grade, que permite especificar o número de marcadores a serem agrupados em um cluster.
  • Zoom máximo, que permite especificar o nível máximo de zoom em que o cluster será exibido.
  • Caminhos das imagens para utilização como ícones de marcador.

Otimizar o consumo

Monitorar e restringir o consumo

Para poder planejar seu orçamento e controlar os custos, faça o seguinte:

  • Defina um alerta de orçamento para acompanhar o aumento dos gastos em relação a um determinado valor. A definição de um orçamento não limita o uso da API, apenas informa quando seu gasto está próximo do valor especificado.
  • Limite o uso diário da API para gerenciar o custo de uso das APIs faturáveis. Ao definir limites nas solicitações por dia, você pode restringir seus gastos. Use uma equação simples para determinar o limite diário, dependendo de quanto você quer gastar. Por exemplo: (gasto mensal / preço unitário)/30 = limite de solicitações por dia (para uma API). Sua implementação pode usar várias APIs faturáveis, então ajuste a equação conforme necessário. Ao fazer o cálculo, lembre-se de que um crédito de US$ 200 da Plataforma Google Maps está disponível todos os meses.

Maps

O uso de um único mapa por página é uma boa maneira de otimizar a exibição de mapas. Os usuários geralmente interagem com um mapa por vez. Seu app pode manipular o mapa para exibir diferentes conjuntos de dados, dependendo da interação e das necessidades do cliente.

Usar imagens estáticas

As solicitações que usam imagens dinâmicas (Dynamic Maps e Dynamic Street View) custam mais do que o Static Maps e o Static Street View. Se você não prevê interação do usuário com o mapa ou o Street View (como aplicação de zoom ou movimentação), considere usar as versões estáticas dessas APIs.

Miniaturas, fotos e mapas muito pequenos são outro bom uso para o Static Maps e o Static Street View. Esses itens têm uma taxa menor e, mediante interação do usuário (no clique), podem direcionar a uma versão dinâmica para uma experiência completa no Google Maps.

Usar a API Maps Embed

Use a API Maps Embed para adicionar um mapa com um único marcador ou um mapa dinâmico gratuitamente. Ela pode ser usada em aplicativos onde um único marcador é obrigatório, e não há necessidade de ter personalização de mapa. As solicitações da API Maps Embed que usam os modos Directions, View ou Search agora serão cobradas. Veja mais detalhes na tabela de preços.

Usar SDKs de mapas em aplicativos para dispositivos móveis

No caso de aplicativos para dispositivos móveis, use o SDK do Maps para Android ou o SDK do Maps para iOS ao exibir um mapa. Use a API Maps Static ou a API Maps JavaScript quando os requisitos descartam o uso de SDKs para dispositivos móveis.

Trajetos

Limitar waypoints da API Directions

Quando possível, limite as entradas do usuário em uma consulta para um máximo de 10 waypoints. As solicitações que ultrapassarem esse limite terão uma taxa mais alta.

Usar a otimização da API Directions para conseguir o melhor trajeto

As solicitações que usam o argumento de otimização do waypoint terão uma taxa maior. Para mais informações, consulte Waypoints do Optimize.

O argumento de otimização classifica os waypoints para garantir o melhor trajeto, o que significa que viajar de A para E é uma experiência melhor quando otimizado (A-B-C-D-E), em comparação com a sequência aleatória de uma rota não otimizada (como A-D-B-C-E).

Usar modelos de trânsito em tempo real na API Directions e na API Distance Matrix

As solicitações da API Directions e da API Distance Matrix que incluem modelos de tráfego em tempo real terão uma taxa mais alta. Esses modelos são ativados ao definir o horário de partida como now.

Se os modelos de tráfego forem omitidos de uma solicitação, os resultados serão baseados exclusivamente em fatores físicos: vias, distância e limites de velocidade.

Usar Route Traveled e Nearest Road quando os dados de GPS forem imprecisos

Os recursos da API Maps Roads, Route Traveled e Nearest Road estão incluídos no nível avançado e têm uma taxa maior. Use esses recursos quando os dados de GPS estiverem imprecisos e a API Roads puder ajudar a determinar a via correta. Os limites de velocidade, outro recurso da API Roads, estão disponíveis apenas para clientes de rastreamento de recursos.

Amostras de locais com limite de velocidade em intervalos de 5 a 15 minutos

Para minimizar o volume de chamadas ao serviço de limite de velocidade da API Maps Roads, faça uma amostra dos locais dos seus recursos em intervalos de 5 a 15 minutos. O valor exato depende da velocidade em que um recurso está viajando. Se um recurso estiver fixo, uma única amostra de local será suficiente. Não é necessário fazer várias chamadas.

Para minimizar a latência geral, recomendamos chamar o serviço de limite de velocidade depois de acumular alguns dados, em vez de chamar a API sempre que a localização de um recurso para dispositivo móvel for recebida.

Places

Usar a opção Autocomplete adequada ao seu caso

Identifique a opção Autocomplete mais adequada ao seu caso, porque ambas têm o mesmo custo. A diferença é como os usuários finais do aplicativo podem utilizar as APIs.

  • Autocomplete - Per Request: ideal para casos de uso em que uma única entrada é suficiente, como um formulário de endereço de correspondência que um usuário preenche.
  • Autocomplete - Per Session: melhor usado quando forem necessárias várias entradas, como pesquisas de um hotel ou restaurante.

O Autocomplete - Per Session permite resultados ilimitados, mas requer a implementação de tokens para garantir que as sessões sejam válidas. Se uma sessão inválida ocorrer, as cobranças do Autocomplete - Per Request serão aplicadas a cada pressionamento de tecla. Isso poderá gerar faturamentos mais altos. Para mais informações sobre esse recurso, consulte Place Autocomplete.

Retornar dados para campos específicos em solicitações de Place Details e Place Search

Você pode personalizar as solicitações de Place Detail e Place Search para retornar dados de campos específicos usados no seu aplicativo. Esses campos estão divididos em categorias: Basic, Contact e Atmosphere. As solicitações que não especificarem nenhum campo receberão dados para todos os campos.

O faturamento para solicitações de Place Detail é baseado nos tipos e valores de dados solicitados. Solicitações que não especificarem campos serão cobradas de acordo com a taxa completa. Para mais informações, consulte Place Details e Place Search.

Reduzir custos usando a API Geocoding

Se o aplicativo processa endereços digitados por usuários, os endereços às vezes são ambíguos (incompletos, incorretos ou com formatação incorreta). É possível corrigir os endereços usando o Autocomplete. Em seguida, use os IDs para ver os locais.

No entanto, se você tiver um endereço exato (ou próximo dele), poderá reduzir custos usando o Geocoding, em vez do Autocomplete. Para mais detalhes, consulte Práticas recomendadas para endereços com Geocoding.