
ATUALIZAÇÃO: os user-defined request headers não são mais gratuitos;
Com frequência, preciso geolocalizar as requisições que chegam à minha aplicação, principalmente para fins de analytics — quero saber de onde vêm os usuários.
Em geral, basta saber o país, cidade, latitude e longitude da requisição de origem. Durante anos, usei o MaxMind só para isso e, apesar de ser uma ótima ferramenta, a versão comercial custa cerca de US$ 1.500 por ano — caro demais para uma necessidade tão básica.
Há pouco tempo, o Google lançou o suporte em beta para os " User-defined request headers", que permitem geolocalizar requisições que passam pelo Google Load-Balancer de graça. Vou mostrar como configurar isso na sua aplicação.
Para simplificar, vou partir do princípio de que você já tem a aplicação rodando no Google Cloud e roteia as requisições por meio do Google HTTP/S Load Balancer.
Primeiro, você precisa atualizar seu(s) backend(s) para adicionar o suporte aos user-defined request headers. Meu backend se chama "app" e este é o comando que usei:

Em resumo, estou pedindo ao Google Load Balancer para adicionar três cabeçalhos a cada requisição — " X-Client-Geo-Location", " X-Client-Geo-Region" e " X-Client-Geo-LatLong". Você pode dar o nome que quiser aos cabeçalhos, desde que NÃO seja "X-User-IP" e que não comecem com "X-Google" ou "X-GFE".
Depois que o backend é atualizado, em poucos minutos você já vê os novos cabeçalhos aplicados em cada requisição:

Pronto — agora você tem informações de geolocalização em todas as requisições, de graça e de forma totalmente serverless!
E geolocalização não é a única coisa que dá para anexar às requisições. O Google também consegue informar o RTT (round-trip transmission) do cliente em ms, além da versão do TLS, cipher e hostname!
Atualização – setembro de 2024:
O Google atualizou os preços da geolocalização de requisições com o Google Load Balancer. Agora custa **US$ 0,75 a cada 1 milhão de requisições**, com teto de **US$ 500/mês**. Confira a documentação do Google para os detalhes mais recentes.
Quer mais conteúdos? Acesse nosso blog ou siga o Vadim no Twitter.