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 Oracle Patents:
- Techniques for managing drift in a deployment orchestrator
- Integrative configuration for bot behavior and database behavior
- Methods, systems, and computer readable media for reporting a reserved load to network functions in a communications network
- Container orchestration framework aware port scanning
- Ticket locks with enhanced waiting
The present application is a continuation of U.S. Non-Provisional patent application Ser. No. 13/436,082 filed Mar. 30, 2012, entitled “OPTIMIZATION OF ONLINE ADVERTISING ASSETS,” which 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, and 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
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 104
Referring 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 (UF) 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 implemented by, an advertising asset server, an ad preparation server, an ad server, and an analytics server, for processing advertisement analytics data relating to an advertisement, the method comprising:
- modifying, by the ad preparation server, the advertisement for display on a user device, by adding a data collection script to the advertisement, the data collection script configured to load responsive to at least one of a plurality of conditions and configured to obtain a plurality of elements of analytics data from activity by a user via the user device with respect to the advertisement: 1) taking a data snapshot of a context in which the advertisement is displayed and 2) tracking and storing at least one of cursor and gesture movements by the user with respect to the advertisement, and at least one of click inputs or scroll inputs by the user with respect to the advertisement, and monitoring trigger events with respect to the advertisement and sending the elements of analytics data in multiple small messages after each trigger event and using, by the analytics server, the elements of analytics data from activity by the user, to determine at least one pixel position relative to an upper corner of the advertisement for which the activity is obtained and a time for start of at least one event relative to the advertisement, wherein adding the data collection script to the advertisement further comprises: provisioning an advertisement identifier; retrieving an original advertisement asset from the advertising asset server; dissembling the original advertisement asset that conveys the advertisement to render a modifiable advertisement asset; injecting an analytic script into the modifiable advertisement asset; compiling a combination of the modifiable advertisement asset and the analytic script into a new asset configured to automatically both display an advertising message and execute the analytic script including tracking functions for the ad engagement tracker, at every instance that the new asset operates on the internet; and serving a new advertisement with the new asset;
- capturing, by at least the ad engagement tracker in the analytics server, the elements of analytics data indicating a user's attention to the advertisement on a website presented by the ad server when a user accesses the website via the internet in the multiple small messages sent from the data collection script after each trigger event;
- producing input data, by at least the analytics server, with the elements of the analytics data captured for an analytics database, containing user attention data with respect to various advertisement displays, including cursor data and gesture data associated with a particular user viewing the advertisement on the website;
- generating, by at least the analytics server, a visual representation of the user's attention to the advertisement display on the website, by based on the cursor and gesture data including a heat map, and further convolving the heat map with a fundamental solution to a heterogeneous heat diffusion equation and normalizing the convolved heat map data to a predefined range and applying a color map associating value to color and an alpha transparency wherein a plurality of different colors on the heat map represent different levels of focus by a user; and
- providing, by at least the analytics server, the visual representation for display to the user wherein the visual representation is the heat map, wherein the heat map is sent to the user device for presentation in a browser operating on the user device.
2. The method of claim 1, wherein the visual representation is an individual image produced by the input data including the cursor data and gesture data.
3. The method of claim 1, wherein:
- the data collection script is added to an advertisement by at least one of a program, software, and code that: 1) loads further to the advertisement being served; 2) loads further to a network call placed on the page by its publisher; 3) executes in the same time window as content of the advertisement and the page load; 4) extracts at least one of cursor movement, gesture data, browser, user data, and data pertaining to the environment in which the advertisement has been placed; 5) transmits that data, during page rendering, to an analytics server; and 6) creates data from which downstream analytics can determine the duration that the page was viewed during any particular rendering of the page.
4. The method of claim 3, wherein adding the data collection script to the advertisement, further comprises:
- retrieving a script template from storage of script templates and an ad asset from the advertising asset server and using the script template to create the data collection script and injecting the data collection script in the ad asset.
5. The method of claim 3, wherein adding the data collection script to the advertisement further comprises:
- retrieving script templates.
6. (canceled)
7. The method of claim 3, wherein the captured analytics data includes cursor movement data, gesture data, browser data, and data pertaining to an environment in which the advertisement has been placed.
8. The method of claim 1, further comprising using an eye-movement transformer and an eye-tracking visualization module.
9. (canceled)
10. The method of claim 1, wherein the heat map is generated by using a heat map data structure for generating heat map data.
11. The method of claim 10, wherein using the input data to generate the visual representation further includes:
- retrieving heat map data generated by the heat map data structure.
12. The method of claim 1, further comprising using a visualization metric and a focus index for each advertisement.
13. The method of claim 1, wherein the steps of capturing, and providing are performed in real time.
14. A computer-program product residing on 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:
- modify by adding a data collection script to an advertisement for display on a user device, wherein the data collection script is configured to load responsive to at least one of a plurality of conditions and configured to obtain elements of analytics data from activity by user via the user device with respect to the advertisement display, by taking a data snapshot of a context in which the advertisement is displayed and tracking and storing at least one of cursor and gesture movements, and at least one of click inputs and scroll inputs, and monitoring trigger events and sending multiple small messages after each trigger event and using the elements of the analytics data from the activity by the user into to determine at least one pixel position relative to an upper corner of the advertisement for which the activity is obtained and, a time for start of at least one event relative to the advertisement;
- capturing the elements of analytics data indicating a user's attention to the advertisement on a website when a user accesses the website via the internet in multiple small messages sent from the data collection script after each trigger event;
- use the captured analytics data as input data for a database containing user attention data gathered with respect to various advertisement displays, wherein the input data is cursor data and gesture data associated with a user giving attention to the advertisement display on the web site;
- generate by the input data to a visual representation of the user's attention to the advertisement display on the web site based on the cursor data and the gesture data including a heat map, and further convolving the heat map with a fundamental solution to a heterogeneous heat diffusion equation and normalizing the convolved heat map data to a predefined range and applying a color map associating value to color and an alpha transparency wherein a plurality of different colors on the heat map represent different levels of focus by a user; and
- provide the visual representation for display to the user wherein the visual representation is the heat map of eye movement for display, wherein the heat map is sent to the user device for presentation in a browser operating on the user device; and
- wherein adding the data collection script to the advertisement further comprises: provisioning an advertisement identifier; retrieving an advertisement asset from an advertisement asset server; disassembling the advertisement asset that conveys the advertisement to render a modifiable advertisement asset; injecting an analytic script into the modifiable advertisement asset; compiling a combination of the modifiable advertisement asset and the the analytic script into a new asset configured to automatically both display an advertising message and execute the analytic script including tracking functions, at every instance that the new asset operates on the internet; and serving a new advertisement with the new asset.
15. The computer-program product of claim 14, wherein the visual representation is an individual image produced by the input data including the cursor data and the gesture data.
16. The computer-program product of claim 14, wherein the computer-readable program when executed on the computer for capturing analytics data further causes the computer to also:
- add the data collection script to the advertisement by at least one of a program, software, and code that: 1) loads further to the advertisement being served; 2) loads further to a network call placed on the page by its publisher; 3) executes in the same time window as the advertising content and the page load; 4) extracts at least one of cursor movement, gesture data, browser, user data, and data pertaining to the environment in which the advertisement has been placed; 5) transmits that data, during page rendering, to an analytics server; and 6) creates data from which downstream analytics can determine the duration that the page was viewed during any particular rendering of the page.
17. The computer-program product of claim 16, wherein the computer-readable program when executed on the computer for adding the data collection script to the advertisement further causes the computer to:
- provision an advertisement identifier;
- retrieve a script template; and
- retrieve an advertisement asset.
18. The computer-program product of claim 16, wherein the computer-readable program when executed on the computer further causes the computer to:
- retrieve a plurality of script templates.
19. (canceled)
20. The computer-program product of claim 16, wherein the captured analytics data includes cursor movement data, gesture data, browser data, and data pertaining to an environment in which the advertisement has been placed.
21. The computer-program product of claim 14, wherein the computer-readable program when executed on the computer further causes the computer to also provide the input data to an eye-movement tracker and an eye-movement visualization module.
22. (canceled)
23. The computer-program product of claim 14, wherein the heat map is generated by using a heat map data structure for generating heat map data.
24. The computer-program product of claim 23, wherein providing the input data for the visual representation includes:
- retrieving heat map data.
25. The computer-program product of claim 14, wherein the computer-readable program when executed on the computer causes the computer to further use a visualization metric and a focus index for each advertisement for display.
26. The computer-program product of claim 16, wherein the providing operations are performed in real time.
27. A system for processing ad analytics data relating to an advertisement, comprising:
- a processor; and
- an advertisement server storing instructions that when executed cause the processor to: modifying by adding a data collection script to an advertisement for display on a user device, wherein the data collection script loads responsive to at least one of a plurality of condition and is configured to obtain elements of the analytics data from activity by user via the user device with respect to the advertisement for display, by taking a data snapshot of a context in which the advertisement is displayed and tracking and storing at least one of cursor and gesture movements, and at least one of click inputs or scroll inputs, and monitoring trigger events and sending in multiple small messages after each trigger event and using the elements of analytics data from activity by the user to determine at least one pixel position relative to an upper corner of the advertisement for which the activity is obtained and a time for start of at least one event relative to the advertisement; capture the elements of the analytics data indicating the user's attention to the advertisement on a website when the user accesses the website via the internet in the multiple small messages sent from the data collection script after each trigger event; use the captured analytics data to produce input data for a database containing user attention data gathered with respect to various advertisement displays, wherein the input data is cursor data and gesture data associated with a user giving attention to the advertisement display on the web site; use the input data to generate a visual representation of the user's attention to the advertisement display on the website, based on the cursor and the gesture data including a heat map, and further convolving the heat map with a fundamental solution to a heterogeneous heat diffusion equation and normalizing the convolved heat map data to a predefined range and applying a color map associating value to color and an alpha transparency, wherein a plurality of different colors on the heat map represent different levels of focus by a user;
- provide the visual representation for display to a user wherein the visual representation is a heat map of eye movement for display, wherein the heat map is sent to the user device for presentation in a browser operating on the user device; and
- wherein adding the data collection script to the advertisement further causes the processor to: provision an advertisement identifier; retrieve an advertisement asset from an advertisement asset server; disassemble the advertisement asset that conveys the advertisement to render a modifiable advertisement asset; inject an analytic script into the modifiable advertisement asset; compile a combination of the modifiable advertisement asset and the analytic script into a new asset configured to automatically both display an advertising message and execute the analytic script including tracking functions, at every instance that the new asset operates on the internet; and serve a new advertisement with the new asset.
28. The system of claim 27, wherein the visual representation is an individual image produced by the input data including the cursor data and the gesture data.
29. The system of claim 27, wherein the instructions to capture the analytics data further comprise:
- adding the data collection script to the advertisement by at least one of a program, software, and code that: 1) loads further to the advertisement being served; 2) loads further to a network call placed on the page by its publisher; 3) executes in the same time window as the advertising content and the page load; 4) extracts at least one of cursor movement, gesture data, browser, user data, and data pertaining to the environment in which the advertisement has been placed; 5) transmits that data, during page rendering, to an analytics server; and 6) creates data from which downstream analytics can determine the duration that the page was viewed during any particular rendering of the page.
30. The system of claim 27, wherein adding the data collection script to the advertisement, further comprises:
- provisioning an advertisement identifier;
- retrieving a script template; and
- retrieving an advertisement asset.
Type: Application
Filed: Mar 13, 2013
Publication Date: Nov 2, 2017
Applicant: Oracle America, Inc. (Redwood Shores, CA)
Inventors: Jonah Goodhart (Ithaca, NY), Noah Goodhart (Ithaca, NY), David J. Titus (Mount Airy, MD), Michael Garrett Sailer (Brooklyn, NY), Elliot Aaron Kulakow (Brooklyn, NY)
Application Number: 13/802,288