IP Library Granted Patent US 10,445,774
Granted Patent B2
US 10,445,774 · App. 15/072,616 · Granted Oct 15, 2019

Geotargeting of content by dynamically detecting geographically dense collections of mobile computing devices

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,445,774
App. No.
15/072,616
Granted
Oct 15, 2019
Kind
B2
Abstract

Provided is a process of selectively providing content to computing devices based on geographic proximity to dynamically detected events drawing crowds, the process including: obtaining, with one or more computers, data indicative of current geolocations of more than 5,000 mobile computing devices based on information reported by an application executing on the mobile computing devices; inferring, with one or more computers, that an event with a crowd is occurring based on the data indicative of the geolocations indicating an amount of people and a proximity of the people; selecting, with one or more computers, content in response to the inference; and sending, with one or more computers, the selected content to one or more user computing devices for presentation based on proximity between the one or more user computing devices and a geographic location of the event with the crowd.

Claims (122)

1. A method of selectively providing content to computing devices based on geographic proximity to dynamically detected events drawing crowds, the method comprising:

obtaining, with one or more computers, data indicative of current geolocations of more than 5,000 mobile computing devices based on information reported by an application executing on the mobile computing devices;

inferring, with one or more computers, that an event with a crowd is occurring based on the data indicative of the geolocations indicating an amount of people and a proximity of the people;

selecting, with one or more computers, content in response to the inference, wherein selecting content in response to the inference comprises:

querying a business listing to obtain a web address of a business having a geographic location of the event with the crowd;

crawling a website accessible through the web address to obtain one more web pages of the business;

detecting unstructured natural language text indicative of a calendar or event listing in one of the web pages;

extracting an event description from a data structure associated with the calendar or event listing; and

selecting content based on a keyword appearing in the event description, the keyword being associated with the content in advance of the event; and

sending, with one or more computers, the selected content to one or more user computing devices for presentation based on proximity between the one or more user computing devices and a geographic location of the event with the crowd.

2. The method of claim 1 , wherein inferring that an event with a crowd is occurring comprises clustering the geolocations into a plurality of clusters based on geolocation and time.

3. The method of claim 2 , wherein the clustering comprises:

for each of more than 50 geographic coordinates among the data indicative of current geolocations of more than 5,000 mobile computing devices:

determining that at least a first plurality of the geographic coordinates have more than a threshold amount of the geographic coordinates within a first threshold distance;

determining that a second plurality of the geographic coordinates, different from the first plurality of the geographic coordinates, are reachable from the first plurality of geographic coordinates, wherein the second plurality of the geographic coordinates are determined to be reachable, at least in part, by:

determining that each of the first plurality of geographic coordinates are within a second threshold distance of at least one of the other first plurality of geographic coordinates; and

determining that each of the second plurality of geographic coordinates is within a third threshold distance of at least one of the first plurality of geographic coordinates.

4. The method of claim 2 , comprising:

segmenting at least some of the data indicative of current geolocations of more than 5,000 mobile computing devices according to geographic areas into a first segment and a second segment,

wherein clustering the geolocations comprises determining whether geolocations in the first segment form clusters without determining whether geolocations in the second segment form clusters with geolocations in the first segment.

5. The method of claim 1 , wherein inferring that an event with a crowd is occurring comprises performing steps for clustering geolocations.

6. The method of claim 2 , comprising:

accessing past data indicative of past geolocations of at least some of the mobile computing devices, the past data including geolocations having time stamps more than one day in the past;

determining that given geolocations among the data indicative of current geolocations appear more than a threshold amount in the past data in association with a respective corresponding mobile computing device; and

in response to the determination, excluding the given geolocations from clustering the geolocations into a plurality of clusters based on geolocation and time.

7. The method of claim 6 , wherein determining that given geolocations among the data indicative of current geolocations appear more than a threshold amount in the past data in association with a respective corresponding mobile computing device comprises:

determining that at least one of the given geolocations for a given mobile computing device is within a threshold distance of a plurality of past geolocations of the given mobile computing device with greater than a threshold temporal frequency.

8. The method of claim 6 , wherein determining that given geolocations among the data indicative of current geolocations appear more than a threshold amount in the past data in association with a respective corresponding mobile computing device comprises:

performing steps for determining whether a current geolocation is a routine geolocation of a user.

9. The method of claim 2 , comprising:

for at least a given one of the plurality of clusters, determining a bounding geographic area of the given cluster at least in part by:

selecting a first geolocation among a plurality of geolocations constituting the given cluster;

selecting a second geolocation among the plurality of geolocations constituting the given cluster;

determining, based on an angle of a line extending between the first geolocation and the second geolocation, whether the line between the first geolocation and the second geolocation defines part of the bounding geographic area.

10. The method of claim 2 , comprising:

for at least some of the plurality of clusters, performing steps for determining a bounding geographic area.

11. The method of claim 1 , wherein inferring that an event with a crowd is occurring comprises:

obtaining, based on the data indicative of the geolocations, a measure of mobile-computing device geographic population density sensed by a given one of the mobile computing devices and a geolocation of the given mobile computing device.

12. The method of claim 11 , wherein the measure of mobile-computing device geographic population density is based on an inventory of wireless beacons in range of the given mobile computing device.

13. The method of claim 11 , wherein the measure of mobile-computing device geographic population density is determined based on an acoustic signal sensed by the given mobile computing device at least in part by:

determining features of the acoustic signal with a Fourier transform of the acoustic signal; and

classifying the acoustic signal as indicating crowd noise based on the features.

14. The method of claim 1 , wherein inferring that an event with a crowd is occurring comprises:

clustering geolocations among the data indicative of current geolocations of more than 5,000 mobile computing devices;

determining a bounding geographic area of a resulting cluster;

determining a density of geolocations of the resulting cluster based on the bounding geographic area; and

determining that the density is greater than a threshold density.

15. The method of claim 1 , wherein obtaining data indicative of current geolocations of more than 5,000 mobile computing devices based on information reported by an application executing on the mobile computing devices comprises:

receiving latitude and longitude coordinates determined based on wireless signals received by at least some of the mobile computing devices; and

determining that the latitude and longitude coordinates are fresher than a threshold age.

16. The method of claim 1 , wherein inferring that an event with a crowd is occurring based on the data indicative of the geolocations indicating an amount of people and a proximity of the people comprises:

accessing a record of past events with crowds that have occurred at a given location corresponding to the inferred event with the crowd

inferring that the event with the crowd is occurring based on the record indicating a pattern of crowd formation.

17. The method of claim 1 , comprising:

updating a profile of a business in a business listing based on attributes of the event.

18. The method of claim 1 , wherein:

the application executing on the mobile computing devices comprises a native mobile application operative to receive the sent content and present a notification after receiving the sent content;

the data indicative of current geolocations of more than 5,000 mobile computing devices comprise time-stamped latitude and longitude coordinates obtained by querying an operating system of respective mobile computing devices with the native mobile application in response to determining that the mobile device has moved by more than a threshold amount;

inferring that an event with a crowd is occurring comprises performing steps for inferring that an event with a crowd is occurring; and

selecting content in response to the inference comprises performing steps for selecting content for an event.

19. A system, comprising:

one or more processors; and

memory storing instructions that when executed by at least some of the processors effectuate operations comprising:

obtaining data indicative of current geolocations of more than 5,000 mobile computing devices based on information reported by an application executing on the mobile computing devices;

inferring that an event with a crowd is occurring based on the data indicative of the geolocations indicating an amount of people and a proximity of the people;

selecting content in response to the inference, wherein selecting content in response to the inference comprises:

querying a business listing to obtain a web address of a business having a geographic location of the event with the crowd;

crawling a website accessible through the web address to obtain one more web pages of the business;

detecting unstructured natural language text indicative of a calendar or event listing in one of the web pages;

extracting an event description from a data structure associated with the calendar or event listing; and

selecting content based on a keyword appearing in the event description, the keyword being associated with the content in advance of the event; and

sending the selected content to one or more user computing devices for presentation based on proximity between the one or more user computing devices and a geographic location of the event with the crowd.

20. The system of claim 19 , wherein inferring that an event with a crowd is occurring comprises clustering the geolocations into a plurality of clusters based on geolocation and time.

21. The system of claim 20 , wherein the clustering comprises:

for each of more than 50 geographic coordinates among the data indicative of current geolocations of more than 5,000 mobile computing devices:

determining that at least a first plurality of the geographic coordinates have more than a threshold amount of the geographic coordinates within a first threshold distance;

determining that a second plurality of the geographic coordinates, different from the first plurality of the geographic coordinates, are reachable from the first plurality of geographic coordinates, wherein the second plurality of the geographic coordinates are determined to be reachable, at least in part, by:

determining that each of the first plurality of geographic coordinates are within a second threshold distance of at least one of the other first plurality of geographic coordinates; and

determining that each of the second plurality of geographic coordinates is within a third threshold distance of at least one of the first plurality of geographic coordinates.

22. The system of claim 20 , comprising:

segmenting at least some of the data indicative of current geolocations of more than 5,000 mobile computing devices according to geographic areas into a first segment and a second segment,

wherein clustering the geolocations comprises determining whether geolocations in the first segment form clusters without determining whether geolocations in the second segment form clusters with geolocations in the first segment.

23. The system of claim 19 , wherein inferring that an event with a crowd is occurring comprises performing steps for clustering geolocations.

24. The system of claim 20 , the operations comprising:

accessing past data indicative of past geolocations of at least some of the mobile computing devices, the past data including geolocations having time stamps more than one day in the past;

determining that given geolocations among the data indicative of current geolocations appear more than a threshold amount in the past data in association with a respective corresponding mobile computing device; and

in response to the determination, excluding the given geolocations from clustering the geolocations into a plurality of clusters based on geolocation and time.

25. The system of claim 24 , wherein determining that given geolocations among the data indicative of current geolocations appear more than a threshold amount in the past data in association with a respective corresponding mobile computing device comprises:

determining that at least one of the given geolocations for a given mobile computing device is within a threshold distance of a plurality of past geolocations of the given mobile computing device with greater than a threshold temporal frequency.

26. The system of claim 24 , wherein determining that given geolocations among the data indicative of current geolocations appear more than a threshold amount in the past data in association with a respective corresponding mobile computing device comprises:

performing steps for determining whether a current geolocation is a routine geolocation of a user.

27. The system of claim 20 , the operations comprising:

for at least a given one of the plurality of clusters, determining a bounding geographic area of the given cluster at least in part by:

selecting a first geolocation among a plurality of geolocations constituting the given cluster;

selecting a second geolocation among the plurality of geolocations constituting the given cluster;

determining, based on an angle of a line extending between the first geolocation and the second geolocation, whether the line between the first geolocation and the second geolocation defines part of the bounding geographic area.

28. The system of claim 20 , the operations comprising:

for at least some of the plurality of clusters, performing steps for determining a bounding geographic area.

29. The system of claim 19 , wherein inferring that an event with a crowd is occurring comprises:

obtaining, based on the data indicative of the geolocations, a measure of mobile-computing device geographic population density sensed by a given one of the mobile computing devices and a geolocation of the given mobile computing device.

30. The system of claim 29 , wherein the measure of mobile-computing device geographic population density is based on an inventory of wireless beacons in range of the given mobile computing device.

31. The system of claim 29 , wherein the measure of mobile-computing device geographic population density is determined based on an acoustic signal sensed by the given mobile computing device at least in part by:

determining features of the acoustic signal with a Fourier transform of the acoustic signal; and

classifying the acoustic signal as indicating crowd noise based on the features.

32. The system of claim 19 , wherein inferring that an event with a crowd is occurring comprises:

clustering geolocations among the data indicative of current geolocations of more than 5,000 mobile computing devices;

determining a bounding geographic area of a resulting cluster;

determining a density of geolocations of the resulting cluster based on the bounding geographic area; and

determining that the density is greater than a threshold density.

33. The system of claim 19 , wherein obtaining data indicative of current geolocations of more than 5,000 mobile computing devices based on information reported by an application executing on the mobile computing devices comprises:

receiving latitude and longitude coordinates determined based on wireless signals received by at least some of the mobile computing devices; and

determining that the latitude and longitude coordinates are fresher than a threshold age.

34. The system of claim 19 , wherein inferring that an event with a crowd is occurring based on the data indicative of the geolocations indicating an amount of people and a proximity of the people comprises:

accessing a record of past events with crowds that have occurred at a given location corresponding to the inferred event with the crowd

inferring that the event with the crowd is occurring based on the record indicating a pattern of crowd formation.

35. The system of claim 19 , the operations comprising:

updating a profile of a business in a business listing based on attributes of the event.

36. The system of claim 19 , wherein:

the application executing on the mobile computing devices comprises a native mobile application operative to receive the sent content and present a notification after receiving the sent content;

the data indicative of current geolocations of more than 5,000 mobile computing devices comprise time-stamped latitude and longitude coordinates obtained by querying an operating system of respective mobile computing devices with the native mobile application in response to determining that the mobile device has moved by more than a threshold amount;

inferring that an event with a crowd is occurring comprises performing steps for inferring that an event with a crowd is occurring; and

selecting content in response to the inference comprises performing steps for selecting content for an event.

Assignments (15)
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 Oct 28, 2020
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS AGENT
To: RETAILMENOT, INC.
Reel/Frame 054195/0983 →
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 43790/0953 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 054242/0951 →
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 AT REEL/FRAME 43791/0085 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 054246/0727 →
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS AGENT
To: RETAILMENOT, INC.
Reel/Frame 054195/0719 →
SECURITY INTEREST Recorded Sep 8, 2017
From: HARLAND CLARKE CORP.; SCANTRON CORPORATION; CHECKS IN THE MAIL, INC.; NCP SOLUTIONS, LLC; VALASSIS COMMUNICATIONS, INC.; VALASSIS DIRECT MAIL, INC.; VALASSIS IN-STORE SOLUTIONS, INC.; MAILCOUPS, INC.; NCH MARKETING SERVICES, INC.; VALASSIS DIGITAL, INC.; 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 043790/0953 →
SECURITY INTEREST Recorded Sep 8, 2017
From: HARLAND CLARKE CORP.; SCANTRON CORPORATION; CHECKS IN THE MAIL, INC.; NCP SOLUTIONS, LLC; VALASSIS COMMUNICATIONS, INC.; VALASSIS DIRECT MAIL, INC.; VALASSIS IN-STORE SOLUTIONS, CIN.; MAILCOUPS, INC.; NCH MARKETING SERVICES, INC.; VALASSIS DIGITAL, INC.; 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 043791/0085 →
SECURITY INTEREST Recorded Sep 8, 2017
From: HARLAND CLARKE CORP.; SCANTRON CORPORATION; CHECKS IN THE MAIL, INC.; NCP SOLUTIONS, LLC; VALASSIS COMMUNICATIONS, INC.; VALASSIS DIRECT MAIL, INC.; VALASSIS IN-STORE SOLUTIONS, INC.; MAILCOUPS, INC.; NCH MARKETING SERVICES, INC.; VALASSIS DIGITAL, INC.; RETAILMENOT, INC.; GIFTCARDZEN INC.; YSL VENTURES, INC.; CSB ACQUISITION CO., LLC; SMALLPONDS, LLC; RNOT, LLC; SPECTRAWIDE ACQUISITION CO., LLC; CLTD ACQUISITION CO., LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 043791/0187 →
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 Aug 25, 2016
From: REESE, DAVID JOHN; TABERNER-MILLER, ANNETTE; ADAM, LIPPHEI; BELL, RACHEL RENEE; SHIFFERT, NICHOLAS JAMES
To: RETAILMENOT, INC.
Reel/Frame 039538/0459 →
Cited By (2)
US 12,469,044 US 12,705,595