Marketing par geofencing : guide d'implémentation pour les développeurs

Sommaire
Guide du marketing par geofencing

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 :

SourcePrécisionConsommation énergieIdéal pour
GPS3 à 10 mètresÉlevéeExtérieur, ciel dégagé
Positionnement Wi-Fi15 à 40 mètresMoyenneUrbain, semi-intérieur
Triangulation cellulaire100 à 300 mètresFaibleProximité 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é :

ProfilIntervalle de mise à jourPrécisionImpact batterieCas d'usage
PassifPiloté par le système~300 mMinimalDétection de présence en arrière-plan
Équilibré1 à 5 minutes~50 mFaibleTransitions de geofence
Actif5 à 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.

70% of consumers are willing to share location when they receive tangible value - faster service, relevant offers, or loyalty rewards. The technical architecture should make good on that trade: collect only what the use case requires, process locally where possible, and give users a clear off-switch.

Outils et plateformes

Plusieurs plateformes proposent des SDK de geofencing avec des compromis différents :

PlateformeTypes de geofencesTraitement embarquéPlateformesModèle tarifaire
RadarCercle, polygone, isochronePartieliOS, Android, WebFreemium, à l'usage
HERE Location ServicesCercle, polygoneCôté serveurMulti-plateformePar paliers, entreprise
Woosmap Geofencing SDKCercle, polygoneEmbarqué (privacy-first)iOS, Android, Flutter, React NativeAccès gratuit + à la requête
MapboxCercle, isochroneCôté serveuriOS, Android, WebFreemium, basé sur les chargements de carte
Natif (Core Location / Android Geofencing API)Cercle uniquement (iOS), cercle (Android)EmbarquéSpécifique à la plateformeGratuit (SDK plateforme)

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

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.

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.

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.

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 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.

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.

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 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.