WO2001031492A2 - Online focused content generation, delivery and tracking - Google Patents
Online focused content generation, delivery and tracking Download PDFInfo
- Publication number
- WO2001031492A2 WO2001031492A2 PCT/US2000/041361 US0041361W WO0131492A2 WO 2001031492 A2 WO2001031492 A2 WO 2001031492A2 US 0041361 W US0041361 W US 0041361W WO 0131492 A2 WO0131492 A2 WO 0131492A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- content
- player
- chent
- user
- server
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Definitions
- the present invention is related to online content, and more particularly to a method, system, and computer program product for providing authoring, generation, delivery, authentication, and tracking for such content.
- the World Wide Web is increasingly becoming an advertising-driven medium.
- web pages containing banner ads and pop-up ads have become ubiquitous.
- ads will be displayed on a user's screen alongside or on top of other content, so as to force the user to see the ad when viewing the other content.
- web pages are constructed so that ads become visible several seconds before the remaining content appears, so as to further increase the amount of time a user spends viewing an ad.
- advertisers are interested in tracking user behavior concerning their ads, and are particularly interested in determining which demographic groups may be interested in their products or services. By targeting specific demographic groups and monitoring the results, advertisers can increase the effectiveness of their advertising and of its placement, and can customize ads so as to appeal to particular audiences. Thus, advertisers expend considerable effort to obtain information regarding user's interaction with their ads.
- advertisers can track certain information concerning user behavior and ad penetration, using techniques that are known in the art. For example, a content provider may provide an advertiser with a "hit count" indicating how many "GET" requests for the ad were received in a given time period.
- hit counts do not provide accurate information regarding whether the ad was actually viewed by each user; for example, the ad may not have been received by the user's browser, the user may have turned the graphics off on his or her browser, the user may have scrolled to another portion of the page, or he or she may have ignored the ad altogether.
- content providers may provide advertisers with in- formation as to the number of "click throughs" associated with an ad (i.e. the number of times a user clicked on the ad to be taken to another page).
- Such information provides a rudimentary level of tracking user behavior, but only captures a small fraction of interested users. Many users who view an ad do not click on the ad, whereas other users may tend to click on everything they see, so that their clickfhroughs may not be as significant as others.
- the demographics of the particular users who have clicked on the ad are generally not known.
- Cookies small files stored on the user's local hard drive
- users fill out onscreen forms to indicate what type of information interests them.
- a cookie is stored on the user's hard drive so as to identify the user for future visits. The website can then provide content (and advertising) according to the previously-provided user information.
- cookies are of limited value because they only operate within a given domain.
- a cookie stored by a particular website can generally only be accessed by that website or by a related site, and presumably contains information that can only be interpreted by an application riinning on that website's server (for example, the cookie may store a user ID which identifies the user in a proprietary database).
- cookies do not provide a mechanism by which advertisers can track user behavior with respect to their ads over a number of diverse websites.
- the present invention provides a multimedia authoring and playback system which avoids the limitations of the prior art and provides additional flexibility with regard to content generation and tracking.
- a player client is built into the user's browser (or provided as a plug-in), allowing presentation of complex and interactive content from within the browser window.
- the player client communicates with a content server to obtain the content.
- Content may be provided to the player client in the form of instructions in a scripting language.
- the player client monitors user behavior with respect to the content it displays. Information describing such behavior is transmitted to a data collection server for tracking purposes. Each player client is given a unique identifier so that the data collection server can track behavior more effectively.
- the player is also able to communicate information describing whether an ad is visible on the screen, how long the ad is visible, and what user interaction, if any, has taken place with respect to an ad. Based on the information provided by the player to the data collection server, advertisers can customize content, ad rates can be determined (depending on the quantity and demographics of users viewing the ad),
- Ads and other content are served from a central server, and the publisher of an ad is charged based on monitored access to the ad content, as well as other user behavior such as click-fhroughs and other interactions. Advertisers can be charged on a per-transaction basis, with details of each user interaction with the ad being used to determine rates.
- the present invention thus encompasses any or all of the following components: a player client for providing data, graphics, sound, interactivity, tracking, and authoring at the client end; a content server for serving content in response to requests from the player client; an author server implemented as a hosted application for creating, modifying, and publishing content; a data collection server for receiving
- the present invention is capable of displaying premium-level content without requiring large amounts of bandwidth or download time.
- the present invention can display broadcast-television-quality text and ef-
- the present invention is extremely flexible and easy to use, and employs an object-oriented data flow architec-
- the present invention also provides a system for verifying the integrity of served content by performing an authentication check before playing the content. If the content fails the check, it is not played, thus preventing illicit content modifica-
- the present invention provides functionality for identifying each of a number of users of a particular client machine and for personalizing content based on information collected about each user. Any number of "personas" can be identified and associated with a client machine, so that the content server can provide content ap-
- the present invention further provides functionality for identifying particular types of client machines and associated browsers. Thus, content can be personalized
- the present invention provides a technique for personalizing content based on the particular characteristics and limitations of the client hardware and software. For example, content that is displayed on devices such as cell phones or wireless PDA's could be presented in a format that is specifically tailored to the small screen sizes and limited resolution of such devices. By personalizing content based on the user machine's limitations, the present invention provides a technique for
- the present invention further provides functionality for authenticating delivered content and for preventing unauthorized content from being displayed or played.
- the present invention provides an authoring environment for generating con- 260 tent in an intuitive, efficient, and easy-to-use manner.
- Content is represented internally using a data flow graph, and constructed using a polymorphic object-oriented software architecture for maximum flexibility and robustness.
- Fig. 1 is a block diagram of a system architecture according to one embodiment 265 of the present invention.
- Fig. 2 is a flowchart of a transaction including a content request, generation, and display according to one embodiment of the present invention.
- Fig. 3 is a block diagram of a set of resources for practicing the present invention.
- 270 Fig. 4 is a block diagram of an authoring operation according to one embodiment of the present invention.
- Fig. 5 is a block diagram of a publishing operation according to one embodiment of the present invention.
- Fig. 6 is a block diagram of a content playing operation according to one em- 275 bodiment of the present invention.
- Fig. 7 is a block diagram of a data transfer operation according to one embodiment of the present invention.
- Fig. 8 is a block diagram showing a site structure for downloading an authoring environment according to one embodiment of the present invention.
- 2 SO Fig. 9 is a diagram of a screen containing an authoring environment provided by the present invention.
- Fig. 10 is an example of content that can be customized by an Author and branded or sponsored before publication.
- Fig. 11 is an example of a customization operation for content.
- Fig. 12 is an example of a user's project screen.
- Fig. 13 is an example of a sheet containing solutions for fhemed projects.
- Fig. 14 is an example of a control palette for a content element.
- Fig. 15 is an example of hint help for a control palette.
- Fig. 16 is an example of a nonperiodic waveform.
- 190 Fig. 17 is an example of a periodic waveform.
- Fig. 18 is an example of a content element implemented using a data flow graph.
- Project - An editable file (extension .ofb) including source objects and internal user interface (UT) controls.
- Source Objects The set of objects used to construct a specific Project. This can include text files, images, scripts, proprietary-format elements, sounds, and the 220 like.
- Element - A tool, graphic, effect, or process embedded in content files.
- An element can contain parameter controls used during authoring.
- Elements are selected by an Author from sheets, as described below in connection with Fig. 13.
- UI Internal User Interface
- Controls - Interactive graphical elements embed- 225 ded in content files. These are used, for example, by Authors to manipulate effects by varying parameters.
- Role - A permission descriptor for system objects. Roles such as Author, Manager, or Publisher are assigned to a Project and each role has a specific characteristic set of permissions with respect to the Project. 220 Originator - The Author who creates a new Project file. Initially, the Originator is also the Manager and sole Author of the Project. If the Originator is a registered Publisher, he or she is also the sole Publisher of the Project.
- An Author is given access to a Project when he or she creates a new Project, or when the Manager of an existing Project assigns access to the Author.
- An Author can also be a Manager of a specific Project by 1) creating a new Project or 2) having the Manager of an existing Project assign Management of the Project to the Author.
- Publisher - A role including rights to publish a Project to the web (i.e., to create Publications and Articles). Publisher rights are assigned to a Project by the Man- 235 ager.
- Publication A content entity, or Publishing space, that may contain any number of Articles.
- a Publication is identified by a PUB number (described below).
- Article - A published content file (extension .ofb).
- An Article is identified by a 240 unique embedded ART ID (described below).
- An Article is a specific Instance of a project with source files and internal UI controls removed; in other words, it is the end result that is delivered to a player client.
- Demographic - A target group to which a publication can be directed.
- Instance - A specific delivery, or "serve", of an Article to a player.
- An In- 245 stance is identified by its unique TID (described below).
- Loading - Sending a Publication to the content server creating appropriate file 250 links, verifying load, and delivering correct publication Uniform Resource Identifier (URI) to publisher for inclusion in host HTML web pages.
- the load operation proc- esses the publication job and configures the server environment for serving the content.
- Player client 105 is a plug-in for browser 104, which may be a conventional browser such as Netscape Navigator or Microsoft Internet Explorer. In an alternative embodiment, player client 105 may be provided as a functional component included in (or bundled with) an im-
- player client 105 may be provided as a stand-alone software product.
- the player client of the present invention may be provided in the context of any type of software environment, such as for example, e-mail application, screen saver, cell phone or PDA application, terminal, set top box, and the like. Accordingly the following descrip-
- Player client 105 is capable of interpreting instructions from content server 102 and displaying content via output device 106, which is typically a display screen and /or audio output device. In one embodiment, instructions from content server 102
- 270 102 are provided as a binary content file which is used by player client 105 to construct an internal representation of a data flow graph for performing the desired functionality. The details of the operation of player client 105 will be described below.
- Content server 102 provides content, in the form of instructions and/or static files, for display by player client 105. Content server 102 accepts content requests
- content server 102 sends information to data collection server 103 whenever a content request is made, so that content requests can be tracked in knowledge base 306.
- Data collection server 103 collects data describing users and transactions. Such
- Knowledge base 306 stores data collected by server 103 and makes such data available for tracking purposes. In one embodiment, knowledge base 306 organizes stored data in the form of transaction tables facilitating tracking, billing, and demo-
- Transaction tables may include, for example, detailed information describing users, their hardware and software environments, their patterns of access to content, their interactions with content, and the like.
- player client 105 may monitor how long a particular content element was viewed by a particular user, and how many times the user clicked within the area of the content element;
- player client 105 monitors user behavior in the following manner.
- Player client 105 is called by browser 104 to draw each frame of content, such as for example an animation.
- the user's computer provides player client 105
- Player client 105 obtains this information by querying the user's computer. Other obtained information includes, for example
- the focus state of the window associated with player client 105 (the top window is said to have "focus"), the scroll position of the window, the URL of the HTML page that contains the ⁇ embed> tag that initiated the content, and the like.
- Web server 107 is a conventional server (such as the Microsoft Internet Information Server, or the Apache server) for providing pages 108 on the World Wide
- Browser 104 requests pages 108 from web server 107 and receives requested pages for display on output device 106, as is known in the art.
- Servers 102 and 103 are implemented using server software and hardware as is known in the art, such as for example Sunsparc, Solaris, Apache web server, and the like.
- player client 105 is installed when a user downloads and activates an installation program. At the time of installation, or at some later date, player client 105 may prompt the user for personal information which may be useful to advertisers. Such information is transmitted, in one embodiment, to data collection server 103, along with a unique identifier for player client 105. Thus, a user profile
- player client 105 can periodically re-query the user at predetermined intervals.
- Web page 108 is dehvered to browser 104, which then displays
- web page 108 may direct browser 104 to retrieve a file or other data, either from web server 107 or from some other source.
- web page 108 may specify that a certain region 109 contains an ad (or other content) to be displayed using player client 105. In one embodiment, this is accomplished using an HTML
- the present invention allows advertisers and content providers to track usage across domains, without being limited to a particular domain as is generally the case
- Profile information can be matched with transaction data, so knowledge base 306 can provide detailed information on who is accessing particular ads and how they are interacting with the ads, as well as providing detailed user information including profiles, demographics, psychographics, and the like.
- Ad content dehvered to users can be targeted and focused based on this detailed information
- knowledge base 306 contains a log of all transactions with respect to a particular ad, advertising rates can be based on the information derived from knowledge base 306.
- knowledge base 306 further stores information describing
- FIG. 2 there is shown a flowchart of a transaction including a
- browser 104 requests 201 a web page from web server 107 in a conven-
- web server 107 provides 202 the requested page (e.g. an HTML file) by transmitting it to browser 104.
- Browser 104 receives 203 the page.
- This information includes, for example, an identifying code (or target location) specifying the content, as will be described in more detail below.
- ⁇ embed> tags provide a mechanism for "plug-ins" to display content within a
- a browser When a browser detects an ⁇ embed> tag, it activates a plug-in identified by the "type" value within the ⁇ embed> tag. The browser then requests (from a web server) any additional content as specified by the "src" value within the ⁇ embed> tag. This may include, for example, sound files, animations, applets, and the like.
- browser 104 reads the ⁇ embed> tag and requests the appropriate content as specified by the "src" value, as is known in the art.
- player client 105 obtains 206 the target location from the ⁇ embed> tag, and requests 207 the content from content server 102. In making this request, player client 105 identifies itself using a user ID or player ID, so that
- the content may be personalized. For example, if the user ID is associated with a teenager, content server 102 may provide more youth-oriented content than if the user ID is associated with a 35-year-old.
- this is accomplished by providing an "ofb” value in the ⁇ embed> tag which replaces the "src” tag and is meaningless to browser 104, but
- the ⁇ embed> tag may be of the following form:
- player client 105 is capable of resolving the ofb value to a particular URL (such as on- flow.com/playercontent/12345.ofb), so that it can make the appropriate request to content server 102.
- this format for the ofb value shortens the overall ⁇ embed> tag, thus decreasing the likelihood of a typographical error being
- the subdirectory "00/01" is selected based on a persona or demographic ID
- each player chent 105 has a demographic ID that is used whenever any request is made to content server 102.
- the demographic ID associated with a particular player chent 105 may change over time or ac- 410 cording to time of day. For example, player chent 105 may use a demographic ID of "00/01" during certain hours when teenagers tend to be using the computer, and may use a demographic ID of "00/02" during other hours when older members of the family tend to be using the computer.
- demographic IDs may be associated with different user profiles, so that when a particular user signs on to the com-
- demographic ID or persona can change over time in response to user behavior and based on analysis of tracking information in knowledge base 306. This is implemented, for example, by performing transaction analysis and cross-referencing the results with other data to produce and maintain meaningful demographic IDs. If
- new demographic ID information is transmitted to player client 105 when appropriate, so that player chent 105 can use the new ID when generating future content requests.
- the demographic ID or persona may be stored at the content server 102 for each particular player chent 105, or it may be provided by player chent 105 when a
- the generated URL path may differ depending on the currently-active demographic ID or persona for player client 105.
- Content server 102 resolves each of these URL paths to a particular content file to be transmitted back to player chent 105.
- the following structure may be provided:
- a structure such as the above-described example is im- 435 plemented using pointers in a file system (also known as "hard links").
- a file system also known as "hard links”
- Such a technique permits content server 102 to respond to requests, and provide personalized content, with a minimum of processing or redirecting.
- a similar technique may be employed to personalize content based on hardware characteristics of the client machine (such as particular limitations of cell phones or PDA's, for example), psycho- 440 graphic characteristics, and other factors.
- the use of a multi-level directory structure facilitates implementation in a multi-dimensional personalization space.
- player chent 105 may provide its unique Player ID to content server 102,
- content server 102 may then determine which type of content to provide based on demographic and historical information.
- One skilled in the art will recognize that many techniques are available for performing this personalization.
- content server 102 is duplicated at several "mirror" sites in various locations, so that content can be requested from an appropriate location,
- Player client 105 can also select a mirror site corresponding to the source of the original player chent 105 when it was initially downloaded and installed.
- content server 102 In response to the request from player client 105, and taking into account the requested content as well as user ID demographics, content server 102 provides 208
- such instructions are in a proprietary format for the player chent 105 to interpret and execute in order to display content.
- such instructions are provided in a conventional file format for display in a conventional manner.
- player chent 105 compares the domain of the page on
- Content server 102 also logs 209 the content request. In one embodiment, each
- Content server 102 provides the transaction ID and associated information describing the content request to data collection server 103. Content server 102 also provides player client 105 with the transaction ID, so that player chent 105 can later include this ID in the data sent to data collection server 103. This allows data collec-
- 470 tion server 103 to track later-received information from player chent 105 describing user behavior with respect to the received content.
- This later-received information can be matched up with the log event for the original "serve” using the associated transaction ID, for tracking purposes and for storage in knowledge base 306.
- the unique transaction ID provides improved security, by facilitating verification
- each "serve" of a given content item is given a unique transaction ID
- the content server 102 of the present invention is able to detect caching of content at the browser 104 or player client 105 by the repetition of a given transaction ID.
- Content server 102 is further able to detect situations in which a given
- content "broadcasting" is facilitated, in which content server 102 transmits a given content item to a large number of player clients 105. If desired, the same transaction ID can be used to identify a single broadcast to a
- player client 105 is a real-time rendering engine that is capable of detecting its focus status (i.e. whether it is the topmost window), and can further detect whether any portions of its windows are obscured, offscreen, scroUed out of view, or
- player chent 105 provides active content and animations when the content area is actually visible on the screen, and does not provide active content when the content area is invisible, scroUed off-screen, or partially or wholly obscured. Player chent 105 is further able to detect and record user interactions, including mouse-clicks, mouse movements, rollovers, text input,
- Authors of content can specify what types of user interactions and/or events are of interest; in response to such specification, player chent 105 detects and transmits information concerning the specified interactions.
- Player chent 105 records 212 such information concerning its focus status and user interaction. After the content has been displayed, player chent 105 transmits 213
- 500 information describing the transaction including for example:
- transmission 213 occurs when the user 510 closes the page containing the content. In another embodiment, transmission 213 occurs when the user closes browser 104, so that the information may be aggregated for a number of transactions and transmitted. In the case of an abrupt disconnection or other "dirty" shutdown, or in any other situation where player chent 105 does not have the opportunity to transmit the information at the appropriate time, the data is 525 stored locally and transmission is performed the next time browser 104 starts up, or the next time player chent 105 requests content from content server 102. In alternative embodiments, the information is transmitted to data collection server 103 at other times, such as at periodic intervals during the browser session.
- the information describing user interaction and behavior is transmitted to data 520 collection server 103 using any desired format.
- the information is statistically aggregated (e.g. averaged) and converted to strings, for transmission to data collection server 103.
- the local time of transmission is also included, if desired.
- the transmission may be encrypted to prevent interception or counterfeiting.
- data collection server 103 receives information describing a transaction, the transaction is considered complete.
- the advertiser can be billed, based on the user profile, how long the ad was viewed, what type of interactions may have occurred with respect to the ad, and the hke. Content
- content is provided in files having a particular extension, such as ".ofb".
- a content file contains all the information required to play a particular piece of content, including for example sounds, movies, animation, and interactivity.
- the authoring user interface is included in the content file as well, as described below.
- the content file is compressed using conventional compression
- the scripting language or authoring environment develops a content file "behind the scenes", so that the Author need not be aware of the details of the implementation. Additional details on the operation of the
- this internal representation takes the form of a data flow graph consisting of nodes and connections among nodes.
- Player client 105 generates and displays the content by travers-
- Portions of the data flow graph are compiled (converted to machine code) by a compiler within player chent 105, at run-time. Code is thus compiled on an as- needed basis. This compilation is redone in response to changing circumstances, such
- the system of the present invention performs such optimization by generating Span Engines in an efficient manner, as described in more
- player client 105 in one embodiment is able to re-use previously compiled code without recompiling.
- the present invention also provides a system for verifying the integrity of served content.
- player chent 105 performs an authentication check on each item of content before playing it. If the content fails the check, it is not played, thus preventing illicit content modifications (as well as protecting against transmission errors).
- One technique for authenticating content is to derive a number from the content received from content server 102. If the number does not match a predetermined parameter or value, the authentication check has failed and the content is not displayed. Information describing the failed authentication check may be sent to data collection server 103.
- An additional level of authentication may be provided for Authoring. While a piece of content is being Authored, it may be open to modification by a particular user (Author) or list of users (Authors). "Player locks" are provided in the form of authentication checks or a list of authorized player clients 105 to determine whether a particular player chent 105 is authorized to modify a particular content item.
- a warning message can be displayed if an unauthorized domain name is detected; in another embodiment, player chent 105 can shut down in such a situation.
- the system of the present invention is able to identify each of a number of users of a particular chent machine. Any number of "personas" can be identified and associated with a chent machine, so that the content server can provide content appropriate to the currently active persona. This increases the likelihood that the end user will be interested in the content, and thereby improves advertising tar-
- the system of the present invention is able to identify individual personas for different times of day, so that a user logging on in the morning, for example, might be assigned a different persona from a user logging on using the same machine in the evening.
- Player chent 105 may observe that morning users tend
- the currently active profile may identify the particular user of the computer, or more so-
- 620 phisticated pattern recognition may be employed.
- Player chent 105 determines this information by observing the types of sites visited by the user.
- Cluster information can then be provided by player chent 105 when it makes a request for content from content server 102.
- Content server 102 selects appropriate content based on the specified cluster. In this manner, improved advertising targeting is accomplished, since each user is more likely to see ads relating to his or her interests.
- the present invention employs an additional designator that specifies the equipment type of the client machine.
- This designator identifies, for example, whether the chent machine is a computer, cell phone, wireless PDA, or other type of device.
- Content server 102 is thus able to provide content that is appro- 625 priate for a particular type of machine, given its inherent characteristics and limitations. For example, content that is displayed on devices such as cell phones or wireless PDA's could be presented in a format that is specifically tailored to the small screen sizes and limited resolution of such devices.
- 630 103 obtains and collects data describing the particular software and hardware characteristics of browser 104 and player chent 105, so that appropriate content for the user's computing environment can be selected and served to player chent 105.
- the system of the present invention employs a number of different identifiers, or "IDs".
- IDs identifiers
- the following is a description of a set of identifiers and their relationships as implemented in one embodiment of the present invention.
- One skilled in the art will recognize that many other types and formats of identifiers are possible; therefore, the following description should not be considered as limiting the scope of 640 the invention as claimed herein.
- User ID A unique 12-digit decimal number used to identify each user of the system.
- Originator ID (OID) - A UID used to identify the Originator of a Project. Used in combination with a Project Number (PRN) to form a unique Project iden- 645 tifier (PRJ) when a new Project is opened.
- PRN Project Number
- PRJ Project iden- 645 tifier
- Manager ID (MID) - A UID used to identify the Manager of a Project.
- Project Number (PRN) - A unique (per OID) 8-digit sequential decimal number used to identify projects for a specific originator (OID). Used in combina- 650 tion with an Originator ID (OID) to form a unique Project identifier (PRJ) when a new Project is opened.
- Project ID A unique 20-digit decimal number used to identify a Project.
- the Project is created by combining the Originator ID (OID) with a Project Number (PRN) when a new Project is first opened.
- OID Originator ID
- PRN Project Number
- PID Publisher ID
- UID UID used to identify the publisher(s) of a Project.
- the PID is used in combination with a Publication Number (PBN) to uniquely identify a Publication (PUB).
- PBN Publication Number
- PBN Publication Number
- PID Publication ID 8-digit sequential decimal number used to differentiate publications for a specific PID.
- the PBN is used in 660 combination with a PID to provide a Publication ID (PUB) uniquely identifying a
- Publication ID A unique 20-digit sequential decimal number used to identify a specific publication "space" that may include any number of Articles.
- the PUB is used in combination with the PRJ to uniquely identify an Article 665 (ART).
- Article ID A unique 40-digit decimal number used to identify a specific published instance of a Project.
- the ART is created by combining the PRJ with the PUB when a Project is published.
- Demographic ID A unique 6-digit decimal number used to iden- 670 tify a specific group based on demographics, psychographics, or other factors or characterizations. The first two digits are reserved; the third and fourth digits identify the group (or cluster); and the fifth and sixth digits identify the subgroup (or specific group). The DID is used to request and deliver targeted publications.
- Player ID or Serial Number (SN) - A unique 20-digit decimal number used 675 to identify a player chent.
- the SN is used to track end-user interaction within the system of the invention.
- RTT A unique three-digit binary number used to identify a permission that a UID has on a Project.
- the RTTs include 000-Reviewer, 001- Manager, 010-Author, and 100-Publisher.
- Role Number A 1-digit decimal number used to identify the set of permissions that a UID has on a Project.
- Role ID A unique 13-digit decimal number used to define a UID's permissions.
- the RID is a combination of UID and the UID's RTTs.
- a Project might have a Manager, two Authors, a Publisher, and an Author who is also a publisher.
- a role of Reader would apply 690 to everyone else.
- the UIDs might be assigned sequentially. The RIT for each UID would be appended to the UID to form the RID, as follows:
- SID Server ID
- SID A unique 8-digit hexadecimal number used to identify a content server. In one embodiment, this ID is the same as the public IPv4 address
- TN Transaction Number
- TID Transaction ID
- Projects are stored as files having a Project Filename of PRJ.ofb, where PRJ is the Project ID (20-digit decimal).
- PRJ is the Project ID (20-digit decimal).
- PUB Publication ID
- the PUB is inserted into the binary content file (extension .ofb), for data tracking
- a Publication can contain several different Articles.
- the PUB part of the ART would be identical for each Publication, but the PRJ would be different.
- the publisher's URI uses the PUB alone. In this way, the player can request
- DID2/PUB1 and DID6/PUB1 could both link to ART1, while DID0/PUB1, DID1/PUB1, DID3/PUB1, DID4/PUB1, and DID5/PUB1 could all link to ART2.
- DID0/PUB1, DID1/PUB1, DID3/PUB1, DID4/PUB1, and DID5/PUB1 could all link to ART2.
- a request for PUB1 returns different Articles, depending on the DID associated with the user.
- a similar technique is employed in one embodiment, for providing content tailored to specific chent machine equipment
- 720 types An additional identifier is provided for specifying an equipment type, and the appropriate hard-links are established so as to serve content that is appropriate to the specified equipment type.
- DID1/EQP1/PUB1 might link to ART2, which DID1/EQP2/PUB1 might link to ART3, where EQPx specifies the equipment type of the client machine.
- a chent machine having relatively limited output
- EQP2 725 and /or bandwidth capability (such as a cell phone) would be designated EQP2 and would receive a more limited version of the content (ART3), than would a client machine such as a desktop computer.
- ART3 a more limited version of the content
- client machine such as a desktop computer.
- the specific limitations of each potential client machine are determined in advance so that appropriate content can be generated and available for each such machine.
- the appropriate DID and equipment identifier are stored by player client 105, and supplied as part of the request to content server 102.
- PUB1 is the URI the pubhsher utilizes to identify a particular publication.
- player client 105 controls which demographic (or psychographic, or other subset) link is requested without having to change the URI, and without requiring any conditional
- This technique removes the burden of demographic decision-making from content server 102 and distributes it over all the player chents 105 and servers.
- the above-described technique allows player chent 105 to always request content the same way, regardless of whether the content is targeted or non-targeted. Dif- 745 ferentiation takes place by controlling the links on content server 102. This reduces the decision-making overhead on player chents 105.
- player chents 105 are hard coded to request Demographic 0 and Equipment Type 0 by default. If no other Demographic and Equipment Type are specified, player chent 105 will request the content for Demographic 0 and 750 Equipment Type 0.
- system resources are divided into three tiers: central resources 301, hosts and ISP resources 302, and end user resources 303.
- Central resources 301 are generally within the control of the entity pro-
- Central resources 301 include, for example: object store 304 for storing and providing objects for authoring; author server 101 for servicing authors of content and effecting publication of content to content server 102; content server 102 for accepting and responding to requests for content; plug-in server 305 for providing files necessary for installation of
- Hosts and ISP resources 302 are generally outside the direct control of the entity providing the services of the present invention.
- Hosts and ISP resources 302 includes, for example: web server 107 for serving web pages and content in a conven-
- End user resources 303 include resources that are under the control of the end user, such as browser 104 which runs on the user's workstation.
- Player chent 105 is included as a plug-in for browser 104.
- FIG. 4 there is shown an example of an authoring operation
- the authoring environment for creating content in connection with the present invention is accessed through player chent 105, as described in more detail below.
- Player chent 105 interacts directly with author server 101 and object store 304 to compose content to be played on player clients 105.
- Content is maintained in object store 304, but may be
- Fig. 5 there is shown an example of a publishing operation in the context of the architecture of Fig. 3.
- publishers interact with the system through web browser 104.
- a publisher creates a publication, fills it with
- object store 304 "loads” (moves) the articles to content server 102, setting up the appropriate environment based on the details of the publication.
- the articles are verified, and a URI “embed” tag is dehvered to the publisher for inclusion in hosted web pages (i.e. those supphed by web server 107).
- FIG. 6 there is shown an example of a content playing operation in the context of the architecture of Fig. 3.
- the block diagram of Fig. 6 shows a scheme for implementing the flow chart described above in connection with Fig. 2. If, when browser 104 detects 204 ⁇ embed> tag, it determines that player chent 105 has not been installed, browser 104 contacts stub server 307 which provides the end user
- plug-in server 305 then delivers the rest of player chent 105 and it is installed in browser 104. Once a player client 105 is available, content server 102 provides content to be
- Player client 105 renders the content and displays output, and also begins to track user behavior, such as click count and visibility time. At some point, such as when
- player chent 105 saves the tracking data locally (for fault tolerance) and sends a packet containing transaction and chent data to data server 103. If the packet is not successfully transmitted, player chent 105 attempts retransmission at some later point, such as when player chent 105 is reactivated.
- Port 80 and HTTP are used for data communication, to allow the trans-
- Knowledge base 306 runs a data loader program (not shown) that retrieves server and player data from the appropriate server, either content server 102 or data server 103.
- the loader processes the data
- data is stored in three tables: a transaction table (for storing completed transactions suitable for bihing to an advertiser), a server incomplete transaction table (for storing transactions that were incomplete at the server end), and a player incomplete transaction table (for storing transactions that were incomplete at the player cli-
- the present invention facihtates the display of sophisticated content without requiring large amounts of data to be downloaded to the chent browser. This is accomplished by performing much of the content generation processing at the chent 825 end, rather at the server end. A player client 105 is provided to perform this functionality.
- Player client 105 is a web-based application that in one embodiment runs within a browser application 104.
- Player client 105 can be provided as an add-in or plug-in module for browser 104, or may be included as a component of browser 104 830 or even as a stand-alone software apphcation.
- Player chent 105 may operate in any of a number of hardware environments, including a conventional computer connected to the Internet, a cell phone, a PDA, and the like.
- player chent 105 is activated when an appropriate mime- type is encountered by browser 104, as is known in the art.
- a particular file extension e.g. ".ofb" can also be used to trigger
- browser 104 to activate player chent 105.
- browser 104 passes the .ofb file to player client 105 which is responsible for playing the content.
- player chent 105 is freely downloadable from a web site.
- a "stub" is distributed, either separately or as part of
- the stub is a small apphcation which is activated when browser 104 is run.
- the stub when activated, makes contact with stub server 307, or some other server, which provides the latest version of player chent 105 in response to a request from the stub.
- a serial number is assigned to each instance of player cli-
- This unique serial number also known as a Player ID, identifies the particular player chent 105, and is used to track end-user interaction within the system of the present invention.
- the serial number is a 20-digit decimal number.
- the stub identifies one of several mirror sites (based on
- the downloaded player chent 105 once installed, is able to keep track of which mirror site was its source. This selection of a mirror site can then be used to help select a source for content when requested.
- Player chent 105 is capable of delivering high-performance graphics, sound,
- Player client 105 runs scripts received from content server 102 to generate content.
- player chent 860 105 in one embodiment is implemented using an object-oriented data flow architecture that ensures maximum flexibility and scalability of function, including ensures maximum flexibility and scalability of function, including both authoring capabilities and content display capabilities.
- object-oriented data flow architecture that ensures maximum flexibility and scalability of function, including ensures maximum flexibility and scalability of function, including both authoring capabilities and content display capabilities.
- the implementation of data flow architecture of the present invention facilitates improved modularity in the construction and operation of the software of the present invention.
- data (including images, sounds, animations, and the like) are transformed, processed, and displayed by passing them through a particular machine that is designed to produce the desired result.
- the machine is implemented as software that is constructed from components called nodes.
- the nodes are connected with one another in a particular topology to implement the desired
- a particular machine's configuration including the nodes, their connections,
- a data flow graph as is known in the art (also referred to as a directed graph).
- data flow graphs of the present invention are acyclic in nature, so that traversal of the connections within a graph will always eventually end in a node have no outgoing connections (i.e., a leaf node). Ensuring that data flow
- Data flow graph 1800 includes four nodes which combine to display a bouncing ball.
- Bounce node 1801 specifies the movement associated with a bounce.
- Ball 1802 specifies the appearance of the ball,
- Number 1803 contains a value that is used as a parameter of the bounce effect, such as for example the speed of the bounce.
- Frame buffer 1804 is the output channel for displaying the content.
- number 1803 can be replaced by a slider control (not shown) to adjust the value of the parameter supplied to bounce 1801.
- the user can specify
- this slider control be removed and replaced by a fixed value when the content is published.
- the slider control can remain in the content, if desired, so that the end user can control the speed of the bouncing bah (or any other parameter).
- the Author specifies which nodes (such as the shder) are to be replaced by fixed values or stripped out when the content is published.
- Execution of a data flow graph is implemented as follows. Execution begins at a display or output node (such as frame buffer 1804) and proceeds recursively
- context node is the display node, but this may change in the course of the graph traversal.
- the context node is a temporary backward reference that is developed at run-time and that is not explicitly set forth in the graph topology.
- the leaf node sends a message to the context node to have its image or
- the context node uses all the information collected in CurrentState to perform the drawing operation to output the content.
- the data flow architecture of the present invention is im-
- Nodes correspond with objects, and the connections among nodes are represented by object references held by nodes. Data flows from each parent node through the connection to a child node, by sending a message to the child object, as is known in the art of object-oriented implementation.
- 930 flow graph can be thought of as "super-nodes", or “modules”, which act like normal nodes but are implemented as sub-graphs of nodes.
- a super-node can be employed anywhere in a data flow graph in place of an ordinary node.
- a homogeneous object system as employed in the present invention permits inclusion and removal of user interface elements as needed.
- 935 elements can be included for authoring purposes, and replaced by fixed values (or removed altogether) when content is published. Homogeneity insures that such automated transformations to the graph topology will work properly.
- data flow graph architecture of the present invention allows authoring at any level of abstraction.
- An author can create a piece of content that is
- the above-described architecture including the homogeneity of the data flow graph, thus facilitates a system in which authoring interactive content and playing the
- the data flow model of the present invention aUows information to flow in both directions for every connection in the data flow graph.
- Each content element, or component contains its own user interface if applicable, which can be stripped out when the content is pubhshed. This modular approach, and the stripping out of UI elements, is facilitated by the homogeneity of the data flow graph.
- a NuU node is provided that can receive aU messages, but simply does nothing.
- the NuU node can be placed anywhere in the data flow graph without crashing the system or causing an error. This improves upon conventional schemes, in which a nuU object reference consists of a pointer set to zero which, if it used, will generaUy crash the program. In one
- nodes available in one embodiment include:
- Control Nodes Control coUections of nodes. Examples include: Docu- 975 ment, Layer Manager (for compositing layers), and ParticleSystem (for generating and controUing particles).
- Image Nodes Manage image memory. Examples include: RGBACache (for holding color pixels), MaskCache (for holding single 8-bit number pixels), and CoordCache (for holding pixels that are two-dimensional vectors).
- Examples include: Contrast (for changing color and brightness of drawn pixels), Volume (for changing sound volume), Warper (for performing warping operations), Masker (for performing masking operations), and Blur (for causing underlying images to be blurred).
- Math Nodes Examples include: Scalar, Vector, and Color; add, subtract, multiply, and divide.
- Procedural Image Creator Nodes Generate image elements. Examples include: Gradientlmage (for fiUing a rectangular array of pixels with an animated color), RadialBlend (for creating rings from a single row of pixels),
- SweepBlend for creating rays from a single row of pixels
- Path for rendering a PostScript path with anti-aliasing
- Text for aUowing font outlines to be rendered as paths with text
- Animation Nodes Generate animation elements. Examples include: Interval (for creating a linear path from two points), Bezier (for creating a
- Interactive Nodes UI elements or controls in interactive content. Examples include: Button, Drag, Slider, and Dial.
- Sound Nodes Implement sound functionality. Examples include: Sound- Cache, and SoundControl procedural sounds.
- the present invention also provides attributes, in the form of named connections among nodes.
- attributes in the form of named connections among nodes.
- a particular node views its set of connections as attributes that are used by the node to perform its intended functionality.
- the node For example, the
- Masker node employs a mask and an image that are provided via node connections and thus act as attributes for the Masker node.
- each node has a set of attributes it supports. Attempts to connect a node via a non-supported attribute results in no connection being made. Examples of attributes include:
- the data flow graph is specified using a scripting language.
- an authoring environment is used for the creation of content, which is then represented as a series of interconnected nodes.
- either the scripting language or the authoring environment may be used, depending on the complexity of the content to be created, the level of expertise
- data flow graphs are alternative representations of scripts, and the two forms of representation have a one-to-one correspondence.
- a script can be converted to a data flow graph, and vice versa, with no loss of functionality or information.
- NodeName begins the section describing the attributes of a new node 'Node- Name'.
- the closing construct /Name> indicates the end of the section.
- nodes may be defined within other nodes; everything within the node definition for 1045 NodeName wiU be affected by any surrounding nodes.
- the node definitions created using the scripting language define the data flow graph. Each defined node corresponds to a graph node, and the attributes of nodes define the connections in the data flow graph.
- GeneraUy when a node is created (i.e. defined), aU its connections or attributes are specified, using the syntax shown above.
- the ability to name objects allows the system of the present invention to provide multiple references for a named object in any number of places in the graph, so that the tree can join on multiple references to any particular node, and therefore become an arbitrary acyclic graph.
- node names are distinct from attribute names, so that nodes and attributes can be differentiated from one another both by syntax and 2075 by the name itself.
- the structure of the script foUows the topology of the corresponding data flow graph. Nodes can be nested as many levels deep as desired.
- the ID Attribute causes the User Name fred to be associated with that specific instance of OurNode. Their Node uses fred for two attributes. When fred is 2090 used, the entire sub-tiee is referenced inside OurNode. By using referencing instead of making a separate copy, memory space is conserved.
- Scripts are converted from ASCII to a binary file having a distinct extension such as ".ofb".
- Player chent 105 reads the .ofb file and constructs a data flow graph based on the script.
- the data flow graph operates as a virtual machine to produce 2095 content, including visual elements, sounds, and interactivity.
- the present invention employs a particular type of subroutine, caUed a Span Engine, for performing graphics operations and sound
- Each Span Engine applies a specific operation to a contiguous row of pixels or sound samples.
- the present invention greatly improves the performance of player chent 105 in rendering graphics.
- aU generated machine code can be confined to the Span Engines, thus avoiding the maintenance and compatibility problems associated
- Span Engines are provided for different situations. For example, one Span Engine may be provided for moving a sprite, wr ⁇ le another Span Engine may be provided for a combination of moving and dissolving a sprite. Though such specialization may result in a large number of Span Engines, the
- the Span Engines are built as needed, rather than being provided in precompiled form within player client 105.
- Player chent 105 contains a compUer which detects when a new Span Engine is needed and bu ds (compUes) the Span Engine for the situation at
- Span Engines can be compUed extremely quickly, due to their small size, so that player chent 105 can perform this operation during an animation, if needed.
- the present invention thus provides a technique for call time, on-demand, situation- optimized compiling to native machine code.
- player chent 105 After traversing part of the data flow graph and coUecting the information in the CurrentState structure, player chent 105 examines the elements of the structure and determines which span engine to invoke based on the values in the structure.
- ten variables are used as indices to a ten-dimensional array of Span Engine pointers. If a value is non-zero, it refers to a valid Span Engine; otherwise a new Span Engine is created and inserted in the array.
- a hash table is created based on the values of ten variables, and a lookup is performed into a smaUer table based on the hash results.
- the array implementation can be used when a smaU quantity is required, but if the player chent 105 would cause the user's computer to run out of memory, the hash table implementation may be more feasible.
- aU Span Engines are of the same form. In particular, they
- Span Engine 2235 may be embodied as a single loop that operates on a contiguous row of pixels, regardless of the particular type of information in each pixel. They can operate on one or two sources to generate output for one destination.
- pseudo-code for a Span Engine is as foUows:
- the compuer operates as foUows.
- the compiler 2250 is invoked with the desired variable state.
- the compuer operates by concatenating a series of smaU code-fragments to generate a new Span Engine.
- the fragments themselves are selected according to the variable state.
- player chent 105 To accomplish a high level of performance, in one embodiment player chent 105 generates machine code "on the fly” for implementing performance-intensive sections of the code. The use of generated machine code also permits code in player chent 105 to take advantage of high-performance processor instructions such as MMX 1265 and Alti-Vec, which can further improve performance.
- the compUer of the present invention compUes to pure machine code, in one embodiment.
- the compiled code is therefore readable by the microprocessor itself, with no additional interpretation being required for the code to run.
- the compUer of the present invention occupies a relatively smaU amount of 2270 memory because it re-uses code fragments to create required Span Engines.
- the present invention enables broadcast-quality content without requiring large amounts of data transfer. This is accomplished by using animation to simulate a video experience, wlule requiring a minimum of transactional load between the 2275 server and chent. Furthermore, unlike broadcast media, the content presented by the present invention is fuUy interactive; by employing homogeneous objects as de- scribed above, the present invention is able to substitute an interactive element for any animated component or control. Since player chent 105 is capable of compiling and executing code on the fly, it can display animated content, simulating a broadcast
- player chent 105 accomplishes many effects using the generalized concept of animation. Such effects include, for example, gradients, blurring kernels, and lookup tables. By implementing many related features with a single subsystem, player chent 105 is kept highly efficient and smaU.
- the present invention generalizes the concept of animation beyond its normal definition of changing an element or parameter over time.
- the element or parameter can change depending on an indication of spatial position, dimension, or other factor.
- time the independent variable
- player chent 105 (and the authoring environment) include built-in waveforms that can be used to author and present content. Waveforms may
- each waveform is controUed by up to four parameter attributes.
- FIG. 16 there is shown an example of a graph 1600 including nonperiodic waveform 1601 as may be used in a typical animation.
- a value increases from a starting point of 0.0 to an ending point of 1.0. This value can be used to con-
- 2205 trol any function, such as an output characteristic of the content.
- Four parameters 1602-1605 are supphed to define the shape of waveform 1601.
- the interval of time between Begin 1602 and End 1605 defines where the waveform is active, for nonperiodic waveforms.
- In 1603 and Out 1604 further define the shape of waveform 1601 and control the slope of various portions of the curve. From Begin 1602 to In 1603, the
- FIG. 17 there is shown an example of a graph 1700 including periodic waveform 1701 as may be used in a typical animation.
- odic waveforms such as that shown in Fig. 17, the system of the present invention is able to generate animations that repeat themselves.
- a parameter caUed Period is specified; the part of waveform 1701 from zero to the end of Period 1706 is repeated. If Period is given a value of zero, the waveform is defined as nonpe- riodic.
- additional parameters 1702-1705 are specified, defin ⁇
- Phase parameter can be supplied, which is added to each of the time parameters in a waveform, shifting the waveform in time, whether it is periodic or nonperiodic.
- any of the parameters can themselves be controUed by other wave ⁇
- Waveform type can be selected using an Animus attribute.
- values for the Animus attribute include:
- the authoring environment for the present invention operates as a plug-in for web browser 104, or as a built-in feature of browser 104, in a manner sirr ⁇ lar to player chent 105.
- the authoring environment may be im-
- player chent 105 can be implemented as a subset of the functionality of the authoring environment.
- the authoring environment is a true What-You- See-Is-What-You-Get (WYSIWYG) system; the Author need not be aware of the underlying data flow graph that is created as he or she develops content.
- the authoring environment generates editable content in the form of the data flow graph.
- the Author edits the resultant data flow graph by manipulating internal UI controls. This allows the Author to, for example:
- the authoring environment writes a content file in the form of a description of the data flow graph, either by saving to disk or by sending the file to author server 101.
- a content file in the form of a description of the data flow graph, either by saving to disk or by sending the file to author server 101.
- pubhshed content has the capability of being fuUy interactive.
- the authoring environment including the tools associated with gen-
- the 2265 erating and modifying content can be implemented as an additional level of interactivity that is simply removed, or hidden, when the content is viewed by an end user.
- the content can thus contain its own user interface for performing adjusting and modifying operations. This user interface is visible only when the content is viewed using an authoring environment, but is not visible when viewed using the player cli- 2270 ent 105. As discussed above, this feature is enabled in one embodiment by the use of a data flow graph employing object homogeneity.
- the user interface is removed from the content when the content is Pubhshed.
- Other interactive components intended for the end user may remain avaUable. Such components may provide functionality for physical in-
- Physical interactivity includes the capabU- ity to change the appearance of the content based on user actions, such as for example changing a color in response to a user manipulating a slider control.
- Logical interactivity includes the capability to change deeper levels of behavior of the content, such as for example the destinations of certain links, based on the user's actions.
- present invention is capable of displaying various levels and varieties of content based on interactions, user profiles, and sophisticated decision rules.
- the user interface can be included in the published content, but may not always be visible.
- user interface can be determined by the permission rights of the user. In other words, when the content is viewed by an Author, the user interface becomes avaUable, but when the content is viewed by anyone else, the user interface is hidden.
- the present invention removes the distinction between user interface components and content elements, so as to improve flexibility and simplify op-
- the authoring environment of the present invention makes use of "super nodes", as described above, to aUow the system to be broken down into hundreds or thousands of separate components that authors can assemble to create content.
- FIG. 9 there is shown an example of a screen 900 containing an authoring environment provided by the present invention.
- a number of layers 901 are shown, representing overlapping authorable graphics that are overlaid to form the final image.
- the user can click on any of layers 901 to perform editing operations thereon, and can add more layers as needed.
- Authorable content 902 repre-
- Controls 903 provide a mechanism for manipulating various parameters of content 902, such as for example color values, speed of moving elements, and the like. The user can change values for these parameters by moving knobs along sliders in controls 903.
- Grid 904
- FIG. 10 there is shown an example of content 1000 that can be customized by an Author and branded or sponsored before publication.
- Interactive elements 1005 are included in content 1000, so that in effect content 1000 forms a web-
- Content 1000 may be served on a website, or distributed through HTML e-maU, or offered to other sites as desired.
- Authoring buttons 1001-1004 are provided, aUowing an Author to perform customization operations on content 1000 prior to publication.
- an Author can select a color theme for content 1000, add a banner and some pictures, and send content 1000
- buttons 1001- 1004 will not be included in content 1000.
- FIG. 11 there is shown an example of a customization operation for content 1000.
- button 1001 Once the user activates button 1001, window 1101 is presented, which aUows selection from a number of color themes 1102. The user can select the
- FIG. 12 there is shown an example of a user's project screen 1200 where previously authored projects are stored. Here, the user has activated but-
- 2325 ton 1202 which is one way to evoke the project hst to select and add a banner to a project the user is working on.
- screen 1200 the user can select any of a number of previously-produced banners (or other content elements) to add to the current project.
- the user can select any previously generated project or content element from
- Pre-publish button 1201 opens the selected project in a preview area (not shown) where the user can preview, publish, or edit the project. Selecting the "edit” option loads the project in a dynamic authoring mode, complete with aU of the associated user interface authoring tools used to produce the project.
- Pubhsh button 1202 has an active state that indicates that the project has been published. Pushing button 1202 accesses a report sheet displaying the status of the project as weU as tracking information such as number of views, chck-throughs, and average time viewed. In one embodiment, this report sheet is only avaUable to a user having Manager rights. For each project in the project list, a title 1203, thumbnaU
- a sheet 1300 containing elements for project creation arranged in a series of grids according to one embodiment of the present invention.
- each solution on a sheet is identified through a series of database fields.
- a "Pyrotechnics" sheet might
- 2345 contain: five animated flame types; four fireworks examples; three animated glowing backgrounds; four types of animated sparkles; three burning type effects; four smoke effects; and three magma textures. These elements can be apphed as desired to content being authored.
- My Projects button 1301 access project screen 1200 as described above in
- Theme Sheets button 1302 activates a floating window containing icons representing various sheets that may be selected.
- a series of sheet icons 1303 is presented in rows; activation of a sheet icon 1303 displays the elements of the corresponding sheet in grid 1304.
- Search button 1305 folds down a hst of field names in a puU-down menu so that the user may search for specific elements and
- each sheet is represented by a series of identification fields, including for example a number, name, and category. Particular elements on sheets have identifier numbers that indicate their affiliation with and position on the corresponding sheet. Elements also have identification fields specifying, for example,
- search field 1309 the user may enter query parameters based on any of these identification fields to locate elements matching the user's requirements.
- Results of the search are viewed as elements on a custom sheet, with the positioning of the results being determined based on an identifier number or degree of matching with the user's specified pa- 2365 rameters. If a large number of matches are found, a series of tabs may be presented to allow access to various subsets of elements.
- the user is prompted for a sheet name, and may further select an icon to represent the new sheet.
- Elements can be added to the currently-selected or new custom sheet by dragging any icon representing an element onto button 1306, which serves as a drop target for the new custom sheet.
- Preview button 1308 toggles from the currently selected sheet to the new sheet and shows the new elements added by the user.
- An element from a custom sheet can be deleted by dragging the associated icon to delete button 1307.
- An entire custom sheet, including its contents, can be deleted by dragging the custom sheet's icon to delete button 1307.
- a confirmation dialog box is presented before deletion occurs.
- Each content element 1400 in a sheet 1300 has a control palette appropriate for the type of content included in the content element.
- control palette 1402 contains four slider controls 1401 for adjusting animated elements within content element 1400.
- hint help 1501 for con-
- hint help 1501 is displayed whenever the user holds an on-screen cursor over the associated control for a predetermined length of time. In another embodiment, hint help 1501 is displayed when explicitly requested by the user. Hint help 1501 provides assistance in operating the associated control element, such as a slider 1401, for control palette 1402.
- internal UI controls such as control palettes, control elements, and hint help are encapsulated in the element definition for each element of each sheet 1300. These internal UI controls are provided by author server 101 and are loaded dynamicaUy when needed. Publishing
- a "load” operation the content is then uploaded to content server 102, appropriate file links are created, and the load is verified.
- An ⁇ embed> code (including the correct URI) for accessing the content is made avaUable to the Chent, for inclusion on a web page.
- the ⁇ embed> code when retrieved by an end user, wiU cause player chent 105 to contact content server 102 and download the content as appropriate.
- a list of authorized domains can be provided and included in the published content file, so that any request for content can be verified as originating from an authorized domain.
- Targeting information for the published content may be provided by an Author or Manager at the time of publication.
- 2425 ager fills out an online form specifying the variations of content that should be made avaUable to different demographic groups, as weU as to different equipment types, if apphcable.
- the information provided via the online form is stored in content server 102; in one embodiment, hard-links are established between file paths and content files, as described above.
- the software may be downloaded from a website and instaUed automaticaUy.
- Fig. 8 there is shown a block diagram iUustrating a site structure for downloading player chent 105, including an authoring environment, according to one 2425 embodiment of the present invention.
- This site structure may be implemented, for example, as a series of interconnected web pages providing access to introductory information, downloadable software for installing player chent 105, and reviewing and publishing functionality.
- One skilled in the art wUl recognize that many other site structures and systems could be implemented for offering, instaUing, and using
- Home page 801 provides an entry page to the website with, for example, introductory information and links to a player chent 105 download area. If a user follows a link to a download area, Get Player page 802 provides download information and acts as a registration area for users interested in obtaining player chent 105. In
- stub server 307 transmits a stub instaUation to the user's workstation.
- the stub communicates with data server 103 to register player chent 105 and to obtain the rest of the software needed to run player chent 105.
- additional features are activated in player chent 105 to enable authoring. In one embodiment, such additional features
- GaUery 805 provides examples of content created by the authoring environ-
- 2445 ment including for example advertising and entertainment offerings. Users are invited to sample authoring their own content.
- Author Registration page 808 provides forms for the user to supply identifying information to register as an Author, and provides a password and other account information.
- Author Tool page 809 provides the complete authoring environment for use by
- the Author including various tools for creating splash screens, ads of various sizes, web-based applications, and the like.
- the authoring environment is identical to the content- viewing environment provided by player chent 105, but with additional functionality in the form of various controls that may be used to manipulate the content.
- the final, published content is a subset of the
- Chent Registration page 811 provides an area for advertisers and ad brokers to set up a payment account and receive registration numbers for authorizing content publication. This area is used by "Chents", who may be Authors or may be separate entities responsible for payment for advertising.
- Tracking page 812 provides tracking information for published content, such as for example the number of times each Article has been served, the chck-through rate, the amount of time the Article was visible on a user's screen, and the like.
- published content such as for example the number of times each Article has been served, the chck-through rate, the amount of time the Article was visible on a user's screen, and the like.
- Tracking page 812 is only avaUable to Chents and is password- protected to prevent unauthorized access. Information on Tracking page 812 may be obtained from knowledge base 306.
- Billing page 813 provides information regarding bUling for advertising and other content. This page may include, for example, biUable rates for each published
- BUling page 813 is only avaUable to Chents and is password- protected to prevent unauthorized access.
- the above-described invention thus provides a method, system, and computer program product for providing an authoring, generation, delivery, authentication, and tracking for online content such as advertising.
- the above description provides merely exemplary embodiments for practicing the present invention. Those skiUed in the art wUl recognize that other embodiments are possible without departing from the spirit or essential characteristics of the invention claimed herein.
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP00984584A EP1250655A2 (en) | 1999-10-28 | 2000-10-20 | Online focused content generation, delivery and tracking |
AU21184/01A AU2118401A (en) | 1999-10-28 | 2000-10-20 | Online focused content generation, delivery and tracking |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US42985399A | 1999-10-28 | 1999-10-28 | |
US09/429,853 | 1999-10-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2001031492A2 true WO2001031492A2 (en) | 2001-05-03 |
WO2001031492A3 WO2001031492A3 (en) | 2002-08-15 |
Family
ID=23704988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2000/041361 WO2001031492A2 (en) | 1999-10-28 | 2000-10-20 | Online focused content generation, delivery and tracking |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1250655A2 (en) |
AU (1) | AU2118401A (en) |
TW (1) | TW498258B (en) |
WO (1) | WO2001031492A2 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1274032A2 (en) * | 2001-07-06 | 2003-01-08 | Hitachi, Ltd. | Apparatus, system and method for information providing business |
US20040122943A1 (en) * | 2002-06-28 | 2004-06-24 | Brett Error | Custom event and attribute generation for use in website traffic data collection |
WO2013138914A1 (en) * | 2012-03-21 | 2013-09-26 | Evans Jennifer Anne | System and method for monitoring web activity |
JP2018520452A (en) * | 2015-05-15 | 2018-07-26 | アビニシオ テクノロジー エルエルシー | Techniques for constructing generic programs using controls |
US10503813B2 (en) | 2009-10-29 | 2019-12-10 | International Business Machines Corporation | Editing electronic documents |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI568251B (en) * | 2015-03-24 | 2017-01-21 | Incentive Message Delivery Method and System |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5848396A (en) * | 1996-04-26 | 1998-12-08 | Freedom Of Information, Inc. | Method and apparatus for determining behavioral profile of a computer user |
US5855008A (en) * | 1995-12-11 | 1998-12-29 | Cybergold, Inc. | Attention brokerage |
WO1999013423A1 (en) * | 1997-09-11 | 1999-03-18 | Narrative Communications Corporation | Tracking user micro-interactions with web page advertising |
US5918014A (en) * | 1995-12-27 | 1999-06-29 | Athenium, L.L.C. | Automated collaborative filtering in world wide web advertising |
US5933811A (en) * | 1996-08-20 | 1999-08-03 | Paul D. Angles | System and method for delivering customized advertisements within interactive communication systems |
US5948061A (en) * | 1996-10-29 | 1999-09-07 | Double Click, Inc. | Method of delivery, targeting, and measuring advertising over networks |
-
2000
- 2000-10-20 EP EP00984584A patent/EP1250655A2/en not_active Withdrawn
- 2000-10-20 AU AU21184/01A patent/AU2118401A/en not_active Abandoned
- 2000-10-20 WO PCT/US2000/041361 patent/WO2001031492A2/en not_active Application Discontinuation
- 2000-10-27 TW TW089122691A patent/TW498258B/en not_active IP Right Cessation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5855008A (en) * | 1995-12-11 | 1998-12-29 | Cybergold, Inc. | Attention brokerage |
US5918014A (en) * | 1995-12-27 | 1999-06-29 | Athenium, L.L.C. | Automated collaborative filtering in world wide web advertising |
US5848396A (en) * | 1996-04-26 | 1998-12-08 | Freedom Of Information, Inc. | Method and apparatus for determining behavioral profile of a computer user |
US5933811A (en) * | 1996-08-20 | 1999-08-03 | Paul D. Angles | System and method for delivering customized advertisements within interactive communication systems |
US5948061A (en) * | 1996-10-29 | 1999-09-07 | Double Click, Inc. | Method of delivery, targeting, and measuring advertising over networks |
WO1999013423A1 (en) * | 1997-09-11 | 1999-03-18 | Narrative Communications Corporation | Tracking user micro-interactions with web page advertising |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1274032A2 (en) * | 2001-07-06 | 2003-01-08 | Hitachi, Ltd. | Apparatus, system and method for information providing business |
US20040122943A1 (en) * | 2002-06-28 | 2004-06-24 | Brett Error | Custom event and attribute generation for use in website traffic data collection |
US10205623B2 (en) * | 2002-06-28 | 2019-02-12 | Adobe Systems Incorporated | Custom event and attribute generation for use in website traffic data collection |
US10503813B2 (en) | 2009-10-29 | 2019-12-10 | International Business Machines Corporation | Editing electronic documents |
US11042691B2 (en) | 2009-10-29 | 2021-06-22 | International Business Machines Corporation | Editing electronic documents |
WO2013138914A1 (en) * | 2012-03-21 | 2013-09-26 | Evans Jennifer Anne | System and method for monitoring web activity |
JP2018520452A (en) * | 2015-05-15 | 2018-07-26 | アビニシオ テクノロジー エルエルシー | Techniques for constructing generic programs using controls |
JP2021182415A (en) * | 2015-05-15 | 2021-11-25 | アビニシオ テクノロジー エルエルシー | Techniques for configuring generic program using controls |
Also Published As
Publication number | Publication date |
---|---|
WO2001031492A3 (en) | 2002-08-15 |
AU2118401A (en) | 2001-05-08 |
EP1250655A2 (en) | 2002-10-23 |
TW498258B (en) | 2002-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9426255B2 (en) | Apparatus and method for dynamically coordinating the delivery of computer readable media | |
US7003734B1 (en) | Method and system for creating and displaying images including pop-up images on a visual display | |
US8930832B2 (en) | Multimedia communication system and method | |
US7310609B2 (en) | Tracking user micro-interactions with web page advertising | |
US9324117B2 (en) | Method and system for dynamic web display | |
US20080040653A1 (en) | System and methods for managing presentation and behavioral use of web display content | |
US20100235766A1 (en) | Device and method for creating, distributing, managing and monetizing widgets | |
US20100325532A1 (en) | Indicating focus in a portal environment | |
KR20030051643A (en) | Computerized advertising method and system | |
JP2011530742A (en) | Content distribution to mobile devices | |
US6959424B1 (en) | System and method for displaying an enabled image associated with a predetermined image in an iframe of a visual display | |
WO2000019332A2 (en) | Changing advertisement size in response to user interactions | |
US7028268B1 (en) | Multiple destination banners | |
WO2001031492A2 (en) | Online focused content generation, delivery and tracking | |
AU6395099A (en) | Changing advertisement size in response to user interactions | |
WO2010105211A1 (en) | A device and method for creating, distributing, managing and monetizing widgets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2000984584 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
WWP | Wipo information: published in national office |
Ref document number: 2000984584 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 2000984584 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: JP |