Version History


  • Addressed an issue with a recently released version of Google Play Services (the device side library) which increased the payload sizes of batch location updates and caused issues when processing those in the background.


  • Added Pilgrim Journeys , a framework designed to accurately monitor origin-destination movement.
  • Added Android 13 support for SDK & Toolkit.


  • Added Android 12 support for SDK & Toolkit
  • Added work version support for API 31 and targeted API 31 in Toolkit
  • Replaced evernote/android-job library with WorkManager library
  • Added speed and direction properties to geofence events
  • Included a notice file referencing libraries used and available under Apache 2.0 license


  • Fixed a runtime crashed caused by the OS around monitoring for connected network changes.


  • Added support for IDFA alternatives via Custom User Data
  • Added Location Context to User States
  • Add support for exporting Pilgrim data to Amazon S3


  • Added support for disableAdIdentitySharing to prevent device AdId from being sent to Foursquare
  • Updated reference docs to 2.4.2.


  • Fixes a crash related to a Roboelectric issue regarding their handling of the android OS lifecycle.


  • This release brings Pilgrim into full compliance with the latest version of the Android OS (Q/10), and adds support for custom geofence properties, along with several other improvements and fixes.
  • Migrated from Android Support libraries to AndroidX
  • Pilgrim SDK debugging module migrated to AndroidX
  • Android Q support: Background and When In Use location support when targeting API 29
  • New Activity Tracking permission request added
  • Add custom properties to geofences on the Pilgrim Developer Console
  • New safer encryption mechanism used to store data locally
  • New live console event debugging support
  • Removed deprecated support for Manifest key initialization
  • Removed enableLogs, replaced with new behavior live debug logs


  • Breaking: Initializing via the content provider is now deprecated and will be removed in the next version
  • Added support for arbitrary latitude and longitude geofences
  • Added support for polygon-shaped geofences
  • Added support for adding geofences via an API


  • Geofence events are now more reliable when the device is in Doze
  • Add helper to persist userinfo for later sessions
  • Play Services has been upgraded to version 16.0.0
  • Nearby Venues callback has been deprectated


  • Added getCurrentLocation method to actively request the current place a device is at
  • Added support for user segments
  • Added Android O optimizations


  • Breaking: Authenticate with Android Hash Key set in your Foursquare App configuration
  • Added a debug view
  • Added support for geofences at venues, categories or chains
  • Added a new support class PilgrimNotificationTester to help debug visits from your development environment


  • Brings back the PilgrimSdk.with method to optionally remove consumer key and secret in the manifest file
  • Fixes a database migration issue when upgrading from multiple versions back.
  • Fixes some proguard obfuscation issues
  • Adds chain name to payload


  • Fixes an issue that showed excessive background wifi scans entry in the Play Store "Android Vitals" dashboard
  • Fixed crashes on devices that target Android O


  • Mandatory: Added TLS1.2 support for Android versions 4.4 and older
  • Breaking: Auto initialize SDK by adding API credentials to the manifest
  • Deprecated: getCurrentLocation(), use getCurrentPlace().getLocation() instead, which is equivalent
  • Added a getProbability() method on the venue object which returns the probability that the venue is associated with the visit
  • Added additional checkin methods checkInAtVenueWithFoursquareVenueId and checkInAtVenueWithPartnerVenueId


  • Fixes a crash caused by a bug in a small number of devices that called Application#onCreate() more than once.


  • Included a workaround for the timestamp bug by getting the timestamp from an alternative system API. This may result in a 1-10% lift in users/visits depending on your app.
  • The otherPossibleVenues array will now be included for backfilled visits as well if you have this feature enabled.
  • Silenced exceptions around startService() being called at invalid times when targeting Android O. This will prevent the errors seen in Issue 1 and Issue 3.
  • Also, we removed the WRITE_EXTERNAL_STORAGE manifest-declared permission.
  • Calling PilgrimSdk.with() more than once will result in an IllegalStateException. Ensure that this call is done exactly once, in your Application.onCreate(), before you call any other PilgrimSdk methods.


  • Update firebase job dispatcher library to pull in fix for incompatibility between it and Google Play Services 11. Commit. Issue.
  • Remove -dontoptimize flag from our consumer proguard configuration so that we don't prevent consumers of the app from optimizing their own apps.


  • Bug fix for an issue causing certain older Samsung devices to crash.
  • Other minor fixes.


  • Bug fixes for issues where backfills could sometimes report an incorrect location type.


  • Fix for OOM errors on some newer devices that occur when Pilgrim receives a location with a bad timestamp.



  • Add a PilgrimSdk#sendConnectedTestNotification to the API that allows testing your pilgrim configuration and trigger a clientside notification.
  • Start logging persistent debug data if PilgrimSdk#enablePersistentLogs is set to true.
  • Create an additional pilgrimsdk-debugging artifact that contains prebuilt views for viewing debug logs in app.
  • Start depending on and using the Firebase JobDispatcher API to schedule background visits.


  • Include wifi signals for more accurate visit detection.
  • Fixes issue where the UserInfo user ID was not being properly sent up.


  • Minor bug fixes.


  • Adds support for partnerVenueId to Venue. This will be populated when you are an approved Venue Harmonizer and will contain your place id for the Foursquare venue if it exists.
  • Fixed some possible race conditions when using PilgrimSdk#clear()
  • Internal book-keeping updates