- Exemplos de colocar lógica relacionada à localização no app
- Quando você quer definir o idioma ou a moeda do app com base na região
- Quando você quer oferecer descontos para pessoas de determinados países
- Quando há um localizador de lojas que precisa mostrar a unidade mais próxima do usuário
- Quando um app de clima depende da localização antes de fornecer qualquer tipo de dado
- Quando você quer aplicar geofencing no app por motivos legais (ex.: banner de cookies)
- Existem alguns temas em comum
- Exibição/experiência do usuário: usar informações de localização para melhorar ou simplificar a experiência do usuário
- Funcionalidade/lógica: a lógica de negócio da aplicação muda de acordo com a localização
- Política/compliance: existem exigências legais para incluir ou excluir funcionalidades
- Nem sempre essas categorias são claramente separadas. Em alguns casos elas se sobrepõem, mas é importante ter essa distinção em mente porque a gravidade de um erro varia conforme o caso
Como obter a localização do usuário
- Perguntar a localização diretamente ao usuário
- Vantagens: fácil de implementar, pode ser confiável se o usuário fornecer informações corretas, permite dar suporte a várias localizações
- Desvantagens: o usuário pode cometer erros de digitação ou omitir informações, e também pode fornecer informações falsas
- Usar heurísticas do dispositivo
- Dispositivos modernos conseguem acessar informações de localização por GPS, dados de Wi‑Fi, torres de celular e endereço IP
- Desenvolvedores web podem acessar a localização do usuário pela Geolocation API do navegador
- Desvantagens: é preciso pedir permissão ao usuário para compartilhar a localização, e ele pode recusar
- Usar o endereço IP
- O endereço IP é usado para identificar unicamente um dispositivo na rede e para ajudar a determinar sua localização
- Cada bloco numérico do endereço IP representa sub-redes que vão de um escopo mais amplo para um mais específico
- Só o endereço IP não basta para saber onde o usuário está, então ele precisa ser comparado com um banco de dados conhecido de localização de sub-redes
- Usar edge computing
- Uma abordagem em que a requisição do usuário é executada no servidor mais próximo
- Isso pode fornecer informações de localização sem pedir permissão ao usuário nem consultar o endereço IP
- Desvantagem: a localização obtida é a do nó de borda, não a localização real do usuário
Por que não dá para confiar na localização do usuário
- Não dá para confiar no usuário
- Não há garantia de que ele sempre informará sua localização real honestamente
- Ele também pode inserir informações erradas por engano
- Não dá para confiar no dispositivo
- O usuário pode recusar o uso da Geolocation API
- As informações da Geolocation API podem ser alteradas pelo usuário nas configurações do navegador
- Não dá para confiar no endereço IP
- O usuário pode rotear a requisição por uma VPN
- Nesse caso, você só verá o IP da VPN e não saberá o IP real do usuário
- Não dá para confiar em edge computing
- Como a informação é a localização do nó de borda, ela pode ser diferente da localização real do usuário
- Se o usuário estiver usando VPN, não haverá acesso ao IP original
Então, o que devemos fazer?
- Existem várias formas de obter informações de localização, mas nenhuma delas é totalmente confiável
- Isso significa que devemos desistir? No! Podemos obter informações melhores e nos preparar
Exemplo: tradução de conteúdo
- Suponha que exista um site escrito em inglês, mas que também ofereça suporte a outros idiomas
- Você quer carregar o idioma local do usuário para melhorar a experiência dele
- Como lidar com usuários da Bélgica, onde se fala holandês (flamengo), francês e alemão?
- O usuário solicita o site
- Pela edge computing, identifica-se que a requisição veio da Bélgica
- Procura-se uma preferência de idioma no cookie HTTP
- Se houver cookie, usa-se o idioma preferido
- Se não houver cookie, usa-se a versão em inglês ou holandês
- O site oferece ao usuário uma lista de idiomas suportados
- Quando o usuário escolhe sua preferência de idioma, ela é salva em um cookie
- Nesse cenário, obtém-se a localização combinando edge computing com a informação fornecida pelo usuário para melhorar a experiência
- Parece não haver necessidade de usar a Geolocation API
- Existe o risco de mostrar o idioma errado, mas o custo é baixo
- Mesmo que a informação de localização esteja errada ou ausente, o site continua funcionando
- Atualização: também é possível usar o header Accept-Language, que indica o idioma e o locale preferidos do cliente
Exemplo: app de clima
- Existe uma aplicação que mostra informações meteorológicas com base na localização
- Nesse caso, a localização é necessária para o app funcionar. Sem essa informação, como mostrar o clima?
- Nesse cenário, é seguro assumir uma localização para o usuário no primeiro carregamento
- Dá para obter essa informação via edge computing ou endereço IP e mostrar o clima da região do usuário (como presumimos)
- Também faz sentido usar a Geolocation API para pedir dados mais precisos, já que o foco principal do site é a localização
- Você também deve oferecer uma opção flexível para o usuário informar outra localização, caso ele queira dados de outro lugar
- Para isso, pode fornecer um campo de busca com autocomplete que preencha automaticamente o máximo possível de detalhes da localização
- O tratamento de visitas futuras pode variar: sempre definir o clima “local” como padrão ou lembrar a localização usada na visita anterior
- O usuário solicita o site
- Na primeira requisição, o app é iniciado estimando a localização via edge computing ou endereço IP
- No primeiro carregamento do cliente, executa-se a Geolocation API para atualizar a informação
- A localização pode ser salva em um cookie para carregamentos futuros
- Oferece-se uma entrada flexível com autocomplete para buscar outras localizações
- O ponto importante aqui é que o app na verdade não se importa com onde o usuário está
- Ele só precisa de uma localização
- A localização informada pelo usuário (na busca) tem prioridade sobre a encontrada por cookie, edge computing ou endereço IP
- Como o clima muda todos os dias, também vale considerar a estratégia de cache e se o app deve ser renderizado principalmente no servidor ou no cliente
Exemplo: localizador de lojas
- Suponha que você opere lojas físicas em vários locais
- Você pode exibir o catálogo de produtos e o estoque online, mas também é útil oferecer informações atualizadas sobre o estoque em cada loja
- Para isso, é preciso saber de qual loja mostrar o estoque e, para a melhor experiência, ela deve ser a mais próxima do usuário
- Mais uma vez, faz sentido prever a localização do usuário com edge computing ou endereço IP
- Depois, ofereça uma entrada flexível para o usuário informar sua localização, mas limite o autocomplete a uma lista de lojas ordenada por proximidade
- Também é uma boa ideia executar a Geolocation API
- A diferença entre este exemplo e o anterior é que o objetivo principal do site não depende da localização
- Portanto, é melhor esperar até que o usuário interaja com a funcionalidade dependente de localização
- Ou seja, só pedir a localização quando ele focar no campo do localizador de lojas
Exemplo: preços diferentes por região
- Este é um tema um pouco delicado: como cobrar preços diferentes de acordo com a localização do usuário?
- Por exemplo, algumas companhias aéreas e hotéis são conhecidos por mostrar preços mais altos para usuários que reservam de certas regiões
- Deixando as questões éticas de lado, isso é uma questão de lucratividade, então o impacto é muito grande
- Por isso, provavelmente você não vai querer permitir que o usuário altere facilmente o preço por meio de uma localização autorreportada
- Nesse caso, você provavelmente usaria apenas edge computing ou endereço IP
- O usuário ainda pode contornar isso com VPN, mas talvez seja o melhor que dá para fazer
- Se você estiver realmente preocupado em evitar fraudadores, pode tentar bloquear requisições de usuários com VPN usando a detecção avançada de proxy da Akamai
- Mas, ao fazer isso, talvez você deixe de vender completamente, em vez de vender com desconto. A escolha é sua
Exemplo: banner de cookies
- Este último exemplo é mais focado em compliance legal, então vou começar com um pequeno aviso: eu não sou advogado!!!
- Este é apenas um exemplo hipotético e não deve ser entendido como aconselhamento jurídico
- Em 2016, a União Europeia aprovou o Regulamento Geral de Proteção de Dados (GDPR)
- Trata-se de uma lei para proteger a privacidade dos usuários de internet na UE e se aplica a empresas que oferecem produtos ou serviços a pessoas na UE, mesmo que a empresa esteja fora da UE
- Existem muitas exigências para proprietários de sites, mas o ponto que quero destacar é o incômodo dos banners de cookies que hoje vemos em toda parte na internet
- Não vou discutir questões de privacidade, se banners de cookies são certos ou errados, sua eficácia ou ineficácia, ou se existe uma abordagem melhor
- Em vez disso, vou dizer que é melhor mostrar o banner de cookies apenas quando ele for legalmente necessário, e evitá-lo quando não for
- Mais uma vez, conhecer a localização do usuário é muito importante
- Isso é muito parecido com o caso anterior, e a implementação também é semelhante. A principal diferença é a gravidade de errar e, portanto, o nível de esforço necessário para fazer isso corretamente
- O banner de cookies talvez seja o exemplo mais disseminado de como leis e localização do usuário podem afetar um site, mas, se você estiver procurando o exemplo mais forte, provavelmente seria o firewall da China
Conclusão
- Não existe resposta certa para determinar a localização do usuário
- Dependendo do cenário, a abordagem deve combinar informação fornecida pelo usuário, heurísticas do dispositivo, edge computing e endereço IP
- Pontos importantes
- Você precisa da localização do usuário ou apenas de alguma localização?
- Quão precisos os dados precisam ser?
- Tudo bem se a localização do usuário puder ser falsificada?
- Também é preciso considerar compliance legal, regulamentações, funcionalidade e se 95% de confiabilidade já é suficiente
- Se você usa lógica de localização por motivos legais, é melhor tomar medidas para se proteger
- Conformidade com leis de privacidade de dados como CCPA, GDPR etc.
Ainda não há comentários.