Mobile devices provide the ability to track the geolocation of the users at definite intervals. In certain instances, for example if the user is willing to share geolocation data with an entity such as a publication system, the publication system may be able to draw a geo-map of where the user has been, where the user is, and where the user is going. Trains or other public transit almost always have a definite set path to go from point A to point B, and therefore usually travel through definite infinite points when transporting people from point A to point B. This information can in some instances provide useful information both for the publication system and for travelers on public transport.
Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings:
Example systems and methods for engaging a traveler when the traveler may have free time are described. In some instances it is possible to know with some degree of certainty whether a person is traveling by train or other public conveyance and may therefore have free time. This may be based on the set of geolocation co-ordinates of the traveler because trains have a definite set travel path and the trains travel through that path. If a person's geolocation co-ordinates can be detected, for example, by the person's smartphone communication with a GPS system, a publication system such as an ecommerce site can use that information to engage the traveler in essential as well as non-essential activities on the ecommerce site or the sites of entities related to the ecommerce site. This would not be a safety risk in as much as a person is merely traveling on a train, bus or a cruise ship. Essential activities in which to engage the traveler can include notifications about bids, notifications about saved searches, or any other notifications that will increase either the Gross Merchant Bought or Gross Merchant Volume of the ecommerce site. Non-Essential activities may include things that do not translate essentially into monetary benefits but may lead to improvements for the ecommerce system such as gathering feedback from customers, conducting surveys, and the like.
A publication system such as an ecommerce site is able to track user's smartphone Geolocation data (i.e. the latitude, longitude, altitude, speed, direction etc.) if, in one example embodiment, the user has given permission to share their geolocation data with the publication system. The publication system would be able to collect this geolocation data from a user, and would be able to determine whether the user is traveling via a train. The publication system would determine whether user is traveling by train by comparing a set of user's latest (or recent) geolocation data points (two or more points) with the master route geolocation data of trains or other public conveyances stored in or associated with the publication system. In one example embodiment, the publication system would have captured and stored master route geolocation data of train systems of, in one embodiment, a metro area of interest. Based on the comparison of user's geolocation data and, perhaps over a period of time, the train's master route geolocation data and other parameters such as metadata about the train's velocity and schedule, the publication system would be able to determine that the user is in fact traveling via train. One way for the publication system to determine whether the user is on a train station is by setting up a geofence around the center of each train station in the publication system. The geofences can be centered around the train station and can be of geometrical shapes like a circle or a polygon. If the geofence is circular, the center of the geofence, in one embodiment, can be the (latitude, longitude) of the center of the train station and the radius can be configurable radius of ten meters to one hundred meters. If the user's geolocation data intersects with being in two or more geofences matching with the train velocity, then the publication system can assume that the user is travelling by a train.
Similarly, the publication system can determine whether the person is traveling via other public conveyance such as a public transportation bus by maintaining a list of IP addresses of public transportations buses. If the customer connects to the publication system site through this IP, the publication system can assume that the customer is in fact on the bus.
Once the publication system has determined that the user is traveling via train or bus, the publication system may engage the user by sending users different notifications and increase user engagement. Some of these notifications can be:
Also, based on the publication system storing the user's stored daily transportation geolocation data, the publication system can determine the user's daily commute schedule and the location and/or time the user gets ON and get OFF the train or bus. The publication system can use user's daily commuter data along with the train or bus schedule to tailor content on the publication system App based on the commute time remaining.
Because a person will often take public transportation two times a day, usually at the start of their shift and at the end of their shift, the publication system can determine the work location of this user by assuming that the user is at their work between the start and end of their shift. As the publication system knows that the person is in the vicinity of the location where they got off the train or bus, the publication system can use this data to further engage the user by sending users location specific geolocation events. In an example embodiment, if the person gets off in Portland downtown and there is a Macy's sale going on in downtown Portland, the publication system can send the traveler a notification promoting the Macy's sale. In one example embodiment, the user may be provided user notifications about ads of local deals or other promotions based on the time remaining in commute based on a train's velocity data extrapolated by the publication system based on the user's geolocation data for that day, or a fixed time when user usually exits the train. In an example embodiment, the movement detection function of the user's smart phone may, through Wi-Fi or GPS signals, alert the publication that the user is moving within the train. If that movement coincides with publication system master route geolocation data (including the geofences set up in the publication system) that indicates the train is approaching a stop at the time of user movement, it may be assumed that the user is moving to proceed to exit at that stop. Notifications relating to that stop may then be provided to the user.
In an example embodiment, local content, such as coffee shop specials at or near the user's usual stop could be provided to the user.
In an example embodiment, the publication system can determine whether the person is traveling on a cruise ship by maintaining a set of IP addresses for cruise ships. The publication system will maintain the cruise ship IP address, the cruise ship itinerary and daily cruise ship schedule. If the publication system finds a match between the cruise ship IP address and the user's smartphone IP address, the publication system can use this information to promote, sell or market cruise merchandise, or to engage the user by sending users user notifications such as:
In an example, the merchant 130 can operate computer systems, such as an inventory system 132 or a POS system 131. The network-based publication system 120 can interact with any of the systems 131, 132 used by merchant 130 for operation of the merchant's retail or service business. In an example, the network-based publication system 120 can work with both POS system 131 and inventory system 132 to obtain access to inventory available at individual retail locations run by the merchant 130. This inventory information can be used in both generating product or service listings, and selecting and ordering search results served by the network-based publication system 120.
In an example, public conveyance master route data may be stored in database 140 at or associated with the network-based publication system 120. Master route data for various public conveyances, train, bus, and the like, may be obtained, as discussed below, by known technological systems. This master route data may be used to determine whether a traveler is traveling by one of the various public conveyance systems.
In an example, train schedule data and train station data may be stored in database 141 at or associated with the network-based publication system 120. Similarly to the data for database 140, the data may be obtained by known technological systems. In another example, database 150 may include bus and cruise ship IP addresses to be used as discussed below.
With some embodiments, the user may explicitly indicate or specify his or her current location for use in deriving a distance or travel time to stores offering products/services. However, with some embodiments, location information of the user may be derived with a mobile computing device of the user. In some additional embodiments, the user may explicitly indicate or specify his daily travelled commute route (or some other route) for use in determining a set of search results based on the distance or travel time to stores offering products/services. However, with some embodiments, location information (and particularly, the commute or travel path) of the user may be derived with a mobile computing device of the user.
In an example embodiment, the connection 210 may be Code Division Multiple Access (CDMA) connection, a Global System for Mobile communications (GSM) connection, or other type of cellular connection. Such connection 210 may implement any of a variety of types of data transfer technology, such as Single Carrier Radio Transmission Technology (1xRTT), Evolution-Data Optimized (EVDO) technology, General Packet Radio Service (GPRS) technology, Enhanced Data rates for GSM Evolution (EDGE) technology, or other data transfer technology (e.g., fourth generation wireless, 4G networks). When such technology is employed, the communication network 220 may include a cellular network that has a plurality of cell sites of overlapping geographic coverage, interconnected by cellular telephone exchanges. These cellular telephone exchanges may be coupled to a network backbone (for example, the public switched telephone network (PSTN), a packet-switched data network, or other types of networks).
In another example, the connection 210 may be Wireless Fidelity (Wi-Fi, IEEE 802.11x type) connection, a Worldwide Interoperability for Microwave Access (WiMAX) connection, or another type of wireless data connection. In such an embodiment, the communication network 220 may include one or more wireless access points coupled to a local area network (LAN), a wide area network (WAN), the Internet, or other packet-switched data network.
In yet another example, the connection 210 may be a wired connection, for example an Ethernet link, and the communication network may be a LAN, a WAN, the Internet, or other packet-switched data network. Accordingly, a variety of different configurations are expressly contemplated.
A plurality of servers 230 may be coupled via interfaces to the communication network 220, for example, via wired or wireless interfaces. These servers 230 may be configured to provide various types of services to the mobile device 115. In an example embodiment, one or more servers 230 may execute location based service (LBS) applications 240, which interoperate with software executing on the mobile device 115, to provide LBSs to a user. LBSs can use knowledge of the device's location, and/or the location of other devices and/or retail stores, etc., to provide location-specific information, recommendations, notifications, interactive capabilities, and/or other functionality to a user. With some embodiments, the LBS operates in conjunction with the publication application 260 and search engine 261, in particular, to provide search results that are arranged based on the distance or travel time between a mobile device 115 (or other computer device) and a retail store. For example, an LBS application 240 can provide location data to a network-based publication system 120, which can then be used to arrange a set of search results, based on distance and/or travel time between two locations. Knowledge of the mobile device's location, and/or the location of other devices, may be obtained through interoperation of the mobile device 115 with a location determination application 250 executing on one or more of the servers 230. Location information may also be provided by the mobile device 115, without use of a location determination application such as application 250. In certain examples, the mobile device 115 may have some limited location determination capabilities that are augmented by the location determination application 250.
Additional detail regarding providing and receiving location-based services can be found in U.S. Pat. No. 7,848,765, titled “Location-Based Services,” granted to Phillips et al. and assigned to Where, Inc. of Boston, Mass., which is hereby incorporated by reference.
An example geolocation concept discussed within U.S. Pat. No. 7,848,765 is a geofence. A geofence can be defined as a perimeter or boundary around a physical location or mobile object (e.g., a user). A geofence can be as simple as a radius around a physical location defining a circular region around the location. However, a geofence can be any geometric shape or an arbitrary boundary drawn on a map. A geofence can be used to determine a geographical area of interest for the calculation of demographics, advertising, presenting search results, or similar purposes. Geofences can be used in conjunction with identifying and presenting search results, as described herein. For example, a geofence can be used to assist in determining whether a user (or mobile device associated with the user) is within a geographic area of a particular merchant. If the user is within a geofence established by the merchant or the publication system, the systems discussed herein can use that information to identify and present search results (e.g., via a mobile device associated with the user).
An Application Programming Interface (API) server 414 and a web server 416 are coupled to, and provide programmatic and web interfaces respectively to, one or more application servers 418. The application servers 418 host one or more publication modules 420 (in certain examples, these can also include search engine modules, commerce modules, advertising modules, and marketplace modules, to name a few), payment modules 422, dynamic offer modules 432, and optionally shopping modules 434. The application servers 418 are, in turn, shown to be coupled to one or more database servers 424 that facilitate access to one or more databases 426. In some examples, the application server(s) 418 can access the database(s) 426 directly without the need for a database server(s) 424.
The publication modules 420 may provide a number of publication and search functions and services to users that access the networked system 402. The payment modules 422 may likewise provide a number of payment services and functions to users. The payment modules 422 may allow users to accumulate value (e.g., in a commercial currency, such as the U.S. dollar, or a proprietary currency, such as “points”) in accounts, and then later to redeem the accumulated value for products (e.g., goods or services) that are advertised or made available via the various publication modules 420, within retail locations, or within external online retail venues. The payment modules 422 may also be configured to present or facilitate a redemption of offers, generated by the location-aware (dynamic) offer modules 432, to a user during checkout (or prior to checkout, while the user is still actively shopping). The offer modules 432 may provide dynamic context sensitive offers (e.g., coupons or immediate discount deals on targeted products or services) to users of the networked system 402. The offer modules 432 can be configured to use all of the various communication mechanisms provided by the networked system 402 to present offer options to users. The offer options can be personalized based on current location, time of day, user profile data, past purchase history, or recent physical or online behaviors recorded by the network-based system 400, among other things (e.g., context information). While the publication modules 420, payment modules 422, and offer modules 432 are shown in
In certain examples, the shopping modules 434 may provide real-time navigation route updates listing physical retail outlets that have items on a shopping list uploaded by a user of the networked system 402. The shopping modules 434 can be configured to use all of the various communication mechanisms provided by the networked system 402 to transmit information to a client machine, such as client machine 412. The shopping modules 434 can also present special offers available from retail merchants, such as merchant 130, along a user's current navigation route. The offers can be personalized based on current location, time of day, user profile data, past purchase history, or recent physical or online behaviors recorded by the network-based system 400, among other things.
Further, while the system 400 shown in
The web client 406 accesses the various publication modules 420, payment modules 422, and offer modules 432 via the web interface supported by the web server 416. Similarly, the programmatic client 408 accesses the various services and functions provided by the publication modules 420, payment modules 422, and offer modules 432 via the programmatic interface provided by the API server 414. The programmatic client 408 may, for example, be a smartphone application that enables users to communicate search queries to the system 400 while leveraging user profile data and current location information provided by the smartphone or accessed over the network 404.
In an example, the content module 520 can gather and deliver context relevant, or other, content to the ad generation module 530 based on advertisement rules and campaign information provided by advertisers. The content module 520 can interface with each of the various context information sources to obtain and dynamically update advertisement content.
In an example, the targeting module 510 can use context information from the various information sources to dynamically target advertisements to users based on the current context (e.g., location, mode of travel, time, events, weather, and the like).
In an example, the location module 540 is configured to receive location data from a mobile device, such as mobile device 115, and determine from the location data one or more participating merchant locations that are within a pre-define proximity. In some examples, the location module 540 can receive GPS-type coordinates (e.g., longitude and latitude), which can be used to establish a current location associated with a mobile device (and thus a user of the mobile device). These coordinates can be received over time, stored, and parsed to determine mode of travel, speed, direction, and path of travel of the user. This can be used to determine whether the user is in a public conveyance such as a train. Using the longitude and latitude coordinates, the location module 540 can determine if any merchants with physical locations registered with the networked system 402 are in proximity to the current location associated with the user. In certain examples, the location module 540 can receive other location determining information from a mobile device. In an example embodiment, some merchants may broadcast specific wireless network signals that can be received by a mobile device, such as mobile device 115. Once received, the mobile device 115 can include programming or circuitry to translate the signal into a specific location or the mobile device 115 can simply retransmit the unique signal to the location module 540. In an example, a merchant location can transmit a unique SSID, which the location module can be programmed to interpret as identifying a specific merchant location. In another example, the merchant may broadcast a unique SSID within all of its locations and the location module 540 can be programmed to use a combination of the unique SSID and other location data (e.g., GPS coordinates or cell tower locations) to identify a specific location.
In an example, the news module 552 can access various sources of news information over the network 404. The news module 552 can receive keywords from the ad generation engine 530 related to advertisement content or rules that trigger based on specific news stories or events.
In an example, the weather module 554 can access and deliver weather related data and alerts to the ad generation engine 530. In certain examples, the weather module 554 can receive location data from the location module 540 to target the weather data gathering. In some examples, the ad generation engine 530 can query the weather module 554 for information such as, local temperature, weather alerts, forecast, among other things.
In an example, the event module 556 can access and deliver local event information to the ad generation module 530. For example, the event module 556 can receive location information from the location module 540 and based on the location information provide data on local sporting events, theater information, and other event or festival information for the location.
In an example, the inventory module 558 can track inventory available at individual locations associated with a merchant using the networked system 402. The inventory module 558 can maintain inventory associated with products or services that merchant has included within offer generation rules used by the ad generation engine 530 to generate context sensitive advertisements. In certain examples, the inventory module 558 maintains inventory information within a local database, such as database 426. In another example, the inventory module 558 can be configured to access remote inventory information maintained by individual merchants. In additional examples, the inventory module 558 can be configured to interact with a third-party real-time inventory provider, such as MILO (from eBay, Inc. of San Jose, Calif.). The inventory module 558 can also be configured to delivery real-time (or near real-time) inventory information from multiple different sources. In some examples, each merchant may make inventory information available via different mechanism (e.g., API, XML feed, batch up loads, etc . . . ). The inventory module 558 can convert from various incoming formats to a common format used by the ad generation engine 530 to generate context sensitive dynamic advertisements based on current inventory available within individual local retail outlets.
Additional details regarding the functionality provided by the location-aware offer modules 432 are detailed in reference to
This can be seen in additional detail in
Example embodiments may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Example embodiments may be implemented using a computer program product, for example, a computer program tangibly embodied in an information carrier, for example, in a machine-readable medium for execution by, or to control the operation of, data processing apparatus, for example, a programmable processor, a computer, or multiple computers.
A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
In example embodiments, operations may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method operations can also be performed by, and apparatus of example embodiments may be implemented as, special purpose logic circuitry (e.g., a FPGA or an ASIC).
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In embodiments deploying a programmable computing system, it will be appreciated that both hardware and software architectures merit consideration. Specifically, it will be appreciated that the choice of whether to implement certain functionality in permanently configured hardware (e.g., an ASIC), in temporarily configured hardware (e.g., a combination of software and a programmable processor), or a combination of permanently and temporarily configured hardware may be a design choice. Below are set out hardware (e.g., machine) and software architectures that may be deployed, in various example embodiments.
The example computer system 1100 includes a processor 1102 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 1104 and a static memory 1106, which communicate with each other via a bus 1108. The computer system 1100 may further include a video display unit 1110 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 1100 also includes an alphanumeric input device 1112 (e.g., a keyboard), a cursor control device 1114 (e.g., user interface (UI) navigation device or computer mouse), a disk drive unit 1116, a signal generation device 1118 (e.g., a speaker) and a network interface device 1120.
The disk drive unit 1116 includes a machine-readable medium 1122 on which is stored one or more sets of data structures and instructions 1124 (e.g., software) embodying or used by any one or more of the methodologies or functions described herein. The instructions 1124 may also reside, completely or at least partially, within the main memory 1104, static memory 1106, and/or within the processor 1102 during execution thereof by the computer system 1100, the main memory 1104 and the processor 1102 also constituting machine-readable media.
While the machine-readable medium 1122 is shown in an example embodiment to be a single medium, the term “machine-readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions 1124 or data structures. The term “machine-readable medium” shall also be taken to include any tangible medium that is capable of storing, encoding or carrying instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the embodiments of the present invention, or that is capable of storing, encoding or carrying data structures used by or associated with such instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media. Specific examples of machine-readable media include non-volatile memory, including by way of example, semiconductor memory devices (e.g., Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM)) and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. A “machine-readable storage medium” shall also include devices that may be interpreted as transitory, such as register memory, processor cache, and RAM, among others. The definitions provided herein of machine-readable medium and machine-readable storage medium are applicable even if the machine-readable medium is further characterized as being “non-transitory.” For example, any addition of “non-transitory,” such as non-transitory machine-readable storage medium, is intended to continue to encompass register memory, processor cache and RAM, among other memory devices.
The instructions 1124 may further be transmitted or received over a communications network 1126 using a transmission medium. The instructions 1124 may be transmitted using the network interface device 1120 and any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks include a LAN, a WAN, the Internet, mobile telephone networks, Plain Old Telephone (POTS) networks, and wireless data networks (e.g., Wi-Fi and WiMax networks). The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible media to facilitate communication of such software.
Although the present inventive subject matter has been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the inventive subject matter. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.
The accompanying drawings that form a part hereof, show by way of illustration, and not of limitation, specific embodiments in which the subject matter may be practiced. The embodiments illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be used and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.
Such embodiments of the inventive subject matter may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed. Thus, although specific embodiments have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description.
All publications, patents, and patent documents referred to in this document are incorporated by reference herein in their entirety, as though individually incorporated by reference. In the event of inconsistent usages between this document and those documents so incorporated by reference, the usage in the incorporated reference(s) should be considered supplementary to that of this document; for irreconcilable inconsistencies, the usage in this document controls.
In this document, the terms “a” or “an” are used, as is common in patent documents, to include one or more than one, independent of any other instances or usages of “at least one” or “one or more.” In this document, the term “or” is used to refer to a nonexclusive or, such that “A or B” includes “A but not B,” “B but not A,” and “A and B,” unless otherwise indicated. In the appended claims, the terms “including” and “in which” are used as the plain-English equivalents of the respective terms “comprising” and “wherein.” Also, in the following claims, the terms “including” and “comprising” are open-ended; that is, a system, device, article, or process that includes elements in addition to those listed after such a term in a claim are still deemed to fall within the scope of that claim. Moreover, in the following claims, the terms “first,” “second,” and “third,” and so forth are used merely as labels, and are not intended to impose numerical requirements on their objects.
The Abstract of the Disclosure is provided to comply with 37 C.F.R. §1.72(b), requiring an abstract that will allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.