The present invention is described in detail below with reference to the attached drawing figures, wherein:
The subject matter described herein is presented with specificity to meet statutory requirements. The description herein is not intended, however, to limit the scope of this patent. Rather, it is contemplated that the claimed subject matter might also be embodied in other ways, to include different steps or combinations of steps similar to the ones described in this document, in conjunction with other present or future technologies. Moreover, although the terms “step” and/or “block” may be used herein to connote different elements of methods employed, the terms should not be interpreted as implying any particular order among or between various steps herein disclosed unless and except when the order of individual steps is explicitly described.
Embodiments of the present invention provide systems, methods, and computer-readable media for determining measures of traffic accessing a network location, the traffic satisfying a target criteria. Embodiments include parsing the target criteria into a plurality of intermediate target criteria, determining a measure of traffic accessing the network location that satisfies each of the intermediate target criteria, and caching the determined measures of traffic for the intermediate target criteria. The cached traffic measures for the intermediate target criteria may subsequently be utilized to satisfy future requests that include the same intermediate target criteria without having to spend the processing resources to re-determine the traffic measures. Embodiments also include communicating cached traffic measures among networked servers. Utilizing the systems, methods, and computer-readable media described herein, one can readily determine characteristics about the viewers accessing a network location and estimate prospective network traffic. In embodiments, such characteristics may be used by owners of advertising space to market the space to advertisers, by advertisers to determine a price they are willing to pay to advertise at a particular network location, and/or by administrators to audit the characteristics of viewers of material presented in conjunction with a given network location.
“Network traffic,” as the term is utilized herein, may be any type of user-interaction with a network location (e.g., a web site, internal database, etc.) over a communications network. Communications networks include, without limitation, the Internet, virtual private networks, Intranets, Local Area Networks (“LANs”), Wide Area Networks (“WANs”), Metropolitan Area Networks (“MANs”), wireless networks, and the like. Furthermore, it will be understood by one of ordinary skill in the art that embodiments are not limited to network traffic and the methods taught herein may be used to predict various other patterns of data. Examples of such data include, without limitation, characteristics of the people ordering a product, the characteristics of users working offline, or other data logs.
As the term is utilized herein, “target criteria” refers to any characteristic or combination of characteristics desired in a viewing demographic. Examples of such characteristics include, without limitation, age, gender, race, ethnicity, geographic location, time, hobbies, interests, patterns, and the like. Target criteria may also include actions viewers have previously performed or that their behavior indicates they are contemplating performing, such as, inquiring about vehicle price and/or performance, selecting particular displayed advertisements to find out additional information about the advertised product or service, watching movies of a particular genre, etc. One exemplary target criteria, which will be referenced throughout the present description, is females, living in the United States, in the state of Washington, who are contemplating purchasing a vehicle. It will be understood and appreciated by those of ordinary skill in the art that the referenced example is merely illustrative and not restrictive and that embodiments of the present invention are not limited to any particular target criteria or combination thereof.
“Intermediate target criteria,” as the term is utilized herein, is one or more characteristics that make up a portion of the target criteria but that includes fewer than all of the target criteria characteristics. Thus, referring back to the above example, the target criteria includes three intermediate target criteria: (1) females, (2) females living in the United States, and (3) females living in the United States and in the state of Washington.
As previously stated, using models, e.g., Bayesian models, to determine measures of network traffic satisfying a target criteria may be time consuming and hardware intensive. Embodiments of the present invention aid in reducing time and processing expense by caching traffic measures satisfying the intermediate target criteria so that such measures may be retrieved at a later time without having to be re-determined. Additionally, embodiments are directed to communicating traffic measures satisfying intermediate target criteria among networked servers so that any networked server receiving a request for viewer demographics may have access to such pre-determined information.
Having briefly described a general overview of the embodiments described herein, an exemplary operating environment is described below.
Referring initially to
The invention may be described in the general context of computer code or machine-useable instructions, including computer-executable instructions such as program modules, being executed by a computer or other machine, such as a personal data assistant or other handheld device. Generally, program modules including routines, programs, objects, components, data structures, and the like, refer to code that perform particular tasks or implement particular abstract data types. The invention may be practiced in a variety of system configurations, including hand-held devices, consumer electronics, general-purpose computers, more specialty computing devices, etc. The invention may also be practiced in distributed computing environments where tasks are performed by remote-processing devices that are linked through a communications network.
With continued reference to
Computing device 100 typically includes a variety of computer-readable media. By way of example, and not limitation, computer-readable media may comprise Random Access Memory (RAM); Read Only Memory (ROM); Electronically Erasable Programmable Read Only Memory (EEPROM); flash memory or other memory technologies; CDROM, digital versatile disks (DVD) or other optical or holographic media; magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, carrier wave or any other medium that can be used to encode desired information and be accessed by computing device 100.
Memory 112 includes computer-storage media in the form of volatile and/or nonvolatile memory. The memory may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard drives, optical-disc drives, etc. Computing device 100 includes one or more processors that read data from various entities such as memory 112 or I/O components 120. Presentation component(s) 116 present data indications to a user or other device. Exemplary presentation components include a display device, speaker, printing component, vibrating component, etc.
I/O ports 118 allow computing device 100 to be logically coupled to other devices including I/O components 120, some of which may be built in. Illustrative components include a microphone, joystick, game pad, satellite dish, scanner, printer, wireless device, etc.
Turning now to
The client computing device 202 may be any type of computing device, e.g., device 100 described above with reference to
Network 210 may include any computer network or combination of computer networks. Examples of computer networks configurable to operate as network 210 include, without limitation, a wireless network, landline, cable line, fiber-optic line, LAN, WAN, MAN or the like. Network 210 is not limited, however, to connections coupling separate computer units. Rather, network 210 may also comprise subsystems that transfer data between servers or computing devices. For example, network 210 may also include a point-to-point connection, an internal system Ethernet, a backplane bus, an electrical bus, a neural network, or other internal system. In an embodiment where network 210 comprises a LAN networking environment, components are connected to the LAN through a network interface or adapter. In an embodiment where network 210 comprises a WAN networking environment, components may use a modem, or other means for establishing communications over the WAN, to communicate. In embodiments where network 210 comprises a MAN networking environment, components are connected to the MAN using wireless interfaces or optical fiber connections. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet. It will be understood and appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computing devices may also be used within embodiments of the present invention.
Though not shown for the sake of clarity, components of each server, (i.e., middle-tier server 204, caching server 208, calculation server 214, pre-computation server 216, model-generator server 218, aggregating server, and advertisement server 220) may include, without limitation, a processing unit, internal system memory, and a suitable system bus for coupling various system components, including one or more databases for storing information (e.g., files and metadata associated therewith). Each server typically includes, or has access to, a variety of computer-readable media. By way of example, and not limitation, computer-readable media may include computer-storage media and communication media. In general, communication media enables each server to exchange data via network 210. More specifically, communication media may embody 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 may include any information-delivery media. As used herein, the term “modulated data signal” refers to a signal that has one or more of its attributes 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 also may be included within the scope of computer-readable media.
It will be understood by those of ordinary skill in the art that networking architecture 200 shown in
Each of the illustrated servers shown in
The client computing device 202 is accessible by a user. The user may be an administrator, advertiser, advertising space owner, or any other individual seeking information related to viewer characteristics. In one embodiment, a user may utilize client computing device 202 to submit a request for a measure of traffic accessing a particular network location, the traffic satisfying a specified target criteria. For instance, referring back to the above example, a user may submit a request for a measure of traffic accessing a particular web page who are female, living in the United States, living in the state of Washington, and who are searching for a vehicle. In one embodiment, the user may submit the request through a software application executing on the client computing device 202 via a graphical user interface. However, any of a variety of request submission methods known to those of ordinary skill in the art may be utilized within the scope of embodiments hereof.
In operation, once a traffic measure request has been received by the client computing device 202, the client computing device 202 communicates the request to the middle-tier server 204. Any type of public or private network (such as those mentioned herein) may enable communication between the middle-tier server 204 and the client computing device 202. In one embodiment, the middle-tier server 204 executes a traffic service 206. In an alternative embodiment (not shown in
The traffic service 206 is additionally configured to parse the target criteria into intermediate target criteria and communicate requests for traffic measures related to the target criteria and each of the intermediate target criteria to the caching server 208. The target criteria may be parsed using a number of methods known to those of ordinary skill in the art. In one embodiment, each characteristic comprising the target criteria and/or one or more of the intermediate target criteria is compared to a list of characteristic strings stored on the middle-tier server 204 to determine whether it designates a known string. If it is determined to be a known string, a tag is associated therewith. For instance, in the above-described example, the characteristic “female” may be stored and tagged as a gender, the characteristic “United States” may be stored and tagged as a country, and the characteristic “Washington” may be stored and tagged as a state. Consequently, the intermediate target criteria that includes females living in the United States in the state of Washington would be assigned tags for gender, country and state. Additionally, to indicate which gender, country, and/or state is included in the intermediate target criteria, values may be assigned along with the tags to designate the specific characteristics.
For example, female may include a hexadecimal tag designating gender of 000F and a value designating the type of gender (female) of 000A. Such would result in the intermediate target criteria being assigned the hexadecimal designation of 000F 000A. In this embodiment, target criteria and/or intermediate target criteria are effectively represented by digital numbers. Embodiments are not limited, however, to any particular method of parsing or tagging as those of ordinary skill in the art will appreciate that numerous methods exist that permit such functionality.
In one embodiment, the middle-tier server 204 is configured to communicate the tagged intermediate target criteria and/or the tagged target criteria to the caching server 208. The caching server 208 is configured to store various measures of traffic associated with target criteria (and intermediate target criteria) related to a plurality of network locations. For example, caching server 208 may contain the number of males and the number of females accessing a particular network location within a given time frame. The traffic measures may represent the number of users with a specific criteria who access the network locations, a percentage thereof, or any other quantitative indication of traffic. In other embodiments, traffic measures include estimations of prospective traffic accessing the location. For example, the caching server 208 may include a prospective estimation that 75% of the traffic to access the network location during the next five days will be female and that 65% will be females living in the United States, in the state of Washington. It will be understood and appreciated, however, that embodiments of the present invention are not limited to any particular traffic measures, as numerous expressions of network traffic are possible.
The caching server 208 is additionally configured to determine whether a requested measure of traffic relevant to the target criteria has already been stored therein. If it is determined that a measure of traffic has already been stored in the caching server 208, the requested traffic measure is communicated to the middle tier server 204 and the user's request is satisfied. If, however, it is determined that the requested measure of traffic relevant to the target criteria has not already been stored in association with the caching server 208, the caching server 208 determines whether traffic measures for any of the intermediate target criteria have been stored in association therewith. If it is determined that a traffic measure for one or more of the intermediate target criteria has already been stored in association with the caching server 208, a request for a traffic measure for the intermediate criteria for which a traffic measure is unknown and the target criteria is communicated to the calculation server 214. Additionally communicated to the calculation server 214 are the traffic measures relevant to any intermediate criteria for which a traffic measure is stored in association with the caching server.
To more accurately predict network traffic, it may be advantageous to tag traffic measures stored on the caching server 208 as a particular version. In other words, the caching server 208 may tag stored criteria (such as females in Washington) with multiple version values. In one embodiment, the particular version is a reference to a specific time frame. For example, the caching server 208 may store the number of females from Washington that visited a particular network location over the course of multiple time frames. With such data, the number of women viewing the network location over time can be determined. It will be apparent to one of ordinary skill in the art that other version tags are also possible.
The calculation server 214 is configured to determine the traffic measures relevant to those requests which it receives from the caching server 208. If the calculation server 214 has received any traffic measures relevant to one or more of the intermediate target criteria comprising the target criteria, the calculation server 214 may utilize such information to determine the requested traffic measures. In this way, the calculation server 214 may save time and processing expense in its determinations. Once the requested traffic measures are determined, they are communicated back to the caching server 208 and stored in association therewith. By storing traffic measures in association with the target criteria or intermediate target criteria to which they pertain on the caching server 208, less time and processing power is required to satisfy future traffic measure requests that have one or more intermediate target criteria in common.
The caching server 208 may include a communication or server-updating module 212. Because the caching server 208 may include a plurality of interconnected servers, quantities that are stored on one caching server may not be stored on another caching server. In an embodiment, the communication module 212 is a software application, web service, routine, sub-routine, or other set of machine-executable instructions. In operation, the communication module 212 communicates stored traffic measures to all networked caching servers. Methods of communicating such information are well known to those skilled in the art and may include, for example, push methods, pull methods, push-pull methods, and the like.
In one embodiment, the caching server 208 is configured to receive traffic measures relevant to target criteria and/or intermediate target criteria from the calculation server 214, the pre-computation server 216, or any other server via the communication module 212. In one embodiment, the calculation server 214 is configured to determine traffic measures relevant to the target criteria and any intermediate target criteria that are not stored in association with the caching server 208. To determine these unknown traffic measures, the calculation server 214 applies statistical models well known to those skilled in the art, such as, for example, a Bayesian model generated by the model-generator server 218 (discussed more fully below). In one embodiment, the resultant traffic measures are communicated to the caching server 208 for storage in association therewith.
Increasing the quantity of traffic measures stored on the caching server 208 increases the probability that a target or intermediate criteria can be satisfied without accessing the calculation server 214. Eliminating the calculation server 214 saves valuable time and increases the speed that the traffic measure request is answered. Therefore, all traffic measures calculated by the calculation server 214 are stored on the caching server 208. Additionally, the caching server 208 may poll the pre-computation server 216 for computed traffic measures that have been generated by the model generator 218.
The model generator 218 is configured to periodically receive logs of network activity for a plurality of network locations from an aggregating server (not shown for clarity) that periodically samples the network locations on a background thread and stores sampled traffic measures. Once a new log is received by the model-generator server 218, the model-generator server 218 is configured to generate one or more traffic measures using statistical models to estimate prospective network traffic. Any statistical model (e.g., a Bayesian model) well known to those of skill in the art may be used by the model-generator 218 to generate the traffic measure. Computed traffic measures are transmitted to the pre-computation server 216, which transmits the traffic measures to the caching server 208.
Sampled traffic measures may include the quantity of traffic associated with any characteristic or combination of characteristics (e.g., females under the age of thirty who access a particular network location during the relevant time frame). Numerous methods for tracking network activity are well known to those skilled in the art and need not be discussed at length herein. In embodiments, the logs may include a quantity of users accessing the network locations as well as a probability with which particular characteristics (or combinations thereof) are associated with those users. In one embodiment, each log of information is time stamped so that it can be eliminated from the pre-computation server 216 when the log becomes stale or a newer version thereof is received.
It may be inefficient to predict prospective traffic measures for every log generated by the aggregating server. Therefore, the aggregating server may be configured to only transmit logs of network activity to the model-generator 218 relating to the most popular characteristics of the network traffic. For example, the aggregating server may determine that sixty percent of the visitors to a network location are female. Consequently, the aggregating server may not create or transmit a log to the model-generator server 218 for males. In another example, suppose a web page is viewed ten thousand times—six thousand times by females with children, two thousand times by males over forty, one thousand times by teenage females, and one thousand times by divorced males. In this scenario, the aggregating server may transmit a log that only represents the females with children. Alternatively, the log may also include the traffic measure representing the males over forty. In either situation, the logs are restricted to a frequently occurring characteristic, thus reducing the volume of information needing to be calculated by the model-generator server 218. Furthermore, network traffic logs may be periodically generated (i.e., daily, weekly, etc.) and automatically pushed to the model-generator 218.
In one embodiment, the logs from the aggregating server or the computed traffic measures from the model-generator 218 may be modified according to pre-defined threshold criteria set by an administrator. Alternatively, the threshold criteria may be set by the frequency with which a traffic measure has been requested for a particular target criteria or intermediate target criteria. In still another embodiment, the threshold criteria may be determined from the recorded network activity on the aggregating server.
In one embodiment, the statistical models are communicated to the calculation server 214. The calculation server 214 uses the models to determine traffic measures for target and intermediate target criteria.
In addition to the logs, the model-generator server 218 may also use parameters supplied by the advertisement server 220 to generate the statistical models. The advertisement server 220 is a server that stores various parameters relevant to advertisements or other administrative needs. For example, the advertisement server 220 may store rates for advertising at particular network locations, sampling rates of network locations, or the like.
In one embodiment, parameters are supplied to the advertisement server 220 via a gateway 222. The gateway 222 may include a web site, web service, or other user-interactive application through which web advertisements are requested.
Turning now to
With reference to
The present invention has been described in relation to particular embodiments, which are intended in all respects to be illustrative rather than restrictive. Alternative embodiments will become apparent to those of ordinary skill in the art to which the present invention pertains without departing from its scope.
From the foregoing, it will be seen that this invention is one well adapted to attain all the ends and objects set forth above, together with other advantages which are obvious and inherent to the system and method. It will be understood that certain features and subcombinations are of utility and may be employed without reference to other features and subcombinations. This is contemplated by and is within the scope of the claims.