Passer au contenu principal
La segmentation basée sur la localisation vous permet d’envoyer des messages en fonction de l’endroit où se trouvent vos utilisateurs. OneSignal peut segmenter les utilisateurs par pays, coordonnées GPS ou balises personnalisées — pour créer une sensibilisation opportune et pertinente basée sur l’emplacement physique. Au fur et à mesure que les utilisateurs interagissent avec votre application et que le suivi de localisation est activé, leurs coordonnées sont mises à jour en temps quasi réel et peuvent être utilisées pour envoyer des messages via Journeys ou n’importe quel outil de création de messages.
OneSignal ne suit pas la localisation GPS par défaut.Le SDK ne collecte jamais la latitude ou la longitude à moins que votre application (1) dispose des autorisations et dépendances correctes, (2) active explicitement le partage avec OneSignal, et (3) l’utilisateur accorde la permission de localisation. Consultez la Configuration du suivi de localisation ci-dessous et notre article de blog You’re in Control: How Location Actually Works in OneSignal’s SDK pour plus de détails.

Cibler par pays

Le pays est déterminé par l’adresse IP de l’appareil et se met à jour automatiquement chaque fois que l’utilisateur ouvre votre application. Utilisez le filtre de données country dans Segments ou le paramètre filters de l’API.

Cibler par localisation (latitude, longitude et rayon)

Si votre application mobile collecte la localisation GPS et la partage avec OneSignal, le SDK met à jour les coordonnées de l’utilisateur environ toutes les 5 minutes (selon les autorisations et les règles du système). Si l’application est arrêtée de force, la localisation ne peut pas être suivie jusqu’à ce que l’utilisateur la rouvre.

Configuration du suivi de localisation

Le suivi de localisation nécessite trois étapes :
1

Ajouter les autorisations de localisation et les dépendances à votre application

Configurez les autorisations de localisation natives de votre application et incluez les dépendances requises.
Si vous voyez l’erreur LocationManager.startGetLocation: not possible, no location dependency found, votre application manque la dépendance de localisation requise. Une correction courante pour Android est d’ajouter la bibliothèque de localisation Google Play Services dans votre app/build.gradle :
implementation 'com.google.android.gms:play-services-location:21.0.1'
2

Activer le partage de localisation avec OneSignal

Appelez Location.setShared(true) pour permettre au SDK d’envoyer les coordonnées de l’appareil à OneSignal. Sans cela, votre application n’enverra pas de données de localisation à OneSignal.
OneSignal.Location.setShared(true);
Consultez la référence du Mobile SDK pour tous les exemples de plateformes.
3

Demander la permission de localisation à l'utilisateur

Déclenchez l’invite de permission de localisation système en utilisant Location.requestPermission(), ou utilisez un message in-app comme soft pre-prompt pour de meilleurs taux d’opt-in.
OneSignal.Location.requestPermission();
Consultez la référence du Mobile SDK pour tous les exemples de plateformes.
Une fois le suivi de localisation activé, vous pouvez :
  • Créer des segments en utilisant le filtre location (ciblage par rayon).
  • Déclencher des messages en utilisant l’API Create message.
OneSignal segment builder showing the location radius filter with latitude, longitude, and radius fields

Suivi de latitude et longitude pour le push web

OneSignal ne collecte pas la latitude/longitude pour le web. Cependant, vous pouvez utiliser des balises pour définir la localisation depuis votre application web ou utiliser l’API Update User pour définir la localisation depuis votre serveur. Exemple de balisage :
  1. Demandez l’accès à la localisation dans votre application web en utilisant l’API Geolocation du navigateur.
  2. Utilisez JavaScript pour détecter les coordonnées de l’utilisateur.
  3. Envoyez ces coordonnées à OneSignal en utilisant des balises.
OneSignal.User.addTags({
  lat: "37.160",
  long: "-117.773"
});
Une fois les balises définies, créez des segments géorepérés en utilisant des filtres de plage : Exemple de segment : Balise "lat" > 37 AND "lat" < 38 AND "long" > -118 AND "long" < -117

Cibler par ville ou localisation personnalisée

OneSignal ne détecte pas nativement la ville ou les codes de zone. Pour cibler par ville ou localisation personnalisée :
  • Laissez les utilisateurs saisir une ville ou une région dans un formulaire.
  • Ou utilisez JavaScript avec le géocodage inverse (par exemple, API Google Maps) pour déduire la ville des coordonnées.
  • Envoyez le nom de la ville comme balise de données.
OneSignal.User.addTag("city", "San Francisco");

Géorepérage avec Radar

OneSignal prend en charge le géorepérage avancé via Radar, une plateforme de géolocalisation de premier plan. Avec les SDKs et APIs de Radar, vous pouvez :
  • Déclencher des notifications lorsque les utilisateurs entrent ou sortent de zones définies.
  • Suivre l’activité de livraison et de collecte.
  • Vérifier la présence à un emplacement.
  • Alimenter des localisateurs de magasins, des offres basées sur la localisation, et plus encore.
Pour commencer, visitez la documentation d’intégration de Radar ou contactez Radar pour un support d’intégration.

FAQ

Le suivi de localisation fonctionne-t-il sur le web ?

OneSignal ne collecte pas de coordonnées GPS depuis les navigateurs web. Pour utiliser des segments basés sur la localisation avec le push web, collectez les coordonnées depuis l’API Geolocation du navigateur et stockez-les comme balises. Voir Suivi de latitude et longitude pour le push web ci-dessus.

Pourquoi mon application ne suit-elle pas la localisation ?

Vérifiez que les trois étapes de configuration sont complètes : les autorisations de localisation et les dépendances sont ajoutées à votre application, Location.setShared(true) est appelé, et l’utilisateur a accordé la permission de localisation. Si vous voyez LocationManager.startGetLocation: not possible, no location dependency found, ajoutez la dépendance play-services-location à votre app/build.gradle. Voir Configuration du suivi de localisation pour plus de détails.

À quelle fréquence le SDK met-il à jour la localisation ?

Lorsque le suivi de localisation est activé, le SDK met à jour les coordonnées environ toutes les 5 minutes pendant l’utilisation de l’application. Si l’application est arrêtée de force, les mises à jour de localisation sont suspendues jusqu’à ce que l’utilisateur rouvre l’application.

Puis-je cibler des utilisateurs par ville ?

Pas nativement. OneSignal suit le pays (via l’adresse IP) et les coordonnées GPS (via le SDK), mais pas la ville ou le code de zone. Vous pouvez déduire la ville des coordonnées en utilisant un service de géocodage inverse et la stocker comme balise. Voir Cibler par ville ou localisation personnalisée.

Pages connexes

Référence localisation Mobile SDK

Référence API complète pour setShared(), requestPermission() et les écouteurs d’événements de localisation.

Invite d'opt-in de localisation

Utilisez un message in-app comme soft pre-prompt avant de demander la permission de localisation native.

Segments

Créez des segments d’audience en utilisant des filtres de localisation, des balises et des propriétés utilisateur.

Intégration Radar

Géorepérage avancé, suivi de trajets et vérification de localisation via Radar.