US20170134451A1 - Personalized content delivery using a dynamic network - Google Patents
Personalized content delivery using a dynamic network Download PDFInfo
- Publication number
- US20170134451A1 US20170134451A1 US14/933,700 US201514933700A US2017134451A1 US 20170134451 A1 US20170134451 A1 US 20170134451A1 US 201514933700 A US201514933700 A US 201514933700A US 2017134451 A1 US2017134451 A1 US 2017134451A1
- Authority
- US
- United States
- Prior art keywords
- devices
- mobile
- mobile devices
- location
- location information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000001514 detection method Methods 0.000 claims description 48
- 238000000034 method Methods 0.000 claims description 42
- 238000004590 computer program Methods 0.000 claims description 9
- 230000015654 memory Effects 0.000 description 25
- 238000012545 processing Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000002596 correlated effect Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000001364 causal effect Effects 0.000 description 2
- 230000000875 corresponding effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002747 voluntary effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/4061—Push-to services, e.g. push-to-talk or push-to-video
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/02—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/02—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
- G01S5/0252—Radio frequency fingerprinting
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/02—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
- G01S5/0284—Relative positioning
- G01S5/0289—Relative positioning of multiple transceivers, e.g. in ad hoc networks
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/02—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
- G01S5/0295—Proximity-based methods, e.g. position inferred from reception of particular signals
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/02—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
- G01S5/14—Determining absolute distances from a plurality of spaced points of known location
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0224—Discounts or incentives, e.g. coupons or rebates based on user history
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B7/00—Radio transmission systems, i.e. using radiation field
- H04B7/14—Relay systems
- H04B7/15—Active relay systems
- H04B7/155—Ground-based stations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B7/00—Radio transmission systems, i.e. using radiation field
- H04B7/14—Relay systems
- H04B7/15—Active relay systems
- H04B7/155—Ground-based stations
- H04B7/15507—Relay station based processing for cell extension or control of coverage area
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/023—Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds
-
- H04W4/028—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/029—Location-based management or tracking services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/005—Discovery of network devices, e.g. terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
- H04W88/06—Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S2205/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S2205/01—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations specially adapted for specific applications
- G01S2205/02—Indoor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
- H04W88/04—Terminal devices adapted for relaying to or from another terminal or user
Definitions
- This disclosure relates to delivering personalized content using a dynamic network and, more particularly, to delivering personalized content using a dynamic network formed of mobile, location aware devices.
- the ability to provide useful and timely information to users is contingent upon a variety of factors. These factors may include, among other things, obtaining accurate location information for users. Often, the ability to obtain accurate location information is dependent upon users' voluntary participation in, and/or registration with, a service. Within an indoor environment, obtaining accurate location information may be even more challenging.
- beacons estimate users' locations by detecting mobile devices.
- the beacons may share location data with a backend system that may then push content to the users' mobile devices.
- Users typically opt in to the service by installing an application on their mobile devices to facilitate communication with the backend system.
- a method may include, using a processor, continually receiving, from each of a plurality of mobile devices, a location of the mobile device and a list specifying at least one RF device detected by the mobile device while at the location, estimating, using the processor, location information for the RF devices according to the locations and the lists, and determining, using the processor, that a first RF device from the lists is proximate to a stationary presentation device.
- the method may also include, responsive to the determining and using the processor, providing content to the stationary presentation device. The content may be selected, at least in part, according to the location information of the first RF device.
- a system may include a processor programmed to initiate executable operations.
- the executable operations may include continually receiving, from each of a plurality of mobile devices, a location of the mobile device and a list specifying at least one RF device detected by the mobile device while at the location, estimating location information for the RF devices according to the locations and the lists, and determining that a first RF device from the lists is proximate to a stationary presentation device.
- the executable operations may also include, responsive to the determining, providing content to the stationary presentation device. The content may be selected, at least in part, according to the location information of the first RF device.
- a computer program product may include a computer readable storage medium having program code stored thereon.
- the program code may be executable by a processor to perform a method.
- the method may include, using the processor, continually receiving, from each of a plurality of mobile devices, a location of the mobile device and a list specifying at least one RF device detected by the mobile device while at the location, estimating, using the processor, location information for the RF devices according to the locations and the lists, and determining, using the processor, that a first RF device from the lists is proximate to a stationary presentation device.
- the method may also include, responsive to the determining and using the processor, providing content to the stationary presentation device, wherein the content is selected, at least in part, according to the location information of the first RF device.
- FIG. 1 is a diagram illustrating an exemplary network computing system.
- FIG. 2 illustrates an example of a detectable range of a mobile device.
- FIG. 3 illustrates an example of overlapping detectable ranges of mobile devices.
- FIG. 4 illustrates another example of overlapping detectable ranges of mobile devices.
- FIG. 5 is a flow chart illustrating an exemplary method of delivering content using a dynamic network.
- FIG. 6 is a flow chart illustrating an exemplary method of estimating location of an RF device.
- FIG. 7 is a block diagram illustrating an example of an architecture for a data processing system.
- FIG. 8 is a block diagram illustrating an example of an architecture for a mobile device.
- a network of location aware devices may be formed dynamically.
- the location aware devices may be mobile devices. As the mobile devices are carried about by users, the mobile devices may detect the presence of one or more other radio frequency (RF) devices.
- the mobile devices being location aware, may report information such as the current location of the mobile devices and a list of any RF devices detected by the mobile device at the location.
- a backend system may receive information from participating mobile devices. Using the received locations and associated lists from the mobile devices, the system may estimate location information for the detected RF devices.
- the system may determine when one or more of the RF devices is located proximate to a presentation device.
- the presentation device may be stationary. Responsive to determining that an RF device is located proximate to the presentation device, the system may select content and send the content to the presentation device. The presentation device may render the content, thereby making the content available to the user of the detect RF device determined to be proximate to the presentation device.
- the system may select the content based upon the location information estimated for the RF device determined to be proximate to the presentation device.
- the selected content is personalized to the particular RF devices proximate to the presentation device.
- the estimated location information for the RF device proximate to the presentation device may be cross-referenced with a map and/or points of interest to select the content.
- RF devices may be detected at various locations, the users of the RF devices may remain anonymous. The RF devices and/or users thereof, need not register or choose to participate in the service and/or system in order to receive personalized content. In addition, while the mobile devices may be location aware, the RF devices that are detected may not be location aware.
- FIG. 1 is a diagram illustrating an exemplary network computing system (system) 100 .
- System 100 may include a plurality of mobile devices collectively referred to as mobile devices 105 , a presentation device 110 , and a backend system 115 .
- the plurality of mobile devices 105 may include mobile devices 105 - 1 , 105 - 2 , 105 - 3 , 105 - 4 , 105 - 5 , 105 - 6 , and 105 - 7 .
- Mobile devices 105 may communicate with backend system 115 through a network 120 .
- backend system 115 may communicate with presentation device 110 through network 120 .
- Network 120 is the medium used to provide communication links between various devices and data processing systems connected together within system 100 .
- Network 120 may include connections, such as wire, wireless communication links, or fiber optic cables.
- Network 120 may be implemented as, or include, any of a variety of different communication technologies such as a Wide Area Network (WAN), a Local Area Network (LAN), a wireless network (whether LAN or WAN), a mobile network, a Virtual Private Network (VPN), the Internet, the Public Switched Telephone Network (PSTN), or the like.
- WAN Wide Area Network
- LAN Local Area Network
- VPN Virtual Private Network
- PSTN Public Switched Telephone Network
- Mobile devices 105 may be location aware devices.
- mobile devices 105 may be any of a variety of communication devices that include a short-range wireless network adapter (e.g., a receiver and/or transceiver) that is compliant with a short-range wireless interconnection and/or communication protocol.
- mobile devices 105 may include a Bluetooth® Low Energy compliant wireless network adapter.
- mobile devices 105 are operable to detect other RF devices that are also configured for short-range wireless communication.
- Mobile devices 105 may also include a wireless network adapter that is operable to communicate over longer distances.
- mobile devices 105 may include a mobile telephony transceiver, a Wi-Fi® enabled transceiver (e.g., an 802.11x compliant transceiver), or the like.
- mobile devices 105 may include mobile phones, tablet computers, portable and/or handheld computers, portable and/or handheld communication devices, and the like.
- mobile devices 105 may be distributed throughout an indoor environment.
- mobile devices 105 are positioned throughout a structure 125 .
- Structure 125 may be a building, whether for personal or business use.
- structure 125 may be a business establishment, e.g., an office, a personal dwelling, a shopping mall, or the like.
- Structure 125 is provided for purposes of illustration only and is not intended as a limitation of the inventive arrangements disclosed herein.
- structure 125 may include multiple floors, fewer rooms, more rooms and/or subdivided spaces, or the like.
- mobile devices 105 may be location aware.
- location aware means that the device is able to determine a current location of the device.
- Mobile devices 105 may be location aware using any of a variety of different location determination mechanisms and/or techniques.
- mobile devices 105 may include Global Positioning System (GPS) receivers.
- GPS Global Positioning System
- mobile devices 105 may use detected wireless signals and/or access points to determine location. The particular manner in which mobile devices 105 determine location is not intended as a limitation of the embodiments described within this disclosure.
- the location may be specified as a latitude and longitude and optionally include an altitude.
- the location may be determined as a relative location within an indoor environment using detected access points or other known techniques for location determination.
- the location of mobile devices 105 may also be cross-referenced with a map of the indoor (or outdoor) environment and/or structure 125 , points of interest within structure 125 such as stores, entrances and/or exits, restrooms, presentation device 110 , and the like.
- mobile device 105 - 6 may determine its location to be within store 130 ; mobile device 105 - 2 may determine its location to be within store 132 ; mobile device 105 - 1 may determine its location to be within store 134 , and mobile device 105 - 5 may determine its location to be within store 136 .
- mobile devices 150 - 3 , 105 - 4 , and 105 - 7 may determine their respective locations to be within hallway 138 and further determine other proximate points of interest such as store fronts.
- proximate means within a predetermined distance of a reference location.
- the reference location may be a point of interest such as a store, presentation device 110 , or one or more of mobile devices 105 .
- proximate mean that the RF device is located within the detectable region of a mobile device 105 .
- the term “participating device” refers to a device of a user that has opted into using a particular service. Opting into to using a particular service may include registering for the service and/or installing an application that, when executed by the device, causes the device to perform operations as described herein.
- Mobile devices 105 are examples of participating devices.
- RF device 140 is not a participating device. In this regard, RF device 140 may be identified only by the unique identifier broadcast by RF device 140 . The user of RF device 140 , for example, may remain anonymous.
- Presentation device 110 is configured to render content. Further, presentation device may be a stationary device intended to remain at a fixed or constant location for operation. Presentation device 110 may render content visually, audibly, and/or both visually and audibly. For example, presentation device 110 may include a display that may be used to visually present content, a speaker or other transducer to audibly play content, etc. Exemplary implementations of presentation device 110 may include, but are not limited to, a digital sign, a kiosk, or the like.
- presentation device 110 further may be implemented as a data processing system that includes a processor and a network adapter so that presentation device 110 may be coupled with other devices.
- presentation device 110 may include a short-range wireless network adapter thereby allowing presentation device 110 to detect other RF devices.
- Backend system 115 may be implemented as a data processing system.
- backend system 115 may be implemented as a computer system such as a server or a plurality of interconnected computer systems.
- Backend system 115 may receive device detection data 160 from mobile devices 105 , determine location information for one or more detected RF devices such as RF device 140 , and provide content 145 to presentation device 110 as described herein.
- mobile devices 105 may be carried about by users within structure 125 .
- Mobile devices 105 being equipped with short-range wireless network adapters, may be configured to detect RF devices that are within a detectable range.
- mobile devices 105 - 3 , 105 - 4 , 105 - 6 , and 105 - 7 may detect RF device 140 as RF device 140 is carried along path 165 .
- Each of mobile devices 105 - 3 , 105 - 4 , 105 - 6 , and 105 - 7 may detect RF device 140 and determine a unique identifier for RF device 140 .
- mobile devices 105 - 3 , 105 - 4 , 105 - 6 , and/or 105 - 7 need not complete a pairing operation with RF device 140 .
- mobile devices 105 - 3 , 105 - 4 , 105 - 6 , and 105 - 7 detect RF device 140 without being paired.
- Mobile devices 105 may send device detection data 160 to backend system 115 .
- Mobile devices 105 may send device detection data 160 on a continuing basis.
- Mobile devices 105 may send device detection data 160 from time-to-time, periodically, and/or responsive to a particular event.
- mobile device 105 - 3 may be located in the particular location illustrated in FIG. 1 .
- Mobile device 105 - 3 may detect RF device 140 and/or one or more other RF devices while at the location.
- Mobile device 105 - 3 may send device detection data 160 to backend system 115 .
- Device detection data may include a location of the mobile device (i.e., mobile device 105 - 3 in this example) and a list of the RF devices detected while at the specified location.
- the list of RF devices may optionally include a time stamp of when each of the RF devices was detected.
- the list of RF devices may also include a signal strength indicator for each of the RF devices on the list.
- mobile devices 105 also may send device detection data 160 .
- mobile device 105 - 4 may send device detection data 160 to backend system 115 indicating that RF device 140 was detected.
- Mobile device 105 - 6 may send device detection data 160 indicating that RF device 140 was detected.
- Mobile device 105 - 7 may send device detection data 160 indicating that RF device 140 was detected.
- Backend system 115 may receive device detection data 160 from mobile devices 105 .
- device detection data 160 received from each of mobile devices 105 - 3 , 105 - 4 , 105 - 6 , and 105 - 7 may specify the location of each respective mobile device 105 and a list of the RF devices detected by the mobile device at that location.
- device detection data 160 may optionally include time information and/or signal strength indicators for the detected RF devices.
- device detection data 160 may include multiple data sets from same mobile devices 105 .
- mobile device 105 - 6 may send multiple sets of device detection data, e.g., a set of device detection data once per minute or at some other interval.
- backend system 115 may determine that RF device 140 was detected by mobile devices 105 - 3 , 105 - 4 , 105 - 6 , and 105 - 7 in this example with each of mobile devices 105 - 3 , 105 - 4 , 105 - 6 , and 105 - 7 being located at the location shown in FIG. 1 . Further, backend system 115 may estimate that RF device 140 has traversed path 165 using locations of mobile devices 105 - 3 , 105 - 4 , 105 - 6 , and 105 - 7 and timestamps from respective ones of mobile devices 105 . Backend system 115 , for example, ay also determine which stores were passed by RF device 140 while traversing path 165 and that RF device 140 entered store 130 .
- backend system 115 may estimate the distance of RF device 140 from the each of mobile devices 105 - 3 , 105 - 4 , 105 - 6 , and 105 - 7 when detected. For example, by virtue of the fact that mobile device 105 - 3 detected RF device 140 , backend system 115 may estimate that RF device 140 was located within a detectable range of mobile device 105 - 3 . Using the signal strength indicator, backend system 115 may determine a more refined or accurate estimate of the distance of RF device 140 from mobile device 105 - 3 .
- backend system 115 may determine that RF device 140 is proximate to presentation device 110 using the estimated location information determined by processing device detection data 160 received from mobile devices 105 .
- presentation device 110 may also send device detection data.
- backend system 115 may determine that RF device 140 is proximate to presentation device 110 based, at least in part, upon device detection data specifying RF device 140 as received from presentation device 110 .
- FIGS. 2-4 are diagrams illustrating the detection of RF devices using mobile devices.
- FIGS. 2-4 illustrate how accuracy in estimating the location of RF devices may be increased using the signal strength indicator of the detected RF device and/or the detection of an RF device by more than one mobile device.
- FIG. 2 illustrates an example of a detectable range of a mobile device. More particularly, FIG. 2 illustrates mobile device 105 - 1 having a detectable range of 210 .
- the term “detectable range” means the area extending out from a mobile device within which another RF device may be detected using a short-range wireless network adapter.
- a short-range wireless network adapter is a Bluetooth receiver such as a BLE network adapter.
- mobile device 105 - 1 may detect another RF device such as RF device 140 when located within detectable range 210 .
- mobile device 105 - 1 may detect RF device 140 and determine a unique identifier for RF device 140 that may be broadcast by RF device 140 without actually pairing with RF device 140 .
- mobile device 105 - 1 may log the signal strength of RF device 140 . The signal strength may be used to calculate a likely distance from mobile device 105 - 1 that RF device 140 is located.
- backend system 115 may use the signal strength indicator to calculate that RF device 140 may be located a distance (e.g., a radius) from mobile device 105 - 1 represented by dashed line 250 . As such, backend system 115 may estimate that RF device 140 may be located anywhere along dashed line 250 .
- FIG. 3 illustrates an example of overlapping detectable ranges of mobile devices. More particularly, FIG. 3 illustrates mobile device 105 - 1 having detectable range of 210 and mobile device 105 - 2 having a detectable range of 215 .
- Mobile device 105 - 1 may detect RF device 140 when located within detectable range 210 .
- Mobile device 105 - 2 may detect RF device 140 when located within detectable range 215 .
- the area in which RF device 140 may be estimated to be located may be within the intersection of detectable range 210 and detectable range 215 .
- RF device 140 and mobile devices 105 - 1 and 105 - 2 may be indoors and carried by users while walking, two detection times within 1, 2, 3, 4, 5, or up to approximately 10 seconds may be considered concurrent.
- each of mobile devices 105 - 1 and 105 - 2 may log the signal strength received for RF device 140 .
- the signal strength may be used to calculate an estimated distance from each of mobile devices 105 - 1 and 105 - 2 that RF device 140 is located.
- RF device 140 may be estimated to be anywhere along dashed line 250 with respect to mobile device 105 - 1 .
- RF device 140 may be estimated to be anywhere along line 255 with respect to mobile device 105 - 2 . Since mobile device 105 - 2 and 105 - 2 detected RF device 140 concurrently, the estimated location of RF device 140 may be limited to the intersection of line 250 and 255 , thereby providing increased accuracy in the estimated location of RF device 140 .
- FIG. 4 illustrates another example of overlapping detectable ranges of mobile devices. More particularly, FIG. 4 illustrates mobile device 105 - 1 having detectable range of 210 , mobile device 105 - 2 having detectable range of 215 , and mobile device 105 - 3 having a detectable range of 220 .
- Mobile device 105 - 1 may detect RF device 140 when located within detectable range 210 .
- Mobile device 105 - 2 may detect RF device 140 when located within detectable range 215 .
- Mobile device 105 - 3 may detect RF device 140 when located within detectable range 220 .
- each of mobile devices 105 - 1 , 105 - 2 , and 105 - 3 detect RF device 140 concurrently (e.g., at a same time or within a particular amount of time of one another)
- the area in which RF device 140 may be estimated to be located may be within the intersection of detectable range 210 , detectable range 215 , and detectable range 220 .
- the times that mobile devices 105 - 1 , 105 - 2 , and 105 - 3 detect RF device 140 need not be exactly the same times.
- each of mobile devices 105 - 1 , 105 - 2 , and 105 - 3 may log the signal strength received for RF device 140 .
- the signal strength may be used to calculate an estimate of the distance from each of mobile devices 105 - 1 , 105 - 2 , and 105 - 3 that RF device 140 is located to further refine the estimated location of RF device 140 .
- the error in the estimated location of RF device 140 declines as the number of mobile devices 105 that detect RF device 140 concurrently or at least within a predetermined amount of time of one another increases.
- the larger the number of participating devices e.g., mobile devices 105
- each beacon needs to be strategically located to detect passing RF devices.
- the coverage area (e.g., detectable area) of the stationary beacons is static.
- any gaps in detectable area between stationary beacons remains unless additional beacons are added to the system to cover the gaps.
- placement is not an issue.
- users, on average, tend to visit popular areas and/or points of interest a larger number of participating devices will tend to congregate or travel through these more desirable areas.
- coverage within these more desirable areas will have fewer gaps and provide higher accuracy in location estimation of non-participating devices.
- the system is able to dynamically cover areas of increased user interest and/or popularity without having to reposition and/or redeploy stationary beacons or guess at what may be popular for purposes of stationary beacon placement.
- FIG. 5 is a flow chart illustrating an exemplary method 500 of delivering personalized content using a dynamic network.
- Method 500 may be performed using a backend system as described with reference to FIG. 1 .
- Method 500 may begin in a state where a plurality of mobile devices within an area.
- the area may be an indoor area or an outdoor area.
- the mobile devices may be participating devices and, as such, configured to detect RF devices and send device detection data to a backend system continually as described herein.
- the backend system may receive device detection data from the plurality of mobile devices.
- the backend system may receive the device detection data continually from the mobile devices.
- the mobile devices may be configured to send device detection data periodically, from time-to-time, or responsive to a particular event. Examples of events that may cause a mobile device to send device detection data may include, but are not limited to, entering a particular store, leaving a particular store, first detecting a previously undetected RF device, or no longer detecting a previously detected RF device.
- the mobile devices may be configured to send device detection data on a continual basis when located within a particular area such as an indoor structure or when located within a predetermined geographic area.
- the backend system may calculate location information for the RF devices.
- the backend system may estimate the location for one or more RF devices.
- the backend system may estimate the location for those RF devices detected within received device detection data.
- the backend system may optionally determine a path for the selected device.
- the path may be a traveled path for the RF device.
- the path may be a set of estimated locations for the selected RF device ordered in time for a span of time such as an hour, several hours, a day, or the like.
- the path may include any points of interest along the path or within a predetermined distance of estimated locations forming the path.
- the backend system further may determine the amount of time that the RF devices were detected at various locations. For example, an RF device may be detected by a same or different mobile devices for an extended period of time such as 20-30 minutes which may indicate a higher than normal level of interest in a point of interested at the location and/or along a path.
- the backend system may optionally detect groups of two or more RF devices that are related to each other.
- RF devices determined to be related or otherwise associated with one another may be RF devices that are detected together.
- RF devices determined to be related, as described herein, may be referred to as “companion RF devices.”
- the backend system may determine that two or more RF devices are companion devices by determining that the RF devices are at a same estimated location concurrently, travel a same path or portion of a path concurrently, etc., using historical location information. In such cases, the two or more RF devices may belong to users that are friends, colleagues, family members, or the like.
- estimated location information may include one or more estimated locations of RF devices.
- Location information may also include one or more prior estimated locations (e.g., historical location data), paths estimated for RF devices using prior estimated locations and timestamps, etc.
- the prior estimated locations may be for the same day, prior days, and/or the like.
- Location information may also include amounts of time spent by RF devices at particular estimated locations. Further, location information may include map and/or point of interest data cross-referenced with estimated locations.
- the backend system may determine whether any of the RF devices are proximate to the stationary presentation device. For example, since the backend system may continually receive device detection data from the mobile devices, the backend system may also determine whether one or more of the RF devices is within a predetermined distance of the presentation device. The location of the presentation device may be known or preprogrammed within the backend system.
- the backend system may determine that an RF device is proximate to the presentation device responsive to receiving a notification from the presentation device.
- the presentation device may include a short-range wireless network adapter and, responsive to detecting an RF device, may send device detection data specifying the unique identifier of the detected RF device to the backend system.
- the backend system may receive device detection data from the presentation device indicating the detected RF device.
- method 500 may loop back to block 505 and continue processing. If the backend system determines that an RF device is proximate to the presentation device, method 500 may continue to block 520 .
- the RF device determined to be proximate to the presentation device is referred to as the “selected RF device.”
- the backend system may retrieve content correlated with the selected RF device.
- the content that is retrieved is personalized, at least with respect to the selected RF device.
- the identity of the user of the selected RF device may remain unknown to the backend system.
- anonymity of the user of the selected RF device is maintained while the backend system is able to deliver content that may be meaningful to the user of the selected RF based upon location information for the selected RF device.
- the backend system may determine that the selected RF device has traveled into store 130 . In that case, the backend system may select content for store 130 .
- the backend system may display an advertisement for store 130 , information about a product carried by store 130 , or the like.
- the content retrieved further may be correlated with the selected RF device in that the retrieved content is also related to one or more locations visited by an RF device related to the selected RF device as determined in block 520 .
- the retrieved content may be content for a point of interest visited by both the selected RF device and the related RF device.
- the retrieved content may be content for a point of interested visited concurrently by both the selected RF device and the related RF device.
- backend system may only present content correlated with the selected RF device and the related RF device responsive to determining that both the selected RF device and the related RF device are proximate to the presentation device.
- the backend system may provide the content to the presentation device.
- the backend system may retrieve an image, video, audio, and/or audiovisual material and provide the content to the presentation device.
- the presentation device may render the content whether by visually displaying, audibly playing, and/or a combination of visually displaying and audibly playing the content.
- the content may be retrieved responsive to the detection of the selected RF device and provided to the presentation device in real time for consumption by a user of the selected RF device.
- the presentation device may render the received content for a predetermined amount of time, until the selected RF device is no longer within a predetermined distance of the presentation device, until different content is received responsive to detecting that another RF device is proximate to the presentation device, or the like.
- method 500 may loop back to block 505 to continue processing.
- Personalized content for the selected RF device may be delivered to the presentation device responsive to determining that the selected RF device is proximate to the presentation device without the user of the selected RF device being aware that the content being presented is personalized or directed to that user.
- FIG. 6 is a flow chart illustrating an exemplary method 600 of estimating locations of detected RF devices.
- Method 600 may be performed to implement block 510 of FIG. 5 .
- the backend system may maintain an RF device data structure that stores device detection data.
- Exemplary data structures may include a database, a table, hierarchically formatted data such as an eXtensible Markup Language (XML) document, a text file such as a delimited file, or the like.
- XML eXtensible Markup Language
- the backend system may update the RF device data structure.
- the backend system may maintain a database specifying each RF device identified within received device detection data.
- the backend system may extract the data for each RF device.
- the backend system may extract data items such as the unique identifier of the RF device, the location of the mobile device that detected the RF device, optionally signal strength, and a timestamp indicating when the RF device was detected by the mobile device.
- the data items collectively referred to as an entry, may be stored within the RF device data structure in a memory element. This allows the entries to be easily sorted according to RF device, timestamp, or any other data item of the entry.
- the backend system may analyze the entries for the RF devices. The analysis may be performed across mobile devices. For example, the entries for a given RF device may include entries obtained from multiple, different mobile devices. The entries indicate whether the RF device was detected simultaneously or concurrently by two or more different mobile devices, whether the RF device was detected over different days, and the like.
- the backend system may determine, or calculate, an estimated location for each of the RF devices. For example, for each RF device specified in the most recently received device detection data, the backend system may estimate a location for the RF device.
- the backend system may calculate the location of the RF device to be the location of the particular mobile device that detected the RF device. In another example, where signal strength information is received, the backend system may adjust the estimate to be the location of the mobile device that detected the RF device with an offset determined according to the detected signal strength.
- the backend system may estimate that the location of an RF device is within an intersection of two or more detectable ranges of two or more mobile devices that detect the RF device concurrently.
- the estimated location may be center of the intersection or overlapped detectable ranges.
- the estimate may be further refined by accounting for the signal strength detected by each of the plurality of mobile devices that detected the RF device.
- the backend system may store the estimated location for each of the RF devices for which an estimated location is calculated within the data structure.
- the backend system may combine multiple entries used to determine one estimate. For example, the backend system may combine entries of concurrent detections of a same RF device.
- FIG. 7 is an exemplary architecture 700 for a data processing system.
- Architecture 700 may be used to implement any of a variety of systems and/or devices that include a processor and memory and that are capable of performing the operations described within this disclosure.
- the particular device implemented using architecture 700 may include fewer components or more components.
- the particular operating system and/or application(s) included may vary.
- architecture 700 includes at least one processor, e.g., a central processing unit (CPU), 705 coupled to memory elements 710 through a system bus 715 or other suitable circuitry.
- Architecture 700 stores program code within memory elements 710 .
- Processor 705 executes the program code accessed from memory elements 710 via system bus 715 .
- Memory elements 710 include one or more physical memory devices such as, for example, a local memory 720 and one or more bulk storage devices 725 .
- Local memory 720 refers to random access memory (RAM) or other non-persistent memory device(s) generally used during actual execution of the program code.
- Bulk storage device 725 may be implemented as a hard disk drive (HDD), solid state drive (SSD), or other persistent data storage device.
- Architecture 700 may also include one or more cache memories (not shown) that provide temporary storage of at least some program code in order to reduce the number of times program code must be retrieved from bulk storage device 725 during execution.
- I/O devices such as a keyboard 730 , a display device 735 , and a pointing device 740 may optionally be coupled to architecture 700 .
- I/O devices may be combined as in the case where a touchscreen is used as display device 735 .
- display device 735 may also implement keyboard 730 and pointing device 740 .
- the I/O devices may be coupled to architecture 700 either directly or through intervening I/O controllers.
- One or more network adapters 745 may also be coupled to architecture 700 to enable architecture 700 to become coupled to other systems, computer systems, remote printers, and/or remote storage devices through intervening private or public networks.
- Modems, cable modems, Ethernet cards, wireless transceivers, and wireless receivers are examples of different types of network adapter 745 that may be used with architecture 700 .
- the specific type of network adapter, or network adapters as the case may be, will vary.
- memory elements 710 store an operating system 750 and one or more applications 755 .
- operating system 750 and application(s) 755 being implemented in the form of executable program code, are executed by architecture 700 .
- operating system 750 and application(s) 755 may be considered an integrated part of architecture 700 .
- Operating system 750 , application(s) 755 , and any data items used, generated, and/or operated upon by architecture 700 are functional data structures that impart functionality when employed as part of a system implemented using architecture 700 .
- architecture 700 may be used to implement backend system 115 .
- application(s) 755 may program processor 705 to perform the various operations of backend system 115 described herein.
- architecture 700 may be used to implement stationary presentation device 110 .
- application(s) 755 may be used to receive content and render content. The content may be rendered and/or cycled through one or more different items for the duration that the selected RF device is determined to be proximate to stationary presentation device 110 .
- FIG. 8 is a block diagram illustrating an exemplary architecture 800 for a mobile device.
- Architecture 800 may be used to implement mobile devices 105 , for example.
- Architecture 800 may include at least one processor 805 coupled to memory elements 810 through a system bus 815 or other suitable circuitry.
- Architecture 800 stores program code within memory elements 810 .
- Processor 805 executes the program code accessed from memory elements 810 via system bus 815 .
- Memory elements 810 include one or more physical memory devices such as, for example, a local memory 820 and one or more bulk storage devices 825 .
- I/O devices such as a keyboard 830 , a display device 835 , and a pointing device 840 may optionally be coupled to architecture 800 .
- I/O devices may be combined as in the case where a touchscreen is used as display device 835 .
- display device 835 may also implement keyboard 830 and pointing device 840 .
- Additional I/O devices may include one or more network adapters 845 , an optional camera 850 , an optional microphone 855 , an optional output transducer (e.g., speaker) 860 , and one or more optional sensors such as accelerometers, gyroscopes, and the like.
- Network adapter 845 enable architecture 800 to become coupled to other systems. Modems, cable modems, Ethernet cards, short and/or long range wireless receivers and/or transceivers are examples of different types of network adapter 845 that may be used with architecture 800 . Depending upon the particular device implemented with architecture 800 , the specific type of network adapter, or network adapters as the case may be, will vary.
- the I/O devices may be coupled to architecture 800 either directly or through intervening I/O controllers.
- memory elements 810 store an operating system 850 and a location aware application 855 .
- operating system 850 and location aware application 855 being implemented in the form of executable program code, are executed by architecture 800 .
- operating system 850 and location aware application 855 may be considered an integrated part of architecture 800 .
- Operating system 850 , location aware application 855 , and any data items used, generated, and/or operated upon by architecture 800 are functional data structures that impart functionality when employed as part of a system implemented using architecture 800 .
- another means at least a second or more.
- each of the expressions “at least one of A, B and C,” “at least one of A, B, or C,” “one or more of A, B, and C,” “one or more of A, B, or C,” and “A, B, and/or C” means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B and C together.
- computer readable storage medium means a storage medium that contains or stores program code for use by or in connection with an instruction execution system, apparatus, or device.
- a “computer readable storage medium” is not a transitory, propagating signal per se.
- a computer readable storage medium may be, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
- Memory elements, as described herein, are examples of a computer readable storage medium.
- a non-exhaustive list of more specific examples of a computer readable storage medium may include: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing.
- RAM random access memory
- ROM read-only memory
- EPROM or Flash memory erasable programmable read-only memory
- SRAM static random access memory
- CD-ROM compact disc read-only memory
- DVD digital versatile disk
- memory stick a floppy disk
- mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon
- content may refer to a data item, file, or plurality of files.
- Exemplary content may include, but is not limited to, hyperlinks, images, files, advertising, audio, video, text, and/or combinations thereof.
- Coupled means connected, whether directly without any intervening elements or indirectly with one or more intervening elements, unless otherwise indicated. Two elements may be coupled mechanically, electrically, or communicatively linked through a communication channel, pathway, network, or system.
- executable operation is a task performed by a data processing system or a processor within a data processing system unless the context indicates otherwise.
- executable operations include, but are not limited to, “processing,” “computing,” “calculating,” “determining,” “displaying,” “comparing,” or the like.
- operations refer to actions and/or processes of the data processing system, e.g., a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and/or memories into other data similarly represented as physical quantities within the computer system memories and/or registers or other such information storage, transmission or display devices.
- the terms “includes,” “including,” “comprises,” and/or “comprising,” specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
- the term “if” means “when” or “upon” or “in response to” or “responsive to,” depending upon the context.
- the phrase “if it is determined” or “if [a stated condition or event] is detected” may be construed to mean “upon determining” or “in response to determining” or “upon detecting [the stated condition or event]” or “in response to detecting [the stated condition or event]” or “responsive to detecting [the stated condition or event]” depending on the context.
- the terms “one embodiment,” “an embodiment,” or similar language mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment described within this disclosure.
- appearances of the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this disclosure may, but do not necessarily, all refer to the same embodiment.
- output means storing in physical memory elements, e.g., devices, writing to display or other peripheral output device, sending or transmitting to another system, exporting, or the like.
- the term “plurality” means two or more than two.
- processor means at least one hardware circuit configured to carry out instructions contained in program code.
- the hardware circuit may be an integrated circuit.
- Examples of a processor include, but are not limited to, a central processing unit (CPU), an array processor, a vector processor, a digital signal processor (DSP), a field-programmable gate array (FPGA), a programmable logic array (PLA), an application specific integrated circuit (ASIC), programmable logic circuitry, and a controller.
- real time means a level of processing responsiveness that a user or system senses as sufficiently immediate for a particular process or determination to be made, or that enables the processor to keep up with some external process.
- the term “responsive to” means responding or reacting readily to an action or event. Thus, if a second action is performed “responsive to” a first action, there is a causal relationship between an occurrence of the first action and an occurrence of the second action. The term “responsive to” indicates the causal relationship.
- the term “user” means a human being.
- a computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
- Computer readable program instructions described herein may be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a LAN, a WAN and/or a wireless network.
- the network may include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge devices including edge servers.
- a network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
- Computer readable program instructions for carrying out operations for the inventive arrangements described herein may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language and/or procedural programming languages.
- the computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer may be connected to the user's computer through any type of network, including a LAN or a WAN, or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- electronic circuitry including, for example, programmable logic circuitry, an FPGA, or a PLA may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the inventive arrangements described herein.
- These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the operations specified in the flowchart and/or block diagram block or blocks.
- the computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operations to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified operations.
- the operations noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
- a method may include, continually receiving, from each of a plurality of mobile devices and using a processor, a location of the mobile device and a list including at least one RF device detected by the mobile device while at the location, estimating, using the processor, location information for the RF devices according to the locations and the lists, and, determining, using the processor, that a first RF device from the lists is proximate to a stationary presentation device.
- the method may include, responsive to the determining and using the processor, providing content to the stationary presentation device, wherein the content is selected, at least in part, according to the location information of the first RF device.
- the first RF device may be a non-participating device and the plurality of mobile devices may be participating devices.
- the method may include determining, from the locations and lists of the plurality of mobile devices, an amount of time the first RF device is proximate to a selected location.
- the content may also be selected according to the amount of time and the selected location.
- the stationary presentation device and the plurality of mobile devices may be indoors.
- the method may include determining that the first RF device is proximate to a second RF device determined to be a companion device from historical location information for the first and second RF devices.
- the content may also be selected according to location information estimated for the second RF device.
- the lists may specify signal strength for detected RF devices.
- the method may include estimating location information for the RF devices by estimating a distance of the RF devices from the mobile devices that detected the RF devices according to the signal strength indicators.
- Estimating location information for the RF devices may also include, for a selected RF device detected concurrently by at least two mobile devices, determining an intersection of the detectable ranges of the at least two mobile devices that detected the selected RF device.
- Determining that the first RF device is proximate to the stationary presentation device may include receiving device detection data specifying the first RF device from the stationary display device.
- a system may include a processor programmed to initiate executable operations.
- the executable operations may include continually receiving, from each of a plurality of mobile devices, a location of the mobile device and a list including at least one RF device detected by the mobile device while at the location, estimating location information for the RF devices according to the locations and the lists, and determining that a first RF device from the lists is proximate to a stationary presentation device.
- the executable operations may also include, responsive to the determining, providing content to the stationary presentation device, wherein the content is selected, at least in part, according to the location information of the first RF device.
- the first RF device may be a non-participating device and the plurality of mobile devices may be participating devices.
- the processor may be further programmed to initiate executable operations including determining, from the locations and lists of the plurality of mobile devices, an amount of time the first RF device is proximate to a selected location.
- the content may be selected according to the amount of time and the selected location.
- the stationary presentation device and the plurality of mobile devices may be indoors.
- the processor may be further programmed to initiate executable operations including determining that the first RF device is proximate to a second RF device determined to be a companion device from historical location information for the first and second RF devices. In that case, the content may also selected according to location information estimated for the second RF device.
- the lists may further specify signal strength for detected RF devices.
- estimating location information for the RF devices may include estimating a distance of the RF devices from the mobile devices that detected the RF devices according to the signal strength indicators.
- Estimating location information for the RF devices may also include, for a selected RF device detected concurrently by at least two mobile devices, determining an intersection of the detectable ranges of the at least two mobile devices that detected the selected RF device.
- Determining that the first RF device is proximate to the stationary presentation device may include receiving device detection data specifying the first RF device from the stationary display device.
- a computer program product may include a computer readable storage medium having program code stored thereon.
- the program code is executable by a processor to perform a method.
- the method may include, using the processor, continually receiving, from each of a plurality of mobile devices, a location of the mobile device and a list including at least one RF device detected by the mobile device while at the location, estimating, using the processor, location information for the RF devices according to the locations and the lists, and determining, using the processor, that a first RF device from the lists is proximate to a stationary presentation device.
- the method may also include, responsive to the determining and using the processor, providing content to the stationary presentation device, wherein the content is selected, at least in part, according to the location information of the first RF device.
- the first RF device may be a non-participating device and the plurality of mobile devices may be participating devices.
- the method may also include determining that the first RF device is proximate to a second RF device determined to be a companion device from historical location information for the first and second RF devices.
- the content may also be selected according to location information estimated for the second RF device.
- Estimating location information for the RF devices further may include, for a selected RF device detected concurrently by at least two mobile devices, determining an intersection of the detectable ranges of the at least two mobile devices that detected the selected RF device.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Tourism & Hospitality (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Databases & Information Systems (AREA)
- Primary Health Care (AREA)
- Entrepreneurship & Innovation (AREA)
- Health & Medical Sciences (AREA)
- Game Theory and Decision Science (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Personalized content delivery using a dynamic network may include, using a processor, continually receiving, from each of a plurality of mobile devices, a location of the mobile device and a list specifying at least one RF device detected by the mobile device while at the location; and, estimating, using the processor, location information for the RF devices according to the locations and the lists. Using the processor, a determination may be made that a first RF device from the lists is proximate to a stationary presentation device. Responsive to the determining and using the processor, content may be provided to the stationary presentation device. The content may be selected, at least in part, according to the location information of the first RF device.
Description
- This disclosure relates to delivering personalized content using a dynamic network and, more particularly, to delivering personalized content using a dynamic network formed of mobile, location aware devices.
- The ability to provide useful and timely information to users is contingent upon a variety of factors. These factors may include, among other things, obtaining accurate location information for users. Often, the ability to obtain accurate location information is dependent upon users' voluntary participation in, and/or registration with, a service. Within an indoor environment, obtaining accurate location information may be even more challenging.
- One common approach to indoor location determination relies upon an installed network of strategically placed, stationary beacons. The beacons estimate users' locations by detecting mobile devices. The beacons may share location data with a backend system that may then push content to the users' mobile devices. Users typically opt in to the service by installing an application on their mobile devices to facilitate communication with the backend system.
- A method may include, using a processor, continually receiving, from each of a plurality of mobile devices, a location of the mobile device and a list specifying at least one RF device detected by the mobile device while at the location, estimating, using the processor, location information for the RF devices according to the locations and the lists, and determining, using the processor, that a first RF device from the lists is proximate to a stationary presentation device. The method may also include, responsive to the determining and using the processor, providing content to the stationary presentation device. The content may be selected, at least in part, according to the location information of the first RF device.
- A system may include a processor programmed to initiate executable operations. The executable operations may include continually receiving, from each of a plurality of mobile devices, a location of the mobile device and a list specifying at least one RF device detected by the mobile device while at the location, estimating location information for the RF devices according to the locations and the lists, and determining that a first RF device from the lists is proximate to a stationary presentation device. The executable operations may also include, responsive to the determining, providing content to the stationary presentation device. The content may be selected, at least in part, according to the location information of the first RF device.
- A computer program product may include a computer readable storage medium having program code stored thereon. The program code may be executable by a processor to perform a method. The method may include, using the processor, continually receiving, from each of a plurality of mobile devices, a location of the mobile device and a list specifying at least one RF device detected by the mobile device while at the location, estimating, using the processor, location information for the RF devices according to the locations and the lists, and determining, using the processor, that a first RF device from the lists is proximate to a stationary presentation device. The method may also include, responsive to the determining and using the processor, providing content to the stationary presentation device, wherein the content is selected, at least in part, according to the location information of the first RF device.
- This Summary section is provided merely to introduce certain concepts and not to identify any key or essential features of the claimed subject matter. Many other features and embodiments of the invention will be apparent from the accompanying drawings and from the following detailed description.
- The accompanying drawings show one or more embodiments; however, the accompanying drawings should not be taken to limit the invention to only the embodiments shown. Various aspects and advantages will become apparent upon review of the following detailed description and upon reference to the drawings.
-
FIG. 1 is a diagram illustrating an exemplary network computing system. -
FIG. 2 illustrates an example of a detectable range of a mobile device. -
FIG. 3 illustrates an example of overlapping detectable ranges of mobile devices. -
FIG. 4 illustrates another example of overlapping detectable ranges of mobile devices. -
FIG. 5 is a flow chart illustrating an exemplary method of delivering content using a dynamic network. -
FIG. 6 is a flow chart illustrating an exemplary method of estimating location of an RF device. -
FIG. 7 is a block diagram illustrating an example of an architecture for a data processing system. -
FIG. 8 is a block diagram illustrating an example of an architecture for a mobile device. - While the disclosure concludes with claims defining novel features, it is believed that the various features described herein will be better understood from a consideration of the description in conjunction with the drawings. The process(es), machine(s), manufacture(s) and any variations thereof described within this disclosure are provided for purposes of illustration. Any specific structural and functional details described are not to be interpreted as limiting, but merely as a basis for the claims and as a representative basis for teaching one skilled in the art to variously employ the features described in virtually any appropriately detailed structure. Further, the terms and phrases used within this disclosure are not intended to be limiting, but rather to provide an understandable description of the features described.
- This disclosure relates to delivering personalized content using a dynamic network of location aware devices. In accordance with the inventive arrangements described within this disclosure, a network of location aware devices may be formed dynamically. The location aware devices may be mobile devices. As the mobile devices are carried about by users, the mobile devices may detect the presence of one or more other radio frequency (RF) devices. The mobile devices, being location aware, may report information such as the current location of the mobile devices and a list of any RF devices detected by the mobile device at the location. A backend system may receive information from participating mobile devices. Using the received locations and associated lists from the mobile devices, the system may estimate location information for the detected RF devices.
- In one arrangement, the system may determine when one or more of the RF devices is located proximate to a presentation device. The presentation device may be stationary. Responsive to determining that an RF device is located proximate to the presentation device, the system may select content and send the content to the presentation device. The presentation device may render the content, thereby making the content available to the user of the detect RF device determined to be proximate to the presentation device.
- In another arrangement, the system may select the content based upon the location information estimated for the RF device determined to be proximate to the presentation device. The selected content is personalized to the particular RF devices proximate to the presentation device. For example, the estimated location information for the RF device proximate to the presentation device may be cross-referenced with a map and/or points of interest to select the content.
- While RF devices may be detected at various locations, the users of the RF devices may remain anonymous. The RF devices and/or users thereof, need not register or choose to participate in the service and/or system in order to receive personalized content. In addition, while the mobile devices may be location aware, the RF devices that are detected may not be location aware. These and other aspects of the inventive arrangements are described in further detail with reference to the figures.
-
FIG. 1 is a diagram illustrating an exemplary network computing system (system) 100.System 100 may include a plurality of mobile devices collectively referred to as mobile devices 105, apresentation device 110, and abackend system 115. For purposes of illustration and ease of description, the plurality of mobile devices 105 may include mobile devices 105-1, 105-2, 105-3, 105-4, 105-5, 105-6, and 105-7. Mobile devices 105 may communicate withbackend system 115 through anetwork 120. Similarly,backend system 115 may communicate withpresentation device 110 throughnetwork 120. -
Network 120 is the medium used to provide communication links between various devices and data processing systems connected together withinsystem 100.Network 120 may include connections, such as wire, wireless communication links, or fiber optic cables.Network 120 may be implemented as, or include, any of a variety of different communication technologies such as a Wide Area Network (WAN), a Local Area Network (LAN), a wireless network (whether LAN or WAN), a mobile network, a Virtual Private Network (VPN), the Internet, the Public Switched Telephone Network (PSTN), or the like. - Mobile devices 105 may be location aware devices. For example, mobile devices 105 may be any of a variety of communication devices that include a short-range wireless network adapter (e.g., a receiver and/or transceiver) that is compliant with a short-range wireless interconnection and/or communication protocol. In one example, mobile devices 105 may include a Bluetooth® Low Energy compliant wireless network adapter. As such, mobile devices 105 are operable to detect other RF devices that are also configured for short-range wireless communication. Mobile devices 105 may also include a wireless network adapter that is operable to communicate over longer distances. For example, mobile devices 105 may include a mobile telephony transceiver, a Wi-Fi® enabled transceiver (e.g., an 802.11x compliant transceiver), or the like. Examples of mobile devices 105 may include mobile phones, tablet computers, portable and/or handheld computers, portable and/or handheld communication devices, and the like.
- As pictured, mobile devices 105 may be distributed throughout an indoor environment. In the example of
FIG. 1 , mobile devices 105 are positioned throughout astructure 125.Structure 125 may be a building, whether for personal or business use. For example,structure 125 may be a business establishment, e.g., an office, a personal dwelling, a shopping mall, or the like.Structure 125 is provided for purposes of illustration only and is not intended as a limitation of the inventive arrangements disclosed herein. For example,structure 125 may include multiple floors, fewer rooms, more rooms and/or subdivided spaces, or the like. - As noted, mobile devices 105 may be location aware. The term “location aware,” as used within this disclosure, means that the device is able to determine a current location of the device. Mobile devices 105 may be location aware using any of a variety of different location determination mechanisms and/or techniques. For example, mobile devices 105 may include Global Positioning System (GPS) receivers. In another example, mobile devices 105 may use detected wireless signals and/or access points to determine location. The particular manner in which mobile devices 105 determine location is not intended as a limitation of the embodiments described within this disclosure.
- The location may be specified as a latitude and longitude and optionally include an altitude. The location may be determined as a relative location within an indoor environment using detected access points or other known techniques for location determination. The location of mobile devices 105 may also be cross-referenced with a map of the indoor (or outdoor) environment and/or
structure 125, points of interest withinstructure 125 such as stores, entrances and/or exits, restrooms,presentation device 110, and the like. For example, with regard tostructure 125, mobile device 105-6 may determine its location to be withinstore 130; mobile device 105-2 may determine its location to be withinstore 132; mobile device 105-1 may determine its location to be withinstore 134, and mobile device 105-5 may determine its location to be withinstore 136. Similarly, mobile devices 150-3, 105-4, and 105-7 may determine their respective locations to be withinhallway 138 and further determine other proximate points of interest such as store fronts. - As defined within this disclosure, the term “proximate” means within a predetermined distance of a reference location. The reference location may be a point of interest such as a store,
presentation device 110, or one or more of mobile devices 105. In some cases, when referring to the detection of an RF device by one of mobile devices 105, the term “proximate” mean that the RF device is located within the detectable region of a mobile device 105. - As defined within this disclosure, the term “participating device” refers to a device of a user that has opted into using a particular service. Opting into to using a particular service may include registering for the service and/or installing an application that, when executed by the device, causes the device to perform operations as described herein. Mobile devices 105 are examples of participating devices.
RF device 140 is not a participating device. In this regard,RF device 140 may be identified only by the unique identifier broadcast byRF device 140. The user ofRF device 140, for example, may remain anonymous. -
Presentation device 110 is configured to render content. Further, presentation device may be a stationary device intended to remain at a fixed or constant location for operation.Presentation device 110 may render content visually, audibly, and/or both visually and audibly. For example,presentation device 110 may include a display that may be used to visually present content, a speaker or other transducer to audibly play content, etc. Exemplary implementations ofpresentation device 110 may include, but are not limited to, a digital sign, a kiosk, or the like. - In one embodiment,
presentation device 110 further may be implemented as a data processing system that includes a processor and a network adapter so thatpresentation device 110 may be coupled with other devices. In still another embodiment,presentation device 110 may include a short-range wireless network adapter thereby allowingpresentation device 110 to detect other RF devices. -
Backend system 115 may be implemented as a data processing system. In one arrangement,backend system 115 may be implemented as a computer system such as a server or a plurality of interconnected computer systems.Backend system 115 may receivedevice detection data 160 from mobile devices 105, determine location information for one or more detected RF devices such asRF device 140, and providecontent 145 topresentation device 110 as described herein. - In one embodiment, mobile devices 105 may be carried about by users within
structure 125. Mobile devices 105, being equipped with short-range wireless network adapters, may be configured to detect RF devices that are within a detectable range. For example, mobile devices 105-3, 105-4, 105-6, and 105-7 may detectRF device 140 asRF device 140 is carried alongpath 165. Each of mobile devices 105-3, 105-4, 105-6, and 105-7 may detectRF device 140 and determine a unique identifier forRF device 140. In this example, mobile devices 105-3, 105-4, 105-6, and/or 105-7 need not complete a pairing operation withRF device 140. For purposes of location estimation, it is sufficient that mobile devices 105-3, 105-4, 105-6, and 105-7 detectRF device 140 without being paired. - Mobile devices 105 may send
device detection data 160 tobackend system 115. Mobile devices 105 may senddevice detection data 160 on a continuing basis. Mobile devices 105 may senddevice detection data 160 from time-to-time, periodically, and/or responsive to a particular event. For example, mobile device 105-3 may be located in the particular location illustrated inFIG. 1 . Mobile device 105-3 may detectRF device 140 and/or one or more other RF devices while at the location. Mobile device 105-3 may senddevice detection data 160 tobackend system 115. Device detection data may include a location of the mobile device (i.e., mobile device 105-3 in this example) and a list of the RF devices detected while at the specified location. In one arrangement, the list of RF devices may optionally include a time stamp of when each of the RF devices was detected. In another arrangement, the list of RF devices may also include a signal strength indicator for each of the RF devices on the list. - Other mobile devices 105 also may send
device detection data 160. In this example, mobile device 105-4 may senddevice detection data 160 tobackend system 115 indicating thatRF device 140 was detected. Mobile device 105-6 may senddevice detection data 160 indicating thatRF device 140 was detected. Mobile device 105-7 may senddevice detection data 160 indicating thatRF device 140 was detected. -
Backend system 115 may receivedevice detection data 160 from mobile devices 105. For example,device detection data 160 received from each of mobile devices 105-3, 105-4, 105-6, and 105-7 may specify the location of each respective mobile device 105 and a list of the RF devices detected by the mobile device at that location. As noted,device detection data 160 may optionally include time information and/or signal strength indicators for the detected RF devices. Further,device detection data 160 may include multiple data sets from same mobile devices 105. For example, mobile device 105-6 may send multiple sets of device detection data, e.g., a set of device detection data once per minute or at some other interval. - Using
device detection data 160 from mobile devices 105,backend system 115 may determine thatRF device 140 was detected by mobile devices 105-3, 105-4, 105-6, and 105-7 in this example with each of mobile devices 105-3, 105-4, 105-6, and 105-7 being located at the location shown inFIG. 1 . Further,backend system 115 may estimate thatRF device 140 has traversedpath 165 using locations of mobile devices 105-3, 105-4, 105-6, and 105-7 and timestamps from respective ones of mobile devices 105.Backend system 115, for example, ay also determine which stores were passed byRF device 140 while traversingpath 165 and thatRF device 140 enteredstore 130. - In one example, using the known range of the short-range wireless network adapters of mobile devices 105 and/or signal strength indicators,
backend system 115 may estimate the distance ofRF device 140 from the each of mobile devices 105-3, 105-4, 105-6, and 105-7 when detected. For example, by virtue of the fact that mobile device 105-3 detectedRF device 140,backend system 115 may estimate thatRF device 140 was located within a detectable range of mobile device 105-3. Using the signal strength indicator,backend system 115 may determine a more refined or accurate estimate of the distance ofRF device 140 from mobile device 105-3. - In one embodiment,
backend system 115 may determine thatRF device 140 is proximate topresentation device 110 using the estimated location information determined by processingdevice detection data 160 received from mobile devices 105. In another embodiment,presentation device 110 may also send device detection data. In that case,backend system 115 may determine thatRF device 140 is proximate topresentation device 110 based, at least in part, upon device detection data specifyingRF device 140 as received frompresentation device 110. -
FIGS. 2-4 are diagrams illustrating the detection of RF devices using mobile devices.FIGS. 2-4 illustrate how accuracy in estimating the location of RF devices may be increased using the signal strength indicator of the detected RF device and/or the detection of an RF device by more than one mobile device. -
FIG. 2 illustrates an example of a detectable range of a mobile device. More particularly,FIG. 2 illustrates mobile device 105-1 having a detectable range of 210. As defined within this disclosure, the term “detectable range” means the area extending out from a mobile device within which another RF device may be detected using a short-range wireless network adapter. As noted, one example of a short-range wireless network adapter is a Bluetooth receiver such as a BLE network adapter. - Accordingly, mobile device 105-1 may detect another RF device such as
RF device 140 when located withindetectable range 210. As discussed, mobile device 105-1 may detectRF device 140 and determine a unique identifier forRF device 140 that may be broadcast byRF device 140 without actually pairing withRF device 140. Further, upon detectingRF device 140, mobile device 105-1 may log the signal strength ofRF device 140. The signal strength may be used to calculate a likely distance from mobile device 105-1 thatRF device 140 is located. Thus, while detection ofRF device 140 by mobile device 105-1 may mean thatRF device 140 may be located anywhere withindetectable range 210,backend system 115 may use the signal strength indicator to calculate thatRF device 140 may be located a distance (e.g., a radius) from mobile device 105-1 represented by dashedline 250. As such,backend system 115 may estimate thatRF device 140 may be located anywhere along dashedline 250. -
FIG. 3 illustrates an example of overlapping detectable ranges of mobile devices. More particularly,FIG. 3 illustrates mobile device 105-1 having detectable range of 210 and mobile device 105-2 having a detectable range of 215. Mobile device 105-1 may detectRF device 140 when located withindetectable range 210. Mobile device 105-2 may detectRF device 140 when located withindetectable range 215. In the event that each of mobile devices 105-1 and 105-2 detectRF device 140 concurrently or within a predetermined amount of time of one another, the area in whichRF device 140 may be estimated to be located may be within the intersection ofdetectable range 210 anddetectable range 215. In this example, sinceRF device 140 and mobile devices 105-1 and 105-2 may be indoors and carried by users while walking, two detection times within 1, 2, 3, 4, 5, or up to approximately 10 seconds may be considered concurrent. - Further, each of mobile devices 105-1 and 105-2 may log the signal strength received for
RF device 140. The signal strength may be used to calculate an estimated distance from each of mobile devices 105-1 and 105-2 thatRF device 140 is located. For example,RF device 140 may be estimated to be anywhere along dashedline 250 with respect to mobile device 105-1.RF device 140 may be estimated to be anywhere alongline 255 with respect to mobile device 105-2. Since mobile device 105-2 and 105-2 detectedRF device 140 concurrently, the estimated location ofRF device 140 may be limited to the intersection ofline RF device 140. -
FIG. 4 illustrates another example of overlapping detectable ranges of mobile devices. More particularly,FIG. 4 illustrates mobile device 105-1 having detectable range of 210, mobile device 105-2 having detectable range of 215, and mobile device 105-3 having a detectable range of 220. Mobile device 105-1 may detectRF device 140 when located withindetectable range 210. Mobile device 105-2 may detectRF device 140 when located withindetectable range 215. Mobile device 105-3 may detectRF device 140 when located withindetectable range 220. In the event that each of mobile devices 105-1, 105-2, and 105-3 detectRF device 140 concurrently (e.g., at a same time or within a particular amount of time of one another), the area in whichRF device 140 may be estimated to be located may be within the intersection ofdetectable range 210,detectable range 215, anddetectable range 220. As discussed, the times that mobile devices 105-1, 105-2, and 105-3 detectRF device 140 need not be exactly the same times. - Further, though not illustrated, each of mobile devices 105-1, 105-2, and 105-3 may log the signal strength received for
RF device 140. The signal strength may be used to calculate an estimate of the distance from each of mobile devices 105-1, 105-2, and 105-3 thatRF device 140 is located to further refine the estimated location ofRF device 140. - As illustrated in
FIGS. 2-4 , the error in the estimated location ofRF device 140 declines as the number of mobile devices 105 that detectRF device 140 concurrently or at least within a predetermined amount of time of one another increases. Thus, the larger the number of participating devices (e.g., mobile devices 105), the greater the accuracy in estimating locations of non-participating devices such asRF device 140. - In addition, when using location detection systems that rely upon stationary beacons, each beacon needs to be strategically located to detect passing RF devices. Further, the coverage area (e.g., detectable area) of the stationary beacons is static. Thus, any gaps in detectable area between stationary beacons remains unless additional beacons are added to the system to cover the gaps. In the case of leveraging mobile devices, placement is not an issue. Further, since users, on average, tend to visit popular areas and/or points of interest, a larger number of participating devices will tend to congregate or travel through these more desirable areas. Thus, coverage within these more desirable areas will have fewer gaps and provide higher accuracy in location estimation of non-participating devices. As such, the system is able to dynamically cover areas of increased user interest and/or popularity without having to reposition and/or redeploy stationary beacons or guess at what may be popular for purposes of stationary beacon placement.
-
FIG. 5 is a flow chart illustrating anexemplary method 500 of delivering personalized content using a dynamic network.Method 500 may be performed using a backend system as described with reference toFIG. 1 .Method 500 may begin in a state where a plurality of mobile devices within an area. The area may be an indoor area or an outdoor area. The mobile devices may be participating devices and, as such, configured to detect RF devices and send device detection data to a backend system continually as described herein. - In
block 505, the backend system may receive device detection data from the plurality of mobile devices. The backend system may receive the device detection data continually from the mobile devices. For example, the mobile devices may be configured to send device detection data periodically, from time-to-time, or responsive to a particular event. Examples of events that may cause a mobile device to send device detection data may include, but are not limited to, entering a particular store, leaving a particular store, first detecting a previously undetected RF device, or no longer detecting a previously detected RF device. In one aspect, the mobile devices may be configured to send device detection data on a continual basis when located within a particular area such as an indoor structure or when located within a predetermined geographic area. - In blocks 510-520, the backend system may calculate location information for the RF devices. In
block 510, for example, the backend system may estimate the location for one or more RF devices. The backend system may estimate the location for those RF devices detected within received device detection data. - In
block 515, the backend system may optionally determine a path for the selected device. The path may be a traveled path for the RF device. The path may be a set of estimated locations for the selected RF device ordered in time for a span of time such as an hour, several hours, a day, or the like. The path may include any points of interest along the path or within a predetermined distance of estimated locations forming the path. In determining paths of RF devices, the backend system further may determine the amount of time that the RF devices were detected at various locations. For example, an RF device may be detected by a same or different mobile devices for an extended period of time such as 20-30 minutes which may indicate a higher than normal level of interest in a point of interested at the location and/or along a path. - In
block 520, the backend system may optionally detect groups of two or more RF devices that are related to each other. In general, RF devices determined to be related or otherwise associated with one another may be RF devices that are detected together. RF devices determined to be related, as described herein, may be referred to as “companion RF devices.” For example, the backend system may determine that two or more RF devices are companion devices by determining that the RF devices are at a same estimated location concurrently, travel a same path or portion of a path concurrently, etc., using historical location information. In such cases, the two or more RF devices may belong to users that are friends, colleagues, family members, or the like. - Referring to
blocks - In
block 525, the backend system may determine whether any of the RF devices are proximate to the stationary presentation device. For example, since the backend system may continually receive device detection data from the mobile devices, the backend system may also determine whether one or more of the RF devices is within a predetermined distance of the presentation device. The location of the presentation device may be known or preprogrammed within the backend system. - In another embodiment, the backend system may determine that an RF device is proximate to the presentation device responsive to receiving a notification from the presentation device. The presentation device may include a short-range wireless network adapter and, responsive to detecting an RF device, may send device detection data specifying the unique identifier of the detected RF device to the backend system. The backend system may receive device detection data from the presentation device indicating the detected RF device.
- If the backend system determines that no RF device is proximate to the presentation device,
method 500 may loop back to block 505 and continue processing. If the backend system determines that an RF device is proximate to the presentation device,method 500 may continue to block 520. For purposes of discussion, the RF device determined to be proximate to the presentation device is referred to as the “selected RF device.” - In
block 530, the backend system may retrieve content correlated with the selected RF device. The content that is retrieved is personalized, at least with respect to the selected RF device. The identity of the user of the selected RF device may remain unknown to the backend system. As such, anonymity of the user of the selected RF device is maintained while the backend system is able to deliver content that may be meaningful to the user of the selected RF based upon location information for the selected RF device. For example, as illustrated inFIG. 1 , the backend system may determine that the selected RF device has traveled intostore 130. In that case, the backend system may select content forstore 130. The backend system may display an advertisement forstore 130, information about a product carried bystore 130, or the like. - The content retrieved further may be correlated with the selected RF device in that the retrieved content is also related to one or more locations visited by an RF device related to the selected RF device as determined in
block 520. For example, the retrieved content may be content for a point of interest visited by both the selected RF device and the related RF device. In another example, the retrieved content may be content for a point of interested visited concurrently by both the selected RF device and the related RF device. In a further embodiment, backend system may only present content correlated with the selected RF device and the related RF device responsive to determining that both the selected RF device and the related RF device are proximate to the presentation device. - In
block 535, the backend system may provide the content to the presentation device. For example, the backend system may retrieve an image, video, audio, and/or audiovisual material and provide the content to the presentation device. The presentation device may render the content whether by visually displaying, audibly playing, and/or a combination of visually displaying and audibly playing the content. In one aspect, the content may be retrieved responsive to the detection of the selected RF device and provided to the presentation device in real time for consumption by a user of the selected RF device. - The presentation device may render the received content for a predetermined amount of time, until the selected RF device is no longer within a predetermined distance of the presentation device, until different content is received responsive to detecting that another RF device is proximate to the presentation device, or the like. After
block 535,method 500 may loop back to block 505 to continue processing. - The inventive arrangements described within this disclosure allow personalized content to be delivered to a user despite that user not opting to participate in a content delivery. Personalized content for the selected RF device may be delivered to the presentation device responsive to determining that the selected RF device is proximate to the presentation device without the user of the selected RF device being aware that the content being presented is personalized or directed to that user.
-
FIG. 6 is a flow chart illustrating anexemplary method 600 of estimating locations of detected RF devices.Method 600 may be performed to implement block 510 ofFIG. 5 . In one aspect, the backend system may maintain an RF device data structure that stores device detection data. Exemplary data structures may include a database, a table, hierarchically formatted data such as an eXtensible Markup Language (XML) document, a text file such as a delimited file, or the like. - In
block 605, the backend system may update the RF device data structure. In one arrangement, the backend system may maintain a database specifying each RF device identified within received device detection data. As device detection data is received from one or more different mobile devices, the backend system may extract the data for each RF device. For example, the backend system may extract data items such as the unique identifier of the RF device, the location of the mobile device that detected the RF device, optionally signal strength, and a timestamp indicating when the RF device was detected by the mobile device. The data items, collectively referred to as an entry, may be stored within the RF device data structure in a memory element. This allows the entries to be easily sorted according to RF device, timestamp, or any other data item of the entry. - The backend system may analyze the entries for the RF devices. The analysis may be performed across mobile devices. For example, the entries for a given RF device may include entries obtained from multiple, different mobile devices. The entries indicate whether the RF device was detected simultaneously or concurrently by two or more different mobile devices, whether the RF device was detected over different days, and the like.
- In
block 610, for RF devices detected in the most recently received device detection data, the backend system may determine, or calculate, an estimated location for each of the RF devices. For example, for each RF device specified in the most recently received device detection data, the backend system may estimate a location for the RF device. - In one arrangement, where a single new entry is received for an RF device (there are no concurrent detections of the RF device by more than one mobile device), the backend system may calculate the location of the RF device to be the location of the particular mobile device that detected the RF device. In another example, where signal strength information is received, the backend system may adjust the estimate to be the location of the mobile device that detected the RF device with an offset determined according to the detected signal strength.
- In another example, the backend system may estimate that the location of an RF device is within an intersection of two or more detectable ranges of two or more mobile devices that detect the RF device concurrently. The estimated location may be center of the intersection or overlapped detectable ranges. Further, as noted, the estimate may be further refined by accounting for the signal strength detected by each of the plurality of mobile devices that detected the RF device.
- In
block 615, the backend system may store the estimated location for each of the RF devices for which an estimated location is calculated within the data structure. In one aspect, the backend system may combine multiple entries used to determine one estimate. For example, the backend system may combine entries of concurrent detections of a same RF device. -
FIG. 7 is anexemplary architecture 700 for a data processing system.Architecture 700 may be used to implement any of a variety of systems and/or devices that include a processor and memory and that are capable of performing the operations described within this disclosure. In some cases, the particular device implemented usingarchitecture 700 may include fewer components or more components. Further, the particular operating system and/or application(s) included may vary. - As pictured,
architecture 700 includes at least one processor, e.g., a central processing unit (CPU), 705 coupled tomemory elements 710 through asystem bus 715 or other suitable circuitry.Architecture 700 stores program code withinmemory elements 710.Processor 705 executes the program code accessed frommemory elements 710 viasystem bus 715.Memory elements 710 include one or more physical memory devices such as, for example, alocal memory 720 and one or morebulk storage devices 725.Local memory 720 refers to random access memory (RAM) or other non-persistent memory device(s) generally used during actual execution of the program code.Bulk storage device 725 may be implemented as a hard disk drive (HDD), solid state drive (SSD), or other persistent data storage device.Architecture 700 may also include one or more cache memories (not shown) that provide temporary storage of at least some program code in order to reduce the number of times program code must be retrieved frombulk storage device 725 during execution. - Input/output (I/O) devices such as a
keyboard 730, adisplay device 735, and apointing device 740 may optionally be coupled toarchitecture 700. In some cases, one or more of the I/O devices may be combined as in the case where a touchscreen is used asdisplay device 735. In that case,display device 735 may also implementkeyboard 730 andpointing device 740. - The I/O devices may be coupled to
architecture 700 either directly or through intervening I/O controllers. One ormore network adapters 745 may also be coupled toarchitecture 700 to enablearchitecture 700 to become coupled to other systems, computer systems, remote printers, and/or remote storage devices through intervening private or public networks. Modems, cable modems, Ethernet cards, wireless transceivers, and wireless receivers are examples of different types ofnetwork adapter 745 that may be used witharchitecture 700. Depending upon the particular device implemented witharchitecture 700, the specific type of network adapter, or network adapters as the case may be, will vary. - As pictured in
FIG. 7 ,memory elements 710 store anoperating system 750 and one ormore applications 755. In one aspect,operating system 750 and application(s) 755, being implemented in the form of executable program code, are executed byarchitecture 700. As such,operating system 750 and application(s) 755 may be considered an integrated part ofarchitecture 700.Operating system 750, application(s) 755, and any data items used, generated, and/or operated upon byarchitecture 700 are functional data structures that impart functionality when employed as part of a system implemented usingarchitecture 700. - In one embodiment,
architecture 700 may be used to implementbackend system 115. When usingarchitecture 700 to implementbackend system 115, application(s) 755 may programprocessor 705 to perform the various operations ofbackend system 115 described herein. - In another embodiment,
architecture 700 may be used to implementstationary presentation device 110. When usingarchitecture 700 to implementstationary presentation device 110, application(s) 755 may be used to receive content and render content. The content may be rendered and/or cycled through one or more different items for the duration that the selected RF device is determined to be proximate tostationary presentation device 110. -
FIG. 8 is a block diagram illustrating anexemplary architecture 800 for a mobile device.Architecture 800 may be used to implement mobile devices 105, for example.Architecture 800 may include at least oneprocessor 805 coupled tomemory elements 810 through asystem bus 815 or other suitable circuitry.Architecture 800 stores program code withinmemory elements 810.Processor 805 executes the program code accessed frommemory elements 810 viasystem bus 815.Memory elements 810 include one or more physical memory devices such as, for example, alocal memory 820 and one or morebulk storage devices 825. - Input/output (I/O) devices such as a
keyboard 830, adisplay device 835, and apointing device 840 may optionally be coupled toarchitecture 800. In some cases, one or more of the I/O devices may be combined as in the case where a touchscreen is used asdisplay device 835. In that case,display device 835 may also implementkeyboard 830 andpointing device 840. - Additional I/O devices may include one or
more network adapters 845, anoptional camera 850, anoptional microphone 855, an optional output transducer (e.g., speaker) 860, and one or more optional sensors such as accelerometers, gyroscopes, and the like.Network adapter 845 enablearchitecture 800 to become coupled to other systems. Modems, cable modems, Ethernet cards, short and/or long range wireless receivers and/or transceivers are examples of different types ofnetwork adapter 845 that may be used witharchitecture 800. Depending upon the particular device implemented witharchitecture 800, the specific type of network adapter, or network adapters as the case may be, will vary. The I/O devices may be coupled toarchitecture 800 either directly or through intervening I/O controllers. - As pictured in
FIG. 8 ,memory elements 810 store anoperating system 850 and a locationaware application 855. In one aspect,operating system 850 and locationaware application 855, being implemented in the form of executable program code, are executed byarchitecture 800. As such,operating system 850 and locationaware application 855 may be considered an integrated part ofarchitecture 800.Operating system 850, locationaware application 855, and any data items used, generated, and/or operated upon byarchitecture 800 are functional data structures that impart functionality when employed as part of a system implemented usingarchitecture 800. - The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. Notwithstanding, several definitions that apply throughout this document now will be presented.
- As defined herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise.
- As defined herein, the term “another” means at least a second or more.
- As defined herein, the terms “at least one,” “one or more,” and “and/or,” are open-ended expressions that are both conjunctive and disjunctive in operation unless explicitly stated otherwise. For example, each of the expressions “at least one of A, B and C,” “at least one of A, B, or C,” “one or more of A, B, and C,” “one or more of A, B, or C,” and “A, B, and/or C” means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B and C together.
- As defined herein, the term “automatically” means without user intervention.
- As defined herein, the term “computer readable storage medium” means a storage medium that contains or stores program code for use by or in connection with an instruction execution system, apparatus, or device. As defined herein, a “computer readable storage medium” is not a transitory, propagating signal per se. A computer readable storage medium may be, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. Memory elements, as described herein, are examples of a computer readable storage medium. A non-exhaustive list of more specific examples of a computer readable storage medium may include: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing.
- As defined herein, the term “content” may refer to a data item, file, or plurality of files. Exemplary content may include, but is not limited to, hyperlinks, images, files, advertising, audio, video, text, and/or combinations thereof.
- As defined herein, the term “coupled” means connected, whether directly without any intervening elements or indirectly with one or more intervening elements, unless otherwise indicated. Two elements may be coupled mechanically, electrically, or communicatively linked through a communication channel, pathway, network, or system.
- As defined herein, the term “executable operation” or “operation” is a task performed by a data processing system or a processor within a data processing system unless the context indicates otherwise. Examples of executable operations include, but are not limited to, “processing,” “computing,” “calculating,” “determining,” “displaying,” “comparing,” or the like. In this regard, operations refer to actions and/or processes of the data processing system, e.g., a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and/or memories into other data similarly represented as physical quantities within the computer system memories and/or registers or other such information storage, transmission or display devices.
- As defined herein, the terms “includes,” “including,” “comprises,” and/or “comprising,” specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
- As defined herein, the term “if” means “when” or “upon” or “in response to” or “responsive to,” depending upon the context. Thus, the phrase “if it is determined” or “if [a stated condition or event] is detected” may be construed to mean “upon determining” or “in response to determining” or “upon detecting [the stated condition or event]” or “in response to detecting [the stated condition or event]” or “responsive to detecting [the stated condition or event]” depending on the context.
- As defined herein, the terms “one embodiment,” “an embodiment,” or similar language mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment described within this disclosure. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this disclosure may, but do not necessarily, all refer to the same embodiment.
- As defined herein, the term “output” means storing in physical memory elements, e.g., devices, writing to display or other peripheral output device, sending or transmitting to another system, exporting, or the like.
- As defined herein, the term “plurality” means two or more than two.
- As defined herein, the term “processor” means at least one hardware circuit configured to carry out instructions contained in program code. The hardware circuit may be an integrated circuit. Examples of a processor include, but are not limited to, a central processing unit (CPU), an array processor, a vector processor, a digital signal processor (DSP), a field-programmable gate array (FPGA), a programmable logic array (PLA), an application specific integrated circuit (ASIC), programmable logic circuitry, and a controller.
- As defined herein, the term “real time” means a level of processing responsiveness that a user or system senses as sufficiently immediate for a particular process or determination to be made, or that enables the processor to keep up with some external process.
- As defined herein, the term “responsive to” means responding or reacting readily to an action or event. Thus, if a second action is performed “responsive to” a first action, there is a causal relationship between an occurrence of the first action and an occurrence of the second action. The term “responsive to” indicates the causal relationship.
- As defined herein, the term “user” means a human being.
- The terms first, second, etc. may be used herein to describe various elements. These elements should not be limited by these terms, as these terms are only used to distinguish one element from another unless stated otherwise or the context clearly indicates otherwise.
- A computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention. Computer readable program instructions described herein may be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a LAN, a WAN and/or a wireless network. The network may include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge devices including edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
- Computer readable program instructions, e.g., “program code,” for carrying out operations for the inventive arrangements described herein may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language and/or procedural programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a LAN or a WAN, or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some cases, electronic circuitry including, for example, programmable logic circuitry, an FPGA, or a PLA may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the inventive arrangements described herein.
- Certain aspects of the inventive arrangements are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, may be implemented by computer readable program instructions, e.g., program code.
- These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the operations specified in the flowchart and/or block diagram block or blocks.
- The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operations to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
- The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various aspects of the inventive arrangements. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified operations. In some alternative implementations, the operations noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, may be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
- For purposes of simplicity and clarity of illustration, elements shown in the Figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numbers are repeated among the figures to indicate corresponding, analogous, or like features.
- The corresponding structures, materials, acts, and equivalents of all means or step plus function elements that may be found in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed.
- A method may include, continually receiving, from each of a plurality of mobile devices and using a processor, a location of the mobile device and a list including at least one RF device detected by the mobile device while at the location, estimating, using the processor, location information for the RF devices according to the locations and the lists, and, determining, using the processor, that a first RF device from the lists is proximate to a stationary presentation device. The method may include, responsive to the determining and using the processor, providing content to the stationary presentation device, wherein the content is selected, at least in part, according to the location information of the first RF device.
- The first RF device may be a non-participating device and the plurality of mobile devices may be participating devices.
- The method may include determining, from the locations and lists of the plurality of mobile devices, an amount of time the first RF device is proximate to a selected location. The content may also be selected according to the amount of time and the selected location.
- The stationary presentation device and the plurality of mobile devices may be indoors.
- The method may include determining that the first RF device is proximate to a second RF device determined to be a companion device from historical location information for the first and second RF devices. The content may also be selected according to location information estimated for the second RF device.
- In another aspect, the lists may specify signal strength for detected RF devices. In that case, the method may include estimating location information for the RF devices by estimating a distance of the RF devices from the mobile devices that detected the RF devices according to the signal strength indicators.
- Estimating location information for the RF devices may also include, for a selected RF device detected concurrently by at least two mobile devices, determining an intersection of the detectable ranges of the at least two mobile devices that detected the selected RF device.
- Determining that the first RF device is proximate to the stationary presentation device may include receiving device detection data specifying the first RF device from the stationary display device.
- A system may include a processor programmed to initiate executable operations. The executable operations may include continually receiving, from each of a plurality of mobile devices, a location of the mobile device and a list including at least one RF device detected by the mobile device while at the location, estimating location information for the RF devices according to the locations and the lists, and determining that a first RF device from the lists is proximate to a stationary presentation device. The executable operations may also include, responsive to the determining, providing content to the stationary presentation device, wherein the content is selected, at least in part, according to the location information of the first RF device.
- The first RF device may be a non-participating device and the plurality of mobile devices may be participating devices.
- The processor may be further programmed to initiate executable operations including determining, from the locations and lists of the plurality of mobile devices, an amount of time the first RF device is proximate to a selected location. The content may be selected according to the amount of time and the selected location.
- The stationary presentation device and the plurality of mobile devices may be indoors.
- The processor may be further programmed to initiate executable operations including determining that the first RF device is proximate to a second RF device determined to be a companion device from historical location information for the first and second RF devices. In that case, the content may also selected according to location information estimated for the second RF device.
- In another aspect, the lists may further specify signal strength for detected RF devices. In that case, estimating location information for the RF devices may include estimating a distance of the RF devices from the mobile devices that detected the RF devices according to the signal strength indicators.
- Estimating location information for the RF devices may also include, for a selected RF device detected concurrently by at least two mobile devices, determining an intersection of the detectable ranges of the at least two mobile devices that detected the selected RF device.
- Determining that the first RF device is proximate to the stationary presentation device may include receiving device detection data specifying the first RF device from the stationary display device.
- A computer program product may include a computer readable storage medium having program code stored thereon. The program code is executable by a processor to perform a method. The method may include, using the processor, continually receiving, from each of a plurality of mobile devices, a location of the mobile device and a list including at least one RF device detected by the mobile device while at the location, estimating, using the processor, location information for the RF devices according to the locations and the lists, and determining, using the processor, that a first RF device from the lists is proximate to a stationary presentation device. The method may also include, responsive to the determining and using the processor, providing content to the stationary presentation device, wherein the content is selected, at least in part, according to the location information of the first RF device.
- The first RF device may be a non-participating device and the plurality of mobile devices may be participating devices.
- The method may also include determining that the first RF device is proximate to a second RF device determined to be a companion device from historical location information for the first and second RF devices. The content may also be selected according to location information estimated for the second RF device.
- Estimating location information for the RF devices further may include, for a selected RF device detected concurrently by at least two mobile devices, determining an intersection of the detectable ranges of the at least two mobile devices that detected the selected RF device.
- The description of the inventive arrangements provided herein is for purposes of illustration and is not intended to be exhaustive or limited to the form and examples disclosed. The terminology used herein was chosen to explain the principles of the inventive arrangements, the practical application or technical improvement over technologies found in the marketplace, and/or to enable others of ordinary skill in the art to understand the embodiments disclosed herein. Modifications and variations may be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described inventive arrangements. Accordingly, reference should be made to the following claims, rather than to the foregoing disclosure, as indicating the scope of such features and implementations.
Claims (20)
1. A method, comprising:
using a processor, continually receiving, from each of a plurality of mobile devices, a location of the mobile device and a list comprising at least one RF device detected by the mobile device while at the location;
estimating, using the processor, location information for the RF devices according to the locations and the lists;
determining, using the processor, that a first RF device from the lists is proximate to a stationary presentation device; and
responsive to the determining and using the processor, providing content to the stationary presentation device, wherein the content is selected, at least in part, according to the location information of the first RF device.
2. The method of claim 1 , wherein the first RF device is a non-participating device and the plurality of mobile devices are participating devices.
3. The method of claim 1 , further comprising:
determining, from the locations and lists of the plurality of mobile devices, an amount of time the first RF device is proximate to a selected location;
wherein the content is further selected according to the amount of time and the selected location.
4. The method of claim 1 , wherein the stationary presentation device and the plurality of mobile devices are indoors.
5. The method of claim 1 , further comprising:
determining that the first RF device is proximate to a second RF device determined to be a companion device from historical location information for the first and second RF devices, wherein the content is further selected according to location information estimated for the second RF device.
6. The method of claim 1 , wherein:
the lists further specify signal strength for detected RF devices; and
estimating location information for the RF devices further comprises estimating a distance of the RF devices from the mobile devices that detected the RF devices according to the signal strength indicators.
7. The method of claim 1 , wherein estimating location information for the RF devices further comprises, for a selected RF device detected concurrently by at least two mobile devices, determining an intersection of the detectable ranges of the at least two mobile devices that detected the selected RF device.
8. The method of claim 1 , wherein determining that the first RF device is proximate to the stationary presentation device comprises:
receiving device detection data specifying the first RF device from the stationary display device.
9. A system, comprising:
a processor programmed to initiate executable operations comprising:
continually receiving, from each of a plurality of mobile devices, a location of the mobile device and a list comprising at least one RF device detected by the mobile device while at the location;
estimating location information for the RF devices according to the locations and the lists;
determining that a first RF device from the lists is proximate to a stationary presentation device; and
responsive to the determining, providing content to the stationary presentation device, wherein the content is selected, at least in part, according to the location information of the first RF device.
10. The system of claim 9 , wherein the first RF device is a non-participating device and the plurality of mobile devices are participating devices.
11. The system of claim 9 , wherein the processor is further programmed to initiate executable operations comprising:
determining, from the locations and lists of the plurality of mobile devices, an amount of time the first RF device is proximate to a selected location;
wherein the content is further selected according to the amount of time and the selected location.
12. The system of claim 9 , wherein the stationary presentation device and the plurality of mobile devices are indoors.
13. The system of claim 9 , wherein the processor is further programmed to initiate executable operations comprising:
determining that the first RF device is proximate to a second RF device determined to be a companion device from historical location information for the first and second RF devices, wherein the content is further selected according to location information estimated for the second RF device.
14. The system of claim 9 , wherein:
the lists further specify signal strength for detected RF devices; and
estimating location information for the RF devices further comprises estimating a distance of the RF devices from the mobile devices that detected the RF devices according to the signal strength indicators.
15. The system of claim 9 , wherein estimating location information for the RF devices further comprises, for a selected RF device detected concurrently by at least two mobile devices, determining an intersection of the detectable ranges of the at least two mobile devices that detected the selected RF device.
16. The system of claim 9 , wherein determining that the first RF device is proximate to the stationary presentation device comprises:
receiving device detection data specifying the first RF device from the stationary display device.
17. A computer program product comprising a computer readable storage medium having program code stored thereon, the program code executable by a processor to perform a method comprising:
using the processor, continually receiving, from each of a plurality of mobile devices, a location of the mobile device and a list comprising at least one RF device detected by the mobile device while at the location;
estimating, using the processor, location information for the RF devices according to the locations and the lists;
determining, using the processor, that a first RF device from the lists is proximate to a stationary presentation device; and
responsive to the determining and using the processor, providing content to the stationary presentation device, wherein the content is selected, at least in part, according to the location information of the first RF device.
18. The computer program product of claim 17 , wherein the first RF device is a non-participating device and the plurality of mobile devices are participating devices.
19. The computer program product of claim 17 , further comprising:
determining that the first RF device is proximate to a second RF device determined to be a companion device from historical location information for the first and second RF devices, wherein the content is further selected according to location information estimated for the second RF device.
20. The computer program product of claim 17 , wherein estimating location information for the RF devices further comprises, for a selected RF device detected concurrently by at least two mobile devices, determining an intersection of the detectable ranges of the at least two mobile devices that detected the selected RF device.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/933,700 US9648063B1 (en) | 2015-11-05 | 2015-11-05 | Personalized content delivery using a dynamic network |
KR1020160146909A KR20170053138A (en) | 2015-11-05 | 2016-11-04 | Method and electronic device for Personalized Content Delivery |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/933,700 US9648063B1 (en) | 2015-11-05 | 2015-11-05 | Personalized content delivery using a dynamic network |
Publications (2)
Publication Number | Publication Date |
---|---|
US9648063B1 US9648063B1 (en) | 2017-05-09 |
US20170134451A1 true US20170134451A1 (en) | 2017-05-11 |
Family
ID=58643621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/933,700 Active 2035-11-19 US9648063B1 (en) | 2015-11-05 | 2015-11-05 | Personalized content delivery using a dynamic network |
Country Status (2)
Country | Link |
---|---|
US (1) | US9648063B1 (en) |
KR (1) | KR20170053138A (en) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100130251A1 (en) * | 2008-11-24 | 2010-05-27 | Samsung Electronics Co., Ltd. | Method and apparatus for displaying background image on portable terminal using location information |
US20120179812A1 (en) * | 2011-01-06 | 2012-07-12 | Nokomis, Inc. | System and method for physically detecting, identifying, diagnosing and geolocating electronic devices connectable to a network |
US20120268253A1 (en) * | 2008-06-05 | 2012-10-25 | Keystone Technology Solutions, Llc | Systems and Methods to Determine Motion Parameters Using RFID Tags |
US20140378166A1 (en) * | 2013-06-19 | 2014-12-25 | Samsung Electronics Co., Ltd. | Method, storage medium, server, and electronic device for implementing location based service within building |
US20150080016A1 (en) * | 2012-07-18 | 2015-03-19 | Unify Gmbh & Co. Kg | Method of conveying a location information representing a physical location of a communication device, a computer program product for executing the method, and the communication device for conveying the location information |
US20150365898A1 (en) * | 2013-01-28 | 2015-12-17 | Denso Corporation | Mobile communication apparatus and storage medium including program product for mobile communication apparatus |
US20160127486A1 (en) * | 2014-01-24 | 2016-05-05 | Tencent Technology (Shenzhen) Company Limited | Method and system for location sharing |
US20160134620A1 (en) * | 2014-11-06 | 2016-05-12 | Ca, Inc. | Loading user devices with lists of proximately located broadcast beacons and associated service identifiers |
US20160261979A1 (en) * | 2015-03-03 | 2016-09-08 | Facebook, Inc. | Techniques to manage client location detection |
US20160373532A1 (en) * | 2015-06-18 | 2016-12-22 | Vmware, Inc. | Distributed self-served application remoting |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8543456B2 (en) | 2003-12-15 | 2013-09-24 | Ip Mining Corporation | Media targeting system and method |
US8942995B1 (en) | 2001-02-06 | 2015-01-27 | Nexrf, Corp. | Mobile autonomous dynamic graphical user interface |
EP2975426A1 (en) | 2004-07-30 | 2016-01-20 | Path Intelligence Limited | Monitoring the movement of mobile communication devices |
US8836580B2 (en) | 2005-05-09 | 2014-09-16 | Ehud Mendelson | RF proximity tags providing indoor and outdoor navigation and method of use |
US8229458B2 (en) | 2007-04-08 | 2012-07-24 | Enhanced Geographic Llc | Systems and methods to determine the name of a location visited by a user of a wireless device |
US8489112B2 (en) | 2009-07-29 | 2013-07-16 | Shopkick, Inc. | Method and system for location-triggered rewards |
US20120182172A1 (en) | 2011-01-14 | 2012-07-19 | Shopper Scientist, Llc | Detecting Shopper Presence in a Shopping Environment Based on Shopper Emanated Wireless Signals |
US8660581B2 (en) | 2011-02-23 | 2014-02-25 | Digimarc Corporation | Mobile device indoor navigation |
US9720555B2 (en) | 2011-12-23 | 2017-08-01 | Gary SORDEN | Location-based services |
US20140310379A1 (en) | 2013-04-15 | 2014-10-16 | Flextronics Ap, Llc | Vehicle initiated communications with third parties via virtual personality |
US20140046888A1 (en) | 2012-08-08 | 2014-02-13 | Telenav, Inc. | Navigation system with collection mechanism and method of operation thereof |
US20140365334A1 (en) | 2013-06-07 | 2014-12-11 | Bby Solutions, Inc. | Retail customer service interaction system and method |
US9940663B2 (en) | 2013-08-15 | 2018-04-10 | Frank Daly Ward | Indoor location mapping and wayfinding system |
US20150058129A1 (en) | 2013-08-23 | 2015-02-26 | Marshall Feature Recognition Llc | System and method for electronic interaction with merchandising venues |
US9445220B2 (en) | 2013-09-06 | 2016-09-13 | Paypal, Inc. | Systems and methods for enabling additional devices to check in to bluetooth low energy (BLE) beacons |
-
2015
- 2015-11-05 US US14/933,700 patent/US9648063B1/en active Active
-
2016
- 2016-11-04 KR KR1020160146909A patent/KR20170053138A/en unknown
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120268253A1 (en) * | 2008-06-05 | 2012-10-25 | Keystone Technology Solutions, Llc | Systems and Methods to Determine Motion Parameters Using RFID Tags |
US20100130251A1 (en) * | 2008-11-24 | 2010-05-27 | Samsung Electronics Co., Ltd. | Method and apparatus for displaying background image on portable terminal using location information |
US20120179812A1 (en) * | 2011-01-06 | 2012-07-12 | Nokomis, Inc. | System and method for physically detecting, identifying, diagnosing and geolocating electronic devices connectable to a network |
US20150080016A1 (en) * | 2012-07-18 | 2015-03-19 | Unify Gmbh & Co. Kg | Method of conveying a location information representing a physical location of a communication device, a computer program product for executing the method, and the communication device for conveying the location information |
US20150365898A1 (en) * | 2013-01-28 | 2015-12-17 | Denso Corporation | Mobile communication apparatus and storage medium including program product for mobile communication apparatus |
US20140378166A1 (en) * | 2013-06-19 | 2014-12-25 | Samsung Electronics Co., Ltd. | Method, storage medium, server, and electronic device for implementing location based service within building |
US20160127486A1 (en) * | 2014-01-24 | 2016-05-05 | Tencent Technology (Shenzhen) Company Limited | Method and system for location sharing |
US20160134620A1 (en) * | 2014-11-06 | 2016-05-12 | Ca, Inc. | Loading user devices with lists of proximately located broadcast beacons and associated service identifiers |
US20160261979A1 (en) * | 2015-03-03 | 2016-09-08 | Facebook, Inc. | Techniques to manage client location detection |
US20160373532A1 (en) * | 2015-06-18 | 2016-12-22 | Vmware, Inc. | Distributed self-served application remoting |
Also Published As
Publication number | Publication date |
---|---|
US9648063B1 (en) | 2017-05-09 |
KR20170053138A (en) | 2017-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102004022B1 (en) | Coalescing geo-fence events | |
US9094792B2 (en) | Predicting routes using wireless networks | |
US9998867B2 (en) | Content discovery using beacons | |
US9736650B2 (en) | Method and apparatus for adapting navigation notifications based on compliance information | |
KR100775123B1 (en) | Method of indexing image object and image object indexing system using the same | |
JP6379309B2 (en) | Geometric | |
US10067985B2 (en) | Computing system with crowd-source mechanism and method of operation thereof | |
US9654818B2 (en) | Content delivery system with augmented reality mechanism and method of operation thereof | |
JP6515184B2 (en) | Location data to define location and traffic | |
US20160147826A1 (en) | Method and apparatus for updating points of interest information via crowdsourcing | |
US20130281118A1 (en) | Mechanism for employing and facilitating proximity and context-based deduction of global positioning of computing devices | |
US10033624B2 (en) | Method and apparatus for probe-based routing | |
US20140350840A1 (en) | Crowd proximity device | |
US10963917B2 (en) | Method and system for determining fact of visit of user to point of interest | |
US10019768B2 (en) | Systems and methods for tracking, marketing, and/or attributing interest in one or more real estate properties | |
JP2007306409A (en) | Community formation/registration system and method by position information log | |
US20040230452A1 (en) | Regional attribute determination method, regional attribute determination device, and regional attribute determination program | |
US20160150048A1 (en) | Prefetching Location Data | |
KR20180126259A (en) | Method and apparatus for providing information based on proximity | |
US10045169B2 (en) | Systems and methods for personalizing public devices | |
US9967352B2 (en) | Communication system with location based services mechanism and method of operation thereof | |
US9648063B1 (en) | Personalized content delivery using a dynamic network | |
JP6267298B1 (en) | Providing device, providing method, providing program, terminal device, output method, and output program | |
JP2019128609A (en) | Information controller, method for controlling information, and information control program | |
JP2019128155A (en) | Estimation device, estimation method, and estimation program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SAMSUNG ELECTRONICS CO., LTD, KOREA, REPUBLIC OF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GUPTA, NOOPUR;ZINK, EDMUND D.;REEL/FRAME:036972/0371 Effective date: 20151103 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |