(57)【要約】  コードベースのウェブサイト試験のためのシステム及び方法を提供する。コードベースウェブサイト試験は、試験されるプログラムコードの識別済セクションの仕様のほかに、試験的掲載ページ構造中のプログラムコードの識別済セクションを置き換えるプログラムコードの１つ以上の代替セクションの仕様も有する。各プログラムコードセクションに関連した統計値を解析し、どのプログラムコードセクションが他のプログラムコードセクションよりも良い性能を有するかを判断する。
2011516939.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのセクションを有したプログラミングコードを識別する段階と、
プログラミングコードの第１セクションの識別子を受信する段階と、
プログラミングコードの識別した第１セクションに関連したプログラミングコードの第１代替セクションの識別子を受信する段階と、
コードフラグメントを提供する段階と
を有し、
コードフラグメントは、プロセッサによって実行されたとき、プログラムコード実行時にプログラミングコードの第１セクション又はプログラミングコードの第１代替セクションのどちらを実行するのかを判断する機能を有することを特徴とする方法。
【請求項２】
プログラミングコードにコードフラグメントを挿入する段階をさらに有することを特徴とする請求項１に記載の方法。
【請求項３】
ウェブページ内にプログラミングコードを埋め込む段階をさらに有することを特徴とする請求項１に記載の方法。
【請求項４】
プログラミングコードの第１セクション及びプログラミングコードの第１代替セクションに関連した統計値を収集する段階をさらに有し、
統計値には、個々のコードセクションを備えたウェブページを閲覧するユーザが特定のリンクを選択した割合を識別する基準値が含まれることを特徴とする請求項３に記載の方法。
【請求項５】
収集した統計値をユーザへ提供する段階をさらに有することを特徴とする請求項４に記載の方法。
【請求項６】
プログラムコード実行時に収集した統計値に基づいて、プログラミングコードの第１セクション又は第１代替セクションの一方を優先的に選択する段階を含む、ウェブページのパフォーマンスを最適化する段階をさらに有することを特徴とする請求項４に記載の方法。
【請求項７】
コードフラグメントは、プロセッサによる実行時、ウェブページを閲覧するブラウザに関連したブラウジング情報をサーバに伝える機能を有し、
統計値を収集する段階が、
ブラウザからブラウジング情報を受信する段階と、
ブラウジング情報を編集して、個々のコードセクション及びウェブページに関連した統計値を提供する段階と
を含むことを特徴とする請求項４に記載の方法。
【請求項８】
プログラミングコードの複数の代替セクションを受信する段階をさらに有し、
提供されたコードフラグメントは、プロセッサによって実行されたとき、プログラミングコードの第１セクション又はプログラミングコードの複数の第１代替セクションのうちの１つのどちらを実行するのかを判断する機能を有することを特徴とする請求項１に記載の方法。
【請求項９】
提供されたコードフラグメントは、プログラミングコードの第１セクション及びプログラミングコードの複数の代替セクションの中からセクションをランダム又は擬似ランダムに選択することによって、プログラミングコードの第１セクション又はプログラミングコードの複数の代替セクションのうちの１つのどちらを実行するのかを判断することを特徴とする請求項８に記載の方法。
【請求項１０】
プログラミングコードのセクションのランダム又は擬似ランダムな選択が、コードを実行するプロセッサに関連したユーザに対して透過的であることを特徴とする請求項９に記載の方法。
【請求項１１】
１つ以上のサーバ上で動作するソフトウェアによって実行されることを特徴とする請求項１に記載の方法。
【請求項１２】
コンピュータ可読媒体であって、
１つ以上のデータ処理装置に、
少なくとも１つのセクションを有したプログラミングコードを識別する手順と、
プログラミングコードの第１セクションの識別子を受信する手順と、
プログラミングコードの識別した第１セクションに関連したプログラミングコードの第１代替セクションの識別子を受信する手順と、
コードフラグメントを提供する手順と
を実行させるプログラムを格納し、
コードフラグメントは、プロセッサによって実行されたとき、プログラミングコードの第１セクション又はプログラミングコードの第１代替セクションのどちらを実行するのかを判断する機能を有することを特徴とするコンピュータ可読媒体。
【請求項１３】
格納されたプログラムが、１つ以上のデータ処理装置に、
プログラミングコードに関連したプログラミング手段に指示して、プログラミングコードにコードフラグメントを挿入する手順をさらに実行させることを特徴とする請求項１２に記載のコンピュータ可読媒体。
【請求項１４】
プログラミングコードがウェブページ内に埋め込まれることを特徴とする請求項１２に記載のコンピュータ可読媒体。
【請求項１５】
格納されたプログラムが、１つ以上のデータ処理装置に、
プログラミングコードの第１セクション及びプログラミングコードの第１代替セクションに関連した統計値を収集する手順をさらに実行させ、
統計値には、個々のコードセクションを備えたウェブページを閲覧するユーザが特定のリンクを選択した割合を識別する基準値が含まれることを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
コードフラグメントは、プロセッサによる実行時、ウェブページを閲覧するブラウザに関連したブラウジング情報をサーバに伝える機能を有し、
統計値を収集する手順が、
ブラウザからブラウジング情報を受信する手順と、
ブラウジング情報を編集して、個々のコードセクション及びウェブページに関連した統計値を提供する手順と
を含むことを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
格納されたプログラムが、１つ以上のデータ処理装置に、
収集した統計値をユーザに提供する手順をさらに実行させることを特徴とする請求項１２に記載のコンピュータ可読媒体。
【請求項１８】
統計値が、統計値から算出されたパフォーマンス基準に基づき、別のコードセクションよりもパフォーマンスに優れる複数のコードセクションのうちの１つに基づいているウェブページのパフォーマンスを最適化するために使用されることを特徴とする請求項１２に記載のコンピュータ可読媒体。
【請求項１９】
提供されたコードフラグメントが、プログラミングコードの第１セクション及びプログラミングコードの代替セクションの中から、実行のためにセクションをランダム又は擬似ランダムに選択することを特徴とする請求項１２に記載のコンピュータ可読媒体。
【請求項２０】
１つ以上のサーバ上で動作するソフトウェアによって実行されることを特徴とする請求項１２に記載のコンピュータ可読媒体。
【請求項２１】
１つ以上のセクションを有したプログラミングコードを識別する機能を有したインタフェースと、
コードフラグメントを提供する機能を有したコードフラグメントエンジンと
を具備し、
インタフェースは、プログラミングコードの１つ以上のセクション及びプログラミングコードの１つ以上の代替セクションの中から特定のセクションを識別する機能をさらに有し、
コードフラグメントは、プロセッサによって実行されたとき、プログラミングコードの特定の部分又はプログラミングコードの１つ以上の代替セクションのいずれかのどちらを実行するのかを判断する機能を有することを特徴とするシステム。
【請求項２２】
インタフェースが、プログラミングコードへの挿入のために、プログラミングコードに関連したプログラミング手段にコードフラグメントエンジンを提供する機能をさらに有することを特徴とする請求項２１に記載のシステム。
【請求項２３】
１つ以上のセクションを有したプログラミングコードに１つ以上の代替プログラミングセクションを挿入する段階と、
プログラミングコードの１つ以上の代替セクションに関連したプログラミングコードの特定のセクションを識別する段階であって、プログラミングコードの特定のセクションは、プログラミングコードの１つ以上のセクションの中から選択される段階と、
プログラミングコードにコードフラグメントを挿入する段階であって、コードフラグメントは、プロセッサに、コードフラグメントの実行時、プログラミングコードの特定のセクション又はプログラミングコードの１つ以上の代替セクションのうちのいずれかのうちの一方を含むコードを選択及び実行させる機能を有する段階と、
プログラミングコードの特定のセクションに個々に関連したパフォーマンス基準に基づくプログラミングコードの１つ以上の代替セクションと、プログラミングコードの１つ以上の代替セクションとのうちの１つで、プログラミングコードの特定のセクションを提供する段階と
を有することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この文書は、２００８年２月１９日に出願された「ＣＯＤＥ−ＢＡＳＥＤ ＷＥＢＳＩＴＥ ＥＸＰＥＲＩＭＥＮＴＳ」と題した米国特許出願第１２／０３３，３６４号の優先権を主張するものである。上記出願をこの文書の開示の一部分として引用することにより、その全内容が本文書に組み込まれる。
【０００２】
この開示は、ウェブサイトの試験に関する。
【背景技術】
【０００３】
インターネットの急激な拡大により、電子商取引（ｅコマース）市場は、大勢の人々の生活に不可欠なものとなった。市場の拡大に従って、需要を満たすために多くのパブリッシャが設立された。これらのパブリッシャは、ビジネスにおける競争を拡大させた。競争の激化は、パブリッシャのウェブサイトの重要性を増大させた。例えば、ウェブサイトの操作が分かりにくかった場合、消費者は、そのようなウェブサイトを去り、競争相手のウェブサイトを利用することだろう。
【０００４】
パブリッシャがより良いウェブサイトを作成する手助けをするために、複数のツールが生み出された。そのようなツールのうちの１つが、Ｇｏｏｇｌｅ社（Google Inc. of Mountain View, CA）より入手可能なウェブサイトオプティマイザー（Website Optimizer）である。そのようなツールにより、パブリッシャは、ウェブページに対していくつかの異なるオプションを指定できるようになった。そして、パブリッシャは、試験を行い、複数の換算量（例えば、売上高、目的地経路の案内など）に基づいて、いくつかのオプションのうちのどのオプションが現在のバージョンのウェブサイトよりも優れているかを判断する。試験は一定期間実行でき、この試験期間中に、現在のバージョンを含むさまざまなオプションがクライアントに対して提供される。さまざまなオプションのそれぞれに関連した統計値が収集され、解析される。解析により、試験期間中に実行された特定のオプションのうちのどのオプションが現在のバージョンよりも優れたものであったかが決定される。解析の結果をパブリッシャに提供してもよく、彼らによって、ウェブページの代替バージョンのうちのどのバージョンを実現するか、又は、現在のバージョンのウェブサイトを維持するかが決定される。
【発明の概要】
【課題を解決するための手段】
【０００５】
コードベースのウェブサイト試験のためのシステム、方法、及びコンピュータ可読媒体が提供される。例示的なシステムは、インタフェースと、コードフラグメントエンジンとを具備する。インタフェースは、１つ以上のセクションを有したプログラミングコードを識別する機能を有する。また、インタフェースは、プログラミングコードの１つ以上のセクションとプログラミングコードの１つ以上の代替セクションとの中から特定のセクションを識別する機能を有する。コードフラグメントエンジンは、コードフラグメントを提供する機能を有する。コードフラグメントは、プロセッサによって実行されたとき、プログラミングコードの特定のセクションとプログラミングコードの１つ以上の代替セクションのうちの何れかとのどちらを実行するかを決定する機能を有する。
【０００６】
コードベースのウェブサイト試験を実行するための例示的な方法は、少なくとも１つのセクションを有したプログラミングコードを識別する段階と、プログラミングコードの第１セクションの識別子を受信する段階と、プログラミングコードの識別した第１セクションに関連したプログラミングコードの第１代替セクションの識別子を受信する段階と、コードフラグメントを提供する段階とを有する。コードフラグメントは、プロセッサによって実行されたとき、プログラムコード実行時にプログラミングコードの第１セクション又はプログラミングコードの第１代替セクションのどちらを実行するのかを判断する機能を有する。
【０００７】
コードベースのウェブサイト試験を実行するための別の例示的な方法は、プログラミングコードの１つ以上のセクションを有したプログラミングコードに１つ以上の代替プログラミングコードセクションを挿入する段階と、プログラミングコードの１つ以上の代替セクションに関連したプログラミングコードの特定のセクションを識別する段階であって、プログラミングコードの特定のセクションは、プログラミングコードの１つ以上のセクションの中から選択される段階と、プログラミングコードにコードフラグメントを挿入する段階であって、コードフラグメントは、コードフラグメントの実行時、プロセッサに、プログラミングコードの特定のセクション又はプログラミングコードの１つ以上の代替セクションのいずれかのうちの一方を含むコードを選択及び実行させる機能を有した段階と、プログラミングコードの特定のセクションを、プログラミングコードの特定のセクション及びプログラミングコードの１つ以上の代替セクションに個々に関連したパフォーマンス基準に基づくプログラミングコードの１つ以上の代替セクションのうちの１つと置き換える段階とを有する。
【０００８】
例示的なコンピュータ可読媒体は、プロセッサに、少なくとも１つのセクションを有したプログラミングコードを識別する手順と、プログラミングコードの第１セクションの識別子を受信する手順と、プログラミングコードの識別した第１セクションに関連したプログラミングコードの第１代替セクションの識別子を受信する手順と、コードフラグメントを提供する手順とを実行させるプログラムを格納する。コードフラグメントは、プロセッサによって実行されたとき、プログラミングコードの第１セクション又はプログラミングコードの第１代替セクションのどちらを実行するのかを判断する機能を有する。
【０００９】
システム、方法、装置、コンピュータ可読媒体、及びユーザインタフェースを対象とした実施態様を含むその他の実施態様が開示される。
【図面の簡単な説明】
【００１０】
【図１】適応性ウェブサイト最適化試験を提供する例示的なネットワークアーキテクチャの構成図である。
【図２】適応性ウェブサイト最適化試験を実行するネットワークデバイスに関連した例示的なデータフローの構成図である。
【図３】適応性ウェブサイト最適化試験の実行に使用される例示的なデバイスコンポーネントの構成図である。
【図４】適応性ウェブサイト最適化試験を提供するための例示的な方法のフローチャートである。
【図５】適応性ウェブサイト最適化試験を提供するための別の例示的な方法のフローチャートである。
【発明を実施するための形態】
【００１１】
ウェブサイト試験は、パブリッシャが現在の掲載ページ（landing page）構成よりもパフォーマンスに優れる掲載ページ構成を発見できるか否かを判断するように実行される。ウェブサイトがより洗練されたものとなるので、プログラミングコードは、ユーザに対してより洗練されたインタフェースを提供するように使用される。しかしながら、そのような洗練されたインタフェースには、多くの構成が存在する可能性がある。
【００１２】
いくつかの実施形態では、プログラムコードセクションが識別され、代替プログラムコードセクションが識別されたプログラムコードセクションに関連付けられる。プログラムコードに関連した掲載ページは、コードフラグメントを実装してよい。実装済掲載ページは、ブラウザに、実装済掲載ページをロードする際、試験サーバへリクエストを送信させる。リクエストを受信したとき、試験サーバは、識別済プログラムコードセクション又は代替プログラムコードセクションのどちらを使用するかを選択するとともに、選択したプログラムコードセクションを使用するために、実装済掲載ページに関連したプログラムコードを報告する。さらに、いくつかの実施形態では、試験サーバは、個々のプログラムコードセクションに関連した選択がなされるたびに、識別したプログラムコードセクション及び１つ以上の代替プログラムコードセクションに関連した統計値を収集する。収集した統計値は、識別したプログラムコードセクションを複数のプログラムコードセクションのうちの１つで置き換えるか否かについての提言を行うために、試験サーバによって解析される。
【００１３】
図１は、適応性ウェブサイト最適化試験を提供する例示的なネットワークアーキテクチャ１００の構成図である。ネットワークアーキテクチャ１００は、いくつかの実施形態では、パブリッシャ１１０と、試験サーバ１２０と、クライアント１３０と、ネットワーク１４０とを具備する。いくつかの実施例では、パブリッシャ１１０は、販売のために製品又はサービスを提示する掲載ページ（例えば、ウェブページ）である。いくつかの実施例では、検索エンジン及びその他の第三者ウェブサイトは、掲載ページに向けられたリンク（例えば、ＵＲＬ（Universal Resource Locator））を提供する。ウェブサイトから受信するトラフィックにからの換算量（例えば、売上高、目的地経路に沿った移動等）を最大化するために、パブリッシャ１１０は、消費者体験に影響を与えるように掲載ページに変更を加える。
【００１４】
いくつかの実施形態では、パブリッシャ１１０は、複数のバリエーションの掲載ページを互いにテストすることを欲する可能性がある。そのような実施形態では、パブリッシャ１１０は、ウェブサイト試験サーバ１２０を使用して、変形例（例えば、掲載ページに対して指定された異なるプログラムコード部分によって生成された掲載ページの複数のバリエーション）のそれぞれに関係した統計値を収集する。ウェブサイト試験サーバ１２０の一例が、Ｇｏｏｇｌｅ社（Google Inc. of Mountain View, CA）より入手可能なウェブサイトオプティマイザー（Website Optimizer）である。パブリッシャ１１０は、ウェブサイト試験サーバ１２０に試験パラメータを提供する。試験パラメータには、例えば、テストされる選択的コードセクションのそれぞれに対するプログラムコードセクションが含まれる。別の実施例では、試験パラメータには、試験期間が含まれる。
【００１５】
いくつかの実施形態では、ウェブサイト試験サーバ１２０は、パブリッシャ１１０にコントロールスクリプトを提供する。例えば、コントロールスクリプトは、ＨＴＭＬ（HyperText Markup Language）又はＸＭＬ（eXtensible Markup Language）コードのフラグメントとなる。コントロールスクリプトは、掲載ページ変形例のそれぞれと一緒に、パブリッシャによって掲載ページに挿入され、実装済掲載ページを生成する。
【００１６】
いくつかの実施形態では、実装済掲載ページは、ウェブサイト試験サーバ１２０に統計値を返すように構成される。例えば、クライアントデバイス１３０によってロードされたとき、実装済掲載ページは、ウェブサイト試験サーバ１２０と通信を行って、掲載ページに含まれたコードセクションの複数の変形例のうちのどれがクライアント上に表示されるかを識別する。また、コントロールスクリプトは、表示された掲載ページコード変形例とのユーザ対話に応答して、試験サーバ１２０と通信を行う。
【００１７】
別の実施形態では、ウェブサイト試験サーバ１２０は、パブリッシャ１１０に対するプロキシサーバとして動作するとともに、掲載ページに対して選択したコードセクションをクライアント１３０に渡す。例えば、ウェブサイト試験サーバは、検索エンジンに関連付けられるとともに、掲載ページに対する広告を含む複数の広告をクライアントに提供する。そのような実施例における掲載ページに関連したＵＲＬ選択時、検索エンジンは、実装済ウェブページを取得し、渡すべきオプションを選択し、かつ検索エンジン環境内（例えば、フレーム内）のクライアントにオプションを渡す。故に、ウェブサイトに関連する（例えば、承諾ボタンとして表わされたものを含む）いずれかのリンクのユーザ選択は、ウェブサイト試験サーバ１２０によって取得及び記録される。
【００１８】
さらに別の実施形態では、サーバは、実装済掲載ページに関連した広告をクライアントデバイスに提供する。広告の選択時、ウェブサイト試験サーバに連動するサーバが、掲載ページコードセクションの変形例に関する命令と一緒に、パブリッシャにリクエストを送信し、クライアント１３０に渡す。クライアント１３に渡された掲載ページには、掲載ページ上のあらゆる消費者行動（例えば、いずれかのハイパーリンク又はボタン表示の選択）を試験サーバ１２０に送り返す機能を有したコントロールスクリプトが含まれる。試験サーバ１２０は、クライアントデバイス１３０に渡される変形例に関連した統計値を収集し、編集する。
【００１９】
図２は、コードベースのウェブサイト試験を実行するネットワークデバイスに関連した例示的なデータフローの構成図である。いくつかの実施形態では、パブリッシャ１１０は、代替プログラムコードのセクションと現在プログラムコードの識別済セクションとを含む試験オプションを試験サーバ１２０へ伝える。試験サーバ１２０は、掲載ページコードに含めるために、パブリッシャ１１０に、例えば、１つ以上のコードフラグメントを含むコントロールスクリプトを提供することによって応答する。パブリッシャ１１０は、コントロールスクリプトを掲載ページに挿入し、実装済掲載ページを生成する。
【００２０】
いくつかの実施形態では、実装済掲載ページは、実装済掲載ページに関連したデータの収集を容易にする。例えば、クライアント１３０は、ＵＲＬリクエストをパブリッシャ１１０に送信し、掲載ページを要求する。パブリッシャ１１０は、クライアント１３０に実装済掲載ページを提供することによって、ＵＲＬリクエストに応答する。実装済掲載ページは、クライアント１３０によってロードされたとき、クライアント１３０に、試験サーバ１２０との通信を行わせる。
【００２１】
いくつかの実施形態では、実装済掲載ページは、クライアントによって表示される部分を生成するために、実装済掲載ページに含まれた複数のプログラムコードセクションのうちのどれが用いられるべきかを要求する。例えば、実装済掲載ページは、５つの選択的プログラムコードセクションを含み、いくつかの掲載ページ構成を生成する。実装済掲載ページに含まれたコントロールスクリプトは、例えば、クライアント１３０に、試験サーバ１２０との通信を行わせ、クライアント１３０によって表示されるのが５つのオプションのうちのいずれであるのかを判断する。
【００２２】
試験サーバ１２０は、クライアント１３０による表示をもたらすために、いくつかの掲載ページ構成に関連した複数の選択的プログラムコードセクションのうちのどれを実行すべきであるかを判断する。いくつかの実施形態では、試験サーバ１２０は、要求したクライアント１３０に、複数の選択的プログラムコードセクションのそれぞれのランダム又は擬似ランダム分布を提供するように機能する命令を提供する。例えば、ランダム分布は、複数の選択的プログラムコードセクションの中から選択されたプログラムコードセクションをランダムに選択して、実装済掲載ページを表示するようにクライアント１３０に命令する。故に、ユーザに対して表示するためにある特定の選択的プログラムコードセクションが選択される可能性は、ユーザに対して表示するために任意の別の選択的プログラムコードセクションが選択される可能性と等しい。
【００２３】
いくつかの実施形態では、試験サーバ１２０は、実装済掲載ページに関連した複数の選択的プログラムコードセクションのそれぞれについての統計値を収集する。例えば、実装済掲載ページに関連したコードフラグメントは、試験サーバに案内情報を送り返す。別の実施例では、試験サーバ１２０は、実装済掲載ページを介してクライアントからＵＲＬリクエストを受信し、パブリッシャにＵＲＬリクエストを転送することによって、プロキシサーバとして機能する。そのような実施例では、試験サーバ１２０は、実装済掲載ページを実行するクライアントから受信したＵＲＬリクエストに基づく統計値を収集する。
【００２４】
試験サーバ１２０は、コードベースのウェブサイト試験の結果を、例えば、試験期間の最後で、パブリッシャ１１０に提供する。
【００２５】
図３は、コードベースのウェブサイト試験を実行するために使用される例示的なデバイスコンポーネントの構成図である。パブリッシャデバイス１１０は、換算（例えば、製品の販売、ユーザを別のサイトに向かわせる等）を行うために用いられる掲載ページ３０５を作成（オーサリング）する。いくつかの実施形態では、パブリッシュデバイス１１０は、掲載ページの生成及び編集に使用されるエディタ部３１０を具備する。例えば、パブリッシャ１１０が自身の掲載ページの編集を欲した場合、パブリッシャ１１０は、エディタ部を用いて、編集された掲載ページを生成する。
【００２６】
いくつかの実施形態では、パブリッシャ１１０は、現在のバージョンの掲載ページに対して、新しいバージョン（又は、新しい複数のバージョン）のプログラムコードセクションをテストすることを決定する。そのような場合には、パブリッシャ１１０は、試験サーバ１２０上の試験生成インタフェース３１５と通信を行う。試験生成インタフェース３１５は、試験の生成を容易にする。例えば、パブリッシャ１１０は、エディタ部３１０を用いて、自身の複数の選択的プログラムコードセクションを試験生成インタフェース３１５に提供する。また、いくつかの実施形態では、パブリッシャ１１０は、試験期間を提供する。
【００２７】
試験生成インタフェース３１５は、試験に関連したパラメータを統計データ格納部３２０に格納する。また、いくつかの実施形態では、試験生成インタフェース３１５は、パブリッシャ１１０にコントロールスクリプトを提供する。パブリッシャ１１０は、エディタ部３１０を用いて、掲載ページ３０５にコントロールスクリプトを挿入し、実装済掲載ページ３２５を生成する。
【００２８】
いくつかの実施形態では、実装済掲載ページ３２５は、クライアント１３０から受信したリクエスト（例えば、ＵＲＬリクエスト）に基づいて、クライアント１３０に提供される。クライアント１３０は、パブリッシャ１１０から受信した実装済掲載ページ３２５をロードする機能を有したブラウザ３３０を具備する。ブラウザ３３０は、実装済掲載ページ３２５のロード時、パブリッシャ１１０によって実装済掲載ページ３２５に予め挿入されたコントロールスクリプトに遭遇する。コントロールスクリプトは、ブラウザ３３０に、試験サーバ１２０のオプション選択モジュール３３５への通信を送信させる。
【００２９】
いくつかの実施形態では、オプション選択モジュール３３５は、複数の選択的掲載ページ構成から選択されたプログラムコードセクションを選択する。例えば、オプション選択モジュールは、利用可能な複数のプログラムコードセクション（例えば、現在のプログラムコードセクション及び代替プログラムコードセクション）の中から、ランダム又は擬似ランダムに選択を行う。オプション選択モジュール３３５は、実装済掲載ページ３２５に命令を提供し、そのようにランダム又は擬似ランダムに選択されたプログラムコードセクション３４５を実行して、表示部３５０に表示する掲載ページの変形例を生成する。
【００３０】
いくつかの実施形態では、統計値は、試験の間中、収集される。例えば、クライアント１３０からの通信が受信されるたびに、その通信は、統計モジュール３４０によって統計データ格納部３２０に記録される。いくつかの実施形態では、統計モジュール３４０は、統計値の解析結果を定期的に（例えば、２時間毎に）更新する。別の実施形態では、統計データ格納部３４０に格納された収集された統計値の統計的解析結果は、クライアント１３０からのリクエストを受信するたびに更新される。そのような実施形態では、統計値の現在の解析結果は、要求時にパブリッシャ１１０に渡される。
【００３１】
図４は、コードベースのウェブサイト試験を実行するための例示的な方法４００のフローチャートである。ステージ４０５において、プログラムコードが識別される。プログラムコードは、例えば、エディタ（例えば、図３のエディタ部３１０）を併せ持つパブリッシャ（例えば、図３のパブリッシャ１１０）によって識別される。いくつかの実施形態では、プログラムコードは、掲載ページを定義するＨＴＭＬプログラムコードとして予め存在し、パブリッシャによって試験サーバ（例えば、図３の試験サーバ１２０）に提供される。プログラムコードは、ブラウザクライアントに、プログラムコードに関連したコンテンツを表示させる機能を有する。
【００３２】
ステージ４１０において、プログラムコードの第１セクションの識別子が受信される。プログラムコードの第１セクションの識別子は、例えば、試験サーバ（例えば、図３の試験サーバ１２０）によって、パブリッシャ（例えば、図３のパブリッシャ１１０）から受信される。いくつかの実施形態では、プログラムコードの第１セクションの識別子は、パブリッシャが試験を実行したいプログラムコードのセクションを識別する。例えば、掲載ページに関連したプログラムコードが複数のプログラムコードセクションＡ，Ｂ，Ｃ，Ｄを含む場合、パブリッシャは、試験の対象としてプログラムコードセクション「Ｃ」を識別する。
【００３３】
ステージ４１５において、プログラミングコードの第１代替セクションの識別子が受信される。プログラミングコードの第１代替セクションの識別子は、例えば、試験サーバ（例えば、図３の試験サーバ１２０）によって、エディタ（例えば、図３のエディタ部３１０）を併せ持つパブリッシャ（例えば、図３のパブリッシャ１１０）から受信される。例えば、パブリッシャは、プログラムコードの代替セクションを生成し、プログラムコードの識別された第１セクションに加えて、掲載ページに含ませる。
【００３４】
ステージ４２０において、実行するプログラミングコードのセクションがどれであるかを識別する機能を有したコードフラグメントが提供される。コードフラグメントは、例えば、試験サーバ（例えば、図３の試験サーバ１２０）によってパブリッシャ（例えば、図３のパブリッシャ１１０）に提供される。いくつかの実施形態では、コードフラグメントは、掲載ページに関連したコードに挿入され、実装済掲載ページを生成する。実装済掲載ページは、ブラウザに、実装済掲載ページのロード時、試験サーバとの通信を行わせる機能を有する。例えば、ユーザデバイスがＵＲＬリクエストを提示し、ブラウザを用いて掲載ページを受信したとき、ブラウザは、実装済掲載ページを受信する。実装済掲載ページのロード時、ブラウザは、どのプログラムコードセクションをユーザに表示するかの判断のために、試験サーバにクエリを送信する。いくつかの実施形態では、いくつかのプログラムコードセクションに関連した統計的情報が収集される。例えば、統計的情報には、ユーザに渡されるプログラムコードに基づき、例えば、換算の最速周期で生じる掲載ページ構成についての情報が含まれる。いくつかの実施例では、換算は、売上高によって識別される。別の実施例では、換算は、目的地経路に沿った移動によって識別される。いくつかの実施形態では、高い換算率を有した掲載ページ構成に関連したプログラムコードセクションは、最大パフォーマンスを発揮する試験オプションとして識別される。
【００３５】
図５は、コードベースのウェブサイト試験を実行するための例示的な方法５００のフローチャートである。ステージ５０５において、プログラムコードの代替セクションが、掲載ページに関連したプログラムコードに挿入される。プログラムコードは、例えば、エディタ（例えば、図３のエディタ部３１０）を併せ持つパブリッシャ（例えば、図３のパブリッシャ１１０）によって挿入される。いくつかの実施形態では、プログラムコードの代替セクションは、異なる構成の掲載ページを定義する。例えば、パブリッシャが自身の掲載ページ上で試験を実行したい場合、パブリッシャは、代替プログラムコードセクションを生成する。
【００３６】
ステージ５１０において、代替プログラムコードセクションに関連したプログラムコードのセクションが識別される。代替プログラムコードセクションに関連したプログラムコードのセクションは、例えば、パブリッシャ（例えば、図３のパブリッシャ１１０）によって識別される。いくつかの実施形態では、パブリッシャは、試験されるプログラムコードのセクションを識別する。故に、識別されたプログラムコードセクションは、プログラムコードの代替セクションがプログラムコードの代替セクションを含むそれらの掲載ページ構成中の識別したプログラムコードセクションを置き換えるように識別される。
【００３７】
ステージ５１５において、コードフラグメントがプログラムコードに挿入される。いくつかの実施形態では、コードフラグメントは、例えば、エディタ（例えば、図３のエディタ部３１０）を併せ持つパブリッシャ（例えば、図３のパブリッシャ１１０）によって、プログラムコードに挿入される。いくつかの実施形態では、コードフラグメントは、掲載ページに挿入され、実装済掲載ページを生成する。コードフラグメントは、ブラウザによる実装済掲載ページのロード時、ブラウザに、試験サーバ（例えば、図３の試験サーバ１２０）へクエリを送信させる機能を有する。試験サーバは、識別されたプログラムコードセクションと代替プログラムコードセクションとの中から選択されたプログラムコードセクションをランダムに選択する。選択されたプログラムコードセクションは、クライアント１３０に渡され、コードフラグメントに、選択されたプログラムコードセクションを用いて掲載ページ構成を生成させる。また、試験サーバは、実装済掲載ページ内のコードフラグメントの存在に基づいて、実装済掲載ページの案内に関連した統計値を収集する。例えば、コードフラグメントは、実装済掲載ページにロードされたとき、クライアントデバイスに、実装済掲載ページ又はコードフラグメントを含むその他のページのユーザ案内を伝えさせる。いくつかの実施形態では、試験サーバは、収集した統計値を解析して、さまざまな掲載ページ構成を生成し、パブリッシャに結果を通知する。
【００３８】
ステージ５２０において、プログラムコードの識別されたセクションは、パフォーマンス基準値に基づいて、プログラムコードの代替セクションと置き換えられる。プログラムコードの識別されたセクションは、例えば、エディタ（例えば、図３のエディタ部３１０）を併せ持つパブリッシャ（例えば、図３のパブリッシャ１１０）によって、プログラムコードの代替セクションと置き換えられる。コードの置き換えについて記載したが、コードの置き換えではなく、選択した代替セクションを単に実行することを含むその他のオプションも実現可能である。いくつかの実施形態では、選択的プログラムコードセクションに関連したパフォーマンス基準は、試験サーバ（例えば、図３の試験サーバ１２０）によって収集された案内統計値から導き出される。例えば、掲載ページに複数のプログラムコードセクションＡ，Ｂ，Ｃ，Ｄが含まれ、かつパブリッシャが２つの代替プログラムコードセクションＣ’，Ｃ”を用いたプログラムコードセクションＣの試験を決定した場合、試験サーバは、プログラムコードＣから換算率１０％が得られると同時に、代替プログラムコードセクションＣ’から換算率８％が得られ、かつ代替プログラムコードセクションＣ”から換算率１８％が得られることを判断する。そのような実施例では、代替プログラムコードセクションＣ”が、試験中に最良のパフォーマンスを発揮するプログラムコードセクションとして識別される。故に、パブリッシャは、プログラムコードセクションＣを代替プログラムコードセクションＣ”で置き換える。
【００３９】
明細書に記載された主題のいくつかの形態及び明細書に記載された機能的動作のすべては、デジタル電子回路によって、又は、明細書で開示された構成及びそれらの構成の均等物を含むコンピュータソフトウェア、ファームウェア、若しくはハードウェアによって、又は、それらのうちの１つ以上の組み合わせによって実現されてよい。この明細書に記載された主題の実施形態は、１つ以上のコンピュータプログラム製品、すなわち、データ処理装置による実行のために又はデータ処理装置の動作をコントロールするために、コンピュータ可読媒体にエンコードされたコンピュータプログラム命令の１つ以上のモジュールとして実現されてよい。コンピュータ可読媒体は、機械読み取り可能な記憶デバイス、機械読み取り可能な伝搬信号、又はそれらのうちの１つ以上の組み合わせであってよい。用語「データ処理装置」は、データを処理するすべての装置、デバイス、及び機械を包含し、例えば、プログラマブルプロセッサ、コンピュータ、又はマルチプロセッサ若しくはマルチコンピュータを含む。装置は、ハードウェアに加えて、問題となっているコンピュータプログラムのための実行環境を生成するコードを含んでよい。例えば、コードは、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらのうちの１つ以上の組み合わせを構成する。伝搬信号は、人工的に生成された信号、例えば、機械生成された電気、光学、又は電磁気信号である。これらは、適切な受信装置に送信するための情報をエンコードするために生成される。
【００４０】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる）は、コンパイルされた言語又はインタプリタされた言語を含む任意の形式のプログラミング言語で記述され、スタンドアロンプログラム又はモジュール、コンポーネント、サブルーチン、又は演算環境での仕様に適したその他のユニットを含む任意の形態で利用される。コンピュータプログラムは、ファイルシステム中のファイルに対応している必要はない。プログラムは、問題となっているプログラム専用の１つのファイルとして、又は、複数の協調ファイル（例えば、１つ以上のモジュール、サブプログラム、又はコードの一部分を格納したファイル）として、他のプログラム又はデータを有するファイルの一部分（例えば、マークアップ言語文書に格納された１つ以上のスクリプト）として格納されてよい。コンピュータプログラムは、１つのコンピュータ又は複数のコンピュータ上で実行するように利用される。複数のコンピュータは、１つの場所に位置するか、又は、複数の場所に渡って分散配置され、通信ネットワークによって互いに接続される。
【００４１】
この明細書に記載されたプロセス及びロジックフローは、１つ以上のプログラマブルプロセッサによって実行される。プログラマブルプロセッサは、１つ以上のコンピュータプログラムを実行して、入力データを操作し、出力生成することによって各機能を実行する。また、プロセス及びロジックフローは、専用ロジック回路によって実行でき、また、装置は、専用ロジック回路として実現される。専用ロジック回路は、例えば、ＦＰＧＡ（Field Programmable Gate Array）又はＡＳＩＣ（Application Specific Intergrated Circuit）である。
【００４２】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用及び専用両方のマイクロプロセッサ、及び、あらゆる種類のデジタルコンピュータの任意の１つ以上のプロセッサである。一般に、プロセッサは、リードオンリーメモリ又はランダムアクセスメモリ又はその両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令及びデータを格納するための１つ以上のメモリデバイスとである。一般に、また、コンピュータは、データを格納するための１つ以上の大容量記憶デバイスを具備するか、又は、データを送受信するように操作可能に接続されるか、又は、その両方である。大容量記憶デバイスは、例えば、磁気、光磁気ディスク、又は光学ディスクである。しかしながら、コンピュータは、そのようなデバイスを具備しなくてもよい。さらに、コンピュータは、別のデバイス、例えば、モバイルフォン、ＰＤＡ（Personal Digital Assistant）、モバイルオーディオプレイヤ、ＧＰＳ（Global Positioning System）受信機などに組み込まれてよい。コンピュータプログラム命令及びデータを格納するために適したコンピュータ可読媒体は、あらゆる形態の不揮発性メモリ、メディア、及びメモリデバイスであり、例を挙げると、半導体メモリデバイス、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、及びフラッシュメモリデバイス、磁気ディスク、例えば、内蔵ハードディスク又はリムーバブルディスク、光磁気ディスク、並びに、ＣＤ ＲＯＭ及びＤＶＤ−ＲＯＭディスクがある。プロセッサ及びメモリは、専用ロジック回路によって追加されるか、又は、専用ロジック回路に組み込まれてよい。
【００４３】
ユーザとの対話を提供するために、この明細書に記載された主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えば、ＣＲＴ（Cathode Ray Tube）又はＬＣＤ（Liquid Crystal Display）モニタと、ユーザがコンピュータに入力を与えることを可能にするキーボード及びポインティングデバイス、例えば、マウス又はトラックボールとを具備したコンピュータ上に実現される。他の種類のデバイスが、ユーザとの対話を提供するためのほかにも使用される。例えば、ユーザに提供されるフィードバックは、あらゆる形態の知覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックであってよい。ユーザからの入力は、音響、音声、又は触覚入力を含むあらゆる形態で受信されてよい。
【００４４】
この明細書に記載された主題のいくつかの形態は、バックエンドコンポーネントを含む演算システム、例えば、データサーバとして、又は、ミドルウェアコンポーネント、例えば、アプリケーションサーバを含む演算システムとして、又は、フロントエンドコンポーネント、例えば、クライアントコンピュータを含む演算システムとして、又は、１つ以上のそのようなバックエンド、ミドルウェア、又はフロントエンドコンポーネントの任意の組み合わせを含む演算システムとして実現される。クライアントコンピュータは、それを介して、ユーザがこの明細書に記載された主題の実施形態と対話可能となるグラフィカルユーザインタフェース又はウェブブラウザを備える。システムの各構成要素は、あらゆる形態又は媒体のデジタルデータ通信、例えば、通信ネットワークによって互いに接続されてよい。通信ネットワークの例としては、ローカルエリアネットワーク（ＬＡＮ）及びワイドエリアネットワーク（ＷＡＮ）、例えば、インターネットがある。
【００４５】
演算システムは、クライアントとサーバとを含む。クライアント及びサーバは、通常、互いに離れており、典型的には、通信ネットワークを介して対話する。クライアントとサーバとの関連性は、個々のコンピュータ上で動作するコンピュータプログラムによって生じ、互いのクライアント−サーバ関係を有する。
【００４６】
この明細書は、多くの詳述を含むが、これらは特許請求の範囲の限定ではなく、主題の特定の実施形態の説明を意図したものである。また、別個の実施形態についてこの明細書に記載されたある特徴が、１つの実施形態に組み合わされて実現されることがある。また逆に、１つの実施形態について記載されたいくつかの特徴が、複数の実施形態において別々に実現されるか、又は、任意の適切な部分（サブ）組み合わせとして実現されることもある。さらに、特徴は、ある組み合わせ行為として記載され、かつそのようなものとして特許請求の範囲に初期定義されているが、そのような組み合わせに基づく１つ以上の特徴は、いくつかの場合、組み合わせから削除されるとともに、部分的な組み合わせ又は部分的な組み合わせの変形例を対象とする。
【００４７】
同様に、動作は、特定の順序で図面に示されたが、当然ながら、そのような動作は、示された特定の順序又は連続した順序で実行されること、又は、図示されたすべての動作が実行されることを必要とせず、そのような場合でも、所望の結果を達成する。ある状況下では、マルチタスク化及び並列実行が有利となる。さらに、上記の実施形態中のさまざまなシステム構成要素の分離は、すべての実施形態においてそのような分離を要求するものではなく、当然ながら、記載された複数のプログラムコンポーネント及びシステムは、通常、１つのソフトウェア製品に互いに統合されたり、複数のソフトウェア製品にパッケージ化したりできる。
【００４８】
この明細書の主題が特定の実施形態として記載されたが、別の実施形態が実現可能であり、それらは添付の特許請求の範囲内にある。例えば、請求項に列挙された動作は、異なる順序で実行されてよく、なお所望の結果を達成する。一例の通り、添付の図面に示された各プロセスは、図示された特定の順序又は連続した順序を必ずしも要求せず、なお所望の結果を達成する。ある実施形態では、マルチタスク化及び並列処理が有利となる。その他の変形例は、添付の特許請求の範囲内にある。同一の試験技術は、広告に関する掲載ページだけでなく、あらゆるウェブページに有効である。あるゆるウェブページのオーナーは、自身のウェブサイトのデザインが素晴らしいものであるかどうか、どのウェブページに改善が必要かを試験的に判断できる。ウェブサイトオーナーは、テストページ及びゴールページだけをデザインすればよい。ゴール率は、テストページに到達し、かつゴールページにさらに到達したユーザのブラウジングの割合として算出される。ゴール率は、成功量として解釈される。この明細書では、一般に使用される技術を採用するために、用語「掲載ページ（landing page）」は、それを介して広告が現れるかどうかに関わりなく、すべてのテストページを含むように使用される。用語「換算ページ（conversion page）」は、すべてのゴールページを含むように使用される。
【００４９】
これら及びその他の実施形態は、添付の特許請求の範囲内にある。
【符号の説明】
【００５０】
１００  ネットワークアーキテクチャ
１１０  パブリッシャ
１２０  試験サーバ
１３０  クライアント
１４０  ネットワーク
３０５  掲載ページ
３１０  ウェブページエディタ部
３１５  試験生成インタフェース
３２０  統計データ格納部
３２５  実装済掲載ページ
３３０  ブラウザ
３３５  オプション選択モジュール
３４０  統計モジュール
３４５  選択したプログラムコードセクション
３５０  表示部
【図１】
2011516939.tif 000003
【図２】
2011516939.tif 000004
【図３】
2011516939.tif 000005
【図４】
2011516939.tif 000006
【図５】
2011516939.tif 000007
【国際調査報告】
2011516939.tif 000008
2011516939.tif 000009