The present disclosure generally relates to collecting statistical information concerning advertisements placed on the Internet. More specifically, the present disclosure enables multiple entities to collect statistical information concerning advertisements placed in web pages.
Advertising on the Internet has grown into a multi-billion-dollar business. In a common scenario, an advertising service provider provides the Internet advertising medium. The advertising medium may take various forms, such as web pages, live feeds, electronic messages, etc. An advertiser, also referred to as a sponsor, may purchase a certain amount of advertising space from the advertising service provider to place its advertisements in the advertising medium provided by the advertising service provider. For example, it is common to find ad banners and/or other forms of advertisements (e.g., clickable images, icons, texts, etc.) included in web pages along with the primary content of the web pages.
For various business reasons, it is often desirable and sometimes necessary to collect statistical information concerning the advertisements placed in the Internet advertising medium. For example, both the advertising service provider and the sponsor may wish to know how many times a particular advertisement has been viewed by users, how many times a particular advertisement has been clicked by users, how much revenue a particular advertisement has generated, etc. Although various methods have been developed to collect these types of information concerning the advertisements, not all of these methods are convenient in practice (i.e., user friendly).
Broadly speaking, the present disclosure generally relates to collecting statistical information concerning advertisements placed on the Internet.
According to various embodiments, a single universal reporting pixel is embedded in a web page. The web page includes one or more advertisements that are associated with various third parties. The universal reporting pixel is associated with one or more third-party reporting pixels having different syntax and/or format requirements.
Upon serving the web page, the universal reporting pixel embedded therein causes each of the qualifying third-party reporting pixels associated with the universal reporting pixel to send a report to its respective destination.
The third-party reporting pixels associated with the universal reporting pixel may be modified as needed. Optionally, interfaces are provided for associating third-party reporting pixels to the universal reporting pixel.
These and other features, aspects, and advantages of the disclosure will be described in more detail below in the detailed description and in conjunction with the following figures.
The present disclosure is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
The present disclosure will now be described in detail with reference to a few preferred embodiments thereof as illustrated in the accompanying drawings. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be apparent, however, to one skilled in the art, that the present disclosure may be practiced without some or all of these specific details. In other instances, well known process steps and/or structures have not been described in detail in order to not unnecessarily obscure the present disclosure. In addition, while the disclosure will be described in conjunction with the particular embodiments, it will be understood that this description is not intended to limit the disclosure to the described embodiments. To the contrary, the description is intended to cover alternatives, modifications, and equivalents as may be included within the spirit and scope of the disclosure as defined by the appended claims.
For Internet advertising, it is often desirable and sometimes necessary to collect statistical information concerning the advertisements placed in the Internet advertising medium, such as web pages. For example, one way to determine the number of times a particular advertisement has been viewed by users during a certain period of time is to embed one or more reporting pixels in the web page that contains the advertisement.
In the context of Internet advertising, a reporting pixel is usually a one-by-one pixel that may be placed anywhere, but preferably at an inconspicuous or unobtrusive location, in a web page. Each time the web page is served in response to a client request, the reporting pixel initiates a callback to a server associated with the reporting pixel, indicating that the web page has been viewed and optionally reporting additional information such as the identification of the reporting pixel, the date and time the web page is served, and/or the publisher of the web page, etc. The server may be associated with an advertising service provider, an advertiser, a publisher, a network, etc. The server collects and aggregates information from multiple callbacks for a period of time to determine the total number of times the web page, and consequently the advertisement that directed the user to the web page, has been viewed during that period.
Often, servers associated with different parties have different protocol (e.g., syntax and/or format) requirements for their respective reporting pixels. The following are three sample reporting pixels, each a one-by-one pixel and having a different syntax:
Note that each pixel has a unique identification, which is specified using the “id” argument. This unique identification (i.e., pixel ID) may be used to identify each specific reporting pixel.
Consequently, to report to multiple servers associated with different parties, multiple reporting pixels, each satisfying the specific requirements of a particular party's server, may need to be embedded in a web page that contains advertisements.
Suppose the web page 220 is served by the web server 210. Each time the web page 220 is served in response to a client request, the four embedded reporting pixels 221, 222, 223, 224 each initiates a callback to its own associated server. Thus, reporting pixel 221 initiates a callback to server 231; reporting pixel 222 initiates a callback to server 232; reporting pixel 223 initiates a callback to server 233; and reporting pixel 224 initiates a callback to server 234.
Embedding multiple reporting pixels in a web page in order to report to multiple servers associated with different parties is cumbersome. Each time a party's server is added or deleted from the reporting list or each time a party's server changes the protocol requirements for its reporting pixels, the source code of the web page needs to be modified (e.g., to add or delete a reporting pixel or to modify the code of a reporting pixel).
To remedy this problem, a single universal reporting pixel is embedded in a web page that contains advertisements. The universal reporting pixel is associated with one or more third-party reporting pixels. Each time the web page is served, the universal reporting pixel initiates a callback to its own associated server. This server then causes each of the qualifying third-party reporting pixels associated with the universal reporting pixel to initiate a callback to the destination server with which the third-party reporting pixel is associated.
An interface may be provided for associating third-party reporting pixels to the universal reporting pixel. As a result, once the universal reporting pixel is embedded in a web page (i.e., put in place), the source code of the web page remains unchanged. Each time a third-party's server is added or deleted from the reporting list or each time a third-party's server changes the protocol requirements for its reporting pixels, only the associations with the universal reporting pixel is modified.
On the other hand, unlike
Suppose the web page 320 is served by the web server 310. Each time the web page 320 is served in response to a client request, the embedded universal reporting pixel 321 initiates a callback to server 325, which is associated with the universal reporting pixel 321. Server 325 then causes each of the third-party reporting pixel 341, 342, 343, 344 associated with the universal reporting pixel 321 to initiate a callback to its own associated server. Thus, third-party reporting pixel 341 initiates a callback to server 331; third-party reporting pixel 342 initiates a callback to server 332; third-party reporting pixel 343 initiates a callback to server 333; and third-party reporting pixel 344 initiates a callback to server 334.
In an alternative embodiment, web server 310 and server 325 may be combined into a single server. That is, one single server may perform the functionalities of both serving the web pages and managing third-party reporting pixels associated with the universal reporting pixels,
Note that the pixel has a unique identification, which is specified using the “id” argument. This unique identification (i.e., pixel ID) may be used to identify the specific universal reporting pixel.
One or more third-party reporting pixels are associated with the universal reporting pixel (step 420). Each third-party reporting pixel is associated with a server associated with a third-party (e.g., servers 331, 332, 333, 334 in
Each time the web page is served in response to a client request by the web server hosting the web page (step 430), the universal reporting pixel embedded in the web page initiates a callback to its own associated server, which then causes each of the third-party reporting pixels associated with the universal reporting pixel to initiate a callback to the server associated with the particular third-party reporting pixel (step 440). The memory location where the relationships between the universal reporting pixels and their respectively associated third-party reporting pixels are stored is accessed by, for example, the server associated with the universal reporting pixel that receives the callbacks from the universal reporting pixel to determine the specific third-party reporting pixels associated with the universal reporting pixel embedded in the web page. The third-party reporting pixels associated with the universal reporting pixel embedded in the web page are then executed to initiate the appropriate callbacks.
Steps 430 and 440 are repeated each time a client request is received for the web page. Furthermore, the third-party reporting pixels associated with any universal reporting pixel may be modified at any time. For example, a new third-party reporting pixel may be associated with a universal reporting pixel or an existing third-party reporting pixel that is currently associated with a universal reporting pixel may be disassociated with the universal reporting pixel. Similarly, the third-party reporting pixel may be modified, such as sending the reporting to a different server or including different information in the report. Furthermore, a third-party reporting pixel that is currently associated with a universal reporting pixel may be temporarily deactivated and later reactivated. During the period of deactivation, no report is sent to the third-party associated with deactivated third-party reporting pixel.
According to one embodiment, the modification may be done through a user interface.
In the example shown in
The third-party pixels currently associated with the universal pixel displayed in the interface are displayed in a list 540. A user may edit or delete each of these third-party pixels in the list 540 by pressing the edit button 541 or the delete button 542. A new third-party pixel may be added by specifying its name 551, code 552, and then pressing the save button 553.
The method illustrated in
Computer system 600 includes a display 632, one or more input devices 633 (e.g., keypad, keyboard, mouse, stylus, etc.), one or more output devices 634 (e.g., speaker), one or more storage devices 635, various types of storage medium 636.
The system bus 640 link a wide variety of subsystems. As understood by those skilled in the art, a “bus” refers to a plurality of digital signal lines serving a common function. The system bus 640 may be any of several types of bus structures including a memory bus, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example and not limitation, such architectures include the Industry Standard Architecture (ISA) bus, Enhanced ISA (EISA) bus, the Micro Channel Architecture (MCA) bus, the Video Electronics Standards Association local (VLB) bus, the Peripheral Component Interconnect (PCI) bus, the PCI-Express bus (PCI-X), and the Accelerated Graphics Port (AGP) bus.
Processor(s) 601 (also referred to as central processing units, or CPUs) optionally contain a cache memory unit 602 for temporary local storage of instructions, data, or computer addresses. Processor(s) 601 are coupled to storage devices including memory 603. Memory 603 includes random access memory (RAM) 604 and read-only memory (ROM) 605. As is well known in the art, ROM 605 acts to transfer data and instructions uni-directionally to the processor(s) 601, and RAM 604 is used typically to transfer data and instructions in a bi-directional manner. Both of these types of memories may include any suitable of the computer-readable media described below. A fixed storage 608 is also coupled bi-directionally to the processor(s) 601, optionally via a storage control unit 607. It provides additional data storage capacity and may also include any of the computer-readable media described below. Storage 608 may be used to store operating system 609, EXECs 610, application programs 612, data 611 and the like and is typically a secondary storage medium (such as a hard disk) that is slower than primary storage. It will be appreciated that the information retained within storage 608, may, in appropriate cases, be incorporated in standard fashion as virtual memory in memory 603.
Processor(s) 601 is also coupled to a variety of interfaces such as graphics control 621, video interface 622, input interface 623, output interface, storage interface, and these interfaces in turn are coupled to the appropriate devices. In general, an input/output device may be any of: video displays, track balls, mice, keyboards, microphones, touch-sensitive displays, transducer card readers, magnetic or paper tape readers, tablets, styluses, voice or handwriting recognizers, biometrics readers, or other computers. Processor(s) 601 may be coupled to another computer or telecommunications network 630 using network interface 620. With such a network interface 620, it is contemplated that the CPU 601 might receive information from the network 630, or might output information to the network in the course of performing the above-described method steps. Furthermore, method embodiments of the present disclosure may execute solely upon CPU 601 or may execute over a network 630 such as the Internet in conjunction with a remote CPU 601 that shares a portion of the processing.
In addition, embodiments of the present disclosure further relate to computer storage products with a computer-readable medium that have computer code thereon for performing various computer-implemented operations. The media and computer code may be those specially designed and constructed for the purposes of the present disclosure, or they may be of the kind well known and available to those having skill in the computer software arts. Examples of computer-readable media include, but are not limited to: magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs and holographic devices; magneto-optical media such as floptical disks; and hardware devices that are specially configured to store and execute program code, such as application-specific integrated circuits (ASICs), programmable logic devices (PLDs) and ROM and RAM devices. Examples of computer code include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter.
While this disclosure has described several preferred embodiments, there are alterations, permutations, and various substitute equivalents, which fall within the scope of this disclosure. It should also be noted that there are many alternative ways of implementing the methods and apparatuses of the present disclosure. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations, and various substitute equivalents as fall within the true spirit and scope of the present disclosure.