下に続くのは、コンピュータネットワーク環境内での情報リソースのコンテンツの表示を制御する方法、装置、およびシステムに関する様々な概念とその方法、装置、およびシステムの実施態様との、より詳細な説明である。上で紹介され、下でより詳細に議論される様々な概念は、説明される概念が実施態様のどの特定の形にも限定されないので、多数の形のいずれにおいても実施され得る。
ページなどの多数の情報リソースに関して、ページのそれぞれのレイアウトは、ユーザ、パブリッシャ、または広告主もしくは広告ネットワークなどのサードパーティに対するページ有用性を最大にしない。たとえば、ユーザは、1つのサードパーティコンテンツスロットだけを含むウェブページを訪れることができる。そのような場合に、多数のサードパーティコンテンツプロバイダ(転売業者または大規模だが短いブランドキャンペーンなど)は、ユーザがウェブページを訪れるかこれにアクセスする時にユーザに連絡することを望む可能性がある。サードパーティコンテンツプロバイダは、ウェブページを訪れるユーザに彼らのコンテンツを提示させるために平均的なサードパーティコンテンツスロットに関してウェブページのパブリッシャが稼ぐものより多くを支払うつもりがある場合がある。ウェブページが、それぞれのサードパーティコンテンツアイテムをユーザに提示することを望むサードパーティコンテンツプロバイダの数より少数のサードパーティコンテンツスロットを含む場合があることを考慮すると、コンテンツパブリッシャは、サードパーティコンテンツプロバイダに便宜をはかるためにウェブページ内に追加のサードパーティコンテンツスロットを挿入すると同時に、ウェブページへのユーザの訪問から生成される収益を増加させることを望む可能性がある。さらに、パブリッシャは、パブリッシャの情報リソース上でサードパーティコンテンツアイテムをポストする要求の増加に応答して、サードパーティコンテンツスロットを動的に追加するのに適当なリソースを有しない場合がある。
コンテンツパブリッシャは、追加のサードパーティコンテンツスロットを含むようにウェブページのスクリプトを手動で変更することによって、それぞれのウェブページ内に含まれるサードパーティコンテンツスロットの個数を増加させることができる。しかし、サードパーティコンテンツスロットの手動挿入は、コンテンツパブリッシャが、リアルタイムで(情報リソースがコンピューティングデバイス上での表示のためにレンダリングされる時に)ユーザに表示すべきサードパーティコンテンツスロットの個数を制御することを可能にしない。たとえば、コンテンツスロットの手動挿入は、コンテンツパブリッシャが、追加のサードパーティコンテンツスロットから生成される収益が所定のしきい値を超える場合に追加のサードパーティコンテンツスロットを挿入することを選択するのみである可能性がある場合には、不適切である可能性がある。さらに、他のパラメータの中でもユーザ、収益差に基づく、ウェブページ上で示されるサードパーティコンテンツスロットの個数の変更は、コンテンツスロットの手動挿入を使用する時に、リアルタイムでは達成され得ない。さらに、多数のウェブページのコンテンツパブリッシャは、追加のコンテンツスロットを含めるためにウェブページのそれぞれを手動で更新しなければならない可能性があり、これは、極端に時間がかかるものである可能性がある。
本開示は、最小限のパブリッシャ関与を伴う、クライアント側でリアルタイムでウェブページ上のコンテンツスロットの配置を自動的に管理するシステムおよび方法に関する。クライアント側でコンテンツスロットの配置を管理できることによって、システムは、ユーザ、パブリッシャ、または広告主などのコンテンツプロバイダの様々な目標に基づいてコンテンツスロットの配置を最適化することができる。さらに、このシステムは、ヒストリックウェブページ対話からの信号を識別し、没頭を増加させるためにコンテンツスロットの配置を適合させることができる。さらに、このシステムは、挿入されるコンテンツスロットの配置、サイズ、およびフォーマットに関してインテリジェントな決定を行うことができる。信号は、ウェブページフォーマット、ウェブページがその上で表示されるデバイスタイプ、および、とりわけイメージ、ビデオ、テキストブロック、タイトル/ヘッダを含むウェブページ上の他の要素を含むことができる。さらに、このシステムは、ユーザ没頭を増加させるためにウェブページ内にアクションの呼出しまたは他のコンテンツオブジェクトを挿入することができる。
本開示において、データ処理システムは、ウェブページ内に挿入されるサードパーティコンテンツスロットの個数の自動的で動的な調整を可能にすることができる。クライアントデバイスからの、サードパーティコンテンツがウェブページ上で表示されることの要求に応答して、データ処理システムは、クライアントデバイスにコンテンツスロット挿入スクリプトを送ることができる。コンテンツスロット挿入スクリプトは、クライアントデバイス上で実行される時に、情報リソースのドキュメントオブジェクトモデル(DOM)ツリーを識別し、DOMツリー内に含まれる1つまたは複数のDOM要素を識別し、広告配置ポリシに従って1つまたは複数の候補広告配置位置を判定することができる。コンテンツスロット挿入スクリプトは、コンピューティングデバイスに、候補広告配置位置から、DOMツリー内の広告配置位置を選択すること、および選択された広告配置位置において広告を表示することを行わせることもできる。コンテンツスロット挿入スクリプトを使用することによって、データ処理システムは、クライアントデバイスがウェブページへのアクセスを要求することに応答してクライアントデバイス上で表示されるウェブページ内に挿入されるサードパーティコンテンツスロットの個数を自動的かつ動的に調整する(たとえば、増加させまたは減少させる)ことができる。この形において、1つまたは複数のパラメータに基づいて、同一のウェブページが、コンテンツパブリッシャからの関与を全く伴わずに、異なるクライアントデバイス上で異なる個数のサードパーティコンテンツスロットを有して供給され得る。
図1は、情報リソース内のコンテンツスロットの配置を自動的に管理する環境の1つの実施態様を示すブロック図である。環境100は、少なくとも1つのデータ処理システム110を含む。データ処理システム110は、少なくとも1つのプロセッサ(または処理回路)およびメモリを含むことができる。メモリは、プロセッサ上で実行される時に、プロセッサに本明細書で説明される動作のうちの1つまたは複数を実行させるプロセッサ実行可能命令を記憶する。プロセッサは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、その他、またはそれらの組合せを含むことができる。メモリは、プロセッサにプログラム命令を提供することのできる、電子、光、磁気、または任意の他の、ストレージデバイスまたは伝送デバイスを含むことができるが、これに限定はされない。メモリは、フロッピディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ASIC、FPGA、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能プログラマブルROM(EEPROM)、消去可能プログラマブルROM(EPROM)、フラッシュメモリ、光媒体、またはプロセッサがそこから命令を読み取ることのできる任意の他の適切なメモリをさらに含むことができる。命令は、任意の適切なコンピュータプログラミング言語からのコードを含むことができる。データ処理システム110は、様々な機能を実行することのできる1つまたは複数のコンピューティングデバイスまたはサーバを含むことができる。いくつかの実施態様において、データ処理システム110は、オークションをホスティングするように構成された広告オークションシステム(advertising auction system)を含むことができる。いくつかの実施態様において、データ処理システム110は、広告オークションシステムを含まないが、ネットワーク105を介して広告オークションシステムと通信するように構成される。
ネットワーク105は、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、メトロエリアネットワーク、または他のエリアネットワーク、イントラネット、衛星ネットワーク、音声携帯電話通信ネットワークまたはデータ携帯電話通信ネットワークなどの他のコンピュータネットワーク、およびそれらの組合せなどのコンピュータネットワークを含むことができる。環境100のデータ処理システム110は、ネットワーク105を介して、たとえば少なくとも1つのコンテンツプロバイダコンピューティングデバイス115、少なくとも1つのコンテンツパブリッシャコンピューティングデバイス120、または少なくとも1つのクライアントデバイス125と通信することができる。ネットワーク105は、クライアントデバイス125と、データ処理システム110と、1つまたは複数のコンテンツソース、たとえば、とりわけウェブサーバ、広告サーバとの間で情報を中継する任意の形のコンピュータネットワークとすることができる。たとえば、ネットワーク105は、インターネットおよび/または、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク、もしくは他のタイプのデータネットワークなど、他のタイプのデータネットワークを含むことができる。ネットワーク105は、ネットワーク105内でデータを受信し、かつ/または送信するように構成された任意の個数のコンピューティングデバイス(たとえば、コンピュータ、サーバ、ルータ、ネットワークスイッチなど)をも含むことができる。ネットワーク105は、任意の個数のハードワイヤード接続および/またはワイヤレス接続をさらに含むことができる。たとえば、クライアントデバイス125は、ネットワーク105内の他のコンピューティングデバイスにハードワイヤードされた(たとえば、光ファイバケーブル、CAT5ケーブルなどを介して)トランシーバとワイヤレスに(たとえば、WiFi、セルラー、無線などを介して)通信することができる。
コンテンツプロバイダコンピューティングデバイス115は、クライアントデバイス125における情報リソース上の表示のための広告などのコンテンツアイテムを提供するために、コンテンツプロバイダエンティティによって運営されるサーバまたは他のコンピューティングデバイスを含むことができる。コンテンツプロバイダコンピューティングデバイス115によって提供されるコンテンツは、主コンテンツ(primary content)、たとえばコンテンツパブリッシャコンピューティングデバイス120によって提供されるコンテンツを含むウェブサイトまたはウェブページなどの情報リソース上での表示のためのサードパーティコンテンツアイテムまたはクリエイティブ(たとえば、広告)を含むことができる。コンテンツアイテムは、検索結果ウェブページ上にも表示され得る。たとえば、コンテンツプロバイダコンピューティングデバイス115は、ウェブページの主コンテンツが会社によって提供される、会社のウェブページなど、コンテンツウェブページのコンテンツスロット内での表示のためまたは検索エンジンによって提供される検索結果ランディングページ(search results landing page)上での表示のための広告または他のコンテンツアイテムを提供しまたはそのソースになることができる。コンテンツプロバイダコンピューティングデバイス115に関連するコンテンツアイテムは、スマートフォンまたは他のクライアントデバイス125上のアプリケーション(ゲーミングアプリケーション、全地球測位システム(GPS)アプリケーションもしくは地図アプリケーション、または他のタイプのアプリケーションなど)の実行の一部として表示されるコンテンツなど、ウェブページ以外の情報リソース上に表示され得る。
コンテンツパブリッシャコンピューティングデバイス120は、ネットワーク105を介する表示のための主コンテンツを提供するためにコンテンツパブリッシングエンティティによって運営されるサーバまたは他のコンピューティングデバイスを含むことができる。たとえば、コンテンツパブリッシャコンピューティングデバイス120は、ウェブページ上での表示のための主コンテンツを提供するウェブページオペレータを含むことができる。主コンテンツは、コンテンツパブリッシャコンピューティングデバイス120によって提供されるもの以外のコンテンツを含むことができ、ウェブページは、コンテンツプロバイダコンピューティングデバイス115からのサードパーティコンテンツアイテム(たとえば、広告)の表示のために構成されたコンテンツスロットを含むことができる。たとえば、コンテンツパブリッシャコンピューティングデバイス120は、ある会社のウェブサイトを運営することができ、ウェブサイトのウェブページ上での表示のためにその会社に関するコンテンツを提供することができる。ウェブページは、コンテンツプロバイダコンピューティングデバイス115の広告などのサードパーティコンテンツアイテムの表示のために構成されたコンテンツスロットを含むことができる。いくつかの実施態様において、コンテンツパブリッシャコンピューティングデバイス120は、検索エンジンウェブサイトを運営する検索エンジンオペレータの検索エンジンコンピューティングデバイス(たとえば、サーバ)を含む。検索エンジンウェブページ(たとえば、結果またはランディングウェブページ)の主コンテンツは、検索の結果ならびにコンテンツプロバイダコンピューティングデバイス115からのコンテンツアイテムなどのコンテンツスロット内に表示されるサードパーティコンテンツアイテムを含むことができる。いくつかの実施態様において、コンテンツパブリッシャコンピューティングデバイス120は、ビデオコンテンツを供給するサーバを含むことができる。
クライアントデバイス125は、コンテンツパブリッシャコンピューティングデバイス120によって提供されるコンテンツ(たとえば、主ウェブページコンテンツまたは他の情報リソース)およびコンテンツプロバイダコンピューティングデバイス115によって提供されるコンテンツ(たとえば、ウェブページのコンテンツスロット内での表示のために構成された広告などのサードパーティコンテンツアイテム)などのデータを表示するためにネットワーク105を介して通信するように構成されたコンピューティングデバイスを含むことができる。クライアントデバイス125、コンテンツプロバイダコンピューティングデバイス115、およびコンテンツパブリッシャコンピューティングデバイス120は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、携帯情報端末、モバイルデバイス、消費者コンピューティングデバイス、サーバ、クライアント、デジタルビデオレコーダ、テレビジョン用のセットトップボックス、ビデオゲーム機、またはネットワーク105を介して通信するように構成された任意の他のコンピューティングデバイスを含むことができる。クライアントデバイス125は、それを介してエンドユーザがコンテンツを受信する要求をサブミットすることのできる通信デバイスとすることができる。要求は、検索エンジンへの要求とすることができ、要求は、検索照会を含むことができる。いくつかの実施態様において、要求は、ウェブページにアクセスする要求を含むことができる。
コンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、およびクライアントデバイス125は、プロセッサおよびメモリすなわち処理回路を含むことができる。メモリは、プロセッサ上で実行される時に、プロセッサに本明細書で説明される動作のうちの1つまたは複数を実行させる機械命令を記憶する。プロセッサは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、その他、またはそれらの組合せを含むことができる。メモリは、プロセッサにプログラム命令を提供することのできる、電子、光、磁気、または任意の他の、ストレージデバイスまたは伝送デバイスを含むことができるが、これに限定はされない。メモリは、フロッピディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ASIC、FPGA、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能プログラマブルROM(EEPROM)、消去可能プログラマブルROM(EPROM)、フラッシュメモリ、光媒体、またはプロセッサがそこから命令を読み取ることのできる任意の他の適切なメモリをさらに含むことができる。命令は、任意の適切なコンピュータプログラミング言語からのコードを含むことができる。
コンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、およびクライアントデバイス125は、1つまたは複数のユーザインターフェースデバイスをも含むことができる。一般に、ユーザインターフェースデバイスは、感覚情報(たとえば、ディスプレイ上の視覚化、1つまたは複数のサウンドなど)を生成することによってユーザにデータを伝え、かつ/またはユーザから受け取られた感覚情報を電子信号に変換する(たとえば、キーボード、マウス、ポインティングデバイス、タッチスクリーンディスプレイ、マイクロホンなど)任意の電子デバイスを指す。1つまたは複数のユーザインターフェースデバイスは、様々な実施態様に従って、コンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、およびクライアントデバイス125のハウジングの内部(たとえば、内蔵ディスプレイ、マイクロホンなど)またはコンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、およびクライアントデバイス125のハウジングの外部(たとえば、ユーザコンピューティングデバイス115に接続されたモニタ、ユーザコンピューティングデバイス115に接続されたスピーカなど)とすることができる。たとえば、コンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、およびクライアントデバイス125は、電子ディスプレイを含むことができ、この電子ディスプレイは、ネットワーク105を介して1つまたは複数のコンテンツソースからおよび/またはデータ処理システム110から受信されたウェブページデータを使用してウェブページを視覚的に表示する。いくつかの実施態様において、コンテンツ配置キャンペーンマネージャまたは広告主などのサードパーティコンテンツプロバイダは、コンテンツプロバイダコンピューティングデバイス115を介してデータ処理システム110と通信することができる。いくつかの実施態様において、広告主は、コンテンツプロバイダコンピューティングデバイス115のユーザインターフェースデバイス上に表示されたユーザインターフェースを介してデータ処理システム110と通信することができる。
データ処理システム110は、少なくとも1つのサーバを含むことができる。たとえば、データ処理システム110は、少なくとも1つのデータセンタまたはサーバファーム内に配置された複数のサーバを含むことができる。いくつかの実施態様において、データ処理システム110は、サードパーティコンテンツ配置システム、たとえば広告サーバまたは広告配置システムを含むことができる。データ処理システム110は、少なくとも1つのコンテンツ要求モジュール130、少なくとも1つのコンテンツ選択モジュール135、少なくとも1つのスクリプトプロバイダモジュール140、および少なくとも1つのデータベース145を含むことができる。コンテンツ要求モジュール130、コンテンツ選択モジュール135、およびスクリプトプロバイダモジュール140は、それぞれ、少なくとも1つの処理ユニット、サーバ、仮想サーバ、回路、エンジン、エージェント、機器、または、データベース145と通信し、ネットワーク105を介して他のコンピューティングデバイス(たとえば、コンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、またはクライアントデバイス125)と通信するように構成されたプログラマブル論理アレイなどの他の論理デバイスを含むことができる。
コンテンツ要求モジュール130、コンテンツ選択モジュール135、およびスクリプトプロバイダモジュール140は、少なくとも1つのコンピュータプログラムまたは少なくとも1つのスクリプトを含みまたは実行することができる。コンテンツ要求モジュール130、コンテンツ選択モジュール135、およびスクリプトプロバイダモジュール140は、別々の構成要素、単一の構成要素、またはデータ処理システム110の一部とすることができる。コンテンツ要求モジュール130、コンテンツ選択モジュール135、およびスクリプトプロバイダモジュール140は、1つまたは複数のスクリプトを実行するように構成された1つまたは複数のプロセッサなど、ソフトウェアとハードウェアとの組合せを含むことができる。
データ処理システム110は、1つまたは複数のコンテンツリポジトリまたはデータベース145をも含むことができる。データベース145は、データ処理システム110にローカルとすることができる。いくつかの実施態様において、データベース145は、データ処理システム110に対してリモートとすることができるが、ネットワーク105を介してデータ処理システム110と通信することができる。データベース145は、クライアントデバイス125に供給するために、とりわけ、ウェブページ、ウェブページの一部、サードパーティコンテンツアイテム(たとえば、広告)、およびコンテンツスロット挿入スクリプトを含むことができる。
コンテンツ要求モジュール130は、クライアントデバイス125からコンテンツの要求を受信することができる。コンテンツの要求は、情報リソースの要求、1つまたは複数のサードパーティコンテンツアイテムの要求、コンテンツスロット挿入スクリプトの要求、またはそれらの組合せを含むことができる。いくつかの実施態様において、コンテンツの要求は、サードパーティコンテンツの要求を含むことができる。いくつかの実施態様において、サードパーティコンテンツの要求は、サードパーティコンテンツがその上に表示される情報リソースのアドレスまたは識別子を含むことができる。サードパーティコンテンツの要求は、コンテンツの要求に応答して提供すべきコンテンツを判定するのにデータ処理システム110によって使用され得る1つまたは複数のパラメータを含みまたは識別することもできる。パラメータは、要求されたコンテンツをその中に挿入すべきコンテンツスロットのサイズを識別することができる。パラメータは、情報リソースに関連するコンテンツのタイプ、要求されるサードパーティコンテンツのタイプ(たとえば、テキスト、イメージ、ビデオなど)、クライアントデバイス情報、要求されるサードパーティコンテンツアイテムのサイズ情報、またはそれらの組合せを識別することができる。いくつかの実施態様において、要求は、コンテンツスロット挿入スクリプトを識別することができる。いくつかの実施態様において、コンテンツの要求は、情報リソースのコンテンツパブリッシャがコンテンツスロット挿入サービスにサブスクライブするか他の形でオプトインしたことを示す識別子を含むことができる。
いくつかの実施態様において、コンテンツの要求は、情報リソースの要求を含むことができる。情報リソースの要求は、情報リソースのアドレスまたは識別子を含むことができる。たとえば、情報リソースの要求は、ウェブページなどの特定のリソースのユニフォームリソースロケータ(URL)(たとえば、「http://www.example.com」)を含むことができる。情報リソースの要求は、クライアントデバイス情報(デバイスタイプ、デバイス識別子、またはそれらの組合せなど)をも含むことができる。
いくつかの実施態様において、コンテンツの要求は、コンテンツスロット挿入スクリプトの要求を含むことができる。いくつかの実施態様において、コンテンツスロット挿入スクリプトの要求は、要求されるスクリプトの表示、情報リソースのアドレスもしくは識別子、またはそれらの組合せを含むことができる。いくつかの実施態様において、コンテンツスロット挿入スクリプトの要求は、コンテンツスロット挿入スクリプトを識別することができる。いくつかの実施態様において、コンテンツスロット挿入スクリプトの要求は、情報リソースのコンテンツパブリッシャがコンテンツスロット挿入サービスにサブスクライブするか他の形でオプトインしたことを示す識別子を含むことができる。いくつかの実施態様において、コンテンツ要求モジュール130は、コンテンツの要求を解析し、コンテンツの要求をコンテンツ選択モジュール135またはスクリプトプロバイダモジュール140に転送すべきであると判定するように構成され得る。たとえば、コンテンツスロット挿入スクリプトが、受信されたコンテンツの要求に応答してクライアントデバイス125に送られるべきであると判定される場合に、コンテンツ要求モジュール130は、コンテンツの要求をスクリプトプロバイダモジュール140に転送することができる。そうではない場合には、要求モジュール130は、コンテンツの要求をコンテンツ選択モジュール135に転送することができる。いくつかの実施態様において、コンテンツ要求モジュール130は、コンテンツの要求をコンテンツ選択モジュール135とスクリプトプロバイダモジュール140との両方に転送すべきであると判定することができる。コンテンツ要求モジュール130は、コンテンツの要求のタイプ(たとえば、情報リソースの要求、サードパーティコンテンツの要求、またはコンテンツスロット挿入スクリプトの要求)、コンテンツ要求内のインジケータ(たとえば、コンテンツスロット挿入スクリプトを示すインジケータ、または情報リソースがコンテンツスロット挿入に関して適格であることを示すインジケータ)、コンテンツの要求内の情報リソース識別子、またはそれらの組合せに基づいて、スクリプトがクライアントデバイス125に送られるべきか否かを判定することができる。いくつかの実施態様において、コンテンツ要求モジュール130は、情報リソースの識別を情報リソース識別子(たとえば、コンテンツスロット挿入スクリプトを受信するのに適格である情報リソース識別子)のリストと比較することによって、スクリプトがクライアントデバイス125に送られるべきか否かを判定することができる。いくつかの実施態様において、情報リソース識別子は、URLとすることができる。いくつかの実施態様において、情報リソース識別子は、情報リソースが属するドメインとすることができる。いくつかの実施態様において、情報リソース識別子は、情報リソースをホスティングするサーバに対応するIPアドレスとすることができる。いくつかの実施態様において、コンテンツ要求モジュール130は、スクリプトがクライアントデバイス125に送られるべきか否かをチェックせずに、コンテンツの要求をコンテンツ選択モジュール135に自動的に転送することができる。
コンテンツ選択モジュール135は、受信されたコンテンツの要求に応答してクライアントデバイス125に送信されるべきコンテンツを判定するように構成され得る。コンテンツ選択モジュール135は、コンテンツの要求内に含まれる情報に基づいて、クライアントデバイス125に送られるべきコンテンツを判定することができる。たとえば、情報リソースの要求の受信時に、コンテンツ選択モジュール135は、クライアントデバイスに送られるべきコンテンツを判定するために、コンテンツの要求内の情報リソースのアドレスまたは識別子を使用することができる。1つまたは複数のサードパーティコンテンツアイテムの要求を受信する場合に、コンテンツ選択モジュール135は、サードパーティコンテンツアイテムがその上で提示される情報リソースのアドレスまたは識別子、情報リソースのコンテンツタイプ情報(たとえば、スポーツ、ニュース、音楽、映画、旅行など)、サードパーティコンテンツアイテムがその中に表示されるスロットのサイズ情報、クライアントデバイス情報(たとえば、デバイスタイプ、デバイス識別子、デバイス位置など)に基づいて、サードパーティコンテンツアイテムを選択することができる。いくつかの実施態様において、サードパーティコンテンツの要求は、情報リソース上でサードパーティコンテンツアイテムを表示するための最小収益額(または最小入札値)をも含むことができる。いくつかの実施態様において、コンテンツ選択モジュール135は、広告オークションシステムと通信し、クライアントデバイスから受信されたサードパーティコンテンツの要求内に含まれる広告オークションシステム情報を提供することができる。コンテンツ選択モジュール135は、サードパーティコンテンツの要求内に含まれる情報を提供することに応答して広告オークションシステムから1つまたは複数のサードパーティコンテンツアイテムを受信することもできる。いくつかの実施態様において、コンテンツ選択モジュール135は、データベース145にアクセスし、クライアントデバイス125に送るためにコンテンツを取り出すことができる。
いくつかの実施態様において、コンテンツ選択モジュール135は、スクリプトがコンテンツの要求に応答してクライアントデバイス125に送られるべきか否かを判定するように構成され得る。コンテンツ選択モジュール135は、コンテンツ要求のタイプ(たとえば、情報リソースの要求、サードパーティコンテンツの要求、またはコンテンツスロット挿入スクリプトの要求)、コンテンツの要求内のインジケータ(たとえば、コンテンツスロット挿入スクリプトを示すインジケータ、または情報リソースがコンテンツスロット挿入に関して適格であることを示すインジケータ)、コンテンツの要求内の情報リソース識別子、またはそれらの組合せに基づいて、スクリプトがクライアントデバイス125に送られるべきか否かを判定することができる。いくつかの実施態様において、コンテンツ選択モジュール135は、情報リソースの識別を情報リソース識別子(たとえば、コンテンツスロット挿入スクリプトを受信するのに適格である情報リソース識別子)のリストと比較することによって、スクリプトがクライアントデバイス125に送られるべきか否かを判定することができる。スクリプトがクライアントデバイス125に送られるべきであると判定する時に、コンテンツ選択モジュール135は、コンテンツの要求またはその表示をスクリプトプロバイダモジュール140に転送することができる。いくつかの実施態様において、コンテンツ選択モジュール135は、それでも、コンテンツスロット挿入スクリプトなどのスクリプトと一緒にクライアントデバイス125に送られるべきサードパーティコンテンツアイテムを選択することができる。
スクリプトプロバイダモジュール140は、データベース145からコンテンツスロット挿入スクリプトを取り出し、取り出されたスクリプトをクライアントデバイス125に(またはクライアントデバイス125に送るために別のエンティティに)送信するように構成され得る。いくつかの実施態様において、コンテンツスロット挿入スクリプトは、別々にまたはサードパーティコンテンツアイテムと共に、クライアントデバイス125に送信され得る。いくつかの実施態様において、スクリプトプロバイダモジュール140、コンテンツ選択モジュール135、またはデータ処理システム110の別のエンティティは、要求された情報リソースと一緒にコンテンツスロット挿入スクリプトをクライアントデバイス125に送ることができる。たとえば、スクリプトプロバイダモジュール140、コンテンツ選択モジュール135、またはデータ処理システム110の別のエンティティは、情報リソースをクライアントデバイス125に送る前に、コンテンツスロット挿入スクリプトを情報リソース内に挿入することができる。
コンテンツスロット挿入スクリプトは、コンピュータ実行可能命令を含むことができる。コンピュータ実行可能命令は、とりわけ、ハイパーテキストマークアップ言語(HTML)、エクステンシブルハイパーテキストマークアップ言語(XHTML)、エクステンシブルマークアップ言語(XML)、カスケーディングスタイルシート(CSS)、およびJavaScript(登録商標)などのスクリプトを含むことができる。コンピュータ実行可能命令は、クライアントデバイス125に、コンテンツ要求モジュール130によって受信されたコンテンツ要求を送信させたアプリケーションなど、クライアントデバイス125のアプリケーション内で実行され得る。アプリケーションは、たとえば、インターネットブラウザ、モバイルアプリケーション、ゲーミングアプリケーション、GPSアプリケーション、またはコンピュータ実行可能命令を読み取り、実行することのできる任意の他のコンピュータプログラムを含むことができる。短い概要において、コンピュータ実行可能命令は、クライアントデバイス125のプロセッサによって実行される時に、クライアントデバイスのアプリケーションに、(a)情報リソースのドキュメントオブジェクトモデル(DOM)ツリーを識別すること、(b)DOMツリー内に含まれる1つまたは複数のDOM要素を識別すること、(c)広告配置ポリシに従って1つまたは複数の候補広告配置位置を判定すること、(d)候補広告配置位置から、DOMツリー内の広告配置位置を選択すること、および(e)選択された広告配置位置において広告を表示することを行わせることができる。コンテンツスロット挿入スクリプトの機能に関する追加の詳細は、本明細書で図2、図3、および図4に関して提供される。
図2を参照すると、図2は、例示的な実施態様による、情報リソース内のコンテンツスロットの配置を自動的に管理するコンテンツスロット挿入システム200の1つの実施態様を示すブロック図である。コンテンツスロット挿入システム200は、アプリケーション205、情報リソース210、リソース分析モジュール222、配置位置決定モジュール225、位置選択モジュール228、およびコンテンツ表示モジュール230を含むことができる。いくつかの実施態様において、リソース分析モジュール222、配置位置決定モジュール225、位置選択モジュール228、およびコンテンツ表示モジュール230は、コンテンツスロット挿入スクリプト220内のモジュールとすることができる。コンテンツスロット挿入システム200は、下で図5内で説明されるものなど、コンピューティングデバイスの1つまたは複数のプロセッサによって走行されまたは他の形で実行され得る。いくつかの実施態様において、リソース分析モジュール222、配置位置決定モジュール225、位置選択モジュール228、およびコンテンツ表示モジュール230のいずれかは、アプリケーション205、情報リソース210、またはコンテンツスロット挿入スクリプト220の一部とすることができる。アプリケーション205は、たとえば、インターネットブラウザ、モバイルアプリケーション、ゲーミングアプリケーション、GPSアプリケーション、または情報リソース210、リソース分析モジュール222、配置位置決定モジュール225、位置選択モジュール228、およびコンテンツ表示モジュール230内に含まれるコンピュータ実行可能命令などのコンピュータ実行可能命令を実行するか他の形で呼び出すことのできる任意の他のコンピュータプログラムを含むことができる。情報リソース210は、1つまたは複数のコンテンツ部分(またはコンテンツ要素)を含むことができる。情報リソース210は、1つまたは複数のコンテンツ要素の位置を指定することができる。いくつかの実施態様において、情報リソース210は、1つまたは複数のコンテンツ要素の形状、サイズ、位置、および/または他の属性を指定するドキュメントオブジェクトモデル(DOM)ツリーを含むことができる。いくつかの実施態様において、コンテンツ要素は、DOMツリー内に含まれるDOM要素に対応するこ
とができる。
アプリケーション205は、情報リソースのコンテンツパブリッシャのサーバまたは情報リソースをホスティングするサーバから情報リソース210を入手しまたは受信することができる。たとえば、アプリケーション205は、情報リソース210のアドレスまたは識別子を含む要求をサーバに送り、これに応答して、情報リソース210を受信することができる。サーバが図1内に示されたデータ処理システム110であるいくつかの実施態様において、アプリケーション205は、情報リソース210と一緒にコンテンツスロット挿入スクリプト220を受信することができる。たとえば、アプリケーション205は、情報リソース210内に挿入されたコンテンツスロット挿入スクリプト220を受信することができる。
いくつかの実施態様において、情報リソース210の受信時に、アプリケーション205は、コンテンツの要求をデータ処理システム110に送ることができる。コンテンツの要求は、サードパーティコンテンツアイテムの要求とすることができる。たとえば、情報リソース210は、サードパーティコンテンツスロットを含むことができ、このサードパーティコンテンツスロットは、アプリケーション205にコンテンツの要求を生成すること、およびそのコンテンツの要求をデータ処理システム110に送信することを行わせるコンピュータ実行可能命令を含むことができる。サードパーティコンテンツスロットのコンピュータ実行可能命令が情報リソース210の一部として実行される時に、コンピュータ実行可能命令は、アプリケーション205に(クライアントデバイス125を介して)データ処理システム110にサードパーティコンテンツアイテムを要求するコンテンツの要求を送信させる。コンテンツの要求は、情報リソース210のアドレスまたは識別子、情報リソースコンテンツタイプの表示、サードパーティコンテンツスロットのサイズ情報、クライアントデバイス情報、最小パブリッシャ収益値、またはそれらの組合せを含むことができる。いくつかの実施態様において、コンテンツの要求は、コンテンツスロット挿入スクリプト220の表示を含むことができる。いくつかの実施態様において、コンテンツの要求は、コンテンツスロット挿入スクリプト220の要求を含むことができる。
コンテンツの要求に応答して、アプリケーション205は、データ処理システム110または別のサーバからコンテンツスロット挿入スクリプト220を受信することができる。たとえば、アプリケーション205は、データ処理システム110にコンテンツの要求を送る命令を含んだサードパーティコンテンツスロット内への挿入のためのサードパーティコンテンツアイテムと一緒にコンテンツスロット挿入スクリプト220を受信することができる。いくつかの実施態様において、アプリケーション205は、サードパーティコンテンツアイテムなしでコンテンツスロット挿入スクリプト220を受信することができる。いくつかの実施態様において、アプリケーション205は、情報リソース内に挿入され得るコンテンツスロットのうちの1つまたは複数内の挿入のための複数のサードパーティコンテンツアイテムと共にコンテンツスロット挿入スクリプト220を受信することができる。アプリケーション205(またはクライアントデバイス125のプロセッサ)は、コンテンツスロット挿入スクリプト220を実行することができる。いくつかの実施態様において、コンテンツスロット挿入スクリプト220の実行は、リソース分析モジュール222、配置位置決定モジュール225、位置選択モジュール228、コンテンツ表示モジュール230、またはそれらの組合せを実行することを含むことができる。
リソース分析モジュール222は、クライアントデバイス125上で実行され得る1つまたは複数のコンピュータ実行可能命令を含むことができる。リソース分析モジュール222は、コンピューティングデバイスに、情報リソース210のドキュメントオブジェクトモデル(DOM)ツリーを識別させることができる。リソース分析モジュール222は、クライアントデバイス125に、リソース分析モジュール222による点検のために情報リソースのDOMツリーを識別させることができる。いくつかの実施態様において、情報リソース210のDOMツリーの識別は、情報リソース210のDOMツリーにアクセスすることを含むことができる。いくつかの実施態様において、リソース分析モジュール222は、コンピューティングデバイスに、情報リソースのコンテンツパブリッシャのサーバから受信された情報リソース内に含まれる命令からDOMツリーを生成させることができる。いくつかの実施態様において、アプリケーション205は、情報リソース210のDOMツリーを生成するコンピュータ実行可能命令を含むことができる。
リソース分析モジュール222は、クライアントデバイス125に、情報リソース210のDOMツリーを点検することによって情報リソース210のDOMツリー内に含まれる1つまたは複数のDOM要素を識別させることができる。いくつかの実施態様において、DOMツリー内の1つまたは複数の要素の識別することは、DOMツリーの1つまたは複数の親ノードを識別することと、識別された親ノードに関連する可視コンテンツアイテムを表す要素を識別することとを含むことができる。たとえば、リソース分析モジュール222は、情報リソース210全体を表すDOMツリー内の最上位ノードを識別することができる。リソース分析モジュール222は、情報リソース210の領域を表すDOMツリーのサブツリーの親ノードを識別することができる。その後、リソース分析モジュール222は、DOMツリー内で識別されたノードに関連する可視コンテンツアイテムを判定することができる。いくつかの実施態様において、リソース分析モジュール222は、DOMツリーのすべてまたは一部を解析することによって(たとえば、DOMツリーまたはその中のサブツリーの親ノードを必ずしも識別せずに)、可視コンテンツアイテムを表すDOMツリーの要素を判定することができる。
リソース分析モジュール222は、たとえばDOMツリーまたはその一部を解析しまたは点検することによって、可視コンテンツアイテムを表すDOMツリー内の1つまたは複数の要素を判定することができる。いくつかの実施態様において、リソース分析モジュール222は、DOMツリー内の要素のタイプ、名前、または他の属性をチェックすることによって、情報リソース210内の可視コンテンツアイテムを識別することができる。可視コンテンツアイテムを表す要素の例は、とりわけ、非ホワイトスペース文字、イメージ、<HR>タグ、<IFRAME>タグ、<EMBED>タグ、<OBJECT>タグ、<VIDEO>タグを含むテキストノードを含む。いくつかの実施態様において、リソース分析モジュールは、要素またはその親のスタイル属性をチェックすることによって、要素が可視コンテンツアイテムを表すことを識別することができる。たとえば、所与の要素またはその親に関連する「visibility」属性または「overflow」属性にhiddenがセットされている場合に、その要素(またはそれに関連するアイテム)は、情報リソース210が表示される時に可視ではない。また、「none」をセットされた「display」属性または「clip」属性が定義されることは、情報リソースがクライアントデバイス125上で表示される時に要素(またはそれに関連するアイテム)が可視ではないことにつながる可能性がある。
リソース分析モジュール222は、可視コンテンツアイテムを表す識別された要素の範囲を判定することもできる。たとえば、リソース分析モジュール222は、DOMツリーからの可視コンテンツアイテムを表す識別された要素のそれぞれの範囲を識別することができる。そのような範囲は、たとえば、長方形(または正方形)の2つ以上の角ならびに/または左境界、右境界、上境界、および下境界の座標によって定義され得る。可視コンテンツアイテムを表す要素の範囲は、クライアントデバイス上でレンダリングされた時の可視コンテンツアイテムを完全に含む長方形として定義され得る。いくつかの実施態様において、そのような範囲の座標は、ブラウザペインの左上角からの絶対画素に関して表され得る。可視コンテンツアイテムを表すDOMツリーの要素の識別およびそれぞれの範囲の判定は、既存の可視コンテンツアイテムの範囲(またはサイズ)に関する適当な候補サードパーティコンテンツ配置の判定(または不適当な候補サードパーティコンテンツ配置の除去)を可能にする。たとえば、最小値を超える寸法パラメータを有する可視コンテンツアイテムが、追加のサードパーティコンテンツ配置位置をアンカリングするために選択され得る。
DOMツリー内の1つまたは複数の要素を識別する際に、配置位置決定モジュール225は、クライアントデバイス125上で実行される時に、サードパーティコンテンツ配置ポリシに基づいてDOMツリー内の複数の候補サードパーティコンテンツ配置位置を判定することができる。いくつかの実施態様において、サードパーティコンテンツ配置ポリシは、識別されたDOM要素の寸法に基づくルールを含むことができる。いくつかの実施態様において、配置位置決定モジュール225は、候補サードパーティコンテンツ配置位置がその周囲で定義され得る可視コンテンツアイテムを表す1つまたは複数の識別されたDOM要素を選択することができる。配置位置決定モジュール225は、それぞれのサイズ(または範囲情報)に基づいてそのような要素を選択することができる。たとえば、配置位置決定モジュール225は、サードパーティコンテンツアイテムの通常の幅または高さより大きい(またはこれと等しい)それぞれの幅または高さを有する可視コンテンツアイテムを表す要素を選択することができる。その後、配置位置決定モジュール225は、選択された要素に隣接する候補サードパーティコンテンツ配置位置を判定することができる。いくつかの実施態様において、配置位置決定モジュール225は、可視コンテンツアイテムを表す識別されたDOM要素の範囲情報(座標など)を分析することによって、サードパーティコンテンツアイテムを挿入するための候補サードパーティコンテンツ配置位置を判定することができる。いくつかの実施態様において、配置位置決定モジュール225は、サードパーティコンテンツアイテム(広告など)を配置するのに適当な位置または領域の事前定義の最小サイズまたは寸法値を使用することができる。
ここで図3をも参照すると、図3は、配置位置決定モジュール225によって識別された候補サードパーティコンテンツ配置位置を含む情報リソース300のレイアウトを示すブロック図である。情報リソース(たとえば、ウェブページ)300は、メインフレーム部分302およびサイドフレーム部分304を含む。メインフレーム部分302は、ヘッダ領域310、イメージ領域312、第1のテキスト領域314、および第2のテキスト領域316を含む。ヘッダ領域310は、メインフレーム部分302のかなりの部分を横切って延びる。サイドフレーム部分は、イメージ領域306およびテキスト領域308を含む。これらの領域のそれぞれは、DOMツリー内でそれぞれの範囲に関連付けられ得る。
配置位置決定モジュール225は、当初は情報リソース300内のDOM要素の寸法に基づいて、候補サードパーティコンテンツ配置位置としてメインフレーム部分302内の領域311および313とサイドフレーム部分304内の領域309とを識別する。候補配置位置311は、ヘッダ領域310と第1のテキスト領域314との間に配置された水平に細長い長方形として定義される。候補配置位置313は、第1のテキスト領域314と第2のテキスト部分316との間に配置された水平に細長い長方形として定義される。候補配置位置309は、サイドフレーム部分304内でテキスト領域308に隣接して(たとえば、その下に)配置された垂直に細長い長方形として定義される。
いくつかの実施態様において、サードパーティコンテンツ配置ポリシは、判定されるべき候補配置位置の最大個数を指定するルールまたは制約を含むことができる。配置位置決定モジュール225は、所定の個数の候補サードパーティコンテンツ配置位置を判定することができ、候補サードパーティコンテンツ配置位置の所定の個数を超えることの判定に応答して、配置位置決定モジュール225は、候補サードパーティコンテンツ配置位置を判定する命令を終了することができる。たとえば、候補サードパーティコンテンツ配置位置の所定の個数が3と等しい場合に、配置位置決定モジュール225は、配置位置決定モジュール225が最初の3つの候補サードパーティコンテンツ配置位置を識別した後に、候補配置位置を識別するプロセスを終了することができる。
いくつかの実施態様において、サードパーティコンテンツ配置ポリシは、候補配置位置に制約を課す他のルールを含むことができる。たとえば、図3内の例を考慮すると、配置位置決定モジュール225は、ヘッダ領域310の上、サイドフレーム部分304の右の候補配置位置を定義しないように構成され得る。いくつかの実施態様において、配置ポリシは、イメージとそれぞれのキャプションとの間など(イメージ領域306とテキスト部分308との間など)の混乱させる位置を防ぐルールを含むことができる。いくつかの実施態様において、配置ポリシは、情報リソースのウェブサイトに関連する特徴または情報に基づいてサードパーティコンテンツ配置位置を選択するルールを含むことができる。たとえば、サードパーティコンテンツ配置位置を識別する時に、配置位置決定モジュール225は、クライアントデバイスに、ウェブサイトフォーマット、ウェブサイトコンテンツ、および/またはウェブサイトがモバイル最適化されているか否かを考慮に入れさせることができる。たとえば、配置位置決定モジュール225は、クライアントデバイスに、情報リソース内のイメージまたはビデオの個数に基づいて、識別すべき候補サードパーティコンテンツ配置位置のサイズおよび個数を調整させることができる。配置位置決定モジュール225は、クライアントデバイスに、ウェブサイトがモバイル最適化されているかどうかを識別するために配置位置のサイズおよび/または個数を減少させることもできる。また、配置位置決定モジュール225は、クライアントデバイスに、サードパーティコンテンツ配置位置を識別する時に、ウェブサイトがレスポンシブウェブデザインを有するか否かを判定させることができる。いくつかの実施態様において、配置位置決定モジュール225は、クライアントデバイスに、矢印、「次」ボタン、またはウェブサイトの様々なウェブページ(またはスライド)を通ってナビゲートするのに使用される他のアイコンに隣接する位置に挿入された広告との不注意の対話の回数を減らすために、そのような位置を識別するのを回避させることができる。
いくつかの実施態様において、配置位置決定モジュール225は、サードパーティコンテンツ配置位置を判定するために、パブリッシャのウェブサイトまたは他のウェブサイト内の既存のまたは以前に使用された配置位置のヒストリカルパフォーマンスデータ(クリックスルーレートデータなど)を使用することができる。たとえば、配置位置決定モジュール225は、低いクリックスルーレートをもたらすか多数の低品質クリックスルーレートを有する位置をもたらすことがわかっている位置の選択を回避することができる。いくつかの実施態様において、情報リソース210は、サードパーティコンテンツ配置位置として使用され得る場所のコンテキストヒント(所与の位置における潜在的な広告挿入を示す隠されたテキストなど)を含むことができる。配置位置決定モジュール225(またはコンテンツスロット挿入スクリプト220)は、候補配置位置を識別する際にそのようなコンテキストヒントを使用するように構成され得る。
位置選択モジュール228は、クライアントデバイス上で実行される時に、クライアントデバイスに、サードパーティコンテンツスロット(広告スロットなど)を挿入するための判定された複数の候補サードパーティコンテンツ配置位置のうちの1つを選択させることができる。たとえば、位置選択モジュール228は、クライアントデバイスに、判定された候補配置位置の中で、情報リソースの幅の所定のしきい値より大きい幅を有する2つの隣接するDOM要素の間にあるサードパーティコンテンツ配置位置を選択させることができる。たとえば、所定のしきい値は、情報リソース210の幅の80%、85%、90%、または他のパーセンテージ値とすることができる。たとえば、図3内の例を考慮すると、候補配置位置311は、ヘッダ領域310と第1のテキスト領域314との間に配置される。所定のしきい値が、情報リソースの幅の30%である場合には、ヘッダ領域310と第1のテキスト領域314との両方が、情報リソース210の幅の30%を超えるそれぞれの幅を有する。したがって、位置選択モジュール228は、候補配置位置311を選択することができる。同様の理由から、第1のテキスト領域314の幅と第2のテキスト領域316の幅とを比較することによって、位置選択モジュール228は、クライアントデバイスに、候補配置位置313を選択させることができる。いくつかの実施態様において、位置選択モジュール228は、クライアントデバイスに、1つまたは複数の判断基準に基づいて、判定された候補サードパーティコンテンツ配置位置をランキングすること、および判定された候補サードパーティコンテンツ配置位置のランキングに基づいてサードパーティコンテンツ配置位置を選択することを行わせることができる。
サードパーティコンテンツ配置位置を選択する際に、位置選択モジュール228(またはコンテンツ表示モジュール230)は、クライアントデバイスに、選択されたサードパーティコンテンツ配置位置においてサードパーティコンテンツスロット(たとえば、広告スロット)を挿入させることができる。サードパーティコンテンツスロットは、コンピュータ実行可能命令を含むことができ、このコンピュータ実行可能命令は、クライアントデバイス125上で実行される時に、クライアントデバイス125に、データ処理システム110にサードパーティコンテンツアイテム(広告など)を要求させる。クライアントデバイス125は、たとえば情報リソースのアドレスまたは識別子、情報リソースに関連するコンテンツのタイプの表示、サードパーティコンテンツスロットのサイズ情報、クライアントデバイス情報、またはそれらの組合せを含む、サードパーティコンテンツの要求を送ることができる。データ処理システム110に送られたサードパーティコンテンツの要求に応答して、クライアントデバイスは、挿入されたサードパーティコンテンツスロットにおける表示のためにサードパーティコンテンツアイテムを受信することができる。
データ処理システムからサードパーティコンテンツアイテムを受信する際に、コンテンツ表示モジュール230は、クライアントデバイス125に、挿入されたサードパーティコンテンツスロットにおいて受信されたサードパーティコンテンツアイテムを表示させることができる。いくつかの実施態様において、コンテンツ表示モジュール230は、クライアントデバイスに、受信されたサードパーティコンテンツアイテムを表示することに対応する収益額を識別すること、および収益額を所定のしきい値と比較することを行わせることができる。収益額が所定のしきい値を超えると判定する際に、コンテンツ表示モジュール230は、クライアントデバイス125に、情報リソース内での表示のためにそのサードパーティコンテンツアイテムを選択させることができる。
いくつかの実施態様において、コンテンツ表示モジュール230は、クライアントデバイスに、位置選択モジュール228によって情報リソース210内に挿入された複数のサードパーティコンテンツスロット内の表示のための複数のサードパーティコンテンツアイテムに関連する収益額の表示を受信させることができる。コンテンツ表示モジュール230は、クライアントデバイスに、サードパーティコンテンツスロットのサブセットにおける表示のために、収益額に基づいて、サードパーティコンテンツアイテムのサブセットを選択させるように構成され得る。たとえば、図3内に示されたウェブページレイアウトにおいて、3つのサードパーティコンテンツスロットが、配置位置311、313、および309において位置選択モジュール228によって挿入され得る。コンテンツ表示モジュール230は、クライアントデバイスに、それぞれの収益額の表示と共に3つのサードパーティコンテンツアイテムを受信すること、位置311および313において挿入されたスロットにおける表示のために、最高の収益額を有する2つのサードパーティコンテンツアイテムだけを選択することを行わせることができる。
いくつかの実施態様において、コンテンツ表示モジュール230は、クライアントデバイスに、収益額がしきい値を超えると判定する時であっても、受信されたサードパーティコンテンツアイテムを表示すべきか否かをそれでも判定させることができる。たとえば、コンテンツ表示モジュール230は、クライアントデバイス125に、受信されたサードパーティコンテンツアイテムに関連するコンテンツのタイプ、サードパーティコンテンツアイテムのタイプ(たとえば、テキスト、イメージ、またはビデオ)、サードパーティコンテンツアイテムに関連するクリックスルーレート、または他の判断基準に基づいて、サードパーティコンテンツアイテムを表示すべきか否かに関する決定を行わせる(収益額がしきい値を超える時に)ことができる。いくつかの実施態様において、コンテンツ表示モジュール230は、クライアントデバイスに、それぞれのクリックスルーレートに基づいて、受信されたサードパーティコンテンツアイテムをフィルタリングさせるように構成され得る。
いくつかの実施態様において、コンテンツ表示モジュール230は、クライアントデバイス125に、情報リソース210上に表示される既存のサードパーティコンテンツ配置位置(図3内のイメージ領域306およびテキスト領域308など)の個数を識別させることができる。たとえば、コンテンツ表示モジュール230は、クライアントデバイスに、任意の追加のリソースを挿入する前に、情報リソース内に存在する広告スロットの個数をチェックさせるように構成され得る。コンテンツ表示モジュール230は、クライアントデバイスに、情報リソース210のDOMツリーまたはソースコードを点検することによって既存のサードパーティコンテンツ配置位置の個数を識別させることができる。コンテンツ表示モジュール230は、クライアントデバイスに、既存のサードパーティコンテンツ配置位置の個数をサードパーティコンテンツ配置位置の所定の個数と比較させることができる。サードパーティコンテンツ配置位置の所定の個数は、情報リソース210内に含められ得るサードパーティコンテンツ配置位置の特定の個数または最大個数を表すことができる。いくつかの実施態様において、コンテンツ表示モジュール230は、クライアントデバイスに、情報リソース210またはアプリケーション205からサードパーティコンテンツ配置位置の所定の個数を入手させることができる。比較に基づいて、コンテンツ表示モジュール230は、クライアントデバイス125に、受信されたサードパーティコンテンツアイテムを表示すべきか否かを判定させることができる。たとえば、既存のサードパーティコンテンツ配置位置の個数がサードパーティコンテンツ配置位置の所定の個数より少ないと判定する際に、クライアントデバイス125は、受信されたサードパーティコンテンツアイテムを表示することができる。いくつかの実施態様において、クライアントデバイス125は、既存のサードパーティコンテンツ配置位置の個数がサードパーティコンテンツ配置位置の所定の個数以上であると判定する際に、サードパーティコンテンツアイテムを表示しないと判定することができる。
図4は、例示的な実施態様による、ウェブページ内に追加のサードパーティコンテンツスロットを挿入する方法400を示す流れ図である。手短に言うと、方法400は、クライアントデバイスが、それぞれのパブリッシャに関連する情報リソースを受信すること(ブロック405)と、サードパーティコンテンツの要求をデータ処理システムに送信すること(ブロック410)とを含むことができる。方法400は、データ処理システムが、サードパーティコンテンツの要求を受信すること(ブロック415)と、これに応答して、コンテンツスロット挿入スクリプトをクライアントデバイスに送信すること(ブロック420)とを含むことができる。方法400は、クライアントデバイスが、データ処理システムからコンテンツスロット挿入スクリプトを受信すること(ブロック425)をも含むことができる。方法400は、コンテンツスロット挿入スクリプトの実行時に、クライアントデバイスが、情報リソースのDOMツリーを識別すること(ブロック430)と、DOMツリー内の1つまたは複数の要素を識別すること(ブロック435)と、サードパーティコンテンツを表示するための1つまたは複数の候補配置位置を識別すること(ブロック440)と、候補配置位置の中から配置位置を選択すること(ブロック445)と、選択された配置位置においてサードパーティコンテンツアイテムを表示すること(ブロック450)とをも含むことができる。
方法400は、クライアントデバイスが情報リソースのコンテンツパブリッシャのサーバまたは情報リソースをホスティングするサーバから情報リソースを受信すること(ブロック405)を含むことができる。たとえば、クライアントデバイスまたはそのアプリケーションは、情報リソースのアドレスまたは識別子を含む要求をサーバに送り、これに応答して情報リソースを受信することができる。サーバがデータ処理システムであるいくつかの実施態様において、クライアントデバイスは、情報リソースと一緒にコンテンツスロット挿入スクリプトを受信することができる。たとえば、クライアントデバイスは、情報リソース内に挿入されたコンテンツスロット挿入スクリプトを受信することができる。
方法400は、クライアントデバイスが、情報リソースの受信時にコンテンツの要求をデータ処理システムに送ること(ブロック410)を含むことができる。コンテンツの要求は、サードパーティコンテンツアイテムの要求とすることができる。たとえば、情報リソースは、サードパーティコンテンツスロットを含むことができ、このサードパーティコンテンツスロットは、クライアントデバイスに、コンテンツの要求を生成させ、そのコンテンツの要求をデータ処理システムに送信させるコンピュータ実行可能命令を含むことができる。サードパーティコンテンツスロットのコンピュータ実行可能命令が、情報リソースの一部として実行される時に、コンピュータ実行可能命令は、クライアントデバイスに、データ処理システムにサードパーティコンテンツアイテムを要求するコンテンツの要求を送らせる。コンテンツの要求は、情報リソースのアドレスもしくは識別子、情報リソースコンテンツタイプの表示、サードパーティコンテンツスロットのサイズ情報、クライアントデバイス情報、最小パブリッシャ収益値、またはそれらの組合せを含むことができる。いくつかの実施態様において、コンテンツの要求は、コンテンツスロット挿入スクリプトの表示を含むことができる。いくつかの実施態様において、コンテンツの要求は、コンテンツスロット挿入スクリプトの要求を含むことができる。
方法400は、データ処理システムが、コンテンツの要求を受信すること(ブロック415)と、これに応答して、コンテンツスロット挿入スクリプトをクライアントデバイスに送信すること(ブロック420)とを含むことができる。上で議論したように、図1に関して、データ処理システムは、コンテンツの要求内に含まれる情報に基づいて、コンテンツスロット挿入スクリプトがクライアントデバイスに送られるべきであると判定することができる。いくつかの実施態様において、データ処理システムは、1つまたは複数のサードパーティコンテンツアイテムと一緒にコンテンツスロット挿入スクリプトをクライアントデバイスに送ることができる。いくつかの実施態様において、データ処理システムは、サードパーティコンテンツアイテムを送らずにコンテンツスロット挿入スクリプトをクライアントデバイスに送ることによって、コンテンツの要求に応答することができる。
方法400は、クライアントデバイスが、データ処理システムまたは別のサーバからコンテンツスロット挿入スクリプトを受信することを含むことができる。たとえば、クライアントデバイスは、コンテンツの要求をデータ処理システムに送る命令を含んだサードパーティコンテンツスロット内の挿入のためのサードパーティコンテンツアイテムと一緒に、コンテンツスロット挿入スクリプトを受信することができる。いくつかの実施態様において、クライアントデバイスは、サードパーティコンテンツアイテムなしでコンテンツスロット挿入スクリプトを受信することができる。いくつかの実施態様において、クライアントデバイスは、情報リソース内に挿入され得るコンテンツスロットのうちの1つまたは複数内の挿入のための複数のサードパーティコンテンツアイテムと共にコンテンツスロット挿入スクリプトを受信することができる。クライアントデバイス(またはそのプロセッサ)は、コンテンツスロット挿入スクリプトを実行することができる。
方法400は、クライアントデバイスが、情報リソースのDOMツリーを識別すること(ブロック430)を含むことができる。いくつかの実施態様において、情報リソースのDOMツリーを識別することは、DOMツリーを含むファイルの名前またはアドレスを識別することと、そのファイルを開くこととを含むことができる。いくつかの実施態様において、情報リソースのDOMツリーを識別することは、情報リソースのDOMツリーにアクセスしまたはこれを解析することを含むことができる。いくつかの実施態様において、クライアントデバイスは、情報リソースのコンテンツパブリッシャのサーバから受信された情報リソース内に含まれる命令からDOMツリーを生成することができる。いくつかの実施態様において、クライアントデバイスのアプリケーションは、情報リソースのDOMツリーを生成するコンピュータ実行可能命令を含むことができる。
方法400は、クライアントデバイスが、情報リソースのDOMツリーを点検することによって情報リソースのDOMツリー内に含まれる1つまたは複数のDOM要素を識別すること(ブロック435)を含むことができる。クライアントデバイスは、たとえばDOMツリーまたはその一部を解析しまたは点検することによって、可視コンテンツアイテムを表すDOMツリー内の1つまたは複数の要素を判定することができる。いくつかの実施態様において、クライアントデバイスは、DOMツリー内の要素のタイプ、名前、または他の属性をチェックすることによって、情報リソース内の可視コンテンツアイテムを識別することができる。可視コンテンツアイテムを表す要素の例は、とりわけ、非ホワイトスペース文字、イメージ、<HR>タグ、<IFRAME>タグ、<EMBED>タグ、<OBJECT>タグ、<VIDEO>タグを含むテキストノードを含む。いくつかの実施態様において、リソース分析モジュールは、要素またはその親のスタイル属性をチェックすることによって、要素が可視コンテンツアイテムを表すことを識別することができる。たとえば、所与の要素またはその親に関連する「visibility」属性または「overflow」属性にhiddenがセットされている場合に、その要素(またはそれに関連するアイテム)は、情報リソースが表示される時に可視ではない。また、「none」をセットされた「display」属性または「clip」属性が定義されることは、情報リソースがクライアントデバイス上で表示される時に要素(またはそれに関連するアイテム)が可視ではないことにつながる可能性がある。
クライアントデバイスは、可視コンテンツアイテムを表す識別された要素の範囲を識別することもできる。たとえば、クライアントデバイスは、DOMツリーからの可視コンテンツアイテムを表す識別された要素のそれぞれの範囲を判定することができる。そのような範囲は、たとえば、長方形(または正方形)の2つ以上の角ならびに/または左境界、右境界、上境界、および下境界の座標によって定義され得る。可視コンテンツアイテムを表す要素の範囲は、クライアントデバイス上でレンダリングされた時の可視コンテンツアイテムを完全に含む長方形として定義され得る。いくつかの実施態様において、そのような範囲の座標は、ブラウザペインの左上角からの絶対画素に関して表され得る。可視コンテンツアイテムを表すDOMツリーの要素の識別およびそれぞれの範囲の判定は、追加のサードパーティコンテンツ配置位置を挿入する時にオーバーラップされるべきではない情報リソースの領域を判定することを可能にする。
方法400は、クライアントデバイスが、サードパーティコンテンツ配置ポリシに基づいてDOMツリー内の複数の候補サードパーティコンテンツ配置位置を判定すること(ブロック440)を含むことができる。いくつかの実施態様において、サードパーティコンテンツ配置ポリシは、識別されたDOM要素の寸法に基づくルールを含むことができる。いくつかの実施態様において、クライアントデバイスは、候補サードパーティコンテンツ配置位置がその周囲で定義され得る可視コンテンツアイテムを表す1つまたは複数の識別されたDOM要素を選択することができる。クライアントデバイスは、それぞれのサイズ(または範囲情報)に基づいてそのような要素を選択することができる。たとえば、クライアントデバイスは、サードパーティコンテンツアイテムの通常の幅または高さより大きい(またはこれと等しい)それぞれの幅または高さを有する可視コンテンツアイテムを表す要素を選択することができる。その後、クライアントデバイスは、選択された要素に隣接する候補サードパーティコンテンツ配置位置を判定することができる。いくつかの実施態様において、クライアントデバイスは、可視コンテンツアイテムを表す識別されたDOM要素の範囲情報(座標、幅、または高さなど)を分析することによって、サードパーティコンテンツアイテムを挿入するための候補サードパーティコンテンツ配置位置を判定することができる。いくつかの実施態様において、クライアントデバイス125は、サードパーティコンテンツアイテム(広告など)を配置するのに適当な位置または領域の事前定義の最小サイズまたは寸法値を使用することができる。
上で図3に関して議論したように、クライアントデバイスは、当初は情報リソース300内のDOM要素の寸法に基づいて、候補サードパーティコンテンツ配置位置としてメインフレーム部分302内の領域311および313とサイドフレーム部分304内の領域309とを識別することができる。たとえば、領域311は、ヘッダ領域310の幅に基づいて識別され得るが、領域313は、第2のテキスト部分316の幅に基づいて識別され得る。
いくつかの実施態様において、サードパーティコンテンツ配置ポリシは、判定されるべき候補配置位置の最大個数を指定するルールまたは制約を含むことができる。クライアントデバイスは、所定の個数の候補サードパーティコンテンツ配置位置を判定することができ、候補サードパーティコンテンツ配置位置の所定の個数を超えることの判定に応答して、クライアントデバイスは、候補サードパーティコンテンツ配置位置を判定する命令を終了することができる。たとえば、候補サードパーティコンテンツ配置位置の所定の個数が3と等しい場合に、クライアントデバイスは、クライアントデバイスが最初の3つの候補サードパーティコンテンツ配置位置を識別した後に、候補配置位置を識別するプロセスを終了することができる。
いくつかの実施態様において、サードパーティコンテンツ配置ポリシは、候補配置位置の位置に制約を課す他のルールを含むことができる。たとえば、図3内の例を考慮すると、クライアントデバイスは、ヘッダ領域310の上またはサイドフレーム部分304の右の候補配置位置を定義しないように構成され得る。
いくつかの実施態様において、配置ポリシは、イメージとそれぞれのキャプションとの間など(イメージ部分306とテキスト部分308との間など)の混乱させる位置を防ぐルールを含むことができる。いくつかの実施態様において、配置ポリシは、情報リソースのウェブサイトに関連する特徴または情報に基づいてサードパーティコンテンツ配置位置を選択するルールを含むことができる。たとえば、サードパーティコンテンツ配置位置を識別する時に、クライアントデバイスは、ウェブサイトフォーマット、ウェブサイトコンテンツ、および/またはウェブサイトがモバイル最適化されているか否かを考慮に入れることができる。たとえば、クライアントデバイスは、情報リソース内のイメージまたはビデオの個数に基づいて、識別すべき候補サードパーティコンテンツ配置位置のサイズおよび個数を調整することができる。クライアントデバイスは、ウェブサイトがモバイル最適化されているかどうかを識別するために配置位置のサイズおよび/または個数を減少させることもできる。また、クライアントデバイスは、サードパーティコンテンツ配置位置を識別する時に、ウェブサイトがレスポンシブウェブデザインを有するか否かを判定することができる。一例において、クライアントデバイスは、矢印、「次」ボタン、またはウェブサイトの様々なウェブページ(またはスライド)を通ってナビゲートするのに使用される他のアイコンに隣接する位置を回避することができる。いくつかの実施態様において、クライアントデバイスは、サードパーティコンテンツ配置位置を判定するために、パブリッシャウェブサイトまたは他のウェブサイト内の既存のまたは以前に使用された配置位置のヒストリカルパフォーマンスデータ(クリックスルーレートデータなど)を使用することができる。たとえば、クライアントデバイスは、低いクリックスルーレートをもたらすことがわかっている位置の選択を回避することができる。いくつかの実施態様において、情報リソースは、サードパーティコンテンツ配置位置として使用され得る場所のコンテキストヒント(所与の位置における潜在的な広告挿入を示す隠されたテキストなど)を含むことができる。コンテンツスロット挿入スクリプトは、クライアントデバイスに、候補配置位置を識別する時にそのようなコンテキストヒントを読み取らせ、使用させるように構成され得る。
方法400は、クライアントデバイスが、サードパーティコンテンツスロットを挿入するための判定された複数の候補サードパーティコンテンツ配置位置のうちの1つを選択すること(ブロック445)を含むことができる。たとえば、クライアントデバイスは、判定された候補配置位置の中で、情報リソースの幅の所定のしきい値より大きい幅を有する2つの隣接するDOM要素の間にあるサードパーティコンテンツ配置位置を選択することができる。たとえば、所定のしきい値は、情報リソースの幅の30%、40%、50%、または他のパーセンテージ値とすることができる。図3内に示されたウェブページレイアウトを考慮すると、候補配置位置311は、ヘッダ領域310と第1のテキスト領域314との間に配置される。所定のしきい値が、情報リソースの幅の30%である場合には、ヘッダ領域310と第1のテキスト領域314との両方が、情報リソース210の幅の30%を超えるそれぞれの幅を有する。したがって、クライアントデバイスは、候補配置位置311を選択することができる。同様の理由から、第1のテキスト領域314の幅と第2のテキスト領域316の幅とを比較することによって、クライアントデバイスは、候補配置位置313を選択することができる。いくつかの実施態様において、クライアントデバイスは、1つまたは複数の判断基準に基づいて、判定された候補サードパーティコンテンツ配置位置をランキングし、判定された候補サードパーティコンテンツ配置位置のランキングに基づいてサードパーティコンテンツ配置位置を選択することができる。
サードパーティコンテンツ配置位置を選択する際に、クライアントデバイス125は、選択されたサードパーティコンテンツ配置位置においてサードパーティコンテンツスロット(たとえば、広告スロット)を挿入することができる。サードパーティコンテンツスロットは、コンピュータ実行可能命令を含むことができ、このコンピュータ実行可能命令は、クライアントデバイス上で実行される時に、クライアントデバイスに、データ処理システムにサードパーティコンテンツアイテム(広告など)を要求させる。クライアントデバイスは、たとえば情報リソースのアドレスまたは識別子、情報リソースに関連するコンテンツのタイプの表示、サードパーティコンテンツスロットのサイズ情報、クライアントデバイス情報、またはそれらの組合せを含む、サードパーティコンテンツの要求を送ることができる。データ処理システムに送られたサードパーティコンテンツの要求に応答して、クライアントデバイスは、挿入されたサードパーティコンテンツスロットにおける表示のためにサードパーティコンテンツアイテムを受信することができる。
方法400は、クライアントデバイスが、データ処理システムからサードパーティコンテンツアイテムを受信し、挿入されたサードパーティコンテンツスロットにおいて受信されたサードパーティコンテンツアイテムを表示すること(ブロック450)を含むことができる。いくつかの実施態様において、クライアントデバイスは、受信されたサードパーティコンテンツアイテムを表示することに対応する収益額を識別し、収益額を所定のしきい値と比較することができる。収益額が所定のしきい値を超えると判定する際に、クライアントデバイスは、情報リソース内での表示のためにそのサードパーティコンテンツアイテムを選択することができる。いくつかの実施態様において、クライアントデバイスは、情報リソース内に挿入された複数のサードパーティコンテンツスロット内の表示のための複数のサードパーティコンテンツアイテムに関連する収益額の表示を受信することができる。クライアントデバイスは、サードパーティコンテンツスロットのサブセットにおける表示のために、収益額に基づいて、サードパーティコンテンツアイテムのサブセットを選択するように構成され得る。たとえば、図3内に示されたウェブページレイアウトにおいて、3つのサードパーティコンテンツスロットが、配置位置311、313、および309においてクライアントデバイスによって挿入され得る。クライアントデバイスは、それぞれの収益額の表示と共に3つのサードパーティコンテンツアイテムを受信し、位置311および313において挿入されたスロットにおける表示のために、最高の収益額を有する2つのサードパーティコンテンツアイテムだけを選択することができる。
いくつかの実施態様において、クライアントデバイスは、収益額がしきい値を超えると判定する時であっても、受信されたサードパーティコンテンツアイテムを表示すべきか否かをそれでも判定することができる。たとえば、クライアントデバイスは、受信されたサードパーティコンテンツアイテムに関連するコンテンツのタイプ、サードパーティコンテンツアイテムのタイプ(たとえば、テキスト、イメージ、またはビデオ)、サードパーティコンテンツアイテムに関連するクリックスルーレート、または他の判断基準に基づいて、サードパーティコンテンツアイテムを表示すべきか否かに関する決定を行う(収益額がしきい値を超える時に)ことができる。いくつかの実施態様において、クライアントデバイスは、それぞれのクリックスルーレートに基づいて、受信されたサードパーティコンテンツアイテムをフィルタリングするように構成され得る。
いくつかの実施態様において、クライアントデバイスは、情報リソース上に表示される既存のサードパーティコンテンツ配置位置(図3内のイメージ領域306およびテキスト領域308など)の個数を識別することができる。たとえば、クライアントデバイスは、任意の追加のリソースを挿入する前に、情報リソース内に存在する広告スロットの個数をチェックするように構成され得る。クライアントデバイスは、情報リソースのDOMツリーまたはソースコードを点検することによって既存のサードパーティコンテンツ配置位置の個数を識別することができる。クライアントデバイスは、既存のサードパーティコンテンツ配置位置の個数をサードパーティコンテンツ配置位置の所定の個数と比較させることができる。サードパーティコンテンツ配置位置の所定の個数は、情報リソース内に含められ得るサードパーティコンテンツ配置位置の特定の個数または最大個数を表すことができる。いくつかの実施態様において、クライアントデバイスは、情報リソースまたは情報リソースを実行するアプリケーションからサードパーティコンテンツ配置位置の所定の個数を入手することができる。比較に基づいて、クライアントデバイスは、受信されたサードパーティコンテンツアイテムを表示すべきか否かを判定することができる。たとえば、既存のサードパーティコンテンツ配置位置の個数がサードパーティコンテンツ配置位置の所定の個数より少ないと判定する際に、クライアントデバイスは、受信されたサードパーティコンテンツアイテムを表示することができる。いくつかの実施態様において、クライアントデバイスは、既存のサードパーティコンテンツ配置位置の個数がサードパーティコンテンツ配置位置の所定の個数以上であると判定する際に、サードパーティコンテンツアイテムを表示しないと判定することができる。
図5は、いくつかの実施態様による、本明細書内で議論されるコンピュータシステムのいずれか(システム110と、コンテンツ要求モジュール130、コンテンツ選択モジュール135、およびスクリプトプロバイダモジュール140などのその構成要素とを含む)を実施するのに使用され得る例示的なコンピュータシステム500の全般的なアーキテクチャを示す。コンピュータシステム500は、表示のためにネットワーク105を介して情報を提供するのに使用され得る。図5のコンピュータシステム500は、メモリ525、1つまたは複数の通信インターフェース505、1つまたは複数の出力デバイス510(たとえば、1つまたは複数の表示ユニット)、および1つまたは複数の入力デバイス515に通信可能に結合された1つまたは複数のプロセッサ520を含む。プロセッサ520は、データ処理システム110またはコンテンツ要求モジュール130およびコンテンツ選択モジュール135などのシステム110の他の構成要素内に含められ得る。
図5のコンピュータシステム500内で、メモリ525は、任意のコンピュータ可読記憶媒体を含むことができ、それぞれのシステムに関して本明細書で説明される様々な機能性を実施するためのプロセッサ実行可能命令などのコンピュータ命令ならびにそれに関する、それによって生成された、または通信インターフェースもしくは入力デバイス(存在する場合に)を介して受信された任意のデータを記憶することができる。図1のシステム110をもう一度参照すると、データ処理システム110は、とりわけ、1つまたは複数のコンテンツユニットのインベントリの可用性、1つまたは複数のコンテンツユニットの予約に関する情報を記憶するためにメモリ525を含むことができる。メモリ525は、データベース145を含むことができる。図5内に示されたプロセッサ520は、メモリ525内に記憶された命令を実行するのに使用され得、それを行う際に、命令の実行に従って処理されおよび/または生成される様々な情報をメモリから読み取り、またはそれに書き込むこともできる。
図5内に示されたコンピュータシステム500のプロセッサ520は、命令の実行に従って様々な情報を送信しまたは受信するために通信インターフェース505に通信可能に結合されまたはこれを制御することもできる。たとえば、通信インターフェース505は、有線ネットワーク、ワイヤレスネットワーク、バス、または他の通信手段に結合され得、したがって、コンピュータシステム500が他のデバイス(たとえば、他のコンピュータシステム)に情報を送信しまたはこれから情報を受信することを可能にすることができる。図1のシステム内に明示的には図示されていないが、1つまたは複数の通信インターフェースが、システム500の構成要素の間の情報の流れを容易にする。いくつかの実施態様において、通信インターフェースは、コンピュータシステム500の少なくともいくつかの態様へのアクセスポータルとしてウェブサイトを提供するように構成され得る(たとえば、様々なハードウェア構成要素またはソフトウェア構成要素を介して)。通信インターフェース505の例は、ユーザがそれを介してデータ処理システム110と通信することのできるユーザインターフェース(たとえば、ウェブページ)を含む。
図5内に示されたコンピュータシステム500の出力デバイス510は、たとえば、様々な情報が命令の実行に関連して見られまたは他の形で知覚されることを可能にするために提供され得る。入力デバイス515は、たとえば、ユーザが、命令の実行中にプロセッサを用いて様々な形のいずれかにおいて、手動調整を行い、選択を行い、データを入力し、または対話することを可能にするために提供され得る。本明細書で議論される様々なシステムに関して使用され得る全般的なコンピュータシステムアーキテクチャに関する追加情報が、本明細書でさらに提供される。
本明細書内で説明される主題の実施態様および動作は、デジタル電子回路構成内、本明細書内で開示される構造およびその構造的同等物を含む有形の媒体上で具現化されたコンピュータソフトウェア、ファームウェア、もしくはハードウェア内、またはそれらのうちの1つまたは複数の組合せ内で実施され得る。本明細書内で説明される主題の実施態様は、データ処理装置による実行のためまたはデータ処理装置の動作を制御するためにコンピュータ記憶媒体上で符号化された1つまたは複数のコンピュータプログラムすなわちコンピュータプログラム命令の1つまたは複数のモジュールとして実施され得る。プログラム命令は、人工的に生成された伝搬される信号、たとえば、データ処理装置による実行のための適切な受信器装置への送信のために情報を符号化するために生成された機械生成された電気信号、光信号、または電磁信号上で符号化され得る。コンピュータ記憶媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読記憶基板、ランダムアクセスもしくはシリアルアクセスのメモリアレイもしくはメモリデバイス、またはそれらのうちの1つもしくは複数の組合せとするか、その中に含まれ得る。さらに、コンピュータ記憶媒体は、伝搬される信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬される信号内で符号化されるコンピュータプログラム命令のソースまたは宛先を含むことができる。コンピュータ記憶媒体は、1つまたは複数の別々の物理構成要素または物理媒体(たとえば、複数のCD、ディスク、または他のストレージデバイス)とするか、それらの中に含められることも可能である。
本明細書内で開示される特徴は、スマートテレビジョンモジュール(または、コネクテッドテレビジョンモジュール、ハイブリッドテレビジョンモジュールなど)上で実施され得、このスマートテレビジョンモジュールは、インターネット接続性をより伝統的なテレビジョン番組ソース(たとえば、ケーブル、衛星、無線、または他の信号を介して受信された)と一体化するように構成された処理モジュールを含むことができる。スマートテレビジョンモジュールは、テレビジョンセット内に物理的に組み込まれ得、あるいは、セットトップボックス、ブルーレイプレイヤまたは他のデジタルメディアプレイヤ、ゲーム機、ホテルテレビジョンシステム、および他のコンパニオンデバイスなどの別々のデバイスを含むことができる。スマートテレビジョンモジュールは、見る人が、ウェブ上の、ローカルケーブルTVチャネル上の、衛星TVチャネル上の、またはローカルハードドライブ上に記憶された、ビデオ、映画、写真、および他のコンテンツを検索し、見つけることを可能にするように構成され得る。セットトップボックス(STB)またはセットトップユニット(STU)は、チューナを含み、テレビジョンセットおよび信号の外部ソースに接続し、信号をテレビジョンスクリーンまたは他のディスプレイデバイス上でその後に表示されるコンテンツにする情報家電デバイスを含むことができる。スマートテレビジョンモジュールは、ウェブブラウザおよび複数のストリーミングメディアサービス、接続されたケーブルメディアソースまたは衛星メディアソース、他のウェブ「チャネル」、その他などの複数の異なるアプリケーションのアイコンを含むホームスクリーンまたはトップレベルスクリーンを提供するように構成され得る。スマートテレビジョンモジュールは、ユーザに電子番組ガイドを提供するようにさらに構成され得る。スマートテレビジョンモジュールに対するコンパニオンアプリケーションは、ユーザがスマートテレビジョンモジュールを制御することを可能にするためなど、使用可能な番組に関する追加情報をユーザに提供するためにモバイルコンピューティングデバイス上で動作可能とすることができる。代替実施態様において、特徴は、ラップトップコンピュータもしくは他のパーソナルコンピュータ、スマートフォン、他の携帯電話機、ハンドヘルドコンピュータ、タブレットPC、または他のコンピューティングデバイス上で実施され得る。
本明細書内で説明される動作は、1つまたは複数のコンピュータ可読ストレージデバイス上で記憶されまたは他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実施され得る。
用語「データ処理装置」、「データ処理システム」、「ユーザデバイス」、または「コンピューティングデバイス」は、たとえばプログラマブルプロセッサ、コンピュータ、システムオンアチップ、複数のそれら、または前述の組合せを含むすべての種類の、データを処理するための装置、デバイス、および機械を包含する。装置は、専用論理回路構成、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置は、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想計算機、またはそれらのうちの1つもしくは複数の組合せを構成するコードをも含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。コンテンツ要求モジュール130およびコンテンツ選択モジュール135は、1つまたは複数のデータ処理装置、コンピューティングデバイス、またはプロセッサを含み、または共有することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも称する)は、コンパイルされる言語または解釈される言語、宣言型言語または手続き型言語を含む任意の形のプログラミング言語において記述され得、独立型のプログラムとしてまたはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境内での使用に適する他のユニットとして含む任意の形において展開され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応することができるが、そうである必要はない。プログラムは、他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語文書内に記憶された1つまたは複数のスクリプト)内、問題のプログラムに専用の単一のファイル内、または複数の調整されたファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)内に記憶され得る。コンピュータプログラムは、1つのコンピュータ上または、1つのサイトに配置されもしくは複数のサイトにまたがって分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開され得る。
本明細書内で説明されるプロセスおよび論理フローは、入力データに作用し、出力を生成することによってアクションを実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行され得る。プロセスおよび論理フローは、専用論理回路構成、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されることも可能であり、装置は、それらの専用論理回路構成として実施されることも可能である。
コンピュータプログラムの実行に適切なプロセッサは、たとえば、汎用マイクロプロセッサと専用マイクロプロセッサとの両方および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読取専用メモリ、ランダムアクセスメモリ、またはその両方から命令およびデータを受信する。コンピュータの本質的要素は、命令に従ってアクションを実行するプロセッサと、命令およびデータを記憶する1つまたは複数のメモリデバイスである。一般に、コンピュータは、データを記憶するための1つまたは複数のマスストレージデバイス、たとえば磁気ディスク、光磁気ディスク、または光ディスクをも含み、またはこれからデータを受信するか、これにデータを転送するか、その両方を行うように動作可能に結合される。しかし、コンピュータがそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば、携帯電話機、携帯情報端末(PDA)、モバイルオーディオプレイヤ、モバイルビデオプレイヤ、ゲーム機、全地球測位システム(GPS)受信器、またはポータブルストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)内に組み込まれ得る。コンピュータプログラム命令およびデータを記憶するのに適切なデバイスは、たとえば半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイスと、磁気ディスク、たとえば内蔵ハードディスクまたはリムーバブルディスクと、光磁気ディスクと、CD-ROMディスクおよびDVD-ROMディスクとを含む、すべての形の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路構成によって増補されまたは専用論理回路構成内に組み込まれ得る。
ユーザとの対話を提供するために、本明細書内で説明される主題の実施態様は、ユーザに情報を表示するディスプレイデバイス、たとえばCRT(陰極線管)モニタ、プラズマモニタ、またはLCD(液晶ディスプレイ)モニタと、それによってユーザがコンピュータに入力を提供できるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールとを有するコンピュータ上で実施され得る。他の種類のデバイスも、ユーザとの対話を提供するために使用され得、たとえば、ユーザに提供されるフィードバックは、任意の形の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックを含むことができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形において受け取られ得る。さらに、コンピュータは、ユーザによって使用されるデバイスに文書を送り、そのデバイスから文書を受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送ることによって、ユーザと対話することができる。
本明細書内で説明される主題の実施態様は、たとえばデータサーバとして、バックエンド構成要素を含むコンピューティングシステム内、ミドルウェア構成要素、たとえばアプリケーションサーバを含むコンピューティングシステム内、フロントエンド構成要素、たとえばユーザがそれを介して本明細書内で説明される主題の一実施態様と対話することのできるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むコンピューティングシステム内、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステム内で実施され得る。システムの構成要素は、デジタルデータ通信の任意の形または媒体、たとえば通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)と、インターネットワーク(たとえば、インターネット)と、ピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)とを含む。
システム500またはシステム110などのコンピューティングシステムは、クライアントおよびサーバを含むことができる。たとえば、データ処理システム110は、1つまたは複数のデータセンタまたはサーバファーム内の1つまたは複数のサーバを含むことができる。クライアントおよびサーバは、一般に、お互いからリモートであり、通常は通信ネットワークを介して対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で走行し、お互いに対するクライアント-サーバ関係を有するコンピュータプログラムのおかげで生じる。いくつかの実施態様において、サーバは、データ(たとえば、HTMLページ)をクライアントデバイスに送信する(たとえば、クライアントデバイスと対話するユーザにデータを表示し、そのユーザからユーザ入力を受け取るために)。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザ対話の結果)は、サーバにおいてクライアントデバイスから受信され得る。
本明細書は、多数の特定の実施詳細を含むが、これらは、任意の発明の範囲または請求され得るものの範囲に対する限定と解釈されてはならず、むしろ、本明細書で説明されるシステムおよび方法の特定の実施態様に固有の特徴の説明と解釈されなければならない。別々の実施態様の文脈において本明細書内で説明されるある種の特徴が、単一の実施態様において組み合わせて実施されることも可能である。逆に、単一の実施態様の文脈において説明される様々な特徴が、複数の実施態様において別々に、または任意の適切な副組合せにおいて、実施されることも可能である。さらに、特徴が、上ではある組合せにおいて働くものとして説明され、そのようなものとして当初に請求される場合すらあるが、請求される組合せからの1つまたは複数の特徴が、いくつかの場合に組合せから削除され得、請求される組合せが、副組合せまたは副組合せの変形形態を対象とする場合がある。
同様に、動作が、図面内で特定の順序において示されるが、これは、望ましい結果を達成するために、そのような動作が図示された特定の順序または順次順序において実行されることまたはすべての図示された動作が実行されることを要求するものとして理解されてはならない。いくつかの場合において、特許請求の範囲において列挙されたアクションは、異なる順序において実行され、それでも望ましい結果を達成することができる。さらに、添付図面内に示されたプロセスは、望ましい結果を達成するために、図示の特定の順序または順次順序を必ずしも必要としない。
ある種の状況において、マルチタスキングおよび並列処理が有利である場合がある。さらに、上で説明される実施態様内の様々なシステム構成要素の分離は、すべての実施態様においてそのような分離を要求するものとして理解されてはならず、説明されるプログラム構成要素およびシステムが、一般に、単一のソフトウェア製品内に一緒に統合されまたは複数のソフトウェア製品内にパッケージ化され得ることを理解されたい。たとえば、コンテンツ要求モジュール130およびコンテンツ選択モジュール135は、データ処理システム110の一部、単一のモジュール、1つまたは複数の処理モジュールを有する論理デバイス、1つまたは複数のサーバ、または検索エンジンの一部とすることができる。
今や、いくつかの例示的実施態様および実施態様を説明し終えたので、前述が、例示的であって限定的ではなく、例として提示されたことは明白である。具体的には、本明細書で提示される例の多くが、方法行為またはシステム要素の特定の組合せを含むが、これらの行為およびこれらの要素は、同一の目標を達成するために他の形において組み合わされ得る。1つの実施態様のみに関連して議論された行為、要素、および特徴は、他の実施態様または実施態様における同様の役割から除外されることを意図されたものではない。
本明細書で使用される言葉遣いおよび用語法は、説明のためのものであって、限定的と解釈されてはならない。「including(含む)」、「comprising(含む)」、「having(有する)」、「containing(含む)」、「involving(含む)」、「characterized by(〜の特徴がある)」、「characterized in that(〜を特徴とする)」、およびそれらの変形の本明細書での使用は、その後にリストされた項目、その同等物、および追加の項目、ならびにその後にリストされた項目から排他的になる代替実施態様を包含することを意図されたものである。1つの実施態様において、本明細書で説明されるシステムおよび方法は、説明される要素、行為、または構成要素のうちの1つ、その複数の各組合せ、またはそのすべてからなる。
本明細書で単数形において言及されるシステムおよび方法の実施態様、要素、または行為へのすべての参照は、複数のこれらの要素を含む実施態様をも包含することができ、本明細書の任意の実施態様、要素、または行為への複数形でのすべての参照も、単一の要素のみを含む実施態様を包含することができる。単数形または複数形における参照は、現在開示されているシステムまたは方法、その構成要素、行為、または要素を単一構成または複数構成に限定することを意図されたものではない。任意の情報、行為、または要素に基づく任意の行為または要素への参照は、行為または要素が任意の情報、行為、または要素に少なくとも部分的に基づく実施態様を含むことができる。
本明細書で開示されるすべての実施態様は、任意の他の実施態様と組み合わされ得、「an implementation(一実施態様)」、「some implementations(いくつかの実施態様)」、「an alternate implementation(代替実施態様)」、「various implementation(様々な実施態様)」、「one implementation(1つの実施態様)」、または類似物への参照は、必ずしも相互に排他的ではなく、その実施態様に関連して説明される特定の特徴、構造、または特性が、少なくとも1つの実施態様内に含まれ得ることを示すことが意図されている。本明細書で使用されるそのような用語は、必ずしもすべてが同一の実施態様を参照するものではない。任意の実施態様は、本明細書で開示される態様および実施態様と一貫する任意の形において、包含的にまたは排他的に、任意の他の実施態様と組み合わされ得る。
「or(または)」への参照は、「or」を使用して説明されるすべての用語が、単一の説明される用語、複数の説明される用語、および説明される用語のすべてのうちのいずれかを示すことができるようにするために、包含的と解釈され得る。
図面内の技術的特徴、詳細な説明、または任意の請求項に参照号が続く場合に、参照符号は、図面、詳細な説明、および請求項の理解度を高めるという単一の目的のために含められた。したがって、参照符号またはその不在のいずれもが、任意の請求項要素の範囲に対する限定的影響を有しない。
本明細書で説明されるシステムおよび方法は、その特性から逸脱せずに他の特定の形において具現化され得る。本明細書で提供される例は、情報リソースのコンテンツの表示の制御に関するが、本明細書で説明されるシステムおよび方法は、他の環境に適用され得る。前述の実施態様は、説明されるシステムおよび方法について、限定的であるのではなく例示的である。したがって、本明細書で説明されるシステムおよび方法の範囲は、前述の説明ではなく添付の特許請求の範囲によって示され、特許請求の範囲の同等性の意味および範囲内に含まれる変更は、その中に含まれる。