Marketing par geofencing : guide d'implémentation pour les développeurs
Jean-Thomas Rouzin - Reading time : 9 min
Sommaire
Le geofencing marketing utilise des frontières virtuelles autour de lieux physiques pour déclencher des actions ciblées — notifications push, messages in-app ou événements back-end — lorsque l'appareil d'un utilisateur entre dans une zone définie ou en sort. Ce guide explique comment le geofencing fonctionne au niveau du SDK et de la plateforme, les contraintes d'implémentation auxquelles les développeurs sont confrontés sur iOS et Android, ainsi que les architectures qui rendent les campagnes de geofencing fiables en production.
Ce que fait le geofencing marketing
Le geofencing marketing relie les campagnes digitales à la présence physique. Un distributeur trace un rayon de 200 mètres autour d'un magasin. Lorsqu'un client ayant l'application installée franchit cette limite, le système déclenche une action préconfigurée : une notification de réduction, un workflow de préparation de commande ou un événement analytique.
La valeur marketing vient du timing et de la pertinence. Une notification push envoyée à quelqu'un se trouvant à 3 minutes d'un magasin convertit à 2,5 fois le taux d'un envoi générique. Mais le défi technique est ce qui fait ou défait une campagne : précision de la localisation en arrière-plan, consommation batterie, limites propres à chaque plateforme et architecture de consentement.
La plupart des guides sur le geofencing marketing s'arrêtent au « quoi ». Celui-ci couvre le « comment » — les détails d'implémentation qui déterminent si une campagne de geofencing fonctionne réellement en production.
Comment fonctionne le geofencing en coulisses
Le geofencing repose sur trois sources de localisation, chacune avec précision et coût énergétique différents :
Source
Précision
Consommation énergie
Idéal pour
GPS
3 à 10 mètres
Élevée
Extérieur, ciel dégagé
Positionnement Wi-Fi
15 à 40 mètres
Moyenne
Urbain, semi-intérieur
Triangulation cellulaire
100 à 300 mètres
Faible
Proximité approximative, arrière-plan
La plupart des SDK combinent ces sources de manière dynamique. Au premier plan, le GPS domine. En arrière-plan, l'OS bascule sur le Wi-Fi et le réseau cellulaire pour préserver la batterie.
Geofence Shapes
There are two standard approaches to defining a geofence:
Circular (centroid + radius). Define a centre point (latitude/longitude) and a radius in metres. Simple to create, efficient to monitor, and supported by every platform. Good for individual store locations.
Polygon. Define a series of vertices that outline an arbitrary shape. Useful for irregular areas - a shopping mall footprint, an industrial zone, or a neighbourhood boundary. More expensive to evaluate and not natively supported on all mobile platforms without SDK assistance.
A third approach uses isochrones - boundaries defined by travel time rather than distance. A "5-minute walk" geofence adapts to street layout and terrain, which matters in dense urban areas where 200 metres might mean a 10-minute detour.
Entry, Exit, and Dwell Events
A geofence generates three event types:
Entry. Device crosses from outside to inside the boundary. Triggers immediate actions like push notifications.
Exit. Device leaves the boundary. Useful for post-visit surveys or re-engagement flows.
Dwell. Device remains inside the boundary for a configurable duration. Filters out pass-throughs (someone driving past) from genuine visits.
Dwell detection is critical for marketing accuracy. Without it, a driver passing a store at 60 km/h triggers the same event as a shopper walking in. A 2-minute dwell threshold eliminates most false positives.
Building a Geofencing Pipeline
A production geofencing system has four layers:
Mobile SDK (localisation + surveillance des geofences)
|
v
Diffusion d'événements (payloads entrée/sortie/présence)
|
v
Traitement back-end (moteur de règles, segmentation utilisateurs)
|
v
Couche d'action (push, message in-app, analytique, préparation commande)
The SDK Layer
The mobile SDK handles two jobs: monitoring the device's position and evaluating it against registered geofences. Both iOS (Core Location) and Android (Geofencing API) provide native primitives, but raw platform APIs require significant boilerplate for production use - battery management, permission handling, retry logic, and background execution.
Here is a simplified example registering a circular geofence on Android:
val geofence = Geofence.Builder()
.setRequestId("store-paris-01")
.setCircularRegion(48.8566, 2.3522, 200f) // lat, lng, rayon (m) .setExpirationDuration(Geofence.NEVER_EXPIRE)
.setTransitionTypes(
Geofence.GEOFENCE_TRANSITION_ENTER or
Geofence.GEOFENCE_TRANSITION_DWELL
)
.setLoiteringDelay(120_000) // 2 minutes de présence .build()
Sur iOS, l'équivalent utilise CLCircularRegion avec CLLocationManager. La surface d'API est différente, mais le principe est identique : enregistrer une région, recevoir des callbacks lors des transitions.
La couche back-end
Les événements issus du SDK parviennent au back-end sous forme de payloads structurés — identifiant utilisateur, identifiant geofence, type de transition, horodatage. Le moteur de règles détermine ce qui se passe :
Limitation de fréquence. Ne pas envoyer plus d'une notification par magasin toutes les 24 heures.
Segmentation utilisateurs. Les membres du programme de fidélité reçoivent une offre personnalisée ; les utilisateurs anonymes reçoivent une invitation générique.
Règles horaires. Aucune notification avant 8 h ou après 21 h.
État de la campagne. Vérifier que la campagne associée est toujours active et dans les limites du budget.
La couche d'action envoie ensuite : notification push via APNs/FCM, message in-app via un SDK de messagerie, ou webhook vers un système de gestion des commandes pour la préparation du click-and-collect.
Contraintes de plateforme que tout développeur doit connaître
Localisation en arrière-plan sur iOS
iOS restreint sévèrement l'accès à la localisation en arrière-plan. Contraintes principales :
Limite de surveillance de régions : 20 geofences simultanés par application. Si vous avez 500 magasins, vous devez enregistrer dynamiquement les 20 plus proches en fonction de la dernière position connue de l'utilisateur.
Rafraîchissement en arrière-plan : iOS réveille votre application lors des transitions de région, mais sans garantie sur le délai. Attendez des délais de 1 à 5 minutes en mode basse consommation.
Localisation approximative : depuis iOS 14, les utilisateurs peuvent accorder une localisation « approximative » (au niveau de la ville). Le geofencing requiert une localisation « précise » — votre flux de demande de permission doit l'expliquer.
Toujours autoriser : le geofencing nécessite la permission de localisation « Toujours autoriser », et non simplement « Lors de l'utilisation ». Le taux de conversion de « Lors de l'utilisation » vers « Toujours autoriser » est faible — les recommandations d'Apple préconisent une approche progressive de la demande de permission.
Exécution en arrière-plan sur Android
Android impose ses propres restrictions :
Limite de geofences : 100 par application (plus souple qu'iOS, mais toujours limité).
Permission de localisation en arrière-plan : depuis Android 12, ACCESS_BACKGROUND_LOCATION doit être demandée séparément de la permission en premier plan, et le Play Store exige une déclaration justifiant son usage.
Mode Doze : lorsque l'appareil est immobile et l'écran éteint, Android regroupe les mises à jour de localisation. Les événements de geofence peuvent être retardés de plusieurs minutes.
Réenregistrement des geofences : après un redémarrage de l'appareil ou une mise à jour de l'application, tous les geofences sont effacés. L'application doit les réenregistrer au démarrage via un BroadcastReceiver.
Réalité de la consommation batterie
Le compromis entre précision et autonomie n'est pas théorique — il conditionne le fait que les utilisateurs conservent l'application. Un profil de tracking interrogeant le GPS toutes les 10 secondes épuise une batterie en quelques heures. Le pattern en production est étagé :
Profil
Intervalle de mise à jour
Précision
Impact batterie
Cas d'usage
Passif
Piloté par le système
~300 m
Minimal
Détection de présence en arrière-plan
Équilibré
1 à 5 minutes
~50 m
Faible
Transitions de geofence
Actif
5 à 15 secondes
~5 m
Élevé
Livraison dernier kilomètre, ETA
Changez de profil en fonction du contexte. Utilisez le mode passif par défaut, passez en mode équilibré lorsque l'utilisateur se trouve à quelques kilomètres d'un geofence enregistré, et activez le tracking haute précision uniquement pour les flux critiques comme la préparation de commande.
Privacy-by-Design: GDPR-Compliant Geofencing
Location data is personal data under GDPR Article 4(1). Any geofencing implementation in the EU or UK requires:
Explicit consent. Location permission granted by the OS is not GDPR consent. You need a separate, informed opt-in that explains what location data you collect, why, and for how long.
Purpose limitation. If consent is granted for "order preparation notifications," you cannot reuse the same location data for "footfall analytics" without separate consent.
Data minimisation. Collect the minimum data needed. If you only need entry/exit events, do not stream continuous GPS coordinates to your server.
On-Device vs Server-Side Processing
The architecture choice matters for compliance:
Server-side geofencing sends raw device coordinates to a backend that evaluates geofence boundaries. This means location data leaves the device, creating a data controller obligation, a data processing record, and a potential cross-border transfer issue.
On-device geofencing evaluates boundaries locally on the phone. The backend receives only event payloads ("user entered geofence store-paris-01 at 14:32") - not raw coordinates. This minimises the personal data surface and simplifies compliance.
Le bon choix dépend de vos contraintes : nombre de geofences, exigences de confidentialité, couverture des plateformes, et nécessité d'un support polygone/isochrone au-delà des API natives.
Questions fréquentes
Qu'est-ce que le marketing de geofencing ?
Le geofencing marketing est une stratégie basée sur la localisation qui déclenche des actions digitales — notifications push, messages in-app ou impressions publicitaires — lorsqu'un appareil mobile entre dans une frontière virtuelle autour d'un lieu physique ou en sort. Cette frontière est définie par des coordonnées et un rayon, une forme polygonale ou une isochrone de temps de trajet.
Quelle est la précision du geofencing ?
La précision dépend de la source de localisation. Le GPS offre une précision de 3 à 10 mètres en extérieur, mais peine à fonctionner en intérieur. Le positionnement Wi-Fi atteint 15 à 40 mètres en zone urbaine. La triangulation cellulaire est la moins précise, avec 100 à 300 mètres. La plupart des SDK combinent ces sources en fonction de leur disponibilité et de l'état de la batterie.
Combien de geofences une application mobile peut-elle surveiller ?
iOS limite les applications à 20 zones surveillées simultanément. Android permet jusqu'à 100. Pour les entreprises disposant de centaines de points de vente, le SDK doit gérer dynamiquement l'ensemble actif en fonction de la position actuelle de l'utilisateur.
Le geofencing consomme-t-il la batterie ?
Cela dépend du profil de suivi. La surveillance passive (mises à jour pilotées par le système) a un impact minimal sur la batterie. Le suivi haute précision avec interrogation GPS toutes les quelques secondes décharge rapidement la batterie. En production, le schéma habituel est d'utiliser des profils par paliers qui n'augmentent la précision qu'en cas de besoin.
Le geofencing est-il conforme au RGPD ?
Le geofencing peut être conforme au RGPD s'il est correctement implémenté. Les exigences comprennent : consentement explicite et éclairé (distinct des permissions système), limitation des finalités, minimisation des données et mise à disposition d'un moyen clair pour l'utilisateur de retirer son consentement. Les architectures de traitement embarqué réduisent la surface de conformité en conservant les données de localisation brutes sur l'appareil.
Quelle est la différence entre geofencing et balises ?
Le geofencing utilise le GPS, le Wi-Fi et les signaux cellulaires pour surveiller des périmètres extérieurs et semi-extérieurs (plage typique : 50 à 500 mètres). Les balises utilisent le Bluetooth Low Energy (BLE) pour la détection de proximité intérieure précise (plage typique : 1 à 30 mètres). Ils sont complémentaires : le geofencing gère l'approche, les balises gèrent le rayon de l'allée.
Qu'est-ce que le temps de séjour dans le geofencing ?
Le temps de présence (dwell time) est la durée minimale pendant laquelle un appareil doit rester à l'intérieur d'un geofence avant de déclencher un événement. Un seuil de 2 minutes filtre les faux positifs liés aux passages en voiture, garantissant que seules les véritables visites déclenchent des actions marketing. La plupart des SDK exposent ce paramètre de façon configurable.
Le geofencing peut-il fonctionner sans application ?
Le geofencing traditionnel nécessite une application mobile avec des permissions de localisation. Cependant, le geofencing programmatique via des réseaux publicitaires permet de cibler des appareils dans une zone géographique via des annonces display et sociales, sans installation d'application — avec toutefois moins de précision et sans détection du temps de présence.
Pour une analyse approfondie de l'intégration du geofencing dans une stratégie retail plus large, consultez notre guide drive-to-store. Si vous êtes prêt à prototyper une implémentation de geofencing, la documentation du Woosmap Geofencing SDK couvre la mise en place sur iOS, Android, Flutter et React Native.