Pular para o conteúdo principal
A segmentação baseada em localização permite que você envie mensagens com base em onde seus usuários estão. O OneSignal pode segmentar usuários por país, coordenadas GPS ou tags personalizadas — para criar divulgação oportuna e relevante baseada em localização física. À medida que os usuários interagem com seu aplicativo e o rastreamento de localização está habilitado, suas coordenadas são atualizadas em tempo quase real e podem ser usadas para enviar mensagens via Journeys ou qualquer ferramenta de criação de mensagens.
O OneSignal não rastreia a localização GPS por padrão.O SDK nunca coleta latitude ou longitude a menos que seu aplicativo (1) tenha as permissões e dependências corretas, (2) habilite explicitamente o compartilhamento com o OneSignal, e (3) o usuário conceda permissão de localização. Consulte a Configuração do rastreamento de localização abaixo e nossa postagem do blog You’re in Control: How Location Actually Works in OneSignal’s SDK para mais detalhes.

Direcionar por país

O país é determinado pelo endereço IP do dispositivo e atualiza automaticamente cada vez que o usuário abre seu aplicativo. Use o filtro de dados country em Segmentos ou o parâmetro filters da API.

Direcionar por localização (latitude, longitude e raio)

Se seu aplicativo mobile coleta localização GPS e a compartilha com o OneSignal, o SDK atualiza as coordenadas do usuário aproximadamente a cada 5 minutos (com base em permissão e regras do sistema). Se o aplicativo for forçado a parar, a localização não pode ser rastreada até que o usuário o abra novamente.

Configuração do rastreamento de localização

O rastreamento de localização requer três etapas:
1

Adicionar permissões de localização e dependências ao seu aplicativo

Configure as permissões de localização nativas do seu aplicativo e inclua as dependências necessárias.
Se você vir o erro LocationManager.startGetLocation: not possible, no location dependency found, seu aplicativo está sem a dependência de localização necessária. Uma correção comum para Android é adicionar a biblioteca de localização do Google Play Services no seu app/build.gradle:
implementation 'com.google.android.gms:play-services-location:21.0.1'
2

Habilitar compartilhamento de localização com OneSignal

Chame Location.setShared(true) para permitir que o SDK envie as coordenadas do dispositivo para o OneSignal. Sem isso, seu aplicativo não enviará dados de localização para o OneSignal.
OneSignal.Location.setShared(true);
Consulte a referência do Mobile SDK para todos os exemplos de plataforma.
3

Solicitar permissão de localização do usuário

Acione o prompt de permissão de localização do sistema usando Location.requestPermission(), ou use uma mensagem in-app como soft pre-prompt para melhores taxas de opt-in.
OneSignal.Location.requestPermission();
Consulte a referência do Mobile SDK para todos os exemplos de plataforma.
Uma vez que o rastreamento de localização esteja habilitado, você pode:
  • Criar segmentos usando o filtro location (direcionamento por raio).
  • Acionar mensagens usando a API Create message.
OneSignal segment builder showing the location radius filter with latitude, longitude, and radius fields

Rastreamento de latitude e longitude em push web

O OneSignal não coleta latitude/longitude para web. No entanto, você pode usar tags para definir a localização do seu aplicativo web ou usar a API Update User para definir a localização do seu servidor. Exemplo de marcação:
  1. Solicite acesso à localização em seu aplicativo web usando a API de Geolocalização do navegador.
  2. Use JavaScript para detectar as coordenadas do usuário.
  3. Envie essas coordenadas para o OneSignal usando tags.
OneSignal.User.addTags({
  lat: "37.160",
  long: "-117.773"
});
Uma vez que as tags estejam definidas, crie segmentos geo-cercados usando filtros de intervalo: Exemplo de segmento: Tag "lat" > 37 AND "lat" < 38 AND "long" > -118 AND "long" < -117

Direcionar por cidade ou localização personalizada

O OneSignal não detecta nativamente cidade ou códigos de área. Para direcionar por cidade ou localização personalizada:
  • Deixe usuários inserirem uma cidade ou região em um formulário.
  • Ou use JavaScript com geocodificação reversa (por exemplo, API do Google Maps) para inferir cidade a partir de coordenadas.
  • Envie o nome da cidade como uma tag de dados.
OneSignal.User.addTag("city", "San Francisco");

Geofencing com Radar

O OneSignal suporta geofencing avançado através do Radar, uma plataforma líder de geolocalização. Com os SDKs e APIs do Radar, você pode:
  • Acionar notificações quando usuários entram ou saem de áreas definidas.
  • Rastrear atividade de entrega e coleta.
  • Verificar presença em uma localização.
  • Potencializar localizadores de loja, ofertas baseadas em localização e mais.
Para começar, visite a documentação de integração do Radar ou entre em contato com o Radar para suporte de integração.

FAQ

O rastreamento de localização funciona na web?

O OneSignal não coleta coordenadas GPS de navegadores web. Para usar segmentos baseados em localização com push web, colete coordenadas da API de Geolocalização do navegador e armazene-as como tags. Consulte Rastreamento de latitude e longitude em push web acima.

Por que meu aplicativo não está rastreando localização?

Verifique se as três etapas de configuração estão completas: permissões de localização e dependências estão adicionadas ao seu aplicativo, Location.setShared(true) está sendo chamado e o usuário concedeu permissão de localização. Se você vir LocationManager.startGetLocation: not possible, no location dependency found, adicione a dependência play-services-location ao seu app/build.gradle. Consulte Configuração do rastreamento de localização para mais detalhes.

Com que frequência o SDK atualiza a localização?

Quando o rastreamento de localização está habilitado, o SDK atualiza as coordenadas aproximadamente a cada 5 minutos enquanto o aplicativo está em uso. Se o aplicativo for forçado a parar, as atualizações de localização pausam até que o usuário abra o aplicativo novamente.

Posso direcionar usuários por cidade?

Não nativamente. O OneSignal rastreia país (via endereço IP) e coordenadas GPS (via SDK), mas não cidade ou código de área. Você pode inferir cidade a partir de coordenadas usando um serviço de geocodificação reversa e armazená-la como uma tag. Consulte Direcionar por cidade ou localização personalizada.

Páginas relacionadas

Referência de localização do Mobile SDK

Referência completa de API para setShared(), requestPermission() e ouvintes de eventos de localização.

Prompt de opt-in de localização

Use uma mensagem in-app como soft pre-prompt antes de solicitar permissão de localização nativa.

Segmentos

Crie segmentos de audiência usando filtros de localização, tags e propriedades do usuário.

Integração Radar

Geofencing avançado, rastreamento de viagens e verificação de localização através do Radar.