ONLINE ADVERTISEMENT EXPOSURE TRACKING SYSTEM
BACKGROUND
This disclosure is related to information management.
The world- wide web has become an important source of information for many users. For example, users can use the world-wide web to retrieve news, entertainment, electronic messages, weather, etc. Publishers who serve such information to users often derive income in order to continue to produce this information from advertisements served to users with the information. Advertisers pay publishers to place advertisements on a website, and often pay based upon number of exposures (e.g., an opportunity to see an advertisement), click-through rates associated with the advertisement, conversions (e.g., sales of the product based upon the exposure), or combinations thereof.
Advertisers meanwhile would like ways to measure the effectiveness of an online advertisement to ensure that the cost of the advertisement is worth the expense. Traditional ways to measure the effectiveness of an advertisement include installing cookies on user computers to track the activities of the users. Alternatively, a group of users can be recruited and compensated to install tracking software on the user computer. The tracking software can be configured to match advertisements to any a number of tracked advertisements. However, this can be processor intensive based upon the type of advertisement being tracked. For example, graphical advertisements (e.g., images) have required pixel by pixel comparison between a retrieved advertisement and a bank of tracked advertisements. When the tracked advertisements are numerous, this process can be time consuming and processor intensive, and can even affect the internet activities of the user by slowing down the user's ability to retrieve pages which may be the subject of the advertisement. Moreover, these traditional methods are cumbersome and are not dynamic. For example, when an advertisement being tracked by the tracking software is updated or changed by the advertiser, the tracking software may be required to be updated in order for a updated advertisement to be recognized and tracked by the tracking software.
SUMMARY
Systems, methods and computer readable media for tracking online advertisement exposures are provided. Example methods can include receiving a request to serve an advertisement to a user computer; retrieving an advertisement from an advertisement store; inserting a tracking tag into the advertisement to generate a tagged advertisement, the tracking tag uniquely identifying the advertisement, and the tracking tag being operable to be read by a tracking program residing on the user computer; and communicating the tagged advertisement to the user computer.
An example system for tracking tagged advertisements can include an interface, a parsing module, a tag recognition module and a logger. The interface can receive an advertisement through a user computer. The parsing module can parse the advertisement to identify a tag associated with the advertisement. The tag recognition module can compare the tag to tracked tags from a tracked tag store. The logger can log an exposure based upon the tag matching a tracked tag from the tracked tag store, the exposure being logged in a tracking log.
An example system for providing tagged advertisements can include an interface, an advertisement retrieval module, and a tagging module. The interface can receive a request to serve an advertisement to a user computer. The advertisement retrieval module can retrieve an advertisement from an advertisement store. The tagging module can modify the advertisement by adding a tracking tag to the advertisement to generate a tagged advertisement, the tracking tag uniquely identifying the advertisement. The interface can also communicate the tagged advertisement in response to the request.
Other implementations are disclosed, including implementations directed to systems, methods, apparatuses, computer-readable mediums and user interfaces.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of an example exposure tracking system.
FIG. 2 is a block diagram of an example advertising server of an exposure tracking system.
FIG. 3 is a flowchart of an example method for tracking exposures to online advertisements.
FIG. 4 is a flowchart of an example method for logging exposures to online advertisements.
DETAILED DESCRIPTION
Exposure tracking systems can be used to track exposure of users to online advertisements. For example, an advertising server can insert tags into the advertisements that the server serves to users. Tracking programs installed on a user computer can parse the advertisement to identify the tracking tag associated with the advertisement. The tracking tag can enable the tracking programs to uniquely identify the advertisement with minimal processing power. The tracking program can then log the exposure based upon identifying the tracking tag as a tag that is being tracked.
FIG. 1 is a block diagram of an example exposure tracking system 100. In some implementations, the exposure tracking system 100 can include a user computer 110 having an exposure tracking system 120, a publisher 130, an ad server 140, an aggregated tracking data server 150, and a communication network 160. The user computer 110 can include a browser used to transmit universal resource locator (URL) requests and to receive web pages, for example, encoded in hypertext markup language (html).
The browser can enable a user to browse various web pages provided by various publishers 130 using, for example, web servers. The publishers 130 can be funded using various mechanisms. For example, many publishers fund the publishing of content using advertisement based mechanisms. In such arrangements, the publishers can sell advertising space on their website to advertisers. In some such arrangements, rather than attempting to sell advertising space directly to advertisers, the publishers 130 can use a mediator to connect advertisers to publishers using, e.g., an advertising server 140. In some implementations, the advertising server 140 can match demographic or other information associated with a publisher or publisher's content to a target criteria (e.g., demographic) associated with the advertiser product or advertisement. Other
characteristics of the advertiser or publisher can be used determine whether an advertisement is an appropriate match for the publisher. For example, a publisher can require a minimum payment for an advertising space, while an advertiser might not be willing to pay more than a certain amount for advertising space.
In the exposure tracking system 100 of FIG. 1, the advertising server 140 can insert a tag into advertisements served to the user. In some implementations, the advertising server 140 can insert a creative tag into the advertisement. The creative tag can uniquely identify a creative associated with the advertisement served to the user. In further implementations, the advertiser 140 can insert a campaign tag into the advertisement. The campaign tag can uniquely identify the campaign with which the advertisement is associated. The advertising server 140 can thereby serve a tagged advertisement.
In some implementations, the tagged advertisement is served to the publisher 130 for insertion into the web page prior to serving the web page to the user computer 110. In other implementations, the tagged advertisement is served directly to the user computer 110 for insertion into the web page by the user computer 110 or a browser associated with the user computer.
Upon receiving any advertisement, a tracking program 120 installed on the user computer can parse the advertisement to determine whether the advertisement is a tagged advertisement. In some implementations, if the advertisement is a tagged advertisement, the tracking program can extract the tag and compare the tag to a plurality of tracked advertisement tags. If the tag matches one of the tracked advertisement tags, an exposure can be logged. In other implementations, all tags can be extracted and logged as an exposure. In various implementations, a logged exposure can include the tag as well as a user identification and a time stamp associated with the exposure.
In some implementations, the tracking program 120 can periodically transmit an exposure log to an aggregated tracking data server 150. The exposure logs can be analyzed, for example, to determine which users have viewed which advertisements. Users can then be surveyed about the impressions they took from the exposure. In some examples, such surveys can be used to identify the effectiveness of an advertisement. While reference has been made to serving advertising, other forms of content can be served (and tagged) in accordance with the teachings described herein.
FIG. 2 is a block diagram of an example advertising server 200 for an exposure tracking system. In some implementations, the advertising server 200 can include an interface 210, an advertisement retrieval module 220, and a tagging module 230. In further implementations, the advertising server 200 can include an advertisement data store. However, in the depicted implementations, the advertisement data store is shown separately from the advertising server.
In some implementations, the interface 210 can be operable to receive a request for an advertisement from a publisher 250. In other implementations, the interface 210 can receive a request for an advertisement from a user computer (e.g., based upon a browser on the user computer loading a page which directs the computer to retrieve an advertisement from the advertisement server). In some examples, the request can include parameters for the advertisement, such as, for example, dimension/size, price, and demographic information, among others.
The interface 210 can forward the request to an advertisement retrieval module 220. In some implementations, the advertisement retrieval module 220 can retrieve an advertisement from an advertisement data store 240. The retrieved advertisement, for example, can be an advertisement which best matches the requirements of the publisher or user computer.
The advertisement retrieval module can provide the retrieved advertisement to a tagging module 230. In some implementations, the tagging module 230 can add a tag to the advertisement to generate a tagged advertisement. The tag, for example, can include a creative tag. The creative tag can uniquely identify the creative associated with the advertisement. In additional examples, the tag can include a campaign tag. The campaign tag can uniquely identify the campaign associated with the advertisement. In one implementation, a combination of the campaign tag and the creative tag can be used to track the advertisement. Tagging can include appending the tag to the advertisement, within the advertisement, or merely associating the tag to the advertisement.
The tagged advertisement generated by the tagging module 230 can be provided to the interface 210. In some implementations, the interface 210 can communicate the tagged advertisement to a publisher. In other implementations, the interface 210 can provide the advertisement directly to a user computer.
FIG. 3 is a flowchart of an example method 300 for tracking exposures to online advertisements. At stage 305, a request is received. The request can be received, for
example, by an interface (e.g., interface 210 of FIG. 2). In some implementations, the request can be received from a publisher prior to, or concurrent with serving a page to a user. In other implementations, the request can be received directly from the user after the user has loaded a page from the publisher. In various implementations, the request can include any of a size/dimension, price, demographic information, or combinations thereof. Other parameters can be included.
At stage 310, an advertisement can be retrieved. The advertisement can be retrieved, for example, by an advertisement retrieval module (e.g., advertisement retrieval module 220 of FIG. 2). In some implementations, advertisements can be retrieved from an external advertisement data store. In other implementations, advertisements can be retrieved from an internal advertisement data store. In some implementations, the retrieved advertisement can be an advertisement that best matches the parameters provided (e.g., size, format, price, demographic information, etc.). In some examples, certain advertisements might be excluded by some parameters, even though the advertisement matches other parameters. For example, if the publisher is asking for a small advertisement, a large advertisement would not be appropriate for serving to the user, even though the large advertisement may be the advertisement that best matches the rest of the parameters.
At stage 315, a tagged advertisement is generated. The tagged advertisement can be generated, for example, by a tagging module (e.g., tagging module 230 of FIG. 2). The tagged advertisement can include a tracking tag. In some implementations, the tracking tag can include a creative tag and/or a campaign tag. The creative tag can uniquely identify an advertisement creative. The campaign tag can uniquely identify an advertisement campaign. Together the creative and campaign tags can be used to identify the creative served to the user and the campaign associated with the advertisement.
At stage 320, the tagged advertisement can be communicated. The tagged advertisement can be communicated, for example, by an interface (e.g., interface 210 of FIG. 2). In some implementations, the tagged advertisement can be communicated to a publisher prior to a web page being served to a user computer. In other implementations, the tagged advertisement can be communicated to a user computer after the user computer has loaded the web page, and the web page has instructed the user computer to retrieve an advertisement from an advertisement server. Therefore, the tagged advertisement does not include a cookie and enables a tracking program on the user
computer to quickly and easily identify the advertisement. Moreover, advertisers can easily adjust or otherwise change an advertisement without affecting the tracking of the advertisement because the tag is added at the advertising server rather than the tracking program matching the advertisement to a database of tracked advertisements.
FIG. 4 is a flowchart of an example method 400 for logging exposures to online advertisements. At stage 405, an advertisement is received. The advertisement can be received, for example, by a user computer (user computer 110 of FIG. 1) or a tracking program (e.g., tracking program 120 of FIG. 1). In some implementations, the advertisement can be received for example, from a publisher with a requested web page. In other implementations, the advertisement can be received, for example, from an advertising server. For example, when a user requests a web page, the web page can include program code operable to cause the computer to request and advertisement to be served to the computer from an advertisement server.
At stage 410, the advertisement can be parsed. The advertisement can be parsed, for example, by tracking software (e.g., tracking program 120 of FIG. 1) included on a user computer. The advertisement can be parsed, for example, to determine whether the advertisement includes a tag. For example, the tag can be identified, by examining header or encoding information included with the advertisement. If there are any tags associated with an advertisement, the tags can be extracted.
At stage 415, a determination of whether the advertisement is tracked is made. The determination of whether the advertisement is tracked can be made, for example, by tracking software (e.g., tracking program 120 of FIG. 1). In some implementations, the determination can be made by comparing the extracted tag information with a data store including each of the tags being tracked by the tracking software. For example, if a tag matches any of the tags in the data store, the advertisement is a tracked advertisement.
At stage 420, an exposure is logged based upon the determination. The view can be logged, for example, by tracking software (e.g., tracking program 120 of FIG. 1). In some implementations, the exposure can be logged based upon whether it matches one of the tags being tracked by the tracking software. A logged exposure can include storing any tags associated with the tagged advertisement, storing a user identification, and storing a time stamp associated with the exposure. Exposures logged using tracking tags do not require cookies, nor do they require processing power to perform a pixel by pixel comparison. Moreover, changed advertisements can be tracked, even though the creative
associated with the advertisement may have been changed between the time the tracking was initiated and the time the advertisement is served to the user.
In some implementations, the tracking information collected by the tracking program can be anonymized impression data related to exposures. For example, logs related to browsing activity, can be anonymized to remove personal information related to browsing activities and the anonymized information can be provided to a collection agent (e.g., aggregated tracking data server 150 of FIG. 1).
In one implementation, the tracking agent (e.g., tracking module 120 of FIG. 1) can anonymize data related to particular devices (e.g., user computer 110 of FIG. 1) and/or any account information before the data are received by a collection agent (e.g., aggregated tracking data server 150 of FIG. 1). Each device can be represented as an anonymous entity, and account information can be associated with location information that has no more granularity than, for example, a zip code.
In some implementations, the tracking agent can include an anonymization engine that can, for example, be utilized to remove any personal identifiable information, and reduce granularity to a particular region, e.g., a zip code, or city, etc. The anonymization engine can receive input from the user controlling the level of tracking information forwarded to a collection agent (e.g., aggregated tracking data server 150 of FIG. 1), or can block tracking information from being sent to the collection agent in its entirety. In other implementations, an accounting engine can provide anonymized account data, e.g., a non-identifiable account profile associated with each set of log data from each device (e.g., user computer 110 of FIG. 1). Example anonymized account data can include a user demographic, e.g., age, browsing habits, connection bandwidth, etc.
Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible program carrier for execution by, or to control the operation of, data processing apparatus. The tangible program carrier can be a propagated signal or a computer readable medium. The propagated signal is an artificially generated signal, e.g., a machine generated electrical, optical, or electromagnetic signal, that is generated to
encode information for transmission to suitable receiver apparatus for execution by a computer. The computer readable medium can be a machine readable storage device, a machine readable storage substrate, a memory device, a composition of matter effecting a machine readable propagated signal, or a combination of one or more of them.
The term "data processing apparatus" encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a stand alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or
more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, to name just a few.
Computer readable media suitable for storing computer program instructions and data include all forms of non volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described is this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network ("LAN") and a wide area network ("WAN"), e.g., the Internet.
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.
While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any invention or of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
Particular embodiments of the subject matter described in this specification have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.