以下は、コンピュータネットワーク環境内のアプリケーション上のスクロールイベントを帰属させる方法、装置、およびシステムに関する様々な概念およびその実施態様のより詳細な説明である。上で導入され、下でより詳細に議論される様々な概念は、説明される概念が実施態様の特定の形に限定されないので、多数の形のいずれにおいても実施され得る。
無限スクロールを使用することによって、追加コンテンツが、ウェブブラウザなどのインターネットベースのアプリケーションまたはネイティブモバイルアプリケーション上の同一の情報リソースページ(たとえば、ウェブページまたはアプリケーションページ)に動的に付加され得る。たとえば、アプリケーションのスクロール位置が、情報リソースページの端に近付く時に、アプリケーションは、サードパーティソースからの追加コンテンツを同一の情報リソースページに付加し、その情報リソースページのスクロール長を更新することができる。この例において、様々なサードパーティソースからのコンテンツは、無限スクロールを使用して同一の情報リソースページ上に表示され得る。ヒューマンコンピュータインタラクション(human-computer interaction)の展望から、この技法は、ウェブサイトコンテンツパブリッシャが、ユーザに他のコンテンツパブリッシャの情報リソースページへ離れてナビゲートさせることなく同一の情報リソースページ上にユーザをとどめることを可能にすることができる。無限スクロールの一実施態様は、インラインフレームを使用することとすることができる。インラインフレームは、別の情報リソースページのコンテンツを含むことができる。サードパーティソースからのコンテンツを含むインラインフレームを挿入する時には、コンテンツが情報リソースページ上で提示される形において複数の問題が生じる可能性があり、たとえば、とりわけ、あるページのコンテンツが別のページのコンテンツにオーバーラップする可能性があり、オリジナルコードの一部が正しく機能しない可能性がある。そのような問題は、ユーザに、サードパーティページのコンテンツを見るためにサードパーティソースへナビゲートさせる、不愉快なユーザ体験をもたらす可能性がある。
上記および他の課題に対処するために、本開示は、スクロールイベントをインラインフレームまたはインラインフレームを含む情報リソースページのいずれかに帰属させるシステムおよび方法を提供する。情報リソースページは、コンテンツドキュメントを埋め込むための各インラインフレームが1つの固定された寸法になることを指定するスクロール帰属スクリプトを含むことができる。たとえば、各インラインフレームの高さは、スマートフォンまたはタブレットなどのコンピューティングデバイスのウェブブラウザまたはスクリーンのビューポートの高さになるようにセットされ得る。各インラインフレーム内に埋め込まれた追加コンテンツを有するコンテンツドキュメントの長さが、可変とされ得るが、インラインフレーム自体は、固定された高さを有することができることを了解されたい。情報リソースページに付加される各インラインフレームの少なくとも1つの寸法を固定することによって、様々なサードパーティソースから取り出されたコンテンツドキュメントのオリジナルのフォーマッティングおよびプログラミング論理が、維持され得る。
スクロール帰属スクリプトを用いて、アプリケーションがスクロールイベント(たとえば、onScrollまたはonTouch)を検出する時に、アプリケーションは、スクロールイベントをインラインフレームのうちの1つまたはそのインラインフレームを含む情報リソースページのどちらに帰属させるべきかを動的に判定することができる。アプリケーションは、たとえば、インラインフレームごとに、インラインフレーム内に埋め込まれたコンテンツドキュメントの最上部をビューポートの最上部と、埋め込まれたコンテンツドキュメントの最下部をビューポートの最下部と比較することができる。埋め込まれたコンテンツドキュメントの最上部とビューポートの最上部との間のオフセットが、0以下であり、埋め込まれたコンテンツドキュメントの最下部とビューポートの最下部との間のオフセットが、0以上である場合に、アプリケーションは、スクロールイベントをインラインフレームに帰属させ、インラインフレーム内に埋め込まれたコンテンツドキュメントがスクロールすることを可能にすることができる。そうではない場合には、アプリケーションは、すべてのインラインフレームを含む情報リソースページにスクロールイベントを帰属させ、それによって情報リソースページがスクロールすることを可能にすることができる。視覚的に、1つのインラインフレームのコンテンツドキュメントのスクロール位置がその終りに近付く時には、後続のインラインフレームがビューポート内で完全に見えるまで、情報リソースページ全体がスクロール可能にされ得る。ヒューマンコンピュータインタラクションの展望から、スクロールイベントの動的帰属の正味の影響は、様々なサードパーティソースからのコンテンツの間のシームレスな体験をユーザに提供することとすることができる。したがって、インラインスクロールを提供するためのインラインフレームの使用に関連する問題、たとえば上で議論されたコンテンツが情報リソースページ上で提示され得る形に関連する問題は、対処され得る。したがって、本開示は、情報がユーザに提示されることを可能にし、ユーザが改善された形において情報と相互作用することを可能にする、技術的環境をどのように提供すべきかに関連する問題に対処するシステムおよび方法を提供することができる。
少なくとも1つの態様は、アプリケーション上のスクロールイベントを帰属させる方法を対象とする。この方法は、無限スクロール帰属スクリプトをクライアントデバイスに提供するステップを含むことができる。スクリプトは、クライアントデバイス上で実行するように構成され得る。スクリプトは、クライアントデバイスに、情報リソースページがその上に表示されるアプリケーションのビューポートの寸法に対応するように情報リソースの第1のインラインフレームの寸法をセットさせるように構成され得る。第1のインラインフレームは、少なくとも第1のコンテンツドキュメントが埋め込まれ得る。スクリプトは、クライアントデバイスに、アプリケーション上のスクロールイベントを監視させるように構成され得る。スクリプトは、クライアントデバイスに、スクロールイベントの検出に応答して、第1のインラインフレームに関して、第1のコンテンツドキュメントの第1のコンテンツドキュメント端とビューポートの第1のビューポート端との間の第1のオフセットが第1の所定のしきい値以下であると判定させるように構成され得る。スクリプトは、クライアントデバイスに、スクロールイベントの検出に応答して、第1のインラインフレームに関して、第1のコンテンツドキュメントの第2のコンテンツドキュメント端とビューポートの第2のビューポート端との間の第2のオフセットが第2の所定のしきい値以上であると判定させるように構成され得る。スクリプトは、クライアントデバイスに、第1のオフセットが第1の所定のしきい値以下であるとの判定および第2のオフセットが第2の所定のしきい値以上であるとの判定に応答して、スクロールイベントを第1のインラインフレームに割り当てさせるように構成され得る。スクリプトは、クライアントデバイスに、第1のオフセットが第1の所定のしきい値以下ではないとの判定および第2のオフセットが第2の所定のしきい値以上ではないことの判定のうちの少なくとも1つに応答して、スクロールイベントを情報リソースページに割り当てさせるように構成され得る。
図1は、アプリケーション上のスクロールイベントを帰属させる環境の一実施態様を示すブロック図である。環境100は、少なくとも1つのデータ処理システム110を含む。データ処理システム110は、少なくとも1つのプロセッサおよびメモリすなわち、処理回路を含むことができる。メモリは、プロセッサによって実行される時に、プロセッサに、本明細書で説明される動作のうちの1つまたは複数を実行させるプロセッサ実行可能命令を記憶する。プロセッサは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、またはその組合せを含むことができる。メモリは、プロセッサにプログラム命令を提供することのできる、電子、光、磁気、または任意の他のストレージデバイスまたは伝送デバイスを含むことができるが、これに限定はされない。メモリは、フロッピディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ASIC、FPGA、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能PROM(EEPROM)、消去可能プログラマブルROM(EPROM)、フラッシュメモリ、光媒体、またはプロセッサがそれから命令を読み取ることのできる任意の他の適切なメモリをさらに含むことができる。命令は、任意の適切なコンピュータプログラミング言語からのコードを含むことができる。データ処理システムは、様々な機能を実行することができる1つまたは複数のコンピューティングデバイスまたはサーバを含むことができる。いくつかの実施態様において、データ処理システムは、オークションをホスティングするように構成された広告オークションシステムを含むことができる。いくつかの実施態様において、データ処理システムは、広告オークションシステムを含むのではなく、ネットワーク105を介して広告オークションシステムと通信するように構成される。
ネットワーク105は、インターネット、ローカルエリアネットワーク、広域ネットワーク、メトロエリアネットワーク、他のエリアネットワーク、イントラネット、衛星ネットワーク、音声またはデータの携帯電話通信ネットワークなどの他のコンピュータネットワーク、およびその組合せなどのコンピュータネットワークを含むことができる。環境100のデータ処理システム110は、ネットワーク105を介して、たとえば、少なくとも1つのコンテンツプロバイダコンピューティングデバイス115、少なくとも1つのコンテンツパブリッシャコンピューティングデバイス120、または少なくとも1つのクライアントデバイス125と通信することができる。ネットワーク105は、とりわけ、ユーザコンピューティングデバイス115、データ処理システム110、および1つまたは複数のコンテンツソース、たとえばウェブサーバ、広告サーバの間で情報を中継する任意の形のコンピュータネットワークとされ得る。たとえば、ネットワーク105は、インターネットおよび/または、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク、もしくは他のタイプのデータネットワークなどの他のタイプのデータネットワークを含むことができる。ネットワーク105は、ネットワーク105内でデータを受信し、かつ/または送信するように構成された任意の個数のコンピューティングデバイス(たとえば、コンピュータ、サーバ、ルータ、ネットワークスイッチなど)をも含むことができる。ネットワーク105は、任意の個数のハードワイヤド接続および/または無線接続をさらに含むことができる。たとえば、ユーザコンピューティングデバイス115は、ネットワーク105内の他のコンピューティングデバイスにハードワイヤリングされた(たとえば、光ファイバケーブル、CAT5ケーブルなどを介して)トランシーバと無線で通信する(たとえば、WiFi、セルラー、ラジオなどを介して)ことができる。
コンテンツプロバイダコンピューティングデバイス115は、クライアントデバイス125における情報リソース上の表示のためにコンテンツアイテムを供給するためにコンテンツプロバイダエンティティによって運営されるサーバまたは他のコンピューティングデバイスを含むことができる。コンテンツプロバイダコンピューティングデバイス115によって供給されるコンテンツは、任意の便利な形をとることができる。たとえば、サードパーティコンテンツは、他の表示されるコンテンツに関するコンテンツを含むことができ、たとえば、表示されるコンテンツに関するウェブサイトのページとされ得る。それに加えてまたはその代わりに、コンテンツは、主コンテンツ、たとえばコンテンツパブリッシャコンピューティングデバイス120によって供給されるコンテンツを含むウェブサイトまたはウェブページなど、情報リソース上での表示のためのサードパーティコンテンツアイテムまたはクリエイティブ(たとえば、広告)を含むことができる。コンテンツアイテムは、検索結果ウェブページ上にも表示され得る。たとえば、コンテンツプロバイダコンピューティングデバイス115は、ウェブページの主コンテンツが会社によって提供される場合の会社のウェブページなどのコンテンツウェブページのコンテンツスロット内での表示のためまたは検索エンジンによって供給される検索結果ランディングページ(search results landing page)上での表示のために、コンテンツアイテムを提供し、またはコンテンツアイテムのソースになることができる。コンテンツプロバイダコンピューティングデバイス115に関連するコンテンツアイテムは、スマートフォンまたは他のクライアントデバイス125上でのアプリケーションの実行の一部として表示されるコンテンツなど、ウェブページ以外の情報リソース上に表示され得る。
コンテンツパブリッシャコンピューティングデバイス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)、電気的消去可能PROM(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に供給するために、とりわけ、ウェブページ、コンテンツアイテム、および無限スクロール帰属スクリプトを含むことができる。いくつかの実施態様において、ウェブページ、ウェブページの諸部分、およびコンテンツアイテムは、図3A〜図3F内に例示的に示されたものを含むことができる。データベース145のコンテンツの追加の詳細は、下で提供される。
コンテンツ要求モジュール130は、クライアントデバイス125からコンテンツの要求を受信することができる。コンテンツの要求は、とりわけ、1つまたは複数のインラインフレームを含む情報リソースページ(たとえば、ウェブページまたはアプリケーションのページ)の要求、コンテンツアイテムの要求、または情報リソースページのインラインフレームのうちの1つの中に埋め込まれるコンテンツドキュメントの要求を含むことができる。コンテンツの要求は、情報リソースページ、コンテンツドキュメント、またはコンテンツアイテムのアドレスまたは識別子を含むことができる。たとえば、コンテンツの要求は、ウェブページなどの特定のリソースを参照するUniform Resource Locator(URL)(たとえば、「https://www.example.com/homepage.html」)を含むことができる。コンテンツドキュメントの要求のURLは、情報リソースのURLとは異なるホームページを含むことができる。たとえば、情報リソースページのURLは、「https://www.example_host.com/index.html」とされ得るが、コンテンツドキュメントのURLは、「https://www.example_thirdparty.com/article1.html」とされ得る。いくつかの実施態様において、コンテンツ要求モジュール130は、無限スクロール帰属スクリプトの要求を示すインジケータを含むことができる情報リソースページ要求を受信することができる。たとえば、情報リソースページの要求は、情報リソースページと一緒に無限スクロール帰属スクリプトをクライアントデバイス125に送るために、コンテンツ要求モジュール130を指定するインジケータを含むヘッダを含むことができる。いくつかの実施態様において、コンテンツ要求モジュール130は、別のインラインフレーム内に埋め込むべきコンテンツドキュメントの別の要求を、その後に繰り返して受信することができる。いくつかの実施態様において、情報リソースページは、その情報リソースページのスクリプト内に挿入された無限スクロール帰属スクリプトを含むことができる。いくつかの実施態様において、情報リソースページは、その情報リソースページ内への挿入のために無限スクロール帰属スクリプトを取り出すためのスクリプトを含むことができる。
コンテンツ選択モジュール135は、クライアントデバイス125に送信すべきコンテンツを判定することができる。コンテンツ選択モジュール135は、コンテンツの要求内に含まれる情報リソースページ、コンテンツドキュメント、およびコンテンツアイテムのアドレスまたは識別子を識別することができる。コンテンツ選択モジュール135は、データベース145にアクセスし、アドレスまたは識別子によって識別される情報リソースページ、コンテンツドキュメント、またはコンテンツアイテムを選択することができる。コンテンツ選択モジュール135は、アドレスまたは識別子によって識別されるコンテンツドキュメントにアクセスし、取り出し、または他の形で受信するために、コンテンツプロバイダ115またはコンテンツパブリッシャ120に要求を送信することができる。コンテンツ選択モジュール135は、アドレスまたは識別子によって識別されるコンテンツドキュメントをクライアントデバイス125に送信しまたは転送することができる。たとえば、データ処理システム110は、情報リソースページのインラインフレーム内に埋め込むべきコンテンツドキュメントの要求をクライアントデバイス125から受信することができる。この要求は、コンテンツパブリッシャ120のうちの1つを参照するアドレスを含むことができる。この例において、コンテンツ選択モジュール135は、コンテンツドキュメントの要求をそれぞれのコンテンツパブリッシャ120に転送することができる。それぞれのコンテンツパブリッシャ120からコンテンツドキュメントを受信する時に、コンテンツ選択モジュール135は、そのコンテンツドキュメントを、オリジナルの要求を行ったクライアントデバイス125に転送することができる。
いくつかの実施態様において、コンテンツ選択モジュール135は、要求のタイプを識別することができる。いくつかの実施態様において、コンテンツ選択モジュール135は、クライアントデバイス125から受信したコンテンツの要求に基づいて、無限スクロール帰属スクリプトを送信すべきかどうかを判定することができる。コンテンツ選択モジュール135は、要求のタイプが、無限スクロール帰属スクリプトを送信するのに適切な要求に対応するかどうかを判定することができる。たとえば、コンテンツ選択モジュール135は、クライアントデバイス125によって既に受信されたかクライアントデバイス125にこれから送られるかのいずれかである情報リソースページが無限スクロール機能を有するかどうかを判定することができる。この例において、情報リソースページが、既に無限スクロールを指定する場合に、コンテンツ選択モジュール135は、無限スクロール帰属スクリプトを送信することができる。いくつかの実施態様において、コンテンツ選択モジュール135は、広告オークションに基づいて表示のためのコンテンツを選択することができるオークションシステムからコンテンツドキュメントまたはコンテンツアイテムを受信することができる。広告オークションシステムは、とりわけ、入札額、広告のサイズ、クリックスルーレート(CTR)、1000人あたりの広告費(CPM)、およびインプレッションレート(impression rate)などの広告オークションパラメータに基づいて複数の広告から広告を選択することができる。
スクリプトプロバイダモジュール140は、コンテンツをクライアントデバイス125に送信することができる。クライアントデバイス125に送信されるコンテンツは、少なくとも、情報リソースページおよび無限スクロール帰属スクリプトを含むことができる。いくつかの実施態様において、情報リソースページは、それぞれが少なくとも1つのコンテンツドキュメントが埋め込まれた、1つまたは複数のインラインフレームを含み、または含むように構成され得る。無限スクロール帰属スクリプトは、コンピュータ実行可能命令を含むことができる。コンピュータ実行可能命令は、とりわけ、ハイパーテキストマークアップ言語(HTML)、Extensible HyperText Markup Language(XHTML)、Extensible Markup Language(XML)、Cascading Style Sheets(CSS)、およびJavaScript(登録商標)などのスクリプトを含むことができる。コンピュータ実行可能命令は、クライアントデバイス125のアプリケーション、たとえば、コンテンツ要求モジュール130によって受信されるコンテンツの要求をクライアントデバイスに送信させたアプリケーションによって実行され得る。アプリケーションは、たとえば、インターネットブラウザ、モバイルアプリケーション、またはコンピュータ実行可能命令を読み取り、実行することのできる任意の他のコンピュータプログラムを含むことができる。短い概要において、コンピュータ実行可能命令は、クライアントデバイス125のプロセッサによって実行される時に、クライアントデバイスのアプリケーションに、(a)情報リソースページがその上に表示されるアプリケーションのビューポートの寸法に対応するように情報リソースページの第1のインラインフレームの寸法をセットさせ、(b)アプリケーション上のスクロールイベントを監視させ、(c)スクロールイベントの検出に応答して、第1のインラインフレームに関して、第1のコンテンツドキュメントの第1のコンテンツドキュメント端とビューポートの第1のビューポート端との間の第1のオフセットが第1の所定のしきい値以下であると判定させ、(d)スクロールイベントの検出に応答して、第1のインラインフレームに関して、第1のコンテンツドキュメントの第2のコンテンツドキュメント端とビューポートの第2のビューポート端との間の第2のオフセットが第2の所定のしきい値以上であると判定させ、(e)第1のオフセットが第1の所定のしきい値以下であるとの判定および第2のオフセットが第2の所定のしきい値以上であるとの判定に応答して、スクロールイベントを第1のインラインフレームに割り当てさせ、(f)第1のオフセットが第1の所定のしきい値以下ではないとの判定および第2のオフセットが第2の所定のしきい値以上ではないことの判定のうちの少なくとも1つに応答して、スクロールイベントを情報リソースページに割り当てさせることができる。無限スクロール帰属スクリプトの関数に関する追加の詳細は、本明細書で図2および図3A〜図3Fに関して提供される。
図2は、例示的実施態様による、無限スクロール帰属システム200の一実施態様を示すブロック図である。無限スクロール帰属システム200は、下で図5において説明されるものなどのコンピューティングデバイスの1つまたは複数のプロセッサによって走行されまたは他の形で実行され得る。無限スクロール帰属システム200は、アプリケーション205、情報リソースページ210、および無限スクロール帰属スクリプト225を含むことができる。アプリケーション205は、たとえば、インターネットブラウザ、モバイルアプリケーション、または、情報リソースページ210、1つもしくは複数のインラインフレーム215A〜N、1つもしくは複数のコンテンツドキュメント220A〜N、および無限スクロール帰属スクリプト225内に含まれるコンピュータ実行可能命令などのコンピュータ実行可能命令を実行しまたは他の形で呼び出すことのできる任意の他のコンピュータプログラムを含むことができる。情報リソースページ210は、1つまたは複数のインラインフレーム215A〜N(たとえば、HTML5のiframe)を含むことができる。1つまたは複数のインラインフレーム215A〜Nのそれぞれは、少なくとも1つのコンテンツドキュメント220A〜Nが埋め込まれ得る。情報リソースページ210は、アプリケーション205によって、無限スクロール帰属スクリプト225と一緒に受信され得る。無限スクロール帰属スクリプト225は、コンテンツ包含モジュール230、スクロール検出モジュール235、およびスクロール帰属モジュール240などの1つまたは複数のモジュールを含むことができる。
図3A〜図3Fを参照すると、図3A〜図3Fは、それぞれ、例示的実施態様による、それぞれがアプリケーション上のスクロールイベントを帰属させるためのビューポート300を示すディスプレイである。図3A〜図3F内に示された例において、図3A〜図3Fは、それぞれ、3つのインラインフレーム215A〜Cおよびビューポート300を含む。3つのインラインフレーム215A〜Cのそれぞれは、それぞれのコンテンツドキュメント220A〜Cが埋め込まれ得る。各インラインフレーム215A〜Cの寸法は、少なくともビューポート300と同じ大きさの寸法にセットされ得る。たとえば、インラインフレーム215A〜Cの高さは、図3A〜図3F内に示されているように、ビューポート300の高さより大きい高さにセットされ得る。逆に、インラインフレーム215A〜Cの幅は、図3A〜図3F内に示されているように、ビューポート300と同一の幅にセットされ得る。いくつかの実施態様において、インラインフレーム215A〜Cの寸法は、ビューポート300より小さい寸法にセットされ得る。たとえば、インラインフレーム215A〜C内に埋め込まれるコンテンツドキュメント220A〜Cの寸法の1つが、ビューポート300のそれぞれの寸法より小さい場合に、それぞれのインラインフレーム215A〜Cの高さおよび幅は、それぞれのコンテンツドキュメント220A〜Cの高さおよび幅にセットされ得る。ビューポート300は、情報リソースページ210のうちでアプリケーション205を介して可視の部分を含むことができる。ビューポート300は、たとえば、インターネットブラウザ(たとえば、アプリケーション205)を介して可視の、ウェブページのエリア(たとえば、破線内に示された、情報リソースページ210またはコンテンツドキュメント220A〜C)を含むことができる。ビューポート300は、それぞれのインラインフレーム215A〜C内に埋め込まれたコンテンツドキュメント220A〜Cを含む、アプリケーション205を介して可視の、情報リソースページ210の任意の部分を表示することができる。アプリケーション205のビューポート300は、アプリケーション205上でスクロールすることによって、調整され、シフトされ、または他の形で変更され得る。いくつかの実施態様では、アプリケーション205のスクロール特徴は、垂直、水平、またはその両方とされ、情報リソースページ210のそれぞれの軸に沿って移動することができる。ビューポート300の寸法は、アプリケーション205のサイズを変更することによって調整されまたは他の形で変更され得る。図3A〜図3F内に示された例において、情報リソースページ210のスクロール軸および3つのインラインフレーム215A〜Cの長さは、垂直とされ得る。
短い概要において、スクロールイベントは、ビューポート300に対する相対的なコンテンツドキュメント220A〜Cの位置に基づいて、インラインフレーム215A〜Cのうちの1つまたは情報リソースページ210のいずれかに帰属され得る。たとえば、視覚的展望から、インラインフレーム215A〜Cのうちの1つが、少なくとも高さ方向でビューポート300の全体を占有する時に、スクロールイベントは、それぞれのインラインフレーム215A〜C内に埋め込まれたコンテンツドキュメント220A〜Cに帰属され得る。スクロールイベントをインラインフレーム215A〜Cに帰属させることは、図3A、図3B、図3D、および図3F内に示されているように、コンテンツドキュメント220A〜C自体の上でのスクロールを可能にする。コンテンツドキュメント220A〜Cの下端が、下にスクロールする時にビューポート300の下端に近付く時に、スクロールイベントの帰属は、インラインフレーム215A〜Cから情報リソースページ210に変更され得、これによって、図3Cおよび図3E内に示されているように、情報リソースページ210全体をインラインフレーム215A〜Cと一緒に下にスクロールする。ヒューマンコンピュータインタラクションの展望から、情報リソースページ210とインラインフレーム215A〜Cとの間で往復してスクロールイベントの帰属をトグルすることは、それぞれのインラインフレーム215A〜C内に埋め込まれたコンテンツドキュメント220A〜C上の追加コンテンツの間でのシームレスな遷移を可能にすることができる。アプリケーション205上のスクロールイベントを帰属させるプログラミング論理は、下で詳細に説明される。
図3A〜図3Fに関連してもう一度図2を参照すると、コンテンツ包含モジュール230は、クライアントデバイス125に、情報リソースページ210のコンテンツをデータ処理システム110から受信させる命令を含むことができる。データ処理システム110からのコンテンツは、とりわけ、少なくとも、情報リソースページ210、1つまたは複数のコンテンツドキュメント220A〜N、およびコンテンツアイテムを含むことができる。いくつかの実施態様において、コンテンツ包含モジュール230は、クライアントデバイス125に、少なくとも第1のコンテンツドキュメント220Aを第1のインラインフレーム215A内に埋め込むために第1のインラインフレーム215Aを情報リソースページ210上にインスタンス化させまたは他の形で付加させることができる。たとえば、第1のインラインフレーム215Aを付加し、第1のコンテンツドキュメント220Aを第1のインラインフレーム215A内に埋め込むために、コンテンツ包含モジュール230は、情報リソースページ210内にHTML5マークアップ「<iframe src="https://example.com"></iframe>」を挿入することができる。別の例において、JavaScript(登録商標)を使用して、コンテンツ包含モジュール230は、ドキュメントオブジェクトモデル(DOM)ノードとして第1のインラインフレーム215Aをインスタンス化し、情報リソースページ210のDOMツリー内に付加するために、「document.createElement(<inline_frame>)」関数を呼び出すことができる。この例において、コンテンツ包含モジュール230は、「document.getElementbyID(<inline_frame>).src="https://example.com」を呼び出すことによって第1のコンテンツドキュメント220Aを埋め込むことができる。いくつかの実施態様において、コンテンツ包含モジュール230は、クライアントデバイス125に、情報リソースページ210上に事前に存在するコンテンツを第1のインラインフレーム215Aに埋め込ませることができる。たとえば、情報リソースページ210が、どのインラインフレーム215A〜Nからも分離された、テキストおよびイメージを有する主コンテンツを含む場合に、コンテンツ包含モジュール230は、事前に存在する主コンテンツを情報リソースページ210から移動し、その事前に存在するコンテンツをコンテンツドキュメント220Aとして第1のインラインフレーム215A内に埋め込み、その事前に存在する主コンテンツを情報リソースページ210から除去することができる。
いくつかの実施態様において、コンテンツ包含モジュール230は、クライアントデバイス125に、第2のインラインフレーム215Bを情報リソースページ210に付加させることができる。第2のインラインフレーム215Bは、第2のコンテンツドキュメント220Bが埋め込まれ得る。いくつかの実施態様において、コンテンツ包含モジュール230は、クライアントデバイス125に、情報リソースページ210が第1のインラインフレーム215A以外の別のインラインフレームを有しないかどうかを判定させることができる。いくつかの実施態様において、コンテンツ包含モジュール230は、クライアントデバイス125に、情報リソースページ210が第1のインラインフレーム215A以外の別のインラインフレームを有しないとの判定に応答して、第2のインラインフレーム215Bを付加させることができる。いくつかの実施態様において、コンテンツ包含モジュール230は、クライアントデバイス125に、別のコンテンツドキュメント220Bの受信に応答して、第2のインラインフレーム215Bを情報リソースページ210に付加させることができる。たとえば、クライアントデバイス125が、データ処理システム110から別のコンテンツドキュメント220Bを受信する場合に、コンテンツ包含モジュール230は、情報リソースページ210内で別のインラインフレーム215B〜Nをインスタンス化し、コンテンツドキュメント220B〜Nをそれぞれのインラインフレーム215B〜N内に埋め込むことができる。コンテンツ包含モジュール230は、クライアントデバイス125に、第3のインラインフレーム215Cなどの1つまたは複数のインラインフレームを情報リソースページ210に繰り返して動的に付加させることができる。
いくつかの実施態様において、コンテンツ包含モジュール230は、クライアントデバイス125に、それぞれのインラインフレーム215A〜N内に埋め込まれた事前に存在するコンテンツドキュメント220A〜Nへの補足コンテンツ付加物を監視させることができる。いくつかの実施態様において、コンテンツ包含モジュール230は、クライアントデバイス125に、インラインフレーム215A〜N内に埋め込まれたコンテンツドキュメント220A〜Nに補足コンテンツ付加物を付加させることができる。たとえば、クライアントデバイス125が、第1のインラインフレーム215A内に埋め込まれたコンテンツドキュメント220Aの末尾に付加されるオンライン広告を受信する場合に、コンテンツ包含モジュール230は、補足コンテンツ付加物としてそのオンライン広告を検出し、そのオンライン広告をコンテンツドキュメント220Aの末尾に付加することができる。
コンテンツ包含モジュール230は、クライアントデバイス125に、情報リソースページ210がその上に表示されるアプリケーション205のビューポート300の寸法に対応するように情報リソースページ210の第1のインラインフレーム215Aの寸法をセットさせる命令を含むことができる。アプリケーションのビューポート300の寸法は、とりわけ、画素単位、スケーリングされた画素単位、メートル単位、または帝国単位とされ得る。コンテンツ包含モジュール230は、クライアントデバイス125に、アプリケーションのビューポート300の寸法を判定させまたは識別させる命令を含むことができる。たとえば、コンテンツ包含モジュール230は、ビューポート300のサイズを取り出すためにJavaScript(登録商標)関数「getViewportsize()」を呼び出すことができる。代替案では、コンテンツ包含モジュール230は、HTMLメタタグ「viewport」を使用し、「device-height」値および「device-width」値を使用して、ビューポート300の寸法を識別することができる。いくつかの実施態様において、コンテンツ包含モジュール230は、クライアントデバイス125に、情報リソースページ210の第1のインラインフレーム215Aの寸法をビューポート300の寸法より大きい寸法にセットさせる命令を含むことができる。いくつかの実施態様において、コンテンツ包含モジュール230は、クライアントデバイス125に、情報リソースページ210の第1のインラインフレーム215Aの高さをビューポート300の高さ以上の高さにセットさせる命令を含むことができる。いくつかの実施態様において、コンテンツ包含モジュール230は、クライアントデバイス125に、情報リソースページ210の第1のインラインフレーム215Aの幅をビューポート300の幅以上の幅にセットさせる命令を含むことができる。たとえば、1920x1080としてビューポート300のサイズを識別した後に、コンテンツ包含モジュール230は、1920x1300として第1のインラインフレーム215Aの寸法をセットすることができる。コンテンツ包含モジュール230は、クライアントデバイス125に、図3A〜図3F内に示されているように、残りのインラインフレーム215B〜Nの寸法を第1のインラインフレーム215Aと同一の寸法にセットさせる命令を含むことができる。いくつかの実施態様において、コンテンツ包含モジュール230は、クライアントデバイス125に、残りのインラインフレーム215B〜Nの寸法を第1のインラインフレーム215Aの寸法より大きい寸法にセットさせる命令を含むことができる。
いくつかの実施態様において、コンテンツ包含モジュール230は、クライアントデバイス125に、インラインフレーム215A〜N内に埋め込まれるコンテンツドキュメント220A〜Nのサイズを判定させまたは識別させる命令を含むことができる。いくつかの実施態様において、コンテンツ包含モジュール230は、クライアントデバイス125に、コンテンツドキュメント220A〜Nの寸法をビューポート300の寸法と比較させる命令を含むことができる。いくつかの実施態様において、コンテンツ包含モジュール230は、ビューポート300の寸法とのコンテンツドキュメント220A〜Nの寸法の比較に応答して、埋め込まれたコンテンツドキュメント220A〜Nを有するそれぞれのインラインフレーム215A〜Nの寸法をコンテンツドキュメント220A〜Nの寸法にセットすることができる。たとえば、第2のインラインフレーム215B内に埋め込まれるコンテンツドキュメント220Bの高さが、ビューポート300の高さより小さい場合に、コンテンツ包含モジュール230は、第2のインラインフレーム215Bの高さをコンテンツドキュメント220Bの高さにセットすることができる。
スクロール検出モジュール235は、クライアントデバイス125に、アプリケーション205上のスクロールイベントを監視させる命令を含むことができる。いくつかの実施態様において、スクロール検出モジュール235は、クライアントデバイス125に、スクロールイベントを検出させまたは他の形でリッスンさせる命令を含むことができる。スクロールイベントは、たとえば、「onScroll」または「onTouch」のイベントハンドラまたはリスナを含むことができる。たとえば、クライアントデバイス125がタッチディスプレイを含む場合に、スクロール検出モジュール235は、スクロールイベントとしてアプリケーション205上の「onTouch」イベントを検出することができる。いくつかの実施態様において、スクロール検出モジュール235は、クライアントデバイス125に、スクロールイベントの検出に応答して他の命令を実行させまたは走行させる命令を含むことができる。たとえば、スクロール検出モジュール235は、「onScroll」または「onTouch」のイベントリスナがスクロールイベントを検出する際に機能を呼び出すことができる。いくつかの実施態様において、スクロール検出モジュール235は、クライアントデバイス125に、スロットリングによってスクロールイベントを処理させる命令を含むことができる。たとえば、クライアントデバイス125が1つのスクロールイベントを受信した後に、スクロール検出モジュール235は、クライアントデバイス125に、所定の時間枠が経過する(たとえば、4msから140ms)まで、スクロールイベントを処理しないようにさせる命令を含むことができる。
スクロール検出モジュール235は、クライアントデバイス125に、スクロールイベントの検出に応答して、第1のインラインフレーム215Aに関して、第1のコンテンツドキュメント220Aの第1のコンテンツドキュメント端とビューポート300の第1のビューポート端との間の第1のオフセットが第1の所定のしきい値以下であると判定させる命令を含むことができる。第1の所定のしきい値は、画素単位、スケーリングされた画素単位、メートル単位、または帝国単位において測定され得る。第1の所定のしきい値は、0から、ビューポート300のパーセンテージまたは比率に基づく任意の数までの範囲にわたることができる。たとえば、第1の所定のしきい値は、ビューポート300の高さの0%から33%までの範囲にわたることができる。第1の所定のしきい値は、固定されまたは変更され得る。いくつかの実施態様において、スクロール検出モジュール235は、クライアントデバイス125に、スクロールイベントの検出に応答して、第1のコンテンツドキュメント220Aの第1のコンテンツドキュメント端を識別させまたは入手させる命令を含むことができる。第1のコンテンツドキュメント220Aの第1のコンテンツドキュメント端は、たとえば、第1のコンテンツドキュメント220Aの上端または左端の座標または位置とされ得る。たとえば、スクロール検出モジュール235は、第1のコンテンツドキュメント220Aの上端を識別するために「<element>.offsetTop」または「<element>.offsetLeft」のJavaScript(登録商標)プロパティを呼び出すことができる。いくつかの実施態様において、スクロール検出モジュール235は、クライアントデバイス125に、スクロールイベントの検出に応答して、ビューポート300の第1のビューポート端を識別させまたは入手させる命令を含むことができる。第1のビューポート端は、たとえば、ビューポート300の上端または左端とされ得る。たとえば、スクロール検出モジュール235は、ビューポート300の上端または左端の座標を入手するために「window.pageYOffset」または「window.pageXOffset」のJavaScript(登録商標)プロパティを呼び出すことができる。いくつかの実施態様において、スクロール検出モジュール235は、クライアントデバイス125に、第1のコンテンツドキュメント220Aの第1のコンテンツドキュメント端をビューポート300の第1のビューポート端と比較させる命令を含むことができる。スクロール検出モジュール235は、クライアントデバイス125に、第1のコンテンツドキュメント端と第1のビューポート端との間の差またはオフセットを計算させまたは判定させ、その差またはオフセットを第1の所定のしきい値と比較させる命令を含むことができる。
スクロール検出モジュール235は、クライアントデバイス125に、スクロールイベントの検出に応答して、第1のインラインフレーム215Aに関して、第1のコンテンツドキュメント220Aの第2のコンテンツドキュメント端とビューポート300の第2のビューポート端との間の第2のオフセットが第2の所定のしきい値以上であると判定させる命令を含むことができる。第2の所定のしきい値は、画素単位、スケーリングされた画素単位、メートル単位、または帝国単位において測定され得る。第2の所定のしきい値は、0から、ビューポート300のパーセンテージまたは比率に基づく任意の数までの範囲にわたることができる。たとえば、第2の所定のしきい値は、ビューポート300の高さの0%から33%までの範囲にわたることができる。第2の所定のしきい値は、固定されまたは変更され得る。いくつかの実施態様において、スクロール検出モジュール235は、クライアントデバイス125に、スクロールイベントの検出に応答して、第1のコンテンツドキュメント220Aの第2のコンテンツドキュメント端を識別させまたは入手させる命令を含むことができる。第1のコンテンツドキュメント220Aの第2のコンテンツドキュメント端は、たとえば、第1のコンテンツドキュメント220Aの下端または右端の座標または位置とされ得る。
たとえば、スクロール検出モジュール235は、第1のコンテンツドキュメント220Aの下端または右端を識別するために「<element>.offsetTop」のJavaScript(登録商標)プロパティと第1のコンテンツドキュメント220Aの高さとの和または「<element>.offsetLeft」のJavaScript(登録商標)プロパティと第1のコンテンツドキュメント220Aの幅との和を呼び出すことができる。いくつかの実施態様において、スクロール検出モジュール235は、クライアントデバイス125に、スクロールイベントの検出に応答して、ビューポート300の第2のビューポート端を識別させまたは入手させる命令を含むことができる。第2のビューポート端は、たとえば、ビューポート300の下端または右端とされ得る。たとえば、スクロール検出モジュール235は、ビューポート300の下端または右端の座標を入手するために「window.pageYOffset」のJavaScript(登録商標)プロパティとビューポート高さとの和または「window.pageXOffset」のJavaScript(登録商標)プロパティとビューポート幅との和を呼び出すことができる。いくつかの実施態様において、スクロール検出モジュール235は、クライアントデバイス125に、第1のコンテンツドキュメント220Aの第2のコンテンツドキュメント端をビューポート300の第2のビューポート端と比較させる命令を含むことができる。スクロール検出モジュール235は、クライアントデバイス125に、第2のコンテンツドキュメント端と第2のビューポート端との間の差またはオフセットを計算させまたは判定させ、その差またはオフセットを第2の所定のしきい値と比較させる命令を含むことができる。
いくつかの実施態様において、コンテンツ包含モジュール230は、スクロール検出モジュール235と連動して、クライアントデバイス125に、第1のオフセットが第1の所定のしきい値以下ではないとの判定および第2のオフセットが第2の所定のしきい値以上ではないことの判定のうちの少なくとも1つに応答して、情報リソースページ210内に第2のインラインフレーム215Bを付加させる命令を含むことができる。第2のインラインフレーム215Bは、少なくとも第2のコンテンツドキュメント220Bが埋め込まれ得る。第2のコンテンツドキュメント220Bは、第1のコンテンツドキュメント220Aのソースまたは情報リソースページ210のソースとは異なるサードパーティソースからとすることができる。たとえば、第1のオフセットが第1の所定のしきい値以下ではく、第2のオフセットが第2の所定のしきい値以上ではないと判定される時に、スクロール検出モジュール235は、コンテンツ包含モジュール230の命令を呼び出すことができる。コンテンツ包含モジュール230は、追加コンテンツの要求を送信し、受信された追加コンテンツを第2のインラインフレーム215B内に第2のコンテンツドキュメント220Bとして埋め込むことができる。いくつかの実施態様において、コンテンツ包含モジュール230は、スクロール検出モジュール235と連動して、クライアントデバイス125に、情報リソースページのスクロール位置が情報リソースページの寸法の所定のしきい分数またはしきいパーセンテージ以内であると判定させる命令を含むことができる。たとえば、スクロール位置が、情報リソースページの高さの75%と95%との間である場合に、コンテンツ包含モジュール230は、第2のインラインフレーム215Bを情報リソースページ210に付加し、追加コンテンツの要求を送信し、受信されたコンテンツドキュメント220Bを第2のインラインフレーム215内に埋め込むことができる。コンテンツ包含モジュール230は、スクロール検出モジュール235と連動して、クライアントデバイス125に、1つまたは複数のインラインフレーム215C〜Nに関してこの機能性を繰り返して動的に実行させる命令を含むことができる。
スクロール帰属モジュール240は、クライアントデバイス125に、第1のオフセットが第1の所定のしきい値以下であるとの判定および第2のオフセットが第2の所定のしきい値以上であるとの判定に応答して、スクロールイベントを第1のインラインフレーム215Aに割り当てさせる命令を含むことができる。いくつかの実施態様において、スクロール帰属モジュール240は、クライアントデバイス125に、当初にスクロールイベントを情報リソースページ210にセットさせる命令を含むことができる。いくつかの実施態様において、スクロール帰属モジュール240は、クライアントデバイス125に、第1のオフセットが第1の所定のしきい値以下であるとの判定および第2のオフセットが第2の所定のしきい値以上であるとの判定に応答して、スクロールイベントを第1のインラインフレーム215Aに割り当てさせる命令を含むことができる。いくつかの実施態様において、スクロール帰属モジュール240は、クライアントデバイス125に、第1のインラインフレーム215Aのスクロール可能プロパティをスクロール可能に割り当てさせる命令を含むことができる。たとえば、第1のオフセットが0より大きく、第2のオフセットが0より大きいと判定される時に、スクロール帰属モジュール240は、第1のインラインフレーム215Aのスクロール可能プロパティを真にセットし、これによって、第1のインラインフレーム215A内に埋め込まれた第1のコンテンツドキュメント220Aがスクロールすることを可能にすることができる。
スクロール帰属モジュール240は、クライアントデバイス125に、第1のオフセットが第1の所定のしきい値以下ではないとの判定および第2のオフセットが第2の所定のしきい値以上ではないとの判定のうちの少なくとも1つに応答して、スクロールイベントを情報リソースページ210に割り当てさせる命令を含むことができる。いくつかの実施態様において、スクロール帰属モジュール240は、クライアントデバイス125に、当初にスクロールイベントを第1のインラインフレーム215Aにセットさせる命令を含むことができる。いくつかの実施態様において、スクロール帰属モジュール240は、クライアントデバイス125に、第1のオフセットが第1の所定のしきい値以下であるとの判定および第2のオフセットが第2の所定のしきい値以上であるとの判定に応答して、スクロールイベントを情報リソースページ210に割り当てさせる命令を含むことができる。いくつかの実施態様において、スクロール帰属モジュール240は、クライアントデバイス125に、情報リソースページ210のスクロール可能プロパティをスクロール可能に割り当てさせる命令を含むことができる。たとえば、第1のオフセットが0より大きく、第2のオフセットが0より小さいと判定される時に、スクロール帰属モジュール240は、情報リソースページ210のスクロール可能プロパティを真にセットし、これによって、情報リソースページ210の全体がアプリケーション205のスクロール位置と一緒に移動することを可能にすることができる。
いくつかの実施態様において、スクロール帰属モジュール240は、コンテンツ包含モジュール230と連動して、クライアントデバイス125に、第2のコンテンツドキュメント220Bの寸法がビューポート300の寸法より小さいとの判定に応答して、スクロールイベントを情報リソースページに割り当てさせる命令を含むことができる。いくつかの実施態様において、スクロール帰属モジュール240は、コンテンツ包含モジュール230と連動して、クライアントデバイス125に、第2のインラインフレーム215Bのスクロール可能プロパティをスクロール可能に割り当てさせない命令を含むことができる。たとえば、第2のインラインフレーム215B内に埋め込まれた第2のコンテンツドキュメント220Bの高さおよび幅が、1240x500であり、ビューポート300の高さおよび幅が、1240x720である場合に、スクロール帰属モジュール240は、視覚的に、スクロールが第2のインラインフレーム215B上にあり、第2のインラインフレーム215Bの全体が完全にビューポート300のビュー内にある場合であっても、スクロールイベントを情報リソースページ210に割り当てることができる。
いくつかの実施態様において、スクロール検出モジュール235およびスクロール帰属モジュール240は、コンテンツ包含モジュール230と連動して、クライアントデバイス125に、補足コンテンツ付加物の検出に応答して、第1のオフセットが第1の所定のしきい値以下であり、第2のオフセットが第2の所定のしきい値以上であると判定させる命令を含むことができる。たとえば、追加コンテンツが、第1のインラインフレーム215A内に埋め込まれた第1のコンテンツドキュメント220Aに付加されたと判定される時に、スクロール検出モジュール235は、第1のオフセットが0以下であり、第2のオフセットが200画素以上であると判定することができる。スクロール帰属モジュール240は、その判定に基づいて、第1のインラインフレーム215Aまたは情報リソースページ210のいずれかにスクロールイベントを割り当てることができる。
図3C〜図3F内に示されているように、スクロール検出モジュール235およびスクロール帰属モジュール240が、クライアントデバイス125に、同一のまたは異なるしきい値を使用して、第1のインラインフレーム215A以外の各インラインフレーム215B〜Nのオフセットを判定させ、それに応じてスクロールイベントを割り当てさせる命令を含むことができることを了解されたい。たとえば、スクロール検出モジュール235は、クライアントデバイス125に、スクロールイベントの検出に応答して、第2のインラインフレームに関して、第2のコンテンツドキュメント220Bの第1のコンテンツドキュメント端とビューポート300の第1のビューポート端との間の第3のオフセットが第3の所定のしきい値以下であることを判定させる命令を含むことができる。スクロール検出モジュール235は、クライアントデバイス125に、スクロールイベントの検出に応答して、第2のインラインフレームに関して、第2のコンテンツドキュメント220Bの第2のコンテンツドキュメント端とビューポート300の第2のビューポート端との間の第4のオフセットが第4の所定のしきい値以上であると判定させる命令をも含むことができる。スクロール帰属モジュール240は、クライアントデバイス125に、第3のオフセットが第3の所定のしきい値以下であるとの判定および第4のオフセットが第4の所定のしきい値以上であるとの判定に応答して、スクロールイベントを第2のインラインフレーム215Bに割り当てさせる命令を含むことができる。これらの機能性は、後続のインラインフレーム215C〜Nに関して繰り返され得る。
いくつかの実施態様において、スクロール検出モジュールは、クライアントデバイス125に、第3のオフセットが第3の所定のしきい値以下であるとの判定および第4のオフセットが第4の所定のしきい値以上であるとの判定のうちの少なくとも1つに応答して、アプリケーションのスクロールイベントを監視させる命令を含むことができる。いくつかの実施態様において、スクロール検出モジュール235およびスクロール帰属モジュール240は、それぞれのコンテンツドキュメント220A〜Nのコンテンツドキュメント端とスクロールイベントを帰属された最後のインラインフレーム215A〜Nのビューポート300のビューポート端との間のオフセットを判定することができる。たとえば、スクロールイベントを帰属された最後のインラインフレーム215A〜Nが、第2のインラインフレーム215Bである場合に、スクロール検出モジュール235は、クライアントデバイス125に、第2のインラインフレーム215Bのオフセットを判定させる命令を含むことができる。
いくつかの実施態様において、無限スクロール帰属スクリプト225のコンテンツ包含モジュール230は、以下の擬似コードを使用して実施され得る。
01 ドキュメントを埋め込む(新しいコンテンツドキュメント, j){
02 if(新しいコンテンツドキュメント.サイズ >= ビューポート.サイズ)
03 インスタンス化する(iFrame[j], 新しいコンテンツドキュメント, ビューポート.サイズ + イプシロン)
04 else
05 インスタンス化する(iFrame[j], 新しいコンテンツドキュメント, 新しいコンテンツドキュメント.サイズ) }
いくつかの実施態様において、無限スクロール帰属スクリプト225のスクロール検出モジュール235およびスクロール帰属モジュール240は、以下の擬似コードを使用して実施され得る。
01 onScroll(){
02 for(iFrame[0:i:N])
03 if(iFrame[i].コンテンツドキュメント.最上部 - ビューポート.最上部 <= 0 && iFrame[i].コンテンツドキュメント.最下部 - ビューポート.最下部 >= 0)
04 iFrame[i].scrollable(true)
05 else
06 iFrame[i].scrollable(false)
07 if(1画面内か(iFrame[N-2:k:N].コンテンツドキュメント))
08 ドキュメントを埋め込む(getNewContent(),k+1) }
09
10 1画面内か(現在のフレーム){
11 return(現在のフレーム.最上部 <= 0 || 現在のフレーム.最上部 <= 最上部_イプシロン || 現在のフレーム.最下部 <= 最下部_イプシロン) }
図2に関連して説明された無限スクロール帰属システム200の文脈において図3A〜図3Fをもう一度参照すると、コンテンツ包含モジュール230は、3つのインラインフレーム215A〜Cのそれぞれの高さをビューポート300の高さより大きい高さに、3つのインラインフレーム215A〜Cのそれぞれの幅をビューポート300の幅にセットすることができる。図3A〜図3F内に示されているように、3つのインラインフレーム215A〜Cのそれぞれは、同一の高さおよび幅にセットされ得る。図3A内で、コンテンツ包含モジュール230は、第1のコンテンツドキュメント220Aを第1のインラインフレーム215A内に、第2のコンテンツドキュメント220Bを第2のインラインフレーム215B内に埋め込むことができる。スクロール帰属モジュール240は、当初に、スクロールイベントの帰属を第1のインラインフレーム215Aにセットすることができる。コンテンツ包含モジュール230は、第3のインラインフレーム215Cをインスタンス化し、第3のコンテンツドキュメント220Cを埋め込まずに第3のインラインフレーム215Cを情報リソースページ210に付加することができる。
図3Bに移ると、図3Bは、図3Aのコンテンツドキュメント220Aの下のスクロール位置にあるコンテンツドキュメント220Aを示す。図3Aと同様に、図3B内では、スクロール帰属モジュール240が、スクロールイベントの帰属を第1のインラインフレーム215Aにセットしている可能性があり、これによって、コンテンツドキュメント220Aがそのインラインフレーム215A内でスクロール可能になることを可能にするので、情報リソースページ210のスクロール位置は変化していない。スクロール検出モジュール235は、イベントハンドラまたはリスナを使用して、アプリケーション205上のスクロールイベントを間欠的に監視することができる。スクロール検出モジュール235は、これらの検出のうちの少なくともいくつかに関して、第1のコンテンツドキュメント220Aの上端とビューポート300の上端との間のオフセットが0より大きく、第1のコンテンツドキュメント220Aの下端とビューポート300の下端との間のオフセットが0より小さいかどうかを判定することができる。
図3Cに移ると、図3Cは、図3Aおよび図3Bより低いスクロール位置にある情報リソースページ210を示す。図3C内では、第1のコンテンツドキュメント220Aの下端が第1のインラインフレーム215Aの下端に向かって進む時に、スクロール検出モジュール235は、第1のコンテンツドキュメント220Aの上端とビューポート300の上端との間のオフセットが0より大きく、第1のコンテンツドキュメント220Aの下端とビューポート300の下端との間のオフセットが0より小さいと判定し終えている可能性がある。これらの比較に基づいて、スクロール帰属モジュール240は、スクロールイベントを第1のインラインフレーム215Aではなく情報リソースページ210に割り当て済みであり、これによって、情報リソースページ210が上にスクロールすることを可能にすることができる。さらに、第2のコンテンツドキュメント220Bが埋め込まれた第2のインラインフレーム215Bの上端が、ビューポート300の範囲またはビュー内に移動することができる。スクロールイベントが、第2のインラインフレーム215Bに帰属されていないので、埋め込まれた第2のコンテンツドキュメント220Bのスクロール位置は、移動しない。
図3Dに移ると、図3Dは、図3Cのスクロール位置より低いスクロール位置にある、現在はスクロールイベントを帰属された第2のインラインフレーム215Bを示す。スクロール検出モジュール235は、第2のコンテンツドキュメント220Bの上端とビューポート300の上端との間のオフセットが0以下であり、第2のコンテンツドキュメント220Bの下端とビューポート300の下端との間のオフセットが0以上であると判定し終えている可能性がある。これらの比較に基づいて、スクロール帰属モジュール240は、スクロールイベントを第2のインラインフレーム215Bに帰属させ、これによって、第2のインラインフレーム215B内に埋め込まれた第2のコンテンツドキュメント220Bがスクロールすることを可能にすることができる。
図3Eに移ると、図3Eは、図3A〜図3Dのスクロール位置より低いスクロール位置にある情報リソースページ210を示す。図3E内で、第2のコンテンツドキュメント220Bの下端が第2のインラインフレーム215Bの下端に向かって進む時に、スクロール検出モジュール235は、やはり、第2のコンテンツドキュメント220Bの上端とビューポート300の上端との間のオフセットが0より大きく、第2のコンテンツドキュメント220Bの下端とビューポート300の下端との間のオフセットが0より小さいと判定し終えている可能性がある。これらの比較に基づいて、スクロール帰属モジュール240は、スクロールイベントを第1または第2のインラインフレーム215Aまたは215Bではなく情報リソースページ210に割り当て済みであり、これによって情報リソースページ210が上にスクロールすることを可能にすることができる。さらに、コンテンツ包含モジュール230は、追加コンテンツが第3のインラインフレーム215C内に埋め込まれることを要求済みである可能性があり、追加コンテンツを第3のコンテンツドキュメント220Cとして第3のインラインフレーム215C内に埋め込み済みである可能性がある。視覚的に、第2のインラインフレーム215Bは完全にはビューポート300のビューの外ではないので、第2のコンテンツドキュメント220Bおよび第3のコンテンツドキュメント220Cの一部が、ビューポート300を介して可視である。
図3Fに移ると、図3Fは、図3Eのスクロール位置より低いスクロール位置にある第3のコンテンツドキュメント220Cを示す。図3F内で、スクロール検出モジュール235は、第3のコンテンツドキュメント220Cの上端とビューポート300の上端との間のオフセットが0以下であり、第3のコンテンツドキュメント220Cの下端とビューポート300の下端との間のオフセットが0以上であると判定し終えている可能性がある。これらの比較に基づいて、スクロール帰属モジュール240は、スクロールイベントを第3のインラインフレーム215Cに帰属させ、これによって、第3のインラインフレーム215C内に埋め込まれた第3のコンテンツドキュメント220Cがスクロールすることを可能にすることができる。コンテンツ包含モジュール230は、それぞれのインラインフレーム215D内に埋め込まれるコンテンツドキュメント220D〜Nとして情報リソースページ210に付加すべき追加コンテンツの要求を送信することができる。
図3A〜図3Fに関連して説明された無限スクロール帰属システム200の機能性が、スクロール位置の順序において逆に行われ得ることを了解されたい。たとえば、図3Fから図3Eに移ると、アプリケーション205のスクロール位置が上に移動される時に、スクロール検出モジュール235は、第3のコンテンツドキュメント220Cの上端とビューポート300の上端との間のオフセットが0より大きく、第3のコンテンツドキュメント220Cの下端とビューポート300の下端との間のオフセットが0より小さいと判定することができる。スクロール検出モジュール235は、第2のコンテンツドキュメント220Bの上端とビューポート300の上端との間のオフセットが0より大きく、第2のコンテンツドキュメント220Bの下端とビューポート300の下端との間のオフセットが0より小さいと判定することもできる。これらの比較に基づいて、スクロール帰属モジュール240は、スクロールイベントを情報リソースページ210に割り当て、これによって、情報リソースページ210全体がスクロールすることを可能にすることができる。さらに、図3A〜図3Fに関連して説明された無限スクロール帰属システム200の機能性が、スクロール軸において任意の方向または軸において行われ得ることを了解されたい。たとえば、アプリケーション205のスクロール軸を垂直にするのではなく、スクロール軸を水平にすることができる。さらに、インラインフレーム215A〜Cは、情報リソースページ210に水平に付加され得、長さにおいて水平とされ得るコンテンツドキュメント220A〜Cが埋め込まれ得る。この例において、スクロール検出モジュール235は、オフセットを計算するのにコンテンツドキュメント220A〜Cの左端および右端とビューポート300の左端および右端とを使用し、それぞれのインラインフレーム215A〜Cまたは情報リソースページ210のいずれかにスクロールイベントを割り当てることができる。
図4を参照すると、図4は、アプリケーション上のスクロールイベントを帰属させる方法400を示す流れ図である。方法400に関して本明細書で説明される機能性は、図1内に示されたデータ処理システム110もしくはクライアントデバイス125、図2内に示されたコンテンツ表示管理システム200、またはその任意の組合せによって遂行されまたは他の形で実行され得る。たとえば、図4は、データ処理システム110とクライアントデバイス125との間で分散された方法400の機能性を示す。短い概要において、クライアントデバイスは、コンテンツの要求をデータ処理システムに送信することができる(ブロック405)。データ処理システムは、クライアントデバイスからコンテンツの要求を受信することができる(ブロック410)。データ処理システムは、無限スクロール帰属スクリプトと共にコンテンツをクライアントデバイスに送信することができる(ブロック415)。クライアントデバイスは、データ処理システムから無限スクロール帰属スクリプトと共にコンテンツを受信することができる(ブロック420)。クライアントデバイスは、インラインフレームの寸法をビューポートの寸法にセットすることができる(ブロック425)。クライアントデバイスは、スクロールイベントを検出することができる(ブロック430)。クライアントデバイスは、コンテンツドキュメントの第1の端とビューポートの第1の端との間の第1のオフセットが第1のしきい値以下であるかどうかを判定することができる(ブロック435)。クライアントデバイスは、コンテンツドキュメントの第2の端とビューポートの第2の端との間の第2のオフセットが第2のしきい値以上であるかどうかを判定することができる(ブロック440)。第1のオフセットが第1のしきい値以下であり、第2のオフセットが第2のしきい値以上である場合には、クライアントデバイスは、スクロールイベントをインラインフレームに割り当てることができる(ブロック445)。第1のオフセットが第1のしきい値以下ではなく、第2のオフセットが第2のしきい値以上ではない場合には、クライアントデバイスは、スクロールイベントを情報リソースページに割り当てることができる(ブロック450)。クライアントデバイスは、追加コンテンツの要求をデータ処理システムに送信することができる(ブロック455)。データ処理システムは、クライアントデバイスから追加コンテンツの要求を受信することができる(ブロック460)。データ処理システムは、追加コンテンツをクライアントデバイスに送信することができる(ブロック465)。クライアントデバイスは、データ処理システムから追加コンテンツを受信することができる(ブロック470)。
さらに詳細には、クライアントデバイスは、コンテンツの要求をデータ処理システムに送信することができる(ブロック405)。コンテンツの要求は、とりわけ、1つまたは複数のインラインフレームを含む情報リソースページ(たとえば、ウェブページまたはアプリケーションのページ)の要求、コンテンツアイテムの要求、または情報リソースページのインラインフレームのうちの1つ内に埋め込むべきコンテンツドキュメントの要求のうちの少なくとも1つとされ得る。コンテンツの要求は、デバイスのタイプと、無限スクロール帰属スクリプトの要求を示すインジケータとを識別することができる。クライアントデバイスのデバイスのタイプは、たとえば、とりわけ、デスクトップコンピュータ、ラップトップコンピュータ、携帯電話機、スマートフォン、およびタブレットを含むことができる。
データ処理システムは、クライアントデバイスからコンテンツの要求を受信することができる(ブロック410)。コンテンツの要求は、とりわけ、1つまたは複数のインラインフレームを含む情報リソースページ(たとえば、ウェブページまたはアプリケーションのページ)の要求、コンテンツアイテムの要求、または情報リソースページのインラインフレームのうちの1つ内に埋め込むべきコンテンツドキュメントの要求を含むことができる。コンテンツの要求は、情報リソースページ、コンテンツドキュメント、またはコンテンツアイテムのアドレスまたは識別子を含むことができる。たとえば、コンテンツの要求は、ウェブページなどの特定のリソースを参照するUniform Resource Locator(URL)(たとえば、「https://www.example.com/homepage.html」)を含むことができる。コンテンツドキュメントの要求のURLは、情報リソースのURLとは異なるホストページを含むことができる。たとえば、情報リソースページのURLは、「https://www.example_host.com/index.html」とすることができるが、コンテンツドキュメントのURLは、「https://www.example_thirdparty.com/article1.html」とすることができる。
いくつかの実施態様において、データ処理システムは、無限スクロール帰属スクリプトの要求を示すインジケータを含むことができる情報リソースページの要求を受信することができる。たとえば、情報リソースページの要求は、情報リソースページと共に無限スクロール帰属スクリプトをクライアントデバイスに送るようにデータ処理システムに指定するインジケータを含むヘッダを含むことができる。いくつかの実施態様において、データ処理システムは、別のインラインフレーム内に埋め込むべきコンテンツドキュメントの別の要求をその後に繰り返して受信することができる。いくつかの実施態様において、情報リソースページは、その情報リソースページのスクリプト内に挿入された無限スクロール帰属スクリプトを含むことができる。いくつかの実施態様において、情報リソースページは、その情報リソースページへの挿入のために無限スクロール帰属スクリプトを取り出すスクリプトを含むことができる。
データ処理システムは、クライアントデバイスに送信すべきコンテンツを判定することができる。データ処理システムは、コンテンツの要求内に含まれる情報リソースページ、コンテンツドキュメント、およびコンテンツアイテムのアドレスまたは識別子を識別することができる。データ処理システムは、データベースにアクセスし、アドレスまたは識別子によって識別された情報リソースページ、コンテンツドキュメント、またはコンテンツアイテムを選択することができる。データ処理システムは、アドレスまたは識別子によって識別されたコンテンツドキュメントにアクセスし、取り出し、または他の形で受信するためにコンテンツプロバイダまたはコンテンツパブリッシャに要求を送信することができる。データ処理システムは、アドレスまたは識別子によって識別されたコンテンツドキュメントをクライアントデバイスに送信しまたは転送することができる。たとえば、データ処理システムは、情報リソースページのインラインフレーム内に埋め込むべきコンテンツドキュメントの要求をクライアントデバイスから受信することができる。要求は、コンテンツパブリッシャ120のうちの1つを参照するアドレスを含むことができる。この例において、データ処理システムは、コンテンツドキュメントの要求をそれぞれのコンテンツパブリッシャに転送することができる。それぞれのコンテンツパブリッシャからコンテンツドキュメントを受信する時に、データ処理システムは、オリジナルの要求を行ったクライアントデバイスにコンテンツドキュメントを転送することができる。
いくつかの実施態様において、データ処理システムは、要求のタイプを識別することができる。いくつかの実施態様において、データ処理システムは、クライアントデバイスから受信したコンテンツの要求に基づいて、無限スクロール帰属スクリプトを送信すべきかどうかを判定することができる。データ処理システムは、要求のタイプが、無限スクロール帰属スクリプトを送信するのに適切な要求に対応するかどうかを判定することができる。たとえば、データ処理システムは、クライアントデバイスによって既に受信されたかクライアントデバイスにこれから送られるかのいずれかである情報リソースページが無限スクロール機能を有するかどうかを判定することができる。この例において、情報リソースページが、既に無限スクロールを指定する場合に、データ処理システムは、無限スクロール帰属スクリプトを送信することができる。いくつかの実施態様において、データ処理システムは、広告オークションに基づいて表示のためのコンテンツを選択することができる広告オークションシステムからコンテンツドキュメントまたはコンテンツアイテムを受信することができる。広告オークションシステムは、とりわけ、入札額、広告のサイズ、クリックスルーレート(CTR)、1000人あたりの広告費(CPM)、およびインプレッションレートなどの広告オークションパラメータに基づいて複数の広告から広告を選択することができる。
データ処理システムは、無限スクロール帰属スクリプトと共にコンテンツをクライアントデバイスに送信することができる(ブロック415)。クライアントデバイスは、データ処理システムから無限スクロール帰属スクリプトと共にコンテンツを受信することができる(ブロック420)。クライアントデバイスに送信されるコンテンツは、少なくとも、情報リソースページおよび無限スクロール帰属スクリプトを含むことができる。いくつかの実施態様において、情報リソースページは、それぞれが少なくとも1つのコンテンツドキュメントが埋め込まれた、1つまたは複数のインラインフレームを含み、または含むように構成され得る。無限スクロール帰属スクリプトは、コンピュータ実行可能命令を含むことができる。コンピュータ実行可能命令は、とりわけ、ハイパーテキストマークアップ言語(HTML)、Extensible HyperText Markup Language(XHTML)、Extensible Markup Language(XML)、Cascading Style Sheets(CSS)、およびJavaScript(登録商標)などのスクリプトを含むことができる。コンピュータ実行可能命令は、クライアントデバイスのアプリケーション、たとえば、データ処理システムによって受信されるコンテンツの要求をクライアントデバイスに送信させたアプリケーションによって実行され得る。アプリケーションは、たとえば、インターネットブラウザ、モバイルアプリケーション、またはコンピュータ実行可能命令を読み取り、実行することのできる任意の他のコンピュータプログラムを含むことができる。短い概要において、コンピュータ実行可能命令は、クライアントデバイスのプロセッサによって実行される時に、クライアントデバイスのアプリケーションに、(a)情報リソースページがその上に表示されるアプリケーションのビューポートの寸法に対応するように情報リソースページの第1のインラインフレームの寸法をセットさせ、(b)アプリケーション上のスクロールイベントを監視させ、(c)スクロールイベントの検出に応答して、第1のインラインフレームに関して、第1のコンテンツドキュメントの第1のコンテンツドキュメント端とビューポートの第1のビューポート端との間の第1のオフセットが第1の所定のしきい値以下であると判定させ、(d)スクロールイベントの検出に応答して、第1のインラインフレームに関して、第1のコンテンツドキュメントの第2のコンテンツドキュメント端とビューポートの第2のビューポート端との間の第2のオフセットが第2の所定のしきい値以上であると判定させ、(e)第1のオフセットが第1の所定のしきい値以下であるとの判定および第2のオフセットが第2の所定のしきい値以上であるとの判定に応答して、スクロールイベントを第1のインラインフレームに割り当てさせ、(f)第1のオフセットが第1の所定のしきい値以下ではないとの判定および第2のオフセットが第2の所定のしきい値以上ではないことの判定のうちの少なくとも1つに応答して、スクロールイベントを情報リソースページに割り当てさせることができる。
アプリケーションが、コンピューティングデバイスの1つまたは複数のプロセッサによって走行されまたは他の形で実行され得る。アプリケーションは、たとえば、インターネットブラウザ、モバイルアプリケーション、または、情報リソースページ、1つまたは複数のインラインフレーム、1つまたは複数のコンテンツドキュメント、および無限スクロール帰属スクリプト内に含まれるコンピュータ実行可能命令などのコンピュータ実行可能命令を実行しまたは他の形で呼び出すことのできる任意の他のコンピュータプログラムを含むことができる。情報リソースページは、1つまたは複数のインラインフレーム(たとえば、HTML5のiframe)を含むことができる。1つまたは複数のインラインフレームのそれぞれは、少なくとも1つのコンテンツドキュメントが埋め込まれ得る。情報リソースページは、アプリケーションによって、無限スクロール帰属スクリプトと一緒に受信され得る。
クライアントデバイスは、インラインフレームの寸法をビューポートの寸法にセットすることができる(ブロック425)。いくつかの実施態様において、クライアントデバイスは、情報リソースページがその上に表示されるアプリケーションのビューポートの寸法に対応するように情報リソースページの第1のインラインフレームの寸法をセットすることができる。アプリケーションのビューポートの寸法は、とりわけ、画素単位、スケーリングされた画素単位、メートル単位、または帝国単位とされ得る。クライアントデバイスは、アプリケーションのビューポートの寸法を判定しまたは識別することができる。たとえば、クライアントデバイスは、ビューポートのサイズを取り出すためにJavaScript(登録商標)関数「getViewportsize()」を呼び出すことができる。代替案では、クライアントデバイスは、HTMLメタタグ「viewport」を使用し、「device-height」値および「device-width」値を使用して、ビューポートの寸法を識別することができる。いくつかの実施態様において、クライアントデバイスは、情報リソースページの第1のインラインフレームの寸法をビューポートの寸法より大きい寸法にセットすることができる。いくつかの実施態様において、クライアントデバイスは、情報リソースページの第1のインラインフレームの高さをビューポートの高さ以上の高さにセットすることができる。いくつかの実施態様において、クライアントデバイスは、情報リソースページの第1のインラインフレームの幅をビューポートの幅以上の幅にセットすることができる。たとえば、1920x1080としてビューポートのサイズを識別した後に、クライアントデバイスは、1920x1300として第1のインラインフレームの寸法をセットすることができる。クライアントデバイスは、残りのインラインフレームの寸法を第1のインラインフレームと同一の寸法にセットすることができる。いくつかの実施態様において、クライアントデバイスは、残りのインラインフレームの寸法を第1のインラインフレームの寸法より大きい寸法にセットすることができる。
いくつかの実施態様において、クライアントデバイスは、インラインフレーム内に埋め込まれるコンテンツドキュメントのサイズを判定しまたは識別することができる。いくつかの実施態様において、クライアントデバイスは、コンテンツドキュメントの寸法をビューポートの寸法と比較することができる。いくつかの実施態様において、クライアントデバイスは、ビューポートの寸法とのコンテンツドキュメントの寸法の比較に応答して、埋め込まれたコンテンツドキュメントを有するそれぞれのインラインフレームの寸法をコンテンツドキュメントの寸法にセットすることができる。たとえば、第2のインラインフレーム内に埋め込まれるコンテンツドキュメントの高さが、ビューポートの高さより小さい場合に、クライアントデバイスは、第2のインラインフレームの高さをコンテンツドキュメントの高さにセットすることができる。
いくつかの実施態様において、クライアントデバイスは、少なくとも第1のコンテンツドキュメントを第1のインラインフレーム内に埋め込むために、情報リソースページ上に第1のインラインフレームをインスタンス化しまたは他の形で付加することができる。たとえば、第1のインラインフレームを付加し、第1のインラインフレーム内に第1のコンテンツドキュメントを埋め込むために、クライアントデバイスは、HTML5マークアップ「<iframe src="https://example.com"></iframe>」を情報リソースページ内に挿入することができる。別の例において、JavaScript(登録商標)を使用して、クライアントデバイスは、第1のインラインフレームをインスタンス化し、ドキュメントオブジェクトモデル(DOM)ノードとして情報リソースページのDOMツリー内に付加するために、「document.createElement(<inline_frame>)」関数を呼び出すことができる。この例において、クライアントデバイスは、「document.getElementbyID(<inline_frame>).src="https://example.com」を呼び出すことによって第1のコンテンツドキュメントを埋め込むことができる。いくつかの実施態様において、クライアントデバイスは、情報リソースページ上の事前に存在するコンテンツを第1のインラインフレームに埋め込むことができる。たとえば、情報リソースページが、どのインラインフレームからも分離された、テキストおよびイメージを有する主コンテンツを含む場合に、クライアントデバイスは、事前に存在する主コンテンツを情報リソースページから移動し、その事前に存在するコンテンツをコンテンツドキュメントとして第1のインラインフレーム内に埋め込み、その事前に存在する主コンテンツを情報リソースページから除去することができる。
クライアントデバイスは、スクロールイベントを検出することができる(ブロック430)。いくつかの実施態様において、クライアントデバイスは、スクロールイベントを検出しまたは他の形でリッスンすることができる。スクロールイベントは、たとえば、「onScroll」または「onTouch」のイベントハンドラまたはリスナを含むことができる。たとえば、クライアントデバイスがタッチディスプレイを含む場合に、クライアントデバイスは、スクロールイベントとしてアプリケーション上の「onTouch」イベントを検出することができる。いくつかの実施態様において、クライアントデバイスは、スクロールイベントの検出に応答して他の命令を実行しまたは走行させることができる。たとえば、クライアントデバイスは、「onScroll」または「onTouch」のイベントリスナがスクロールイベントを検出する際に機能を呼び出すことができる。いくつかの実施態様において、クライアントデバイスは、スロットリングによってスクロールイベントを処理することができる。たとえば、クライアントデバイスが1つのスクロールイベントを受信した後に、クライアントデバイスは、クライアントデバイスに、所定の時間枠が経過する(たとえば、4msから140ms)まで、スクロールイベントを処理しないようにすることができる。
クライアントデバイスは、コンテンツドキュメントの第1の端とビューポートの第1の端との間の第1のオフセットが第1のしきい値以下であるかどうかを判定することができる(ブロック435)。いくつかの実施態様において、クライアントデバイスは、スクロールイベントの検出に応答して、第1のインラインフレームに関して、第1のコンテンツドキュメントの第1のコンテンツドキュメント端とビューポートの第1のビューポート端との間の第1のオフセットが第1の所定のしきい値以下であると判定することができる。第1の所定のしきい値は、画素単位、スケーリングされた画素単位、メートル単位、または帝国単位において測定され得る。第1の所定のしきい値は、0から、ビューポートのパーセンテージまたは比率に基づく任意の数までの範囲にわたることができる。たとえば、第1の所定のしきい値は、ビューポートの高さの0%から33%までの範囲にわたることができる。第1の所定のしきい値は、固定されまたは変更され得る。いくつかの実施態様において、クライアントデバイスは、スクロールイベントの検出に応答して、第1のコンテンツドキュメントの第1のコンテンツドキュメント端を識別しまたは入手することができる。第1のコンテンツドキュメントの第1のコンテンツドキュメント端は、たとえば、第1のコンテンツドキュメントの上端または左端の座標または位置とされ得る。たとえば、クライアントデバイスは、第1のコンテンツドキュメントの上端を識別するために「<element>.offsetTop」または「<element>.offsetLeft」のJavaScript(登録商標)プロパティを呼び出すことができる。いくつかの実施態様において、クライアントデバイスは、スクロールイベントの検出に応答して、ビューポートの第1のビューポート端を識別しまたは入手することができる。第1のビューポート端は、たとえば、ビューポートの上端または左端とされ得る。たとえば、クライアントデバイスは、ビューポートの上端または左端の座標を入手するために「window.pageYOffset」または「window.pageXOffset」のJavaScript(登録商標)プロパティを呼び出すことができる。いくつかの実施態様において、クライアントデバイスは、第1のコンテンツドキュメントの第1のコンテンツドキュメント端をビューポートの第1のビューポート端と比較することができる。クライアントデバイスは、第1のコンテンツドキュメント端と第1のビューポート端との間の差またはオフセットを計算しまたは判定し、その差またはオフセットを第1の所定のしきい値と比較することができる。
クライアントデバイスは、コンテンツドキュメントの第2の端とビューポートの第2の端との間の第2のオフセットが第2のしきい値以上であるかどうかを判定することができる(ブロック440)。いくつかの実施態様において、クライアントデバイスは、スクロールイベントの検出に応答して、第1のインラインフレームに関して、第1のコンテンツドキュメントの第2のコンテンツドキュメント端とビューポートの第2のビューポート端との間の第2のオフセットが第2の所定のしきい値以上であると判定することができる。第2の所定のしきい値は、画素単位、スケーリングされた画素単位、メートル単位、または帝国単位において測定され得る。第2の所定のしきい値は、0から、ビューポートのパーセンテージまたは比率に基づく任意の数までの範囲にわたることができる。たとえば、第2の所定のしきい値は、ビューポートの高さの0%から33%までの範囲にわたることができる。第2の所定のしきい値は、固定されまたは変更され得る。いくつかの実施態様において、クライアントデバイスは、スクロールイベントの検出に応答して、第1のコンテンツドキュメントの第2のコンテンツドキュメント端を識別しまたは入手することができる。第1のコンテンツドキュメントの第2のコンテンツドキュメント端は、たとえば、第1のコンテンツドキュメントの下端または右端の座標または位置とされ得る。たとえば、クライアントデバイスは、第1のコンテンツドキュメントの下端または右端を識別するために「<element>.offsetTop」のJavaScript(登録商標)プロパティと第1のコンテンツドキュメントの高さとの和または「<element>.offsetLeft」のJavaScript(登録商標)プロパティと第1のコンテンツドキュメントの幅との和を呼び出すことができる。いくつかの実施態様において、クライアントデバイスは、スクロールイベントの検出に応答して、ビューポートの第2のビューポート端を識別しまたは入手することができる。第2のビューポート端は、たとえば、ビューポートの下端または右端とされ得る。たとえば、クライアントデバイスは、ビューポートの下端または右端の座標を入手するために「window.pageYOffset」のJavaScript(登録商標)プロパティとビューポート高さとの和または「window.pageXOffset」のJavaScript(登録商標)プロパティとビューポート幅との和を呼び出すことができる。いくつかの実施態様において、クライアントデバイスは、第1のコンテンツドキュメントの第2のコンテンツドキュメント端をビューポートの第2のビューポート端と比較することができる。クライアントデバイスは、第2のコンテンツドキュメント端と第2のビューポート端との間の差またはオフセットを計算しまたは判定し、その差またはオフセットを第2の所定のしきい値と比較することができる。
クライアントデバイスが、同一のまたは異なるしきい値を使用して、第1のインラインフレーム以外の各インラインフレームのオフセットを判定し、それに応じてスクロールイベントを割り当てることができることを了解されたい。たとえば、クライアントデバイスは、スクロールイベントの検出に応答して、第2のインラインフレームに関して、第2のコンテンツドキュメントの第1のコンテンツドキュメント端とビューポートの第1のビューポート端との間の第3のオフセットが第3の所定のしきい値以下であることを判定することができる。クライアントデバイスは、スクロールイベントの検出に応答して、第2のインラインフレームに関して、第2のコンテンツドキュメントの第2のコンテンツドキュメント端とビューポートの第2のビューポート端との間の第4のオフセットが第4の所定のしきい値以上であることを判定することもできる。クライアントデバイスは、第3のオフセットが第3の所定のしきい値以下であるとの判定および第4のオフセットが第4の所定のしきい値以上であるとの判定に応答して、スクロールイベントを第2のインラインフレームに割り当てることができる。これらの機能性は、後続のインラインフレームに関して繰り返され得る。
第1のオフセットが第1のしきい値以下であり、第2のオフセットが第2のしきい値以上である場合には、クライアントデバイスは、スクロールイベントをインラインフレームに割り当てることができる(ブロック445)。いくつかの実施態様において、クライアントデバイスは、第1のオフセットが第1の所定のしきい値以下であるとの判定および第2のオフセットが第2の所定のしきい値以上であるとの判定に応答して、スクロールイベントを第1のインラインフレームに割り当てることができる。いくつかの実施態様において、クライアントデバイスは、当初にスクロールイベントを情報リソースページにセットすることができる。いくつかの実施態様において、クライアントデバイスは、第1のオフセットが第1の所定のしきい値以下であるとの判定および第2のオフセットが第2の所定のしきい値以上であるとの判定に応答して、スクロールイベントを第1のインラインフレームに割り当てることができる。いくつかの実施態様において、クライアントデバイスは、第1のインラインフレームのスクロール可能プロパティをスクロール可能に割り当てることができる。たとえば、第1のオフセットが0より大きく、第2のオフセットが0より大きいと判定される時に、クライアントデバイスは、第1のインラインフレームのスクロール可能プロパティを真にセットし、これによって、第1のインラインフレーム内に埋め込まれた第1のコンテンツドキュメントがスクロールすることを可能にすることができる。
第1のオフセットが第1のしきい値以下ではなく、第2のオフセットが第2のしきい値以上ではない場合には、クライアントデバイスは、スクロールイベントを情報リソースページに割り当てることができる(ブロック450)。いくつかの実施態様において、クライアントデバイスは、第1のオフセットが第1の所定のしきい値以下ではないとの判定および第2のオフセットが第2の所定のしきい値以上ではないとの判定のうちの少なくとも1つに応答して、スクロールイベントを情報リソースページに割り当てることができる。いくつかの実施態様において、クライアントデバイスは、当初にスクロールイベントを第1のインラインフレームにセットすることができる。いくつかの実施態様において、クライアントデバイスは、第1のオフセットが第1の所定のしきい値以下であるとの判定および第2のオフセットが第2の所定のしきい値以上であるとの判定に応答して、スクロールイベントを情報リソースページに割り当てることができる。いくつかの実施態様において、クライアントデバイスは、情報リソースページのスクロール可能プロパティをスクロール可能に割り当てることができる。たとえば、第1のオフセットが0より大きく、第2のオフセットが0より小さいと判定される時に、クライアントデバイスは、情報リソースページのスクロール可能プロパティを真にセットし、これによって、情報リソースページの全体がアプリケーションのスクロール位置と一緒に移動することを可能にすることができる。
いくつかの実施態様において、クライアントデバイスは、第2のコンテンツドキュメントの寸法がビューポートの寸法より小さいとの判定に応答して、スクロールイベントを情報リソースページに割り当てることができる。いくつかの実施態様において、クライアントデバイスは、第2のインラインフレームのスクロール可能プロパティをスクロール不能に割り当てることができる。たとえば、第2のインラインフレーム内に埋め込まれた第2のコンテンツドキュメントの高さおよび幅が、1240x500であり、ビューポートの高さおよび幅が、1240x720である場合に、クライアントデバイスは、視覚的に、スクロールが第2のインラインフレーム上にあり、第2のインラインフレームの全体が完全にビューポートのビュー内にある場合であっても、スクロールイベントを情報リソースページに割り当てることができる。
いくつかの実施態様において、クライアントデバイスは、補足コンテンツ付加物の検出に応答して、第1のオフセットが第1の所定のしきい値以下であり、第2のオフセットが第2の所定のしきい値以上であると判定することができる。たとえば、追加コンテンツが、第1のインラインフレーム内に埋め込まれた第1のコンテンツドキュメントに付加されたと判定される時に、クライアントデバイスは、第1のオフセットが0以下であり、第2のオフセットが200画素以上であると判定することができる。クライアントデバイスは、その判定に基づいて、第1のインラインフレームまたは情報リソースページのいずれかにスクロールイベントを割り当てることができる。
クライアントデバイスは、追加コンテンツの要求を送信することができる(ブロック455)。いくつかの実施態様において、クライアントデバイスは、情報リソースページが第1のインラインフレーム以外の別のインラインフレームを有しないとの判定に応答して、追加コンテンツの要求を送信することができる。いくつかの実施態様において、クライアントデバイスは、第1のオフセットが第1の所定のしきい値以下ではないとの判定または第2のオフセットが第2の所定のしきい値以上ではないとの判定のうちの少なくとも1つに応答して、追加コンテンツの要求を送信することができる。いくつかの実施態様において、クライアントデバイスは、情報リソースページのスクロール位置が情報リソースページの寸法の所定のしきい分数またはしきいパーセンテージ以内であるとの判定に応答して、追加コンテンツの要求を送信することができる。たとえば、スクロール位置が、情報リソースページの高さの75%と95%との間にある場合に、クライアントデバイスは、追加コンテンツの要求を送信することができる。いくつかの実施態様において、クライアントデバイスは、ブロック420〜450とは独立にまたはこれと並列に、追加コンテンツの要求を送信することができる。
データ処理システムは、追加コンテンツの要求を受信することができる(ブロック460)。追加コンテンツの要求は、とりわけ、情報リソースページのインラインフレームのうちの1つ内に埋め込まれるコンテンツドキュメントの要求を含むことができる。コンテンツの要求は、コンテンツドキュメントのアドレスまたは識別子を含むことができる。データ処理システムは、追加コンテンツの要求内に含まれるコンテンツドキュメントのアドレスまたは識別子を識別することができる。データ処理システムは、データベースにアクセスし、アドレスまたは識別子によって識別されるコンテンツドキュメントを選択することができる。データ処理システムは、アドレスまたは識別子によって識別されるコンテンツドキュメントにアクセスし、取り出し、または他の形で受信するために、コンテンツプロバイダまたはコンテンツパブリッシャに要求を送信することができる。データ処理システムは、追加コンテンツを送信することができる(ブロック465)。いくつかの実施態様において、データ処理システムは、アドレスまたは識別子によって識別されるコンテンツドキュメントをクライアントデバイスに送信しまたは転送することができる。
クライアントデバイスは、追加コンテンツを受信することができる(ブロック470)。いくつかの実施態様において、クライアントデバイスは、別のまたは第2のインラインフレームを情報リソースページに付加することができる。第2のインラインフレームは、第2のコンテンツドキュメントが埋め込まれ得る。いくつかの実施態様において、クライアントデバイスは、情報リソースページが第1のインラインフレーム以外の別のインラインフレームを有しないかどうかを判定することができる。いくつかの実施態様において、クライアントデバイスは、情報リソースページが第1のインラインフレーム以外の別のインラインフレームを有しないとの判定に応答して、第2のインラインフレームを付加することができる。いくつかの実施態様において、クライアントデバイスは、別のコンテンツドキュメントの受信に応答して、第2のインラインフレームを情報リソースページに付加することができる。たとえば、クライアントデバイスが、データ処理システムから別のコンテンツドキュメントを受信する場合に、クライアントデバイスは、情報リソースページ内で別のインラインフレームをインスタンス化し、それぞれのインラインフレーム内にコンテンツドキュメントを埋め込むことができる。クライアントデバイスは、第3のインラインフレームなどの1つまたは複数のインラインフレームを情報リソースページに繰り返して動的に付加することができる。
いくつかの実施態様において、クライアントデバイスは、第1のオフセットが第1の所定のしきい値以下ではないとの判定および第2のオフセットが第2の所定のしきい値以上ではないとの判定のうちの少なくとも1つに応答して、情報リソースページ内に第2のインラインフレームを付加することができる。第2のインラインフレームは、少なくとも第2のコンテンツドキュメントを埋め込まれる。たとえば、第1のオフセットが第1の所定のしきい値以下ではなく、第2のオフセットが第2の所定のしきい値以上ではないと判定する時に、クライアントデバイスは、クライアントデバイスの命令を呼び出すことができる。クライアントデバイスは、追加コンテンツの要求を送信し、受信された追加コンテンツを第2のコンテンツドキュメントとして第2のインラインフレーム内に埋め込むことができる。クライアントデバイスは、1つまたは複数のインラインフレームに関してこの機能性を繰り返して動的に実行することができる。
図5は、いくつかの実施態様による、本明細書で議論されるコンピュータシステム(システム110と、コンテンツ要求モジュール130、コンテンツ選択モジュール135、およびスクリプトプロバイダモジュール140などのその構成要素とを含む)のいずれかを実施するのに使用され得る例示的なコンピュータシステム500の全般的なアーキテクチャを示す。コンピュータシステム500は、表示のためにネットワーク105を介して情報を提供するのに使用され得る。図5のコンピュータシステム500は、メモリ525に通信可能に結合された1つまたは複数のプロセッサ520、1つまたは複数の通信インターフェース505、1つまたは複数の出力デバイス510(たとえば、1つまたは複数のディスプレイユニット)、および1つまたは複数の入力デバイス515を含む。プロセッサ520は、データ処理システム110または、とりわけ、コンテンツ要求モジュール130、コンテンツ選択モジュール135、スクリプトプロバイダモジュール140、コンテンツ包含モジュール230、スクロール検出モジュール235、およびスクロール帰属モジュール240などのシステム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、およびスクリプトプロバイダモジュール140は、1つまたは複数のデータ処理装置、コンピューティングデバイス、またはプロセッサを含みまたは共有することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイルされる言語または解釈される言語、宣言型言語または手続き型言語を含む任意の形のプログラミング言語で記述され得、独立型プログラムとしてまたはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境内での使用に適する他のユニットとしてを含む任意の形において展開され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応することができるが、そうである必要はない。プログラムは、他のプログラムまたはデータを保持するファイルの一部の中(たとえば、マークアップ言語ドキュメント内に記憶された1つまたは複数のスクリプト)、問題のプログラムに専用の単一のファイル内、または複数の調整されたファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイル)内に記憶され得る。コンピュータプログラムは、1つのコンピュータ上、または、1つの場所に配置されるか、複数の場所にまたがって分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開され得る。
本明細書内で説明されるプロセスおよび論理フローは、入力データに作用し、出力を生成することによってアクションを実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行され得る。プロセスおよび論理フローが、特殊目的論理回路網、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されることも可能であり、装置が、特殊目的論理回路網、たとえば、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、およびスクリプトプロバイダモジュール140は、データ処理システム110の一部、単一のモジュール、1つまたは複数の処理モジュールを有する論理デバイス、1つまたは複数のサーバ、または検索エンジンの一部とすることができる。
今や、いくつかの例示的実施態様および実施態様を説明し終えたので、前述が、例示的であって限定的ではなく、例によって提示されたことは明白である。具体的には、本明細書で提示される例の多くが、方法行為またはシステム要素の特定の組合せを含むが、これらの行為およびこれらの要素は、同一の目標を達成するために他の形において組み合わされ得る。1つの実施態様のみに関連して議論された行為、要素、および特徴は、他の実施態様または実施態様における同様の役割から除外されることを意図されたものではない。
本明細書で使用される言葉遣いおよび用語法は、説明のためのものであって、限定的と解釈されてはならない。「including(含む)」、「comprising(含む)」、「having(有する)」、「containing(含む)」、「involving(含む)」、「characterized by(〜の特徴がある)」、「characterized in that(〜を特徴とする)」、およびその変形の本明細書での使用は、その後にリストされた項目、その同等物、および追加の項目、ならびにその後にリストされた項目から排他的になる代替実施態様を包含することを意図されたものである。一実施態様において、本明細書で説明されるシステムおよび方法は、説明される要素、行為、または構成要素のうちの1つ、その複数の各組合せ、またはそのすべてからなる。
本明細書で単数形において言及されるシステムおよび方法の実施態様、要素、または行為へのすべての参照は、複数のこれらの要素を含む実施態様をも包含することができ、本明細書の任意の実施態様、要素、または行為への複数形でのすべての参照も、単一の要素のみを含む実施態様を包含することができる。単数形または複数形における参照は、現在開示されているシステムまたは方法、その構成要素、行為、または要素を単一構成または複数構成に限定することを意図されたものではない。任意の情報、行為、または要素に基づく任意の行為または要素への参照は、行為または要素が任意の情報、行為、または要素に少なくとも部分的に基づく実施態様を含むことができる。
本明細書で開示されるすべての実施態様は、任意の他の実施態様と組み合わされ得、「an implementation(実施態様)」、「some implementations(いくつかの実施態様)」、「an alternate implementation(代替実施態様)」、「various implementation(様々な実施態様)」、「one implementation(一実施態様)」、または類似物への参照は、必ずしも相互に排他的ではなく、その実施態様に関連して説明される特定の特徴、構造、または特性が、少なくとも1つの実施態様内に含まれ得ることを示すことが意図されている。本明細書で使用される時に、そのような用語は、必ずしもすべてが同一の実施態様を参照するものではない。任意の実施態様は、本明細書で開示される態様および実施態様と一貫する任意の形において、包含的にまたは排他的に、任意の他の実施態様と組み合わされ得る。
「or(または)」への参照は、「or」を使用して説明されるすべての用語が、単一の説明される用語、複数の説明される用語、および説明される用語のすべてのうちいずれかを示すことができるようにするために、包含的と解釈され得る。
図面内の技術的特徴、詳細な説明、または任意の請求項に符号が続く場合に、符号は、図面、詳細な説明、および請求項の理解度を高めるという単一の目的のために含められた。したがって、符号またはその不在のいずれもが、任意の請求項要素の範囲に対する限定的影響を有しない。
本明細書で説明されるシステムおよび方法は、その特性から逸脱せずに他の特定の形において実施され得る。本明細書で提供される例は、アプリケーション上のスクロールイベントの帰属に関するが、本明細書で説明されるシステムおよび方法は、他の環境に適用され得る。前述の実施態様は、説明されるシステムおよび方法について、限定的であるのではなく例示的である。したがって、本明細書で説明されるシステムおよび方法の範囲は、前述の説明ではなく添付の特許請求の範囲によって示され、特許請求の範囲の同等性の意味および範囲内に含まれる変更は、その中に含まれる。