Google Maps: Como reduzir os gastos com a API da Google

Tags:    

Receba atualizações semanais no e-mail

Com a popularização dos aplicativos de mobilidade urbana, de entrega de mercadorias como o Rappi e também de prestadores de serviço como o aplicativo do Sem Patrão, a API do Google Maps tem sido peça vital para o negócio.

A API do Google Maps se popularizou no Brasil por ser um dos poucos serviços que disponibiliza o endereço e trajetos para ruas em todo o país. Isso não acontece na maioria dos concorrentes, que não possuem um banco de endereços atualizado, oferecendo em muitas situações endereços ou rotas que não existem.

Em 2018 a Google anunciou um aumento no valor dos serviços fornecidos pela API de Mapas, sendo cobrado após o uso do limite diário. Tal medida impactou diretamente na maioria dos aplicativos.

Para se ter uma ideia, antigamente não era cobrado para exibir até 25.000 vezes o mapa por dia e um acréscimo de U$ 0,50 a cada 1.000 visualizações a mais.

Após o aumento, é possível visualizar até 28.000 vezes por dia, porém após essa quantidade é cobrada uma taxa de U$ 7,00 para cada 1.000 visualização excedentes. Para complementar, essas 28.000 visualizações só ficam disponíveis se a conta tiver um saldo de U$ 200,00 por mês.

Fonte: Google Maps API

Saiba mais sobre os aplicativos de mobilidade urbana.

Algumas funcionalidades como: traçar rota, calculo de distância, pesquisar endereço e até mesmo exibir um endereço no mapa dependem diretamente dos recursos do Google Maps API. E, com o aumento do valor para a utilização, muitos aplicativos precisam buscar alternativas para que os gastos com o Google Maps não tornem o negócio inviável.

Você dono de um aplicativo de mobilidade urbana, deve estar se perguntando:

Como posso reduzir os gastos da API do Google Maps para manter meu negócio competitivo?

Pensando nisso fizemos esse apanhado de dicas para auxiliar o seu time de desenvolvimento a otimizar o código do sistema, reduzindo a dependência do Google Maps.

Vamos ao que interessa:

Cálculo de distância Geográfica

Essencial nos aplicativos de mobilidade, o calculo de distância permite mostrar ao usuário qual é o tempo e distância que o motorista que irá lhe atender está do passageiro. Dessa forma, o passageiro tem uma previsão de quanto tempo o motorista irá gastar para chegar e qual a distância.

O que a maioria dos aplicativos fazem é re-calcular a distância que o motorista está do passageiro a medida que o tempo vai passando. Essa abordagem oferece ao passageiro um tempo mais preciso, porém consome muitas chamadas do Google Maps API, uma vez que cada vez que o tempo for atualizado irá realizar uma consulta na API.

A primeira solução que sugerimos é que essa consulta seja realizada APENAS no inicio da corrida. Se por exemplo, a API retornou que do Ponto A até o Ponto B terá um tempo de 13 minutos. Sugerimos que o aplicativo gerencie localmente um cronometro exibindo ao passageiro o calculo do tempo atualizado. Com isso, após 5 minutos, o aplicativo deverá exibir que faltam 8 minutos para o motorista chegar. Claro que essa abordagem não lida com situações onde o motorista mudou o trajeto ou teve algum atraso.

Um complemento dessa abordagem seria que, ao chegar no 1 minuto restante, o servidor consultaria novamente a API do Google Maps mandando como parâmetro a localização atualizada do Motorista para verificar se o tempo foi impactado ou se o motorista está realmente chegando.

Cálculo de distância entre dois pontos

Uma abordagem bem mais simples e que não utiliza o Google Maps é realizar o cálculo entre duas coordenadas geográficas em linha reta. Claro que esse método não leva em consideração a rota e os desvios. Porém é muito mais barato. Uma evolução dessa abordagem seria implementar um fator de correção que aumenta o valor encontrado.

Em algumas situações, nem chega a ser necessário implementar o fator de correção.

Por exemplo:
Na maioria dos aplicativos de mobilidade urbana, quando você solicita um carro o servidor verifica a distância geográfica entre os carros e chama os mais próximos.

Porém, essa abordagem seria facilmente substituída calculando, ao invés da distância geográfica, a distância entre dois pontos. Pois na maioria dos resultados, os carros mais próximos seriam os mesmos.

Pesquisa por endereços

A maioria dos aplicativos que envolvem mobilidade urbana ou delivery possuem uma funcionalidade para pesquisar endereços. E essa funcionalidade também depende da API do Google Maps.

A primeira abordagem, e talvez a mais simples é:

Salvar locais favoritos

Não faz sentido consumir a API de pesquisa por endereços do Google para locais que o usuário sempre irá utilizar, como CASA, TRABALHO, ACADEMIA, etc.

Diante disso, alguns aplicativos já dispõem de uma funcionalidade essencial: Salvar locais favoritos.

A funcionalidade é simples, o usuário pode cadastrar quais são os locais que ele mais utiliza e ao cadastrar essas informações podem ser salvas no seu servidor, evitando assim que o usuário realize mais pesquisas por endereços já conhecidos ao utilizar o aplicativo.

Salvar locais Recentes

Uma outra abordagem, que embora tenha menos impacto no uso de pesquisa de endereços da API do Google Maps, é salvar automaticamente os locais recentes utilizados pelo usuário. Dessa forma, sempre que ele solicitar pesquisar um endereço, você pode exibir esses locais logo de inicio, evitando muitas vezes do usuário pesquisar um endereço que ele já tenha pesquisado antes.

Otimizar pesquisa de endereços

Bom, vamos supor que seu aplicativo já tem as duas funcionalidades de Locais favoritos e recentes, você deve estar se perguntando, tem como otimizar a requisição de pesquisa de endereços? A resposta é simples: Tem!

Dicas para otimizar a pesquisa de endereços na API do Google Maps

Embora seja muito elegante o sistema de Instant Search (Busca instantânea) essa funcionalidade requer muitas requisições, afinal de contas a cada letra que o usuário digita ou apaga uma nova requisição ao Google é realizada. Uma sugestão seria retirar essa funcionalidade, e a pesquisa só ser realizada quando o usuário pressionar Pesquisar. Com isso o resultado seria, apenas uma chamada.

Claro que essa abordagem prejudica um pouco a experiência do usuário (UX) e se você quiser mante-la as melhorias são um pouco mais simples:
1. Iniciar o Instant Search apenas após digitar a terceira letra.
2. Configurar a API de pesquisa por endereço para retornar apenas 5-6 resultados a cada retorno.

Já implementou todas essas soluções e ainda precisa reduzir os gastos?
Entre em contato com a gente!

Tópicos

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Posts relacionados

Estamos contratando, venha conferir nossas vagas