DYNAMIC INTERNET ADVERTISING
TECHNICAL FIELD
The present invention is directed to Internet advertising techniques, and, more particularly, to client-side advertising mechanisms
BACKGROUND
The World Wide Web ("the Web") is a medium for making content available to requesting users, also known as "publishing" content A Web publisher may provide content of vaπous types, including visual Web pages having textual and static visual contents, as well as such other content such as animated images and audio and video sequences The relatively low cost of publishing content on the Web enables many organizations and individuals to act as Web publishers
To access content made available on the Web, a user typically directs a Web client program, or "browser," executing on his or her computer system to obtain and display a particular unit of content Units of content are each identified by an address, also called a Uniform Resource Locator, or URL The user may direct the browser to obtain and display a unit of content by directly entering the URL for the unit of content, or by selecting a link or bookmark with which the URL is associated
Internet advertising is a practice m which a Web publisher adds an advertising message or other content provided by a third party advertiser to the content provided by the Web publisher in exchange for payment or other consideration from the advertiser For example, a Web- based travel agency may pay the publisher of a Web site directed to tips for travelers to add a banner advertisement for the Web-based travel agency to some of the Web pages comprising the Web site Such a
banner advertisement typically presents visual information promoting the advertiser that takes up a portion of the area of the Web page Some banner advertisements further constitute a link to a Web site associated with the advertiser, so that the user may click anywhere within the banner s advertisement to display, or "click through to," that Web site
As computer use, and particularly the use of the Web, becomes more and more prevalent the volume of Internet advertising presented grows larger and larger As this volume continues to increase, the need to differentiate advertising messages from those of competitors,
K) the need to maximize the number of advertising messages presented in a given amount of advertising space, and the need to collect information about the effectiveness of advertising increases significantly
Accordingly, a facility for presenting dynamic Internet advertising that monitors, reports on. and responds to user behavior would
15 have significant utility
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a high-level block diagram showing the environment in which the facility preferably operates
Figure 2 is a screenshot diagram showing the display of a 20 dynamic advertisement displayed by the facility
Figure 3 is a display diagram showing a first stage of the visual transition
Figure 4 is a display diagram showing a second stage of the visual transition 25 Figure 5 is a display diagram showing complete replacement of the first advertising message by the second advertising message
Figure 6 is a table diagram showing the definition of subregions withm the dynamic advertising region
Figure 7 is a display diagram showing the display of a Web page m response to the user clicking withm a subregion of the first advertising message
Figure 8 is a flow diagram showing the steps preferably performed by the facility when the user navigates to a publisher Web page on which space has been purchased for dynamic advertising
Figure 9 is a flow diagram showing the steps preferably performed when the dynamic advertising applet is launched in a separate thread Figure 10 is a flow diagram showing the steps preferably performed m an event handler registered by the facility to process user input events occurring m conjunction with the dynamic advertising region
DETAILED DESCRIPTION
A software facility for presenting dynamic Internet advertising that monitors, reports on, and responds to user behavior is provided The facility uses a client-side component, such as a Java applet executing on the user's computer system m conjunction with the Web browser being used by the user The client-side component composes advertising messages from multi-media elements including graphics, text, audio, video, and various data entry elements and presents them on the user's computer system based upon the contents of a script retrieved from a dynamic advertising server by the client-side component The script received by the client-side component specifies such details of the chent- side component's operation as the sequence of advertising messages, transitions between advertising messages, mappings from specific subregions defined withm the dynamic advertising region to different click-through targets and text superimposed over the advertising messages By sending the client-side component an altered script, the dynamic advertising server can quickly adjust any aspects of the behavior
of the client-side component, while consuming just the small amount of network/data bandwidth required by the script
The client-side component is preferably able to autonomously modify or replace such advertising messages, irrespective of whether a particular action is taken by the user The client-side component preferably also collects and transmits to a central server information about the user's behavior, such as where the user has moved the mouse pointer, the times at which the mouse pointer enters and exits that area, whether the user has clicked on any user interface controls, when the advertising message was first and last viewable in the browser, etc In accordance with additional aspects of the facility, data received from each client-side component is preferably analyzed by the central server In some embodiments, the central server sends new instructions based upon the analysis back to the client-side component The chent- side component provides advertising messages that are proactive, dynamic, and adapted to the behavior of the user
Because it controls the display of advertising messages, the client-side component enables advertising messages for multiple advertisers to be displayed sequentially or simultaneously in the same ad space In some embodiments, the facility provides real-time or occasional integration with advertiser databases in order to deliver advertising messages based upon information retrieved by the client-side component from advertiser databases, such as current pricing and availability information Figure 1 is a high-level block diagram showing the environment m which the facility preferably operates The diagram shows a client computer system 110 An Internet user preferably uses the client computer system to connect, via the Internet 100, to an Internet publisher computer system, such as Internet publisher computer systems 130 and 140, to retrieve and display a Web page
In cases where an Internet advertiser, through the Internet advertising service, has purchased advertising space on the Web page provided to the Internet user computer system by the Internet publisher computer system, the Web page contains a reference that causes the client computer system to retrieve from a dynamic advertising server 120 the client side dynamic advertising component and execute it When executed, the client-side component downloads the appropriate dynamic advertising script from the dynamic advertising server 120, which specifies the sequence of advertising messages to display The client-side component retrieves and presents these advertising messages withm the publisher Web page The scπpt specifies the server from which the advertising messages are to be downloaded Different advertising messages may be downloaded from different servers, such as Internet content distributor computer systems 170 and 180 While presenting these advertising messages, the client-side component monitors and stores in a log user interface events that occur with respect to the displayed sequence of advertising messages The client-side component periodically transmits these events to the dynamic advertising server
When the user clicks withm the dynamic advertising message, the client-side component redirects the Internet user computer system to retrieve a Web page from the appropriate Internet advertisei computer system, such as Internet advertiser computer system 150 or 160 In visiting the Internet advertiser's Web site, the Internet user may traverse several pages, and may take such actions as purchasing an item or bidding m an auction Revenue from such actions typically finances, and is often the motivation for, the Internet advertiser's Internet advertising
The client computer system 110 preferably includes one or more central processing units (CPUs) 111 for executing computer programs such as the facility, a computer memory 112 for storing programs and data, a persistent storage device 113, such as a hard drive, and a computer-readable media drive 114, such as a CD-ROM drive, for
reading programs and data stored on a computer-readable medium The dynamic advertising sever 120 preferably includes components similar to those described in the client computer system 110
While preferred embodiments are descπbed m terms of the environment described above, those skilled m the art will appreciate that the facility may be implemented m a variety of other environments including a single, monolithic computer system, as well as various other combinations of computer systems or similar devices
In order to more fully describe the implementation of the facility, its operation is described m conjunction with an example
Figure 2 is a screenshot diagram showing the display of a dynamic advertisement displayed by the facility The diagram shows a browser window 200, which includes a client area 210 in which is displayed a sample publisher Web page In addition to other contents, the sample Web page contains a dynamic advertising region 220 managed by the client-side component of the facility In the dynamic advertising legion the client-side component has displayed a first advertising message 221 for Advertiser A It can be seen that the first advertisement includes a rectangular image, over which the client-side component has superimposed the following text 231 "Dynamic Text Here" The client- side component preferably displays this first advertisement for a period of time specified by the script such as 10 seconds During this time, the client-side component tracks any user interface events received m the browser that relate to the dynamic advertising regions The client-side component stores these events in a log for later transmission to the dynamic advertising server
Figures 3-5 show a visual transition performed by the facility from the display of the first advertising message to the display of the second advertising message Figure 3 is a display diagram showing a first stage of the visual transition It can be seen m this diagram that, in dynamic advertising region 320, the client-side component shows a
portion of a second advertising message 322 that replaces the left side of the first advertising message 321
Figure 4 is a display diagram showing a second stage of the visual transition It can be seen in this diagram that, in dynamic advertising region 420, the client-side component shows a larger portion of a second advertising message 422 that replaces the left side of the first advertising message 421
Figure 5 is a display diagram showing complete leplacement of the first advertising message by the second advertising message The facility preferably displays the second advertising message 522 for a period of time specified by the script, such as 10 seconds, continuing to track and record user interface events After displaying the second advertising message, the facility again displays the first advertising message Were the user to perform a user interface event with respect to the dynamic advertising region, such as moving the mouse from outside the dynamic advertising region into the dynamic advertising region while the client-side component is displaying a visual transition from the first advertising message to the second advertising message, such as is shown in Figures 3 and 4, the client-side component preferably reverts to the display of the first advertising message shown m Figure 2 to permit the user to further review and interact with the first advertising message
Figure 6 is a table diagram showing the definition of subregions withm the dynamic advertising region Table 600 contains two copies of the first advertising message, 610 and 620, each showing one of two subregions defined with the first advertising message by the dynamic advertising script Rectangle 612 in the first copy of the first advertising message is the border of a first subregion defined in the first advertising message Rectangle 622 in the second copy of the first advertising message defines the second region within the first advertising message The table further shows that, when the user clicks withm
subregion 612, the client-side component causes the browser to navigate to the following URL 613 : "http://www.advertisera.com". The table also shows that, when the user clicks within region 622, the client-side component causes the browser to navigate to URL 623: "http://www.avenuea.com".
For example, Figure 7 is a display diagram showing the display of the Web page at URL 623 in response to the user clicking within subregion 622 using the mouse pointer 621.
Those operating the dynamic advertising service preferably prepare a number of different scripts, or dynamic advertising specifications, each specifying a particular instance of dynamic advertising. A script preferably identifies the advertising messages that are to be presented, such as image files, preferably by specifying a URL from which each may be retrieved; the order in which the advertising messages are to be displayed and details of the visual transition to be performed in switching from displaying one advertising message to the next; definitions of regions within one or more of the advertising messages, and attributes of the regions such as click-through destinations to which to navigate if the user clicks within the region, and text to be displayed within the region. Scripts are preferably small in size, allowing the performance of a particular client-side component to be redefined merely by sending a revised script to the client-side component. Indeed, such a revised script may identify the same advertising messages as the original script, enabling the browser to obtain those creatives from its cache rather than re-retrieving them.
Scripts are preferably prepared in the script language described below in Table 1, though those skilled in the art will appreciate that a variety of other formats could be gainfully used to represent a dynamic advertising specification.
• DynamicAd v ertisinξScript xmlns="x-schema:_lient-side componeπtschema.xπ_"> - This tag denotes the beginning of the scπpt as well as what schema (rules) to follow when parsing the scnpt. Each scπpt can contain the following elements
• <HeartBeat TimeVa_ue=10> - Heartbeat is the interval at which the client should report statistics back to the server Time Value is the interval in seconds between sending statistics to the server
• <Tr_n_itionSpeed TimeVaIue=4> - Denotes the speed of transitioning from one image to another, the lower the number the faster the transition - 0 means immediate rhis value is the number of milliseconds between updating the coordinates ot the image
• <GraphicText > - Denotes text to display on the Applet, there can be only one graphic text object at the root of the scπpt. and zerc-to-manv graphic text objects per image elements. A graphic text element can contain the following elements<DisplayText> - 1 ext to display, there can be many ot these per Grpahuc text element each on will displav one line below the pπor one
• <Font FontName="tιmes" Face="Italιc" PointSizc=" 14"/> - This is the tont to use tor the text • <BGCoIor Red="_55" Green="_55" Blue="255" > - Background color for the text
• <FGColor Red="0" Green="0" Blue="0'7> - Foreground color for the text
• < Rectangle RcctX="_00" RcctY="0" RcctW=" 150" RcctH="50'7> - Bounding rectangle to draw the text in. if there is no bounding rectangle then the entire window space available will be used • <Image Location="mtvnews gιf'> - Denotes the definition of one Image, must have a location property that tells the client where to load the image from The location can be a relative URL based on the code base of the applet or a iullv qualified URL such as 1 ITTP //www advertisera.com /webpage An image can contain the following elements
• <DcfaultCIick Location="I ITTP //www advertisera.com/ addelault"/> - Tins is the URL that will be browsed to if a user clicks on the client but is not in a defined region One Del aultChck element is allowed per Image
• <l)isplay _ ime>- How long to Displav each image lliis value is represented in seconds
• <Region> - Defines a region tor the current image, a region contains the iollowing elements
<Rectangle RectX="0" RectY="0" RectW="234" RectH="30"/> - Defines the upper left comer, width, and height tor the region, in pixels
• ^URL Location="HTTP //www advertisera.com adt_rget '' - Defines the URL to browse to when the region is clicked on.
Table 1
An example script expressed in the script language shown in Table 1 above is shown below in Table 2.
I -- 'va ! versιon=' 0" ■>> 2 Client-side componentScπpt xmlns= 'λ-schema client-side componentschema nil
3 HcartBcat I ιmeValuc= ()"
4 • I ransitionSpeed I imeValue^'lO'T^
5 '-Image Location^" Adlmagel export gif ^ b ' DcfaultChck Location- 'http //www avenuea.com 7 7 <Regιon>
S <Rectangle RectX="400" RcctY="0" Rect ="168" RcctH="60"
9 <URL Locatιon="http //www advertιser_.com"/>
10 •■ /Regions
14 <rGColor Red="0" Green="0" Blue="0"/>
15 <Rectangle RectX="130" RectY="0" RectW ="200" RectH="30"/>
16 </GraphιcText> 17 <DιsplayTιme TιmeValue="2"/
18 </Image>
1 '-Image Locatιon="AdImage2_exportgιf *>
20 ''DefaultChck Location- 'http //www avenuea.com"/>
21 <Regιon> 22 <Rectangle RectX="130" RectY="0" RectW="200" RectH="30" >
23 ■■ URL Loca„on="http //www advertiserb com '
24 </Regιon>
25 <GraphιcText>
26 <DιsplavText>DιiFerent Dynamic Text Here /DιsplavText> 27 <Font FontName='tιmes" Face="BoldIt_Iιc" PoιntSιze="12"/>
28 FGColor Red- 0 Green- 0 Blue- 0 Λ
29 Rectangle RectX= 130 RcctY= 0 RectW 200 RectH 30
30 </GraphιcText
31 DisplayTime TιmeValue= "1 Λ
32 </Image>
33 </Clιent side componenώcπpt
Table 2
Line 3 specifies that the client-side component should send feedback to the dynamic advertising server every ten seconds Line 4 specifies that, when transitionmg from one advertising message to the next, ten milliseconds should elapse between updating the coordinates of the advertising message By specifying various values for the Time Value property of the TiansitionTime tag, the script author can specify how long it takes to transition from one advertising message to the next or, by specifying zero, can specify that transitions are to be instantaneous Lines 5-18 specify details of a first advertising message, while lines 19-30 specify details of a second advertising message With respect to the first advertising message, line 5 specifies the URL of a graphics file containing the image for the advertising message Line 6 contains the click-through URL for positions within the dynamic advertising region that are not withm any defined sub-regions Lines 7-10 define one sub-region withm the dynamic advertising region Line 8 specifies its boundaries, while 9 specifies it click-through URL Lines 1 1-16 specify the display of the text "Dynamic Text Here" in the first advertising message Lines 19-30 have similar contents with respect to the second advertising message Thus, it can be seen that different regions may be defined withm an advertising message for different purposes Once a scπpt such as the script shown in Table 2 has been generated, the facility preferably checks the scnpt for compliance with an XML schema defining the proper syntax for a dynamic advertising script One such preferred schema is shown below in Table 3
1 <Schema xmlns "urn schemas microsoft-corn xml-data
2 xmlns dt 'urn schemas microsoft-com datatypes >
3 ^AttπbuteType name="Tιme Value" dt.type="ιnt"/>
4 Elementrvpe name="DιsplavTιme" content="empty">
5 ^attnbute type- Time Value" requιred="yes'7>
6 /ElementType> 7 <AttπbuteType name- 'Red" dt:tvpe="ιnt"/>
X <AttnbuteType name="Green" dt:type="ιnt"/>
9 <-AltπbuteTvpe name="Blue" dt:type="ιnf '/>
10 ' Element I vpe name="BGColor" content="empty">
1 1 attπbute type="Red" requιred="yes"/> 12 '"attnbute type="Green" requιred="yes"/>
13 ' attnbute tvpe="Blue" requιred="γes"/>
14 "-/Element type--
15 "Element rype name- 'FGCoIor" content="eltOnly">
16 <attπb_te type="Red" requιred="yes'7> 17 <attπbute type- 'Green' ' required- Ves' '/>
18 '"attnbute type- 'Blue" requιred="yes'y>
19 '"'ElementTvpe^
20 <ΛttnbuteTvpe name="FontName" dttvpe="stπng'7>
21 ""ΛtfributeTvpe name="Face" dt tvpe="enumeraUon'' dt.values="Bold Normal Italic Boldltahc" > 22. <ΛttnbuteType name="PoιntSιze" dt tvpe="ιnt"/>
23 "-ElementTvpe name="Fonf ' content="empty">
24 ' attnbute tvpe="FontName" requιred="ves"/>
25
28 Element I ype namc="DιsplavText" content='textOnlv' '
29 '-Attnbute Type name="RectX" dt tvpe="ιnf 7>
30 ' Mtnbute 1 vpe name="RectY" dt tvpe="ιnt'7> 1 -AttnbuteTvpe name= 'RectH" dt tvpe= 'inf '/> 32 "Attnbute Tvpe name="RectW" dt tvpe="ιnt"/>
33 ' Elementrvpe name='"Rectangle ' content="empty"^
34 '-attnbute tvpe= 'RectX" requιred="ves"/>
35 <attnbute tvpe=' RectY" rcquιred="ves'7>
36 ^attnbute type="RectH" requιred="yes'7> 37 - attnbute tvpc="RectW" rcquιred="ves'7>
38 ' /Element I'ype^
39 • Element I ype name= GraphicText" content- 'cltOnlv" order="manv" >
40 ' element tvpe="DιsplavTιmc ' mιnOccurs="0 ' maxϋccurs =' 1 "r
41 ' element tvpe="DιsplavText" mιnOccurs=" 1 " maxOccurs="*'"" 42 element type= 'Font" mιnOccuιs="0" maxOccurs=" 1 "
43 * element tvpe="BGColor" mιnOccurs="0" maxOccurs=" 1 "Λ
44 ' element tvpe="FGColor" mιnOccurs="0" maxOccuι_=" 1 "Λ*
45 ^element type="Rectangle'' mmOccurs=' 0" maxOccurs- ' 1 "
53 '-Εlemenfl'vpe >
54 Element fype name= 'Region" content="eltOnlv" order="many '"
55 >-clement type="Rectangle" mιnUccurs="l" maxOccurs="l "Λ
56 '
"element
57 /Element lype >
58 <Elcmenffype name="lmage" content- 'eltOnlv" order="many '^
" -
77 <elemeπttype- ΗGColor" mιnOccurs="0" maxOccurs=' l'"> 78 <elemeπt type="FGColor" mιnOccurs="0" maxOccurs=" 1 "/> 79 </ElementType> 80 < Schema
Table 3
After insuring that the dynamic advertising script conforms to the XML schema for advertising scripts, the facility preferably compresses the dynamic advertising script, employing a numerical substitution scheme such as the one detailed below in Table 4.
"9" + <~2 bvtes for lcngth> + < Character string for locatιon^-9
Table 4
Table 5 below shows the compressed, or "binary" form of the sample script shown in Table 2 generated by applying the substitution scheme described in Table 4.
u_ 02 OA Ft 08 OA F8 03-00 13 41 64 49 6D 61 o7 ~\dImaα
65 3 5F 65 78 70 θr 72-74 2E 67 69 66 09 00 16 p> c__f
68 74 74 70 3A 2F 2F 77-77 77 2E 61 "6 65 6E ~5 http //www avenu
65 61 2E 63 6F 6D F7 04-05 01 90 00 00 00 A8 00 pa com
3C FB 06 00 1A 68 74 74-70 3A 2F 2F "7 "7 77 2E t D / /www 6± 64 76 65 72 74 69 73-65 72 61 2E 63 6F 6D FA ααvertisera com
FC OA OB 00 11 44 79 6E-61 6D 60 63 20 54 65 78 Jvnarru^ Te -.
74 ?0 48 65 - 2 65 F5 OC-00 05 74 69 6D o5 73 03 H^re iies
OC T4 OD 00 00 00 00 00-00 F3 05 00 82 00 00 00
C8 or ±Z FB T6 07 02 q_c[3 03 00 ±3 41 49 6D z\dlm
__ 6 6" o5 32 5F 65 78 0-6F 72 74 2E 67 69 66 09 age2 exDort σif
_ OC 6 68 74 "4 70 3A 2F-2F 77 77 7" 2E ol 7o *" Ό /www a »
6C "5 65 61 2E o_ 6F 6D-F7 04 05 00 82 0_ 00 r "uea COT
4 C8 00 IE FB 06 00 1A 68-74 7H 70 3A 2F " 7T -'-•
/ / w
^ ?E 6ι 64 76 6_ 72 " -69 T 65 72 62 2E 63 6F w „αve r sero C . o 6D FA FC OA OB 00 IB 44-69 66 66 65 72 6_ 6E 74 m ,_. ilerpn
20 44 7° oE 61 6D 69 63-20 54 65 78 74 20 48 6D
72 6 F_ OC 00 05 74 69-6D 65 73 03 OC ^4 OD 00 t, _.mes
GO 00 00 00 00 F3 05 00-82 00 00 00 C8 00 IE FB
C 07 n2 -q FD FF BO OO-AA 81 CD 00 40 EB CE E8
Table 5
Figures 8-10 are flow diagrams showing steps preferably performed in the client computer system to display dynamic advertisements using the facility Figure 8 is a flow diagram showing the steps preferably performed by the facility when the user navigates to a publisher Web page on which space has been purchased for dynamic advertising In step 801, the user issues an HTTP request for such a publisher Web page
In step 802, the facility receives the requested Web page The received Web page contains a reference to a conditional dynamic advertisement inclusion that will determine whether it is possible to perform dynamic advertising in the client computer system, or whether, inversely, conventional banner advertising should be substituted for dynamic advertising Table 6 below shows the HTML code preferably included in the publisher Web page for this purpose
1 <IFRAME MARGINHEIGHT =0 MARGINWIDTH=0 HEIGHT="60" WIDTH="468" SCROLLING="NO"
2 SRC="http //client-side component avenuea com/coho/cohoframe html >
3 <a href="http //view avenuea com/go/test/ ιrect/01 ' ><ιmg
4 src="http //view avenuea com/vιew/test/dιrect/01 ' wιdth=468 heιght=60> </a>
5 </IFRAME>
Table 6
It can be seen that the HTML code shown in Table 6 determines whether the browser in which it is processed supports the IFRAME established by the HTML code shown in Table 6 tags If so, the browser interprets lines 1-2 m order to retrieve the conditional dynamic advertising inclusion from the URL http //client-side component avenuea.com/coho/cohoframe html If the browser interpreting this HTML code does not support the IFRAME tag, it interprets line 3-4 to retrieve a conventional banner advertisement from the URL http //view avenuea com/view/test/direct/01 In an alternative embodiment, the IFRAME tag is omitted from the publisher HTML code, which instead unconditionally includes the conditional dynamic advertising inclusion
In step 803, in browsers that support the IFRAME tag, the facility retrieves the conditional dynamic advertisement inclusion using the reference contained in the requested Web page Table 7 below shows an example of the conditional dynamic advertisement inclusion
1 <html> 2 <SCRIPT LANGUAGE="JavaSCRIPT">
3 if ( window navigator javaEnabledO == true )
5 document wπte <app et co e=\"Ad et\ arc ιve=\"Adlet
6 codebase=\"http //client-side component avenuea com/coho/V ιd=\"AdletV wιdth=\"468\"
7 heιght=\"60\">")
8 document wnte("<param name=SιtelD
9 value=\"clιent-sιde component\"x/applet>")
10 } 1 1 else
12 { document wπte("<a
13 href=\"http //view avenuea com/go/test/dιrect/01\" target=_top> <ιmg
14 src=\"http //view avenuea com/vιew/test/dιrect/01 \" wιdth=\"468\"
15 heιght=\"60\"> </a>") 16 }
17 </SCRIPT>
18 </html>
Table 7
The conditional dynamic advertisement inclusion contains a JavaScript scπpt The scπpt m lme 3 tests whether Java applets are supported by the current browser and have been enabled If so, lines 5-9 add to the IFRAME established in the HTML code shown m Table 6 an inclusion reference for the dynamic advertising applet Otherwise, lines 12-15 add a reference to a traditional banner ad to the IFRAME In additional embodiments, the conditional dynamic advertising inclusion includes additional tests regarding the suitability of the browser and/or the client computer system for supporting dynamic advertising For example, in one such embodiment, the conditional dynamic advertisement inclusion includes tests for browser versions whose Java virtual machine implementations properly execute the dynamic advertising Java Applet
In step 804, the facility executes the scπpt m the dynamic advertisement inclusion to determine whether a dynamic advertisement can be presented on the client system, that is, whether the client system supports Java applets In step 805, if a dynamic advertisement can be presented, then the facility continues in step 807, else the facility continues in step 806 In step 806, the facility retπeves and displays a conventional banner advertisement After step 806, the steps conclude In step 807, the facility retrieves the dynamic advertising applet also called the client-side component, from the dynamic advertising server In step 808, the facility launches the retrieved applet m a separate applet thread When it executes, the applet displays advertising messages and registers event handlers for user interface events that occur m conjunction with the dynamic advertising region Execution of the applet is discussed m greater detail below in conjunction with Figure 9 After step 808, the facility, in the browser thread, processes user interface events In step 809, the facility receives a user interface event In step 810, the facility identifies an event handler registered to receive the user interface event For user interface events occurπng in conjunction with the dynamic advertising region — that is, for those
events occurring within the boundaπes of this region ~ the facility has registered an event handler for recordmg the user interface event In step 811, the facility invokes the event handler identified in step 810 After step 811, the facility continues in step 809 to receive and process the next user interface event
Figure 9 is a flow diagram showing the steps preferably performed when the dynamic advertising applet is launched m a separate thread m step 808 In step 901, the facility obtains a dynamic advertising script from the dynamic advertising server The facility preferably uses a scπpt identifier included m the publisher Web page or other similar indicia in order to select one dynamic advertising scπpt from a number of different dynamic advertising scπpts available from the dynamic advertising server In step 902, the facility constructs an internal representation of the scπpt obtained in step 901 In step 903, the facility registers user interface event handlers for subregions of the dynamic advertising region specified in the scπpt In step 904, the facility retrieves and presents in the dynamic advertising region the initial contents specified by the scπpt In step 905, the facility initiates retrieval of the next advertising message contents specified by the scπpt In step 906, the facility sleeps for a display interval peπod specified by the script, which indicates the amount of time each advertising message m the sequence of advertising messages is to be displayed In step 907, after awakening at the end of the display interval period, the facility displays the next advertising message content specified by the scπpt, applying any visual transitions specified by the scπpt In step 908, if the time since the last log upload exceeds a reporting interval specifying how frequently such upload should occur, then the facility continues step 909, else the facility contmues in step 905 In step 909, the facility transmits log entπes to the dynamic advertising server In step 910, the facility deletes the transmitted log entries from the log After step 910, the facility continues in step 905
In additional embodiments, in addition to or in place of the test shown in step 908 for deterrnining whether to transmit log entries to the dynamic advertising server, the facility utilizes other tests, including whether the size of the log has exceeded a particular size, such as the size of a packet used to transmit the log entries, or a multiple thereof; whether the log contains a particular type of entry, such as a mouse-click entry in a particular region; or any combination of these or other factors.
Figure 10 is a flow diagram showing the steps preferably performed in an event handler registered by the facility to process user input events occurring in conjunction with the dynamic advertising region. In step 1001, the facility adds to the event log an entry describing the cuπent user interface event. Log entry formatting is described in greater detail below m conjunctions with Tables 8 and 9. In step 1002, the facility processes the event if any processing is required for the event. For example, for mouse-click events, the facility preferably identifies the subregion containing the coordinates of the click, and causes the browser to navigate to a URL specified by the script for that subregion. After step 1002, the steps conclude.
In one embodiment, the event handlers provided by the facility write four different types of log entries, which are described below in Table 8
Entry Type 1 - Impression Request
ScπptID <tab> Sequence # <tab> Cookie <tab> Entry Type <tab> Time of Impression1
Entry Tjpe 2 - Image Display Time
ScπptID <tab> Sequence # <tab> Cookie <tab> Entry Type <tab>
Start Time1 <tab> Stop Time1 <tab> Image Number from scπpt
Entry Type 3 - Click
ScπptID <tab> Sequence # <tab> Cookie <tab> Entry Type <tab> Time of Click1 <tab> Image Number from scπpt <tab> Region number within image <tab> Click-through URL
Entry Type 4 - Mouse Over Image Time
ScπptID <tab> Sequence # <tab> Cookie <tab> Entry Type <tab> Start Time1 <tab> Stop Time1 <tab> Image Number from scπpt <tab> Region number withm image
1 # of milliseconds since 1/1/1970
Table 8
A sample log coπesponding to the example is shown below in Table 9.
1 {3595209E-1558-11 O -934F-00C04F08320A} 1 949013076-280132 1 956090465522
2 {35952O9E-1558-11D4-934F-00C04FO832OA} 2 949013076-280132 2 956090465662 956090467745 0
3 {3595209E-1558-11D4-934F-00C04F08320A} 3 949013076-280132 2 956090467745 956090470629 1
4 {3595209E-1558-11 D4-934F-00C04F08320A} 4 949013076-280132 2 956090470629 956090477649 0
5 {3595209E-1558-11D4-934F-00C04F08320A} 5 949013076-280132 4 956090480233 956090480603 1 1
6 {3595209E-1558-11 D4-934F-OOC04F08320A} 6 949013076-280132 4 956090480604 95609081595 1 0
7 {3595209E-1558-11D4-934F-OOC04F08320A} 7 949013076-280132 2 956090477649 956090481599 1
8 {3595209E-1558-11 O4-934F-00C04F08320A} 8 99013076-280132 3 956090481600 1 0 http //www aveni
Table 9
Log entry 1 indicates the retrieval of the binary script from the dynamic advertising server. Log entries 2, 3, 4, and 7 indicate the display of advertising messages. Log entry 8 indicates a click within an advertising message. Log entries 5 and 6 indicate that the user has "moused-over" an advertising message.
It will be understood by those skilled in the art that the above-described facility could be adapted or extended in various ways. For example, various types of client-side components could be used other than Java applets. Also, the facility may collect a variety of different types of information relating to the user's viewing of an interaction with advertising messages or incident thereto. Further, the dynamic advertising server may do a variety of types of analysis on the data returned by the client-side component, and may, based on such analysis, adjust the performance of dynamic advertising by the client-side component, either by providing a revised script or by issuing other types of instructions. Also, the facility may present a wide variety of types of advertising messages, including static images; video sequences; animation sequences
such as animated GIFs, SHOCKWAVE™ animation sequences, FLASH™ animation sequences; streaming sequences; and Java- implemented advertising messages, either homogeneously or heterogeneously. While various embodiments of the client-side i component that execute in conjunction with a Web browser on a general- purpose computer system are discussed above, various additional embodiments of the client-side component execute in different environments, including, such electronically-addressable special-purpose devices as cellular phones, pagers, personal digital assistants, automatic
) teller machines, televisions and devices connected thereto, and other home and auto appliances, as well as in various additional environments. While the foregoing description makes reference to prefeπed embodiments, the scope of the invention is defined solely by the claims that follow and the elements recited therein.