(58)【調査した分野】(Int.Cl.,DB名)
前記検索結果ページに実験識別子を埋め込むステップであって、前記実験識別子は、前記少なくとも1つのプリレンダ候補を特定するのに使用される特定の方法に対応する、前記埋め込むステップと、
前記検索結果ページに関連付けられる1つ又は複数のリダイレクション動作を用いて選択動作に関連付けられる前記実験識別子、及び前記少なくとも1つのプリレンダ候補が選択されたかどうかを特定するステップと、をさらに備える、請求項1に記載の方法。
前記測定基準は、前記選択された検索結果、前記選択された検索結果が前記少なくとも1つの検索結果であるかどうか、及び前記選択された検索結果にアクセスするためのページ読み込み時間のうちの少なくとも1つである、請求項9に記載の方法。
前記測定基準は、前記選択された検索結果、前記選択された検索結果が前記少なくとも1つの検索結果であるかどうか、及び前記選択された検索結果にアクセスするためのページ読み込み時間のうちの少なくとも1つである、請求項15に記載の記憶媒体。
前記測定基準は、前記一連の検索結果に埋め込まれた実験識別子をさらに備え、前記実験識別子がプリレンダリングを行う候補として前記検索結果のうちの前記少なくとも1つを選択する方法を示す、請求項15に記載の記憶媒体。
【発明を実施するための形態】
【0011】
本願の開示の態様、特徴および利点は、以下の好ましい実施形態の説明及び添付図を参照して考慮することで理解できる。以下の説明は本開示を限定するものではなく、本開示の範囲は添付請求項及び均等範囲により定義される。
【0012】
例示的実施形態に従った一定の処理が、直線状に発生するものとして図に示されているが、本出願書類に特にはっきりと記載されない限りこれは要件ではない。異なる処理が異なる順序又は同時に実行されてもよい。
【0013】
この開示は、プリレンダ(prerender)命令と共に検索結果のページを提供するシステム及び方法を記載する。この開示の態様のおかげで、ユーザによるイベントの選択より前にナビゲーションイベントに関連付けられたコンテンツを表示することにより、ナビゲーションイベント(例えば、検索結果ハイパーリンクをクリックすること)のユーザの選択とナビゲーションイベントに関連付けられたコンテンツの表示との間の遅延を最小化する。例えば、この方法とシステムは、ユーザが関連するリンクを選択する前に先行してネットワークからコンテンツをリクエストするために、ウェブを閲覧する間に次にリクエストされそうなユーアールエルを予測することができ、したがって、ユーザがウェブページ上でハイパーリンクを選択する時に待ち時間を最小にすることができる。プリレンダリング動作を実行し、プリレンダリング動作を構成し、プリレンダリング動作を管理する様々な方法を記載する。この適用を目的として、用語「プリレンダリング」は、一般にウェブアドレスのコンテンツを読み込むのに必要な資源(例えば、任意の実行可能コード、スクリプト言語、ファイル、及び/または対話型オブジェクト)を要求し、ウェブブラウザーインスタンスにそのコンテンツを読み込む動作をいう。プリレンダリングは、スクリプトを解釈すること、ページを配置すること、および不可視のブラウザインスタンス内のページを表示することを含めてページをレンダリングするプロセスを含む。
【0014】
ユーザが、インターネット検索エンジンを用いてブラウザーにおいて検索クエリーを実行する時、そのインターネット検索エンジンは、プリレンダ命令を伴う検索クエリーに応答して提供される1つ又は複数の検索結果にフラグを立てることができる。これらのプリレンダ命令は、ウェブページ(例えば、ページソース内のハイパーテキスト・マークアップ言語(HTML)タグを介して)自身の中に埋め込まれてもよく、または非同期JAVAスクリプト(AJAX)等の他の方法によりブラウザーに示されてもよい。様々な例示的な実施形態がウェブブラウザーに関連して説明されているが、用語「ブラウザー」は、インターネットアドレスを用いてコンテンツをフェッチする任意のアプリケーションをも含むように広義に解釈し得る。例えば、ブラウザーは、スマートフォン上で実行するアプリケーション、ラップトップまたはデスクトップコンピュータ上で実行するインターネット検索エンジンを表示するウェブブラウザー、ウェブブラウザー内に埋め込まれた検索ツールバー、コンピュータのオペレーティングシステムに含まれる検索アプリケーション等を含み得る。
【0015】
インターネット検索エンジン等の高トラフィックサイトはプリレンダリングに特有の課題が生じ得る。例えば、もし検索エンジンがよく使用されている検索クエリーに対する検索結果を良いプリレンダ候補として誤って分類し、ユーザはその検索結果を高い頻度では選ばないなら、誤って分類された検索結果を提供するウェブサーバーにおいては、追加されたページビューが無いのに追加のトラフィックが発生することになる。これにより、プリレンダされたページがネットワークを超えてダウンロードされ、隠されたブラウザインスタンスにおいて実行されるため、ホストページの帯域を浪費し、ユーザのコンピュータのシステム資源を浪費する結果となる。したがって、プリレンダリング動作と関連するリンクの選択を改善するのに使用するために、システムの測定基準を監視することが望ましい。システム及び方法の態様は、プリレンダリングの経験を改善する目的で自発的にデータを収集することを承諾したクライアントにより提供されたデータを用いてこれらの測定基準を監視する機能を提供することができる。
【0016】
図1は、本開示の態様にしたがってスタンドアロンで又はネットワーク構成で使用され得る様々なコンピュータデバイスを記述するコンピュータシステムの概略図を提示する。例えば、この図は、ネットワーク106を介して通信するクライアントデバイス102とサーバー104とを有するコンピュータネットワーク100を示す。クライアントデバイス102により、ユーザは検索クエリーを用いて検索動作を開始するために検索クエリーを提出できるようになる。サーバー104は、検索クエリーを受信し、検索クエリーを用いて検索処理を実行する。サーバー104は、1つ又は複数のプリレンダ命令を検索クエリーに応答してユーザに提供された検索結果に関連付けることもできる。
【0017】
クライアントデバイス102は、当業者に良く知られているコンピュータのデバイスであり得る。例えば、クライアントデバイス102は、ラップトップコンピュータ、デスクトップコンピュータ、ネットブック、ラックマウント方式のサーバー、スマートフォン、セルラー方式の電話機、または命令を実行するプログラム可能なハードウェアもしくはソフトウェアを含む任意の他のデバイスであり得る。コンピュータのデバイス102は、プロセサー108、メモリ110及び汎用コンピュータに通常存在する他の部品を含み得る。メモリ110は、プロセサー108によりアクセス可能な命令112及びデータ114を記憶し得る。プロセサー108は、クライアントデバイス102の動作を制御するために命令112を実行し、データ114にアクセスすることができる。
【0018】
プロセサー108は、様々な商業的に利用可能な汎用プロセサー等の任意の適切なプロセサーであってもよい。あるいは、プロセサー108は、特定用途向け集積回路(「ASIC」)又はフィールド・プログラマブル・ゲート・アレイ(「FPGA」)等の専用制御部であってもよい。
【0019】
メモリ110は、ハードディスクドライブ、メモリカード、リードオンリーメモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、ディーブイディー(「DVD」)または他の光ディスク、及び他の書き込み可能なリードオンリーメモリ等の電子デバイスの助けにより読み取り可能なデータを記憶するコンピュータ読み取り可能な媒体、または他の媒体を含め、プロセサー108によりアクセス可能な情報を記憶するように動作する任意の種類の有形のメモリであり得る。システム及び方法は、前述の物の異なる組み合わせを含むことができ、命令及びデータの異なる部分が異なる種類の媒体に記憶される。
【0020】
図1は、それぞれが単一のブロック内に存在するものとしてプロセサー108及びメモリ110をそれぞれ機能的に表示しているが、プロセサー108とメモリ110は、実際には複数のプロセサーとメモリを備えておりこれらを同じ物理的ハウジング内に格納してもよく同じ物理的ハウジング内でなくてもよいと理解されるべきである。したがって、プロセサー、コンピュータ又はメモリに言及することは、並列に動作し得るまたはし得ないとにかかわらずプロセサーの一群、コンピュータの一群又はメモリの一群に言及することを含むと理解することができる。
【0021】
命令112は、直接的に(機械コード等の)又は間接的に(スクリプト等の)プロセサー108によって実行される任意の命令のセットであり得る。例えば、命令112は、持続的なコンピュータ読み取り可能な媒体にコンピュータコードとして記憶され得る。その点に関して、用語「命令」及び「プログラム」は、ここでは殆ど同じ意味で使われ得る。命令112は、プロセサー108により直接処理するためのオブジェクトコードフォーマットで、又はスクリプトもしくはリクエストに応じて解釈されもしくは前もってコンパイルされる独立ソースコードモジュールの一群を含む任意の他のコンピュータ言語で記憶され得る。命令の機能、方法及びルーティンは、以下により詳細に説明する(
図2−10を参照)。
【0022】
クライアントデバイス102の動作を容易にするために、命令112は、ブラウザー116を備えてもよい。ブラウザー116は、例えば、ページを取得するインターネット検索エンジンを提供するウェブブラウザー等の、クライアントデバイス102が検索操作を実行し検索結果を受け取るためのインタフェースを提供する。ブラウザー116は、ウェブ検索結果ページ118において検索クエリーに応答して受信される検索結果を表示する機能を持ち得る。ブラウザー116は、もしユーザがプリレンダされたページ122に関連付けられた巡航操作(navigation operation)を選択するなら、即時のナビゲーションを可能とするためにプリレンダされたページ122をプリレンダするよう動作し得る。ブラウザー116は、ブラウザー116により実行される表示と巡航操作に関連付けられる測定基準120を追跡することもできる。上記に説明したように、ブラウザー116により収集された任意の測定基準120は、ユーザのプライバシーと匿名性を保つために、匿名で所定の位置に保護された状態で維持される。上記に説明したように、ブラウザー116は、検索結果を受信しその検索結果をユーザに対し表示するのに適した任意のアプリケーションであってよい。ブラウザー116は、ブラウザタブ等の様々なインスタンスにおけるコンテンツの複数のセットを維持し得る。プリレンダリングは、ユーザから不可視のブラウザインスタンスにおけるプリレンダされたページ122を表示することにより、及び、プリレンダされたページ122に関連付けられた巡航操作を選択したときに不可視のブラウザインスタンスを可視のブラウザインスタンスに交換することにより、実行され得る。
【0023】
データ114は、命令に従ってプロセサー108により検索され、記憶され、修正され得る。例えば、アーキテクチャは、いかなる特定のデータ構造に限定されないが、データは、コンピュータ・レジスタ内に、複数の異なるフィールド並びにレコードを有するテーブル、拡張マークアップ言語(「XML」)ドキュメントもしくはフラットファイルとして、リレーショナル・データベース内に記憶され得る。このデータは、二進値もしくはユニコード等の、しかしこれらに限定されない、任意のコンピュータ読み取り可能なフォーマットにフォーマットされ得る。このデータは、番号、説明文、専用コード、同じメモリもしくは異なる複数メモリ(他のネットワークの場所を含む)の他の領域に記憶されたデータの参照又は関連のあるデータを算出する機能により使用される情報等の、関連のある情報であることを確認するに十分な任意の情報を備え得る。
【0024】
データ114は、上で説明したようにウェブ検索結果ページ118、測定基準120、及びプリレンダされたページ122を記憶することができる。ウェブ検索結果ページ118及びプリレンダされたページ122は、ブラウザー116に関連付けられたブラウザインスタンスに表示されたページとして記憶され得る。測定基準120は、局所的に記憶されることがあり、周期的にサーバー104に送信されることがあり、またはサーバー104で直接算出され記憶され得る。
【0025】
サーバー104は、クライアントデバイス102から提供される検索クエリーを用いて検索動作を実行するよう機能し得る。サーバー104は、クライアントデバイス102に提供される検索結果のウェブページ内に1つ又は複数のプリレンダタグを埋め込むこともできる。サーバー104は、複数の要因によりクライアントデバイス102に提供される検索結果内の候補となるリンクを特定することができる。例えば、サーバー104は、一連の検索結果の中でプリレンダリングに最も適切な候補として最も関連のあるリンクを見つけることができる。サーバー104は、プリレンダリング動作を改善するためにクライアントデバイス102により提供される測定基準120等の測定基準を集める機能をも有し得る。例えば、サーバー104は、プリレンダリング動作によりユ―ザが節約する時間、プリレンダリング動作のヒット率とミス率(例えば、プリレンダされた検索結果が検索結果のリストから選択される頻度)、又は他の様々な指標についての測定基準を受信することができる。
【0026】
サーバー104は、クライアントデバイス102と同様にメモリ126に接続するプロセサー124を有する構成となっている場合がある。メモリ126は、サーバー104の動作を容易にするために一連の命令128及びデータ130を備えることができる。命令128は、検索エンジン132と、プリレンダアプリケーション134とを含むことができる。検索エンジン132は、検索クエリーに応答してクライアント102に検索結果を提供するように動作する。例えば、検索エンジン132は、インターネット検索エンジンであってもよい。プリレンダアプリケーション134は、プリレンダリングの候補として検索エンジン132が生成した検索結果132から検索結果を定めるように動作する。プリレンダアプリケーション134は、埋め込まれた命令138を有する一連の検索結果を作り出すために検索結果136と共にプリレンダ命令を含む。検索結果136及び埋め込まれた命令を有する一連の検索結果138がデータ130に記憶されてもよい。クライアントデバイス102が受信するときに、クライアントデバイス102は、どの検索結果をプリレンダするかを決めるために埋め込まれた命令を処理する。
【0027】
プリレンダアプリケーション134は、1つ又は複数のHTMLタグをプリレンダ候補の検索結果に関連付けられたリンクに追加することにより、検索結果136内に命令を埋め込み得る。例えば、ウェブサイトの一例であるexample.comへのリンクに対するHTMLは、プリレンダアプリケーション134がウィキペディア(Wikipedia)に関連付けられた検索結果がプリレンダリングの良い候補であることを見つけたことに応えて、プリレンダアプリケーション134により、"<a href="http://www.example.com"> example </a>" から "<link rel="prerender" href="http://www. example.com"/> <a href=http://www.example.com> example </a>" へ修正され得る。
【0028】
クライアントデバイス102及びサーバー104は、それぞれネットワークの別個のノードであってもよく、直接的及び間接的にネットワーク106の他のノードと通信するように動作する。例えば、クライアントデバイス102は、ネットワーク106経由でサーバー104と通信するように動作する携帯電話機を備えても良い。
【0029】
クライアントデバイス102とサーバー104の間に介在するノード及びネットワーク106は、様々な構成を備えることができ、インターネット、ワールドワイドウェブ、イントラネット、仮想プライベート・ネットワーク、ローカルなイーサネットネットワーク、1つ又は複数の会社に独占的所有権がある通信プロトコルを用いたプライベート・ネットワーク、セルラー方式の無線ネットワーク(例えば、Wi−Fi)、インスタント・メッセージ、ハイパーテキスト転送プロトコル(「HTTP」)並びに簡易メール転送プロトコル(「SMTP」)、及び上述の様々な組み合わせを含む、様々なプロトコルを用いることができる。通常、システムは、複数の接続されたコンピュータを含み得ることを理解すべきである。例えば、サーバー104の機能は、検索エンジン132及びプリレンダアプリケーション134を接続制御する別個のノードにより複数のノードを越えて広がることができる。
【0030】
上述のように情報が送信され又は受信されるときに一定の利点が得られるが、このシステム及び方法の他の態様では、情報を伝達するいかなる特定の方法に限定されることはない。例えば、ある態様では、情報は、光ディスクまたは携帯ドライブ等の媒体により送信してもよい。他の態様では、情報は、非電子的なフォーマットで送信され、手作業でシステムに入力されてもよい。
【0031】
図2は、本開示の態様に従ってプリレンダリング命令を用いた検索結果ページ200の例を説明する図である。示された検索結果ページ200は、検索クエリー「テスト検索クエリー」に応答して受信された一連の検索結果を示す。プレーンテキストのクエリーが示されているが、検索は画像、ビデオ、または他の任意の情報源に基づく検索を含めて任意の適切な検索クエリーにより実行してもよい。検索結果ページ200は、1つ又は複数の検索結果202を含む。検索結果202のそれぞれはHTMLデータ204に関連付けられている。表示された検索結果202に対するこのHTMLデータ 204は、その検索結果202に「link rel='prerender’」なる表現(term)が埋め込まれていることを示し、これはHTMLデータ204に関連付けられた検索結果202が検索結果200を示すブラウザーによりプリレンダされるべきであることを示す。
【0032】
図3は、本開示の態様にしたがってウェブページをプリレンダリングするための例示的な方法300を表現するフローチャートである。方法300の態様は、ユーザがネットワークコンテンツを検索する前にそのネットワークコンテンツをリクエストすることにより、ネットワークコンテンツを読み込むための時間を最小にするように動作する。方法300は、ユーザによる検索対象になりそうであると判断されるウェブページをプリレンダリングすることにより、ユーザがウェブを閲覧を経験する際の時間遅れを防ぐために、クライアント102等のコンピュータのデバイスにより実行され得る。例えば、方法300は、ブラウザー116の要素により実行され得る。方法300の態様がクライアント102に対して表示される間に、方法300は、サーバー104、又は命令を受け入れるように設計されたハードウェア及び/またはソフトウェアを有するデバイスによっても実行され得る。方法300の例示的態様は、単一のナビゲーションイベントに関連付けられる単一のページのプリレンダリングに関連するが、方法300は、順次的な複数のページのプリレンダリングまたは複数の並行したプリレンダリングインスタンスの複数のページのプリレンダリング等の、1つ又は複数のナビゲーションイベントに関連付けられた複数のページをプリレンダリングすることにも広く適用可能である。
【0033】
段階302では、クライアント102は、ウェブブラウザー内の次のナビゲーションイベントを決定する。次のナビゲーションイベントは、検索結果ページ内にサーバー104により埋め込まれたプリレンダ命令により、定められ得る。例えば、検索エンジンは、最も関連のある結果に関連付けられる特定のリンクがウェブブラウザーによりプリレンダされるべきであることを示すために一連の検索結果内にタグを埋め込むことができる。ウェブページ内にプリレンダリングタグを埋め込む方法を以下に記載する(
図4、8−10を参照のこと)。
【0034】
段階304においては、クライアント102は、段階302で特定されたナビゲーションイベントに関連付けられるコンテンツをリクエストする。このリクエストは、ハイパーテキスト転送プロトコル(HTTP)GETリクエスト、ファイル転送プロトコル(FTP)リクエスト、又は当技術分野で知られている他の任意のネットワークデータ・アクセス・リクエストを備えてもよい。ウェブコンテンツの第1のセットは、HTTPGETリクエストに応えて提供されてもよく、HTTPGETリクエストがきっかけとなりウェブコンテンツの第1のセットを踏まえて追加のHTTPGETリクエストを導く。例えば、HTTPGETリクエストは、結果としてベースウェブページがウェブブラウザーに送信されることもあり得、これは追加のGETリクエストのように他のページを読み込む動作をトリガーし得る。ベースウェブページは、複数の埋め込まれた画像を有することができ、これらの画像は各画像に対してHTTPGETリクエストを用いてフェッチされ描画される。説明したようにプリレンダリングプロセスは、関連するスクリプトを含め、ウェブページ全部をリクエストしてもよく、そしてこれらのスクリプトを実行してもよい。リクエストに応じて、ナビゲーションイベントに関連付けられたウェブコンテンツは、ウェブブラウザーに送信される。例えば、サーバー104は、そのコンテンツをウェブブラウザーに送信しても良い。検索エンジンの例に戻り、埋め込まれたプリレンダタグを有するウェブページを受信すると、クライアント102は、検索エンジンにより特定された隠しブラウザインスタンスにおける一番上の検索結果に関連付けられるURLに関連付けられるウェブページをリクエストし、表示する。
【0035】
段階30
7では、クライアント102は、段階302において決定されたナビゲーションイベントに関連付けられたコンテンツを表示する。このコンテンツは、ユーザから隠されたウェブブラウザーの他のインスタンスにおいて表示されてもよい。例えば、このコンテンツは、他のプロセスにより、または隠しウェブブラウザータブにおいて表示されてもよい。いくつかの態様においては、クライアント102は、複数のナビゲーションイベントに関連付けられるコンテンツを表示してもよい。例えば、ナビゲーションイベントは、ナビゲーションイベントの起こる可能性の大きさに関連付けられてより高い又はより低い値をとる優先度値に関連付けられてもよい。このようなものとして、クライアント102は、クライアント102の性能に依存して最も起こる可能性の高い順に「n」個のイベントを表示してもよい(
図7参照)。
【0036】
いくつかの態様では、表示されたコンテンツは、リダイレクション動作を含んでもよい。リダイレクション動作の例としては、第1のページ、例えば、www.a.comを読み込む動作により、そのブラウザーが、www.b.com等の第2のページを読み込む場合がある。リダイレクションは、HTMLタグ、JAVAスクリプトナビゲーション・コマンド、または同様のものに応答して行われてもよい。プリレンダされたページがリダイレクション動作をリクエストした場合、上記のリダイレクション動作は、他のインスタンスで行われてもよい。
【0037】
いくつかの態様においては、第1のリダイレクション動作は、それに続くリダイレクションを引き起こしてもよい。例えば、www.a.comは、www.b.comを引き起こしてもよく、www.b.comは、www.c.comを引き起こしてもよい。このシステム及び方法の態様は、リダイレクション動作の履歴を記憶し、及び最初のページがプリレンダすると判断されたことに応じて、シリーズ内の最後のページをプリレンダすること等により、この事実を扱うことができる。いくつかの態様では、方法300は、最終結果のページ(すなわち、リダイレクション動作の最後におけるページ)が判明したときに中間のページをプリレンダしないで一連のシリーズの中で最後のページのみをプリレンダすることにより、リダイレクション動作を省くことができる。
【0038】
段階308において、クライアント102は、ユーザが段階302において特定の期間内に特定されたリンクを選択したかどうかを判定してもよい。例えば、方法300は、10秒、20秒、30秒、1分、5分、または他の任意のタイムフレームだけ待ってもよい。いくつかの態様においては、このタイムフレームは、ウェブブラウザーに関連付けられるオプションメニュー内で構成可能であってもよい。このタイムフレームは、サーバー104により指定されてもよい。例えば、サーバー104は、タグに関連付けられたコンテンツが廃棄される前に保存されるべき時間を示すタイムアウト値をプリレンダタグ内に埋め込んでもよい。もし、ユーザが、この期間内にリンクを選択した場合は、方法300は、段階312に進む。選択しなかった場合は、方法300は、段階310に進む。
【0039】
段階310において、クライアント102は、プリレンダされたコンテンツを破棄する。プリレンダ動作に関連付けられたシステム資源を解放し、古いデータがユーザに提示されることを防止するために、プリレンダされたコンテンツは、このようにして有効期限が切れるようにされる。いくつかの態様では、異なる種類のデータに対しては異なる有効期限が指定され得る。例えば、ニュース速報記事、株価情報、配信フィード、などのすぐに変化しそうなデータはすぐに古くなる可能性がより高く、10秒、20秒、または1分などのより短い有効期限タイマーに関連付けられることもある。参考記事、アーカイブ、成績データ(box scores)等の変化する可能性の低いデータは、1時間、6時間、24時間、1週間等のより長い有効期限タイマーに関連付けられてもよい。いくつかの態様では、待ち時間は、ページの種類に基づく。例えば、もしユーザが長いニュース記事を見ているなら、次のページを選択する前に記事の現在のページを読む時間をユーザに与えるために記事の次のページをプリレンダリングする時に、より長い待ち時間が特定され得る。いくつかの態様では、待ち時間は、ページ内に埋め込まれた生存期間(time−to−live(TTL))パラメータにより決定される。いくつかの態様では、待ち時間は、ブラウザー内でハードコードされている。プリレンダされたコンテンツが廃棄された後に方法300は終了するが、いくつかの態様では、ユーザがウェブコンテンツを閲覧する時に方法300を無制限に繰り返してもよい。
【0040】
段階312においては、クライアント102は、段階302において決定されたナビゲーションイベントをユーザが選択するのに応えて交換によりプリレンダされたコンテンツを含む他のインスタンスを現在のユーザインスタンスに入れる。このようにして、クライアント102は、ナビゲーションイベントに関連付けられたコンテンツを、データがリクエストされホストサーバーから受信するまでの間の遅れ時間なしに直ちに表示する。検索結果の例に戻ると、もしユーザが最も関連のある結果を選択するなら、その関連付けられたページは、他のインスタンスにおいて既に読み込まれており、したがって、ユーザがリンクをクリックすれば直ちに利用可能となる。いくつかの態様においては、ユーザは、プリレンダリング動作の完了に先立ってナビゲーションイベントを選択してもよい。このようなケースでは、部分的に読み込まれたページは、現在のユーザインスタンスに置き換えられる。そして、部分的に読み込まれたページは、現在のユーザインスタンスに読み込みが通常通り続く。そして方法300は、プリレンダされたコンテンツがユーザに利用可能となるようにした後に終了する。
【0041】
図4は、プリレンダすべきナビゲーションイベンを示す例示的方法400を記述するフローチャートである。ある態様では、サーバー104等のコンテンツをホストするサーバーは、ウェブブラウザーがプリレンダするナビゲーションイベントを指定することができる。サーバーがプリレンダされた1つ又は複数のリンクを特定することができることは、サーバーがどのナビゲーションイベントが最もありそうであるかについての最も良い情報を有している、又はサーバーが読み込みのバランスをとる動作等のために個々のホストされるリンクに関連付けられる帯域を管理することを望む等の多くの理由により、最適であり得る。したがって、サーバー104は、クライアント102のプリレンダモジュール210にどのコンテンツに表示すべきかを指示する、プリレンダタグ又はタグをホストされるページ内に埋め込んでもよい。
【0042】
段階402においては、サーバー104は、ホストされるウェブページ内の1つ又は複数のリンクを特定する。例えば、サーバー104は、クライアント102からのクエリーに応答してウェブサイトのリストを生成する。各検索結果は、そのクエリーに応答して提供されるページの特定のリンクに関連付けられていてもよい。
【0043】
段階404において、サーバー104は、段階402で特定されたリンクから選ばれる、プリレンダすべき1つ又は複数のリンクを選択する。プリレンダのリンクは、様々な目的に対して、ユーザのナビゲーション履歴、総計のナビゲーション履歴、最も関連のあるリンク等を確認することによる等の様々な方法で選択されてもよい。いくつかの態様では、リンクは、個々のクエリーに応答して最も頻繁にクリックされるリンクを分析する検索エンジンにより選択される。例えば、検索エンジンは、個々のクエリーに応答してどのリンクがクリックされるかを示す「クリックスルー」データを収集し、個々のリンクが選択される頻度に基づいてプリレンダすべき1つ又は複数のリンクを選択してもよい。検索エンジンの例を継続するために、サーバー104は、一番上の検索結果、又は一番上から「n」個の検索結果をプリレンダすべき最適リンクとして特定してもよい。いくつかの態様では、サーバー104は、さらにプリレンダすべき最適なリンクはランク番号1とし、その次に適当なリンクをランク番号2とし、以下同様にランク付けすることにより、プリレンダすべきリンクのランキングを特定してもよい。サーバー104は、ランクではなく、リンクのそれぞれが選択される可能性を特定してもよい。例えば、サーバー104は、特定のリンクがユーザにより選択される可能性が50%、25%、又は80%であることを示してもよい。クライアントにより実行されるプリレンダ動作が、例えば、可能性が少なくとも50%以上、少なくとも80%以上、または他の閾値、等の可能性の閾値に関連付けられるリンクをプリレンダすることを選択してもよい。
【0044】
段階406においては、サーバー104は、1つ又は複数のプリレンダタグに段階404で特定される1つ又は複数のリンクを埋め込む。例えば、サーバー104は、最適なリンク又はプリレンダすべきリンクを特定するためのハイパーテキスト・マークアップ言語(HTML)タグを含んでもよい。上記のように、プリレンダタグは、プリレンダを保つ時間を指定するTTL値およびランキング値を含んでもよい。検索エンジンの例を続けると、サーバー104は、検索結果の関連性の程度によりその結果のプリレンダする順序をランク付けするとともに、プリレンダタグを有する検索結果のそれぞれを特定してもよい。
【0045】
段階408では、プリレンダタグが埋め込まれたページがページをリクエストしたクライアントに送信される。そして、方法400は、ページを送信した後に終了する。
【0046】
図5は、本開示の態様に従ってプリレンダ動作の間にウェブ・インプレッション統計を管理する方法500の例を説明するフローチャートである。ウェブサイトは、多くの場合、何のコンテンツが閲覧されるか、どのページがアクセスされるか、これらのページがどんな順序でアクセスされるか、そしてそれぞれのページにどれだけの時間が費やされるかについて追跡する。このようなデータの保存及び解析は、「ウェブサイト分析」と広く呼ばれている。これらの統計は、サイト運営者により様々な目的で使用され得るデータを提供する。例えば、このデータの使用例の1つとしては、このコンテンツとともに表示される広告の比率を計算することがある。しかし、いくつかの例では、ユーザは、プリレンダされたコンテンツに関連付けられたナビゲーションイベントを選択しないこともある。したがってデータの収集に支障を来たし得る。例えば、所与のページがユーザに送信される回数によりユーザのインプレッションを追跡する伝統的モデルは、もはや正確な結果をもたらさないことがある。なぜならユーザはコンテンツが毎回送信されるたびに閲覧するわけではないことがことがあるからである。したがって、サーバー104等のサーバーは、プリレンダされたコンテンツを考慮に入れたインプレッションを正確に追跡する方法を提供し得る。このような方法の1つを以下に説明する。この方法の特定の実施例が、広告のコンテンツのインプレッションの統計を管理することに関して提供され得るが、本方法の態様は、プリレンダのリクエストに応答して提供されるページに対して正確なウェブサイト分析を確実にするのに広く適用できることが理解されるべきである。
【0047】
段階502においては、サーバー104は、クライアント102等のコンピュータのデバイスからプリレンダのリクエストを受信する。いくつかの態様においては、このコンテンツリクエストはコンテンツリクエストとともに送信されるJAVAスクリプトAPIを介してプリレンダ動作のためのものであることをクライアント102が示すこと等により、プリレンダのリクエストは、スクリプトのアプリケーション・プログラミング・インタフェース(API)を用いて特定されてもよい。プリレンダリクエストには、そのリクエストがプリレンダリクエストであることを示す、修正HTTPヘッダーが添付されても良い。いくつかの態様では、サーバー104は、サーバー104上で実行するアプリケーションを用いてイベント通知の登録をすること等により、APIにより提供されるように、クライアント102からイベント通知を受信するように構成される。いくつかの態様では、サーバー104は、サーバーが帯域制限されており、またはそうでなくてもプリレンダリングを許したくない等の場合にプリレンダリクエストに応答してコンテンツを送信しない選択もできる。このようにしてプリレンダリクエストの通知を提供することにより、サーバー104は、プリレンダリクエストを処理することを「見合わせる」ことができる。例えば、サーバー104は、帯域制限されているかも知れずしたがって、プリレンダされていないコンテンツをホストすることに集中する必要があることがある。いくつかの態様では、サーバー104は、検索結果のリストに示されるように検索エンジンによるコンテンツのプリレンダリングを防ぐために、そのようなものであることを示すHTMLメタタグを含めることにより、又は、サーバー上にホストされる「robots.txt」ファイルに記入することにより、処理することを「見合わせる」(opt−out)こともあり得る。
【0048】
段階504では、サーバー104は、ある改訂済みのコンテンツと共に一部分のウェブページを送ってもよい。多くの例では広告インプレッションは、広告画像が送信される回数に基づいて決定されるのであるから、例えば、サーバー104は、プリレンダリクエストに応答して広告コンテンツに関連付けられる画像を提供しなくてもよい。同様の方法がスクリプト又は実行可能なコンテンツ等の他の方法で提供される広告に適用してもよい。一例として、サーバー104は、ベースウェブページを提供することによりプリレンダリクエストに応答してもよい可能性がある。ベースウェブページの結果として、クライアント102は、ベースウェブページにより特定されるコンテンツに対する1つ又は複数の追加のHTTPGETリクエストを開始してもよい。サーバー104は、ベースウェブページ内で特定される広告画像に対するHTTPGETリクエストに応答してコンテンツを送信しないという選択をしてもよい。
【0049】
いくつかの態様では、コンテンツの改訂されたバージョンは、コンテンツが改訂されていることを受信するコンピュータのデバイスに示す、改訂された画像、スクリプト等に関連付けられた特定のHTTPエラーコードを含んでもよい。このようにして、クライアント102は、あるコンテンツが利用できないことではなく、そのコンテンツが改訂されており後に提供される予定であることが知らされる。したがって、クライアント102は、アクセスした後そのコンテンツを読み込む間に特定の図又は一時的な表示とともに改訂されたコンテンツを示すことを選択してもよく、又は改訂されたコンテンツが白紙に見えるようにしてもよい。
【0050】
いくつかの場合には、クライアント102は、ディスプレイ改訂されたコンテンツをどのように正しく表示するかを知らなくてもよく、この場合は、クライアント102はプリレンダ動作を途中停止してもよい。さらに、ユーザがコンテンツにアクセスする時に、クライアント102は、プリレンダされたページが閲覧されたことをサーバー104に通知してもよい。これに応答して、サーバー104は、その改訂されたコンテンツをクライアント102に送信してもよい。
【0051】
段階506では、サーバー104は、そのコンテンツのプリレンダがユーザにより閲覧されたことの確認を受信する。上記のように、ウェブブラウザーを通して提供されたAPIにより、サーバー104にコンテンツの閲覧の通知がされてもよい。例えば、スクリプトは、イベント通知をサーバー104に通信してもよい。もし、サーバー104がこのようなイベント通知に対して登録されているなら、サーバー104は改訂されたコンテンツをクライアント102に送信する等の適切な動きを取ってもよい。プリレンダコンテンツが閲覧されたことをサーバー104に知らせることにより、サーバー104は、いかなる改訂されたコンテンツを送信し、いかなる広告に関連付けられるインプレッションの統計を更新するべきことに気づく。
【0052】
段階508では、サーバー104は、段階504で改訂されたコンテンツを送信する。サーバー104は、ユーザがそのコンテンツにアクセスしたことを確認にしたので、コンテンツは今や送信される。例えば、サーバー104は広告スクリプトのコード、又はこれらに類するものに関連付けられた画像を送信してもよい。
【0053】
段階510では、サーバー104は、段階508で送信されたコンテンツに関連付けられたインプレッションの統計を更新する。いくつかの態様では、画像をホストし/広告を送るという動作が自動的にページのインプレッションの統計を更新するので、段階508及び段階510が同時に生じる。このようにして、サーバー104は、ウェブサイトの分析データの正確な報告を維持する一方、クライアント102がプリレンダ動作を実行することも可能となる。
【0054】
図6は、本開示の態様にしたがってプリレンダ動作を管理する方法600の例を説明するフローチャートである。最適なプリレンダリング経験を提供するため、クライアント102は、閲覧経験に影響し得る異なる要因を構成することができる。例えば、ウェブページは、一般にウェブブラウザーを介して様々なページのサービスを提供するためにクッキーとして知られる小さいファイルを使用する。例えば、そのページに登録することなしにユーザが1日に1つのニュース記事にアクセスすることを可能とするために、新しいサイトは、トラッキングクッキー(trackingクッキー)を使用してもよい。ユーザはユーザが読むことを意図していない記事をプリレンダするかもしれないから、このニュースサイトに関連付けられたプリレンダ動作は、ユーザの閲覧経験を妨げることもあり得、したがってユーザが閲覧しなかったページ上で1日に1つの無料記事を費やしてしまうことになる。
【0055】
いくつかのウェブページは、ページが読み込まれるとすぐに再生が始まる埋め込まれた視聴覚コンテンツを有する。いくつかの実施例では、ここで説明するプリレンダ方法とシステムは、このようなコンテンツがユーザがそのコンテンツをナビゲートする前に再生を始めることを可能とすることができ、したがってユーザがページを閲覧始めるときに、コンテンツはすでに再生している。いくつかのウェブページは、ポップアップページ、スクリプトプログラム、ダウンロードしたもの、認証プロンプト、翻訳バー(Tranlation bars)、及びこれらと同様のもの等のプリレンダリングに適していないかもしれない追加のコンテンツを含んでもよい。したがって、プリレンダモジュール210は、これらの特別なケースを管理するために方法600等の方法を使用してもよい。
【0056】
段階602では、クライアント102は、プリレンダコンテンツをリクエストしサーバー104等のサーバーからそれを受信する。上記のように、このリクエストは、このリクエストがプリレンダリクエストである旨をサーバーに示すAPI呼び出しの中に存在してもよく、又はAPI呼び出しを伴っていてもよい。このページは、サーバーから受信される応答に基づいてプリレンダされる。プリレンダリングプロセスの間、クライアント102は、以下に説明するようにいくつかの特定のケースについて監視する。特定の順序で提示されているが、例えばクッキー状態の変化を経験する前に、埋め込みビデオ映像を特定する等によってこれらのケースは任意の順序で遭遇し得る。
【0057】
段階604では、クライアント102は、リクエストされたプリレンダコンテンツがクッキー状態の変化または他の特別なケースを含むかどうかを判定する。例えば、もし、ユーザが銀行のウェブページにアクセスしているなら、もし、口座のページがプリレンダされるなら、そしてユーザが自分の口座からログアウトするなら、プリレンダリンクを選択することがあたかもユーザがまだログインしているように誤ってデータを報告する。したがって、プリレンダは、ユーザがログアウトするとすぐに無効になる。したがって、クライアント102は、プリレンダコンテンツに関連付けられる任意のクッキーの状態を監視し、適切な処置を行う。適切な処置とは、クッキー状態の変化を適切に伝えること、クッキー状態の変化を無視しプリレンダ動作を継続すること、又はプリレンダ動作を諦めて途中停止することを試みることを含んでよい。さらにクライアント102は、そのプリレンダコンテンツが、ポップアップページ、スクリプトされたアプリケーション、ダウンロード、認証メニュー、又は翻訳バー等の特別なケースを含むかどうかを判定する。もし、クッキー状態の変化が起こったか、プリレンダページが特別なケースを含む場合には、本方法は、段階608に進む。そうでない場合には、方法600は、段階606を継続する。
【0058】
段階608では、クライアント102は、プリレンダ動作を途中停止する。クッキー状態の変化又は段階604において特定された特別なケースによりデータをプリレンダされた古いページあるいはそうでなくてもユーザに見えないページに関連付けるため、クライアント102はプリレンダ動作を途中停止し得る。いくつかの態様では、クライアント102は、クッキー状態の変化を無視してもよい。その時に、方法600は、終了する。
【0059】
クッキーデータを管理する他の方法として、クライアント102は、プリレンダされたコンテンツに関連付けられた任意のクッキー状態の変化を追跡してもよく、プリレンダされたコンテンツがユーザによりアクセスされた時にその状態の変化を適用してもよい。いくつかの態様において、クライアント102は、クッキー状態の変化における衝突をモニターし衝突の場合にはプリレンダリング動作を途中停止してもよい。例えば、クッキー状態の変化は、プリレンダ動作が完了した後に起こり得るので、衝突の原因となる。このような場合、プリレンダされたバージョンのページは間違ったページデータをユーザに提示することを避けるために廃棄され得る。
【0060】
段階606では、もし、プリレンダコンテンツが、特別なケースを含まずクッキー状態の変化がなかった場合は、クライアント102は、そのページ上にオーディオ又はビデオ等のマルチメディアコンテンツが存在するかどうかを判定する。例えば、そのページが、ADOBEFLASH、HTML5メディア、または他の種類の埋め込まれたメディアによりプログラムされた埋め込みビデオ映像を含んでも良い。このような状況では、ユーザが現実にそのページをナビゲートするまでは、そのマルチメディアを中断することが望ましいかも知れず、したがって帯域を節約しユーザがマルチメディア・ファイル全体を閲覧することを確実にする。もし、ページが埋め込まれたマルチメディアを含むなら、方法600は、段階612に進む。そうでない場合は、方法600は、段階610に進む。
【0061】
段階610では、クライアント102は、そのコンテンツがマルチメディアコンテンツ、クッキー状態の変化、特別なケースのいずれも含まないことを判定し、したがってクライアント102は、そのページをプリレンダする。このプリレンダリングプロセスは、サーバー104からのページを受信し、ユーザから隠されたアプリケーションインスタンスにおいてページを表示することにより実行され得る。ページを表示することは、一般に、サーバー104から受信した全てのデータを読み込みことに関係し、隠されていないアプリケーションインスタンスにページを閲覧するとした場合において実行されるから、その中に含まれる任意の命令を実行することに関係している。
【0062】
段階612では、クライアント102は、すでにそのコンテンツがマルチメディアコンテンツを含むと判定している。したがってクライアント102は、そのページのマルチメディアコンテンツ以外のコンテンツをプリレンダし、そしてそのマルチメディアコンテンツの再生を中断する、又はそのコンテンツに関連するプラグインのインスタンス化を延期してもよい。例えば、クライアント102は、ページの残りをプリレンダリングした後に埋め込まれたオーディオ又はビデオファイルを中断してもよく、あるいはプリレンダコンテンツがユーザに示されるまでフラッシュビデオ(FLASHvideo)が実行しなくてもよい。
【0063】
段階614では、クライアント102は、ユーザがプリレンダされたコンテンツにアクセスしたかどうかを判定する。もし、ユーザがプリレンダされたコンテンツにアクセスしたなら、コンテンツは、上に説明したように表示され、方法600は、段階616に進む。もし、ユーザがプリレンダされたコンテンツにアクセスしていないなら、例えば、もし
図3に関してすでに説明したようにプリレンダ時間の有効期間が過ぎたならば、方法600はその時終了する。
【0064】
段階616では、クライアント102は、ユーザがプリレンダされたコンテンツにアクセスしたという通知をサーバー104に送信する。上記のように、この通知は、サーバーがそこからイベント通知を受信するように構成されるスクリプトされたAPIを用いて送信されてもよい。このようにして通知を提供することにより、サーバーによるウェブサイト・インプレッションの管理が可能となる(
図5参照)。
【0065】
図7は、本開示の態様に従ってプリレンダ動作を構成する例示的方法700を示すフローチャートである。異なるコンピュータのデバイスは、ネットワーク帯域、システムメモリ、及びプロセサー速度等の異なる能力を有していてもよい。このように、様々なデバイスが異なるプリレンダ動作をサポート可能であってもよい。より大きな能力を有するデバイスは、複数のプリレンダ動作、又はより複雑なページのプリレンダリングをサポートする能力を有してもよい。したがって、方法700は、このシステムの能力に基づいてこれらのプリレンダ動作の構成を提供する。
【0066】
段階702では、クライアント102は、システム能力の測定を実施する。例えば、クライアント102は、空いているシステムメモリの量をオペレーティングシステムに問い合わせてもよく、クライアント102は、BIOS(basic input−output system)からプロセサー速度を要求してもよく、あるいはクライアント102は、空いている帯域を見つけるためにネットワーク速度テストを実施してもよい。
【0067】
段階704では、クライアント102は、段階702で決定されるようにその能力に基づいてプリレンダの最大の個数「n」を決定する。いくつかの態様では、クライアント102は、単一のプリレンダ・インスタンスをサポートするための一連のシステム要件を決定してもよい。例えば、単一のプリレンダ・インスタンスは、10%のプロセサー利用率、16メガバイトのシステムメモリ、少なくとも10キロバイト/秒のネットワーク帯域、又は同様の仕様を要件としてもよい。このシステム要件は、最小のメモリ要件、プロセサー利用率、及びネットワーク帯域のそれぞれ等の異なるシステムコンポーネンに対応付けられた複数の能力を含んでも良い。これらのシステム要件は、クライアント102上で実行する単一のプリレンダ・インスタンスのシステム利用率を測定することにより決定してもよい。
【0068】
例えば、クライアント102は、プリレンダ動作のそれぞれがプリレンダリングの間にシステムプロセサーを必要としそうであるかを判断しても良い。このようなプロセサーの仕様は、ページ最初に読み込まれるときにプロセサー全体が必要となり、その後はプロセサーの必要性が減少するという意味において「バースト性」があるといわれる。このような場合、クライアント102は、ページのプリレンダリングがユーザの閲覧経験に影響を与えないことを確かにするためにプリレンダ・インスタンスに低いプロセサー優先順位を割り当ててもよい。いくつかの態様では、クライアント102は、複数のプリレンダ・インスタンスを決定するためにシステムメモリを監視してもよい。クライアント102は、プリレンダ・インスタンスにより使用されるメモリの量を決定し、その後にその量と利用可能な全メモリ容量とを比較してもよい。ある態様では、クライアント102は、プリレンダリングのためのシステムメモリの特定の量を予約し、予約されたメモリが一杯になるまでプリレンダ・インスタンスを生成してもよい。いくつかの態様では、利用可能な帯域のパーセンテージに基づいて、システムの最大のネットワーク帯域が決定され、そしてプリレンダ・インスタンスが生成される。いくつかの態様では、クライアント102は、局所的な最大帯域を確認するために帯域測定をリモートサーバーから要求してもよく、プリレンダの設定を決定するためにその測定値を使用してもよい。
【0069】
段階706では、クライアント102は、段階704にて決定されるようにシステム能力がサポートできる限りできるだけ多くの同時のプリレンダを実行するように構成される。いくつかのインスタンスにおいては、プリレンダの数はオプションメニュー等においてユーザにより構成可能であってもよい。
【0070】
図8は、本開示の態様に従って検索結果ページ内に埋め込まれたプリレンダ命令を処理する例示的方法800を説明するフローチャートである。上記したように、サーバー104は、クライアント102により処理するための検索結果ページ内にプリレンダ命令を埋め込んでもよい。クライアント102は、プリレンダリングのためのリンクを選択するために検索結果ページに埋め込まれたプリレンダ命令を特定してもよい。
【0071】
段階802では、検索クエリーはサーバー104に送信される。上記したように、検索クエリーは、テキスト文字列、ファイル、画像、ビデオ、又は受信する検索結果の期待に沿ってコンテンツを特定する他の任意の方法であってよい。
【0072】
段階804では、検索結果が受信される。検索結果は、段階802にて送信された検索クエリーに応答するものである。この検索結果は、上記したように(
図2参照)関連性の高低でソートされた一連のテキストリンクとしてユーザに提示されてもよい。
【0073】
段階806では、プリレンダ命令は、段階804で受信される検索結果に関連付けて特定される。例えば、プリレンダ命令は各結果に関連付けたHTMLタグに含まれていても良く、又はプリレンダ命令は、AJAX又は他のメッセージング・プロトコル等の他の手段によりクライアント102に送信されてもよい。例えば、プリレンダタグは、メッセージング・プロトコルにより受信されるプリレンダ命令に基づいて検索結果ページ上のHTMLタグの中へクライアントにより動的に挿入されてもよい。プリレンダ命令は複数のリンクをプリレンダ候補として特定してもよい。複数のプリレンダ候補が特定された場合、最も高いランキングの結果がクライアントによりプリレンダされるように、プリレンダ命令は、さらにプリレンダ候補のランキングを特定してもよい。クライアント102は、プリレンダ命令及びクライアントの利用可能なシステムリソース(
図7参照)に基づいて、プリレンダすべき特定の数「n」個のリンクを特定してもよい。段階808では、段階806で特定されたプリレンダ命令に関連付けられたページがプリレンダされる。クライアント102は、プリレンダリングを実行するかどうかを決定するときに他のデータに気づいていてもよい。例えば、クライアント102は、ユーザがリンクを選択し、その後ウェブブラウザーにおける「戻る」ボタンを押したことを知っていても良い。従って、ユーザは、いったん離れた検索結果と同じ結果を選択することはありそうもない。従って、クライアント102はクライアント102がたった今離れた検索結果の代わりに、次に最も可能性が高いプリレンダ候補の検索結果をプリレンダしてもよい。
【0074】
段階810では、選択操作は、検索結果の1つに関して実行される。選択操作は、リンククライアント102によりプリレンダされたリンク上に存在する必要は必ずしもない。例えば、ユーザは、プリレンダ命令により特定されるリンク以外のリンクを選択してもよい。ユーザは、検索クエリーに応答して提供される結果は、様々な主題に関連し得て、そしてユーザは、常に最も普通に選択される検索結果を閲覧することを望むとは限らないので、様々な理由によりプリレンダされていないリンクを選択することを望み得る。
【0075】
段階812では、測定基準が検索結果の選択に関連して記憶される。これらの測定基準によりブラウザーがプリレンダ動作の正確性を特定するデータを追跡することが可能となる。例えば、最適の環境では、ユーザは常にプリレンダ命令に関連付けられたリンクを選択する。ユーザがプリレンダされたリンクを選択したかどうかに関係する測定基準を収集することにより、システムは、プリレンダされたコンテンツの選択を最大化する一方、ユーザがプリレンダされたコンテンツを選択しそうにないプリレンダリングを最小化するという点に関してプリレンダリングの基準が適切かどうか判断してもよい。予測ミスとなったプリレンダ動作は、コンテンツがリクエストされるがアクセスされないという結果となる。このことは、帯域及び処理能力の浪費をもたらす。しかし、ユーザの利益を最大にし、首尾一貫したユーザの経験を提供するために、プリレンダリングは、実際上できるだけ多くの検索結果に用いられてもよい。記憶された測定基準は、解析又は処理のためにサーバー104へ送信されてもよく、あるいは測定基準は、ローカルクライアントに記憶され定期的にアップロードされてもよい。このようにして記憶された測定基準データは、アップロードする前にパーソナルユーザデータが削除され匿名化される。プリレンダ動作に関連する測定基準を保存する方法が以下にさらに記載される(
図10参照)。
【0076】
図9は、本開示の態様に従って検索結果ページ内にプリレンダ命令を埋め込む方法900の例を示すフローチャートである。方法900は、サーバー104等の上で検索エンジンにより提供される一連の検索結果において、プリレンダ命令の1つ又は複数のセットを含むように動作する。ユーザに選択されそうな検索結果は、様々の要因を用いて一連の検索結果から特定され、プリレンダ命令を用いて選択されそうなプリレンダ候補として示される。これらの検索結果は、クライアントから受信された検索クエリーに応答してプリレンダ命令と共にクライアントに提供されてもよい。
【0077】
段階902では、検索クエリーが受信される。検索クエリーは、テキスト文字列、画像、又はビデオ等の検索動作を構成するのに十分な任意の基準を含んでもよい。検索エンジンは、検索クエリー関連のある1つ又は複数の結果を特定してもよい。これらの結果は、関連のあるコンテンツを含むページへのハイパーリンク、リンクされたページのコンテンツの主な説明、又は検索クエリーに応答して普通に提供される任意の他のデータを含んでもよい。
【0078】
段階904では、プリレンダ候補は、検索結果の中で決定される。プリレンダ候補は、検索クエリーに対する各結果の関連性(例えば、より多くの関連のある結果はプリレンダ候補となる可能性がより高い)に基づいて、又はクエリーに応答してユーザが通常選択するリンクの統計データに基づいて、又は他の基準により決定されてもよい。検索エンジンは、検索結果に向かうトラフィックの量、検索結果のホストがプリレンダリングをやめているかどうか、又は検索結果に関連付けられるコンテンツの量(例えば、検索結果ページのファイルサイズ、又は検索結果ページ及びリンクされたコンテンツに記憶されるデータの量)等のウェブ分析データに基づいてプリレンダ候補としてのリンクを特定してもよい。検索結果が経験するトラフィックの量は、検索エンジンにより検索結果が提供されるときにユーザが選択する検索結果の数に基づいて決定されてもよいいくつかの態様では、サーバーは、クライアントのネットワーク接続速度を知っていても良く、クライアント接続速度に基づいてプリレンダするリンクの適切な数を示しても良い。
【0079】
プリレンダ候補は、1つ又は複数の要因又は信号を用いて決定されてもよい。これらは、検索クエリーの関連性、プリレンダ候補に含められるときにユーザが選択する周波数、検索結果に関連付けられるトラフィックの量、ユーザの位置、ユーザの接続速度、検索結果がプリレンダプロセスを止めているかどうか、及び検索結果に関連付けられるウェブページのサイズを含み得るがこれに限定されるわけではない。これらの要因又は信号は、重み付けがなされ、点数を生成するのに使用されてもよく、最も高い点数に関連付けられる結果がプリレンダ候補として特定され、プリレンダ命令と関連付けられても良い。特定の閾値より高い点数を有する全ての検索結果がプリレンダ候補として特定されてもよく、所定の数の検索結果のみがプリレンダ候補として特定されてもよい。
【0080】
段階906では、例えばプリレンダHTMLタグを適切な検索結果に付加する等により、プリレンダ命令が検索結果ページ内に埋め込まれる。段階908では、プリレンダ命令が埋め込まれたこれらの結果がクライアント102に提供される。
【0081】
図10は、本開示の態様に従ってプリレンダ測定基準を取得する方法1000の例を示すフローチャートである。リンクがプリレンダされたが選択されないという「誤判定」を最小にする一方、正確性を最大とすることを確実にするために、プリレンダリング動作の測定基準を取得することで、サーバー104の制御装置がどのようにしてリンクをプリレンダ候補として特定するかを管理することが可能となる。正確なデータを収集してプリレンダリング性能を校正するために、データは、データ収集プロセスにつきオプトイン契約をしたクライアントにより提供されてもよい。すべての保存されたユーザデータと同様に、保存された測定基準からパーソナルユーザデータを除去して匿名にするために適切な事前注意が払われる。測定基準データを提出するユーザは2つのグループ、すなわちプリレンダタグを受信するが現実にはそれらをプリレンダしない「抑制」グループと、プリレンダ動作を現実に実行する「テスト」グループとに分かれてもよい。
【0082】
予測ミスとなった選択は、検索結果をホストするページのための、及びクライアントがプリレンダリングを実行するためのシステムリソースを無駄遣いする結果となる。しかし、一貫したユーザの利益及び最適なユーザの経験を提供するに充分なほど対象範囲は広くすべきでもある。ブラウザーは、プリレンダされたページがいつ可視のブラウザインスタンスの中に交換して入れられたかを知ることができ、よってスワップインが起きた時刻とページが完全に読み込まれる時刻との間の時間を記録することが可能である。この値は、プリレンダ動作によりどれだけの時間が節約できたかを示す。
【0083】
抑制グループは、検索結果の選択と、選択された結果のブラウザーにおける表示との間の時間の大きさを追跡する基準を提供する。この結果は、プリレンダリング動作を実行するユーザーの全体としての利益を判定するためにプリレンダされたページがブラウザーにおいて表示されるのに要した時間の大きさと比較してもよい。様々なリンクに対してプリレンダリング動作を可能とすることにより節約される時間を決定することにより、最適な時間を節約するリンクがプリレンダリングにより選択されてもよい。「誤判定」または他の準最適なプリレンダ性能を頻繁に生じるリンクは、特にプリレンダリングのための悪い候補としてみなしても良い。このようにして、方法1000は、最大の正確性と対象範囲を確実にするプリレンダリング動作を微調整するのに使用され得る測定基準を提供する。
【0084】
段階1002では、クライアント102は、これらの検索結果に関連付けられた一連のプリレンダ命令とともに一連の検索結果を受信する。もし、クライアント102が「テスト」クライアントである場合は、そのプリレンダ命令に関連付けられた検索結果は、隠されたブラウザインスタンスにおいてプリレンダされてもよい。もし、クライアントが「抑制」クライアントである場合は、その検索結果は、プリレンダされなくてもよい。「テスト」クライアントは、さらにサブグループに分割されてもよい。例えば、テストクライアントのそれぞれが、1番から9番までのサブグループに含まれていても良い。これらのサブグループは、各プリレンダ技術に関連する性能上の利点を判定するために異なるプリレンダ技術(例えば、異なる検索結果選択方法、プリレンダリングのための異なる閾値)を採用しても良い。「リンクプリレンダ実験」(LPE)という用語が検索結果ページのアドレスに追加する等により、特定のテスト識別子が検索結果ページのアドレスにおけるクライアントに特定されてもよい。LPEなる用語は、提供された検索結果に関連付けられた特定のプリレンダ実験に対して1から9等の値と関連付けられても良い。クライアントはプリレンダプロセスを改善するために測定基準を記憶する時に、LPEという用語を追跡してもよい。
【0085】
段階1004では、ユーザのクライアントとの意思疎通は、マウスクリック、タッチスクリーンイベント、又は特定の結果についてキーボードを押すこと等により特定の検索結果の選択について監視される。
【0086】
段階1006では、選択された結果に関連付けられる任意のリダイレクション識別子が特定される。検索エンジンは、検索結果を表示する時に頻繁にリダイレクションを使用する。検索結果ページ内のハイパーリンクは、検索エンジンのリダイレクトページにリンクしていてもよく、プリレンダされる実際のコンテンツを指し示す。リダイレクション動作を伴うページが「抑制」クライアントを用いて選択されるときに、方法は、リダイレクションページがリダイレクトする結果の代わりの結果として、リダイレクションページを特定してもよい。測定基準が、適切に、リダイレクションページではなく実際の宛先ページの読み込み時間に関係することを確実にするために、そのリダイレクションページの目標アドレスはプリレンダ命令内に指定されてもよい。このようにして、クライアントは、このようなリダイレクションが検索結果ページ上で起きる時を「知る」ことができ、したがってプリレンダされたであろう検索結果におけるアドレスの記録を維持でき、したがって実際の宛先ページの読み込み時間を正しく記録できる。
【0087】
テスト・クライアントが実験の目的のために複数のサブグループに分割される場合、リダイレクション識別子は、実験の結果を追跡するために使用され得る。例えば、一連の検索結果は、所与の一連のプリレンダ命令と所与のテスト識別子(例えば、プリレンダすべきリンクを選択する特定のアルゴリズムを特定する)に関連付けられていてもよい。ユーザが提示されたリンクの1つを選択する時に、その選択されたリンクに関連付けられるリダイレクションリンクは、実験サブグループ(例えば、1から9)、その選択されたリンク、検索クエリー、及びその選択されたリンクがプリレンダされたかどうかをを示してもよい。
【0088】
段階1008では、選択された結果のページの読み込み時間が測定される。この読み込み時間は、ユーザが検索結果を選択してからその検索結果がブラウザーに完全に読み込まれるまでの時間に関係する。「抑制」クライアントでは、この読み込み時間は、そのコンテンツをホストするサーバーからの、検索結果に関連付けられるコンテンツをネットワークを介してリクエストし、ブラウザーにおいてそのコンテンツをレンダリングする動作を含む。「テスト」クライアントにおいて、読み込み時間は、プリレンダ動作の間受信していない任意のコンテンツをリクエストし、そしてブラウザーにそのコンテンツを表示するのに要する時間を含む。通常、「テスト」クライアントに関連付けられる読み込み時間は、「抑制」クライアントに関連付けられる時間より少なくあるべきである。なぜなら、「テスト」クライアントは、トランザクションのネットワークコンテンツリクエスト部分に関し先んじたスタートを切るからである。「テスト」クライアント及び「抑制」クライアントの読み込み時間の比較により、プリレンダリングによりユーザにとってどの程度の時間が節約できるかについての幅広い視点が与えられる。
【0089】
段階1010では、検索結果の選択、検索結果選択がプリレンダされたかどうか、LPE数、及び検索結果選択の読み込み時間が測定基準として記憶される。これらの測定基準は、プリレンダ命令の正確性(例えば、プリレンダされた検索結果が選択されたかどうか)及びプリレンダ動作により節約された時間(例えば、「抑制」クライアントにおける読み込み時間と「テスト」クライアントにおける読み込み時間との差)を示すデータを提供してもよい。測定基準は、解析のためにすぐにサーバー104にアップロードされ、又はサーバー104に定期的にアップロードするためにクライアント102に記憶されてもよい。サーバー104は、プリレンダの的確性が低い検索結果からのプリレンダ命令を除去する等のプリレンダすべき個々の結果を特定するための測定基準で自動処理を実行してもよい。
【0090】
図解された方法の段階は、限定することを意図するものではない。その方法の機能は、ここで示したよりも少ないの数又は多い数の段階で存在することができ、説明した方法により、事象の特定の順序は図において示されたものと異なってもよい。
【0091】
ここに記載されたシステム及び方法は、検索結果ページのプリレンダリングのための改良された方法とシステムを有利に提供する。プリレンダ命令を検索結果ページ内に埋め込むことにより、ユーザの経験は、ユーザが選択する可能性の高い検索結果に対する待ち時間を減少させることで改善され得る。サイトトラフィック、結果の関連性、特定の検索クエリー、ナビゲーションの履歴データ、及び対象範囲及び正確性を最大化し、誤判定及び帯域の浪費を最小化するプリレンダ命令を提供するための他の測定基準等の変数を考慮に入れ得るので、このように検索エンジンはプリレンダ命令を提供するのに適している。検索エンジンは、プリレンダ経験を改善するために使用される測定基準を蓄積するクライアントデバイスと通信もし得る。
【0092】
上述の特徴のこれらの並びに他の変形及び組み合わせは、特許請求の範囲で定義した技術から離れることなく利用することができるので、これまで説明した典型的な実施の形態は、特許請求の範囲で定義した技術を限定するものではなく、概説するためのものであると理解すべきである。当然のことながら、ここに記載した例示的な実施の形態(及び、「等の」、「例えば」、「含む」、のような語句)は、権利化を要求する技術を特定の実施例に限定するものと解釈すべきでなく、実施例は多くの可能な形態の一部を概説するためのものである。