Foursquare Audience converts time-stamped location data into demographic, behavioral, and geographic user profiles. It is designed for mobile publishers, mobile exchanges, and DSPs who wish to better personalize apps, and target content.

Audience does not require an SDK or an on-device presence. The product is designed exclusively for Mobile and does not require beacons or cookies: Foursquare creates user-specific audience segments based on location data you provide over time, and additional first-party data where available.

Foursquare's privacy practices are TRUSTe certified. Foursquare does not pool data across partners and does not position itself as a data broker. Instead, we act as a ‘force multiplier’ for first-party data: we create profiles based on the locations of your users over time, and share these only with you and your authorized partners. Profiles we return do not contain personally identifiable information (PII).

This document provides further detail on Audience and the individual user profiles we return.

How It Works

Time-stamped coordinates are submitted to Foursquare with a user ID -- the more coordinates provided, the more detailed profile can be created for your users. We create and enrich profiles over time, keyed on the ID provided to us. We begin recording geographic attributes with just a few data points, and expand to demographic and behavioral attributes as we see more. There is no minimum number of observations required to build a profile, but as guidance we suggest 200 or more data points distributed over a two-week window as a convenient minimum. Foursquare Audience is however designed to accept tens of thousands of points over the course of many months to create very rich and refined profiles.


Because these coordinates can come from any source – on-device geolocation, W3C browser API, geotagged images, or business check-ins – the service is designed explicitly to create profiles from intermittent, occasional, and even dirty data. A greater number of coordinates over a longer period of time allows Foursquare to increase confidence scores and add new attributes to the profile.

Intermittent Location, No SDK

Foursquare Audience is a server-side solution; it does not require SDK integration to implement; instead, data is passed to Foursquare from your servers, processed, and returned.

Foursquare Audience has been specially designed to accommodate apps and advertisers that collect intermittent location -- location data points acquired infrequently and irregularly over the course of a day. While Audience can accommodate GPS traces or 'tracking data', it is optimized for location data collected by apps once or twice per session, or location data pulled from an advertising bid stream. These are analyzed over an extended period to identify repeat activities and patterns of behavior.

Built on Local Areas of Activity

In essence, the system identifies and classifies specific Areas of Activity (AsoA) – locations that users frequent on more than one occasion. We analyze AosA to determine patterns of behavior and preference and turn these patterns into geographic, demographic, and behavioral profiles.


Repeat visits create an 'Area of Activity'

The following image shows the irregular and intermittent activity of a single user normalized into Areas of Activity; the size of the circle in the example indicates the relative frequency of activity within that AoA over the sample period. Here we see a hypothetical user's activity in and around Los Angeles:


Areas of Activity are locations of repeat behavior. The size of the circle reflects its significance.

We then study general patterns of movement between Areas of Activity (AsoA) and rank them by importance. This also allows us to determine information such as home zip code, typical commuting start and end times, as well as diurnal behavior patterns to inform our predictive model.


Identifying the 'home' Area of Activity, returned at postcode level

The image above shows a clear pattern of behavior to-and-from a primary AoA that we tag as 'home', and capture in the profile. In addition to the locations, rank, and business categories of these AsoA and their relative importance, we also return a ranked breakdown of all cities, regions, countries, metro areas, and DMAs in a user profile. This information allows content providers to use geo context effectively to customize content events when a geo signal is absent.

Converting User Location to User Segments

We look at the time and location of these coordinate pairs over a period of time to build a general picture of a user's interaction with an application and return the specific attributes about a user that you find valuable, including:

  • Geographic detail: a global breakdown of the country, city, state, zip codes, and DMA (in the US) where user is active. We can help determine who travels between two specific cities, and help match geotagged ads with enhanced user inventory
  • Demographic information: including race and predicted household income in the US
  • Behavioral traits and classifications: including Business traveler, College Student, Quick Service Restaurant enthusiast, etc.

The segment data is specifically designed to enhance the connection between an individual, and a publisher or advertiser. It helps serve the publisher serve correct local news and more relevant information, can customize content by location, and ensures only the most contextually relevant information is served at the right time.


Data Quality Filters

Most location data is of varying quality due in-part to the huge variance in its source and accuracy – from IP-based geolocation (almost useless), to cell tower (better, but still suspect), wifi location (acceptable), and GPS coordinate pairs (preferred). Foursquare Audience incorporates a number of "data verification techniques": that cleans it on submission. We do not require the precision or source of the geodata. Give the geolocation data to Foursquare and we will identify and discard untrustworthy points: depending on the application our tests show that we commonly disregard 15-25% of inputs as irrelevant to profile building. Throw it all at us, and we'll sort the wheat from the chaff.

Security and Privacy

Privacy concerns surround any product that consumes user location; we take our responsibilities here seriously.

Most importantly, Foursquare does not take ownership of the user data provided by partners -- we do not pool data, or sell data from one source to unauthorized 3rd parties. The profiles Audience returns do not identify individuals. Our privacy policy and privacy practices have been certified by TRUSTe to be compliant with their Web Privacy and TRUSTed Data program requirements.

Profile and Data Retirement

We aim to ensure that the entire audience remains current: users without activity for the past 90 days are not returned, but will be marked as 'inactive' on Foursquare's internal systems; if we see data from these users in the following nine months, we renew the profile with the addition of new information. However, if they are not seen within a year they are deleted.

The Audience Designer Dashboard

Foursquare exposes the audiences for the data sources with whom we partner. The Audience Designer dashboard provides the means to query the data source’s audience data with specific criteria, estimate impression capacity and unique devices.


The Audience Designer dashboard allows you to create your own audience selections. For example, to create sets for "golfers over fifty" and "california costco shoppers", you would create an Audience Set for each, and name "golfers-over-50" and "ca-costco". You can select whatever naming convention you like, and there is no pre-existing mapping of set-criteria onto set-name.


Foursquare returns a range of "geographic, demographic, and behavioral segments":/geopulse-audience-segments/ for each device, in addition to a few special kinds of segments:

Tailored Location Segments

Tailored Location Segments provide you with the means to create your idea of the perfect location-based audience, based on where people go: essentially campaign planners and marketers can select an audience based on a specific retail brand, categories of places, landmarks, or any set of places in Foursquare's Global Places data. Tailored Location Segments can be combined with any other segments to construct the best audience for your campaign. Tailored Location Segments are returned as Audience Sets and must be used in conjunction with On-Prem.

Brand Affinities

Foursquare indexes attendance for select brands across your audience, and records it on a weekly and monthly basis. This approach allows an immediate overview of who has visited select brands, whether they are frequent or casual visitors, and understand a more holistic view of audience engagement with a specific retail brand.

Brand Affinities are similar to Tailored Location Segments in that they analyze audience attendance at specific brands over time. Unlike Tailored Location Segments, Brand Affinities are pre-indexed (meaning that these are ready out-of-the-box) and they reflect high-precision, in-venue attendance, having been created with detailed store polygons.

We support over 150 brands and their in-store visits. See the "Brand Affinities Documentation":/geopulse-audience-brand-affinities/ for a complete list.

Implementation Overview

It is important first to note that Foursquare does not have its own audience. Instead, we are a force-multiplier for first-party location data. We create audiences for publishers and return the data to them directly for app personalization, or we write their data to Google DFP or Google DMP on their behalf. We work in a similar fashion with exchanges: here we create audiences on their RTB data, and then share these audiences with DSPs for enhanced targeting, again, with permission.

The second critical aspect of our position in the data stack is that we do not provide a 'hosted' service: because 9 out of 10 use cases demand extremely low-latency responses, we provide on-prem software imaginatively called "Geopulse On-Prem":/geopulse-on-prem-overview/ that acts as a transport mechanism and low-latency query store. We do however offer an "Amazon AMI version of Geopulse On-Prem":/geopulse-on-prem-ami/ for those who need a quick-and-easy service to call.

Audience Sets v. Audience Profiles

Foursquare processes third-party location data, enriches it, and indexes it on our servers. The enriched data is then selectively 'pushed' your local "Geopulse On-Prem":/geopulse-on-prem-overview/ instance.

This data can take one of two forms: an Audience Set, or an Audience Profile. An Audience Set is a collection of identifiers that subscribe to specific criteria, for example "Business Travelers in California". An Audience Profile is a JSON representation of every user within the dataset, represented as an identifier with associated key/value pairs. Audience Sets are lightweight and easy because they contain a subset of devices that subscribe to select criteria, and only the identifiers thereof. In contrast, Profiles contain every known attribute for every user, and therefore are more cumbersome and bulky. Audience Sets have data requirements of about 100MB per 100MM users, while Audience Profiles require ~10-50GB per 100MM users.

Generally, DSPs and others working in ad-tech will opt for Audience Sets, while publishers and orgs with their own CMS may choose Profiles. The decision is made during the contractual process.

Mobile DSPs and Exchanges: Audience Sets

Foursquare has arrangements with MoPub and several other exchanges to create audiences on their data. With the permission of the exchange we make these audiences available to select Demand Side Platforms (DSPs) to enhance targeting relevance. Using a visual interface, DSPs query exchange audiences on Foursquare for specific campaign criteria, such as “Business Travellers in LA”. This query produces an Audience Set, a highly optimized, binary hash of the exchange identifiers for all devices satisfying the query criteria. Audience Sets are transferred to the DSP for local execution on Foursquare software at runtime.

The workflow looks something like this:


In the diagram above, the steps can be articulated as:

  • Using Foursquare's Audience Designer dashboard, the Media Planner creates an Audience Design that queries the audience data Foursquare has created for a specific data source (e.g. Exchange), for example, "LA-based Business Travelers"
  • The Designer estimates the count of unique devices and impression capacity (reach) in the selected data source that comply with the query criteria
  • Repeat Steps 1 and 2 until the device count and/or impression capacity is satisfactory
  • Once satisfied, save the Audience Design. The Designer requires the fields Audience Design Name and Targeting Code to be filled. Targeting Code is used later when campaign line items specifies the audience targeting to use.
  • On its cluster, Foursquare creates an Audience Set, a highly optimized, binary file containing all of the device IDs that subscribe to your query criteria
  • The Audience Set is downloaded to your instance of On-Prem. Most Audience Sets are baked and downloaded in under an hour.
  • Bid requests to that instance of On-Prem are immediately validated against the new Audience Set and any current Audience Sets
  • If the bid request's device matches devices found in the Audience Set, the name of the Audience Set is returned in the response packet as JSON.

Audience Sets are designed for real-time, low-latency, high-volume queries: the steps in orange in the above diagram are real-time, and usually take about a millisecond; the steps in yellow are asynchronous, but usually complete within a few hours.

Mobile Publishers: Audience Profiles

Foursquare builds audiences for each Mobile Publisher on their data, and returns those audiences only to that Mobile Publisher. Timestamped location data from the Publisher’s servers is pushed to Foursquare, through a local HTTP server we provide. These inputs are associated with whatever User ID you prefer, including proprietary or hashed IDs. The inputs can be provided in a single dump or trickled in over time, but typically it will be a combination of both. The more coordinates that are provided, the more detailed profile can be created for your users (the service is asynchronous, so you can pass us coordinates when convenient). Foursquare can render the profiles as Audience Sets, or we can return the profiles to the On-Prem server where they can be queried by ID.

Audience profiles are collections of demographic, geographic, and behavioral attributes keyed to a specific Device or Proprietary ID. Foursquare builds these attributes directly from Publisher data: ID, timestamp, longitude/latitude, and any other available information.

Unlike Audience Sets, Audience Profiles are a very 'data heavy' exercise, and should only be used in circumstances where the profiles are being added to a CMS, or where targeting parameters cannot accommodate Boolean member sets.


In the diagram above, the steps can be articulated as:

  • Together we agree on the attributes that are to be captured in your Profiles, and their format. This is usually a JSON-encoded list of keys and values. Foursquare creates a Profile Template to this specification.
  • Your mobile app reports location at regular or irregular intervals, either intermittently while the app is open, or more persistently in the background
  • This information is sent to Foursquare. Usually POSTed to On-Prem, which journals the data and sends it on to us in 5MB chunks
  • Foursquare gathers data for a period: several days or a few weeks, depending on data density and agreed materialization cadence (more on this below)
  • Foursquare creates profiles for new users, augments profiles of current users, and retires profiles of users we've not seen for several months
  • The new, current Audience snapshot is uploaded automatically to your local instance of On-Prem.
  • Queries to On-Prem by ID return the entire, specified Profile

Audience Profiles can be queried in On-Prem in under a millisecond, or extracted and integrated within an extant CMS or User Data Store. The steps in orange in the above diagram are real-time and usually take about a millisecond, while the steps in yellow are asynchronous -- we materialize new profiles and augment current profiles on a regular cadence of a few days to few weeks, but, as this process is computationally very expensive, the specific timing is largely an artifact of the business arrangement.

We provide a detailed implementation document that outlines in detail how the data and services connect to your own infrastructure.


  • Produce geographic, behavioral, and demographic models from lat/long
  • Used by mobile publishers and developers
  • Per-user profile generation for personalization
  • Private: profiles returned do not identify individuals and our privacy practices are TRUSTe certified
  • Designed to accommodate inconsistent and poor data
  • Implemented server side; no need to be on-device
  • Asynchronous: drop us data and pick up the profile later
  • Supported in top 50 countries by smartphone penetration