(57)【特許請求の範囲】
【請求項１】
検索結果ページを用いてプリレンダするためにコンピュータを利用する方法であって、前記方法は、
プロセサーを用いて、検索クエリーに応答して少なくとも１つの検索結果を決定するステップと、
前記少なくとも１つの検索結果を備える検索結果ページを生成するステップと、
前記少なくとも１つの検索結果の中で少なくとも１つのプリレンダ候補を特定するステップであって、前記少なくとも１つのプリレンダ候補は選択されそうな検索結果を示し、前記少なくとも１つのプリレンダ候補は信号を用いて特定され、前記信号は、検索エンジンから前記検索結果へ流れるトラフィックの量、前記検索クエリーを提供したクライアントデバイスの位置、又は前記検索結果に関連付けられる１つ又は複数のリソースの大きさ、のうちの少なくとも１つを含む、前記特定するステップと、
前記少なくとも１つのプリレンダ候補に対するプリレンダ命令を前記検索結果ページに埋め込むステップであって、前記プリレンダ命令は、不可視のブラウザインスタンス内にプリレンダ候補を読み込むための命令を含む、前記埋め込むステップと、
前記検索クエリーを提供したクライアントデバイスに前記検索結果ページを提供するステップと、
を備える方法。
【請求項２】
前記プリレンダ命令は、前記少なくとも１つの検索結果に関連付けられるハイパーテキスト・マークアップ言語タグ内に埋め込まれている、請求項１に記載の方法。
【請求項３】
前記プリレンダ命令は、クライアント側のスクリプトによりクライアントデバイスに提供される、請求項１に記載の方法。
【請求項４】
前記プリレンダ候補が表示されるときに選択されるかどうかを示す前記クライアントデバイスから測定基準を受信するステップと、
前記測定基準を用いて後続する検索クエリーに応答して将来のプリレンダ候補を特定するステップと、をさらに備える、請求項１に記載の方法。
【請求項５】
前記測定基準は、選択されたリンクがプリレンダされかどうかと、前記選択されたリンクの読み込み時間とのうち少なくとも１つである、請求項４に記載の方法。
【請求項６】
前記検索結果ページに実験識別子を埋め込むステップであって、前記実験識別子は、前記少なくとも１つのプリレンダ候補を特定するのに使用される特定の方法に対応する、前記埋め込むステップと、
前記検索結果ページに関連付けられる１つ又は複数のリダイレクション動作を用いて選択動作に関連付けられる前記実験識別子、及び前記少なくとも１つのプリレンダ候補が選択されたかどうかを特定するステップと、をさらに備える、請求項１に記載の方法。
【請求項７】
検索結果ページを用いてプリレンダするためにコンピュータを利用する方法であって、前記方法は、
検索クエリーを検索エンジンに送信するステップと
前記検索クエリーに応答する一連の検索結果を受信するステップであって、前記一連の検索結果は、少なくとも１つの前記検索結果は、プリレンダリングの候補であることを示す少なくとも１つのプリレンダ命令を備える、前記受信するステップと、
少なくとも１つのプリレンダ命令を特定するステップであって、前記少なくとも１つのプリレンダ命令は信号を用いて特定され、前記信号は、検索エンジンから前記検索結果へ流れるトラフィックの量、前記検索クエリーを提供したクライアントデバイスの位置、又は前記検索結果に関連付けられる１つ又は複数のリソースの大きさ、のうちの少なくとも１つを含む、前記特定するステップと、
不可視のブラウザインスタンス内に前記検索結果を読み込むための前記少なくとも１つのプリレンダ命令に関連付けられる前記少なくとも１つの検索結果をプリレンダするステップと、を
備える方法。
【請求項８】
前記一連の検索結果から選択された検索結果において実行される選択動作を監視するステップと、
もし、前記選択された検索結果が前記少なくとも１つの検索結果であるなら、前記少なくとも１つの検索結果を交換によりアクティブなブラウザインスタンスに入れる、交換ステップと、をさらに備える請求項７に記載の方法。
【請求項９】
前記一連の検索結果から選択された検索結果の選択に関連付けられる測定基準を記憶するステップと、
前記測定基準を送信して、後続する検索クエリーに応答してプリレンダリング候補の選択を改善するために統計データを提供するステップと、をさらに備える、請求項７に記載の方法。
【請求項１０】
前記測定基準は、前記選択された検索結果、前記選択された検索結果が前記少なくとも１つの検索結果であるかどうか、及び前記選択された検索結果にアクセスするためのページ読み込み時間のうちの少なくとも１つである、請求項９に記載の方法。
【請求項１１】
少なくとも１つの検索結果に関連付けられるハイパーリンクにプリレンダタグを挿入するために前記プリレンダ命令を実行するステップをさらに備える、請求項７に記載の方法。
【請求項１２】
前記測定基準は、前記一連の検索結果に埋め込まれた実験識別子であって、前記少なくとも１つの検索結果をプリレンダリングの候補として選択する方法を示す前記実験識別子をさらに備える、請求項９に記載の方法。
【請求項１３】
非一時的なコンピュータ可読記憶媒体であって、前記記憶媒体はプロセサーにより実行される時に、以下の方法を実行する命令を備え、前記方法は、
検索クエリーを検索エンジンに送信するステップと、
前記検索クエリーに応答して一連の検索結果を受信するステップであって、前記一連の検索結果は、前記検索結果のうち少なくとも１つがプリレンダリングの候補であることを示す少なくとも１つのプリレンダ命令を備える、前記受信するステップと、
前記少なくとも１つのプリレンダ命令を特定するステップであって、前記少なくとも１つのプリレンダ命令は信号を用いて特定され、前記信号は、検索エンジンから前記検索結果へ流れるトラフィックの量、前記検索クエリーを提供したクライアントデバイスの位置、又は前記検索結果に関連付けられる１つ又は複数のリソースの大きさ、のうちの少なくとも１つを含む、前記特定するステップと、
不可視のブラウザインスタンス内に前記検索結果を読み込むための前記少なくとも１つのプリレンダ命令に関連付けられる前記少なくとも１つの検索結果をプリレンダするステップと、を備える、記憶媒体。
【請求項１４】
前記命令は、
前記一連の検索結果から選択された検索結果において実行される選択動作を監視するステップと、
もし、前記選択された検索結果が前記少なくとも１つの検索結果であるなら、前記少なくとも１つの検索結果を交換によりアクティブなブラウザインスタンスに入れるステップをさらに備える、請求項１３に記載の記憶媒体。
【請求項１５】
前記命令は、さらに、
前記一連の検索結果から選択された検索結果の選択に関連付けられる測定基準を記憶するステップと、
後続する検索クエリーに応答して前記測定基準を送信してプリレンダリング候補の選択を改善するための統計データを提供するステップと、を備える、請求項１３に記載の記憶媒体。
【請求項１６】
前記測定基準は、前記選択された検索結果、前記選択された検索結果が前記少なくとも１つの検索結果であるかどうか、及び前記選択された検索結果にアクセスするためのページ読み込み時間のうちの少なくとも１つである、請求項１５に記載の記憶媒体。
【請求項１７】
前記測定基準は、前記一連の検索結果に埋め込まれた実験識別子をさらに備え、前記実験識別子がプリレンダリングを行う候補として前記検索結果のうちの前記少なくとも１つを選択する方法を示す、請求項１５に記載の記憶媒体。
【請求項１８】
検索結果ページを用いてプリレンダする処理システムであって、前記処理システムは、
少なくとも１つのプロセサーに接続されたメモリと、
前記少なくとも１つのプロセサーを備え、
前記少なくとも１つのプロセサーは、
検索クエリーに応答して少なくとも１つの検索結果を決定し、
前記少なくとも１つの検索結果を備える前記検索結果ページを生成し、
前記少なくとも１つの検索結果の中で、選択されそうな検索結果を示す少なくとも１つのプリレンダ候補を、検索エンジンから前記検索結果へ流れるトラフィックの量、前記検索クエリーを提供したクライアントデバイスの位置、又は前記検索結果に関連付けられる１つ又は複数のリソースの大きさ、のうちの少なくとも１つを含む信号を用いて特定し、
前記少なくとも１つのプリレンダ候補のためのプリレンダ命令であって、不可視のブラウザインスタンス内にプリレンダ候補を読み込むための命令を含む前記プリレンダ命令を前記検索結果ページに埋め込み、
前記検索クエリーを提供するクライアントデバイスに前記検索結果ページを提供するように構成される。
【請求項１９】
前記プリレンダ命令は、前記少なくとも１つの検索結果に関連付けられるハイパーテキスト・マークアップ言語タグ内に埋め込まれている、請求項１８に記載の処理システム。
【請求項２０】
前記プリレンダ命令は、クライアント側のスクリプトによりクライアントデバイスに提供される、請求項１８に記載の処理システム。
【請求項２１】
前記プロセサーは、
前記プリレンダ候補が表示されるときに選択されるかどうかを示す前記クライアントデバイスからの測定基準を受信し、
前記測定基準を用いて後続する検索クエリーに応答して将来のプリレンダ候補を特定するようにさらに構成される、請求項１８に記載の処理システム。
【請求項２２】
前記測定基準は、選択されたリンクがプリレンダされかどうかと、前記選択されたリンクの読み込み時間とのうち少なくとも１つである、請求項２１に記載の処理システム。
【請求項２３】
前記プロセサーは、
前記検索結果ページに前記少なくとも１つのプリレンダ候補を特定するのに使用される特定の方法に対応する実験識別子を埋め込み、
前記検索結果ページに関連付けられる１つ又は複数のリダイレクション動作を用いて選択動作に関連付けられる前記実験識別子、及び前記少なくとも１つのプリレンダ候補が選択されたかどうかを特定するようにさらに構成される、請求項１８に記載の処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
この出願は、「検索結果へのアクセスを改良するシステム及び方法」と題して２０１２年１月１９日に出願された米国特許出願１３／３５３，６２６の利益を主張するものとし、その開示事項は参照により本出願に組み込まれるものとする。
【背景技術】
【０００２】
ワールドワイドウェブの出現により、現在のユーザは、今だかつてないほど多くの情報をすぐに利用できるようになった。様々なウェブサイトは、参照情報、ビジネス及び金融の書類、ソーシャルネットワーキング、及びその他へのアクセスを提供して、殆ど全ての要求と興味を満足させる。広く普及した広帯域のインターネットへのアクセスにより、これらのサイトへのいまだかつてないほどの速いアクセスが可能となる。
【０００３】
しかしながら、現在の高速インターネットサービスが速いにもかかわらず、ウェブを閲覧する行為は瞬間的ではない。ユーザがページ上のリンクを選択し又はテキスト領域内にユーアールエル（ＵＲＬ）を入れるときに、データがホストから要求されてクライアントへ送信され、ブラウザーに表示されるまでに遅れ時間が生じる。ユーザは、彼らが要求したサイトが読み込まれるのを待つ間、通常は無駄に過ごす。高速インターネットのアクセスはその遅延時間を２〜３秒に制限しうる一方、この短い遅延時間でさえ積もり積もれば生産性において毎年数千時間の工数の損失が生じる。
【発明の概要】
【０００４】
本開示の態様は、検索結果ページのプリレンダリング（prerendering）のシステム及び方法を提供する。インターネット検索エンジンは、クライアントから受信する検索クエリーを処理してもよい。インターネット検索エンジンは、検索クエリーに応答して１つ又は複数の検索結果を決定してもよい。１つ又は複数の検索結果は、プリレンダ命令と関連付けられてもよく、その結果その検索結果がクライアントにより受信された時に、クライアントはそのプリレンダ命令に関連付けられた検索結果をプリレンダする。プリレンダ命令は、関連性に基づいて検索結果をランキングすること、又は選択の可能性に基づいて検索結果をランキングすることを含め、様々な態様でその検索結果と関連付けられてもよい。測定基準及び分析データは、検索結果プリレンダリングプロセスを改良するためにクライアントから収集されてもよい。例えば、ユーザがプリレンダ命令に関連付けられたリンクを選択したか否かに関する統計は、プリレンダの予測を改善するためにキャプチャされ（ｃａｐｔｕｒｅｄ）てもよい。
【０００５】
測定基準及び分析データは、ユーザが前記測定基準及び分析データを提供することを「承諾」（ｏｐｔ−ｉｎ）することを要求するプロセスによりキャプチャされ得る。システム及び方法は、例えば、個人識別情報の匿名化、データの集約、公にしにくい情報のフィルタリング、暗号化、パーソナル特性を除去するための公にしにくい情報のハッシングまたはフィルタリング、情報の記憶の有効期限、及び／またはデータの使用もしくは共用の制限を含むクライアントデータのためのプラバシー保護を提供し得る。データは、個々のクライアントデータは公開されないように、匿名にされ集約され得る。ユーザは、データの収集及び共有を可能とすることにオプトイン／オプトアウトする機会が与えられても良い。
【０００６】
本開示の態様は、検索結果ページを用いてプリレンダリングするためにコンピュータを利用する方法を説明する。この方法は、プロセサーを用いて、検索クエリーに応答して少なくとも１つの検索結果を決定するステップと、前記少なくとも１つの検索結果を備える検索結果ページを生成するステップと、前記少なくとも１つの検索結果の中で少なくとも１つのプリレンダ候補を特定するステップであって前記少なくとも１つのプリレンダ候補は選択されそうな検索結果を示す、前記特定するステップと、前記少なくとも１つのプリレンダ候補に対するプリレンダ命令を前記検索結果ページに埋め込むステップと、検索クエリーを供給したクライアントデバイスに前記検索結果ページを提供するステップとを備える方法であってもよい。前記少なくとも１つのプリレンダ候補は、少なくとも１つの信号を用いて特定され、前記少なくとも１つの信号は、前記検索結果を選択するのに使用する周波数、前記検索エンジンから前記検索結果へ流れるトラフィックの量、前記クライアントデバイスの位置、又は前記検索結果に関連付けられる１つ又は複数のリソースの大きさのいずれかである。前記プリレンダ命令は、前記少なくとも１つの検索結果に関連付けられるハイパーテキスト・マークアップ言語タグ内に埋め込まれていてもよい。前記プリレンダ命令は、クライアント側スクリプトによりクライアントデバイスに提供されてもよい。前記方法は、前記プリレンダ候補が表示されるときに選択されたかどうかを示す前記クライアントデバイスから測定基準を受信するステップと、前記測定基準を用いて後続する検索クエリーに応答して将来のプリレンダ候補を特定するステップと、をさらに含んでも良い。前記測定基準は、選択されたリンクがプリレンダされかどうかと、前記選択されたリンクの読み込み時間とのうち少なくとも１つであってもよい。前記方法は、前記検索結果ページに実験識別子を埋め込むステップであって、前記実験識別子は、前記少なくとも１つのプリレンダ候補を特定するのに使用される特定の方法に対応する、前記埋め込むステップと、前記検索結果ページに関連付けられる１つ又は複数のリダイレクション動作を用いて選択動作に関連付けられる前記実験識別子、及び前記少なくとも１つのプリレンダ候補が選択されたかどうかを特定するステップと、をさらに含んでもよい。
【０００７】
本開示の態様は、検索結果ページを用いてプリレンダするためにコンピュータを利用する方法をも説明する。この方法は、検索クエリーを検索エンジンに送信するステップと、前記検索クエリーに応答する一連の検索結果を受信するステップであって、前記一連の検索結果は、少なくとも１つの前記検索結果は、プリレンダリングの候補であることを示す少なくとも１つのプリレンダ命令を備える、前記受信するステップと、少なくとも１つのプリレンダ命令を特定するステップと、前記少なくとも１つのプリレンダ命令に関連付けられる前記少なくとも１つの検索結果をプリレンダするステップと、を含んでもよい。この方法は、前記一連の検索結果から選択された検索結果において実行される選択動作を監視するステップと、もし、前記選択された検索結果が前記少なくとも１つの検索結果であるなら、前記少なくとも１つの検索結果を交換によりアクティブなブラウザインスタンスに入れる、交換ステップと、をさらに含んでもよい。この方法は、前記一連の検索結果から選択された検索結果の選択に関連付けられる前記測定基準を記憶するステップと、前記測定基準を送信して、後続する検索クエリーに応答してプリレンダリング候補の選択を改善するために統計データを提供するステップと、をさらに含んでもよい。この測定基準は前記測定基準は、前記選択された検索結果、前記選択された検索結果が前記少なくとも１つの検索結果であるかどうか、及び前記選択された検索結果にアクセスするためのページ読み込み時間のうちの少なくとも１つであってもよい。この方法は、少なくとも１つの検索結果に関連付けられるハイパーリンクにプリレンダタグを挿入するために前記プリレンダ命令を実行するステップをさらに含んでもよい。前記測定基準は、前記一連の検索結果に埋め込まれた実験識別子と、前記少なくとも１つの検索結果をプリレンダリングの候補として選択する方法を示す前記実験識別子と、をさらに含んでもよい。
【０００８】
本開示の態様は、命令を備える非一時的なコンピュータ可読記憶媒体を提供してもよい。プロセサーにより実行された時に、前記命令は以下の方法を実行してもよく、前記方法は、検索クエリーを検索エンジンに送信するステップと、前記検索クエリーに応答して一連の検索結果を受信するステップであって、前記一連の検索結果は、前記検索結果のうち少なくとも１つがプリレンダリングの候補であることを示す少なくとも１つのプリレンダ命令を備える、前記受信するステップと、前記少なくとも１つのプリレンダ命令を特定するステップと、前記少なくとも１つのプリレンダ命令に関連付けられる前記少なくとも１つの検索結果をプリレンダするステップと、を備える。この命令は、前記一連の検索結果から選択された検索結果において実行される選択動作を監視するステップと、もし、前記選択された検索結果が前記少なくとも１つの検索結果であるなら、前記少なくとも１つの検索結果を交換によりアクティブなブラウザインスタンスに入れるステップをさらに含んでもよい。前記命令は、前記一連の検索結果から選択された検索結果の選択に関連付けられる測定基準を記憶するステップと、後続する検索クエリーに応答して前記測定基準を送信してプリレンダリング候補の選択を改善するための統計データを提供するステップと、をさらに含んでもよい。前記測定基準は、前記選択された検索結果、前記選択された検索結果が前記少なくとも１つの検索結果であるかどうか、及び前記選択された検索結果にアクセスするためのページ読み込み時間のうちの少なくとも１つであってもよい。前記測定基準は、前記一連の検索結果に埋め込まれた実験識別子をさらに備え、前記実験識別子がプリレンダリングを行う候補として前記検索結果のうちの前記少なくとも１つを選択する方法を示してもよい。
【０００９】
本開示の態様は、検索結果ページを用いてプリレンダする処理システムを提供してもよい。前記処理システムは、少なくとも１つのプロセサーに接続されたメモリと、前記少なくとも１つのプロセサーを備えてもよい。前記プロセサーは、検索クエリーに応答して少なくとも１つの検索結果を決定し、前記少なくとも１つの検索結果を備える前記検索結果ページを生成し、前記少なくとも１つの検索結果の中で、選択されそうな検索結果を示す少なくとも１つのプリレンダ候補を特定し、前記少なくとも１つのプリレンダ候補のためのプリレンダ命令を前記検索結果ページに埋め込み、前記検索クエリーを提供するクライアントデバイスに前記検索結果ページを提供するように構成されてもよい。前記少なくとも１つのプリレンダ候補は、少なくとも１つの信号を使用して特定され、前記少なくとも１つの信号は、前記検索結果を選択するのに使用する周波数、前記検索エンジンから前記検索結果へ流れるトラフィックの量、前記クライアントデバイスの位置、又は前記検索結果に関連付けられる１つ又は複数のリソースの大きさのいずれかであってもよい。前記プリレンダ命令は、前記少なくとも１つの検索結果に関連付けられるハイパーテキスト・マークアップ言語タグ内に埋め込まれていてもよい。前記プリレンダ命令は、クライアント側のスクリプトによりクライアントデバイスに提供されてもよい。前記プロセサーは、前記プリレンダ候補が表示されるときに選択されるかどうかを示す前記クライアントデバイスからの測定基準を受信し、前記測定基準を用いて後続する検索クエリーに応答して将来のプリレンダ候補を特定するようにさらに構成されてもよい。前記測定基準は、選択されたリンクがプリレンダされかどうかと、前記選択されたリンクの読み込み時間とのうち少なくとも１つであってもよい。前記プロセサーは、前記検索結果ページに前記少なくとも１つのプリレンダ候補を特定するのに使用される特定の方法に対応する実験識別子を埋め込み、前記検索結果ページに関連付けられる１つ又は複数のリダイレクション動作を用いて選択動作に関連付けられる前記実験識別子、及び前記少なくとも１つのプリレンダ候補が選択されたかどうかを特定するようにさらに構成されてもよい。
【図面の簡単な説明】
【００１０】
【図１】図１は、この開示の態様に従ってプリレンダリングを提供する検索システムの例を表示するシステム略図である。
【図２】図２は、この開示の態様に従ってプリレンダリング命令を用いた検索結果ページの例を示す図である。
【図３】図３は、この開示の態様に従ってウェブページのプリレンダリングを行う方法の例を示すフローチャートである。
【図４】図４は、この開示の態様に従ってプリレンダを行うナビゲーションイベントを示す方法の例を示すフローチャートである。
【図５】図５は、この開示の態様に従ってプリレンダ動作中にウェブ・インプレッション統計を管理する方法の例を示すフローチャートである。
【図６】図６は、この開示の態様に従ってプリレンダ動作を管理する方法の例を示すフローチャートである。
【図７】図７は、この開示の態様に従ってプリレンダ動作を構成する方法の例を示すフローチャートである。
【図８】図８は、この開示の態様に従って検索結果ページ内に埋め込まれたプリレンダ命令を処理する方法の例を示すフローチャートである。
【図９】図９は、この開示の態様に従って検索結果ページ内にプリレンダ命令を埋め込む方法の例を示すフローチャートである。
【図１０】図１０は、この開示の態様に従ってプリレンダ測定基準を取得する方法の例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
本願の開示の態様、特徴および利点は、以下の好ましい実施形態の説明及び添付図を参照して考慮することで理解できる。以下の説明は本開示を限定するものではなく、本開示の範囲は添付請求項及び均等範囲により定義される。
【００１２】
例示的実施形態に従った一定の処理が、直線状に発生するものとして図に示されているが、本出願書類に特にはっきりと記載されない限りこれは要件ではない。異なる処理が異なる順序又は同時に実行されてもよい。
【００１３】
この開示は、プリレンダ（ｐｒｅｒｅｎｄｅｒ）命令と共に検索結果のページを提供するシステム及び方法を記載する。この開示の態様のおかげで、ユーザによるイベントの選択より前にナビゲーションイベントに関連付けられたコンテンツを表示することにより、ナビゲーションイベント（例えば、検索結果ハイパーリンクをクリックすること）のユーザの選択とナビゲーションイベントに関連付けられたコンテンツの表示との間の遅延を最小化する。例えば、この方法とシステムは、ユーザが関連するリンクを選択する前に先行してネットワークからコンテンツをリクエストするために、ウェブを閲覧する間に次にリクエストされそうなユーアールエルを予測することができ、したがって、ユーザがウェブページ上でハイパーリンクを選択する時に待ち時間を最小にすることができる。プリレンダリング動作を実行し、プリレンダリング動作を構成し、プリレンダリング動作を管理する様々な方法を記載する。この適用を目的として、用語「プリレンダリング」は、一般にウェブアドレスのコンテンツを読み込むのに必要な資源（例えば、任意の実行可能コード、スクリプト言語、ファイル、及び／または対話型オブジェクト）を要求し、ウェブブラウザーインスタンスにそのコンテンツを読み込む動作をいう。プリレンダリングは、スクリプトを解釈すること、ページを配置すること、および不可視のブラウザインスタンス内のページを表示することを含めてページをレンダリングするプロセスを含む。
【００１４】
ユーザが、インターネット検索エンジンを用いてブラウザーにおいて検索クエリーを実行する時、そのインターネット検索エンジンは、プリレンダ命令を伴う検索クエリーに応答して提供される１つ又は複数の検索結果にフラグを立てることができる。これらのプリレンダ命令は、ウェブページ（例えば、ページソース内のハイパーテキスト・マークアップ言語（ＨＴＭＬ）タグを介して）自身の中に埋め込まれてもよく、または非同期ＪＡＶＡスクリプト（ＡＪＡＸ）等の他の方法によりブラウザーに示されてもよい。様々な例示的な実施形態がウェブブラウザーに関連して説明されているが、用語「ブラウザー」は、インターネットアドレスを用いてコンテンツをフェッチする任意のアプリケーションをも含むように広義に解釈し得る。例えば、ブラウザーは、スマートフォン上で実行するアプリケーション、ラップトップまたはデスクトップコンピュータ上で実行するインターネット検索エンジンを表示するウェブブラウザー、ウェブブラウザー内に埋め込まれた検索ツールバー、コンピュータのオペレーティングシステムに含まれる検索アプリケーション等を含み得る。
【００１５】
インターネット検索エンジン等の高トラフィックサイトはプリレンダリングに特有の課題が生じ得る。例えば、もし検索エンジンがよく使用されている検索クエリーに対する検索結果を良いプリレンダ候補として誤って分類し、ユーザはその検索結果を高い頻度では選ばないなら、誤って分類された検索結果を提供するウェブサーバーにおいては、追加されたページビューが無いのに追加のトラフィックが発生することになる。これにより、プリレンダされたページがネットワークを超えてダウンロードされ、隠されたブラウザインスタンスにおいて実行されるため、ホストページの帯域を浪費し、ユーザのコンピュータのシステム資源を浪費する結果となる。したがって、プリレンダリング動作と関連するリンクの選択を改善するのに使用するために、システムの測定基準を監視することが望ましい。システム及び方法の態様は、プリレンダリングの経験を改善する目的で自発的にデータを収集することを承諾したクライアントにより提供されたデータを用いてこれらの測定基準を監視する機能を提供することができる。
【００１６】
図１は、本開示の態様にしたがってスタンドアロンで又はネットワーク構成で使用され得る様々なコンピュータデバイスを記述するコンピュータシステムの概略図を提示する。例えば、この図は、ネットワーク１０６を介して通信するクライアントデバイス１０２とサーバー１０４とを有するコンピュータネットワーク１００を示す。クライアントデバイス１０２により、ユーザは検索クエリーを用いて検索動作を開始するために検索クエリーを提出できるようになる。サーバー１０４は、検索クエリーを受信し、検索クエリーを用いて検索処理を実行する。サーバー１０４は、１つ又は複数のプリレンダ命令を検索クエリーに応答してユーザに提供された検索結果に関連付けることもできる。
【００１７】
クライアントデバイス１０２は、当業者に良く知られているコンピュータのデバイスであり得る。例えば、クライアントデバイス１０２は、ラップトップコンピュータ、デスクトップコンピュータ、ネットブック、ラックマウント方式のサーバー、スマートフォン、セルラー方式の電話機、または命令を実行するプログラム可能なハードウェアもしくはソフトウェアを含む任意の他のデバイスであり得る。コンピュータのデバイス１０２は、プロセサー１０８、メモリ１１０及び汎用コンピュータに通常存在する他の部品を含み得る。メモリ１１０は、プロセサー１０８によりアクセス可能な命令１１２及びデータ１１４を記憶し得る。プロセサー１０８は、クライアントデバイス１０２の動作を制御するために命令１１２を実行し、データ１１４にアクセスすることができる。
【００１８】
プロセサー１０８は、様々な商業的に利用可能な汎用プロセサー等の任意の適切なプロセサーであってもよい。あるいは、プロセサー１０８は、特定用途向け集積回路（「ＡＳＩＣ」）又はフィールド・プログラマブル・ゲート・アレイ（「ＦＰＧＡ」）等の専用制御部であってもよい。
【００１９】
メモリ１１０は、ハードディスクドライブ、メモリカード、リードオンリーメモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、ディーブイディー（「ＤＶＤ」）または他の光ディスク、及び他の書き込み可能なリードオンリーメモリ等の電子デバイスの助けにより読み取り可能なデータを記憶するコンピュータ読み取り可能な媒体、または他の媒体を含め、プロセサー１０８によりアクセス可能な情報を記憶するように動作する任意の種類の有形のメモリであり得る。システム及び方法は、前述の物の異なる組み合わせを含むことができ、命令及びデータの異なる部分が異なる種類の媒体に記憶される。
【００２０】
図１は、それぞれが単一のブロック内に存在するものとしてプロセサー１０８及びメモリ１１０をそれぞれ機能的に表示しているが、プロセサー１０８とメモリ１１０は、実際には複数のプロセサーとメモリを備えておりこれらを同じ物理的ハウジング内に格納してもよく同じ物理的ハウジング内でなくてもよいと理解されるべきである。したがって、プロセサー、コンピュータ又はメモリに言及することは、並列に動作し得るまたはし得ないとにかかわらずプロセサーの一群、コンピュータの一群又はメモリの一群に言及することを含むと理解することができる。
【００２１】
命令１１２は、直接的に（機械コード等の）又は間接的に（スクリプト等の）プロセサー１０８によって実行される任意の命令のセットであり得る。例えば、命令１１２は、持続的なコンピュータ読み取り可能な媒体にコンピュータコードとして記憶され得る。その点に関して、用語「命令」及び「プログラム」は、ここでは殆ど同じ意味で使われ得る。命令１１２は、プロセサー１０８により直接処理するためのオブジェクトコードフォーマットで、又はスクリプトもしくはリクエストに応じて解釈されもしくは前もってコンパイルされる独立ソースコードモジュールの一群を含む任意の他のコンピュータ言語で記憶され得る。命令の機能、方法及びルーティンは、以下により詳細に説明する（図２−１０を参照）。
【００２２】
クライアントデバイス１０２の動作を容易にするために、命令１１２は、ブラウザー１１６を備えてもよい。ブラウザー１１６は、例えば、ページを取得するインターネット検索エンジンを提供するウェブブラウザー等の、クライアントデバイス１０２が検索操作を実行し検索結果を受け取るためのインタフェースを提供する。ブラウザー１１６は、ウェブ検索結果ページ１１８において検索クエリーに応答して受信される検索結果を表示する機能を持ち得る。ブラウザー１１６は、もしユーザがプリレンダされたページ１２２に関連付けられた巡航操作（ｎａｖｉｇａｔｉｏｎ  ｏｐｅｒａｔｉｏｎ）を選択するなら、即時のナビゲーションを可能とするためにプリレンダされたページ１２２をプリレンダするよう動作し得る。ブラウザー１１６は、ブラウザー１１６により実行される表示と巡航操作に関連付けられる測定基準１２０を追跡することもできる。上記に説明したように、ブラウザー１１６により収集された任意の測定基準１２０は、ユーザのプライバシーと匿名性を保つために、匿名で所定の位置に保護された状態で維持される。上記に説明したように、ブラウザー１１６は、検索結果を受信しその検索結果をユーザに対し表示するのに適した任意のアプリケーションであってよい。ブラウザー１１６は、ブラウザタブ等の様々なインスタンスにおけるコンテンツの複数のセットを維持し得る。プリレンダリングは、ユーザから不可視のブラウザインスタンスにおけるプリレンダされたページ１２２を表示することにより、及び、プリレンダされたページ１２２に関連付けられた巡航操作を選択したときに不可視のブラウザインスタンスを可視のブラウザインスタンスに交換することにより、実行され得る。
【００２３】
データ１１４は、命令に従ってプロセサー１０８により検索され、記憶され、修正され得る。例えば、アーキテクチャは、いかなる特定のデータ構造に限定されないが、データは、コンピュータ・レジスタ内に、複数の異なるフィールド並びにレコードを有するテーブル、拡張マークアップ言語（「ＸＭＬ」）ドキュメントもしくはフラットファイルとして、リレーショナル・データベース内に記憶され得る。このデータは、二進値もしくはユニコード等の、しかしこれらに限定されない、任意のコンピュータ読み取り可能なフォーマットにフォーマットされ得る。このデータは、番号、説明文、専用コード、同じメモリもしくは異なる複数メモリ（他のネットワークの場所を含む）の他の領域に記憶されたデータの参照又は関連のあるデータを算出する機能により使用される情報等の、関連のある情報であることを確認するに十分な任意の情報を備え得る。
【００２４】
データ１１４は、上で説明したようにウェブ検索結果ページ１１８、測定基準１２０、及びプリレンダされたページ１２２を記憶することができる。ウェブ検索結果ページ１１８及びプリレンダされたページ１２２は、ブラウザー１１６に関連付けられたブラウザインスタンスに表示されたページとして記憶され得る。測定基準１２０は、局所的に記憶されることがあり、周期的にサーバー１０４に送信されることがあり、またはサーバー１０４で直接算出され記憶され得る。
【００２５】
サーバー１０４は、クライアントデバイス１０２から提供される検索クエリーを用いて検索動作を実行するよう機能し得る。サーバー１０４は、クライアントデバイス１０２に提供される検索結果のウェブページ内に１つ又は複数のプリレンダタグを埋め込むこともできる。サーバー１０４は、複数の要因によりクライアントデバイス１０２に提供される検索結果内の候補となるリンクを特定することができる。例えば、サーバー１０４は、一連の検索結果の中でプリレンダリングに最も適切な候補として最も関連のあるリンクを見つけることができる。サーバー１０４は、プリレンダリング動作を改善するためにクライアントデバイス１０２により提供される測定基準１２０等の測定基準を集める機能をも有し得る。例えば、サーバー１０４は、プリレンダリング動作によりユ―ザが節約する時間、プリレンダリング動作のヒット率とミス率（例えば、プリレンダされた検索結果が検索結果のリストから選択される頻度）、又は他の様々な指標についての測定基準を受信することができる。
【００２６】
サーバー１０４は、クライアントデバイス１０２と同様にメモリ１２６に接続するプロセサー１２４を有する構成となっている場合がある。メモリ１２６は、サーバー１０４の動作を容易にするために一連の命令１２８及びデータ１３０を備えることができる。命令１２８は、検索エンジン１３２と、プリレンダアプリケーション１３４とを含むことができる。検索エンジン１３２は、検索クエリーに応答してクライアント１０２に検索結果を提供するように動作する。例えば、検索エンジン１３２は、インターネット検索エンジンであってもよい。プリレンダアプリケーション１３４は、プリレンダリングの候補として検索エンジン１３２が生成した検索結果１３２から検索結果を定めるように動作する。プリレンダアプリケーション１３４は、埋め込まれた命令１３８を有する一連の検索結果を作り出すために検索結果１３６と共にプリレンダ命令を含む。検索結果１３６及び埋め込まれた命令を有する一連の検索結果１３８がデータ１３０に記憶されてもよい。クライアントデバイス１０２が受信するときに、クライアントデバイス１０２は、どの検索結果をプリレンダするかを決めるために埋め込まれた命令を処理する。
【００２７】
プリレンダアプリケーション１３４は、１つ又は複数のＨＴＭＬタグをプリレンダ候補の検索結果に関連付けられたリンクに追加することにより、検索結果１３６内に命令を埋め込み得る。例えば、ウェブサイトの一例であるexample.comへのリンクに対するＨＴＭＬは、プリレンダアプリケーション１３４がウィキペディア（Ｗｉｋｉｐｅｄｉａ）に関連付けられた検索結果がプリレンダリングの良い候補であることを見つけたことに応えて、プリレンダアプリケーション１３４により、"<a href="http：//www.example.com"> example </a>" から "<link rel="prerender" href="http://www. example.com"/> <a href=http://www.example.com> example </a>" へ修正され得る。
【００２８】
クライアントデバイス１０２及びサーバー１０４は、それぞれネットワークの別個のノードであってもよく、直接的及び間接的にネットワーク１０６の他のノードと通信するように動作する。例えば、クライアントデバイス１０２は、ネットワーク１０６経由でサーバー１０４と通信するように動作する携帯電話機を備えても良い。
【００２９】
クライアントデバイス１０２とサーバー１０４の間に介在するノード及びネットワーク１０６は、様々な構成を備えることができ、インターネット、ワールドワイドウェブ、イントラネット、仮想プライベート・ネットワーク、ローカルなイーサネットネットワーク、１つ又は複数の会社に独占的所有権がある通信プロトコルを用いたプライベート・ネットワーク、セルラー方式の無線ネットワーク（例えば、Ｗｉ−Ｆｉ）、インスタント・メッセージ、ハイパーテキスト転送プロトコル（「ＨＴＴＰ」）並びに簡易メール転送プロトコル（「ＳＭＴＰ」）、及び上述の様々な組み合わせを含む、様々なプロトコルを用いることができる。通常、システムは、複数の接続されたコンピュータを含み得ることを理解すべきである。例えば、サーバー１０４の機能は、検索エンジン１３２及びプリレンダアプリケーション１３４を接続制御する別個のノードにより複数のノードを越えて広がることができる。
【００３０】
上述のように情報が送信され又は受信されるときに一定の利点が得られるが、このシステム及び方法の他の態様では、情報を伝達するいかなる特定の方法に限定されることはない。例えば、ある態様では、情報は、光ディスクまたは携帯ドライブ等の媒体により送信してもよい。他の態様では、情報は、非電子的なフォーマットで送信され、手作業でシステムに入力されてもよい。
【００３１】
図２は、本開示の態様に従ってプリレンダリング命令を用いた検索結果ページ２００の例を説明する図である。示された検索結果ページ２００は、検索クエリー「テスト検索クエリー」に応答して受信された一連の検索結果を示す。プレーンテキストのクエリーが示されているが、検索は画像、ビデオ、または他の任意の情報源に基づく検索を含めて任意の適切な検索クエリーにより実行してもよい。検索結果ページ２００は、１つ又は複数の検索結果２０２を含む。検索結果２０２のそれぞれはＨＴＭＬデータ２０４に関連付けられている。表示された検索結果２０２に対するこのＨＴＭＬデータ ２０４は、その検索結果２０２に「link rel＝'prerender’」なる表現（ｔｅｒｍ）が埋め込まれていることを示し、これはＨＴＭＬデータ２０４に関連付けられた検索結果２０２が検索結果２００を示すブラウザーによりプリレンダされるべきであることを示す。
【００３２】
図３は、本開示の態様にしたがってウェブページをプリレンダリングするための例示的な方法３００を表現するフローチャートである。方法３００の態様は、ユーザがネットワークコンテンツを検索する前にそのネットワークコンテンツをリクエストすることにより、ネットワークコンテンツを読み込むための時間を最小にするように動作する。方法３００は、ユーザによる検索対象になりそうであると判断されるウェブページをプリレンダリングすることにより、ユーザがウェブを閲覧を経験する際の時間遅れを防ぐために、クライアント１０２等のコンピュータのデバイスにより実行され得る。例えば、方法３００は、ブラウザー１１６の要素により実行され得る。方法３００の態様がクライアント１０２に対して表示される間に、方法３００は、サーバー１０４、又は命令を受け入れるように設計されたハードウェア及び／またはソフトウェアを有するデバイスによっても実行され得る。方法３００の例示的態様は、単一のナビゲーションイベントに関連付けられる単一のページのプリレンダリングに関連するが、方法３００は、順次的な複数のページのプリレンダリングまたは複数の並行したプリレンダリングインスタンスの複数のページのプリレンダリング等の、１つ又は複数のナビゲーションイベントに関連付けられた複数のページをプリレンダリングすることにも広く適用可能である。
【００３３】
段階３０２では、クライアント１０２は、ウェブブラウザー内の次のナビゲーションイベントを決定する。次のナビゲーションイベントは、検索結果ページ内にサーバー１０４により埋め込まれたプリレンダ命令により、定められ得る。例えば、検索エンジンは、最も関連のある結果に関連付けられる特定のリンクがウェブブラウザーによりプリレンダされるべきであることを示すために一連の検索結果内にタグを埋め込むことができる。ウェブページ内にプリレンダリングタグを埋め込む方法を以下に記載する（図４、８−１０を参照のこと）。
【００３４】
段階３０４においては、クライアント１０２は、段階３０２で特定されたナビゲーションイベントに関連付けられるコンテンツをリクエストする。このリクエストは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）ＧＥＴリクエスト、ファイル転送プロトコル（ＦＴＰ）リクエスト、又は当技術分野で知られている他の任意のネットワークデータ・アクセス・リクエストを備えてもよい。ウェブコンテンツの第１のセットは、ＨＴＴＰＧＥＴリクエストに応えて提供されてもよく、ＨＴＴＰＧＥＴリクエストがきっかけとなりウェブコンテンツの第１のセットを踏まえて追加のＨＴＴＰＧＥＴリクエストを導く。例えば、ＨＴＴＰＧＥＴリクエストは、結果としてベースウェブページがウェブブラウザーに送信されることもあり得、これは追加のＧＥＴリクエストのように他のページを読み込む動作をトリガーし得る。ベースウェブページは、複数の埋め込まれた画像を有することができ、これらの画像は各画像に対してＨＴＴＰＧＥＴリクエストを用いてフェッチされ描画される。説明したようにプリレンダリングプロセスは、関連するスクリプトを含め、ウェブページ全部をリクエストしてもよく、そしてこれらのスクリプトを実行してもよい。リクエストに応じて、ナビゲーションイベントに関連付けられたウェブコンテンツは、ウェブブラウザーに送信される。例えば、サーバー１０４は、そのコンテンツをウェブブラウザーに送信しても良い。検索エンジンの例に戻り、埋め込まれたプリレンダタグを有するウェブページを受信すると、クライアント１０２は、検索エンジンにより特定された隠しブラウザインスタンスにおける一番上の検索結果に関連付けられるＵＲＬに関連付けられるウェブページをリクエストし、表示する。
【００３５】
段階３０７では、クライアント１０２は、段階３０２において決定されたナビゲーションイベントに関連付けられたコンテンツを表示する。このコンテンツは、ユーザから隠されたウェブブラウザーの他のインスタンスにおいて表示されてもよい。例えば、このコンテンツは、他のプロセスにより、または隠しウェブブラウザータブにおいて表示されてもよい。いくつかの態様においては、クライアント１０２は、複数のナビゲーションイベントに関連付けられるコンテンツを表示してもよい。例えば、ナビゲーションイベントは、ナビゲーションイベントの起こる可能性の大きさに関連付けられてより高い又はより低い値をとる優先度値に関連付けられてもよい。このようなものとして、クライアント１０２は、クライアント１０２の性能に依存して最も起こる可能性の高い順に「ｎ」個のイベントを表示してもよい（図７参照）。
【００３６】
いくつかの態様では、表示されたコンテンツは、リダイレクション動作を含んでもよい。リダイレクション動作の例としては、第１のページ、例えば、www.a.comを読み込む動作により、そのブラウザーが、www.b.com等の第２のページを読み込む場合がある。リダイレクションは、ＨＴＭＬタグ、ＪＡＶＡスクリプトナビゲーション・コマンド、または同様のものに応答して行われてもよい。プリレンダされたページがリダイレクション動作をリクエストした場合、上記のリダイレクション動作は、他のインスタンスで行われてもよい。
【００３７】
いくつかの態様においては、第１のリダイレクション動作は、それに続くリダイレクションを引き起こしてもよい。例えば、www.a.comは、www.b.comを引き起こしてもよく、www.b.comは、www.c.comを引き起こしてもよい。このシステム及び方法の態様は、リダイレクション動作の履歴を記憶し、及び最初のページがプリレンダすると判断されたことに応じて、シリーズ内の最後のページをプリレンダすること等により、この事実を扱うことができる。いくつかの態様では、方法３００は、最終結果のページ（すなわち、リダイレクション動作の最後におけるページ）が判明したときに中間のページをプリレンダしないで一連のシリーズの中で最後のページのみをプリレンダすることにより、リダイレクション動作を省くことができる。
【００３８】
段階３０８において、クライアント１０２は、ユーザが段階３０２において特定の期間内に特定されたリンクを選択したかどうかを判定してもよい。例えば、方法３００は、１０秒、２０秒、３０秒、１分、５分、または他の任意のタイムフレームだけ待ってもよい。いくつかの態様においては、このタイムフレームは、ウェブブラウザーに関連付けられるオプションメニュー内で構成可能であってもよい。このタイムフレームは、サーバー１０４により指定されてもよい。例えば、サーバー１０４は、タグに関連付けられたコンテンツが廃棄される前に保存されるべき時間を示すタイムアウト値をプリレンダタグ内に埋め込んでもよい。もし、ユーザが、この期間内にリンクを選択した場合は、方法３００は、段階３１２に進む。選択しなかった場合は、方法３００は、段階３１０に進む。
【００３９】
段階３１０において、クライアント１０２は、プリレンダされたコンテンツを破棄する。プリレンダ動作に関連付けられたシステム資源を解放し、古いデータがユーザに提示されることを防止するために、プリレンダされたコンテンツは、このようにして有効期限が切れるようにされる。いくつかの態様では、異なる種類のデータに対しては異なる有効期限が指定され得る。例えば、ニュース速報記事、株価情報、配信フィード、などのすぐに変化しそうなデータはすぐに古くなる可能性がより高く、１０秒、２０秒、または１分などのより短い有効期限タイマーに関連付けられることもある。参考記事、アーカイブ、成績データ（ｂｏｘ  ｓｃｏｒｅｓ）等の変化する可能性の低いデータは、１時間、６時間、２４時間、１週間等のより長い有効期限タイマーに関連付けられてもよい。いくつかの態様では、待ち時間は、ページの種類に基づく。例えば、もしユーザが長いニュース記事を見ているなら、次のページを選択する前に記事の現在のページを読む時間をユーザに与えるために記事の次のページをプリレンダリングする時に、より長い待ち時間が特定され得る。いくつかの態様では、待ち時間は、ページ内に埋め込まれた生存期間（ｔｉｍｅ−ｔｏ−ｌｉｖｅ（ＴＴＬ））パラメータにより決定される。いくつかの態様では、待ち時間は、ブラウザー内でハードコードされている。プリレンダされたコンテンツが廃棄された後に方法３００は終了するが、いくつかの態様では、ユーザがウェブコンテンツを閲覧する時に方法３００を無制限に繰り返してもよい。
【００４０】
段階３１２においては、クライアント１０２は、段階３０２において決定されたナビゲーションイベントをユーザが選択するのに応えて交換によりプリレンダされたコンテンツを含む他のインスタンスを現在のユーザインスタンスに入れる。このようにして、クライアント１０２は、ナビゲーションイベントに関連付けられたコンテンツを、データがリクエストされホストサーバーから受信するまでの間の遅れ時間なしに直ちに表示する。検索結果の例に戻ると、もしユーザが最も関連のある結果を選択するなら、その関連付けられたページは、他のインスタンスにおいて既に読み込まれており、したがって、ユーザがリンクをクリックすれば直ちに利用可能となる。いくつかの態様においては、ユーザは、プリレンダリング動作の完了に先立ってナビゲーションイベントを選択してもよい。このようなケースでは、部分的に読み込まれたページは、現在のユーザインスタンスに置き換えられる。そして、部分的に読み込まれたページは、現在のユーザインスタンスに読み込みが通常通り続く。そして方法３００は、プリレンダされたコンテンツがユーザに利用可能となるようにした後に終了する。
【００４１】
図４は、プリレンダすべきナビゲーションイベンを示す例示的方法４００を記述するフローチャートである。ある態様では、サーバー１０４等のコンテンツをホストするサーバーは、ウェブブラウザーがプリレンダするナビゲーションイベントを指定することができる。サーバーがプリレンダされた1つ又は複数のリンクを特定することができることは、サーバーがどのナビゲーションイベントが最もありそうであるかについての最も良い情報を有している、又はサーバーが読み込みのバランスをとる動作等のために個々のホストされるリンクに関連付けられる帯域を管理することを望む等の多くの理由により、最適であり得る。したがって、サーバー１０４は、クライアント１０２のプリレンダモジュール２１０にどのコンテンツに表示すべきかを指示する、プリレンダタグ又はタグをホストされるページ内に埋め込んでもよい。
【００４２】
段階４０２においては、サーバー１０４は、ホストされるウェブページ内の１つ又は複数のリンクを特定する。例えば、サーバー１０４は、クライアント１０２からのクエリーに応答してウェブサイトのリストを生成する。各検索結果は、そのクエリーに応答して提供されるページの特定のリンクに関連付けられていてもよい。
【００４３】
段階４０４において、サーバー１０４は、段階４０２で特定されたリンクから選ばれる、プリレンダすべき１つ又は複数のリンクを選択する。プリレンダのリンクは、様々な目的に対して、ユーザのナビゲーション履歴、総計のナビゲーション履歴、最も関連のあるリンク等を確認することによる等の様々な方法で選択されてもよい。いくつかの態様では、リンクは、個々のクエリーに応答して最も頻繁にクリックされるリンクを分析する検索エンジンにより選択される。例えば、検索エンジンは、個々のクエリーに応答してどのリンクがクリックされるかを示す「クリックスルー」データを収集し、個々のリンクが選択される頻度に基づいてプリレンダすべき１つ又は複数のリンクを選択してもよい。検索エンジンの例を継続するために、サーバー１０４は、一番上の検索結果、又は一番上から「ｎ」個の検索結果をプリレンダすべき最適リンクとして特定してもよい。いくつかの態様では、サーバー１０４は、さらにプリレンダすべき最適なリンクはランク番号１とし、その次に適当なリンクをランク番号２とし、以下同様にランク付けすることにより、プリレンダすべきリンクのランキングを特定してもよい。サーバー１０４は、ランクではなく、リンクのそれぞれが選択される可能性を特定してもよい。例えば、サーバー１０４は、特定のリンクがユーザにより選択される可能性が５０％、２５％、又は８０％であることを示してもよい。クライアントにより実行されるプリレンダ動作が、例えば、可能性が少なくとも５０％以上、少なくとも８０％以上、または他の閾値、等の可能性の閾値に関連付けられるリンクをプリレンダすることを選択してもよい。
【００４４】
段階４０６においては、サーバー１０４は、１つ又は複数のプリレンダタグに段階４０４で特定される１つ又は複数のリンクを埋め込む。例えば、サーバー１０４は、最適なリンク又はプリレンダすべきリンクを特定するためのハイパーテキスト・マークアップ言語（ＨＴＭＬ）タグを含んでもよい。上記のように、プリレンダタグは、プリレンダを保つ時間を指定するＴＴＬ値およびランキング値を含んでもよい。検索エンジンの例を続けると、サーバー１０４は、検索結果の関連性の程度によりその結果のプリレンダする順序をランク付けするとともに、プリレンダタグを有する検索結果のそれぞれを特定してもよい。
【００４５】
段階４０８では、プリレンダタグが埋め込まれたページがページをリクエストしたクライアントに送信される。そして、方法４００は、ページを送信した後に終了する。
【００４６】
図５は、本開示の態様に従ってプリレンダ動作の間にウェブ・インプレッション統計を管理する方法５００の例を説明するフローチャートである。ウェブサイトは、多くの場合、何のコンテンツが閲覧されるか、どのページがアクセスされるか、これらのページがどんな順序でアクセスされるか、そしてそれぞれのページにどれだけの時間が費やされるかについて追跡する。このようなデータの保存及び解析は、「ウェブサイト分析」と広く呼ばれている。これらの統計は、サイト運営者により様々な目的で使用され得るデータを提供する。例えば、このデータの使用例の１つとしては、このコンテンツとともに表示される広告の比率を計算することがある。しかし、いくつかの例では、ユーザは、プリレンダされたコンテンツに関連付けられたナビゲーションイベントを選択しないこともある。したがってデータの収集に支障を来たし得る。例えば、所与のページがユーザに送信される回数によりユーザのインプレッションを追跡する伝統的モデルは、もはや正確な結果をもたらさないことがある。なぜならユーザはコンテンツが毎回送信されるたびに閲覧するわけではないことがことがあるからである。したがって、サーバー１０４等のサーバーは、プリレンダされたコンテンツを考慮に入れたインプレッションを正確に追跡する方法を提供し得る。このような方法の１つを以下に説明する。この方法の特定の実施例が、広告のコンテンツのインプレッションの統計を管理することに関して提供され得るが、本方法の態様は、プリレンダのリクエストに応答して提供されるページに対して正確なウェブサイト分析を確実にするのに広く適用できることが理解されるべきである。
【００４７】
段階５０２においては、サーバー１０４は、クライアント１０２等のコンピュータのデバイスからプリレンダのリクエストを受信する。いくつかの態様においては、このコンテンツリクエストはコンテンツリクエストとともに送信されるＪＡＶＡスクリプトＡＰＩを介してプリレンダ動作のためのものであることをクライアント１０２が示すこと等により、プリレンダのリクエストは、スクリプトのアプリケーション・プログラミング・インタフェース（ＡＰＩ）を用いて特定されてもよい。プリレンダリクエストには、そのリクエストがプリレンダリクエストであることを示す、修正ＨＴＴＰヘッダーが添付されても良い。いくつかの態様では、サーバー１０４は、サーバー１０４上で実行するアプリケーションを用いてイベント通知の登録をすること等により、ＡＰＩにより提供されるように、クライアント１０２からイベント通知を受信するように構成される。いくつかの態様では、サーバー１０４は、サーバーが帯域制限されており、またはそうでなくてもプリレンダリングを許したくない等の場合にプリレンダリクエストに応答してコンテンツを送信しない選択もできる。このようにしてプリレンダリクエストの通知を提供することにより、サーバー１０４は、プリレンダリクエストを処理することを「見合わせる」ことができる。例えば、サーバー１０４は、帯域制限されているかも知れずしたがって、プリレンダされていないコンテンツをホストすることに集中する必要があることがある。いくつかの態様では、サーバー１０４は、検索結果のリストに示されるように検索エンジンによるコンテンツのプリレンダリングを防ぐために、そのようなものであることを示すＨＴＭＬメタタグを含めることにより、又は、サーバー上にホストされる「ｒｏｂｏｔｓ．ｔｘｔ」ファイルに記入することにより、処理することを「見合わせる」（ｏｐｔ−ｏｕｔ）こともあり得る。
【００４８】
段階５０４では、サーバー１０４は、ある改訂済みのコンテンツと共に一部分のウェブページを送ってもよい。多くの例では広告インプレッションは、広告画像が送信される回数に基づいて決定されるのであるから、例えば、サーバー１０４は、プリレンダリクエストに応答して広告コンテンツに関連付けられる画像を提供しなくてもよい。同様の方法がスクリプト又は実行可能なコンテンツ等の他の方法で提供される広告に適用してもよい。一例として、サーバー１０４は、ベースウェブページを提供することによりプリレンダリクエストに応答してもよい可能性がある。ベースウェブページの結果として、クライアント１０２は、ベースウェブページにより特定されるコンテンツに対する１つ又は複数の追加のＨＴＴＰＧＥＴリクエストを開始してもよい。サーバー１０４は、ベースウェブページ内で特定される広告画像に対するＨＴＴＰＧＥＴリクエストに応答してコンテンツを送信しないという選択をしてもよい。
【００４９】
いくつかの態様では、コンテンツの改訂されたバージョンは、コンテンツが改訂されていることを受信するコンピュータのデバイスに示す、改訂された画像、スクリプト等に関連付けられた特定のＨＴＴＰエラーコードを含んでもよい。このようにして、クライアント１０２は、あるコンテンツが利用できないことではなく、そのコンテンツが改訂されており後に提供される予定であることが知らされる。したがって、クライアント１０２は、アクセスした後そのコンテンツを読み込む間に特定の図又は一時的な表示とともに改訂されたコンテンツを示すことを選択してもよく、又は改訂されたコンテンツが白紙に見えるようにしてもよい。
【００５０】
いくつかの場合には、クライアント１０２は、ディスプレイ改訂されたコンテンツをどのように正しく表示するかを知らなくてもよく、この場合は、クライアント１０２はプリレンダ動作を途中停止してもよい。さらに、ユーザがコンテンツにアクセスする時に、クライアント１０２は、プリレンダされたページが閲覧されたことをサーバー１０４に通知してもよい。これに応答して、サーバー１０４は、その改訂されたコンテンツをクライアント１０２に送信してもよい。
【００５１】
段階５０６では、サーバー１０４は、そのコンテンツのプリレンダがユーザにより閲覧されたことの確認を受信する。上記のように、ウェブブラウザーを通して提供されたＡＰＩにより、サーバー１０４にコンテンツの閲覧の通知がされてもよい。例えば、スクリプトは、イベント通知をサーバー１０４に通信してもよい。もし、サーバー１０４がこのようなイベント通知に対して登録されているなら、サーバー１０４は改訂されたコンテンツをクライアント１０２に送信する等の適切な動きを取ってもよい。プリレンダコンテンツが閲覧されたことをサーバー１０４に知らせることにより、サーバー１０４は、いかなる改訂されたコンテンツを送信し、いかなる広告に関連付けられるインプレッションの統計を更新するべきことに気づく。
【００５２】
段階５０８では、サーバー１０４は、段階５０４で改訂されたコンテンツを送信する。サーバー１０４は、ユーザがそのコンテンツにアクセスしたことを確認にしたので、コンテンツは今や送信される。例えば、サーバー１０４は広告スクリプトのコード、又はこれらに類するものに関連付けられた画像を送信してもよい。
【００５３】
段階５１０では、サーバー１０４は、段階５０８で送信されたコンテンツに関連付けられたインプレッションの統計を更新する。いくつかの態様では、画像をホストし／広告を送るという動作が自動的にページのインプレッションの統計を更新するので、段階５０８及び段階５１０が同時に生じる。このようにして、サーバー１０４は、ウェブサイトの分析データの正確な報告を維持する一方、クライアント１０２がプリレンダ動作を実行することも可能となる。
【００５４】
図６は、本開示の態様にしたがってプリレンダ動作を管理する方法６００の例を説明するフローチャートである。最適なプリレンダリング経験を提供するため、クライアント１０２は、閲覧経験に影響し得る異なる要因を構成することができる。例えば、ウェブページは、一般にウェブブラウザーを介して様々なページのサービスを提供するためにクッキーとして知られる小さいファイルを使用する。例えば、そのページに登録することなしにユーザが１日に１つのニュース記事にアクセスすることを可能とするために、新しいサイトは、トラッキングクッキー（ｔｒａｃｋｉｎｇクッキー）を使用してもよい。ユーザはユーザが読むことを意図していない記事をプリレンダするかもしれないから、このニュースサイトに関連付けられたプリレンダ動作は、ユーザの閲覧経験を妨げることもあり得、したがってユーザが閲覧しなかったページ上で１日に１つの無料記事を費やしてしまうことになる。
【００５５】
いくつかのウェブページは、ページが読み込まれるとすぐに再生が始まる埋め込まれた視聴覚コンテンツを有する。いくつかの実施例では、ここで説明するプリレンダ方法とシステムは、このようなコンテンツがユーザがそのコンテンツをナビゲートする前に再生を始めることを可能とすることができ、したがってユーザがページを閲覧始めるときに、コンテンツはすでに再生している。いくつかのウェブページは、ポップアップページ、スクリプトプログラム、ダウンロードしたもの、認証プロンプト、翻訳バー（Ｔｒａｎｌａｔｉｏｎ  ｂａｒｓ）、及びこれらと同様のもの等のプリレンダリングに適していないかもしれない追加のコンテンツを含んでもよい。したがって、プリレンダモジュール２１０は、これらの特別なケースを管理するために方法６００等の方法を使用してもよい。
【００５６】
段階６０２では、クライアント１０２は、プリレンダコンテンツをリクエストしサーバー１０４等のサーバーからそれを受信する。上記のように、このリクエストは、このリクエストがプリレンダリクエストである旨をサーバーに示すＡＰＩ呼び出しの中に存在してもよく、又はＡＰＩ呼び出しを伴っていてもよい。このページは、サーバーから受信される応答に基づいてプリレンダされる。プリレンダリングプロセスの間、クライアント１０２は、以下に説明するようにいくつかの特定のケースについて監視する。特定の順序で提示されているが、例えばクッキー状態の変化を経験する前に、埋め込みビデオ映像を特定する等によってこれらのケースは任意の順序で遭遇し得る。
【００５７】
段階６０４では、クライアント１０２は、リクエストされたプリレンダコンテンツがクッキー状態の変化または他の特別なケースを含むかどうかを判定する。例えば、もし、ユーザが銀行のウェブページにアクセスしているなら、もし、口座のページがプリレンダされるなら、そしてユーザが自分の口座からログアウトするなら、プリレンダリンクを選択することがあたかもユーザがまだログインしているように誤ってデータを報告する。したがって、プリレンダは、ユーザがログアウトするとすぐに無効になる。したがって、クライアント１０２は、プリレンダコンテンツに関連付けられる任意のクッキーの状態を監視し、適切な処置を行う。適切な処置とは、クッキー状態の変化を適切に伝えること、クッキー状態の変化を無視しプリレンダ動作を継続すること、又はプリレンダ動作を諦めて途中停止することを試みることを含んでよい。さらにクライアント１０２は、そのプリレンダコンテンツが、ポップアップページ、スクリプトされたアプリケーション、ダウンロード、認証メニュー、又は翻訳バー等の特別なケースを含むかどうかを判定する。もし、クッキー状態の変化が起こったか、プリレンダページが特別なケースを含む場合には、本方法は、段階６０８に進む。そうでない場合には、方法６００は、段階６０６を継続する。
【００５８】
段階６０８では、クライアント１０２は、プリレンダ動作を途中停止する。クッキー状態の変化又は段階６０４において特定された特別なケースによりデータをプリレンダされた古いページあるいはそうでなくてもユーザに見えないページに関連付けるため、クライアント１０２はプリレンダ動作を途中停止し得る。いくつかの態様では、クライアント１０２は、クッキー状態の変化を無視してもよい。その時に、方法６００は、終了する。
【００５９】
クッキーデータを管理する他の方法として、クライアント１０２は、プリレンダされたコンテンツに関連付けられた任意のクッキー状態の変化を追跡してもよく、プリレンダされたコンテンツがユーザによりアクセスされた時にその状態の変化を適用してもよい。いくつかの態様において、クライアント１０２は、クッキー状態の変化における衝突をモニターし衝突の場合にはプリレンダリング動作を途中停止してもよい。例えば、クッキー状態の変化は、プリレンダ動作が完了した後に起こり得るので、衝突の原因となる。このような場合、プリレンダされたバージョンのページは間違ったページデータをユーザに提示することを避けるために廃棄され得る。
【００６０】
段階６０６では、もし、プリレンダコンテンツが、特別なケースを含まずクッキー状態の変化がなかった場合は、クライアント１０２は、そのページ上にオーディオ又はビデオ等のマルチメディアコンテンツが存在するかどうかを判定する。例えば、そのページが、ＡＤＯＢＥＦＬＡＳＨ、ＨＴＭＬ５メディア、または他の種類の埋め込まれたメディアによりプログラムされた埋め込みビデオ映像を含んでも良い。このような状況では、ユーザが現実にそのページをナビゲートするまでは、そのマルチメディアを中断することが望ましいかも知れず、したがって帯域を節約しユーザがマルチメディア・ファイル全体を閲覧することを確実にする。もし、ページが埋め込まれたマルチメディアを含むなら、方法６００は、段階６１２に進む。そうでない場合は、方法６００は、段階６１０に進む。
【００６１】
段階６１０では、クライアント１０２は、そのコンテンツがマルチメディアコンテンツ、クッキー状態の変化、特別なケースのいずれも含まないことを判定し、したがってクライアント１０２は、そのページをプリレンダする。このプリレンダリングプロセスは、サーバー１０４からのページを受信し、ユーザから隠されたアプリケーションインスタンスにおいてページを表示することにより実行され得る。ページを表示することは、一般に、サーバー１０４から受信した全てのデータを読み込みことに関係し、隠されていないアプリケーションインスタンスにページを閲覧するとした場合において実行されるから、その中に含まれる任意の命令を実行することに関係している。
【００６２】
段階６１２では、クライアント１０２は、すでにそのコンテンツがマルチメディアコンテンツを含むと判定している。したがってクライアント１０２は、そのページのマルチメディアコンテンツ以外のコンテンツをプリレンダし、そしてそのマルチメディアコンテンツの再生を中断する、又はそのコンテンツに関連するプラグインのインスタンス化を延期してもよい。例えば、クライアント１０２は、ページの残りをプリレンダリングした後に埋め込まれたオーディオ又はビデオファイルを中断してもよく、あるいはプリレンダコンテンツがユーザに示されるまでフラッシュビデオ（ＦＬＡＳＨｖｉｄｅｏ）が実行しなくてもよい。
【００６３】
段階６１４では、クライアント１０２は、ユーザがプリレンダされたコンテンツにアクセスしたかどうかを判定する。もし、ユーザがプリレンダされたコンテンツにアクセスしたなら、コンテンツは、上に説明したように表示され、方法６００は、段階６１６に進む。もし、ユーザがプリレンダされたコンテンツにアクセスしていないなら、例えば、もし図３に関してすでに説明したようにプリレンダ時間の有効期間が過ぎたならば、方法６００はその時終了する。
【００６４】
段階６１６では、クライアント１０２は、ユーザがプリレンダされたコンテンツにアクセスしたという通知をサーバー１０４に送信する。上記のように、この通知は、サーバーがそこからイベント通知を受信するように構成されるスクリプトされたＡＰＩを用いて送信されてもよい。このようにして通知を提供することにより、サーバーによるウェブサイト・インプレッションの管理が可能となる（図５参照）。
【００６５】
図７は、本開示の態様に従ってプリレンダ動作を構成する例示的方法７００を示すフローチャートである。異なるコンピュータのデバイスは、ネットワーク帯域、システムメモリ、及びプロセサー速度等の異なる能力を有していてもよい。このように、様々なデバイスが異なるプリレンダ動作をサポート可能であってもよい。より大きな能力を有するデバイスは、複数のプリレンダ動作、又はより複雑なページのプリレンダリングをサポートする能力を有してもよい。したがって、方法７００は、このシステムの能力に基づいてこれらのプリレンダ動作の構成を提供する。
【００６６】
段階７０２では、クライアント１０２は、システム能力の測定を実施する。例えば、クライアント１０２は、空いているシステムメモリの量をオペレーティングシステムに問い合わせてもよく、クライアント１０２は、ＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ−ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）からプロセサー速度を要求してもよく、あるいはクライアント１０２は、空いている帯域を見つけるためにネットワーク速度テストを実施してもよい。
【００６７】
段階７０４では、クライアント１０２は、段階７０２で決定されるようにその能力に基づいてプリレンダの最大の個数「ｎ」を決定する。いくつかの態様では、クライアント１０２は、単一のプリレンダ・インスタンスをサポートするための一連のシステム要件を決定してもよい。例えば、単一のプリレンダ・インスタンスは、１０％のプロセサー利用率、１６メガバイトのシステムメモリ、少なくとも１０キロバイト／秒のネットワーク帯域、又は同様の仕様を要件としてもよい。このシステム要件は、最小のメモリ要件、プロセサー利用率、及びネットワーク帯域のそれぞれ等の異なるシステムコンポーネンに対応付けられた複数の能力を含んでも良い。これらのシステム要件は、クライアント１０２上で実行する単一のプリレンダ・インスタンスのシステム利用率を測定することにより決定してもよい。
【００６８】
例えば、クライアント１０２は、プリレンダ動作のそれぞれがプリレンダリングの間にシステムプロセサーを必要としそうであるかを判断しても良い。このようなプロセサーの仕様は、ページ最初に読み込まれるときにプロセサー全体が必要となり、その後はプロセサーの必要性が減少するという意味において「バースト性」があるといわれる。このような場合、クライアント１０２は、ページのプリレンダリングがユーザの閲覧経験に影響を与えないことを確かにするためにプリレンダ・インスタンスに低いプロセサー優先順位を割り当ててもよい。いくつかの態様では、クライアント１０２は、複数のプリレンダ・インスタンスを決定するためにシステムメモリを監視してもよい。クライアント１０２は、プリレンダ・インスタンスにより使用されるメモリの量を決定し、その後にその量と利用可能な全メモリ容量とを比較してもよい。ある態様では、クライアント１０２は、プリレンダリングのためのシステムメモリの特定の量を予約し、予約されたメモリが一杯になるまでプリレンダ・インスタンスを生成してもよい。いくつかの態様では、利用可能な帯域のパーセンテージに基づいて、システムの最大のネットワーク帯域が決定され、そしてプリレンダ・インスタンスが生成される。いくつかの態様では、クライアント１０２は、局所的な最大帯域を確認するために帯域測定をリモートサーバーから要求してもよく、プリレンダの設定を決定するためにその測定値を使用してもよい。
【００６９】
段階７０６では、クライアント１０２は、段階７０４にて決定されるようにシステム能力がサポートできる限りできるだけ多くの同時のプリレンダを実行するように構成される。いくつかのインスタンスにおいては、プリレンダの数はオプションメニュー等においてユーザにより構成可能であってもよい。
【００７０】
図８は、本開示の態様に従って検索結果ページ内に埋め込まれたプリレンダ命令を処理する例示的方法８００を説明するフローチャートである。上記したように、サーバー１０４は、クライアント１０２により処理するための検索結果ページ内にプリレンダ命令を埋め込んでもよい。クライアント１０２は、プリレンダリングのためのリンクを選択するために検索結果ページに埋め込まれたプリレンダ命令を特定してもよい。
【００７１】
段階８０２では、検索クエリーはサーバー１０４に送信される。上記したように、検索クエリーは、テキスト文字列、ファイル、画像、ビデオ、又は受信する検索結果の期待に沿ってコンテンツを特定する他の任意の方法であってよい。
【００７２】
段階８０４では、検索結果が受信される。検索結果は、段階８０２にて送信された検索クエリーに応答するものである。この検索結果は、上記したように（図２参照）関連性の高低でソートされた一連のテキストリンクとしてユーザに提示されてもよい。
【００７３】
段階８０６では、プリレンダ命令は、段階８０４で受信される検索結果に関連付けて特定される。例えば、プリレンダ命令は各結果に関連付けたＨＴＭＬタグに含まれていても良く、又はプリレンダ命令は、ＡＪＡＸ又は他のメッセージング・プロトコル等の他の手段によりクライアント１０２に送信されてもよい。例えば、プリレンダタグは、メッセージング・プロトコルにより受信されるプリレンダ命令に基づいて検索結果ページ上のＨＴＭＬタグの中へクライアントにより動的に挿入されてもよい。プリレンダ命令は複数のリンクをプリレンダ候補として特定してもよい。複数のプリレンダ候補が特定された場合、最も高いランキングの結果がクライアントによりプリレンダされるように、プリレンダ命令は、さらにプリレンダ候補のランキングを特定してもよい。クライアント１０２は、プリレンダ命令及びクライアントの利用可能なシステムリソース（図７参照）に基づいて、プリレンダすべき特定の数「ｎ」個のリンクを特定してもよい。段階８０８では、段階８０６で特定されたプリレンダ命令に関連付けられたページがプリレンダされる。クライアント１０２は、プリレンダリングを実行するかどうかを決定するときに他のデータに気づいていてもよい。例えば、クライアント１０２は、ユーザがリンクを選択し、その後ウェブブラウザーにおける「戻る」ボタンを押したことを知っていても良い。従って、ユーザは、いったん離れた検索結果と同じ結果を選択することはありそうもない。従って、クライアント１０２はクライアント１０２がたった今離れた検索結果の代わりに、次に最も可能性が高いプリレンダ候補の検索結果をプリレンダしてもよい。
【００７４】
段階８１０では、選択操作は、検索結果の１つに関して実行される。選択操作は、リンククライアント１０２によりプリレンダされたリンク上に存在する必要は必ずしもない。例えば、ユーザは、プリレンダ命令により特定されるリンク以外のリンクを選択してもよい。ユーザは、検索クエリーに応答して提供される結果は、様々な主題に関連し得て、そしてユーザは、常に最も普通に選択される検索結果を閲覧することを望むとは限らないので、様々な理由によりプリレンダされていないリンクを選択することを望み得る。
【００７５】
段階８１２では、測定基準が検索結果の選択に関連して記憶される。これらの測定基準によりブラウザーがプリレンダ動作の正確性を特定するデータを追跡することが可能となる。例えば、最適の環境では、ユーザは常にプリレンダ命令に関連付けられたリンクを選択する。ユーザがプリレンダされたリンクを選択したかどうかに関係する測定基準を収集することにより、システムは、プリレンダされたコンテンツの選択を最大化する一方、ユーザがプリレンダされたコンテンツを選択しそうにないプリレンダリングを最小化するという点に関してプリレンダリングの基準が適切かどうか判断してもよい。予測ミスとなったプリレンダ動作は、コンテンツがリクエストされるがアクセスされないという結果となる。このことは、帯域及び処理能力の浪費をもたらす。しかし、ユーザの利益を最大にし、首尾一貫したユーザの経験を提供するために、プリレンダリングは、実際上できるだけ多くの検索結果に用いられてもよい。記憶された測定基準は、解析又は処理のためにサーバー１０４へ送信されてもよく、あるいは測定基準は、ローカルクライアントに記憶され定期的にアップロードされてもよい。このようにして記憶された測定基準データは、アップロードする前にパーソナルユーザデータが削除され匿名化される。プリレンダ動作に関連する測定基準を保存する方法が以下にさらに記載される（図１０参照）。
【００７６】
図９は、本開示の態様に従って検索結果ページ内にプリレンダ命令を埋め込む方法９００の例を示すフローチャートである。方法９００は、サーバー１０４等の上で検索エンジンにより提供される一連の検索結果において、プリレンダ命令の１つ又は複数のセットを含むように動作する。ユーザに選択されそうな検索結果は、様々の要因を用いて一連の検索結果から特定され、プリレンダ命令を用いて選択されそうなプリレンダ候補として示される。これらの検索結果は、クライアントから受信された検索クエリーに応答してプリレンダ命令と共にクライアントに提供されてもよい。
【００７７】
段階９０２では、検索クエリーが受信される。検索クエリーは、テキスト文字列、画像、又はビデオ等の検索動作を構成するのに十分な任意の基準を含んでもよい。検索エンジンは、検索クエリー関連のある１つ又は複数の結果を特定してもよい。これらの結果は、関連のあるコンテンツを含むページへのハイパーリンク、リンクされたページのコンテンツの主な説明、又は検索クエリーに応答して普通に提供される任意の他のデータを含んでもよい。
【００７８】
段階９０４では、プリレンダ候補は、検索結果の中で決定される。プリレンダ候補は、検索クエリーに対する各結果の関連性（例えば、より多くの関連のある結果はプリレンダ候補となる可能性がより高い）に基づいて、又はクエリーに応答してユーザが通常選択するリンクの統計データに基づいて、又は他の基準により決定されてもよい。検索エンジンは、検索結果に向かうトラフィックの量、検索結果のホストがプリレンダリングをやめているかどうか、又は検索結果に関連付けられるコンテンツの量（例えば、検索結果ページのファイルサイズ、又は検索結果ページ及びリンクされたコンテンツに記憶されるデータの量）等のウェブ分析データに基づいてプリレンダ候補としてのリンクを特定してもよい。検索結果が経験するトラフィックの量は、検索エンジンにより検索結果が提供されるときにユーザが選択する検索結果の数に基づいて決定されてもよいいくつかの態様では、サーバーは、クライアントのネットワーク接続速度を知っていても良く、クライアント接続速度に基づいてプリレンダするリンクの適切な数を示しても良い。
【００７９】
プリレンダ候補は、１つ又は複数の要因又は信号を用いて決定されてもよい。これらは、検索クエリーの関連性、プリレンダ候補に含められるときにユーザが選択する周波数、検索結果に関連付けられるトラフィックの量、ユーザの位置、ユーザの接続速度、検索結果がプリレンダプロセスを止めているかどうか、及び検索結果に関連付けられるウェブページのサイズを含み得るがこれに限定されるわけではない。これらの要因又は信号は、重み付けがなされ、点数を生成するのに使用されてもよく、最も高い点数に関連付けられる結果がプリレンダ候補として特定され、プリレンダ命令と関連付けられても良い。特定の閾値より高い点数を有する全ての検索結果がプリレンダ候補として特定されてもよく、所定の数の検索結果のみがプリレンダ候補として特定されてもよい。
【００８０】
段階９０６では、例えばプリレンダＨＴＭＬタグを適切な検索結果に付加する等により、プリレンダ命令が検索結果ページ内に埋め込まれる。段階９０８では、プリレンダ命令が埋め込まれたこれらの結果がクライアント１０２に提供される。
【００８１】
図１０は、本開示の態様に従ってプリレンダ測定基準を取得する方法１０００の例を示すフローチャートである。リンクがプリレンダされたが選択されないという「誤判定」を最小にする一方、正確性を最大とすることを確実にするために、プリレンダリング動作の測定基準を取得することで、サーバー１０４の制御装置がどのようにしてリンクをプリレンダ候補として特定するかを管理することが可能となる。正確なデータを収集してプリレンダリング性能を校正するために、データは、データ収集プロセスにつきオプトイン契約をしたクライアントにより提供されてもよい。すべての保存されたユーザデータと同様に、保存された測定基準からパーソナルユーザデータを除去して匿名にするために適切な事前注意が払われる。測定基準データを提出するユーザは２つのグループ、すなわちプリレンダタグを受信するが現実にはそれらをプリレンダしない「抑制」グループと、プリレンダ動作を現実に実行する「テスト」グループとに分かれてもよい。
【００８２】
予測ミスとなった選択は、検索結果をホストするページのための、及びクライアントがプリレンダリングを実行するためのシステムリソースを無駄遣いする結果となる。しかし、一貫したユーザの利益及び最適なユーザの経験を提供するに充分なほど対象範囲は広くすべきでもある。ブラウザーは、プリレンダされたページがいつ可視のブラウザインスタンスの中に交換して入れられたかを知ることができ、よってスワップインが起きた時刻とページが完全に読み込まれる時刻との間の時間を記録することが可能である。この値は、プリレンダ動作によりどれだけの時間が節約できたかを示す。
【００８３】
抑制グループは、検索結果の選択と、選択された結果のブラウザーにおける表示との間の時間の大きさを追跡する基準を提供する。この結果は、プリレンダリング動作を実行するユーザーの全体としての利益を判定するためにプリレンダされたページがブラウザーにおいて表示されるのに要した時間の大きさと比較してもよい。様々なリンクに対してプリレンダリング動作を可能とすることにより節約される時間を決定することにより、最適な時間を節約するリンクがプリレンダリングにより選択されてもよい。「誤判定」または他の準最適なプリレンダ性能を頻繁に生じるリンクは、特にプリレンダリングのための悪い候補としてみなしても良い。このようにして、方法１０００は、最大の正確性と対象範囲を確実にするプリレンダリング動作を微調整するのに使用され得る測定基準を提供する。
【００８４】
段階１００２では、クライアント１０２は、これらの検索結果に関連付けられた一連のプリレンダ命令とともに一連の検索結果を受信する。もし、クライアント１０２が「テスト」クライアントである場合は、そのプリレンダ命令に関連付けられた検索結果は、隠されたブラウザインスタンスにおいてプリレンダされてもよい。もし、クライアントが「抑制」クライアントである場合は、その検索結果は、プリレンダされなくてもよい。「テスト」クライアントは、さらにサブグループに分割されてもよい。例えば、テストクライアントのそれぞれが、１番から９番までのサブグループに含まれていても良い。これらのサブグループは、各プリレンダ技術に関連する性能上の利点を判定するために異なるプリレンダ技術（例えば、異なる検索結果選択方法、プリレンダリングのための異なる閾値）を採用しても良い。「リンクプリレンダ実験」（ＬＰＥ）という用語が検索結果ページのアドレスに追加する等により、特定のテスト識別子が検索結果ページのアドレスにおけるクライアントに特定されてもよい。ＬＰＥなる用語は、提供された検索結果に関連付けられた特定のプリレンダ実験に対して１から９等の値と関連付けられても良い。クライアントはプリレンダプロセスを改善するために測定基準を記憶する時に、ＬＰＥという用語を追跡してもよい。
【００８５】
段階１００４では、ユーザのクライアントとの意思疎通は、マウスクリック、タッチスクリーンイベント、又は特定の結果についてキーボードを押すこと等により特定の検索結果の選択について監視される。
【００８６】
段階１００６では、選択された結果に関連付けられる任意のリダイレクション識別子が特定される。検索エンジンは、検索結果を表示する時に頻繁にリダイレクションを使用する。検索結果ページ内のハイパーリンクは、検索エンジンのリダイレクトページにリンクしていてもよく、プリレンダされる実際のコンテンツを指し示す。リダイレクション動作を伴うページが「抑制」クライアントを用いて選択されるときに、方法は、リダイレクションページがリダイレクトする結果の代わりの結果として、リダイレクションページを特定してもよい。測定基準が、適切に、リダイレクションページではなく実際の宛先ページの読み込み時間に関係することを確実にするために、そのリダイレクションページの目標アドレスはプリレンダ命令内に指定されてもよい。このようにして、クライアントは、このようなリダイレクションが検索結果ページ上で起きる時を「知る」ことができ、したがってプリレンダされたであろう検索結果におけるアドレスの記録を維持でき、したがって実際の宛先ページの読み込み時間を正しく記録できる。
【００８７】
テスト・クライアントが実験の目的のために複数のサブグループに分割される場合、リダイレクション識別子は、実験の結果を追跡するために使用され得る。例えば、一連の検索結果は、所与の一連のプリレンダ命令と所与のテスト識別子（例えば、プリレンダすべきリンクを選択する特定のアルゴリズムを特定する）に関連付けられていてもよい。ユーザが提示されたリンクの１つを選択する時に、その選択されたリンクに関連付けられるリダイレクションリンクは、実験サブグループ（例えば、１から９）、その選択されたリンク、検索クエリー、及びその選択されたリンクがプリレンダされたかどうかをを示してもよい。
【００８８】
段階１００８では、選択された結果のページの読み込み時間が測定される。この読み込み時間は、ユーザが検索結果を選択してからその検索結果がブラウザーに完全に読み込まれるまでの時間に関係する。「抑制」クライアントでは、この読み込み時間は、そのコンテンツをホストするサーバーからの、検索結果に関連付けられるコンテンツをネットワークを介してリクエストし、ブラウザーにおいてそのコンテンツをレンダリングする動作を含む。「テスト」クライアントにおいて、読み込み時間は、プリレンダ動作の間受信していない任意のコンテンツをリクエストし、そしてブラウザーにそのコンテンツを表示するのに要する時間を含む。通常、「テスト」クライアントに関連付けられる読み込み時間は、「抑制」クライアントに関連付けられる時間より少なくあるべきである。なぜなら、「テスト」クライアントは、トランザクションのネットワークコンテンツリクエスト部分に関し先んじたスタートを切るからである。「テスト」クライアント及び「抑制」クライアントの読み込み時間の比較により、プリレンダリングによりユーザにとってどの程度の時間が節約できるかについての幅広い視点が与えられる。
【００８９】
段階１０１０では、検索結果の選択、検索結果選択がプリレンダされたかどうか、ＬＰＥ数、及び検索結果選択の読み込み時間が測定基準として記憶される。これらの測定基準は、プリレンダ命令の正確性（例えば、プリレンダされた検索結果が選択されたかどうか）及びプリレンダ動作により節約された時間（例えば、「抑制」クライアントにおける読み込み時間と「テスト」クライアントにおける読み込み時間との差）を示すデータを提供してもよい。測定基準は、解析のためにすぐにサーバー１０４にアップロードされ、又はサーバー１０４に定期的にアップロードするためにクライアント１０２に記憶されてもよい。サーバー１０４は、プリレンダの的確性が低い検索結果からのプリレンダ命令を除去する等のプリレンダすべき個々の結果を特定するための測定基準で自動処理を実行してもよい。
【００９０】
図解された方法の段階は、限定することを意図するものではない。その方法の機能は、ここで示したよりも少ないの数又は多い数の段階で存在することができ、説明した方法により、事象の特定の順序は図において示されたものと異なってもよい。
【００９１】
ここに記載されたシステム及び方法は、検索結果ページのプリレンダリングのための改良された方法とシステムを有利に提供する。プリレンダ命令を検索結果ページ内に埋め込むことにより、ユーザの経験は、ユーザが選択する可能性の高い検索結果に対する待ち時間を減少させることで改善され得る。サイトトラフィック、結果の関連性、特定の検索クエリー、ナビゲーションの履歴データ、及び対象範囲及び正確性を最大化し、誤判定及び帯域の浪費を最小化するプリレンダ命令を提供するための他の測定基準等の変数を考慮に入れ得るので、このように検索エンジンはプリレンダ命令を提供するのに適している。検索エンジンは、プリレンダ経験を改善するために使用される測定基準を蓄積するクライアントデバイスと通信もし得る。
【００９２】
上述の特徴のこれらの並びに他の変形及び組み合わせは、特許請求の範囲で定義した技術から離れることなく利用することができるので、これまで説明した典型的な実施の形態は、特許請求の範囲で定義した技術を限定するものではなく、概説するためのものであると理解すべきである。当然のことながら、ここに記載した例示的な実施の形態（及び、「等の」、「例えば」、「含む」、のような語句）は、権利化を要求する技術を特定の実施例に限定するものと解釈すべきでなく、実施例は多くの可能な形態の一部を概説するためのものである。
【図１】
0006013514.tif 000002
【図２】
0006013514.tif 000003
【図３】
0006013514.tif 000004
【図４】
0006013514.tif 000005
【図５】
0006013514.tif 000006
【図６】
0006013514.tif 000007
【図７】
0006013514.tif 000008
【図８】
0006013514.tif 000009
【図９】
0006013514.tif 000010
【図１０】
0006013514.tif 000011