Currently, there are a large number of location-based services that allow users to “check-in” to a location. Examples include: Foursquare, Gowalla, Facebook Places, Yelp, etc. A user's mobile device may identify when a user is in a vicinity of a location, using for example a global positioning system (GPS), cellular tower triangulation, presence of identifying beacons, scanning a special visual tag of the location and/or WiFi access points, so that the user may check-in to that location. Location-based services use this check-in information to provide a variety of services and experiences to the user, including nearby friends' notifications, friends who have been here in the past, badges and rewards for simply checking-in, getting notified of nearby deals, etc.
There is currently no identified system for automated check-out from a location a user has checked into, once a user departs that location. This can lead to problems, such as for example friends erroneously believing the user is still at the location, a business offering a commercial incentive like a coupon even though the user has departed, as well as storing faulty data as to the user's activities and whereabouts.
Disclosed herein are systems and methods for detecting termination of a check-in session where a user has checked into a location using a mobile device. Upon detecting that the user has left a location, the present system automatically checks the user out of that location, updates the user's records, and notifies friends and any other interested and allowed principals that the user is no longer at that location.
In embodiments, the present system determines readings on one or more mobile devices such as mobile telephones at boundaries for a given location. This may be done a number of ways. The mobile devices may measure one or more of GPS data, mobile network radio signal strength, strength of a WiFi connection and/or other data and signals detected by a mobile device. By taking a reading or a number of readings at a variety of positions of a given location, signatures of the readings at the boundaries of the location may be established. These signatures, referred to herein as boundary signatures, may then be stored either on the device or on an off-device location like a web service and used for future reference to determine when a user has departed a location.
In particular, after a user has checked-in at a location, the user's mobile device continuously or periodically monitors data and signal information such as GPS data, mobile network radio signal strength, strength of a WiFi connection and/or other data and signals detected by a mobile device. This information is compared against the boundary signals to determine if and when the user departs the location and the mobile device is outside of the location boundaries. The mobile device may then automatically check-out from the location and provide an update of the departure to the user's records and friends.
In one example, the present technology relates to a method of detecting termination of a social check-in session where a user has checked into a location using a mobile device, the method comprising: (a) determining a boundary to the location; (b) monitoring at least one of data and signals of the mobile device; (c) detecting when the user has departed the location by the at least one of data and signals of the mobile device indicating that the mobile device is outside of the boundary of the location; (d) terminating the social check-in session upon detection of the mobile device being outside of the boundary of the location; and (e) notifying a friend of the user that the user has departed the location.
In another example, the present technology relates to a computer-readable storage medium for programming a processor to perform a method of detecting termination of a social check-in session where a user has checked into a location using a mobile device, the method comprising: (a) storing at least one of data and signals of one or more mobile devices positioned at a boundary of the location; (b) monitoring at least one of data and signals of the mobile device; (c) comparing the data and/or signals stored in said step (a) to the data and/or signals monitored in said step (b) to infer when a user has departed the location; and (d) terminating the social check-in session upon detection of the mobile device being outside of the boundary of the location.
In a further example, the present technology relates to a system for enabling social check-in to a location and check-out from the location, the system comprising: a mobile device running a software application, the software application capable of checking a user into the location, monitoring readings of the mobile device to infer when a user leaves the location, and automatically checking the user out of the location upon the inference that the user has left the location; and a centralized service in communication with the mobile device, the centralized service including a data storing having account records storing information of the user's check-ins and check-outs, the centralized service notifying friends of a user upon the user being checked out of a location.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
Embodiments of the present technology will now be described with reference to
After a user checks into a location, the present system may monitor one or more of the signals and data that the mobile device receives to determine when the user has left the location. If so, the system may check the user out of that location. Sensor data within the mobile device may also be used to infer the user's activity, which may also be factored into the determination as to whether a user has left a location. The system may additionally look for a check-in at a distinct new location to infer that the user has checked out of the prior location.
The topology 100 may further include brick and mortar locations where a user can check-in, such as for example Location A, Location B and Location C. There may be more or less than three such locations in further embodiments. Locations A and B have a computing device 114 supporting a wireless network. Location C does not. Each of the Locations A-C is shown bounded within a non-overlapping, rectangular area. It is understood that the rectangular shape is arbitrary and for the sake of illustration purposes only. As explained below, the present system may detect when a user departs from a given location. The location of the user when departing a given location may be outside or inside the arbitrary rectangular area shown for Locations A-C. Moreover, it is conceivable that a user may be presented with the option of checking into more than one of Locations A-C at a time.
As explained below, once a user checks-into a given location, that information may be transmitted to a service 120 via network 108. The information may be transmitted by the mobile device 104 and/or the computing device 114 at locations having a computing device 114. Service 120 may for example be an enterprise service provider, though it need not be in further embodiments. Service 120 may include one or more servers 124, which may for example include a web server, a game server supporting gaming applications, a media server for organizing and distributing selected media, or an ftp server supporting file transfer and/or other types of servers.
The service 120 also provides a collection of services, which applications running on mobile device 104 and/or computing devices 114 may invoke and utilize. For example, devices 104 and/or 114 may invoke user login service 126, which is used to authenticate a user seeking secure resources from service 120. The service 120 may further include a data store 128 including user account records 130. User account records may include a variety of data, including user profiles, user contacts, friends lists, location markers etc. User account records 130 may also store information relating to user check-ins at different locations, such as for example where and when a user is checked-in at a given location. While servers 124, login service 126 and data structure 128 are shown as part of a single service 120, some or all of these components may be distributed across different services in further embodiments.
Mobile device 104 may further include memory 152, for storing telephone numbers, contact information, etc. Memory 152 may additionally store photographic or video images taken with the mobile device 104. A variety of digital memory formats may be used for this purpose. In one embodiment, memory 152 may be a removable flash memory card, such as those manufactured by SanDisk Corporation of Sunnyvale, Calif. Memory 152 may further store an operating system 156 for the mobile device 104 and application programs 160.
One or more of these applications may be a social application allowing the user to check-in to a location and store data associated with the check-in (in memory 152 and/or within account records 130 in service 120). The data associated with the check-in may for example be where and when each check-in occurred, as well as badges and other awards associated by an application with a check-in. Such applications may include a check-in engine 162 for checking a user in at a location as explained below. Such application may further include a check-out engine 166 for checking a user out from a location as explained below. In embodiments, the check-in engine and check-out engine may be separate software modules, or they may be integrated into a single software module in further embodiments.
Mobile device 104 may further include a user interface 170 including a variety of hard and/or soft buttons, dials, switches, etc. for controlling features and operation of the computing device 114. The user interface 170 may operate over or in conjunction with a display 172.
The mobile device may further include a GPS module 174. Module 174 includes a receiver for receiving a GPS satellite signal 118 (
Mobile device 104 may further include a WiFi communication interface 176 capable of wireless communication with a wireless network, such as may be supported by computing devices 114 within Locations A and B (
The various hardware and software components of mobile device 104 are described above by way of example only. It is understood that mobile device 104 may include additional hardware and/or software components. Moreover, as indicated above, mobile device 104 may be different types of devices. As such, different embodiments of a mobile device 104 may have different components tailored to the specific type of device in use.
Operation of embodiments of the present system will now be explained with reference to the flowcharts of
In step 200, the check-in engine 162 (
In step 212, the check-in engine 162 next determines whether the mobile device is within range of one or more WiFi access points. If so, in step 216, the check-in engine receives the SSID for each such access point, and possibly one or more BSSIDs for each such access point.
In step 220, based on the information from steps 200-216, the check-in engine 162 determines whether there are one or more locations available for check-in. For example, in
On the other hand, if one or more locations are identified to which the user 102 may check into, the check-in engine 162 looks for such check-in in step 224. The user 102 may check into a location via the user interface 170 (
Once the user has checked into a location, the application running the check-in engine (or an application receiving information from the check-in engine) may provide different functionality and a variety of known services to the user 102 in step 226. For example, the check-in may result in rewards, including gaming rewards such as points, badges or honorary titles. The rewards may alternatively or additionally be special deals or discounts at the checked-in or other associated locations. Known applications for providing functionality and services upon check-in to a location are provided for example from Foursquare, Facebook, Gowalla, and Brightkite.
In step 230, the application operating in conjunction with the check-in engine 162 may upload information relating to the check-in to service 120, such as for example the time and location at which the user checks-in. This information may be stored in account records 130. Step 230 may further include notifying friends as to the user's current check-in location. The user 102 is free to set privacy policies and conditions with the service 120 as to when a friend is notified of the user's check-in.
It is understood that a user 102 may check into a location by any of a variety of other methods than that described above. One example showing additional and/or alternative steps in checking into a location is disclosed in U.S. Pat. No. 7,809,805, entitled “Systems and Methods for Automatically Locating Web-Based Social Network Members,” to Cheever et al. and assigned to Facebook, Inc., issued Nov. 2, 2010, which patent is incorporated by reference herein in its entirety.
In accordance with the present system, in step 232, the check-out engine 166 determines whether a user departs or has departed from the location to which the user was checked-in. Further details of step 232 will now be described with reference to the flowchart of
In embodiments, there may be different boundary signatures generated for different types of computing devices 114. For example, as explained below, one signal used in the boundary signature is signal strength of a mobile device at a boundary of the location. This is measured by the distance of mobile device 104 from the nearest base station 110. However, different mobile devices 104 may use different base stations 110. Accordingly, the boundary signature of a mobile device 104 having a first closest base station 110 may be different than the boundary signature of a mobile device 104 having a different closest base station 110. As explained below, the signals and data of a mobile device 104 are compared against the boundary signatures obtained in step 246 to infer whether the mobile device 104 is leaving a location. The boundary signatures used may be the specific boundary signatures for the same type of mobile device 104 being examined for departure from the location.
The boundaries defined by the boundary signatures may be precisely or nebulously defined boundaries. For example, as described below, GPS data may be used to define latitudinal and longitudinal boundaries of a location. In such a case, the boundaries of a location may be fairly precise, for example defined to within a few feet around a perimeter of a location. On the other hand, a boundary may be defined by signal strength of a user's mobile network. Where this is the only factor examined in a boundary signature, it may be that a user is a few blocks away from a location, or more, before the check-out engine is able to determine whether a user has departed from a location.
The flowchart of
In step 278, the RSSI of the radio signal of one or more mobile devices at the boundary of a location may be noted and stored for use in the boundary signatures. As noted above, the distance of a mobile device from a base station 110 may result in different signal strengths of the mobile device. By charting the signal strengths of one or more mobile devices at different positions at a location, this information may form part of the boundary signature. For example, a RSSI of the radio signal above some predefined level may be considered as being inside the boundary, while a RSSI of the radio signal below the predefined level may be defined as being outside of the boundary. As noted above, the one or more mobile devices used to form this aspect of the boundary signature should be consistent with each other, including for example all having their signal strength measured relative to the same base station 110.
As noted above, a location may have a computing device 114 and a WiFi network to which the computing device 114 may attach. In step 282, the SSID of a WiFi network and the RSSI of the network connection of one or more mobile devices at the boundary of a location may be noted and stored for use in the boundary signatures. For example, a RSSI of the network signal above some predefined level may be considered as being inside the boundary, while a RSSI of the network signal below the predefined level (or no signal at all) may be defined as being outside of the boundary. Moreover, a WiFi network within a location may include a number of localized hubs. In step 286, the BSSID of a local hub of a WiFi network and the RSSI of the local hub network connection of one or more mobile devices at the boundary of a location may also be noted and stored for use in the boundary signatures.
In step 290, the information from steps 274 to step 286 may be used to define boundary signatures for a given mobile device with respect to a particular location. This information is gathered and stored, for example within a computing device in a location, within a mobile computing device 104 and/or within service 120. The boundary signatures together may indicate a perimeter boundary for the location.
The data measured and stored for the boundary signatures in steps 274 through 286 may be obtained by a number of methods. In one example, crowd sourcing may be used where a number of different users measure the signals and data described above with mobile devices to get a variety of measurements of data and signals within and around a location. The boundary signatures may then be defined where GPS data is outside of a given perimeter, and/or where the RSSI of the radio signal and/or network connection signal falls below some predefined values. In further embodiments, wardriving may be used to measure WiFi access points around different positions of a location. In addition to data and signals taken at a boundary, data and signals at different locations within the location may also be determined and stored as part of the boundary signature. It is understood that data for defining boundary signatures may be obtained and stored in a variety of additional and/or alternative methods than those described above in
Referring again to
Further details of step 250 will now be explained with reference to the flowchart of
In step 300, the check-out engine 166 determines whether the mobile device is receiving a mobile network radio signal from a base station 110. If so, the RSSI of the received mobile network radio signal is measured in step 304. Similarly, in step 308, the check-out engine 166 determines whether the mobile device is receiving an SSID of a WiFi network within the location. If so, the RSSI of the received WiFi signal is measured in step 310. The same may be performed with respect to receiving a BSSID of a local node of a WiFi network in the location in steps 314 and 318.
In embodiments, in step 320, each measured signal and item of data is compared against the corresponding signals and data in the boundary signatures for that location. Where GPS data is available, that data is compared against the GPS data in the boundary signatures to determine whether the GPS data from the mobile device 104 indicates that the mobile device is inside of the location or has departed and is outside of the location. Where mobile network radio signal strength is available, that signal data is compared against the radio signal data in the boundary signatures to determine whether the radio signal strength in the mobile device 104 indicates that the mobile device is inside of the location or has departed and is outside of the location. The measured connection strength of the mobile device 104 to a WiFi network may be used in the same manner to determine whether the mobile device is inside of the location or has departed and is outside of the location.
The various signals and data generated by the mobile device 104 may be used in a variety of ways in the comparison to the boundary signatures to arrive at a confidence level. Each signal and data item described above may be weighted equally in reaching a confidence level. It may be clear in comparing the current GPS data of the mobile device 104 against the GPS data in the stored boundary signatures that the mobile device is outside of the location. If so, this factor would tend to increase the confidence level that the user has departed the location. It may also be clear in comparing the current RSSI for the mobile network radio signal against the same signal data in the stored boundary signals that the mobile device is outside of the location. If so, this factor would tend to increase the confidence level that the user has departed the location. The same may be so in comparing the current RSSI for the WiFi network connection. Based on the cumulative comparisons of the different factors, a confidence level may be determined.
Where signal and/or data information is missing from the current readings of the mobile device, that information is omitted from the comparison. For example, if only GPS information is available (the mobile device has no mobile network radio signal strength or a WiFi connection), then only portions of the boundary signature relating to GPS data are used in forming the confidence level.
Instead of weighting each of the above-factors evenly, one may be weighted more heavily than others. For example, it may be that GPS data is more accurate and reliable than signal strength of the radio signal or WiFi connection signal in determining whether the mobile device has departed a location. As such, in embodiments, the GPS data may be weighted more heavily than signal strength.
It is understood that the confidence level as indicated by the current readings of a mobile device may be determined upon comparison to stored mobile device readings by a variety of methods other than those described above. Moreover, the concept of arriving at a confidence level is described merely as one example. Further embodiments may operate without a confidence level. In such embodiments for example, when any of the GPS data, mobile network radio RSSI and/or WiFi network RSSI indicate that a mobile device is outside of a boundary when compared to the boundary signatures, this may be treated as the user having departed from the location.
Moreover, it is understood that other information from a mobile computing device may additionally or alternatively be used in determining whether a mobile device has left a given location. For example, referring again to
The check-out engine 166 may look for such indications of user activity in step 254. Where such user activity is detected, the check-out engine may determine in step 256 whether such user activity is predefined as being indicative of departure from a location (such as the above-identified example of a user driving in a car). If so, in embodiments using a confidence level, the confidence level may be adjusted upward accordingly in step 260. Some indicators of activity may indicate that a user is still in the location in step 256. Such indicators may adjust the confidence level downward in step 260.
Another indicator which may be used to determine that a user has left a first a location, such as Location A in
It may happen that there is a layered check-in scenario. For example, the user may check into a stadium or mall, and then check into a store or restaurant within the stadium or mall. In this instance, when the present system detects check-in at the nested location (store or restaurant in the above example), the system should not infer that the user has left the higher level location (stadium or mall in the above example). Thus, where the present system uses check-in at a second location to infer departure and checkout from a first location, the system may also check to make sure the first and second locations are distinct from each other. This information may be stored and used in the future by other mobile devices as indicative of a boundary of a location.
In step 264, the check-out engine 166 may determine whether the final confidence level is above some predefined threshold. If so, the check-out engine determines that the user has departed from the location in step 270. If the confidence level is below the threshold, the check-out engine determines that the user has not yet left the location in step 266. As noted above, alternative embodiments need not use the concept of a confidence level. One or more of the above-described factors (GPS, mobile network radio or WiFi signal strength, or user activity) may be determinative. Once one or more of these factors indicate that a mobile device is on the move or outside of the location boundary, the check-out engine 166 determines that the user has departed the location.
While embodiments of the present system use boundary signatures as a predefined characterization of the boundaries of a location, it is understood that the boundaries of a location may be defined by a variety of other methods in further embodiments. For example, the location of the mobile device may be known upon check-in. Moreover, the approximate size of the location may be known. The mobile device may include distance and motion sensing devices such as accelerometers so that the mobile device knows how far and in what direction the user has moved. Using this information together with a known size of the location, the present system may infer when a user has departed the location and then checkout as described below.
Referring again to
In accordance with the present system, the account records 130 for a user 102 may accurately reflect the user's activities. The check-out engine allows the account records to note not only the user's arrival time at a location, but the user's departure time from that location and the length of time the user spent at the location. This may be used to provide valuable demographic information about the user. Moreover, noting that a user has departed from a location can prevent the wasted time of a user's friends looking for the user at a location that the user has already left.
Computer 610 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 610 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 610. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above are also included within the scope of computer readable media.
The system memory 630 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 631 and random access memory (RAM) 632. A basic input/output system 633 (BIOS), containing the basic routines that help to transfer information between elements within computer 610, such as during start-up, is typically stored in ROM 631. RAM 632 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 620. By way of example, and not limitation,
The computer 610 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
The computer 610 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 680. The remote computer 680 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 610, although only a memory storage device 681 has been illustrated in
When used in a LAN networking environment, the computer 610 is connected to the LAN 671 through a network interface or adapter 670. When used in a WAN networking environment, the computer 610 typically includes a modem 672 or other means for establishing communications over the WAN 673, such as the Internet. The modem 672, which may be internal or external, may be connected to the system bus 621 via the user input interface 660, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 610, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
The foregoing detailed description of the inventive system has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the inventive system to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the inventive system and its practical application to thereby enable others skilled in the art to best utilize the inventive system in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the inventive system be defined by the claims appended hereto.