Feature Breakdown

The Movement SDK enables developers, marketers and brands to create real-time, contextual mobile experiences, and bridge the gap between online interests and real-world behaviors.

The Movement SDK leverages Foursquare underlying POI data (105M globally) and user signals from its consumer apps to translate location signals into actionable location intelligence, such as “at a restaurant”, “at a pet shop”, “at home”, “at work”.

Easily send those location signals to one of our marketing platform partners using Movement native integrations or send the data to your own backend to create stronger audience segments based on location patterns, to enrich user profiles by adding location history, and personalize customer experience.

Place Visit Detection & Snap-to-Place Technology

Go beyond radius and polygon with our Snap-to-place technology using a combination of GPS, Cell, Wifi, Bluetooth, Accelerometer, and time-of-day data.

Utilizing stop detection technology and dwell time is crucial for reporting visits because we are capturing true visits as opposed to someone driving by or sitting in traffic nearby. We utilize stop detection and entrance/exit time (dwell time), in addition to a number of other signals, in order to passively log visits at the highest degree of accuracy.

Our proprietary snap-to-place technology allows us an accurate understanding of when a visit to a venue occurs, which is leveraged by our partner apps to share proximity-based push notifications and gain a holistic understanding of their users based on real world behavior.

Our other signals include WiFi triangulation, GPS distortion measurement, lat/long, accelerometer, barometer, compass, bluetooth, timestamp, cell tower signals and time of day popularity ratios.


Power in-store & curbside pickup, delivery tracking, location-based marketing, and more.

When a user is ready to embark on a journey (i.e. they tap on "I'm on my way"), Journeys will start monitoring for their arrival, provide live ETAs throughout the way, and automatically detect when a user has arrived at their destination.

User Current Location

Proactively retrieve precise place information for any user who has given your app permission to use location while your app is open.

If your app is open, proactively retrieve:

  • The same place name, category, and chain information you would receive in the background callbacks in real time in your app.
  • Any Geofence Events, e.g if your user is currently inside one (or many) of your drawn geofences.
  • City, state, zip and country level information - including lat/long coordinates - for all users, in addition to home, work, traveling, commuting for users who have enabled always on location.


The process of using geographic location data, which is taken from mobile devices, to set a perimeter around a defined area.

Geofences can be configured to a radius of your choosing, polygon shapes and latitude/longitude points. In addition, geofences can be configured for the venues, categories, or chains of your choosing.

By default, Foursquare will use its knowledge of the venue's location to return the right fence for a given place.

Custom User Data

Set custom user unique identifiers to ensure your user specific info is available everywhere you need it.

This is common if you want to tie a Movement event to a specific user in your own database or in a third party integration.

For example, if your app is using a mobile number and/or an email as a user unique identifier, you can decide to add one or both to your SDK events. Once set, the custom user data will be passed along in the SDK webhook payload.

Access User States

Accurately interact, or not interact, with your users based on their state.

  • As users of your app begin to establish regular behavior (usually after 3-7 week days), the SDK will attempt to determine their home and work locations. The home and work locations that the SDK determines are a generalized "area", not a specific address.
  • We calculate the travel state by observing the user's home/work visit patterns. States trigger when users deviate from those patterns in a way that signifies traveling. This can be useful if you want to send targeted messaging that relates to a user traveling, as opposed to being in their normal home/work routine.
  • The Movement SDK defines commuting as when a user is moving some distance between one's home and place of work on a regular basis. This can be useful, for example, if you want to send targeted messaging that relates to their morning or evening commute: "Need a pick me up? Stop by and grab a cup of joe on your way into the office."
  • As part of enhancing and extending User State, the SDK also provides an additional Location Context.This can be useful for providing a contextual notification based on a regional change in your user's location. For example, your user entering the City of Wheaton.

Visit Feedback

Provide feedback about a user's visit. The more feedback we get, the smarter, faster and more accurate the Movement SDK becomes.

  • You can easily confirm whether a visit is accurate or not (and why).
  • If you know a device is at a specific Foursquare venue, irrespective of receiving an SDK Visit, you can also inform the SDK by providing the Foursquare venue ID.
  • For partners that have already harmonized their venues with Foursquare, irrespective of receiving an SDK Visit, you can also inform the SDK that a device is at a venue by providing the partner's harmonized venue ID.

Third Party Integrations

Leverage the full power of Foursquare by integrating its event detection with other services.

Many teams use a Mobile Marketing Automation (MMA) or a Customer Data Platform (CDP) solution to manage events, create content based on those events and/ or associate those events with their users. Similar to webhooks, we will send a notification to any partners you have configured when one of your users arrives, departs, or triggers a geofence event.

You can directly integrate the Movement SDK events into the platform your company is using. You can also receive a daily delivery of SDK events to an S3 bucket you setup. If your preferred CDP, MMA or Cloud Data provider is not on the list, let us know and we can look into supporting an integration with them.


The ability to have your servers called anytime one of your users arrives, departs, or triggers a geofence event.

In the standard integration of the Movement SDK, the SDK will call your app with a notification that your user has arrived at a place. From there, it is likely that you will take some/all of the pieces of information that are handed to you and send those up to your servers for logging or other actions like notification sending. This is a good flow for most apps, but does require the upfront work of defining the client/server protocol to get this information up from your application. To get around this, Foursquare offers the ability to have your servers called anytime one of your users arrives at a place.

Some possible benefits:

  • Reduced mobile network traffic and potential battery savings for your users via cutting out an API request to your servers from the device.
  • Faster development iteration on your side without having to deploy a new app version.
  • Allows Foursquare to potentially offer new data to you without requiring an app or SDK update.