Saltar al contenido principal
La segmentación basada en ubicación te permite enviar mensajes según dónde están tus usuarios. OneSignal puede segmentar usuarios por país, coordenadas GPS o etiquetas personalizadas — para que puedas crear alcance oportuno y relevante basado en ubicación física. A medida que los usuarios interactúan con tu app y el seguimiento de ubicación está habilitado, sus coordenadas se actualizan en tiempo casi real y pueden usarse para enviar mensajes a través de Journeys o cualquier herramienta de creación de mensajes.
OneSignal no rastrea la ubicación GPS de forma predeterminada.El SDK nunca recopila latitud o longitud a menos que tu app (1) tenga los permisos y dependencias correctos, (2) habilite explícitamente el intercambio con OneSignal, y (3) el usuario otorgue permiso de ubicación. Consulta la Configuración del seguimiento de ubicación a continuación y nuestra publicación de blog You’re in Control: How Location Actually Works in OneSignal’s SDK para más detalles.

Orientar por país

El país se determina por la dirección IP del dispositivo y se actualiza automáticamente cada vez que el usuario abre tu app. Usa el filtro de datos country en Segmentos o el parámetro filters de la API.

Orientar por ubicación (latitud, longitud y radio)

Si tu app móvil recopila ubicación GPS y la comparte con OneSignal, el SDK actualiza las coordenadas del usuario aproximadamente cada 5 minutos (según los permisos y reglas del sistema). Si la app se detiene forzosamente, la ubicación no puede rastrearse hasta que el usuario la abra nuevamente.

Configuración del seguimiento de ubicación

El seguimiento de ubicación requiere tres pasos:
1

Agregar permisos de ubicación y dependencias a tu app

Configura los permisos de ubicación nativos de tu app e incluye las dependencias necesarias.
Si ves el error LocationManager.startGetLocation: not possible, no location dependency found, tu app tiene la dependencia de ubicación requerida. Una solución común para Android es agregar la biblioteca de ubicación de Google Play Services en tu app/build.gradle:
implementation 'com.google.android.gms:play-services-location:21.0.1'
2

Habilitar el intercambio de ubicación con OneSignal

Llama a Location.setShared(true) para permitir que el SDK envíe las coordenadas del dispositivo a OneSignal. Sin esto, tu app no enviará datos de ubicación a OneSignal.
OneSignal.Location.setShared(true);
Consulta la referencia del Mobile SDK para todos los ejemplos de plataforma.
3

Solicitar permiso de ubicación al usuario

Activa el prompt de permiso de ubicación del sistema usando Location.requestPermission(), o usa un mensaje in-app como soft pre-prompt para mejores tasas de opt-in.
OneSignal.Location.requestPermission();
Consulta la referencia del Mobile SDK para todos los ejemplos de plataforma.
Una vez que el seguimiento de ubicación esté habilitado, puedes:
  • Crear segmentos usando el filtro location (orientación por radio).
  • Activar mensajes usando la Create message API.
OneSignal segment builder showing the location radius filter with latitude, longitude, and radius fields

Seguimiento de latitud y longitud de web push

OneSignal no recopila latitud/longitud para web. Sin embargo, puedes usar etiquetas para establecer la ubicación desde tu app web o usar la Update User API para establecer la ubicación desde tu servidor. Ejemplo de etiquetado:
  1. Solicita acceso a la ubicación en tu app web usando la Geolocation API del navegador.
  2. Usa JavaScript para detectar las coordenadas del usuario.
  3. Envía esas coordenadas a OneSignal usando etiquetas.
OneSignal.User.addTags({
  lat: "37.160",
  long: "-117.773"
});
Una vez que las etiquetas estén establecidas, crea segmentos con geofencing usando filtros de rango: Ejemplo de segmento: Etiqueta "lat" > 37 AND "lat" < 38 AND "long" > -118 AND "long" < -117

Orientar por ciudad o ubicación personalizada

OneSignal no detecta nativamente ciudad o códigos de área. Para orientar por ciudad o ubicación personalizada:
  • Permite que los usuarios ingresen una ciudad o región en un formulario.
  • O usa JavaScript con geocodificación inversa (por ejemplo, API de Google Maps) para inferir la ciudad desde las coordenadas.
  • Envía el nombre de la ciudad como etiqueta de datos.
OneSignal.User.addTag("city", "San Francisco");

Geofencing con Radar

OneSignal soporta geofencing avanzado a través de Radar, una plataforma líder de geolocalización. Con los SDKs y APIs de Radar, puedes:
  • Activar notificaciones cuando los usuarios entran o salen de áreas definidas.
  • Rastrear actividad de entrega y recogida.
  • Verificar presencia en una ubicación.
  • Impulsar localizadores de tiendas, ofertas basadas en ubicación y más.
Para comenzar, visita los docs de integración de Radar o contacta a Radar para soporte de incorporación.

FAQ

¿El seguimiento de ubicación funciona en web?

OneSignal no recopila coordenadas GPS de los navegadores web. Para usar segmentos basados en ubicación con web push, recopila coordenadas de la Geolocation API del navegador y almacénalas como etiquetas. Consulta Seguimiento de latitud y longitud de web push arriba.

¿Por qué mi app no está rastreando la ubicación?

Verifica que los tres pasos de configuración estén completos: los permisos de ubicación y dependencias están agregados a tu app, Location.setShared(true) está siendo llamado, y el usuario ha otorgado permiso de ubicación. Si ves LocationManager.startGetLocation: not possible, no location dependency found, agrega la dependencia play-services-location a tu app/build.gradle. Consulta Configuración del seguimiento de ubicación para más detalles.

¿Con qué frecuencia actualiza la ubicación el SDK?

Cuando el seguimiento de ubicación está habilitado, el SDK actualiza las coordenadas aproximadamente cada 5 minutos mientras la app está en uso. Si la app se detiene forzosamente, las actualizaciones de ubicación se pausan hasta que el usuario abra la app nuevamente.

¿Puedo orientar usuarios por ciudad?

No de forma nativa. OneSignal rastrea el país (a través de la dirección IP) y las coordenadas GPS (a través del SDK), pero no la ciudad o código de área. Puedes inferir la ciudad desde las coordenadas usando un servicio de geocodificación inversa y almacenarla como etiqueta. Consulta Orientar por ciudad o ubicación personalizada.

Páginas relacionadas

Referencia de ubicación del Mobile SDK

Referencia completa de API para setShared(), requestPermission() y escuchas de eventos de ubicación.

Prompt de opt-in de ubicación

Usa un mensaje in-app como soft pre-prompt antes de solicitar el permiso de ubicación nativo.

Segmentos

Crea segmentos de audiencia usando filtros de ubicación, etiquetas y propiedades de usuario.

Integración de Radar

Geofencing avanzado, seguimiento de viajes y verificación de ubicación a través de Radar.