The present disclosure relates to the field of identification of computers.
The capability to identify individual computer devices is of key importance for the tracking of the device's user. To track devices, companies build computer products with a device identifier or Unique Identifier (UID) that is ensured to be unique among all identifiers used for that object and for a specific purpose. A unique identifier can be a serial number, a set of random numbers, or a combination of names and codes allocated by choice. Examples of unique identifiers are the Organizationally Unique Identifiers (OUID) and Apple's Unique Device Identifier (UDID). Many computer devices are linked to one or more of these identifiers which allows others to not only identify the device, but discriminate that particular device from all other devices. This ability is particularly important for developers to track and record the history of actions for individual devices and therefore the actions of the user.
A device's unique identifier has been used as a means for mobile advertisers and ad networks to count how often users install applications, interact with the applications, and when they view and click on advertisements presented through the applications. This is known as the conversion rate of a particular advertisement and is considered to be the most important performance metric used by advertisers. The unique identifier is used as the integral piece of information in this process as it links the clicking of the advertisement with the download of the application through a hashed version of the UID which each step in the process produces. Hence without a device's unique identifier, the link between click and conversion would be severed and advertisers would not be able to accurately compute their cost per install across different platforms, thereby inhibiting their ability to justify and appropriately target their advertising.
Currently, the chief method of tracking devices and users is through the use of the device's UID (Android) or UDID (Apple) as described previously. However, access to these unique identifiers is being greatly diminished (with the intent to ultimately be eradicated) as companies begin to tighten their privacy policies to protect users from malicious content and unlicensed access to their devices. While developers are currently attempting to implement the use of a different unique device identifier to continue monitoring mobile device users, it can be assumed that any identifier which is unique to the device will be blocked from being accessed by third party applications as it too provides direct access to the device and user. An unintended consequence of this action is that third party applications that rely on unique device identifiers to enable functionality other than advertising will no longer be able to do so.
The following description provides specific details for an understanding of various examples of the technology. One skilled in the art will understand that the technology may be practiced without many of these details. In some instances, structures and functions have not been shown or described in detail or at all to avoid unnecessarily obscuring the description of the examples of the technology. It is intended that the terminology used in the description presented below be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain examples of the technology. Although certain terms may be emphasized below, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section.
Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense, as opposed to an exclusive or exhaustive sense; that is to say, in the sense of “including, but not limited to.” As used herein, the term “connected,” “coupled,” or any variant thereof means any connection or coupling, either direct or indirect between two or more elements; the coupling of connection between the elements can be physical, logical, or a combination thereof. Additionally, the words, “herein,” “above,” “below,” and words of similar import, when used in this application, shall refer to this application as a whole and not to particular portions of this application. When the context permits, words using the singular may also include the plural while words using the plural may also include the singular. The word “or,” in reference to a list of two or more items, covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of one or more of the items in the list. References are made herein to routines and subroutines; generally, it should be understood that a routine is a software program executed by computer hardware and that a subroutine is a software program executed within another routine. However, routines discussed herein may be executed within another routine and subroutines may be executed independently (routines may be subroutines and visa versa).
Certain elements appear in various of the Figures with the same capitalized element text, but a different element number. When referred to herein with the capitalized element text but with no element number, these references should be understood to be largely equivalent and to refer to any of the elements with the same capitalized element text, though potentially with differences based on the computing device within which the various embodiments of the element appears.
The Wireless Network 135 may form a network connection with the Network 150. The Listening Post 130 may form a network connection (such as an Ethernet or other packet network connection) with a Network Controller 600 and/or with or to the Network 150, while the Network Controller 600 connects to the Network 150. The Network Controller 600 may, for example, coordinate network traffic and network utilization as Mobile Devices move relative to WIFI or other base stations (such as Listening Post 130); the Network Controller 600 may also, for example, monitor a set of WIFI base stations (such as Listening Post 130), the availability thereof and other aspects of the network services provided by such base stations. Commercial examples of Network Controller 600 include the MOTOROLA AIRDEFENSE SOLUTIONS, provided by Motorola, Inc., and the CISCO MOBILITY SERVICES ENGINE, provided by Cisco, Inc. As discussed further herein, the Network Controller 600 connects to the Network 150 to send Network Reports 705 to the POIN Server 200. The connection between the Network Controller 600 and the POIN Server 200 may be secure and may require authentication and authorization between the components.
The Mobile Device 400 is also illustrated as being within detecting distance of an Environmental Transmitter 155 (“Envir TX 155”). The Envir TX 155 may be any emitter of radio frequency energy, such as, for example, a WIFI base station, a cellular network (such as Wireless Network 135), a broadcaster (such as Broadcaster 165), a satellite (including a GPS satellite, a satellite television broadcaster, or similar). The Mobile Device 400 may form a network connection with the Envir TX 155 or may detect the radio frequency energy emitted by the Envir TX 155. As discussed herein, the Mobile Device 400 may detect the radio frequency emitted by the Envir TX 155 and may record the characteristics thereof, such as the frequencies utilized, the power level detected, an encoding format of information encoded in the radio frequency energy, and some or all information transmitted by the radio frequency energy, such as, for example, an identifier of the Envir TX 155. Information regarding the radio frequency energy detected by the Mobile Device 400 may be recorded in, for example, the RX Data 520 record, illustrated in
The Network 150 comprises computers, network connections among the computers, and software routines to enable communication between the computers over the network connections. Also connected to the Network 150 is an Other Device 160. The Other Device 160 may be, for example, a personal computer, a tablet computer, a laptop, a television, a radio, an ebook reader, or another computer capable of rendering audio or visual media. The Other Device 160 may be implemented by a computer similar to the Mobile Device 400. The Other Device 160 is illustrated as connecting to the Network 150 and a Broadcaster 165, such as television, radio, or satellite broadcaster (the Other Device 160 may not have both such connections). The Mobile Device 400 and the Other Device 160 are illustrated as being proximate to and being used by a Person 145. The Person 145 is meant to be the same person at the same or at different times (the Mobile Device 400 may be proximate to the Other Device 160), though the Person 145 may also represent different people.
Also illustrated in
Also illustrated in
Computers capable of implementing the POIN Server 200, the Mobile Device 400, and the Network Controller 600, also referred to together herein as a “Computing Device” or as “Computing Devices,” are further illustrated in
The computers illustrated in
The software routines and data groups used by the software routines may be stored and/or executed remotely relative to any of the computers through, for example, application virtualization.
In some embodiments, the Computing Device illustrated in
As shown in these Figures, the Computing Device includes a Network Interface for connecting to the Network 150. The Computing Device also includes at least one Processing Unit, Memory, and either an Optional Display (such as Optional Display 240 or 640) or a Display (such as Display 440), all interconnected along with the Network Interface via a Bus (220, 420, or 620). The Memory generally comprises a random access memory (“RAM”), a read only memory (“ROM”), and a permanent mass storage device, such as a disk drive or SDRAM (synchronous dynamic random-access memory). The Memory stores program code for software routines. In the case of the POIN Server 200, the routines include, for example, the Identity Assignor routine 800. In the case of the Mobile Device 400, the routines include, for example, Communication Software 460 routine(s) (such as software which enables communication through at least layers one through five of the Open System Interconnection (OSI) model; the other devices may also include this software), POIN Compatible Software 461 routines (which may include, for example, a barcode scanner routine, a shopping list service routine, a search service routine, a routing service routine (for finding routes between locations), a location and position recording routine, and an environmental radio frequency energy sensing and recording routine), and a Device Reporting Module 462 routine (which sends Device Reports to the POIN Server 200). In the case of the Network Controller 600, the routines include, for example, Communication Software 660 routine(s) (such as software which enables communication through at least layers one through five of the Open System Interconnection (OSI) model; the other devices may also include this software) and a Network Reporting Module 461 routine (which sends Network Reports to the POIN Server 200).
In addition, the Memory also stores an Operating System. These software components may be loaded from a non-transient Computer Readable Storage Medium into Memory of the Computing Device using a drive mechanism (not shown) associated with a non-transient Computer Readable Storage Medium, such as a floppy disc, tape, DVD/CD-ROM drive, memory card, or other like storage medium. In some embodiments, software components may also or instead be loaded via a mechanism other than a drive mechanism and Computer Readable Storage Medium (e.g., via Network Interface).
The Computing Device may also comprise hardware supporting optional input modalities, Optional Input 225 and 645 and Input 425, such as, for example, a touchscreen, a keyboard, a mouse, a trackball, a stylus, a microphone, transmit and receive antennae (to the extent not considered part of the Network Interface), and a camera.
Computing Device also comprises or communicates via Bus with Datastore, illustrated further in
The steps in
Referring to
The Network Report may further comprise an identifier of the network node (such as Listening Post Identifiers 710) which detected the MAC Address and which communicated the MAC Address to the Network Controller 600, and which is likely to be proximate to the Mobile Device 400. In
At step 925, “Network LUPA” is received. “Network LUPA” may comprise, for example, logical usage pattern data (“LUPA”) as detected by, for example, the Listening Post 130. The Network LUPA may be stored, for example, in Visible LUPA 720 records in the Network Controller 600 or as Network LUPA 315 in the POIN Server 200.
At step 930 (which, as other steps, may be optional) identifying information may obtained from the Network LUPA 315. The Network LUPA may comprise Identifying Information 355 such as, for example, externally visible or readable information (“visible” because it is, for example, unencrypted, or encoded according to a known and identifiable process, or because, for example, the POIN Server 200 has the decryption key or can execute a process to decode the information), which information may be input by the Person 145 into a routine executing on the Mobile Device 400 (such as into a search routine, a shopping list service routine, or into a POIN Compatible Software 461 software application), or produced or output by a routine executing on the Mobile Device 400 (such as a URL), or information returned to the Mobile Device 400, such as a network address. The Identifying Information 355 may comprise, for example, information such as, “Where are the chocolate cookies,” or a scan of a barcode (or the result thereof), or a search for a location, or the addition of an item to a shopping list, a URL, a network address, a geofence trigger event, and similar. While not part of the Network LUPA, the same or similar information may be received from or be identified in the Device LUPA. The Identifying Information 355 may be obtained by parsing the Network LUPA 315 for fields known or expected to contain Identifying Information 355; obtaining the Identifying Information 355 may be performed by the Network Controller 600 or by the POIN Server 200.
At step 935 the Identifying Information 355 may be stored, for example, as separate records or as part of Network Reports 305 in the POIN Server 200.
Returning to
Referring to
At step 1015, the Device LUPA 530 may be processed to obtain Identifying Information 355, as discussed above in relation to step 930 in
As noted above, at step 1020, the Mobile Device 400 location, position, and orientation information may be received. The location information may be received from, for example, a GPS sensor in the Mobile Device 400 or from a location-service to which the Mobile Device 400 subscribes (which location may be reported by the location-service to the Mobile Device 400 which then reports it to the POIN Server 200 or which location may be reported by the location-service to the POIN Server 200). The Mobile Device 400 may also include position and orientation sensors (such as compass, accelerometers, and similar) and may also provide this information in the Device Reports 510.
If not already performed by a location-service (or in addition to a location provided by a location-service), at step 1025, the RX Data 520 may be processed to determine the location of the Mobile Device 400, such as by, for example, determining a radius of the Mobile Device 400 relative a radio frequency emitter, such as Envir TX 155. This step may be performed by looking up the identity of the emitter based on the RX Data 520 (such as based upon an identifier of the Envir TX 155, a frequency used by the Envir TX 155, or similar, in the RX Data 520) in the Environmental RX Characteristics 340 records and determining or looking up a radius relative to the emitter at which the RX Data 520 may have been detected (such as according to a power level); this step may calculate the attenuation of the radio frequency energy from the emitter, taking into account the geographic and topologic characteristics of the environment around the emitter; this step may be performed by looking up known, previously recorded and/or previously calculated, power levels around the emitter. This step may involve determining the radius of the Mobile Device 400 relative to two or more emitters and determining where the radii overlap. If three or more emitters are recorded in the RX Data 520 (which emitters have corresponding entries in the Environmental RX Characteristics 340 record), this step may involve trilaterating or triangulating the position of the Mobile Device 400 relative to the emitters.
At step 1030 the location information received in or determined from information received in the Device Reports 510 may be normalized relative to a coordinate system utilized by the POIN Server 200, such as a latitude, longitude, and elevation scheme, a geodetic scheme relative to a building, or relative to another location system utilized by the POIN Server 200. For example, an address may be converted to latitude and longitude. At step 1035 the information may be stored, for example, as part of Device Reports 320 in the POIN Server 200.
At step 1125, the confidence of the MAC Address groupings may be determined based on, for example, the number of sightings of the MAC Address at or near the location Y, the proximity of the location information in the Network Reports 305 and the Device Reports 320, the number of matches between the Identifying Information 355 in the Network Reports 305 and the Device Reports 320, matches between the Identifying Information 355 in the Network Reports 305 and the Device Reports 320 and information associated with locations in the Network Reports 305 and the Device Reports 320 (such as if the Identifying Information 355 in a Device Report 320 includes a search for cookies and location in a Network Report 305 is proximate to a store selling cookies). The confidence determined at step 1125 may be stored as Correlation Score 335.
At step 1130, if the confidence determined at step 1125 is above a threshold, then at step 1135 an identifier may be assigned to the Mobile Device 400 and stored as Mobile Device Identifier 330. At step 1140, the identifier may be transmitted to the Mobile Device 400, such as in the form of a cookie or another identifying record. The identifier may be stored at the Mobile Device 400 as a Device Identifier 535 record. The process may then return to
Returning to
At step 830, the Device Identifier 535 may be received in conjunction with behavioral information, which behavioral information may include a location of the Mobile Device 400, which location may be a location proximate to a venue, such as Venue 170, at which products or services may be obtained. At step 835, content served to the Mobile Device 400 may be optimized based on, for example, the location of the Mobile Device 400 relative to the venue. The content served to the Mobile Device 400 may further be optimized based on, for example, the behavioral information received at step 825, such as by, for example, serving advertisements to the Mobile Device 400 which compete with or reinforce advertisements served to Person 145 at Device B and which relate to products or services available at the venue.
The above Detailed Description of embodiments is not intended to be exhaustive or to limit the disclosure to the precise form disclosed above. While specific embodiments of, and examples are described above for illustrative purposes, various equivalent modifications are possible within the scope of the system, as those skilled in the art will recognize. For example, while processes or blocks are presented in a given order, alternative embodiments may perform routines having operations, or employ systems having blocks, in a different order, and some processes or blocks may be deleted, moved, added, subdivided, combined, and/or modified. While processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed in parallel, or may be performed at different times. Further, any specific numbers noted herein are only examples; alternative implementations may employ differing values or ranges.
This application is a continuation-in-part of and claims the benefit of priority of U.S. patent application Ser. No. 13/760,927, titled “Identify a Radio Frequency Device by MAC Address System and Method,” filed Feb. 6, 2013, and is a continuation-in-part of and claims the benefit of priority to U.S. patent application Ser. No. 13/656,566, titled “Optimizing the Relevance of Mobile Content Based on Users State of Motion,” filed Oct. 19, 2012, and naming inventor Jonathan A. Croy; U.S. patent application Ser. No. 13/656,566, in turn, claims the benefit of priority to U.S. Provisional Patent Application No. 61/550,283, filed Oct. 21, 2011, which application the present application also claims the benefit of priority to. The above-cited applications are incorporated herein by reference in their entirety, for all purposes.
Number | Date | Country | |
---|---|---|---|
61550283 | Oct 2011 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13760927 | Feb 2013 | US |
Child | 13922155 | US | |
Parent | 13656566 | Oct 2012 | US |
Child | 13760927 | US |