Optimization of Online Advertising Assets
A system for collecting and presenting information about advertising analytics comprises an ad preparation server, an ad server and an analytics server. The ad preparation server receives advertising assets (e.g., ads) and modifies them to include a data collection script. The preparation server then sends the modified ads to the ad server for delivery along with underlying content to users. The underlying content and modified ads are delivered to client devices that present the content and execute the data collection script. The data collection script collects and sends advertising analytic data back to the analytics server in a non-intrusive manner. The present invention also includes a method for preparing ads, a method for deriving a heat map, a method for generating and sending advertising data, and a method for generating a representation of a focus of attention for a user.
Latest MOAT, INC. Patents:
- System and method for dynamically controlling sample rates and data flow in a networked measurement system by dynamic determination of statistical significance
- System and method for dynamically controlling sample rates and data flow in a networked measurement system by dynamic determination of statistical significance
- Printed circuit board for mouth guard
This application claims the benefit under 35 U.S.C. §119(e) of U.S. Provisional Application Ser. No. 61/542,059, entitled “OPTIMIZATION OF ONLINE ADVERTISING ASSETS & AD SEARCH ENGINE” filed on Sep. 30, 2011, the entire contents of which are incorporated herein by reference. This application also claims the benefit under 35 U.S.C. §119(e) of U.S. Provisional Application Ser. No. 61/476,505, entitled “COMPUTER SOFTWARE RELATING TO ADVERTISING OVER COMPUTER NETWORKS” filed on Apr. 18, 2011, the entire contents of which are incorporated herein by reference.
BACKGROUND OF THE INVENTION 1. Field of the InventionThe present invention relates to on-line advertising and the presentation of associated adverting information. In particular, the present invention relates to computer systems and methods for collecting and presenting information about advertising analytics to improve ad copy, placement and consumption.
2. Description of the Related ArtThe Internet and other types of on-line communication have become increasingly popular to the point where they now compete with traditional media such as print media and broadcast media for the attention of users. Because users are spending so much more time on line viewing content, playing games and on social networks, advertisers are spending greater amounts of their advertising dollars on Internet advertising or online advertising. It is now commonplace for advertisers to use online advertising as a major component of any advertising campaign.
Online advertising typically refers to any type of promotion that uses the Internet or the World Wide Web to deliver marketing messages and attract the attention of customers. Examples of online advertising include contextual ads on search engine result pages, banner ads, rich media ads, social networking ads, interstitial advertising, etc. Online advertising is typically provided from an ad server to a publisher that includes the ads with the published or served content. These new forms of online advertising are advantageous because they provide better targeting and placement then traditional media.
In order to effectively price online advertising some analytics and metrics have been developed. For example, an impression is a measure of the number of times an ad is displayed whether users interact with that ad or not. Such placements are priced in cost per thousand impressions or CPM. Internet traffic may also be measured in cost per click (CPC) where advertisers pay hosting services only when users interact with the ad or “click” on the add. There are other limited metrics that are captured by web analytics service providers in an attempt to measure the effectiveness of such online advertising campaigns.
One problem with existing web analytics is that the amount of information provided about user interaction with the ads and other context information is very limited. Most existing systems only provide limited information about impression such as the date, time and publisher that served the advertisement. In many instances, the analytics systems only confirm that the ad was served and not whether it was actually viewed by the user. For example, issues with the browser, latency, or other factors may preclude the ad from being displayed and reviewed by the user. Existing systems incorrectly consider those impressions as have been presented and viewed by the user. Existing systems are unable to provide more information about the context in which the ad was placed, actual information about user interaction with the ad and other information that is valuable to the advertisers.
Another problem with existing systems is that the ads are very transient and automatically served by web servers based on a number of factors only some which are under the control advertisers. As noted above, there is often no way for the advertisers to determine what ads were presented, and more importantly the manner in which the ads were presented to the user. For example, the prior art does not have any way to search ads that were presented and provide historical information about the presentation of those ads.
SUMMARY OF THE INVENTIONIn one innovative aspect, the present invention provides a system for collecting and presenting information about advertising analytics. The system comprises an ad preparation server, an ad server and an analytics server. The ad preparation server receives advertising assets (e.g., ads) and modifies them to include a data collection script. The preparation server then sends the modified ads to the ad server for delivery along with underlying content to users. The underlying content and modified ads are delivered to client devices that present the content and execute the data collection script. The data collection script collects and sends advertising analytic data back to the analytics server in a non-intrusive manner. The analytics server organizes and stores the analytic data. In some embodiments the analytics server includes a variety of algorithms, analytic methods, analytic reports that process the data received from the data collection script to better deploying Internet advertising assets. In particular, the analytics server is capable of processing the data from the data collection script to generate a heat map that represents the user's focus of attention for a placed advertisement. The present invention also includes several novel methods such as a method for preparing ads, a method for deriving a heat map, a method for generating and sending advertising data, and a method for generating a representation of a focus of attention for a user.
The present invention is illustrated by way of example, and not by way of limitation in the figures of the accompanying drawings in which like reference numerals are used to refer to similar elements.
The network 106 is a conventional type, wired or wireless, and may have any number of configurations such as a star configuration, token ring configuration or other configurations. Furthermore, the network 106 may comprise a local area network (LAN), a wide area network (WAN) (e.g., the Internet), and/or any other interconnected data path across which multiple devices may communicate. In yet another embodiment, the network 106 may be a peer-to-peer network. The network 106 may also be coupled to or includes portions of a telecommunications network for sending data in a variety of different communication protocols. In yet another embodiment, the network 106 includes Bluetooth communication networks or a cellular communications network for sending and receiving data such as via short messaging service (SMS), multimedia messaging service (MMS), hypertext transfer protocol (HTTP), direct data connection, WAP, email, etc.
The client device 108a is representative of client devices 108a-108n and is a conventional type of computing device, for example, a personal computer, a hardware server, a laptop computer, a tablet computer or smart phone. The client devices 108a-108n are coupled to the network 106 by signal lines 122a-122n, respectively. In one embodiment, the client device 108 is coupled to receive online advertisements from the ad server 102 and other content from publishing sites or third party servers (not shown). The client device 108 includes a web browser 112 for presenting online content and advertisements to the user. The web browser 112 presents ads and other content, and receives input from the user 110 as represented by signal line 124. The web browser 112 and data collection script 114 are operable on the client device 108. The data collection script 114 collects information about user interaction with advertisements, ad placement and other advertising analytics, and sends that information to the analytics server 104. The operation of the data collection script 114 is described in more detail below with reference to
The advertising asset server 116 is a computer program running on a hardware system for storing and providing advertisements or assets to other systems that will ultimately deliver the ads to the end user. The advertising asset server 116 is coupled to the network 106 by signal line 130 to receive advertisements or assets from advertisers. In one embodiment, the advertising asset server 116 stores the advertisement or asset that will be delivered to the client devices 108. For example, the asset includes ad copy, ad content, JavaScript or flash that when executed by the client device 108 in the web browser 112 presents the advertisement to the user 110 as designed by and intended by the advertiser. The advertisers interact with the advertising asset server 116 to upload and store advertisements on the advertising asset server 116. These advertisements are then available for delivery to the ad preparation server 118 or the ad server 102 which in turn process the advertisements and deliver them to the client device 108.
The ad preparation server 118 is a computer program running on a hardware system for preparing advertisements for ultimate delivery to the client devices 108. In one embodiment, the ad preparation server 118 retrieves advertisements from the advertising asset server 116 and modifies them by adding the data collection script 114. The modified ads are then delivered by the ad preparation server 118 to the ad server 102 for combination with content and delivery to the client device 108. The ad preparation server 118 is coupled to the network 106 by signal line 128 for communication with the advertising asset server 116 and the ad server 102. The ad preparation server 118 is described in more detail below with reference to
The ad server 102 is a computer program running on a hardware system for placing advertisements on websites. For example, the ad server 102 may be a web server that receives advertisements from the ad preparation server 118 or the advertising asset server 116 and delivers them to website visitors. The ad server 102 is coupled to the network 106 by signal line 120 for receiving ads from the ad preparation server 118 or the advertising asset server 116 and for delivering the ads to third party servers, sites or domains (not shown).
The analytics server 104 is a computer program running on a hardware system for collecting and presenting information about advertising analytics. In particular, the analytics server 104 receives advertising data from the data collection script 114 running on the client device 108. The analytics server 104 may also receive basic ad statistics from the ad server 102. The analytics server 104 also processes the advertising data to produce reports and user interfaces. The analytics server 104 is described in more detail below with reference to FIGS. 3, 5, 8, 11 and 12. The analytics server 104 is coupled by signal line 126 to the network 106 for communication with the client devices 108a-108n and the ad server 102.
The ad search engine 132 is a computer program running on a hardware system for performing searches of advertisements and other associated metadata. The ad search engine 132 is coupled to receive advertising placement information from the ad server 102. The ad search engine includes and maintains a database of advertisements and the context in which they were delivered. The ad search engine 132 will be described in more detail below with reference to
The processor 202 comprises an arithmetic logic unit, a microprocessor, a general-purpose controller or some other processor array to perform computations and provide electronic display signals to a display device. The processor 202 is coupled to the bus 220 for communication with the other components. Processor 202 processes data signals and may comprise various computing architectures including a complex instruction set computer (CISC) architecture, a reduced instruction set computer (RISC) architecture, or an architecture implementing a combination of instruction sets. Although only a single processor is shown in
The memory 204 stores instructions and/or data that may be executed by processor 202. The memory 204 is coupled to the bus 220 for communication with the other components. The instructions and/or data may comprise code for performing any and/or all of the techniques described herein. The memory 204 may be a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device, flash memory or some other memory device.
The network interface (I/F) module 206 is coupled to network 106 by signal line 128 and coupled to the bus 220. The network interface module 206 includes ports for wired connectivity such as but not limited to USB, SD, or CAT-5, etc. The network interface module 206 links the processor 202 to the network 106 that may in turn be coupled to other processing systems. The network interface module 206 provides other connections to the network 106 using standard network protocols such as TCP/IP, HTTP, HTTPS and SMTP. In other embodiments, the network interface module 206 includes a transceiver for sending and receiving signals using Wi-Fi, Bluetooth® or cellular communications for wireless communication. The network interface (I/F) module 206 provides a communication path for the components of the ad preparation server 118 to the network 106 and other systems.
In one embodiment, the storage 208 stores data, information and instructions used by the ad preparation server 118. Such stored information includes information about users, publishers, ads, assets and other information. The storage 208 is a non-volatile memory or similar permanent storage device and media such as a hard disk drive, a floppy disk drive, a CD-ROM device, a DVD-ROM device, a DVD-RAM device, a DVD-RW device, a flash memory device, or some other mass storage device for storing information on a more permanent basis. The data storage 208 is coupled by the bus 220 for communication with other components of the ad preparation server 118.
The request processor 212 is software, code or routines for receiving and processing requests for advertisements from the ad server 102. The request processor 212 is coupled to receive requests from the ad server 102. In some embodiments, the request processor 212 operates as a controller of the overall process of creating a modified ad and delivering it to the ad server 102 and communicates with the other components 214, 216, 218, 222 for that purpose. The request processor 212 receives the request from the ad server and promulgates the request to the ad selection module 214 and the script creation processor 216 so that an ad may be selected and a script created, respectively. The request processor 212 is coupled to bus 220 for communication with the other components of the ad preparation server 118.
The ad selection module 214 is software, code or routines for selecting an ad for delivery to the ad server 102. The ad selection module 214 is coupled to receive a request signal from the request processor 212 and coupled to retrieve ads from the advertising asset server 116. In some embodiments, the ad selection module 214 also monitors and executes campaigns for advertisers. In other words, the ad selection module 214 may control the placement, time, location of the delivery of the ads. The ad selection module 214 is responsible for retrieving the original advertisement from the advertising asset server 116. The ad selection module 214 delivers the retrieved original advertisement to the script injector 218. The ad selection module 214 is coupled by the bus 220 for communication with the advertising asset server 116, the request processor 212 and the script injector.
The script creation processor 216 is software, code or routines for creating a script for addition to an advertisement. Based upon the information that the advertiser wants collected, a script is created for addition to the advertisement. The script creation processor 216 creates a script to gather custom as well as standard information, for example, the data collection script 114. For example, the script creation processor 216 assigns the advertisement a unique identification number and includes that number in the script so that it can be used to report activity related to the advertisement back to the analytics server 104 and that activity can be associated with the specific ad in which this script is inserted. The script creation processor 216 also modifies the data collection script 114 so that it works properly with the advertisement. In other words, the operation of the data collection script 114 in collecting information and reporting back to the analytics server 104 is nonintrusive and does not interfere with the normal presentation of the content by the web page or the normal presentation of the advertisement. In one embodiment, the script creation processor 216 is coupled to the injected ad database 222 to receive script templates that can be used for creating specific instances of the data collection script 114. The script creation processor 216 is responsive to requests from the request processor 212 and provides created data collection scripts 114 to the script injector 218. The script creation processor 216 is coupled by the bus 220 for communication with the request processor 212, the injected ad database 222, and script injector 218.
The script injector 218 is software, code or routines for inserting data collection scripts 114 into advertisements. The script injector 218 receives an original ad from the ad selection module 214. The script injector 218 also receives a data collection script 114 from the script creation processor 216. The script injector 218 combines the original advertisement and the data collection script 114 into a new modified advertisement. The script injector 218 stores a copy of the new modified advertisement in the injected ad database 222. The original ad and data collection script 114 may also be stored in the injected ad database 222. In some embodiments, the script injector 218 also creates an association in the injected ad database 222 between the original ad, the modified ad and the particular data collection script 114. In one embodiment, the script injector 218 sends the modified ad to the ad server 104. In another embodiment, the script injector 218 since the modified ad to the request processor 212 which in turn provide the modified ad to the ad server 104. The script injector 218 is coupled to the bus 220 for communication with the other components 212, 214, 216, 218 and 222 of the ad preparation server 118.
The injected ad database 222 is a data store for storing information about ad that have been modified and data collection scripts 114 that have been added. In one embodiment the injected ad database is a conventional database. The injected ad database 222 stores the modified ad, the original ad, the injected script, and other information related to preparing the ad for delivery. In some embodiments, the injected ad database 222 is coupled to other systems such as the analytics server 104 to provide information about injected ads. The injected ad database 222 is coupled for communication with the other components 212, 214, 216, 218 and 222 of the ad preparation server 118.
Analytics Server 104Referring now to
The processor 202, the memory 204, the network interface (I/F) module 206, the storage 208 and bus 220 have the same or similar functionality to that described above with reference to
The ad engagement tracker 302 is software, code or routines for collecting information about advertisements from the data collection scripts 114. The ad engagement tracker 302 is coupled by the network 106 to numerous client devices 108 and thus numerous data collection scripts 114. Each of these data collection scripts 114 sends ad information or analytics data to the analytics server 104 and this ad information or analytics data is collected and captured by the ad engagement tracker 302. For example, the ad engagement tracker 302 collects ad information such as the ID of the ad, the domain on which the ad was presented, the placement of the ad on the page, user inputs while the ad was being displayed, browser information, or information about the entity that served the ad. In some embodiments, the ad engagement tracker 302 sends the ad information to the analytics database 310 for storage and the real-time analysis and reporting module 312 for immediate processing. The ad engagement tracker 302 is coupled to the bus 220 for communication with the other components of the analytics server 104, in particular the analytics database 310 and a real-time analysis and reporting module 312.
The filter module 304 is software, code or routines for processing ad information or analytics data including click tag analysis, rich media analysis and other analysis. The filter module 304 is coupled to the analytics database 310 to retrieve ad information or analytics data and perform click tag analysis and rich media analysis. In one embodiment, the filter module 304a processes the analytics data to produce signals that are used by the cursor/gesture to eye movement transformer 306. In some embodiments, the filter module 304b also processes analytics data from the real-time analysis and reporting module 312 in a real-time manner (See also
The cursor/gesture to eye movement transformer 306 is software, code or routines for translating the filtered analytics data into eye movement information. One embodiment of the operations of the cursor/gesture to eye movement transformer 306 is described in more detail below with reference to
The eye tracking visualization module 308 is software, code or routines for producing a visual image that represents the eye movements of the user relative to the advertisement. These eye movements are indicia of the user's focus of attention relative to the entire web page. One embodiment for operation of the eye tracking visualization module 308 is described below with reference to
The analytics database 310 is a data store for storing information received by the analytics server as well as data generated during intermediate processes. The analytics database 310 is a database of a conventional type. The analytics database 310 is coupled to the bus 220 for storage and retrieval of information by different components of the analytics server 104.
The real-time analysis and reporting module 312 is software, code or routines for immediate processing of ad information and analytics data from the ad engagement tracker 302. The real-time analysis and reporting module 312 is coupled to provide data immediately to the filter module 304 and the attention score generator 320. The real-time analysis and reporting module 312 allows smaller segments of data to be processed immediately and sent to the user interface 314. The real-time analysis and reporting module 312 is coupled to the bus 220 for communication with the other components of the analytics server 104.
In some embodiments, the real-time analysis and reporting module 312 is coupled to receive conditions or request for advertising analytics from other systems, e.g. advertiser systems (not shown). The real-time analysis and reporting module 312 receives those conditions, monitors for satisfaction of those conditions, and if they occur sends a signal or beacon to the advertiser systems indicating a satisfied condition or the requested the information. For example, the real-time analysis and reporting module 312 can receive a request from an advertiser system to be notified of a condition such a placement of an ad, or even more particularly cursor over or gesture over an ad by a user. The data collection scripts of the present invention monitor user behavior and report events to the analytics server 104. The real-time analysis and reporting module 312 in turn sends this information to the advertiser system. Thus, the analytics server 104 receives a condition from an advertiser system, captures analytics data from using a data collection script; analyzes the captured analytics data to determine whether the condition was satisfied; and generates and sends a signal if the condition was satisfied. The real-time analysis and reporting module 312 can perform some or all of these steps in real time. The real-time analysis and reporting module 312 can modify the signal or beacon sent to the advertiser to include any analytics data such as but not limited to the ad, the ad identifier, time, web page, action, event, browser, placement position, focus index, attention score, etc. This is particularly advantageous because the advertiser systems can use these signals from the real-time analysis and reporting module 312 to optimize ad campaigns while they are running such as automatically adjusting bid prices for ads, ad placement locations, etc.
The user interface module 314 is software, code or routines for presenting advertising analytics information to the user and receiving and processing inputs about that advertising analytics information. For example, the user interface module 314 receives input from the user about specific advertising analytic parameters of interest. The user interface module 314 in response to that user input generates reports, graphics and other information by communicating with the other components of the analytics server 104 and those reports, graphics and other information are provided for display. The user interface module 314 is coupled by the bus 220 for communication with the eye tracking visualization module 308, the attention score generator 320, and the real-time analysis and reporting module 312. The user interface 314 is also coupled by the bus a network interface module 206 to the client device 108 that displays the reports and other information.
The click tag parser 316 is software, code or routines for processing ad information or analytics data stored in the analytics database 310 by the ad engagement tracker 302. In particular, the click tag parser 316 processes click tag information to generate data parameters that are used by the filter module 304 for click tag analysis. In one embodiment, the click tag parser 316 process the click tag to get an approximation about the page which the user would land if the ad were clicked upon. The click tag parser 316 extracts parameters from the click tag and uses them in generating that approximation. For example, in one embodiment, the click tag parser 316 pulls out the series of URLs in the click tag, determines the last URL in the series, and assumes the user will end up at that URL. The click tag parser 316 is coupled by the bus 220 to retrieve and store information in the analytics database 310.
The rich media parser 318 is software, code or routines for processing ad information and analytics data stored in the analytics database 310 by the ad engagement tracker 302. Similar to the click tag parser 316 but for rich media, the rich media parser 318 processes the rich media information to generate data and parameters that used by the filter module 304 for rich media analysis. Such rich media information includes ad expansion, ad collapse, add duration, etc. The rich media parser 318 is coupled by the bus 220 to receive information from and store information to the analytics database 310.
The attention score generator 320 is software, code or routines for generating an attention score. The attention score generator 320 processes the analytics data and information in the analytics database 310 to generate the attention score. In one embodiment, the attention score is a composite score of several parameters of advertising data including but not limited to a visualization metric, a placement score, a views metric, a share metric, a velocity, a focal index, and activity index, an engagement rate, etc. The attention score generator 320 is coupled by the bus 220 to the analytics database 310 to retrieve the information necessary to produce the attention score. The score generator 20 is also coupled by bus 220 to provide the attention score to the user interface module 314.
The placement module 322 is software, code or routines for determining the placement of a particular advertisement. The placement module 322 is coupled to retrieve information from the analytics database 310 necessary to determine the placement of an advertisement. The placement module 322 determines not only the domain or website with which the advertisement was delivered, but also the location on the web page delivered. The placement module 322 is coupled to retrieve information from the analytics database 310. The placement module 322 stores placement information back to the analytics database 310, and in some embodiments provide to the placement scoring module 324.
The placement scoring module 324 is software, code or routines for generating a score representative of the value of placement of an advertisement at a particular position on a specific web page. The placement score advantageously informs publishers which locations on particular web pages are valuable. The placement score is calculated by applying a function to factors including ad position, web page, attention score and the parameters used to calculate it, engagement rate, etc. The placement scoring module 324 is coupled to receive placement information from the placement module 322 or the analytics database 310. From the placement information, the placement scoring module 324 generates the placement score and stores it in the analytics database 310 or provides it to the attention score generator 320.
Referring now also to
The processor 202, the memory 204, the network interface (I/F) module 206, the storage 208, the bus, the click tag parser 316 and the rich media parser 318 have the same or similar functionality to that described above with reference to
The ad copy database 502 is a data store for information from the click tag parsers 316, the rich media parser 318, and the content preservation module 508. In one embodiment, the ad copy database 502 stores the original ad content as well as enough information to render the ad in the same context as the one in which it was presented to the user. In some embodiments, the ad copy database 502 also stores ad impression data, creative records, and other metadata. This advantageously allows the ad search engine 132 to reproduce the advertisement for later review by advertisers and marketing personnel. The ad copy database 502 is a database of a conventional type. The analytics database 310 is coupled to the bus 220 for storage and retrieval of information by different components of the ad search engine 132.
The request/query processing module 504 is software, code or routines for receiving queries, performing searches of the ad copy database 502 and returning results. The request/query processing module 504 is coupled to the user interface module 506 to receive query terms input by the user. The request/query processing module 504 uses those terms to formulate a query and apply the query to the ad copy database 502. The results from the query are then processed and formatted and then sent to the user interface module 506 for delivery to the user. One method for operating the request/query processing module 504 is described below with reference to
The user interface module 506 is software, code or routines for providing presenting a search interface to users, receiving input and search queries, and outputting results. The operation of the user interface module 506 is described in more detail below with reference to
The content preservation module 508 is software, code or routines for capturing the context in which ads were presented to the user. The context preservation module 508 receives context information and stores it in the ad copy database 502 so that the presentation of those advertisers can be rendered upon requests to the ad search engine 132. One embodiment for the operation of the content preservation module 508 is described in more detail below with reference to
The ad identification crowd sourcing module 510 is software, code or routines for generating and storing identification information about ads. The ad identification crowd sourcing module 510 is adapted to send relevant information about advertisements that has been extracted from the ad copy database 508 to users. The users in turn identify the ad and associated information and send that information back to the crowd sourcing module 510. In one embodiment, the users identify the brand, sponsor, company etc. associated with the advertisement. The ad identification crowd sourcing module 510 is coupled via the bus 220 and the network interface module 206 to present unidentified ads to users. The ad identification crowd sourcing module 510 receives the identification information from the user and stores that information into the ad copy database 502. In some embodiments, the ad identification crowd sourcing module 510 may send a particular ad to multiple users and use the identifying information provided by the majority of crowd source users.
The search engine (SE) derived insight generator 512 is software, code or routines for generating a derived insight score for advertisement. The operation of the search engine derived insight generator 512 is described in more detail below with reference to
Referring now to
Referring now to
For those ads including only JavaScript, the method 700 retrieves 704 scripts to the JavaScript for the advertisement. For example, the script creation processor 216 can retrieve the script template from the injected ad database 222 or the storage holding the script templates. The method 700 then retrieves 706 the ad asset. For example the script creation processor 216 can retrieve the ad asset from the advertising asset server 116. Next the data collection script 114 for the ad is created 708 by adding a script template and added to the modified ad. The method 700 completes by sending 710 the ad to the ad server 102 for insertion.
For those ads including action script, the method 700 retrieves 712 the script templates from storage. Next, the method 700 retrieves 714 the ad asset from the advertising asset server 116. The method 700 then disassembles 716 the action script. The method 700 then adds 718 the injected script. The original action script and the injected script are combined or reassembled 722 to create a modified ad. In some embodiments, the modified ad is also validated to ensure proper operation. The method 700 then completes by sending 710 the ad to the ad server 102 for insertion.
The present invention is particularly advantageous because this process for preparing the modified ad ensures that the modified as will execute in the same manner as the original ad without any impact of the injected script. Furthermore, the present invention advantageously provides injected script that non-intrusively sends data to the analytics server 104. Furthermore, the process described with reference to
Referring now to
Referring now to
Referring now to
Referring now to
Referring now to
The method 1200 continues by normalizing 1206 the data to a predefined range. In one embodiment, the method 1200 applies normalization to make the range of T zero to 255, inclusive. Finally, the method 1200 applies 1208 a color map associating a value to color and an alpha transparency proportional to that value to produce the visual image.
Referring now to
Referring now to
Referring now to
Referring now to
Systems and methods for advertising analytics and advertising searching have been described. In the above description, for purposes of explanation, numerous specific details were set forth. It will be apparent, however, that the disclosed technologies can be practiced without these specific details. In other instances, structures and devices are shown in block diagram form. For example, the disclosed technologies are described in one embodiment below with reference to user interfaces and particular hardware. Moreover, the technologies are disclosed above primarily in the context of the Internet and on-line advertising; however, the disclosed technologies apply to other types of advertising.
Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosed technologies. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
Some portions of the detailed descriptions above were presented in terms of processes and symbolic representations of operations on data bits within a computer memory. A process can generally be considered a self consistent sequence of steps leading to a result. The steps may involve physical manipulations of physical quantities. These quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. These signals may be referred to as being in the form of bits, values, elements, symbols, characters, terms, numbers or the like.
These and similar terms can be associated with the appropriate physical quantities and can be considered labels applied to these quantities. Unless specifically stated otherwise as apparent from the prior discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, may refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The disclosed technologies may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memories including USB keys with non-volatile memory or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
The disclosed technologies can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In one embodiment, the technology is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, the disclosed technologies can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer-readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modems and Ethernet cards are just a few of the currently available types of network adapters.
Finally, the processes and displays presented herein may not be inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the disclosed technologies were not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the technologies as described herein.
The foregoing description of the embodiments of the present techniques and technologies has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the present techniques and technologies to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the present techniques and technologies be limited not by this detailed description. The present techniques and technologies may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Likewise, the particular naming and division of the modules, routines, features, attributes, methodologies and other aspects are not mandatory or significant, and the mechanisms that implement the present techniques and technologies or its features may have different names, divisions and/or formats. Furthermore, the modules, routines, features, attributes, methodologies and other aspects of the present invention can be implemented as software, hardware, firmware or any combination of the three. Also, wherever a component, an example of which is a module, is implemented as software, the component can be implemented as a standalone program, as part of a larger program, as a plurality of separate programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and/or in every and any other way known now or in the future to those of ordinary skill in the art of computer programming. Additionally, the present techniques and technologies are in no way limited to implementation in any specific programming language, or for any specific operating system or environment. Accordingly, the disclosure of the present techniques and technologies is intended to be illustrative, but not limiting.
Claims
1. A method for processing ad analytics data, the method comprising:
- capturing analytics data wherein capturing analytics data includes: adding a first data collection script to an ad, wherein adding the first data collection script to the ad further comprises: provisioning an ad identifier; retrieving one or more script templates; retrieving an ad asset; disassembling the ad asset to a script; adding an injected script; and combining the script, the injected script and the ad identifier into a new second ad; serving the new second ad including the injected script;
- filtering and weighting the captured analytics data by a filter and by a weighting parameter to produce input data and transforming the input data to eye movement information, wherein transforming the input data to eye movement information further comprises: receiving activity data including cursor data and gesture data; transforming the activity data including the cursor data and the gesture data to pixel positions and times; generating a weighting parameter for at least one event taken from the activity data including the cursor data and the gesture data; creating a zero value matrix; and populating the zero value matrix using the pixel positions and times and the at least one event;
- converting the input data to a visual image, wherein the visual image is a heat map of eye movement data, further comprising: retrieving heat map data; convolving the heat map data with a fundamental solution to a heterogeneous heat diffusion equation; normalizing the convolved heat map data to a predefined range; applying a color map associating value to color and an alpha transparency; and
- providing the visual image for display.
2. The method of claim 1, wherein the input data is cursor data and gesture data and other data.
3. (canceled)
4. A method for processing ad analytics data, the method comprising:
- capturing analytics data, wherein capturing the analytics data further includes adding a data collection script to an ad, and wherein adding the data collection script to the ad further comprises: provisioning an ad identifier; retrieving a script template; retrieving an ad asset; combining the ad identifier, the script template, and the ad asset into a new ad; serving the new ad including the script template;
- filtering and weighting the captured analytics data by a filter and by a weighting parameter to produce input data and transforming the input data to eye movement information, wherein transforming the input data to eye movement information further comprises: receiving activity data including cursor data and gesture data; transforming the activity data including the cursor data and the gesture data to pixel positions and times; generating a weighting parameter for at least one event taken from the activity data including the cursor data and the gesture data; creating a zero value matrix; and
- populating the zero value matrix using the pixel positions and times and the at least one event;
- converting the input data to a visual image, wherein the visual image is a heat map of eye movement data, and wherein the converting includes retrieving heat map data, convolving the heat map data with a fundamental solution to a heterogeneous heat diffusion equation, normalizing the convolved heat map data to a predefined range, and applying a color map associating value to color and an alpha transparency; and providing the visual image for display.
5. (canceled)
6. The method of claim 1, wherein capturing analytics data further includes:
- loading the script template as a result of the second ad being served;
- executing the script template in a same time window as advertising content and a page load;
- extracting the captured analytics data; and
- transmitting the captured analytics data.
7. The method of claim 6, wherein the captured analytics data includes one or more from the group of cursor movement data, gesture data, browser data, and data pertaining to an environment in which the ad has been placed.
8. The method of claim 1, further comprising transforming the input data to eye movement information by a cursor/gesture-to-eye movement transformer.
9. (canceled)
10. The method of claim 1, wherein the visual image is a heat map of eye movement where different colors on the heat map represent different levels of focus of a user.
11. (canceled)
12. The method of claim 1, further comprising generating an attention score and providing the attention score for display.
13. The method of claim 1, wherein the steps of capturing, filtering and weighting, converting, and providing are performed in real time.
14. A computer program product comprising a non-transitory computer usable medium including a computer readable program, wherein the computer readable program when executed on a computer causes the computer to:
- capture analytics data wherein capturing analytics data includes: adding a first data collection script to an ad, wherein adding the first data collection script to the ad further comprises: provisioning an ad identifier; retrieving one or more script templates; retrieving an ad asset; disassembling the ad asset to a script; adding an injected script; and combining the script, the injected script and the ad identifier into a new second ad;
- serving the new second ad including the injected script;
- filter and weight the captured analytics data by a filter and a weighting parameter to produce input data and transforming the input data to eye movement information, wherein transforming the input data to eye movement information further comprises: receiving activity data including cursor data and gesture data; transforming the activity data including the cursor data and the gesture data to pixel positions and times; generating a weighting parameter for at least one event taken from the activity data including the cursor data and the gesture data; creating a zero value matrix; and populating the zero value matrix using the pixel positions and times and the at least one event;
- convert the input data to a visual image, wherein the visual image is a heat map of eye movement data, further comprising: retrieving heat map data; convolving the heat map data with a fundamental solution to a heterogeneous heat diffusion equation; normalizing the convolved heat map data to a predefined range; applying a color map associating value to color and an alpha transparency; and
- provide the visual image for display.
15. The computer program product of claim 14, wherein the input data is cursor data Of gesture data and other data.
16. (canceled)
17. (canceled)
18. (canceled)
19. The computer program product of claim 14, wherein the computer readable program when executed on the computer causes the computer to also:
- load the script template as a result of the second ad being served;
- execute the script template in a same time window as advertising content and a page load;
- extract the captured analytics data; and
- transmit the captured analytics data.
20. The computer program product of claim 14, wherein the captured analytics data includes one or more from the group of cursor movement data, gesture data, browser data, and data pertaining to an environment in which the ad has been placed.
21. The computer program product of claim 14, wherein the computer readable program when executed on the computer causes the computer to also transform the input data to eye movement information by a cursor/gesture to eye movement transformer.
22. (canceled)
23. The computer program product of claim 14, wherein the visual image is a heat map of eye movement where different colors on the heat map represent different levels of focus of a user.
24. (canceled)
25. The computer program product of claim 14, wherein the computer readable program when executed on the computer causes the computer to also generate an attention score and provide the attention score for display.
26. The computer program product of claim 14, wherein filter and weight, convert, and provide steps are performed in real time.
27. A system for processing ad analytics data comprising:
- an ad preparation server for preparing advertisements ultimate delivery to a client device, the ad preparation server adding a collection scrip to the advertisement, the ad preparation server having an input for receiving advertisements; and
- an analytics server for collecting and presenting information about advertising analytics, the analytics server coupled to receive data from the client device, the analytics server generating a visual image representing a focus of user attention for a placed advertisement.
28. The system of claim 27 wherein the data collection script operates non-intrusively on the client device and sends data to the analytics server.
29. The system of claim 27 wherein the ad preparation server comprises:
- a script creation processor for creating the collection script for addition to an advertisement, the collection script to gather custom and standard information and having a unique identification number;
- a script injector for inserting collection script into the advertisement, the script injector coupled to receive the collection script from the script creation processor and coupled to receive the advertisement, the script injector combines the advertisement and the collection script into a new modified advertisement.
30. The system of claim 27 wherein the analytics server comprises:
- an ad engagement tracker for collecting information about advertisements from data collection scripts, the ad engagement tracker coupled to at least one client device to receive information about advertisements; and
- an analytics database for storing information received by the analytics server, the analytics database having an input coupled to receive data from the ad engagement tracker.
31. The system of claim 27 wherein the analytics server further comprises:
- a cursor to eye movement transformer for translating the data into eye movement information, the cursor to eye movement transformer coupled to receive data from the client and generate eye movement information; and
- an eye tracking visualization module for producing a visual image that represents the eye movements of the user relative to the advertisement, the eye tracking visualization module coupled to receive eye movement information from the cursor to eye movement transformer.
32. The system of claim 27, wherein the analytics server further comprises a real-time analysis and reporting module for immediate processing of ad information and analytics data, the real-time analysis and reporting module coupled to receive data from the client device.
33. The system of claim 27 wherein the analytics server further comprises an attention score generator for generating an attention score, the attention score generator coupled to receive data from the client device and generate the attention score that is a composite score of several parameters of advertising data.
34. The system of claim 25 wherein the analytics server further comprises:
- a placement module for determining a placement of a particular advertisement, the placement module coupled to retrieve information necessary to determine the placement of the particular advertisement; and
- a placement scoring module for generating a score representative of a value of a placement of an advertisement at a particular position on a web page, the placement scoring module coupled to the placement module to receiving an indication of the placement of the particular advertisement.
35. A method for processing ad analytics data, the method comprising:
- receiving a condition from an advertiser system;
- capturing analytics data from a data collection script;
- analyzing the captured analytics data to determine whether the condition was satisfied;
- generating and sending a signal if the condition was satisfied;
36. The method of claim 35, wherein the steps of capturing, analyzing, generating and sending are performed in real time.
37. The method of claim 35 wherein capturing analytics data includes:
- adding a data collection script to an ad; and
- serving the ad including the data collection script.
38. The method of claim 35 wherein the signal includes one or more from the group of ad, ad identifier, time, web page, action, event, browser, placement position, focus and attention score.
Type: Application
Filed: Mar 30, 2012
Publication Date: Nov 2, 2017
Applicant: MOAT, INC. (New York, NY)
Inventors: Jonah Goodhart (Ithaca, NY), Noah Goodhart (Ithaca, NY), David J. Titus (Mount Airy, MD), Michael Garrett Seiler (Brooklyn, NY), Elliot Aaron Kulakow (Brooklyn, NY)
Application Number: 13/436,082