This application relates to systems and methods for delivering targeted advertising to consumers, and in particular to systems and methods for determining a user's activity and selecting advertising targeted for that activity.
The system and methods described herein determine not only a user's location but also a user's activity, delivering activity-based targeted messages to a user device for display to the user.
According to one aspect, a method is presented comprising receiving at least one first signal; determining, based at least in part upon the first signal, a current location and a current speed of a device; determining an activity of a user of the device based at least in part upon at least one of the device's current location and the device's current speed; selecting a message based at least in part upon the activity of the user; and transmitting the message. In some embodiments, the first signal is transmitted by the device. In further embodiments, the first signal comprises at least two Global System for Mobile communications (“GSM”) signals transmitted by the device. In still further embodiments, the first signal comprises a signal encoding the device's current location and the device's current speed.
In some embodiments, the device's current location and the device's current speed are determined by the device. In further embodiments, the device's current location and the device's current speed are determined based at least in part upon a plurality of second signals. In still further embodiments, the plurality of second signals comprises a plurality of GSM signals. In still further embodiments, the plurality of second signals comprises a plurality of Global Positioning (“GPS”) signals.
In some embodiments, determining the activity of the user further comprises determining the activity of the user based at least in part upon the device's current speed and direction. In further embodiments, determining the device's current location further comprises determining a class of location. In still further embodiments, determining the device's current location further comprises determining a specific location. In still further embodiments, determining the activity of the user further comprises selecting from a plurality of activities an activity having an activity template most closely matching the device's current location and current speed. In still further embodiments, determining the activity of the user further comprises selecting from a plurality of activities an activity having an activity template most closely matching the device's current location, current speed, and current direction.
In some embodiments, the message is an advertisement. In further embodiments, the advertisement advertises a product or service selected based at least in part upon the user activity.
According to another aspect, a system is presented comprising a receiver adapted to receive at least one first signal; a component adapted to determine, based at least in part upon the at least one first signal, a current location and a current speed of a device; a component adapted to determine an activity of a user of the device based at least in part upon at least one of the device's current location and the device's current speed; a component adapted to select a message based at least in part upon the activity of the user; and a transmitter adapted to transmit the message.
In some embodiments, the first signal is transmitted by the device. In further embodiments, the first signal comprises at least two GSM signals transmitted by the device. In still further embodiments, the first signal comprises a signal encoding the device's current location and the device's current speed.
In still further embodiments, the device's current location and the device's current speed are determined by the device. In still further embodiments, the device's current location and the device's current speed are determined based at least in part upon a plurality of second signals. In still further embodiments, the plurality of second signals comprises a plurality of GSM signals. In still further embodiments, the plurality of second signals comprises a plurality of GPS signals.
In some embodiments, the component adapted to determine the activity of the user is further adapted to determine the activity of the user based at least in part upon the device's current speed and direction. In further embodiments, the component adapted to determine the device's current location is further adapted to determine a class of location. In still further embodiments, the component adapted to determine the device's current location is further adapted to determine a specific location. In still further embodiments, the component adapted to determine the activity of the user is further adapted to select from a plurality of activities an activity having an activity template most closely matching the device's current location and current speed. In still further embodiments, the component adapted to determine the activity of the user is further adapted to select from a plurality of activities an activity having an activity template most closely matching the device's current location, current speed, and current direction.
In some embodiments, the message is an advertisement. In further embodiments, the advertisement advertises a product or service selected based at least in part upon the user activity.
According to another aspect, a mobile device is presented comprising a transmitter adapted to send at least one first signal; a message comprising content that is based at least in part upon a selected activity of a user of the mobile device, wherein the activity is selected based at least in part upon the at least one first signal; and a receiver coupled to the transmitter and adapted to receive the message.
In some embodiments, the first signal comprises at least two GSM signals. In further embodiments, the first signal comprises a second signal encoding a current location of the mobile device and a current speed of the mobile device.
In some embodiments, a mobile device further comprises a component adapted to determine the current location of the mobile device and the current speed of the mobile device. In further embodiments, the component is further adapted to determine the current location of the mobile device and the current speed of the mobile device based at least in part upon a plurality of third signals. In still further embodiments, the plurality of third signals comprises a plurality of GSM signals. In still further embodiments, the plurality of third signals comprises a plurality of GPS signals.
In still further embodiments, a mobile device further comprises a display adapted to display at least a portion of the message.
According to another aspect, a system is presented comprising a component adapted to receive a plurality of first signals; a component adapted to determine, based at least in part upon at least some of the plurality of first signals, a current location and a current speed of the system; a component adapted to determine an activity of a user of the system based at least in part upon at least one of the current location of the system and the current speed of the system; a transmitter adapted to transmit the activity of the user; and a component adapted to receive a message based at least in part upon the activity of the user.
In some embodiments, the plurality of first signals comprises a plurality of signals emitted by at least one cell tower. In further embodiments, the plurality of first signals comprises a plurality of signals emitted by a plurality of GPS satellites.
In some embodiments, the component adapted to determine the current location of the system and current speed of the system is further adapted to determine a current direction of the system. In further embodiments, the component adapted to determine the activity of the user is further adapted to determine the activity of the user based at least in part upon at least one of the system's current location, the system's current speed, and the system's current direction.
In some embodiments, the system further comprises a display adapted to display at least a portion of the message.
In some embodiments, the component adapted to determine the system's current location is further adapted to determine a class of location. In still further embodiments, the component adapted to determine the system's current location is further adapted to determine a specific location. In still further embodiments, the component adapted to determine the activity of the user is further adapted to select from a plurality of activities an activity having an activity template most closely matching the system's current location and current speed. In still further embodiments, the component adapted to determine the activity of the user is further adapted to select from a plurality of activities an activity having an activity template most closely matching the user's current location, current speed and current direction.
In some embodiments, the message is an advertisement. In further embodiments, advertisement advertises a product or service selected based at least in part upon the user activity.
According to another aspect, a method is presented comprising receiving a plurality of first signals; determining, based at least in part upon at least some of the plurality of first signals, a current location and a current speed of a device; determining an activity of a user of the device based at least in part upon at least one of the device's current location and the device's current speed; transmitting the activity of the user; and receiving a message based at least in part upon the activity of the user.
In some embodiments, receiving the plurality of first signals comprises receiving a plurality of signals emitted by at least one cell tower. In further embodiments, receiving the plurality of first signals comprises receiving a plurality of signals emitted by a plurality of GPS satellites.
In some embodiments, determining the current location of the device and current speed of the device further comprises determining a current direction of the device. In further embodiments, determining the activity of the user further comprises determining the activity of the user based at least in part upon at least one of the device's current location, the of the device's current speed, and the device's current direction.
In some embodiments, the method further comprises displaying at least a portion of the message.
In some embodiments, determining the device's current location further comprises determining a class of location. In further embodiments, determining the device's current location further comprises determining a specific location.
In some embodiments, determining the activity further comprises selecting from a plurality of activities an activity having an activity template most closely matching the device's current location and current speed. In further embodiments, determining the activity further comprises selecting from a plurality of activities an activity having an activity template most closely matching the device's current location, current speed, and current direction.
In some embodiments, message is an advertisement. In further embodiments, the advertisement advertises a product or service selected based at least in part upon the user activity.
The accompanying drawings are not intended to be drawn to scale. In the drawings, each identical or nearly identical component that is illustrated in various figures is represented by a like numeral. For purposes of clarity, not every component may be labeled in every drawing. In the drawings:
The systems and methods of this disclosure are not limited in their application to the details of construction and the arrangement of components set forth in the following description or illustrated in the drawings. The systems and methods are capable of other embodiments and of being practiced or of being carried out in various ways. Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” or “having,” “containing,” “involving,” and variations thereof herein, is meant to encompass the items listed thereafter and equivalents thereof as well as additional items.
Described herein are systems and methods for providing a user with a targeted message, such as an advertisement, selected based upon an activity in which the user is determined to be engaged. In embodiments, the user's activity is determined based upon one or more signals carrying information from which the user's position and speed and/or direction of movement may be determined. A message is chosen based upon the determined activity, such as an advertisement for a product or service of relevance to the activity. The selected message is transmitted for display on a device viewable by the user.
For example, a trail runner may carry a mobile device for use in case of emergency. From the runner's location (for example, in a park) and the runner's speed (for example, between 4 mph and 14 mph), it can be determined that the runner's activity is trail running. Showing an advertisement for a nearby gas station, then, may be inappropriate or not particularly of interest to the trail runner. However, showing an advertisement for a sports drink available at the gas station is not only geographically in context, but also in context with the runner's current activity, and therefore with the runner's immediate needs. Thus, by using information about both the user's location and the user's speed of motion to determine the user's activity, better targeting of advertisements can be achieved.
Various embodiments of examples of systems and methods are described below with reference to the figures.
An example of an environment in which examples of embodiments of the systems and methods described herein may be deployed is illustrated in
In embodiments, communication towers 106 are cell phone towers. In other embodiments, communication towers 106 are receiving stations for radio communications such as the signals sent and received by BLACKBERRY devices, wi-fi devices, other wireless devices, or any other mobile devices that can communicate with communications stations such as fixed communications stations. Communication towers 106 may not be literal towers; in embodiments a communication tower 106 may be any communications station or similar location equipped to send and/or receive communications, wirelessly and/or by wire, via the internet or by any other suitable protocol. Communication towers 106 may include any kind of communication station capable of sending and/or receiving information from which the instantaneous location of mobile device 104 can be determined, whether determined by a component of the mobile device 104 itself, by a component located at a communication tower 106, or a component located elsewhere (such as server 108).
In the embodiment illustrated in
The mobile device 104 may also determine its current traveling speed (i.e., a speed of motion of the user holding the mobile device, a speed of motion of a car in which the mobile device is traveling, etc.), for example, by comparing two determinations of location with a known time interval between them. As used herein, the term “speed” may refer to either scalar speed or vector velocity (i.e. speed and direction). Thus, where a first location determination yields a latitude and longitude of (lat1, long1), and a second location determination taken at a time Δt later yields a latitude and longitude of (lat2, long2), the mobile device 104 may compute its current speed (defined here as the average speed over the interval Δt) as follows:
A direction of motion may also be determined by any suitable mathematical approach. In some embodiments, the location may also include an altitude component. The altitude component may be included in a determination of an activity (e.g., in transit in an airplane). The altitude component may also be included in the determination of the speed by extension of equation (1).
Thus in some embodiments a component of the mobile device 104 may determine the mobile device's current location and current speed (which may include a scalar speed and/or a vector velocity) based upon signals received from communications towers 106. Determining the location of the mobile device may include determining location coordinates, as in the example above. In other embodiments, determining the location includes determining, based upon such coordinates, a general class of location (e.g., hotel, airport, highway, supermarket, private home). In other embodiments, determining the location includes determining, based upon such coordinates, a specific location (e.g., at a MARRIOTT hotel, at the Boston-Cambridge MARRIOTT hotel, on I-90, at Logan airport). Determining the location may also include any combination of the previous. The component of mobile device 104 that performs this determination may be implemented in software, hardware, or a combination of the two. For example, the mobile device 104 may include software running on a processing unit, the software being adapted to determine location and/or speed from signals received by the mobile device's receiver unit and passed to the processing unit. In alternative embodiments, the mobile device 104 may have hardware that is hard-coded or configured to determine location and/or speed.
In the embodiment illustrated in
Server 108 includes or is in communication with storage 110 in which is stored information relating a plurality of user activities to locations and speeds. For example, storage 110 may include a database, such as a relational database, or any other data structure relating user activities to combinations of location and speed, as discussed further below. In embodiments, server 108 determines a user activity which is selected based at least in part upon one or more of the current location and current speed of the mobile device 104. For example, the user activity may be selected from a data structure stored in storage 110 that relates various user activities to locations and speeds, as discussed further below.
Having determined a user activity, server 108 selects a message for transmission to mobile device 104. The message may include any information transmitted to a mobile device 104, such as an advertisement, travel advisory, traffic information, other news message, or any other message. In embodiments the message is selected based upon the determined user activity. For example, if the user activity is determined to be sailing (based, for example, on a location within a body of water and a speed of less than 30 mph), the message may include a weather advisory, an advertisement for a restaurant close to the nearest marina, or an advertisement for a sailing gear company. Similarly if the user activity is determined to be waiting for a flight (based, for example, on a location within an airport terminal and a speed of 0 mph), the message may include advisories from the Transportation Safety Administration, an advertisement for a hotel located near the terminal, or an advertisement for a restaurant located within the terminal. Many other suitable relationships will be appreciated to exist between determined activities and selected messages.
The selected message may be transmitted by a transmitter controlled by server 108. Such a transmitter may, in embodiments, include any kind of transmitter adapted to send a signal wirelessly and/or by wire, via the internet or by any other suitable protocol. The transmitter may include a module or component of a circuit, chip, or device that is adapted to deliver a signal via an output, wirelessly and/or by wire, via the internet or by any other suitable protocol. Thus, in embodiments, the message is encoded and transmitted to the mobile device 104 by server 108.
The embodiment illustrated in
In still a further embodiment that is a variation on
In embodiments, GPS device 202 transmits its current location and/or current speed to server 206, again as discussed above in connection with
Embodiments may include different ways of transmitting the user's location and/or velocity information to the server. In embodiments, data from which the location of mobile device 104 can be determined is transmitted from communication towers 106 to server 108, which uses the data to compute a location and speed of mobile device 104, and determines a user activity based upon the location and speed. Server 108 may then determine a message based upon the user activity and transmit the message to the mobile device 104.
In further embodiments, data from which the location of mobile device 104 (or GPS device 202) can be determined is transmitted from communication towers 106 (or satellites 204) to mobile device 104 (or GPS device 202). Mobile device 104 (or GPS device 202) determines its own location and transmits its location to server 108/206. Server 108/206 may then compute a speed from successive location points, and determine a user activity based upon the location and speed of mobile device 104 (or GPS device 202). Server 108/206 may then determine a message based upon the user activity and transmit the message to the mobile device 104 (or GPS device 202).
In still further embodiments, data from which the location of mobile device 104 (or GPS device 202) can be determined is transmitted to mobile device 104 (or GPS device 202), which computes its own location and speed. Mobile device 104 (or GPS device 202) may then transmit its location and speed to server 108/206, which determines a user activity. Server 108/206 may then determine a message based upon the user activity and transmit the message to the mobile device 104 (or GPS device 202).
In still further embodiments, the mobile device 104 (or GPS device 202) may store an activity database locally. In such embodiments, data from which the location of mobile device 104 (or GPS device 202) can be determined is transmitted to mobile device 104 (or GPS device 202), which computes its own location and speed. Mobile device 104 (or GPS device 202) may then determine an activity from the local activity database, based upon the determined location and speed. Mobile device 104 (or GPS device 202) may transmit the activity to the server 108/206, which determines a message based upon the user activity and transmit the message to the mobile device 104 (or GPS device 202).
Thus, a “signal” transmitted by a device or received by a server may, in embodiments, include one or more of the following: an activity; information from which an activity may be determined; a location and/or a speed (scalar or vector); and/or information from which a location and/or a speed (scalar or vector) can be determined.
As noted above, the signal received in block 302 may include one or more of a location and/or a speed (scalar or vector); and/or information from which a location and/or a speed (scalar or vector) can be determined. Further as discussed above, the received signal may originate at the mobile device, at a communication tower, or at a satellite. At block 304, the current location and speed of the mobile device is determined, either by simply reading the location and speed from the received signal, calculating the location and speed based upon information in the received signal, or otherwise interpreting the received signal to determine the location and speed.
At block 306, the user activity is determined based upon the location and speed. The user activity may be determined, for example, by examining a database in communication with the server. Embodiments of methods of determining user activity are discussed below.
At block 308, a message is selected based upon the determined activity. The message may be chosen from a message database in communication with the server. For example, in embodiments the message database may include a list of messages associated with each of the available activities. The component that selects the message may retrieve the list of messages associated with the activity determined in step 306 and select one at random or according to any other order. As noted above, the message may include an advertisement, travel advisory, traffic information, other news message, or any other message. The message is transmitted at block 308 by a transmitter in communication with the server.
The signal received in block 312 may include signals from GPS satellites, GSM signals from cell towers, or any other information from which a location and/or a speed (scalar or vector) of the mobile device can be determined. At block 314, the current location and speed of the mobile device is determined, for example by calculating the location and speed based upon information in the received signal, or otherwise interpreting the received signal to determine the location and speed.
At block 316, the user activity is determined based upon the location and speed. The user activity may be determined, for example, by examining a database local to the mobile device. Embodiments of methods of determining user activity are discussed below. At block 318, the activity is transmitted to the server.
In an alternative embodiment, instead of determining the user activity itself (block 316), the mobile device transmits its location and speed information determined in block 314 to the server, and the server determines the activity based upon the location and speed information.
Either way, the server selects a message based upon the received (or determined) activity and transmits the message, which is received by a receiver at the mobile device in block 320. As noted above, the message may include an advertisement, travel advisory, traffic information, other news message, or any other message. Upon receiving the message, the mobile device may display the message to the user, for example, on a screen incorporated into the mobile device. The message may include pictures, text, sounds, video, or any combination of the above.
As noted above, once the user's speed and location have been determined, the system can then refer to a database or other data structure to determine a user activity. Once the activity is determined, a message (such as an advertisement, travel advisory, traffic information, other news message, or any other message) can be selected based upon the activity for transmission to the user. In embodiments, the system includes a data structure that stores activity templates linking activities with locations and speeds. Activity templates or any other structure associating activities, locations, and/or speeds may include any type of data structure, including a flat file based structure, or a data structure resident in either the device or server memory or long-term storage. In the discussion herein, the terms “database” or “data structure” may be used, but they should be understood to refer to any suitable structure for storing activities, locations, and/or speed.
For example, when the user's activity is highway driving, the user can be expected to maintain a relatively uniform speed of motion fitting known driving patterns (for example, speeds within the bounds of normal driving activity, along known roadways). Thus, in embodiments, an example of an activity template would link the activity “highway driving” with speeds in a particular range and locations along a highway. Once it has been determined that a user's activity is highway driving, one or more advertisements, travel advisories, or other messages relevant to the needs of a highway driver can be transmitted to the user's mobile device. Examples include advertisements for products or services located geographically close to the user at the time the message is delivered, products or services located en-route to the projected destination, or products or services located at a projected destination of the user.
As another example, when the user's activity is running, a the user may move at a speed slower than driving, but faster than walking, in locations along known roadways, in parks, or in other recreational areas. The running user may move in repeating patterns, such as circling a path within a park several times. Thus, in embodiments, an example of an activity template would link the activity “running” with speeds of, for example, between 4 and 14 mph, in locations within a park. Once it has been determined that the user is running, one or more relevant messages such as advertisements for products or services useful to someone exercising can be displayed. These may include, for example, items such as exercise drinks, services provided by a local physical therapist, or nearby restaurants. Non-advertising messages such as weather conditions may be provided. In embodiments, other conditions may be combined with the user activity to further refine selection of the message. For example, where the activity is determined to be running and the weather conditions indicate rain, advertisements can be transmitted for nearby indoor establishments where the runner may seek shelter.
In embodiments, the server retrieves a location 402 from the database. As noted previously, a location may be stored at any level of specificity, including location coordinates (or a range of coordinates), a general class of location (e.g., hotel, airport, highway, supermarket, private home), or a specific location (e.g., at a MARRIOTT hotel, at the Boston-Cambridge MARRIOTT hotel, on I-90, at Logan airport). Location entries in the database may include one or more of the above types.
Associated with location 402 in the database are one or more speeds 404. Speeds may be specified, for example, as numbers, as numeric ranges, and/or as a combination of both. The server looks for a speed 404 that matches the determined current speed of the mobile device. The matching speed 404 may be a range of speeds into which the current speed of the mobile device falls. Associated with speeds 404 in the template (structure) 400 are activities 408.
In embodiments, and for some activities, the matching speed together with the selected location are sufficient to determine the activity. For example, in
In embodiments, a direction of motion is computed in addition to location and speed, and the template (structure) 400 also includes directions 406 that can be used to determined the user activity. So, for example, where SPEED 3 matches the current speed of the mobile device and DIRECTION 1 matches the direction of motion, ACTIVITY 3 can be determined to be the user activity. Likewise, where SPEED 3 matches the current speed of the mobile device and DIRECTION 2 matches the direction of motion, ACTIVITY 4 can be determined to be the user activity. Directions 406 may be particular to the nature of location 402. For example, where location 402 is a highway, directions 406 may include specifications such as “northbound,” “southbound,” “eastbound,” “westbound,” etc. Where location 402 is a location such as “within 4 miles of a ballpark,” directions 406 may include specifications such as “toward the ballpark,” “away from the ballpark,” etc. Other types of direction specification will be appreciated.
It should be noted that while template (structure) 400 shows a location entry 402 and associated speed entries 404, alternatives to template (structure) 400 may be used in some embodiments. For example, the server may first find a speed entry in the database that matches the speed of the mobile device, and then look at locations associated with the matching speed entry to find a matching location. The location-speed pair (or, where appropriate, the location-speed-direction triplet) thus identified can the be to select an associated user activity.
It should also be noted that templates (structures) 400 and 500 are presented only as examples database structures that can be used in a system for identifying a user activity. Any other suitable structure that links user activities with locations, speeds, and/or directions may be used. In further embodiments, the templates 400 or 500 could be expanded to include any number of recent locations and speeds as well as current locations and speeds, such that the current activity could be determined based upon a history of locations and speeds. Thus could permit more precise identification of activities. Likewise, the selection of a message could be based upon an activity history comprising any number of recent activities as well as a current activity, which could enable a more precisely targeted selection of message.
In embodiments, mobile device 104, GPS device 202, or server 108/206 may determine the user activity according to any of the methods described above, and adaptively learn the habits of a particular user after a number of activities have been determined. For example, the mobile device 104, GPS device 202, or server 108/206 may record a history of user activities. Such device may use the history of user activities to build a table or other data structure of the user's most common or most likely activities. Such a table of activities may include, for example, the user's most likely activity for each of a number of particular locations or for each of a number of particular locations. In embodiments, where the mobile device 104, GPS device 202, or server 108/206 determines the user's location and/or speed, it may choose from a number of activities associated with that location and/or speed by selecting the most likely activity according to the user's history.
In embodiments, a history, table, or other data structure of user activities may be improved over time with input from the user. For example, where the user's location is inside a park and the user's speed is >4 mph, the mobile device 104 or GPS device 202 may provisionally select the activity TRAIL RUNNING and request confirmation from the user. (In embodiments in which server 108/206 determines the activity, server 108/206 may make the provisional selection of activity and send a message to the mobile device 104 or GPS device 202 instructing it to request confirmation from the user and return confirmation to the server 108/206.) In embodiments, once a user has confirmed a provisional choice of activity for a particular location and/or speed, if the same location and/or speed are observed at a later instance, the mobile device 104, GPS device 202, or server 108/206 may select the same activity without the additional step of receiving confirming input.
As another example of a way to use a history of user locations and/or activities to determine a targeted message, where a user is a frequent traveler, the mobile device 104, GPS device 202, or server 108/206 (whichever stores activity templates and determines the activity, in various embodiments), may include a history of the user's locations including frequent stays at a particular brand of hotel. Upon determining the user's location to be in an airport, the server 108/206 may select a message for transmission to the mobile device 104 or GPS device 202 that includes an advertisement for a nearby hotel of the same brand.
Having thus described several aspects of examples of embodiments, it is to be appreciated various alterations, modifications, and improvements will readily occur to those skilled in the art. Such alterations, modifications, and improvements are intended to be part of this disclosure, and are intended to be within the spirit and scope of the embodiments and methods that may be supported by the present disclosure. It should be understood that the systems and methods disclosed herein are not limited to each of the described embodiments and their variations; embodiments may be practiced alone or in combination with other embodiments. Accordingly, the foregoing description and drawings are by way of example only.