The present disclosure relates to testing variations in web page content.
Web pages available on modern websites, such as websites available on the Internet, are powerful communication tools for disseminating information regarding current events, organizations, and other items of interest to website visitors. Web pages can also provide targeted advertising of products and services. The content of web pages used to convey this information and deliver these advertisements varies considerably. Selections regarding style, graphics, and layout impact visitors' responses to the information offered on the web page, and seemingly small changes in web page appearance can sometimes dramatically change the effect of the web page on visitors.
The effectiveness of differing combinations of web page content can be gauged by measuring visitor responses to varying web page content. Through experimentation, effective website content can be identified.
In general, one aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving a page identifier of a test page having code defining a plurality of variable content sections, retrieving an experiment identifier of a first experiment from the multivariate experimentation system based on the page identifier, retrieving variable content of the first experiment based on the experiment identifier of the first experiment, sending the variable content of the first experiment to a first web browser for insertion into a first set of the variable content sections, retrieving an experiment identifier of a second experiment from the multivariate experimentation system based on the page identifier, retrieving variable content of the second experiment based on the experiment identifier of the second experiment, and sending the variable content of the second experiment to a second web browser for insertion into a second set of the variable content sections. Other embodiments of this aspect include corresponding systems, apparatus, and computer program products.
An additional aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving respective variable content section identifiers for the variable content sections of the test page, where the variable content of the first experiment includes a variable content item identified from among a plurality of variable content items based on the experiment identifier of the first experiment and the variable content section identifier of at least a first one of the variable content sections, and the variable content of the second experiment includes a variable content item identified from among a plurality of variable content items based on the experiment identifier of the second experiment and the variable content section identifier of at least a second one of the variable content sections.
Particular embodiments of the subject matter described in this specification can be implemented to realize one or more of the following advantages. A test page can be instrumented once for use in multiple web page experiments to avoid frequent changes to web page code of a test page for purposes of experimentation. Resource consuming verification steps can also potentially be avoided.
The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.
Like reference numbers and designations in the various drawings indicate like elements.
The web pages 105 include hypertext markup language (HTML) code that is interpreted by the web browsers to render the pages for display to a visitor, for example, on a display of the computer 108A. The web pages 105 can also include scripts. A script, in this context, refers to code embedded in a web page. A script can be written in, for example, Javascript.
Content of the web pages 105 of the website 103 can be directed toward one or more goals such as, for example, collecting names of visitors/customers, selling a product or service, directing traffic to more pages 105 of the website 103, and/or directing traffic to the website of a sponsor. Website operators or others responsible for website content generally select website content to achieve these goals. To optimize the content of one or more web pages 105 to reach a given goal, experimentation system 110 can be used to conduct tests that present one or more web page variations to visitors and record the effectiveness of each variation in achieving the goal. A test that presents multiple variations in web page and/or website content is referred to herein as a multivariate test. A webpage operator (or experimentation system user) can access the experimentation system 110 to create experiments, manage experiments, and view reports regarding the effectiveness of variations in content of one or more web pages of the website 103.
In some implementations, a website operator utilizes an advertising system 114 to direct visitor traffic to the website 103. For example, a website operator can arrange to have advertisements, including hypertext links directing users to the website 103, placed on other Internet web pages. The pages selected for placement of the advertisements can, for example, be search engine results pages generated after a search engine user enters a search string including one or more words selected by a website operator as relevant to the content of the website 103. If the website 103 includes information regarding bicycling, for example, a website operator might arrange for advertisements to be placed on results pages for search queries including the word “cycling”. In addition, advertisements can be placed by the advertising system on web pages operated by others who agree to partner with the advertising system in delivering advertisements. The advertising system can then place advertisements for the website 103 on pages determined to have content that is contextually significant to the website 103. For example, an advertisement for the website 103 might appear on another bicycling related website. A website operator can agree to pay an owner of the advertising system a fee for each advertisement shown, and/or a fee for each time the advertisement successfully directs a visitor to the website 103.
The experimentation system can maintain records for a number of website operators. A website operator (or a team of website operators) can be assigned a user account on the experimentation system. By logging into the experimentation system a website operator can view experiments that are associated with the user account. For example, the website operator can create new experiments, start and stop experiments, and view experiment progress. The experimentation system can generate an experiment identifier for a newly created experiment. An experiment identifier can be associated with a user account, by for example storing the experiment identifier in a field of a database record that includes a user account identifier in another field.
In an implementation, a page identifier can be assigned to a test page, and multiple experiments can be associated with the page identifier. For example, the page identifier can be stored in a field of a database record that includes an experiment identifier in another field. The page identifier can be a test page URL or a page identifier assigned by the experimentation system 110. Multiple experiment identifiers can be associated with a page identifier corresponding to the test page. Multiple experiments associated with the same test page identifier can be conducted simultaneously and/or consecutively.
Scripts installed on a test page adapt the page for use with the experimentation system 110. The process of installing scripts on a test page is referred to as instrumentation or instrumenting a test page. Instrumentation of the test page generally includes a website operator modifying the code of a test page to insert one or more scripts. For example, the website operator can open the test page in a text editor or an HTML editor and modify the HTML code of the test page, or an old test page file can be deleted and replaced with a new file.
The experiment system 110 checks to determine if the test page identified by the user is already associated with an experiment (203). For example, the experiment system can access the URL of the test page to determine if experimentation system scripts have already been installed, and/or the experimentation system 110 can search database records to determine if the URL of the test page is associated with an existing experiment. If the URL of the test page is associated with an existing experiment, the process can proceed to obtaining experiment schema for the new experiment (208).
If the test page is not already associated with an experiment, the experimentation system 110 generates one or more scripts for use on the test and/or conversion pages of the experiment (204). The experimentation system 110 can provide the scripts to a website operator through the user interface or in an email, for example. Instructions for installing the scripts on the test and conversion pages are also provided.
The scripts generated by the experimentation system can be installed by inserting the scripts into the hypertext markup language of the test and/or conversion pages. The experimentation system can provide instructions for placing variable content sections in the test page. In an implementation, variable content sections can be added to a test page for use with multiple experiments. For example, one set of variable content sections can be used for a first experiment run on the test page, and a second set of variable content sections can be used for a second experiment run on the test page. The two sets can have one or more variable content sections in common. Placing variable content sections on a given test page for use with multiple experiments allows the test page to be instrumented once, for use with multiple experiments.
The website operator can indicate that the scripts have been installed using the user interface of the experimentation system 110, and the experimentation system can verify that the scripts have been installed (206).
The experimentation system obtains an experiment schema (208). An experiment schema includes the name (or other identifier) and number of variable content sections that are to be varied during the experiment. An experiment schema can be entered manually by a website operator into the experimentation system 110. For example, the website operator can enter the name of one or more variable content sections that are found on the test page. The name entered by the website operator can correspond to a respective variable content section script included in the test page.
In some implementations, potential experiment schema is captured by the experimentation system 110 by parsing the code of the test page. If variable content sections are found, the experimentation system captures information from these sections to use in defining a schema for the experiment. Any variable content sections found on the test page can be presented to a website operator through the user interface. The website operator can then select the variable content sections that are to be included in the experiment.
The obtained schema is then used to prompt for and collect variation information for the experiment from the website operator (210). The variation information will be inserted into corresponding variable content sections by the experimentation system as explained below. The variation information is stored for use by the experimentation system. The experiment is then conducted (212). During the experiment, varying combinations of the test page are displayed to visitors, and the respective number of conversions for the combinations displayed are recorded by the experimentation system 110.
Through experimentation, the effectiveness of the default content and combinations of the variable content items in achieving a goal can be measured. To measure the effectiveness, a goal is selected as the conversion page. The selected goal can be, for example, user visits to the newsletter signup page linked to by the link 308, actual data entered and submitted to that page, or user visits to the site sponsor linked to by link 310.
If the selected goal is a user visit to the newsletter sign up page, the conversion page can be a page having a newsletter signup form such as shown in
If the selected goal is a user visit to a website sponsor, the confirmation page can be a page linked to by the sponsor link 310.
As an illustrative example, the code of the test page 300 can be instrumented with three variable content scripts corresponding to three variable content sections. The variable content sections can include the header 302, the image 304, and the text 306. A given experiment conducted on the test page 300, however, need not vary the content of all three sections. For example, a first experiment can be conducted that varies the content of the header 302, a second experiment can be conducted that varies the image 304, and a third experiment can be conducted that varies the text 306. For further example, a first experiment can be conducted that varies the header 302 and the image 304, and a second experiment can be conducted that varies the image 304 and the text 306. These experiments can be run consecutively, or simultaneously. The experimentation system can switch from performing one experiment to the other without the need for the code of the test page 300 to be changed. Two or more experiments can be run during a period of time in which the test page code remains unchanged. That is, the variable content sections of the test page code used to instrument the experiment remain static. For example, a first experiment can be run for a first experiment period and visitor responses to content combinations delivered to the visitors can be recorded during the experiment period. A second experiment can be run for a second experiment period and visitor responses to content combinations delivered to the visitors can be recorded during the second experiment period. The first experiment period and the second experiment period can overlap such that two experiment are being run on the same test page at the same time. The experimentation system can spread visitor traffic to the test page across multiple running experiments based on, for example, whether a given visitor has a cookie on their browser indicating that content of one of the running experiments has previously been served to that browser, and/or a traffic balancing goal across the experiments.
In an implementation, the contents of a cookie delivered to a browser by the experimentation system 110 through the tracker script includes an experiment identifier. The cookie can also include the page identifier. The cookie can be used to determine which of a number of multiple experiments associated with the page identifier have been delivered to a given browser.
The example message 600 includes a script format for variable content sections to be placed on the test page. The format shown in the example is: “<script>utmx_section(“NAME_OF_SECTION”)</script>DEFAULT_VALUE</noscript>” where NAME_OF_SECTION is a name given to the variable content section by the website operator that can serve as a variable content section identifier. DEFAULT_VALUE is the default page content for the given variable content section.
Once the scripts have been installed on the test page and conversion page, the website operator can to initiate a script verification process. The operator can do this, for example, using the user interface of the experimentation system 110. The verification process can optionally check the HTML source of the web pages at the URL locations indicated for the experiment to determine if the scripts are installed correctly.
The website operator can manually enter the schema for the experiment into the user interface of the experiment system. The manually entered schema can include the names (or other identifier) of variable content sections that have corresponding variable content scripts in the source of the test page that are to be used in the experiment. The entered schema can include all of the instrumented variable content sections or some subset of those variable content sections.
In some implementations, the experimentation system 110 reads the HTML source of the test page to scan for variable content scripts.
In response to a website operator clicking the “Add Content” button 1304, a dialog box for accepting variable content items for the variable content section named “Header” can appear. The website operator can, for example, enter the variations in header content 312A-C of
While the experiment is running, on the test page 300, for example, the experimentation system, through communication with the web browser of a visitor's computer running the scripts installed on the test page 300, varies the test page displayed to visitors by selectively replacing the content in the variable content sections with one instance of the corresponding variable content entered by the website operator into the experimentation system. A number of resulting test page variations can be produced that include combinations of default variable section content (one instance of a variation for a given variable content section is using the default content) and content stored in the experimentation system. The experimentation system balances the number or instances of that a given combination is displayed to visitors such that each of the combinations are displayed an approximately equal number of times. Traffic to the page 300 is tracked by the experimentation system which records the number of times a given combination of variable content achieves the designated goal for the experiment. A user interface of the experimentation system can provide the data recorded by the experimentation system so that the relative conversion rates of the test page combinations can be compared.
Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible program carrier for execution by, or to control the operation of, data processing apparatus. The tangible program carrier can be a propagated signal or a computer-readable medium. The propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a computer. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter affecting a machine-readable propagated signal, or a combination of one or more of them.
The term “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, to name just a few.
Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any invention or of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
Particular embodiments of the subject matter described in this specification have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.
Number | Name | Date | Kind |
---|---|---|---|
5826031 | Nielsen | Oct 1998 | A |
5870559 | Leshem et al. | Feb 1999 | A |
6085229 | Newman et al. | Jul 2000 | A |
6173316 | De Boor et al. | Jan 2001 | B1 |
6405222 | Kunzinger et al. | Jun 2002 | B1 |
6405223 | Kelley et al. | Jun 2002 | B1 |
6605120 | Fields et al. | Aug 2003 | B1 |
6625803 | Massena et al. | Sep 2003 | B1 |
6721922 | Walters et al. | Apr 2004 | B1 |
6826594 | Pettersen | Nov 2004 | B1 |
6920609 | Manber et al. | Jul 2005 | B1 |
6934748 | Louviere et al. | Aug 2005 | B1 |
7028001 | Muthuswamy et al. | Apr 2006 | B1 |
7031932 | Lipsky et al. | Apr 2006 | B1 |
7039599 | Merriman et al. | May 2006 | B2 |
7047294 | Johnson et al. | May 2006 | B2 |
7047318 | Svedloff | May 2006 | B1 |
7168040 | Yamamoto et al. | Jan 2007 | B2 |
7194683 | Hind et al. | Mar 2007 | B2 |
7370036 | Vedula | May 2008 | B2 |
7523087 | Agarwal et al. | Apr 2009 | B1 |
7594189 | Walker et al. | Sep 2009 | B1 |
7747602 | Sampson et al. | Jun 2010 | B2 |
7895293 | Vasilik | Feb 2011 | B1 |
7895514 | Edmunds et al. | Feb 2011 | B1 |
20010014895 | Sappal | Aug 2001 | A1 |
20020042738 | Srinivasan et al. | Apr 2002 | A1 |
20020069255 | Dinovo | Jun 2002 | A1 |
20020129064 | Guthrie | Sep 2002 | A1 |
20020143495 | Roser | Oct 2002 | A1 |
20020165940 | Kameoka et al. | Nov 2002 | A1 |
20020188508 | Lee et al. | Dec 2002 | A1 |
20030097374 | Himeno | May 2003 | A1 |
20030131106 | Kasriel | Jul 2003 | A1 |
20030163784 | Daniel et al. | Aug 2003 | A1 |
20040019634 | Van Geldern et al. | Jan 2004 | A1 |
20040107423 | Noda | Jun 2004 | A1 |
20040123247 | Wachen et al. | Jun 2004 | A1 |
20040168122 | Kobipalayam Murugaiyan | Aug 2004 | A1 |
20050021397 | Cui et al. | Jan 2005 | A1 |
20050034065 | Weight | Feb 2005 | A1 |
20050071745 | Ehrich et al. | Mar 2005 | A1 |
20050071755 | Harrington et al. | Mar 2005 | A1 |
20050071757 | Ehrich et al. | Mar 2005 | A1 |
20050160002 | Roetter et al. | Jul 2005 | A1 |
20050268229 | Wessling et al. | Dec 2005 | A1 |
20060031417 | Narin | Feb 2006 | A1 |
20060036400 | Kasriel et al. | Feb 2006 | A1 |
20060085731 | Cui et al. | Apr 2006 | A1 |
20060162071 | Dixon et al. | Jul 2006 | A1 |
20060173815 | Vedula | Aug 2006 | A1 |
20060184638 | Chua et al. | Aug 2006 | A1 |
20060218490 | Fink | Sep 2006 | A1 |
20060265400 | Fain et al. | Nov 2006 | A1 |
20060271671 | Hansen | Nov 2006 | A1 |
20060288328 | Cross et al. | Dec 2006 | A1 |
20070027754 | Collins et al. | Feb 2007 | A1 |
20070061700 | Kothari et al. | Mar 2007 | A1 |
20070100956 | Kumar | May 2007 | A1 |
20070124192 | Moatti | May 2007 | A1 |
20070124671 | Hackworth et al. | May 2007 | A1 |
20070130510 | Dharamshi et al. | Jun 2007 | A1 |
20070136255 | Rizzo et al. | Jun 2007 | A1 |
20070143672 | Lipton et al. | Jun 2007 | A1 |
20070150353 | Krassner et al. | Jun 2007 | A1 |
20070214237 | Stibel et al. | Sep 2007 | A1 |
20070271352 | Khopkar et al. | Nov 2007 | A1 |
20070271392 | Khopkar et al. | Nov 2007 | A1 |
20070271501 | Vasilik | Nov 2007 | A1 |
20070271511 | Khopkar et al. | Nov 2007 | A1 |
20070276813 | Rosen | Nov 2007 | A1 |
20070299985 | Craig et al. | Dec 2007 | A1 |
20080028334 | De Mes | Jan 2008 | A1 |
20080046415 | Henkin et al. | Feb 2008 | A1 |
20080046507 | Westphal | Feb 2008 | A1 |
20080092060 | Berg et al. | Apr 2008 | A1 |
20080133722 | Ramasundaram et al. | Jun 2008 | A1 |
20090006192 | Martinez et al. | Jan 2009 | A1 |
20090030859 | Buchs et al. | Jan 2009 | A1 |
20090113282 | Schultz et al. | Apr 2009 | A1 |
20090150253 | Williams et al. | Jun 2009 | A1 |
20090204579 | Govani et al. | Aug 2009 | A1 |
20090241015 | Bender et al. | Sep 2009 | A1 |
20090300483 | Viet | Dec 2009 | A1 |
20100281389 | Hutchinson | Nov 2010 | A1 |
20110213676 | Singh et al. | Sep 2011 | A1 |
20120150662 | Hannon et al. | Jun 2012 | A1 |