IP Library Granted Patent US 10,664,857
Granted Patent B2
US 10,664,857 · App. 13/928,833 · Granted May 26, 2020

Determining offers for a geofenced geographic area

Inventors: John Newman Faith (Austin, TX); Eithan Zilkha (Austin, TX); Christopher Matthew Duty (Austin, TX)
Assignee: RetailMeNot, Inc.
G06Q30/0222G06Q30/02G06Q30/0225G06Q30/0239G06Q30/0242G06Q30/0255G06Q30/0256G06Q30/0267G06Q30/0269H04L67/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,664,857
App. No.
13/928,833
Granted
May 26, 2020
Kind
B2
Abstract

Provided is a computer-implemented process for determining offers for a geofenced geographic area. After a mobile user device traverses a geofence, merchants associated with a geofence having a geofence identifier are identified. Candidate offers associated with the merchants are identified and ranked according to ranking criteria. The ranked candidate offers are transmitted to a mobile user device. The ranked candidate offers are cached on the mobile user device and presented to the user via an offers notification. The user may view and redeem an offer by selecting the offers notification.

Claims (71)

1. A computer-implemented method for determining relevant offers for a geofenced geographic area with a server system while conserving battery power in a mobile user device with which the server system communicates, the method comprising:

receiving, via a network, with the server system, from a native application executing on the mobile user device, a request for geofences in an area of the mobile user device, the request comprising a geolocation of the mobile user device determined based on wireless signals received by the mobile user device;

selecting a plurality of local geofences, via a processor, from a database of geofences, based on proximity between the geofences and the geolocation of the mobile user device;

sending, via the network, the plurality of local geofences to the native application executing on the mobile user device;

receiving, via the network, from the native application executing on the mobile user device, a request for offers, the request comprising a geofence identifier associated with a geofence among the plurality of local geofences previously sent to the mobile user device, the geofence defining a perimeter corresponding to one or more retail stores, the request arising from a program different from the native mobile application executing on the mobile user device detecting traversal of the geofence by the mobile user device;

identifying, via a processor, one or more merchants based on an association of the one or more merchants with the geofence;

identifying, via a processor, a plurality of candidate offers associated with the one or more merchants;

selecting, via a processor, one or more offers based on ranking the plurality of candidate offers; and

sending, via the network, the one or more selected offers to the mobile user device.

2. The computer-implemented method of claim 1 , wherein identifying a plurality of candidate offers comprises expediting data retrieval by:

querying a cache server, wherein the cache server maintains a cache of offers stored in random access memory of the cache server, the cache of offers having a subset of a larger set of offers, the larger set of offers including copies of at least some of the subset of offers, wherein the subset of offers are each associated with a hash key value calculated based on a respective parameter of the respective offer among the subset and paired with a respective addresses of the respective offer in the random access memory; and

identifying responsive offers with the cache server from among the subset of offers based on the query.

3. The computer-implemented method of claim 1 , wherein selecting the one or more offers comprises ranking the plurality of candidate offers based on an offers engine user profile associated with a user of an offers engine, the user profile comprising a history of user activity.

4. The computer-implemented of claim 3 , wherein the user activity comprises previously selected offers, merchants, categories, or any combination thereof.

5. The computer-implemented method of claim 1 , wherein selecting one or more offers comprises ranking the plurality of candidate offers based on a seasonality factor, wherein the one or more candidate offers comprises an in-store coupon having an image of a machine-readable code that is scannable at a point of sale.

6. The computer-implemented method of claim 1 , wherein selecting the plurality of local geofences comprises selecting the plurality of geofences based on geolocations of the mobile user device over a set of points in time.

7. The computer-implemented method of claim 1 , wherein selecting the one or more offers comprises:

retrieving from a user profile of a user associated with the mobile user device information about a set of offers previously selected by the user; and

ranking the plurality of candidate offers based on the retrieved information.

8. A non-transitory, computer-readable memory storing instructions for determining relevant offers for a geofenced geographic area with a server system while conserving battery power in a mobile user device with which the server system communicates, wherein the instructions, when executed by one or more processors, cause the processors to perform operations comprising:

receiving, via a network, from a native application executing on a mobile user device, a request for geofences in an area of the mobile user device, the request comprising a geolocation of the mobile user device determined based on wireless signals received by the mobile user device;

selecting a plurality of local geofences, via a processor, from a database of geofences, based on proximity between the geofences and the geolocation of the mobile user device;

sending, via the network, the plurality of local geofences to the native application executing on the mobile user device;

receiving, via the network, from the native application executing on the mobile user device, a request for offers, the request comprising a geofence identifier associated with a geofence among the plurality of local geofences previously sent to the mobile user device, the geofence defining a perimeter corresponding to one or more retail stores, the request arising from a program different from the native mobile application executing on the mobile user device detecting traversal of the geofence by the mobile user device;

identifying, via a processor, one or more merchants based on an association of the one or more merchants with the geofence;

identifying, via a processor, a plurality of candidate offers associated with the one or more merchants;

selecting, via a processor, one or more offers based on ranking the plurality of candidate offers; and

sending, via the network, the one or more selected offers to the mobile user device.

9. The non-transitory, computer-readable memory of claim 8 , wherein identifying a plurality of candidate offers comprises:

querying a cache server, wherein the cache server maintains a cache of offers stored in random access memory of the cache server, the cache of offers having a subset of a larger set of offers, the larger set of offers including copies of at least some of the subset of offers, wherein the subset of offers are each associated with a hash key value calculated based on a respective parameter of the respective offer among the subset and paired with a respective addresses of the respective offer in the random access memory; and

identifying responsive offers with the cache server from among the subset of offers based on the query.

10. The non-transitory, computer-readable memory of claim 8 , wherein selecting the one or more offers comprises ranking the plurality of candidate offers based on an offers engine user profile associated with a user of an offers engine, the user profile comprising a history of user activity.

11. The non-transitory, computer-readable memory of claim 10 , wherein the user activity comprises previously selected offers, merchants, categories, or any combination thereof.

12. The non-transitory, computer-readable memory of claim 8 , wherein selecting one or more offers comprises ranking the plurality of candidate offers based on a seasonality factor, wherein the one or more candidate offers comprises an in-store coupon having an image of a machine-readable code that is scannable at a point of sale.

13. The non-transitory, computer-readable memory of claim 8 , wherein selecting one or more offers comprises:

retrieving from a user profile of a user associated with the mobile user device a set of offers previously selected by the user; and

ranking the plurality of candidate offers based on the retrieved offers.

14. A computer-implemented method for determining offers for a geofenced geographic area while conserving battery power and memory in a mobile user device, the method comprising:

obtaining, based on wireless signals received by the mobile user device, a geolocation of the mobile user device;

sending, via a wireless network, with a native application of the mobile user device, a request for geofences to be selected based on proximity to the geolocation;

receiving, with the native application of the mobile user device, a plurality of responsive geofences from a remote server and storing the plurality of geofences in memory of the mobile user device, the plurality of geofences being selected from a database of geofences accessible to the remote server;

receiving, with the native application of the mobile user device, an event generated by another program executing on the mobile user device, the event being generated by the other program in response to the other program determining that the mobile user device has traversed one of the previously received plurality of geofences;

in response to receiving the event, sending, via a network and from the native application of thee mobile user device, a request for offers to an offers engine, the request comprising a geofence identifier associated with the traversed geofence;

receiving, via a processor and the native application of the mobile user device, one or more offers from the offers engine, the one or more offers pertaining to one or more merchants associated with the traversed geofence; and

providing, via a processor and the native application of the mobile user device, a user-selectable notification in a notification area of a user interface of the mobile user device, the notification containing information about at, or an indication of, least some of the received offers.

15. The computer-implemented method of claim 14 , wherein the offers notification comprises an indicator of availability of the at least some of the received offers, and wherein the other program determines that the mobile user device has traversed one of the previously received plurality of geofences in response to the other program determining that the geolocation of the mobile user device has changed by greater than a threshold amount, that the mobile user device has detected a different wireless network, or that the mobile user device has detected a different cellular network tower.

16. The computer-implemented method of claim 14 , wherein the one or more offers comprise a ranked plurality of offers, and wherein the information about at least some of the received offers contains information about a first offer among the plurality of offers, the method comprising:

after providing the user-selectable notification, determining that a threshold duration of time has elapsed and, in response, providing another user-selectable notification containing information about a second offer among the plurality of offers, the second offer being ranked lower than the first offer in the ranked plurality of offers.

17. The computer-implemented method of claim 14 , wherein the notification comprises a first offer of the one or more offers and does not comprise at least some offers among the one or more offers, the method comprising:

providing a notification of the at least some offers by performing steps for providing a sequence of candidate offers based on flow criteria.

18. The computer-implemented method of claim 14 , comprising providing another user-selectable notification comprising a another offer after providing the offers notification, the another notification being provided based on offers flow criteria.

19. The computer-implemented method of claim 18 , wherein the offers flow criteria comprises a time period between providing notification of the first candidate offer and the second candidate offer, a maximum number of candidate offers in a time period, a score threshold for a candidate offer, or any combination thereof.

20. The computer-implemented method of claim 14 , comprising storing images and text for a plurality of offers in cached storage of the mobile user device upon traversal of the geofence and accessing at least some of the images and text in cache storage after the user enters a building with one or more merchants associated with at least some of the plurality of offers.

21. The computer-implemented method of claim 14 , wherein only a subset of information associated with the plurality of geofences by the remote server is stored on the mobile user device before traversal of the geofence to reduce memory usage of cached geofences.

22. A non-transitory, tangible, computer-readable memory storing instructions for determining offers for a geofenced geographic area that, when executed by one or more processors, cause the processors to effectuate operations comprising:

obtaining, based on wireless signals received by the mobile user device, a geolocation of the mobile user device;

sending, via a wireless network, with a native application of the mobile user device, a request for geofences to be selected based on proximity to the geolocation;

receiving, with the native application of the mobile user device, a plurality of responsive geofences from a remote server and storing the plurality of geofences in memory of the mobile user device, the plurality of geofences being selected from a database of geofences accessible to the remote server;

receiving, with the native application of the mobile user device, an event generated by another program executing on the mobile user device, the event being generated by the other program in response to the other program determining that the mobile user device has traversed one of the previously received plurality of geofences;

in response to receiving the event, sending, via a network and from the native application of the mobile user device, a request for offers to an offers engine, the request comprising a geofence identifier associated with the traversed geofence;

receiving, via a processor and the native application of the mobile user device, one or more offers from the offers engine, the one or more offers pertaining to one or more merchants associated with the traversed geofence; and

providing, via a processor and the native application of the mobile user device, a user-selectable notification in a notification area of a user interface of the mobile user device, the notification containing information about at, or an indication of, least some of the received offers.

23. The non-transitory, tangible, computer-readable memory of claim 22 , wherein the offers notification comprises an indicator of availability of the at least some of the received offers, and wherein the other program determines that the mobile user device has traversed one of the previously received plurality of geofences in response to the other program determining that the geolocation of the mobile user device has changed by greater than a threshold amount, that the mobile user device has detected a different wireless network, or that the mobile user device has detected a different cellular network tower.

24. The non-transitory, tangible, computer-readable memory of claim 22 , wherein the one or more offers comprise a ranked plurality of offers, and wherein the information about at least some of the received offers contains information about a first offer among the plurality of offers, the operations comprising:

after providing the user-selectable notification, determining that a threshold duration of time has elapsed and, in response, providing another user-selectable notification containing information about a second offer among the plurality of offers, the second offer being ranked lower than the first offer in the ranked plurality of offers.

25. The non-transitory, tangible, computer-readable memory of claim 22 , wherein the offer notification comprises a first offer of the one or more offers and does not comprise at least some offers among the one or more offers, the operations comprising:

providing a notification of the at least some offers by performing steps for providing a sequence of candidate offers based on flow criteria.

26. The non-transitory, tangible, computer-readable memory of claim 25 , the operations comprising: providing another notification comprising an candidate offer after providing the notification, the another notification being provided based on offers flow criteria.

27. The non-transitory, tangible, computer-readable memory of claim 26 , wherein the offers flow criteria comprises a time period between providing notification of the first candidate offer and the second candidate offer, a maximum number of candidate offers in a time period, a score threshold for a candidate offer, or any combination thereof.

28. The non-transitory, tangible, computer-readable memory of claim 22 , the operations comprising: storing images and text for a plurality of offers in cached storage of the mobile user device upon traversal of the geofence and accessing at least some of the images and text in cache storage after the user enters a building with one or more merchants associated with at least some of the plurality of offers.

29. The non-transitory, tangible, computer-readable memory of claim 22 , wherein only a subset of information associated with the plurality of geofences by the remote server is stored on the mobile user device before traversal of the geofence to reduce memory usage of cached geofences.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Jul 29, 2024
From: COMPUTERSHARE TRUST COMPANY, N.A., AS SUCCESSOR TO WELLS FARGO BANK, NATIONAL ASSOCIATION
To: NCH MARKETING SERVICES, INC.; VALASSIS COMMUNICATIONS, INC.; VALASSIS DIGITAL CORP.; VALASSIS DIRECT MAIL, INC.
Reel/Frame 068177/0738 →
SECURITY INTEREST Recorded Apr 8, 2021
From: EVERYDAY HEALTH, INC.; KEEPITSAFE, INC.; OOKLA, LLC; SPICEWORKS, INC.; THREATTRACK SECURITY, INC.; RETAILMENOT, INC.
To: MUFG UNION BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 056969/0755 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 42494/0822 Recorded Oct 28, 2020
From: CITIBANK, N.A.
To: RETAILMENOT, INC.; GIFTCARDZEN INC.; YSL VENTURES, INC.; CSB ACQUISITION CO., LLC; SMALLPONDS, LLC; RNOT, LLC; SPECTRAWIDE ACQUISITION CO., LLC; CLTD ACQUISITION CO., LLC; DEALS.COM, LLC
Reel/Frame 054241/0662 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 42684/0863 Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: RETAILMENOT, INC.; GIFTCARDZEN INC.; YSL VENTURES, INC.; CSB ACQUISITION CO., LLC; SMALLPONDS, LLC; RNOT, LLC; SPECTRAWIDE ACQUISITION CO., LLC; CLTD ACQUISITION CO., LLC; DEALS.COM, LLC
Reel/Frame 054243/0530 →
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS AGENT
To: RETAILMENOT, INC.
Reel/Frame 054195/0983 →
SECURITY INTEREST Recorded Jun 13, 2017
From: RETAILMENOT, INC.; GIFTCARDZEN INC.; YSL VENTURES, INC.; CSB ACQUISITION CO., LLC; SMALLPONDS, LLC; RNOT, LLC; SPECTRAWIDE ACQUISITION CO., LLC; CLTD ACQUISITION CO., LLC; DEALS.COM, LLC
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 042684/0863 →
SECURITY INTEREST Recorded Jun 1, 2017
From: RETAILMENOT, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS AGENT
Reel/Frame 042562/0481 →
SECURITY INTEREST Recorded May 24, 2017
From: RETAILMENOT, INC.; GIFTCARDZEN INC; YSL VENTURES, INC.; CSB ACQUISITION CO., LLC; SMALLPONDS, LLC; RNOT, LLC; SPECTRAWIDE ACQUISITION CO., LLC; CLTD ACQUISITION CO., LLC; DEALS.COM, LLC
To: CITIBANK, N.A.
Reel/Frame 042494/0822 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2014
From: FAITH, JOHN NEWMAN; ZILKHA, EITHAN; DUTY, CHRISTOPHER
To: RETAILMENOT, INC.
Reel/Frame 032090/0851 →