- Ejemplos de lógica relacionada con la ubicación en una app
- Cuando quieres configurar el idioma o la moneda de la app según la región
- Cuando quieres ofrecer descuentos a personas de determinados países
- Cuando tienes un localizador de tiendas que debe mostrar la ubicación más cercana al usuario
- Cuando una app del clima depende de la ubicación antes de poder ofrecer todo tipo de datos
- Cuando quieres geocercar la app por motivos legales (por ejemplo, banners de cookies)
- Hay algunos temas en común
- Visualización/experiencia de usuario: usar la información de ubicación para mejorar o simplificar la experiencia del usuario
- Funciones/lógica: la lógica de negocio de la aplicación cambia según la ubicación
- Política/cumplimiento: hay requisitos legales que obligan a incluir o excluir funciones
- No siempre están claramente separados. En algunos casos se superponen, pero es importante tener presentes estas distinciones porque la gravedad de equivocarse varía según el caso
Cómo obtener la ubicación del usuario
- Preguntarle directamente al usuario su ubicación
- Ventajas: es fácil de implementar, puede ser confiable si el usuario da información exacta, y puede admitir muchas ubicaciones distintas
- Desventajas: el usuario puede cometer errores de escritura u omitir información, y también puede dar información falsa
- Usar heurísticas del dispositivo
- Los dispositivos modernos pueden acceder a información de ubicación a través de GPS, datos de Wi‑Fi, torres celulares y direcciones IP
- Los desarrolladores web pueden acceder a la ubicación del usuario mediante la Geolocation API del navegador
- Desventajas: hay que pedirle permiso al usuario para compartir su ubicación, y puede rechazarlo
- Usar la dirección IP
- La dirección IP se usa para identificar de forma única un dispositivo en una red y para ubicarlo
- Cada bloque numérico de una dirección IP representa una subred, de un rango amplio a uno más específico
- La dirección IP por sí sola no basta para saber dónde está el usuario, así que debe compararse con una base de datos conocida de ubicaciones de subredes
- Usar edge computing
- Un enfoque en el que la solicitud del usuario se ejecuta en el servidor más cercano
- Puede proporcionar información de ubicación sin pedir permiso al usuario ni consultar su dirección IP
- Desventaja: muestra la ubicación del nodo edge, no la ubicación real del usuario
Por qué no se puede confiar en la ubicación del usuario
- No se puede confiar en el usuario
- No hay garantía de que el usuario siempre introduzca honestamente su ubicación real
- También puede ingresar información incorrecta por accidente
- No se puede confiar en el dispositivo
- El usuario puede rechazar el uso de la Geolocation API
- El usuario puede modificar la información de la Geolocation API desde la configuración del navegador
- No se puede confiar en la dirección IP
- El usuario puede enrutar la solicitud a través de una VPN
- Solo puedes ver la dirección IP de la VPN, no la IP real del usuario
- No se puede confiar en edge computing
- Como se trata de la ubicación del nodo edge, puede no coincidir con la ubicación real del usuario
- Si se usa una VPN, no hay acceso a la dirección IP original
Entonces, ¿qué deberíamos hacer?
- Hay varias formas de obtener información de ubicación, pero ninguna es completamente confiable
- ¿Eso significa que hay que rendirse? ¡No! Se puede obtener mejor información y prepararse mejor
Ejemplo: traducción de contenido
- Supongamos que hay un sitio web escrito en inglés, pero que también admite otros idiomas
- Quieres cargar el idioma local del usuario para mejorar su experiencia
- ¿Cómo deberías manejar a los usuarios de Bélgica, donde se habla neerlandés (flamenco), francés y alemán?
- El usuario solicita el sitio web
- Mediante edge computing, confirmas que la solicitud viene de Bélgica
- Buscas una preferencia de idioma en las cookies HTTP
- Si existe la cookie, usas el idioma preferido
- Si no hay cookie, usas la versión en inglés o neerlandés
- El sitio web le muestra al usuario una lista de idiomas compatibles
- Cuando el usuario elige su preferencia de idioma, esta se guarda en una cookie
- En este escenario, se obtiene la ubicación combinando edge computing y lo reportado por el usuario para mejorar la experiencia de uso
- No parece necesario usar la Geolocation API
- Existe el riesgo de mostrar el idioma equivocado, pero el costo es bajo
- Aunque la información de ubicación sea incorrecta o falte, el sitio web sigue funcionando
- Actualización: también se puede usar el encabezado Accept-Language, que indica el idioma y la configuración regional preferidos por el cliente
Ejemplo: app del clima
- Hay una aplicación que muestra información del clima según la ubicación
- En este caso, la app necesita información de ubicación para funcionar. Si no la tiene, ¿cómo podría mostrar el clima?
- En este escenario, es razonable asumir la ubicación del usuario en la primera carga
- Puedes obtener esa información desde edge computing o la dirección IP y mostrar el clima local del usuario (según lo que suponemos)
- Además, como el enfoque principal del sitio está en la ubicación, puedes usar la Geolocation API para pedir datos más precisos
- También deberías ofrecer una opción flexible para que el usuario indique otra ubicación si quiere información de un lugar distinto
- Para esto, puedes ofrecer un campo de búsqueda con autocompletado que permita introducir una ubicación lo más detallada posible
- La forma de manejar visitas futuras puede variar. Siempre puedes dejar el clima "local" como valor predeterminado o recordar la ubicación de una visita anterior
- El usuario solicita el sitio web
- En la primera solicitud, la app arranca estimando la ubicación con edge computing o la dirección IP
- En la primera carga del cliente, ejecutas la Geolocation API para actualizar la información
- Opcionalmente, puedes guardar la ubicación en una cookie para cargas futuras
- Ofreces una entrada flexible con autocompletado para buscar otras ubicaciones
- El punto importante aquí es que a la app en realidad no le importa dónde está el usuario
- Solo necesita una ubicación
- La ubicación reportada por el usuario (la búsqueda) tiene prioridad sobre la ubicación obtenida desde cookies, edge computing o la dirección IP
- Como el clima cambia todos los días, también vale la pena pensar en la estrategia de caché y en si la app debería renderizarse principalmente en el servidor o en el cliente
Ejemplo: localizador de tiendas
- Supongamos que operas tiendas físicas en varias ubicaciones
- Puedes mostrar en línea un catálogo de productos y el inventario, pero es una buena idea ofrecer información actualizada del inventario en tienda
- Para hacerlo, necesitas saber de qué tienda mostrar el inventario, y para la mejor experiencia posible debería ser la tienda más cercana al usuario
- Una vez más, tiene sentido estimar la ubicación del usuario usando edge computing o la dirección IP
- Luego debes ofrecer una entrada flexible para que el usuario ingrese su ubicación, pero el autocompletado debería limitarse a una lista de tiendas ordenadas por proximidad
- También es buena idea ejecutar la Geolocation API
- La diferencia entre este ejemplo y el anterior es que el objetivo principal del sitio no depende de la ubicación
- Por eso conviene esperar hasta que el usuario interactúe con la función que depende de la ubicación
- Es decir, solo deberías solicitar la ubicación cuando el usuario ponga foco en el campo del localizador de tiendas
Ejemplo: precios diferenciados por región
- Este es un tema un poco delicado: ¿cómo deberías cobrar precios distintos según la ubicación del usuario?
- Por ejemplo, se sabe que algunas aerolíneas y hoteles muestran precios más altos a usuarios que reservan desde ciertas regiones que a usuarios de otras
- Dejando de lado los problemas éticos, esto es una cuestión de rentabilidad, así que el impacto es muy grande
- Por eso probablemente no querrías permitir que el usuario cambie fácilmente el precio mediante información de ubicación auto reportada
- En este caso, probablemente usarías solo edge computing o la dirección IP
- El usuario puede intentar saltarse esto con una VPN, pero quizá sea lo mejor que puedes hacer
- Si realmente te preocupa evitar a los defraudadores, podrías intentar bloquear solicitudes de usuarios con VPN usando la detección avanzada de proxies de Akamai
- Pero si haces eso, puede que en vez de una venta con descuento no obtengas ninguna venta. La decisión es tuya
Ejemplo: banner de cookies
- Este último ejemplo está más enfocado en el cumplimiento legal, así que empezaré con una pequeña aclaración: ¡¡¡No soy abogado!!!
- Este es solo un ejemplo hipotético y no debe tomarse como asesoría legal
- En 2016, la Unión Europea aprobó el Reglamento General de Protección de Datos (GDPR)
- Es una ley que protege la privacidad de los usuarios de internet dentro de la UE, y se aplica a las empresas que ofrecen bienes o servicios a personas dentro de la UE, aunque la empresa esté fuera de la UE
- Hay muchos requisitos para los propietarios de sitios web, pero lo que quiero destacar es el daño causado por los banners de cookies que ahora vemos en todas partes en internet
- No voy a discutir los temas de privacidad, si los banners de cookies están bien o mal, si son eficaces o ineficaces, ni si existen mejores enfoques
- En cambio, diré que conviene mostrar el banner de cookies solo cuando sea legalmente necesario y evitarlo en los demás casos
- Una vez más, conocer la ubicación del usuario es muy importante
- Esto es muy parecido al caso anterior, y la implementación también es similar. La diferencia principal es la gravedad de equivocarse y, por tanto, el nivel de esfuerzo necesario para hacerlo bien
- Los banners de cookies quizá sean el ejemplo más extendido de cómo las leyes y la ubicación del usuario pueden afectar a un sitio web, pero si buscas el ejemplo más fuerte, probablemente sea el gran cortafuegos de China
Conclusión
- No hay una respuesta única para determinar la ubicación del usuario
- Según el escenario, hay que combinar lo reportado por el usuario, las heurísticas del dispositivo, edge computing y la dirección IP
- Cosas importantes a considerar
- ¿Necesitas la ubicación del usuario, o solo cualquier ubicación?
- ¿Qué tan precisos deben ser los datos?
- ¿Está bien si la ubicación del usuario puede falsificarse?
- También debes considerar el cumplimiento legal, las regulaciones, la funcionalidad y si te basta con un 95% de confiabilidad
- Si usas lógica de ubicación por motivos legales, conviene tomar medidas para protegerte
- Cumplimiento de leyes de privacidad de datos como CCPA, GDPR, etc.
Aún no hay comentarios.