静的なコンテンツを対話型のコンテンツへと変換する方法、装置、およびシステムに関する様々な概念、ならびにそれらの実装形態の詳細な説明が、以下にある。説明される概念はどのような特定の実装の方式にも限定されないので、上で導入され以下でさらに詳細に論じられる様々な概念は、多くの方法のいずれかで実装され得る。
コンテンツプロバイダプラットフォームは、情報リソース(たとえば、ウェブページ)に提示するための、および人のユーザがそれと対話する、静的なコンテンツ項目を提供することができる。いくつかの状況では、コンテンツプロバイダプラットフォームは、提供されるコンテンツ項目との対話が自動化されたエージェント、すなわちボットによって実行されるのを防ぎ、または少なくともそのように実行されるときを検出するために、ユーザが人のユーザであることを確実にすることを望み得る。CAPTCHAチェックなどのいくつかの機構が、この機能を実行するために現在使用されているが、追加の機構が望まれ得る。さらに、CAPTCHAチェックはしばしば、追加のデータがユーザデバイスに送信されることを必要とし、ユーザが要求した情報の提供を妨げる。
コンテンツプロバイダプラットフォームによって提供されるコンテンツ項目は、静的なコンテンツ項目を含み得る。静的なコンテンツ項目は、テキスト、画像、ビデオ、およびオーディオ、またはこれらの任意の組合せなどの、多種多様なコンテンツを含み得る。しかしながら、そのようなコンテンツ項目は、特に対話性に関して、限られた機能性を有する。たとえば、コンテンツ項目は、対話に応答して、アプリケーション(たとえば、ウェブブラウザ)を別の情報リソース(ランディングページとも本明細書では呼ばれる)にリダイレクトすることだけが可能である。静的なコンテンツ項目は対話性がより低いので、静的なコンテンツ項目は、比較可能な対話型のコンテンツ項目よりも、人とコンピュータの対話(HCI:human-computer interaction)が少なくなり得る。さらに、対話を誘発しない静的なコンテンツ項目(たとえば、低いクリックスルーレートおよびHCI)を送信することによって、コンテンツプロバイダプラットフォームは、そうされなければユーザからの対話または他の応答を誘発するコンテンツのために使用することができたネットワークリソースを無駄にする。
対話型のコンテンツ項目は、静的なコンテンツ項目についての欠点のいくつかに対処することができ、コンテンツ項目とのユーザの対話性および対話の性能を高めることができる。対話型のコンテンツ項目は、静的な画像またはテキストベースのコンテンツ項目と比較して、コンテンツ項目のクリックスルーレートを高めることが示されることがある。静的なコンテンツ項目は、コンテンツ項目の発行者と関連付けられるランディングページへのリダイレクトを超えるどのような対話も提供できないという点で、対話型のコンテンツ項目と区別される。一方、対話型のコンテンツ項目は、静的なコンテンツ項目よりもユーザとの対話および関わりの機会を多く提供することができ、たとえば、小さいゲームであり得る。しかし、対話型のコンテンツ項目は、コンテンツ発行者の側ではるかにより長い開発時間を伴うことがあり、これは、小規模なコンテンツ発行者と大規模なコンテンツ発行者の両方にとって法外であることがある。さらに、対話型のコンテンツ項目を作成するために必要な努力により、異なるプロバイダとプラットフォームの間で品質が大きく異なり得る。その複雑さにより、人の手で作成される対話型のコンテンツ項目は大きいことがあり、ディスク空間またはメモリを消費し、したがって、コンピュータネットワーク全体で通信されると、大量のネットワークリソースを消費する。
前述の技術的な問題に対処するために、コンテンツ分配プラットフォームが、コンテンツ発行者から受信された画像、ビデオ、またはテキストベースの資産から、対話型のコンテンツ項目を自動的に生成することができる。これらの資産は、最初は静的であることがあり、コンテンツ項目との対話の際のランディングページへのリダイレクト以外にほとんど対話性がない。プラットフォームは、コンテンツ発行者から受信された資産を分析し、ウェブブラウザまたはネイティブアプリケーションにおける実行のためにクライアントデバイスに提供され得るバンドルを作成するためにHTML5およびJavaScript命令を生成することができる。生成されたバンドルは対話型のコンテンツ項目を提供することができ、対話型のコンテンツ項目は、コンテンツ項目とのクライアントデバイスの対話についてのフィードバックをコンテンツ分配プラットフォームに提供することができる。これらのステップの各々は、本明細書で説明されるシステムおよび方法によって提供される対話型のコンテンツパイプラインを利用してコンテンツ分配プラットフォームによって実行されることが可能であり、それにより静的な資産から対話型のコンテンツ項目を生成するための便利で高速な方法を提供する。
バンドルを生成するために、コンテンツ分配プラットフォームは、資産が対話型のコンテンツ項目への組み込みに適格であるかどうかを決定するために、コンテンツ発行者によって提供される画像資産を特定することができる。資産が対話に適格であると決定した後で、コンテンツ分配プラットフォームは、区分テンプレートを使用して静的なコンテンツを多くの断片またはセグメントへと分割することによって、対話型のバンドルを生成することができる。区分テンプレートは、たとえば、スカラーベクトルグラフィック経路であることがあり、生成されるべきセグメントの数と、各セグメントのサイズと、セグメントの形状と、互いに対するセグメントの場所とを定義することができる。セグメントは、たとえばパズルピースの形態の、静的な資産の連結する部分に対応し得る。静的な資産をセグメントへと分割することと併せて、コンテンツプロバイダプラットフォームは、クライアントデバイスで実行されるときに対話型のコンテンツ項目の挙動を支配するスクリプトを生成することができる。スクリプトが生成された後で、コンテンツプロバイダプラットフォームは、生成されたセグメントおよび生成されたスクリプトをHTML5バンドルへと合成することができ、これは、実行のためにクライアントデバイスに提供され得る。さらに、これらのステップの各々を、コンテンツ分配プラットフォームからの介入または誘導なしで行うことができ、対話型のコンテンツの高速で自動的な生成を可能にする。
クライアントデバイスにロードされると、スクリプトは、クライアントデバイスに、生成されたセグメントをクライアントデバイス上でコンテンツ項目フレーム内へレンダリングさせてランダムに分配させ、ユーザがセグメントと対話してセグメントを異なる位置に移動することを可能にできる。スクリプトは、スクリプトがクライアントデバイス上で実行されるたびにセグメントをランダムに分配し、対話型のコンテンツ項目が表示されるたびに異なる体験を提供することができる。加えて、スクリプトは、エンドユーザと対話型のコンテンツ項目との間の対話に関する進行状況の更新をプラットフォームに提供することができる。たとえば、スクリプトは、セグメントが元の場所に戻った(たとえば、パズルが解かれた)ことの指示をプラットフォームに提供することができる。
したがって、本明細書で説明される技術的な解決法は、さらなる活動が可能にされる前に、ユーザによる対話を必要とするコンテンツ項目を提供することができる。このことは、コンテンツプロバイダが、コンテンツ項目と対話している主体が自動化されたエージェントではなく人のユーザであると決定することを可能にし得る。これはまた、さもなければ提供されるであろうコンテンツを提供する過程において、CAPTCHAなどの追加の対話要素の提供、実行および記憶を行う必要なしに達成され得る。さらに、本明細書で説明される解決法は、対話型のコンテンツ項目を生成することによって、人とコンピュータの対話を増やし、複雑なHTML5ベースのコンテンツ項目の開発時間を大きく減らすことができる。クリックスルーレートおよび対話性がより高い対話型のコンテンツ項目を送信することによって、コンテンツプロバイダプラットフォームは、静的なコンテンツ項目を通信することと比較してより効率的にネットワークリソースを利用することができる。さらに、所定のサイズ要件内でHTML5バンドルを生成することによって、メモリおよびディスク空間を節約することができ、対話型のコンテンツ項目を通信するときの使用されるネットワークリソースの量を減らすことができる。所定のサイズ要件は、コンテンツプロバイダプラットフォームが、生成された対話型のコンテンツ項目のネットワーク利用を制御して改善することを可能にする。
ここで図1Aを参照すると、静的なコンテンツ項目を対話型のコンテンツ項目へと変換するためのシステムまたは環境100のブロック図が示されている。環境100は、少なくとも1つのコンピュータネットワーク110を含み得る。環境100は、少なくとも1つのコンテンツ発行者115を含み得る。環境100は、少なくとも1つのコンテンツプロバイダ175を含み得る。環境100は、少なくとも1つのクライアントデバイス120A-N(以後全般にクライアントデバイス120と呼ばれる)を含み得る。環境100は、少なくとも1つのデータ処理システム105を含み得る。データ処理システム105は、少なくとも1つのコンテンツレトリーバ(content retriever)125、少なくとも1つのコンテンツ分割器130、少なくとも1つのコンテンツパッケージャ(content packager)135、少なくとも1つの対話予測器140、少なくとも1つのテンプレート選択器145、および少なくとも1つの性能モニタ150を含み得る。データ処理システム105は、少なくとも1つのデータベース155を含み得る。いくつかの実装形態では、データ処理システム105は、コンテンツ発行者115を含み得る。いくつかの実装形態では、データ処理システム105は、コンテンツプロバイダ175を含み得る。いくつかの実装形態では、データベース155は、データ処理システム105の外部にあり得る。データベース155は、コンテンツ項目160Aおよび160B(以後全般にコンテンツ項目160と呼ばれる)、テンプレート165、およびスクリプトライブラリ170を含み得る。
環境100の構成要素(たとえば、ネットワーク110、コンテンツ発行者115、コンテンツプロバイダ175、クライアントデバイス120、データ処理システム105、コンテンツレトリーバ125、コンテンツ分割器130、コンテンツパッケージャ135、対話予測器140、テンプレート選択器145、性能モニタ150、データベース155、コンテンツ項目160Aおよび160B、テンプレート165、ならびにスクリプトライブラリ170)の各々は、図5に関連して本明細書で詳述される、コンピューティングシステム500のハードウェア構成要素またはハードウェア構成要素とのソフトウェアの組合せを使用して実装され得る。たとえば、データ処理システム105は、サーバまたは他のコンピューティングデバイスを含み得る。コンテンツプロバイダ175およびコンテンツ発行者115はまた、サーバまたは他のコンピューティングデバイスを含み得る。データ処理システム105の構成要素の各々が、本明細書で詳述される機能を実行することができる。
ネットワーク110は、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、メトロエリアネットワークまたは他のエリアネットワーク、イントラネット、衛星ネットワーク、音声またはデータ携帯電話通信ネットワークなどの他のコンピュータネットワーク、およびこれらの組合せなどの、コンピュータネットワークを含み得る。環境100のデータ処理システム105は、たとえば、少なくとも1つのコンテンツ発行者115および少なくとも1つのコンテンツプロバイダ175および少なくとも1つのクライアントデバイス120と、ネットワーク110を介して通信することができる。ネットワーク110は、とりわけ、クライアントデバイス120と、データ処理システム105と、ウェブサーバなどの1つまたは複数のコンテンツソースとの間で情報を中継する、任意の形態のコンピュータネットワークであり得る。いくつかの実装形態では、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク、または他のタイプのデータネットワークなどの、インターネットおよび/または他のタイプのデータネットワークを含み得る。ネットワーク110はまた、ネットワーク110内でデータを受信および/または送信するように構成される任意の数のコンピューティングデバイス(たとえば、コンピュータ、サーバ、ルータ、ネットワークスイッチなど)を含み得る。ネットワーク110はさらに、任意の数の有線および/またはワイヤレス接続を含み得る。クライアントデバイス120は、ネットワーク110の中の他のコンピューティングデバイスに(たとえば、光ファイバケーブル、CAT5ケーブルなどを介して)有線接続されるトランシーバとワイヤレスに(たとえば、WiFi、セルラー、無線などを介して)通信し得る。クライアントデバイス120はまた、プロキシデバイス(たとえば、ルータ、ネットワークスイッチ、またはゲートウェイ)を介してネットワーク110のコンピューティングデバイスとワイヤレスに通信し得る。
データ処理システム105は、少なくとも1つのプロセッサおよびメモリ、すなわち処理回路を含み得る。メモリは、プロセッサによって実行されると、本明細書で説明される動作のうちの1つまたは複数をプロセッサに実行させるプロセッサ実行可能命令を記憶する。プロセッサは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、またはこれらの組合せを含み得る。メモリは、限定はされないが、プログラム命令をプロセッサに提供することが可能な、電子的な、光学的な、磁気的な、または任意の他のストレージもしくは送信デバイスを含み得る。メモリはさらに、フロッピーディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ASIC、FPGA、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能プログラム可能ROM(EEPROM)、消去可能プログラム可能ROM(EPROM)、フラッシュメモリ、光学媒体、またはプロセッサが命令をそこから読み取ることができる任意の他の適切なメモリを含み得る。命令は、任意の適切なコンピュータプログラミング言語からのコードを含み得る。データ処理システム105は、様々な機能を実行することができる1つまたは複数のコンピューティングデバイスまたはサーバを含み得る。
コンテンツ発行者115は、ネットワーク110を介して、クライアントデバイス120において表示するための主要コンテンツを含む1つまたは複数の情報リソース(たとえば、ウェブページ)を提供するために、コンテンツ発行エンティティによって運用されるサーバまたは他のコンピューティングデバイスを含み得る。たとえば、コンテンツ発行者115は、ウェブページに表示するための主要コンテンツを提供するウェブページ運営者を含み得る。1つまたは複数の情報リソースは、コンテンツプロバイダ175によって提供されるもの以外のコンテンツを含むことができ、ウェブページは、コンテンツプロバイダ175からのコンテンツ項目の表示のために構成されるコンテンツスロットを含むことができる。たとえば、コンテンツ発行者115は、会社のウェブサイトを運営することができ、ウェブサイトのウェブページに表示するためのその会社についてのコンテンツを提供することができる。ウェブページは、コンテンツプロバイダ175のサードパーティコンテンツ項目の表示のために構成されるコンテンツスロットを含み得る。いくつかの実装形態では、コンテンツ発行者115は、検索エンジンウェブサイトを運営する検索エンジン運営者の検索エンジンコンピューティングデバイス(たとえば、サーバ)を含む。検索エンジンウェブページの主要コンテンツ(たとえば、結果またはランディングウェブページ)は、検索の結果、ならびに、コンテンツプロバイダ175からのコンテンツ項目などのコンテンツスロットに表示されるサードパーティコンテンツ項目を含み得る。環境100の文脈におけるコンテンツ発行者115の機能が以下で説明される。
コンテンツプロバイダ175は、クライアントデバイス120における情報リソースに表示するためのコンテンツ項目160を提供するために、コンテンツプロバイダエンティティによって運用されるサーバまたは他のコンピューティングデバイスを含み得る。コンテンツプロバイダ175によって提供されるコンテンツは、主要コンテンツ、たとえばコンテンツプロバイダ175によって提供されるコンテンツを含む、情報リソースなどの情報リソースに表示するためのサードパーティコンテンツ項目160を含み得る。コンテンツ項目160はまた、検索結果のウェブページに表示され得る。たとえば、コンテンツプロバイダ175は、ウェブページの主要コンテンツが会社によって提供されるような会社のウェブページなどの、情報リソースのコンテンツスロットに表示するための、または、検索エンジンによって提供される検索結果ランディングページに表示するための、広告または他のコンテンツ項目160を提供することができ、またはそのソースであり得る。コンテンツプロバイダ175と関連付けられるコンテンツ項目160は、スマートフォンまたは他のクライアントデバイス120上でのアプリケーションの実行の一部として表示されるコンテンツなどの、ウェブページ以外の情報リソースに表示され得る。環境100の文脈におけるコンテンツプロバイダ175の機能が以下で説明される。
クライアントデバイス120は、コンテンツ発行者115によって提供されるコンテンツ(たとえば、主要ウェブページコンテンツまたは他の情報リソース)およびコンテンツプロバイダ175によって提供されるコンテンツ(たとえば、情報リソースにおいて表示するために構成されるコンテンツ項目)などのデータを表示するために、ネットワーク110を介して通信するように構成されるコンピューティングデバイスであり得る。クライアントデバイス120は、とりわけ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、携帯情報端末、モバイルデバイス、消費者向けコンピューティングデバイス、サーバ、クライアント、デジタルビデオレコーダ、テレビのセットトップボックス、ビデオゲームコンソール、または、ネットワーク110を介して通信するように構成される任意の他のコンピューティングデバイスであり得る。クライアントデバイス120は、エンドユーザがコンテンツを受信するための要求をそれを通じて出すことができる、通信デバイスであり得る。この要求は検索エンジンへの要求であることがあり、この要求は検索クエリを含み得る。いくつかの実装形態では、この要求はウェブページにアクセスするための要求を含み得る。
クライアントデバイス120は、プロセッサおよびメモリ、すなわち処理回路を含み得る。メモリは、プロセッサによって実行されると、プロセッサに本明細書で説明される動作のうちの1つまたは複数を実行させる機械命令を記憶する。プロセッサは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、またはこれらの組合せを含み得る。メモリは、限定はされないが、プログラム命令をプロセッサに提供することが可能な、電子的な、光学的な、磁気的な、または任意の他のストレージもしくは送信デバイスを含み得る。メモリはさらに、フロッピーディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ASIC、FPGA、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能プログラム可能ROM(EEPROM)、消去可能プログラム可能ROM(EPROM)、フラッシュメモリ、光学媒体、またはプロセッサが命令をそこから読み取ることができる任意の他の適切なメモリを含み得る。命令は、任意の適切なコンピュータプログラミング言語からのコードを含み得る。
クライアントデバイス120はまた、1つまたは複数のユーザインターフェースデバイスを含み得る。一般に、ユーザインターフェースデバイスは、感覚情報(たとえば、ディスプレイ上での視覚化、1つまたは複数の音など)を生成することによってユーザにデータを伝え、かつ/または、ユーザからの受信された感覚情報を電子信号(たとえば、キーボード、マウス、ポインティングデバイス、タッチスクリーンディスプレイ、マイクロフォンなど)に変換する、任意の電子デバイスを指す。1つまたは複数のユーザインターフェースデバイスは、クライアントデバイス120のハウジングの内部にあることがあり(たとえば、内蔵ディスプレイ、マイクロフォンなど)、またはクライアントデバイス120のハウジングの外部にあることがある(たとえば、クライアントデバイス120に接続されるモニタ、クライアントデバイス120に接続されるスピーカーなど)。いくつかの実装形態では、クライアントデバイス120は電子ディスプレイを含むことがあり、これは、1つまたは複数のコンテンツソースから、および/またはコンテンツ発行者115もしくはコンテンツプロバイダ175から、ネットワーク110を介して受信されるウェブページデータを使用して、ウェブページを視覚的に表示する。
コンテンツレトリーバ125は、対話性を追加すべき少なくとも1つの静的なコンテンツ項目160Aを特定することができる。静的なコンテンツ項目160Aは、コンテンツプロバイダ175のうちの1つと関連付けられ得る。静的なコンテンツ項目160Aは、最小限の対話性を伴うコンテンツ項目であってよく、そこでの対話に応じて、クライアントデバイス120をランディングページに向けるための、テキスト、画像、オーディオ、またはビデオなどの静的な視覚的コンテンツおよびスクリプトを含んでもよい。いくつかの実装形態では、コンテンツレトリーバ125は、静的なコンテンツ項目160Aを読み出すためにデータベース155にアクセスすることができる。いくつかの実装形態では、コンテンツレトリーバ125は、静的なコンテンツ項目160Aに含まれるべき静的な視覚的コンテンツを特定することができる。静的な視覚的コンテンツの特定は、静的なコンテンツ項目160Aそのもの全体の特定とは反対であり得る。いくつかの実装形態では、コンテンツレトリーバ125は、静的なコンテンツ項目160Aに対話性を追加するためのコマンドまたは要求を何ら伴わずに、静的なコンテンツ項目160Aを自動的に特定することができる。
いくつかの実装形態では、コンテンツレトリーバ125は、コンテンツプロバイダ175からの静的なコンテンツに対話性を含めるための要求を受信することができる。いくつかの実装形態では、要求は、データ処理システム105と関連付けられるコンテンツ配置プラットフォームのためのグラフィカルユーザインターフェースを使用して、コンテンツプロバイダ175によって生成されて送信され得る。グラフィカルユーザインターフェースは、静的なコンテンツ項目160Aに対話性を含めるための要求を惹起するユーザインターフェースを含み得る。たとえば、グラフィカルユーザインターフェースは、静的なコンテンツ項目160Aをデータ処理システム105にアップロードするために使用され得る。グラフィカルユーザインターフェースは、静的なコンテンツ項目160Aに対話性を含めるためのオプション(たとえば、ラジオボタンに対応する)を伴うプロンプトを含み得る。オプションが選択されると、コンテンツプロバイダ175は、対話性を静的なコンテンツ項目160Aに追加するための要求を送信することができる。いくつかの実装形態では、コンテンツレトリーバ125は、要求に含まれる1つまたは複数の静的コンテンツ項目160Aを受信することができる。いくつかの実装形態では、コンテンツレトリーバ125は、要求の一部として各々の静的なコンテンツ項目160Aの視覚的コンテンツ180を読み出すことができる。この要求は、所望のタイプの対話性(たとえば、パズルゲーム、他のタイプの対話性など)を含み得る。
コンテンツレトリーバ125によって受信される要求は、対話型コンテンツ生成パイプラインの開始であってよく、対話型コンテンツ生成パイプラインは、コンテンツプロバイダ175によって提供される静的なコンテンツ資産を対話型のコンテンツ項目へと変換することができる。データ処理システム105またはその構成要素(たとえば、コンテンツレトリーバ125、コンテンツ分割器130、コンテンツパッケージャ135、対話予測器140、テンプレート選択器145、性能モニタ150、コンテンツ項目160A~B、テンプレート165、およびスクリプトライブラリ170)のいずれかに関して本明細書で説明される技法の各々は、コンテンツプロバイダ175からの最小限の入力(たとえば、静的なコンテンツを提供する単一の要求のみ)とともに実行され得る。このようにして、コンテンツプロバイダ175の側での人の手による、または多大な努力なしで、対話性が静的なコンテンツに追加され得る。
いくつかの実装形態では、コンテンツプロバイダ175から静的なコンテンツ項目160A(または本明細書の視覚的コンテンツ)を受信すると、コンテンツレトリーバ125は、データベース155に静的なコンテンツ項目160Aを記憶することができる。いくつかの実装形態では、要求は、データベース155の中の静的なコンテンツ項目160Aを特定する情報を(たとえば、静的なコンテンツ項目160Aまたは視覚的コンテンツ180へのURLアドレス)を含み得る。静的なコンテンツ項目160Aを特定する情報を受信すると、コンテンツレトリーバ125は、静的なコンテンツ項目160Aを読み出すためにデータベース155にアクセスすることができる。いくつかの実装形態では、コンテンツレトリーバ125は、要求に含まれる標的デバイス情報を受信することができる。たとえば、要求は、対話型のコンテンツが所定の画面解像度でデバイスに提供されることを示す情報を含み得る。
ここで図1Bを参照すると、図は、静的なコンテンツ項目160Aから対話型のコンテンツ項目160Bへの例示的な変換を示す。静的なコンテンツ項目160Aは、静的な視覚的コンテンツ180を含み得る。静的な視覚的コンテンツ180は、たとえば、とりわけ画像、ビデオ、またはテキストを含み得る。静的な視覚的コンテンツ180は、とりわけ、1つまたは複数のパラメータ、たとえばサイズ(たとえば、画像またはビデオの寸法)、記述的なキーワード、推定される対話率、および/またはコンテンツメタデータと関連付けられることがあり、またはそれらに起因するものであり得る。静的な視覚的コンテンツ180は、フレームの中で描かれ、レンダリングされ、または別様に表示され得る。フレームは、コンテンツ項目が提供され得る領域を定義することができる。いくつかの実装形態では、フレームは、他のコンテンツ、たとえばコンテンツ発行者115によって提供される情報リソースに存在し得る。静的なコンテンツ項目160Aは、少なくとも1つの静的なコンテンツスクリプト185を含み得る。いくつかの実装形態では、静的なコンテンツスクリプト185は、静的なコンテンツ項目160Aとの対話(たとえば、クリック、キー押下、またはスクリーンタッチ)に応答してクライアントデバイス120上でランディングページを開くことができる。静的なコンテンツスクリプト185は、静的なコンテンツ項目160Aの静的な視覚的コンテンツ180がレンダリングされ、アニメートされ、表示され、または別様に提示されるようにし得る。いくつかの実装形態では、静的なコンテンツスクリプト185は、クライアントデバイス120についての情報をコンテンツプロバイダ175またはコンテンツ発行者115に送信することができる。いくつかの実装形態では、静的なコンテンツスクリプト185は、静的なコンテンツ項目160Aについての対話情報をコンテンツプロバイダ175またはコンテンツ発行者115に送信することができる。いくつかの実装形態では、静的なコンテンツスクリプト185は、クライアントデバイス120にプロンプトを提供しないことがある。静的なコンテンツスクリプト185は、入力が検出されるとクライアントデバイス120をランディングページに向ける以外の、静的な視覚的コンテンツ180との対話を可能にしないことがある。
静的なコンテンツ項目160Aの特定により、コンテンツレトリーバ125は、静的なコンテンツ項目160Aが対話性の追加に適格であるかどうかを決定することができる。適格性を決定するために、コンテンツレトリーバ125は、静的な視覚的コンテンツ180の寸法(たとえば、高さおよび幅)などの、静的なコンテンツ項目160Aの1つまたは複数のパラメータを特定することができる。特定により、コンテンツレトリーバ125は、静的なコンテンツ項目160Aのパラメータが適格となる指定されたパラメータを満たすかどうかを決定することができる。たとえば、適格であるためには、静的な視覚的コンテンツ180は、ある範囲の幅および高さにあるものとして指定され得る。
いくつかの実装形態では、コンテンツレトリーバ125は、静的なコンテンツ項目160Aの視覚的コンテンツ180のコンテンツに基づいて、静的なコンテンツ項目160Aの適格性を決定することができる。たとえば、多くのテキストがある視覚的コンテンツ180は、対話側のコンテンツ項目に適格ではないことがあり、一方で、テキストのない画像を示す視覚的コンテンツは適格であることがある。いくつかの実装形態では、コンテンツレトリーバ125は、機械学習アルゴリズム(たとえば、ニューラルネットワーク、畳み込みニューラルネットワーク、回帰型ニューラルネットワーク、線形回帰モデル、スパースベクターマシン)を使用して、静的なコンテンツの適格性を決定することができる。コンテンツレトリーバ125は、1つまたは複数の静的なコンテンツ項目160Aを機械学習モデルへと入力し、静的なコンテンツが対話に適格であることを示す出力信号をモデルから受信することができる。
いくつかの実装形態では、コンテンツレトリーバ125は、静的なコンテンツ項目160Aから生成された対話側のコンテンツ項目160Bが表示されるべき標的クライアントデバイス120に基づいて、静的なコンテンツ項目160Aの適格性を決定することができる。標的クライアントデバイス120は、対話型のコンテンツ項目160Bが提供されるべきクライアントデバイスのタイプ(たとえば、スマートフォン、デスクトップ、またはラップトップ)に対応し得る。クライアントデバイス120は、異なる表示および入力/出力能力を有することができ、あるタイプのクライアントデバイス120での対話に適格である静的なコンテンツ項目160Aは、別のタイプのクライアントデバイス120での対話に適格ではないことがある。標的クライアントデバイス120は、クライアントデバイス120のタイプの表示能力に従ってあらかじめ定められ得る。標的クライアントデバイス120に対応するクライアントデバイス120の各タイプに対して、コンテンツレトリーバ125は、静的な視覚的コンテンツ180が適格であるかどうかを決定することができる。あるタイプのクライアントデバイス120に対して適格であるように、静的な視覚的コンテンツ180は、ある範囲の幅および高さ内にあるように指定され得る。いくつかの実装形態では、コンテンツレトリーバ125は、静的なコンテンツ項目160Aがクライアントデバイス120のタイプに適格であると決定すると、静的なコンテンツ項目160Aとの標的クライアントデバイス120の関連付けを、データベース155に記憶することができる。
静的なコンテンツ項目160Aが適格ではないと決定される場合、コンテンツレトリーバ125(およびデータ処理システム105)は、静的なコンテンツ項目160Aのさらなる処理を中止することができ、静的なコンテンツ項目160Aは維持され得る。そうではなく、静的なコンテンツ項目160Aが適格であると決定される場合、コンテンツレトリーバ125(およびデータ処理システム105)はさらに、対話性を静的なコンテンツ項目160Aに追加するように静的なコンテンツ項目160Aを処理することができる。いくつかの実装形態では、コンテンツレトリーバ125は、対話性を含めるためにさらに処理されるように、静的なコンテンツ項目160Aをデータベース155に記憶することができる。静的なコンテンツ項目160Aの処理が本明細書において以下で詳述される。
テンプレート選択器145は、静的なコンテンツ項目160Aの視覚的コンテンツ180に基づいて、データベース155からテンプレート165のセットのうちの1つを選択することができる。各テンプレート165は、形成されるべきセグメント190の数と、各セグメント190の形状と、各形状の寸法とを定義する、少なくとも1つのセグメント化経路を含み得る。いくつかの実装形態では、セグメント化経路は、スケーラブルベクターグラフィクス(SVG)経路であり得る。SVG経路は、1つまたは複数のセグメント190の境界を定義することができる。各セグメント190は、サイズ、形状、および位置を有し得る。いくつかの実装形態では、テンプレート165は、各々が所定の位置にある所定の数の等しいサイズの形状へと静的な視覚的コンテンツ180を分割するための命令を含み得る。いくつかの実装形態では、テンプレート165は、各々が所定の位置にある所定の数の連結する形状(たとえば、パズルピース)へと静的な視覚的コンテンツ180を分割するための命令を含み得る。いくつかの実装形態では、セグメント190の数、ならびに各セグメント190のサイズ、寸法、形状、および位置があらかじめ決定され得る。いくつかの実装形態では、セグメント190の数、ならびに各セグメント190のサイズ、寸法、および位置が、コンテンツプロバイダ175からの入力に基づいてテンプレート選択器145によって動的に決定され得る。たとえば、コンテンツプロバイダ175は、テンプレート165の中のセグメント190の寸法、位置、形状、およびサイズを、対話型のコンテンツを生成するための要求に含めることができる。テンプレート165は、静的な視覚的コンテンツ180から1つまたは複数のセグメント190を作成するために、コンテンツ分割器130によって使用され得る。
いくつかの実装形態では、テンプレート選択器145は、視覚的コンテンツ180の寸法(たとえば、幅および高さ)に基づいてテンプレート165を選択することができる。いくつかの実装形態では、テンプレート165のセットの中のいくつかのテンプレートは、いくつかの寸法またはサイズを伴う静的な視覚的コンテンツ180に適用され得る。テンプレート165の選択は、静的なコンテンツ項目160Aが対話性の追加に適格であるとの決定に応答し得る。テンプレート165の各々は、ある幅または高さを伴う静的な視覚的コンテンツ180のために選択され得る。テンプレート選択器145は、静的な視覚的コンテンツ180の適合する幅および高さの情報をテンプレート165の幅および高さと比較することによって、テンプレート165を選択することができる。テンプレート165の幅および高さの指定が静的な視覚的コンテンツ180の幅および高さと十分類似している(たとえば、それぞれの差が10%の差以内などの所定の閾値未満である)場合、テンプレート選択器145はテンプレート165を選択することができる。幅および高さが十分類似していない(たとえば、10%より大きく異なる)場合、テンプレート選択器145は、テンプレート165のセットからの異なるテンプレートのパラメータを比較することができる。いくつかの実装形態では、テンプレート選択器145は、対話型のコンテンツ項目160Bが表示される標的クライアントデバイス120に基づいてテンプレート165を選択することができる。たとえば、1つのテンプレート165はモバイルデバイス(たとえば、スマートフォン、タブレットなど)に対して最適化されることがあり、一方、別のテンプレート165は個人向けコンピューティングデバイス(たとえば、ラップトップ、デスクトップコンピュータ)に対して最適化されることがある。
いくつかの実装形態では、テンプレート165のうちの1つを選択するために、対話予測器140は、データベース155に維持される各テンプレート165に対する対話率を計算し、決定し、または予測することができる。対話率は、特定のテンプレート165を使用して生成される対話型のコンテンツ項目160Bと関連付けられるインプレッション(たとえば、ビュー、クリック、または他の対話)の数を示し得る。いくつかの実装形態では、対話率は、それぞれのテンプレート165を使用して生成される対話型のコンテンツ項目160Bの推定されるクリックスルーレートを表すことができる。いくつかの実装形態では、対話率は、それぞれのテンプレート165を使用して生成される対話型のコンテンツ項目160Bの推定されるビュースルーレートを表すことができる。対話率は、静的なコンテンツ項目160A、対話型のコンテンツ項目160Bの標的プラットフォーム、および/またはテンプレート165のタイプの視覚的コンテンツ180に基づいて予測され得る。いくつかの実装形態では、各テンプレート165の対話率は、各テンプレート165によって定義されるセグメント190の数に基づいて決定され得る。たとえば、多くの小さいセグメント190を伴うテンプレート165は、標的デバイスがあるタイプのモバイルデバイス(たとえば、スマートフォン、タブレット、電子リーダーなど)である場合、少数の大きなセグメント190を伴うテンプレート165よりも低い対話率を有し得る。
いくつかの実装形態では、対話予測器140は、1つまたは複数のクライアントデバイス120からのフィードバックに基づいて、テンプレート165の対話率を決定することができる。クライアントフィードバックは対話モデルを訓練するために使用されることがあり、これは機械学習モデル(たとえば、線形回帰、ニューラルネットワーク、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク、スパースベクターマシンなど)であり得る。クライアントフィードバックは、クライアントデバイス120のタイプ、テンプレート165を使用して生成される対話型のコンテンツ項目160Bとの対話のタイプ(たとえば、クリック、ホバーオーバー、キー押下、およびタッチスクリーン)、対話の時間長、およびクライアントデバイス120に表示される対話型のコンテンツ項目160Bが対話型のコンテンツ項目160Bと関連付けられるランディングページへの訪問をもたらしたかどうかを含み得る。対話予測器140は、それぞれのテンプレート165と関連付けられる位置において、各テンプレート165の対話率をデータベース155に記憶することができる。いくつかの実装形態では、対話予測器140は、クライアントデバイス120の各タイプ(たとえば、スマートフォン、スマートウォッチ、タブレットコンピュータ、ラップトップ、パーソナルコンピュータ、他のコンピューティングデバイスなど)の対話率を決定することができる。対話予測器140は、対応するテンプレート165と関連付けられるデータベース155の中のある位置に、各クライアントデバイス120の対話率を記憶することができる。
いくつかの実装形態では、テンプレート選択器145は、対話予測器140によって決定される対応する対話率に基づいて、データベース155からテンプレート165を選択することができる。コンテンツプロバイダ175によって提供される静的なコンテンツから対話型のコンテンツ項目160Bを作成するために使用されるテンプレート165は、対話型のコンテンツ項目160Bの全体の対話率に影響を与え得る。たとえば、いくつかのテンプレート165は、いくつかのタイプのクライアントデバイス120上でより高い対話率を有し得る。テンプレート選択器145は、各テンプレート165の対話率を決定するために、データベース155にアクセスすることができる。いくつかの実装形態では、テンプレート選択器145は、対話率が最高のテンプレート165を選択することができる。いくつかの実装形態では、テンプレート選択器145は、あるタイプのクライアントデバイス120(たとえば、スマートフォン、タブレットコンピュータ、ラップトップ、パーソナルコンピュータ、他のコンピューティングデバイスなど)のために、最高の対話率を伴うテンプレート165を選択することができる。たとえば、テンプレート選択器145は、スマートフォン上で最高の対話率を伴うテンプレート165を選択することができる。
この選択により、コンテンツ分割器130は、選択された区分テンプレート165に従って、静的なコンテンツ項目160Aの視覚的コンテンツ180をいくつかのセグメント190A~N(以後全般にセグメント190と呼ばれる)に分割することができる。セグメント190の各々は、セグメント190の対応する寸法、形状、サイズ、および場所を定義するパラメータを含み得る。各セグメント190は、セグメント190が由来する視覚的コンテンツ180の部分に対応する元の場所を有し、またはそれに起因し得る。セグメント190は元の静的な視覚的コンテンツ180に対応するので、元の場所がセグメント190の座標を定義することができる。セグメント190の座標は、テンプレート165によって定義されることが可能であり、とりわけ、インデックス場所(たとえば、(x,y)の形の)、またはピクセル座標を含むことが可能である。いくつかの実装形態では、セグメント190の元の場所は、テンプレート165によって定義されるようなセグメント190の左上の角に対応し得る。いくつかの実装形態では、セグメント190の元の場所は、テンプレート165によって定義されるようなセグメント190の中心に対応し得る。コンテンツ分割器130は、静的なコンテンツ項目160Aの視覚的コンテンツ180にテンプレート165の中の命令を適用して、1つまたは複数のセグメント190を生成することができる。たとえば、テンプレート165は、1つまたは複数のコンテンツ形状の境界を定義することができるSVG経路を含み得る。SVG経路を静的な視覚的コンテンツ180に適用することは、SVG経路によって定義される1つまたは複数のセグメント190へと静的な視覚的コンテンツ180をスライスすることができる。SVG経路は、テンプレート165の中のすべての他のセグメント190と各セグメント190がシームレスに合わさるように構成され得る。いくつかの実装形態では、テンプレート165は、セグメント190が一緒にシームレスに合わさらないように構成され、代わりに、各セグメント190間のギャップを含む。
静的な視覚的コンテンツ180を分割する際に、コンテンツ分割器130は、セグメント190の各々の標的の場所を決定することができる。各セグメント190に対して、コンテンツ分割器130は、元の場所を標的の場所として特定することができる。1つまたは複数のセグメント190は、テンプレート165に含まれるセグメント場所に基づいて標的の場所を割り当てられ得る。標的の場所は、完了条件を作成するために、対話型のコンテンツ項目160Bの各セグメント190がその中に存在し得る場所(たとえば、インデックス場所またはピクセル場所)を定義することができる。コンテンツ分割器130は、コンピュータメモリ、たとえばデータベース155の中のある位置にセグメント190を記憶することができる。たとえば、テンプレート165は、3個の等しいサイズの正方形のセグメントの3つの行を伴う、9個のセグメントを含み得る。セグメント190はこの例では正方形であるので、各セグメント190は等しい幅および高さを有し得る。例示的なテンプレート165が静的な視覚的コンテンツ180に適用されるとき、静的な視覚的コンテンツ180は9個の等しいサイズのセグメントへと分割されることが可能であり、各セグメントは、たとえば図2のように、静的な視覚的コンテンツ180の固有の部分を含むことが可能である。各セグメント190の標的の場所は、テンプレート165を静的な視覚的コンテンツ180に適用した直後に、それぞれのセグメントの位置に基づいて各セグメント190へコンテンツプロバイダ130によって割り当てられ得る。いくつかの実装形態では、標的の場所は2次元座標として記憶され得る。いくつかの実装形態では、標的の場所は、静的な視覚的コンテンツ180の中の元の場所(たとえば、左上の角)からの相対的な場所の値として記憶され得る。いくつかの実装形態では、各セグメント190の標的の場所は、別のセグメント190に関する相対的な位置であり得る(たとえば、セグメント0の右端はセグメント1の左端に接し得る、など)。コンテンツ分割器130は、コンピュータメモリの中のデータ構造、たとえばデータベース155に、各セグメント190の標的の場所を記憶することができる。
コンテンツプロバイダ130は、追加の視覚的要素を静的な視覚的コンテンツ180に含め得る。いくつかの実装形態では、コンテンツレトリーバ135は、対話的なコンテンツ項目を作成するための指示を受信したことに応答して、重畳要素を静的な視覚的コンテンツ180に追加することができる。たとえば、コンテンツレトリーバ135は、そこから形成される静的な視覚的コンテンツ180またはセグメント190が最初は不明瞭であることを示す編集(たとえば、デジタルの雲、または霧のアニメーションなど)を、それがユーザ対話に応答して明確にされるまで、挿入することができる。コンテンツ分割器130は、対話型のコンテンツ項目160Bへの包装のために、静的な視覚的コンテンツ180および追加の視覚的要素をコンテンツパッケージャ135に提供することができる。
図2をここで参照すると、対話型のコンテンツ項目160Bへと組み込むための、区分テンプレート220を使用するセグメント190への静的な視覚的コンテンツ180の分割が図示される。図1Aおよび図1Bの文脈では、コンテンツ分割器130は、静的な視覚的コンテンツ180を9個のセグメント190A~Iに分割するために、テンプレート選択器145によって選択される区分テンプレート220(テンプレート165のうちの1つに対応する)を使用することができる。区分テンプレート220は、セグメント190が連結し得るように、静的な視覚的コンテンツ180を分割することができる1つまたは複数のSVG経路(たとえば、図示されるような)を含み得る。ステップ210において、コンテンツ分割器130は、対応するセグメント190A~Iの元の場所として図示されるようなセグメント190A~Iの各々の標的の場所を特定することができる。標的の場所は、コンテンツ分割器130による分割の後の、セグメント190の位置であり得る。ここでは、セグメント190A~Iが特定の位置に現れることが図示されているが、区分テンプレート220が各セグメント190の標的の場所を指定することができることと、セグメント190A~Iが任意の位置に現れ得ることとを理解されたい。ステップ215において、セグメント190A~Iが提示されるとき、セグメント190の最初に割り当てられる場所は、元の場所と異なり得る。たとえば、各セグメント190は、ある場所にスクリプトによってランダムに割り当てられ得る。
コンテンツパッケージャ135は、元の静的なコンテンツスクリプト185を置換するための視覚的コンテンツ180および対話型のスクリプト195からの分割されたセグメント190を含むように、対話型のコンテンツ項目160Bを生成することができる。いくつかの実装形態では、コンテンツパッケージャ135は、元の静的なスクリプト185を置換するための静的な視覚的コンテンツ180および対話型のスクリプト196を含むように、対話型のコンテンツ項目160Bを生成することができる。コンテンツパッケージャ135は対話型のスクリプト195を生成することができる。対話型のスクリプト195は、コンピューティングデバイスによって実行可能な命令を含み得る。たとえば、対話型のスクリプト195は、JavaScript、HTML5、PHP、または任意の他のタイプの機械実行可能命令を含み得る。対話型のスクリプト195はまた、メタデータ、たとえば、とりわけ視覚的コンテンツ180についてのメタデータ、対話型のコンテンツ項目160Bのサイズ、または他のメタデータを含み得る。メタデータは、メタデータを維持するためのデータ構造、または特定のフォーマット、たとえばJSONに記憶され得る。
いくつかの実装形態では、対話型のスクリプト195は、実行可能な命令、たとえば1つまたは複数のスクリプトライブラリ170を、ダウンロードし、キャッシュし、または別様にそれらにアクセスすることができる。各スクリプトライブラリ170は、クライアントデバイス120によって実行される対話型のスクリプト195に関する他の動作に共通であり得る、1つまたは複数の関数または命令を提供する。たとえば、スクリプトライブラリ170は、JavsScriptコードの機能を高めるために含まれ得る、JavaScriptライブラリを含み得る。加えて、スクリプトライブラリ170は、HTML5コードの機能を拡張するために提供され得る、HTML5ライブラリを含み得る。いくつかの実装形態では、対話型のスクリプト195は、クライアントデバイス120上のコンピュータメモリの中のデータベース155から読み出される1つまたは複数のスクリプトライブラリ170をキャッシュすることができる。いくつかの実装形態では、キャッシュされるスクリプトライブラリ170は、1つまたは複数の対話型のコンテンツ項目160Bによってアクセスされ得る。たとえば、対話型のスクリプト195は、スクリプトライブラリ170がクライアントデバイス120に常駐するかどうかを決定するために、クライアントデバイス120上のコンピュータメモリにアクセスすることができる。スクリプトライブラリ170がクライアントデバイス120を介してアクセスされるとき、対話型のスクリプト195は、対話のための別個の命令を提供することなく、セグメント190との対話性を提供し得る。このようにして、対話型のコンテンツ項目160Bのファイルサイズは、グラフィカル要素を介した同様な対話性を提供する別個のアプリケーションに対しては、低減され得る。したがって、ネットワーク110を介して対話型のコンテンツ項目160Bを通信する際に消費されるネットワーク帯域幅の量は、そのようなアプリケーションの通信に対して減らされ得る。いくつかの実装形態では、対話型のスクリプト195は、対話型のコンテンツ項目160Bが提供されるクライアントデバイス120によって読み取られて実行され得る。
コンテンツパッケージャ135は、対話型のコンテンツ項目160Bのファイルサイズの仕様を決定し、対話型のコンテンツ項目160Bの全体のサイズがサイズの仕様以下であるように対話型のコンテンツ項目160Bを生成することができる。いくつかの実装形態では、サイズ仕様はコンテンツプロバイダ175から受信され得る。いくつかの実装形態では、サイズ仕様は所定の値であり得る。生成された対話型のコンテンツ項目160Bのサイズを制限することによって、コンテンツパッケージャ135は、コンピュータネットワークのいくつかの帯域幅仕様と一致するように対話型のコンテンツ項目160Bを生成し、追加の制御をネットワークリソースに提供して対話型のコンテンツ項目160Bを提供することができる。
コンテンツパッケージャ135は、実行されると静的な視覚的コンテンツ180の各セグメント190を新しい場所に割り当てるように、対話型のスクリプト195を構成することができる。セグメント190の少なくともいくつかの場所は、各セグメント190の初期の場所であることがあり、これは各セグメントの標的の場所と異なることがある。初期の場所は、対話型のスクリプト195の実行の後でセグメント190が表示される場所であり得る。このセグメント195は、プロンプトを提供するための入力または対話型のスクリプト195による他の活動に基づいて、初期の場所から標的の場所に移され得る。各セグメント190の初期の場所は、対話型のコンテンツ項目160Bの全体的な対話性を高めるために割り当てられ得る。目標の条件に達するために、対話型のスクリプト195は、標的の場所に返されるようにセグメント190の各々を定義するように構成され得る。コンテンツパッケージャ135は、元の場所に等しくない、または一致しない位置に、セグメント190の少なくともいくつかを割り当てるように、対話型のスクリプト195を構成することができる。割り当てられる場所は、コンテンツ項目の対話性を最大化することができる(たとえば、セグメント190のすべてが目標の条件に達するために相互作用することになる)。いくつかの実装形態では、コンテンツパッケージャ135は、対話型のスクリプト195がクライアントデバイス120によって実行されるたびにランダムな場所に各セグメント190をランダムに割り当てる(たとえば、擬似乱数生成器を使用して)ように、対話型のスクリプト195を構成することができる。
対話型のコンテンツ項目160Bの中にセグメント190がない実装形態では、コンテンツパッケージャ135は、対話型のコンテンツ項目160Bに含まれる静的な視覚的コンテンツ180を最初に曖昧にするように対話型のスクリプト195を構成することができる。コンテンツパッケージャ135は、静的な視覚的コンテンツ180の上に霧のエフェクトをレンダリングすることによって、または対話型のコンテンツ項目160Bが提供されるレンダリングペインの前景に何らかの他の画像もしくはアニメーションをレンダリングすることによって、静的な視覚的コンテンツ180を曖昧にすることができる。いくつかの実装形態では、コンテンツパッケージャ135は、1つまたは複数の入力イベントに応答して静的な視覚的コンテンツ180を部分的に露出することができる、「スクラッチカード」の表面をレンダリングするように対話型のスクリプト195を構成することができる。たとえば、スワイプにより、対話の座標場所値が存在する場所で、静的な視覚的コンテンツ180を露出することができる。いくつかの実装形態では、コンテンツパッケージャ135は、対話イベントの座標を決定するために1つまたは複数のイベントリスナーを実装することができる。対話イベントの座標に基づいて、コンテンツパッケージャ135によって構成される対話型のスクリプト195は、それらの座標において1つまたは複数のアニメーションを提供し、静的な視覚的コンテンツ180の部分を露出することができる。
コンテンツパッケージャ135は、対話型のコンテンツ項目160Bとの対話性の開始のために、ユーザインターフェースを介してプロンプトを提示するように対話型のスクリプト195を構成することができる。プロンプトは小さいウィンドウまたはダイアログボックスであってよく、これは、対話型のコンテンツ項目160Bがレンダリングされるフレームに現れ得る。プロンプトまたはダイアログボックスは、対話のための要求を列挙するテキストを含み得る。プロンプトは1つまたは複数のボタンを含むことが可能であり、これは、スクリプトが対話に応答して実行を継続することを引き起こし得る。いくつかの実装形態では、コンテンツパッケージャ135は、対話性についてのオプションおよび静的なコンテンツについてのオプションを提供するように対話型のスクリプト195を構成することができる。いくつかの実装形態では、プロンプトは、対話型のコンテンツ項目160Bの性質(たとえば、パズルゲーム、または他のタイプの対話型のコンテンツなど)の詳細を含み得る。たとえば、プロンプトは、「パズルを完成させてください」などの対話型のコンテンツ項目160Bとの対話のために、規則または目標を概説する命令を含み得る。いくつかの実装形態では、コンテンツパッケージャ135は、プロンプトとの対話が検出されるまで、セグメント190との対話の有効化を引き延ばすように対話型のスクリプト195を構成することができる。いくつかの実装形態では、対話性についてのオプションの選択をプロンプトから検出したことに応答して、対話型のスクリプト195は本明細書で説明されるように実行を継続することができる。逆に、対話についてのオプションが選ばれないとき、対話型のスクリプト195は実行を止めることができる。いくつかの実装形態では、対話性についてのオプションが選ばれないとき、異なる種類のコンテンツが対話型のコンテンツ項目160Bの代わりに示され得る。
コンテンツパッケージャ135は、対話型のコンテンツ項目160Bのセグメント190を表示し、レンダリングし、または別様に提示するように、対話型のスクリプト195を構成することができる。セグメント190の提示は、提示されたプロンプトとの対話が検出されたことに応答したものであり得る。対話型のスクリプト195は、対話型のスクリプト195を実行するクライアントデバイス120からグラフィカル機能にアクセスすることができる。グラフィカル機能は、たとえばウェブページまたはネイティブアプリケーションにおいて、対話型のコンテンツ項目160Bが提供されるフレームにセグメント190をレンダリングし、描き、または別様に視覚的に表示するために使用され得る。フレームは、サードパーティコンテンツ、たとえば静的なコンテンツ項目160Aまたは対話型のコンテンツ項目160Bが表示され得る領域を定義することができる。フレームは、コンテンツ項目がその中で表示され得る制限を提供することができる提示境界(たとえば、幅および高さ)を含み得る。いくつかの実装形態では、フレームは、他のコンテンツ、たとえばコンテンツ発行者115によって提供される情報リソースの間で不変の場所を有する。いくつかの実装形態では、フレームはクライアントデバイス120の画面全体を占有し得る(たとえば、フルスクリーンモードで表示される)。いくつかの実装形態では、フレームは、メディアストリームにおいて、たとえばビデオまたは他のメディアコンテンツにおいて動的に提供され得る。対話型のコンテンツ項目160Bのセグメント190は、フレーム内でレンダリングされ得る。いくつかの実装形態では、コンテンツパッケージャ135は、セグメント190がフルスクリーンモードでレンダリングされ、描かれ、または別様に視覚的に表示されるようにするために、対話型のスクリプト195を構成することができる。いくつかの実装形態では、コンテンツパッケージャ135は、プロンプトとのユーザ対話なしでセグメント190を提示できるように、対話型のスクリプト195を構成することができる。
コンテンツパッケージャ135は、セグメント190のための最初に割り当てられる場所に対話型のコンテンツ項目160Bの各セグメント190を提示するように対話型のスクリプト195を構成することができる。対話型のコンテンツ項目160Bのセグメント190を提示することは、初期の場所における各セグメント190をレンダリングし、描き、または別様に視覚的に提示することを含み得る。セグメント190が対話型のコンテンツ項目160Bを提供するフレーム内に提示されるように、セグメント190のレンダリングが実行され得る。いくつかの実装形態では、対話型のスクリプト195は、対話型のコンテンツ項目160Bのためのフレームによって定義される境界の外側への移動を制限するようにセグメント190を表示するために、コンテンツパッケージャ135によって構成され得る。コンテンツパッケージャ135は、セグメント190の各々に初期の場所をランダムに割り当てるように、対話型のスクリプト195を構成することができる。いくつかの実装形態では、各セグメント190の初期の場所は、各セグメント190の標的の場所と異なり得る。いくつかの実装形態では、1つのセグメント190の初期の場所は別のセグメント190の標的の場所であり得る。いくつかの実装形態では、セグメント190を提示することは、標的の場所において各セグメント190をまずレンダリングし、描き、または別様に視覚的に表示し、次いで、たとえばあるアニメーションまたは他の種類のモーションを使用して、所定の長さの時間の後で、セグメント190を初期の場所に移動することを含み得る。いくつかの実装形態では、コンテンツパッケージャ135は、セグメント190がそれぞれの初期の場所に現れたことに応答して、アニメーション、視覚的効果、または他の追加の視覚的特徴を使用して、相対的なコンテンツ項目160Bのセグメント190を提示するように対話的なスクリプト195を構成することができる。
コンテンツパッケージャ135は、対話型のコンテンツ項目160Bのセグメント190がそれぞれの標的の場所にあるかどうかを決定するように、対話型のスクリプト195を構成することができる。コンテンツパッケージャ135は、セグメント190の各々の場所を継続的に監視するようにスクリプトを構成することができる。各セグメント190に初期の場所の割当ての間に、対話型のスクリプト195は、セグメント190のための標的の場所と各セグメント190の初期の場所を比較することができる。セグメント190のいずれかが、それぞれのセグメント190の標的の場所に等しい初期の場所を有する場合、対話型のスクリプト195は、そのセグメントの初期の場所を別の場所に再び割り当てるように構成され得る。いくつかの実装形態では、コンテンツパッケージャ135は、少なくとも1つのセグメントがその標的の場所に等しい初期の場所を有する場合、すべてのセグメントの初期の場所を再び割り当てるように対話型のスクリプト195を構成することができる。コンテンツパッケージャ135は、セグメント190の各々がそれぞれの初期の場所にあるが標的の場所にはないとの決定に応答して、セグメント190との対話を可能にするために対話型のスクリプト195を構成することができる。
コンテンツパッケージャ135は、フレーム内の相対的なコンテンツ項目160Bのセグメント190との対話を可能にするように対話型のスクリプト195を構成することができる。対話が有効にされると、各セグメント190は、対話型のコンテンツ項目160Bに対応するグラフィカルユーザインターフェースのユーザ要素に対応し得る。たとえば、各セグメント190は、とりわけ、インラインフレーム、コマンドボタンオブジェクト、および画像オブジェクトなどの、対話型のコンテンツ項目160BのHTML5オブジェクトに対応し得る。コンテンツパッケージャ135は、セグメント190の各々が標的の場所と異なると決定する前に、セグメント190との対話を可能にするように対話型のスクリプト195を構成することができる。いくつかの実装形態では、コンテンツパッケージャ135は、各セグメント190との対話を扱うように対話型のスクリプト195を構成することができる。
いくつかの実装形態では、コンテンツパッケージャ135は、イベントリスナー(たとえば、ドラッグリスナー)をセグメント190の各々と関連付けるように、またはそれを含むように、対話型のスクリプト195を構成することができる。たとえば、コンテンツパッケージャ135は、対話したセグメント190がある場所から別の場所へと移動するようにするために、マウスポインタまたはタッチベースのインターフェースのためのイベントリスナーを対話型スクリプト195へと含め得る。セグメント190との対話は、とりわけ、クリック入力、タッチ入力、および/またはドラッグ入力を含み得る。クリック入力は、セグメント190と関連付けられるクリックを検出するように構成される1つまたは複数のイベントリスナーによって検出され得る。タッチ入力は、セグメント190の各々とのタッチ対話を検出するように構成され得る、各セグメントと関連付けられる1つまたは複数のイベントリスナーによって検出され得る。ドラッグリスナーは、検出されたドラッグ動作に基づいて場所に各セグメント190を割り当てるようにコンテンツパッケージャ135によって構成され得る。各セグメント190と関連付けられるイベントリスナーは、イベントの検出に応答して、以前の場所および次の場所を特定するようにコンテンツパッケージャ135によって構成され得る。いくつかの実施形態では、セグメント190のためのイベントリスナーがセグメントの最初の場所から新しい場所へのn回の対話を検出するとき、対話型のスクリプト195は、イベントリスナーによって示される新しい場所にセグメント190を移動するように構成され得る。いくつかの実装形態では、コンテンツパッケージャ135は、セグメントとの対話が検出された場合、それぞれのセグメント190を移動するように対話型のスクリプト195を構成することができる。たとえば、コンテンツパッケージャ135は、タッチスクリーンからのタッチおよび移動の入力に応答してセグメント190の各々のドラッグを可能にするように、対話型のスクリプト195を構成することができる。
セグメント190のうちの1つとの対話が検出されるたびに、コンテンツパッケージャ135は、1つまたは複数のイベントリスナー(たとえば、ドラッグリスナー)によって示される対話型のコンテンツ項目160Bを提供するフレーム内の場所へのセグメント190のレンダリングを更新するように、対話型のスクリプト195を構成することができる。いくつかの実施形態では、対話(たとえば、ドラッグイベント)がセグメント190と関連付けられるイベントリスナーによって検出されるとき、イベントリスナーは、対話型のイベントの場所をそれが発生するにつれて継続的に提供することができる。コンテンツパッケージャ135は、対話型のコンテンツ項目160Bを提供するフレーム内のイベントリスナーによって示される場所にそれぞれのセグメント190をレンダリングするように対話型のスクリプト195を構成することができ、このことは、クライアントデバイス120において検出される対話型のイベントにセグメント190が続くように見えるようにし得る。いくつかの実装形態では、コンテンツパッケージャ135は、1つまたは複数のイベントリスナーによって検出される対話に応答してアニメーションをレンダリングするように対話型のスクリプト195を構成することができる。たとえば、セグメント190との対話が検出される場合、コンテンツパッケージャ135は、図3に関連するステップ305Cのように、光るアニメーションをレンダリングするように対話型のスクリプト195を構成することができる。
コンテンツパッケージャ135は、対話型のコンテンツ項目160Bのセグメント190がそれぞれの標的の場所に移動されたかどうかを決定するように、対話型のスクリプト195を構成することができる。セグメント190がそれぞれの標的の場所に移動されたかどうかの決定は、目標の条件が満たされるかどうかを決定するための対話型のスクリプト195による決定の一部であり得る。目標の条件は、各セグメント190が最初に割り当てられた場所から標的の場所に移動されるべきであると指定することができる。コンテンツパッケージャ135は、各セグメント190の位置を継続的に監視し、各セグメント190の位置をそれぞれの標的の場所と比較するように、対話型のスクリプト195を構成することができる。クライアントデバイス120から受信される入力を通じて、各セグメント190は異なる位置に移動され得る。いくつかの実装形態では、コンテンツパッケージャ135は、ユーザ入力に応答して各セグメント190の場所とそれぞれの標的の場所との比較を実行するように、対話型のスクリプト195を構成することができる。たとえば、セグメント190が移動された場合、スクリプトが場所の更新を確認し得る。いくつかの実装形態では、コンテンツパッケージャ135は、所定の時間間隔(たとえば、毎秒10回)に基づいて各セグメント190の場所をそれぞれの標的の場所と比較するように、対話型のスクリプト195を構成することができる。コンテンツパッケージャ135は、セグメント190がそれぞれの標的の場所にあると決定されるとき、アニメーション、視覚的効果、または他の種類の視覚的インジケータを表示するように、対話型のスクリプト195を構成することができる。セグメント190がそれぞれの標的の場所に移動されないとの決定に応答して、コンテンツパッケージャ135は、セグメント190との対話を監視し続けるように対話型のスクリプト195を構成することができる。
コンテンツパッケージャ135は、静的なコンテンツのセグメントがそれぞれの標的の場所に移動されたとの決定に応答して、活動を実行するように対話型のスクリプト195を構成することができる。いくつかの実装形態では、対話型のスクリプト195の活動は、セグメント190に関する情報とともにプロンプトを表示することを含み得る。情報は、コンテンツプロバイダ175またはコンテンツ発行者115によって提供され得る。いくつかの実装形態では、対話型のスクリプト195の活動は、セグメント190のすべてがそれぞれの標的の場所に位置するとの決定に応答して、クライアントデバイス120をランディングページ(たとえば、ウェブページ、ネイティブアプリケーションなど)に向けることを含み得る。ランディングページのアドレスは、コンテンツプロバイダ175によって提供され得る。いくつかの実施形態では、コンテンツパッケージャ135は、静的なコンテンツ項目180Aの静的なコンテンツスクリプト185からランディングページのアドレスを特定することができる。いくつかの実装形態では、コンテンツパッケージャ135は、目標の条件に到達するとランディングページを指すアドレスを自動的に開くように、対話型のスクリプト195を構成することができる。
いくつかの実装形態では、コンテンツパッケージャ135は、対話型のコンテンツ項目160Bに関する情報を提供するようにユーザインターフェースを介してプロンプトを提示するように、対話型のスクリプト195を構成することができる。プロンプトの提示は、静的なコンテンツのセグメントがそれぞれの標的の場所に移動されたとの決定に応答して実行され得る活動のうちの1つであり得る。いくつかの実装形態では、コンテンツパッケージャ135は、ユーザインターフェースを介してプロンプトを提示するためにクライアントデバイス120上に存在するネイティブアプリケーションインターフェースにアクセスするように、対話型のスクリプト195を構成することができる。いくつかの実装形態では、コンテンツパッケージャ135は、ネイティブアプリケーションインターフェースに依存することなくユーザインターフェースを提供するための命令を実行するように、対話型のスクリプト195を構成することができる。たとえば、コンテンツパッケージャ135は、プロンプトを定義するカスタマイズされたグラフィカルな設計を伴うポップアップウィンドウを表示するように、対話型のスクリプト195を構成することができる。カスタマイズされたグラフィカルな設計は、コンテンツプロバイダ175によって受信される対話型のコンテンツに対する要求に含まれ得る。いくつかの実装形態では、コンテンツパッケージャ135は、対話型のコンテンツ項目160Bと関連付けられるランディングページについての情報(たとえば、ランディングページのタイトル、ランディングページと関連付けられる任意の関係者、ランディングページのアドレス、ランディングページへのリンクなど)を含むプロンプトを提供するように、対話型のスクリプト195を構成することができる。いくつかの実装形態では、コンテンツパッケージャ135は、対話型のコンテンツ項目160Bと関連付けられるランディングページと関連付けられるアドレスを開くための要求を含むプロンプトをディスプレイに提供するように、対話型のスクリプト195を構成することができる。いくつかの実装形態では、コンテンツパッケージャ135は、プロンプトとの対話に応答してクライアントデバイス120上でアプリケーションを開くように、対話型のスクリプト195を構成することができる。
コンテンツパッケージャ135は、対話データを性能モニタ150に提供するように対話型のスクリプト195を構成することができる。対話データは、セグメント190の各々の場所およびそれらの現在の場所を含み得る。対話データはまた、各セグメント190の場所およびセグメント190との対話の検出の前のそれらの以前の場所を含み得る。コンテンツパッケージャ135は、セグメント190と関連付けられる1つまたは複数のイベントリスナーによって対話が検出されたことの指示を性能モニタ150に提供するように、対話型のスクリプト195を構成することができる。いくつかの実装形態では、コンテンツパッケージャ135は、対話型のコンテンツ項目160Bのセグメント190のうちの1つまたは複数との対話に関連して時間をカウントするためのタイマーを含むように、対話型のスクリプト195を構成することができる。いくつかの実装形態では、対話データは、セグメント190のうちの1つまたは複数との対話に関する時間データを含み得る。時間データは、セグメント190との各対話のタイムスタンプを含み得る。時間データはまた、初期のプロンプトとの対話の検出から経過した時間の長さを含み得る。
いくつかの実装形態では、コンテンツパッケージャ135は、対話データを性能モニタ150に提供し得る。いくつかの実装形態では、コンテンツパッケージャ135は、あらかじめ定められた間隔で対話データを性能モニタ150に提供するように、対話型のスクリプト195を構成することができる。たとえば、コンテンツパッケージャ135は、バーストの中のすべての記憶されている対話データを性能モニタ150に送信するように、対話型のスクリプト195を構成することができる。対話データは、たとえば、どれだけのセグメント190がそれぞれの標的の場所に移動されたかを追跡するために使用され得る。
コンテンツパッケージャ135は、目標の条件(たとえば、すべてのセグメント190がそれぞれの標的の場所にある)を満たした後に対話データを性能モニタ150に提供するように、対話型のスクリプト195を構成することができる。いくつかの実装形態では、コンテンツパッケージャ135は、目標の条件が満たされたかどうかの指示を性能モニタ150に提供するように、対話型のスクリプト195を構成することができる。この指示は、対話データの一部であり得る。いくつかの実装形態では、対話データの時間データは、目標の条件の満足を検出し始めてからの時間を含み得る。いくつかの実装形態では、コンテンツパッケージャ135は、プロンプトとの対話が目標の条件の後で検出されるかどうかの指示を提供するように、対話型のスクリプト195を構成することができる。この指示は、性能モニタ150に送信される対話データの一部であり得る。いくつかの実装形態では、対話データの時間データは、プロンプトとの対話のタイムスタンプを含み得る。
対話スクリプト195の生成により、コンテンツパッケージャ135は、対話型のコンテンツ項目160Bを作成するために、セグメント190に対話型のスクリプト195を包装し、または追加することができる。いくつかの実装形態では、対話型のコンテンツ項目160Bは、対話型のコンテンツ項目160BのスクリプトとのHTML5バンドルであり得る。対話型のコンテンツ項目160Bのスクリプトは、JavaScriptであってよく、1つまたは複数のスクリプトライブラリ170、たとえばスクリプトライブラリ170を含んでよい。いくつかの実装形態では、コンテンツパッケージャ135は、対話型のスクリプト195を(たとえば、暗号化によって)難読化することができる。いくつかの実装形態では、コンテンツパッケージャ135は、クライアントデバイス120上での対話型のスクリプト195の実行に応答してスクリプトライブラリ170のうちの1つまたは複数を自動的にダウンロードしてキャッシュするように、対話型のスクリプト195を構成することができる。対話型のコンテンツ項目160Bは1つまたは複数のコンテンツ発行者115によってアクセスされることが可能であり、コンテンツ発行者115は、対話型のコンテンツ項目160Bを1つまたは複数のクライアントデバイス120に提供することができる。いくつかの実装形態では、コンテンツパッケージャ135は、ネットワーク帯域幅の利用率を下げるために、圧縮アルゴリズムをセグメント190および/または対話型のスクリプト195に適用することができる。
コンテンツパッケージャ135は、ネットワーク110を介して対話型のコンテンツ項目160Bを1つまたは複数のクライアントデバイス120に提供することができる。コンテンツパッケージャ135は、それぞれのクライアントデバイス120からの要求に応答して対話型のコンテンツ項目160Bを提供することができる。たとえば、コンテンツ発行者115は、情報リソース(たとえば、ウェブページ)をクライアントデバイス120(たとえば、ウェブブラウザなどのアプリケーション)に提供することができる。情報リソースは、コンテンツプロバイダ175のうちの1つからの追加のコンテンツが挿入されるべき少なくとも1つのコンテンツスロット(たとえば、インラインフレーム)を含み得る。情報リソースはスクリプトを含むことがあり、このスクリプトの実行は、クライアントデバイス120に、コンテンツに対する要求をデータ処理システム105へ送信させることができる。要求を受信すると、コンテンツパッケージャ135は、ネットワーク110を介して対話型のコンテンツ項目160Bをクライアントデバイス120に送信することができる。コンテンツを送信する際、コンテンツパッケージャ135は、対話型のコンテンツ項目160Bを発見して選択するためにコンテンツ選択プロセスを走らせることができる。クライアントデバイス120に送信される対話型のコンテンツ項目160Bは、1つまたは複数のセグメント190および対話型のスクリプト195を含み得る。いくつかの実装形態では、コンテンツパッケージャ135は、対話型のコンテンツ項目160Bへのアドレス(たとえば、コンテンツプロバイダ175を参照するURLアドレス)をクライアントデバイス120に提供することができる。いくつかの実装形態では、コンテンツパッケージャ135は、対話型のコンテンツ項目160Bに含まれるべき各セグメント190(またはセグメント190のうちの1つまたは複数)にアドレスを提供することができる。いくつかの実装形態では、コンテンツパッケージャ135は、対話型のコンテンツ項目160Bのセグメント190に対話型の機能を提供するために、対話型のスクリプト195へのアドレスを提供することができる。
いくつかの実装形態では、対話型のコンテンツ項目160Bに対する要求を受信すると、データ処理システム105は、1つまたは複数の選択要因に基づいて対話型のコンテンツ項目160Bを選択することができる。この選択は、コンテンツ配置プロセスに従い得る。選択要因は、クライアントデバイス120についての情報、たとえば、デバイスのタイプ(たとえば、スマートフォン、タブレット、ラップトップコンピュータ、パーソナルコンピュータなど)、コンテンツ項目を要求するアプリケーションのタイプ、クライアントデバイス120の画面解像度、情報リソースに含まれるフレームのサイズ、およびコンテンツ項目の表示または配信に関する任意の他の要因を含み得る。選択要因に基づいて適切な対話型のコンテンツ項目160Bを選択した後で、データ処理システム105は、情報リソースに含まれるコンテンツスロット(またはフレーム)における表示のために、対話型のコンテンツ項目160Bをクライアントデバイス120に送信することができる。
いくつかの実装形態では、コンテンツパッケージャ135は、コンテンツに対する要求がそこから受信されるクライアントデバイス120のタイプに基づいて、対話型のコンテンツ項目160を提供することができる。コンテンツパッケージャ135は、クライアントデバイス120のタイプ(たとえば、スマートフォン、ラップトップ、セットトップボックス、またはデスクトップ)を特定することができる。コンテンツパッケージャ135は、要求と関連付けられるクライアントデバイス120のタイプが、対話性の追加に適格であるものとして決定される静的なコンテンツ項目160Aに対する標的クライアントデバイス120と一致するかどうかを決定することができる。いくつかの実装形態では、コンテンツパッケージャ135は、標的に対応するクライアントデバイスのタイプに適格であるものとして決定される静的なコンテンツ項目160Aへの標的クライアントデバイス120の関連付けを特定するために、データベース155にアクセスすることができる。一致があるとき、コンテンツパッケージャ135は、対話型のコンテンツ項目160Bをクライアントデバイス120に提供することができる。そうではなく、一致がないとき、コンテンツパッケージャ135は、提供すべき別のコンテンツ項目(たとえば、対応する静的なコンテンツ項目160A)を探索することができる。
データ処理システム105からの対話型のコンテンツ項目160Bの送信により、クライアントデバイス120は、対話型のコンテンツ項目160Bを受信することができる。受信すると、クライアントデバイス120(またはクライアントデバイス120上で実行されるアプリケーション)は、対話型のコンテンツ項目160Bを解析して、対話型のスクリプト195およびセグメント190を特定することができる。いくつかの実装形態では、クライアントデバイス120は、データ処理システム105から受信された対話型のコンテンツ項目160Bのアドレスを特定することができ、(たとえば、コンテンツプロバイダ175からの)アドレスを使用して対話型のコンテンツ項目160Bを読み出すことができる。いくつかの実装形態では、クライアントデバイス120は、1つまたは複数のセグメント190のアドレスを特定することができ、アドレスを使用してセグメント190を読み出すことができる。いくつかの実装形態では、クライアントデバイス120は、データ処理システム105によって提供される対話型のスクリプト195のアドレスを提供することができ、アドレスを使用して対話型のスクリプト195を読み出すことができる。
対話型のコンテンツ項目160Bからの対話型のスクリプト195およびセグメント190を解析すると、クライアントデバイス120(またはクライアントデバイス120上で実行されるアプリケーション)は、対話型のコンテンツ項目160Bを情報リソースのコンテンツスロットに挿入することができる。クライアントデバイス120はまた、対話型のスクリプト195において指定される機能を呼び出して実行することができる。対話型のスクリプト195の機能は、対話型のコンテンツ項目160Bが挿入される情報リソースの機能とは別個であり得る。さらに、クライアントデバイス120は、対話型のスクリプト195およびセグメント190をコンピュータメモリの中のある位置にロードすることができる。クライアントデバイス120のコンピュータメモリは、情報リソースを提供するアプリケーション(たとえば、ウェブブラウザ)にアクセス可能であり得る。いくつかの実装形態では、対話型のコンテンツ項目160Bのロードプロセスは、1つまたは複数のスクリプトライブラリ170を要求してダウンロードすることを含み得る。
対話型のスクリプト195を呼び出すと、クライアントデバイス120は、対話型のスクリプト195によって指定されるような命令を実行することができる。クライアントデバイス120は、情報リソースのコンテンツスロットとともに、対話型のコンテンツ項目160Bから抽出されるセグメント190を示し、レンダリングし、または別様に表示することができる。対話型のコンテンツ項目160Bが情報リソースのコンテンツスロットのうちの1つに挿入されるにつれて、対話型のスクリプト195の機能は、コンテンツスロットに対応するフレームの境界に制約され得る。いくつかの実装形態では、セグメント190は、それらの初期の場所に表示され得る。たとえば、セグメント190は、それらの標的の場所に表示され、自動的にそれらの初期の場所に移動され得る。
さらに、クライアントデバイス120は、対話型のスクリプト195に従って、イベントリスナーを通じたセグメント190との対話を可能にし得る。たとえば、セグメント190のうちの1つと関連付けられるマウスドラッグイベントリスナーを使用して、クライアントデバイス120は、セグメント190に対するドラッグアンドドロップイベントを検出することができる。各セグメント190に対話型のスクリプト195によって関連付けられるイベントリスナーは、対話型のコンテンツ項目160Bが挿入される情報リソースのコンテンツスロットに対応するフレームの境界によって制約され得る。したがって、コンテンツスロットの境界の外側での対話は、対話型のコンテンツ項目160Bのセグメント190と関連付けられる対話型のスクリプト195のイベントリスナーのいずれにも影響せず、またはそれらを惹起しないことがある。イベントの検出に応答して、クライアントデバイス120は、対話の最後の場所を特定し、最初に割り当てられる場所から最後の場所に移動されるセグメント190をレンダリングすることができる。クライアントデバイス120は、目標の条件に達するまで、対話型のスクリプト195を実行し続けることができる。目標の条件は、それぞれの標的の場所にセグメント190が移動されたことに応答して発生し、または検出され得る。
対話型のスクリプト195が実行されるにつれて、クライアントデバイス120は対話データをデータ処理システム105に送信することができる。たとえば、対話データは、セグメント190の各々の場所およびそれらのそれぞれの現在の場所を含み得る。加えて、対話データは、セグメント190との各対話のためのタイムスタンプを含み得る。クライアントデバイス120は、目標の条件に応答してプロンプトを提示するためにスクリプト実行することができる。たとえば、目標の条件に達すると、クライアントデバイス120は、テキスト「ここをクリックしてアプリケーションをダウンロードする」を伴うメッセージボックスを提示することができる。クライアントデバイス120は、プロンプトとの対話が検出されたかどうかを示す追加の対話データを送信することができる。対話データの時間データは、目標の条件の検出に対する経過した時間の長さを含み得る。
図3を参照すると、対話型のコンテンツ項目160Bとの対話の例示的な図解が示されている。ステップ305Aにおいて、クライアントデバイス120は、対話型のコンテンツ項目のセグメント(たとえば、セグメント190)をレンダリングした可能性がある。セグメント310はそれぞれの標的の場所にないことがある。ステップ305Bにおいて、クライアントデバイスは、セグメント310との対話を示す入力を受信した。この例では、クライアントデバイス120上で実行される対話型のスクリプト(たとえば、対話型のスクリプト195)によって検出されるドラッグイベントである。セグメント310の場所は、ドラッグイベントに対応するように変更された可能性がある。ステップ305Cにおいて、セグメント310は、クライアントデバイスによって検出されるドラッグイベントによってそれぞれの標的の場所に移動された可能性がある。クライアントデバイス120は、それぞれの標的の場所にセグメント310が達したことに応答して、光るアニメーションとしてここでは示されるアニメーションを提供することができる。いくつかの実装形態では、アニメーションは一時的であり得る。いくつかの実装形態では、クライアントデバイス120は、セグメント310が標的の場所に移動された後で、セグメント310の場所を維持することができる。ステップ305Dにおいて、アニメーションは停止し、セグメント310はもはや光っていないことがある。セグメント310は、標的の場所に達した可能性があり、他のセグメントと連結するものとしてクライアントデバイスによってレンダリングされる。
クライアントデバイス102への対話型のコンテンツ項目160Bの提供の後で、性能モニタ150は、クライアントデバイス120から対話データを受信することができる。対話データは各セグメント190の場所を示し得る。いくつかの実装形態では、対話データは、セグメント190が標的の場所に移動したかどうかを示し得る。いくつかの実装形態では、性能モニタ150は、セグメント190のうちの1つとの対話の検出に応答して、それぞれのクライアントデバイスから対話データを受信することができる。対話データは、クライアントデバイス120上で実行される対話型のスクリプト195に従って提供され得る。たとえば、対話データは、セグメント190の各々に対応する対話を含み得る。対話データは、セグメント190と関連付けられるイベントリスナーによって検出される対話に応答して、各セグメント190に対する以前の場所および以後の場所を指定することができる。対話データはまた、各対話のタイムスタンプを含み得る。いくつかの実装形態では、対話モニタは、対話データをリアルタイムで受信することができる(たとえば、対話がクライアントデバイス120上で発生するにつれて、対話データが性能モニタ150に送信され、またはそれによって受信される)。いくつかの実装形態では、性能モニタ150は対話データを時々受信することができる。いくつかの実装形態では、対話データは、所定の時間間隔(たとえば、10秒から5分にわたる)に基づいて定期的に受信され得る。
さらに、性能モニタ150は、それぞれの標的の場所にすべてのセグメント190が達した後で、クライアントデバイス120から対話データを受信することができる。いくつかの実装形態では、対話データは、対話型のコンテンツ項目160Bと関連付けられるランディングページをクライアントデバイス120が訪れたことの指示を含み得る。いくつかの実装形態では、対話データは、対話型のスクリプト195によって提供されるプロンプトとの対話がクライアントデバイス120において検出されるかどうかの指示を含み得る。この指示は、対話型のデータの一部であることがあり、プロンプトとの対話に関する時間データを含み得る。いくつかの実装形態では、性能モニタ150は、すべてのセグメント190が対応する標的の場所に達したことの指示を受信することができる。この指示は、対話型のデータの一部であることがあり、目標の条件に達するまでに経過した時間などの時間データを含み得る。
ここで図4を参照すると、スクリプトを含む対話型のコンテンツ項目を生成し、クライアントデバイス上でスクリプトを実行するための、方法400の流れ図が図示される。方法400は、本明細書において上記で詳述された少なくとも1つのクライアントデバイス120と連携したデータ処理システム105、または図5に連携して本明細書において以下で説明されたコンピュータシステム500を使用して、実施または実行され得る。概要として、データ処理システムは、コンテンツ項目およびスクリプトを特定することができる(405)。データ処理システムは、コンテンツ項目が適格であるかどうかを決定することができる(410)。データ処理システムは、区分テンプレートを使用してコンテンツ項目を分割することができる(415)。データ処理システムは、第2のコンテンツ項目およびスクリプトを生成することができる(420)。データ処理システムは、コンテンツ項目をクライアントデバイスに提供することができる(425)。クライアントデバイスは、コンテンツ項目からスクリプトを開始することができる(430)。クライアントデバイスは、各セグメントにある場所を割り当てることができる(435)。クライアントデバイスは、各セグメントをレンダリングすることができる(440)。クライアントデバイスは、セグメントの対話(segment interaction)を可能にし得る(445)。クライアントデバイスは、セグメントがそれぞれの標的の場所にあるかどうかを決定することができる(450)。クライアントデバイスは活動を実行することができる(455)。
データ処理システム(たとえば、データ処理システム105)は、コンテンツ項目(たとえば、静的なコンテンツ項目160A)を特定することができる(405)。コンテンツ項目は視覚的コンテンツ(たとえば、視覚的コンテンツ108)を含み得る。視覚的コンテンツは、とりわけ、画像、ビデオ、およびテキストを含み得る。視覚的コンテンツはとりわけ、1つまたは複数のパラメータ、たとえば寸法(たとば、幅および高さ)、符号化された情報、記述的なテキスト文字列、もしくは他のメタデータに関連付けられ、それらに起因し得る。コンテンツ項目はスクリプト(たとえば、静的なコンテンツのスクリプト185)を含み得る。いくつかの実装形態では、データ処理システムは、1つまたは複数のパラメータとともに、さらなる処理のためにコンテンツ項目から視覚的コンテンツを抽出することができる。いくつかの実装形態では、データ処理システムは、コンテンツ提供器(たとえば、コンテンツ提供器175)から視覚的コンテンツおよび1つまたは複数のパラメータを受信することができる。
データ処理システムは、コンテンツ項目が適格であるかどうかを決定することができる(410)。いくつかの実装形態では、データ処理システムは、視覚的コンテンツのサイズ(たとえば、幅および高さ)に基づいて適格性を決定することができる。たとえば、データ処理システムは、視覚的コンテンツの幅および高さを所定の閾値と比較することができる。いくつかの実装形態では、コンテンツ項目の幅および/または高さが所定の閾値のうちの1つまたは複数を超える場合、データ処理システムは、コンテンツ項目が不適格であると決定することができる。コンテンツ項目の幅および高さが1つまたは複数の所定の閾値内にある場合、データ処理システムは、視覚的コンテンツを適格であるものとして決定することができる。いくつかの実装形態では、所定の閾値は、対話型のコンテンツ項目に対する標的プラットフォームに基づいて選択される。たとえば、標的プラットフォームは、コンテンツ項目の幅および高さに対する固有の所定の閾値を定義する、ある特定の画面解像度を有し得る。データ処理システムが適格であるものとして視覚的コンテンツを決定する場合、データ処理システムはステップ(415)において視覚的コンテンツを分割することに進むことができる。コンテンツ項目が適格ではないとデータ処理システムが決定する場合、データ処理システムは、異なる視覚的コンテンツを特定するためにステップ(405)に戻ることができる。
データ処理システムは、区分テンプレート(たとえば、テンプレート165)を使用してコンテンツ項目の視覚的コンテンツを分割することができる(415)。視覚的コンテンツ項目を分割することは、区分テンプレートを選択することを含み得る。いくつかの実装形態では、区分テンプレートは1つまたは複数のSVG経路を含み得る。SVG経路は、ステップ(405)において特定される視覚的コンテンツを使用して作成されるべきセグメント(たとえば、セグメント190)の境界、形状、および/またはサイズを定義することができる。テンプレートは各セグメントに対する標的の場所を含み得る。データ処理システムは、区分テンプレートを視覚的コンテンツに適用することによって、1つまたは複数のセグメントを作成することができる。区分テンプレートを適用することは、区分テンプレートに含まれるSVG経路に沿って視覚的コンテンツを分割することを含み得る。いくつかの実装形態では、分割されたセグメントの各々は、視覚的コンテンツ(たとえば、パズル)と関連付けられる画像、ビデオ、または他の視覚的表現を形成するために、分割された視覚的コンテンツの他のセグメントと連結することができる。
データ処理システムは、対話型のコンテンツ項目およびスクリプトを生成することができる(420)。データ処理システムは、ステップ(415)において生成された分割されたセグメントに対話性を追加するためのスクリプトを生成することができる。いくつかの実装形態では、スクリプトを生成することは、スクリプトを実行するコンピューティングデバイスから受信された入力イベントに応答して、セグメントの移動を可能にするようにスクリプトを構成することを含み得る。入力イベントはとりわけ、タッチ入力またはマウス移動入力であり得る。いくつかの実装形態では、スクリプトは、それぞれの標的の場所に等しくないランダムな(たとえば、擬似ランダムな)場所をセグメントの各々にランダムに割り当てるように構成され得る。いくつかの実装形態では、スクリプトは、フレーム内の1つまたは複数のセグメントをレンダリングし、対話のためにそれらを提示するように構成され得る。いくつかの実装形態では、スクリプトは、フレーム内のコンテンツが双方向性であることを示すプロンプトを提供するように構成され得る。いくつかの実装形態では、スクリプトは、対話データをデータ処理システムに提供するように構成され得る。データ処理システムは、スクリプトおよび1つまたは複数のセグメントを包装して、対話型のコンテンツ項目(たとえば、対話型のコンテンツ項目160B)を作成することができる。対話型のコンテンツ項目は、たとえば、JavaScriptを含み得るHTML5バンドルとして実装され得る。いくつかの実装形態では、データ処理システムは、ある所定のサイズの規定(たとえば、2メガバイト)内となるように、対話型のコンテンツ項目を生成することができる。
データ処理システムは、対話型のコンテンツ項目を提供することができる(425)。データ処理システムは、対話型のコンテンツ項目を少なくとも1つのクライアントデバイス(たとえば、クライアントデバイス120のうちの1つ)に提供することができる。データ処理システムは、コンピュータネットワーク(たとえば、ネットワーク110)を介してコンテンツ項目を送信することができる。いくつかの実装形態では、対話型のコンテンツ項目は、クライアントデバイス上の1つまたは複数のフレームに表示され得る。いくつかの実施形態では、クライアントデバイスは、データ処理システムから対話型のコンテンツ項目を受信したことに応答して、対話型のコンテンツ項目からセグメントおよびスクリプトを抽出することができる。
クライアントデバイス(たとえば、クライアントデバイス120のうちの1つ)は、スクリプトを開始することができる(430)。スクリプトを開始することは、コンピュータメモリに1つまたは複数のセグメントのためのバッファを割り振ることを含み得る。いくつかの実装形態では、スクリプトを開始することは、データ処理システムから1つまたは複数のスクリプトライブラリ(たとえば、スクリプトライブラリ170)をダウンロードすることを含み得る。スクリプトライブラリをダウンロードすることは、スクリプトライブラリのためのストレージを割り振ることを含み得る。クライアントデバイスは、データ処理システムからスクリプトライブラリを受信したことに応答して、コンピュータメモリの中のある位置にスクリプトライブラリをキャッシュすることができる。クライアントデバイスは、スクリプトライブラリを記憶またはキャッシュしたこと、および/またはセグメントをコンピュータメモリに記憶したことに応答して、スクリプトを実行することを開始することができる。
クライアントデバイスは、各セグメントに初期の場所を割り当てることができる(435)。この場所は、対話型のコンテンツ項目に含まれるスクリプトによってランダムに割り当てられ得る(たとえば、擬似乱数生成器を使用して)。いくつかの実装形態では、セグメントは、それぞれの標的の場所と異なる場所に割り当てられ得る。各セグメントの標的の場所は、セグメントを作成するために使用される区分テンプレートによって定義され得る。いくつかの実装形態では、区分テンプレートはセグメントの各々に初期の場所を割り当てることができる。クライアントデバイスは、それぞれの標的の場所と異なる初期の場所をセグメントの各々が割り当てられるかどうかを決定することができる。セグメントの初期の場所がセグメントの標的の場所と同じであることをクライアントデバイスが決定する場合、クライアントデバイスは、たとえば擬似乱数生成器を使用して、そのセグメントに新しい初期の場所を割り当てることができる。
クライアントデバイスは各セグメントを提示することができる(440)。クライアントデバイスは、クライアントデバイスの1つまたは複数の表示機能にアクセスすることによって各セグメントを提示することができる。クライアントデバイスは、フレーム内の各セグメントを提示することができる。フレームは、対話型のコンテンツ項目およびセグメントのための境界を指定することができ、対話型のコンテンツ項目のセグメントをその中でレンダリングするための所定の幅、高さ、および位置を含むことができる。いくつかの実装形態では、フレームは、コンテンツ発行者(たとえば、コンテンツ発行者115)によって提供される情報リソースに含まれ得る。いくつかの実装形態では、クライアントデバイスは、それぞれの初期の場所に対話型コンテンツ項目の1つまたは複数のセグメントをレンダリングすることができる。いくつかの実装形態では、クライアントデバイスは、それぞれの標的の場所に対話型のコンテンツ項目の1つまたは複数のセグメントをレンダリングし、次いで、それぞれの初期の場所にセグメントを視覚的に動かすことができる。いくつかの実装形態では、各セグメントを提示することは、セグメントを含むアニメーションを提供することを含み得る。
クライアントデバイスは、各セグメントとの対話を可能にし得る(445)。クライアントデバイスは、ステップ(435)において提示されたセグメントのうちの1つまたは複数との対話を入力が含むかどうかを決定するために、入力デバイス(たとえば、マウスポインタ、タッチベースの入力など)からの入力を監視し始めることができる。いくつかの実装形態では、クライアントデバイスは、入力デバイスからの入力に応答して、1つまたは複数のセグメントを新しい場所に移動することができる。たとえば、入力がセグメントのうちの1つのクリックアンドドラッグを含む場合、クライアントデバイスは、入力デバイスによって示される場所にセグメントを動かすことができる。いくつかの実装形態では、クライアントデバイスは、入力に応答してアニメーションを提供することができる。
クライアントデバイスは、各セグメントが標的の場所にあるかどうかを決定することができる(450)。いくつかの実装形態では、クライアントデバイスは、各セグメントの場所を継続的に監視することができる。いくつかの実装形態では、クライアントデバイスは、入力イベント(たとえば、マウスクリック、タッチベースの入力など)に応答して、各セグメントの場所を監視することができる。クライアントデバイスは、各セグメントの場所をそれぞれの標的の場所と比較することができる。いくつかの実装形態では、セグメントの場所が標的の場所に等しいことをクライアントデバイスが決定する場合、クライアントデバイスは、セグメントが標的の場所に達したことを示すアニメーションを提供することができる。いくつかの実装形態では、セグメントが標的の場所に達したとクライアントデバイスが決定する場合、クライアントデバイスは、そのセグメントとの対話を無効にすることができる。クライアントデバイスは、あるセグメントがその標的の場所に移動されることに応答して、各セグメントの場所を含む対話データをデータ処理システムに送信することができる。すべてのセグメントが標的の場所に移動されたことをクライアントデバイスが決定する場合、クライアントデバイスはステップ(450)のように活動を実行することができる。すべてのセグメントがそれぞれの標的の場所に移動されていないことをクライアントデバイスが決定する場合、クライアントデバイスは、ステップ(445)のようにセグメントとの対話を可能にし続けることができる。
クライアントデバイスは活動(455)を実行することができる。いくつかの実装形態では、クライアントデバイスは、それぞれの標的の場所にすべてのセグメントが移動されたことに応答して、活動を実行することができる。いくつかの実装形態では、活動は、すべてのセグメントがそれぞれの標的の場所に移動されたことを示すプロンプトをクライアントデバイスに提示することを含み得る。いくつかの実装形態では、プロンプトは、ランディングページへのリンク、または対話型のコンテンツ項目に関する他の情報を含み得る。クライアントデバイスは、ランディングページへのアドレスを開くことができる。たとえば、クライアントデバイスは、ウェブブラウザを使用して対話型のコンテンツ項目に関するランディングページへのアドレスを開くことができる。いくつかの実装形態では、クライアントデバイスは、クライアントデバイス上で実行されるネイティブアプリケーションにおいてランディングページへのアドレスを開くことができる。いくつかの実装形態では、活動は、すべてのセグメントがそれぞれの標的の場所に移動されたことの指示をデータ処理システムに提供することを含み得る。この指示は、クライアントデバイス上でプロンプトが提示されたことを示すデータを含み得る。クライアントデバイスは、ランディングページがクライアントデバイス上で開かれたことに応答して、ランディングページがクライアントデバイス上で開かれたことの指示を含む対話データをデータ処理システムに提供することができる。
図5は、いくつかの実装形態に従って本明細書で論じられるコンピュータシステムのいずれかを実装するために利用され得る、説明のためのコンピュータシステム500の一般的なアーキテクチャを示す。コンピュータシステムは、表示のためにネットワーク110を介して情報を提供するために使用され得る。図5のコンピュータシステム500は、メモリ525に通信可能に結合される1つまたは複数のプロセッサ520、1つまたは複数の通信インターフェース805、ならびに1つまたは複数の出力デバイス510(たとえば、1つまたは複数のディスプレイユニット)および1つまたは複数の入力デバイス515を備える。プロセッサ520は、データ処理システム105またはシステム500の他の構成要素に含まれ得る。
図5のコンピュータシステム500において、メモリ525は、任意のコンピュータ可読記憶媒体を備えることがあり、それぞれのシステムのために本明細書で説明される様々な機能を実装するためのプロセッサ実行可能命令などのコンピュータ命令、ならびに、それらに関する、それらによって生成される、または通信インターフェースもしくは入力デバイス(もし存在すれば)を介して受信される、任意のデータを記憶し得る。図5のシステム500を再び参照すると、データ処理システムは、とりわけ、ユーザ識別子のセットに関する情報、生成されたベクトルを記憶するために、メモリ525を含み得る。図5に示されるプロセッサ520は、メモリ525に記憶されている命令を実行するために使用されることがあり、そうする際に、命令の実行に従って処理および/もしくは生成される様々な情報をメモリから読み取り、メモリに書き込むこともある。
図5に示されるコンピュータシステム500のプロセッサ520はまた、命令の実行に従って様々な情報を送信または受信するために、通信インターフェース505に通信可能に結合され、またはそれを制御し得る。たとえば、通信インターフェース505は、有線もしくはワイヤレスネットワーク、バス、または他の通信手段に結合され得るので、コンピュータシステム800が情報を送信すること、または他のデバイス(たとえば、他のコンピュータシステム)から情報を受信することを可能にし得る。図5のシステムには明示的に示されないが、1つまたは複数の通信インターフェースは、システム500の構成要素間での情報の流れを支援する。いくつかの実装形態では、通信インターフェースは、コンピュータシステム500の少なくともいくつかの態様に、ウェブサイトをアクセスポータルとして提供するように(たとえば、様々なハードウェア構成要素またはソフトウェア構成要素を介して)構成され得る。通信インターフェース505の例は、ユーザインターフェース(たとえば、ウェブページ)を含み、それを通じて、ユーザがデータ処理システム105と通信することができる。
図5に示されるコンピュータシステム500の出力デバイス510は、たとえば、命令の実行に関連して様々な情報が見られること、または別様に知覚されることを可能にするために提供され得る。入力デバイス515は、たとえば、命令の実行の間にプロセッサと多種多様な方式のうちのいずれかで、ユーザが手動の調整を行い、選択を行い、データを入力し、または対話することを可能にするために提供され得る。本明細書で論じられる様々なシステムのために利用され得る全般的なコンピュータシステムアーキテクチャに関する追加の情報が、本明細書でさらに提供される。
本明細書で説明される主題および動作の実装形態は、デジタル電子回路で、または本明細書で開示される構造物とそれらの構造的な均等物を含む有形媒体、ファームウェア、もしくはハードウェアで具現化されるコンピュータソフトウェアで、またはそれらの1つまたは複数の組合せで実装され得る。本明細書で説明される主題の実装形態は、1つまたは複数のコンピュータプログラムとして、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、コンピュータ記憶媒体に符号化されるコンピュータプログラム命令の1つまたは複数の構成要素として実装され得る。プログラム命令は、人工的に生成された伝播信号、たとえば、データ処理装置による実行のために適切な受信機装置へ送信するための情報を符号化するように生成される、機械で生成される電気的な、光学的な、または電磁気的な信号上で符号化され得る。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらの1つまたは複数の組合せであってよく、またはそれらに含まれてよい。その上、コンピュータ記憶媒体は伝播信号ではないが、コンピュータ記憶媒体は、人工的に生成される伝播信号に符号化されるコンピュータプログラム命令のソースまたは宛先を含み得る。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理的な構成要素もしくは媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であってよく、またはそれに含まれてよい。
本明細書で開示される特徴は、スマートテレビモジュール(または接続されるテレビモジュール、ハイブリッドテレビモジュールなど)上で実装されることがあり、これは、より古典的なテレビ番組ソース(たとえば、ケーブル、衛星、電波、または他の信号を介して受信される)とのインターネット接続性を統合するように構成される処理モジュールを含み得る。スマートテレビモジュールは、セットトップボックス、Blu-ray(登録商標)または他のデジタルメディアプレーヤー、ゲームコンソール、ホテルテレビシステム、および他のコンパニオンデバイスなどの、別個のデバイスを含み得る。スマートテレビモジュールは、視聴者が、ウェブ上の、ローカルケーブルTVチャンネルの、衛星TVチャンネルの、またはローカルハードドライブに記憶されている、ビデオ、映画、写真、および他のコンテンツを検索して発見することを可能にするように構成され得る。セットトップボックス(STB)またはセットトップユニット(STU)は、チューナーを含みテレビセットおよび外部の信号ソースに接続して信号をコンテンツへと変えることができる情報家電デバイスを含むことがあり、コンテンツは次いで、テレビ画面または他のディスプレイデバイスに表示される。スマートテレビモジュールは、ウェブブラウザおよび複数のストリーミングメディアサービス、接続されるケーブルまたは衛星メディアソース、他のウェブ「チャネル」などの、複数の異なるアプリケーションのアイコンを含むホーム画面またはトップレベル画面を提供するように構成され得る。スマートテレビモジュールはさらに、電子番組表をユーザに提供するように構成され得る。スマートテレビモジュールへのコンパニオンアプリケーションは、スマートテレビモジュールなどをユーザが制御することを可能にするために、利用可能な番組についての追加の情報をユーザに提供するようにモバイルコンピューティングデバイス上で動作可能であり得る。代替の実装形態では、特徴は、ラップトップコンピュータもしくは他のパーソナルコンピュータ、スマートフォン、他の携帯電話、ハンドヘルドコンピュータ、タブレットPC、または他のコンピューティングデバイス上で実装され得る。
本明細書で説明される動作は、1つまたは複数のコンピュータ可読記憶デバイスに記憶される、または他のソースから受信されるデータに対してデータ処理装置によって実行される動作として実装され得る。
用語「データ処理装置」、「データ処理システム」、「ユーザデバイス」、または「コンピューティングデバイス」は、例として、プログラム可能プロセッサ、コンピュータ、システムオンチップ、または前述のものの複数もしくは組合せを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、特別な目的の論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置はまた、ハードウェアに加えて、対象のコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらの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」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
データ処理システム105などのコンピューティングシステムは、クライアントおよびサーバを含み得る。たとえば、データ処理システム105は、1つまたは複数のデータセンターまたはサーバファームの中の1つまたは複数のサーバを含み得る。クライアントおよびサーバは一般に、互いに離れており、通常は通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され互いにクライアント-サーバの関係を有するコンピュータプログラムにより生じる。いくつかの実装形態では、サーバがデータ(たとえば、HTMLページ)をクライアントデバイスに(たとえば、クライアントデバイスと対話しているユーザにデータを表示してユーザからユーザ入力を受け取る目的で)送信する。クライアントデバイスにおいて生成されるデータ(たとえば、ユーザ対話の結果)は、サーバにおいてクライアントデバイスから受信され得る。
本明細書は多くの具体的な実装形態の詳細を含むが、これらは、任意の発明の範囲に対する制約として、または特許請求され得るものとして解釈されるべきではなく、むしろ、本明細書で説明されるシステムおよび方法の特定の実装形態に特有の特徴の説明として解釈されるべきである。別個の実装形態の文脈で本明細書において説明されるいくつかの特徴は、単一の実装形態において組合せとしても実装され得る。逆に、単一の実装形態の文脈で説明される様々な特徴は、複数の実装形態において別々に、または任意の適切な部分的な組合せでも実装され得る。その上、特徴はいくつかの組合せで作用するものとして上で説明されることがあり、そのように最初に特許請求されることすらあるが、特許請求される組合せからの1つまたは複数の特徴は、いくつかの場合、それらの組合せから削除されてよく、特許請求される組合せは、ある部分的な組合せまたは部分的な組合せの変形を対象とすることがある。
同様に、動作は特定の順序で図面において図示されているが、これは、望ましい結果を達成するために、そのような動作が特定の示される順序または連続的な順序で実行されること、または、すべての示される動作が実行されることを要求するものとして理解されるべきではない。いくつかの場合、請求項に記載される活動は、異なる順序で実行されてよく、それでも望ましい結果を達成することができる。加えて、添付の図面において図示されるプロセスは、所望の結果を達成するために、示される特定の順序、または連続的な順序を必ずしも必要としない。
いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上で説明された実装形態における様々なシステム構成要素の分離は、すべての実装形態においてそのような分離が必要であるものとして理解されるべきではなく、説明されるプログラム構成要素およびシステムが一般に、単一のソフトウェア製品において一緒に統合され、または複数のソフトウェア製品へとパッケージングされ得ることが理解されるべきである。たとえば、データ処理システム105は、単一のモジュール、1つまたは複数の処理モジュールを有する論理デバイス、1つまたは複数のサーバ、または検索エンジンの一部であり得る。
いくつかの説明のための実装形態をここで説明してきたが、上記は限定するものではなく説明のためのものであり、例として提示されたことが明らかである。具体的には、本明細書で提示される例の多くが、方法の活動またはシステム要素の特定の組合せを伴い、それらの活動およびそれらの要素は、同じ目的を達成するために他の方法で組み合わされ得る。1つの実装形態だけに関連して論じられる活動、要素、および特徴が、他の実装形態において同様の役割から除外されることは意図されない。
本明細書で使用される語句および用語は、説明を目的とするものであり、限定するものとして見なされるべきではない。本明細書における「含む」「備える」「有する」「含有する」「伴う」「によって特徴付けられる」「という点で特徴付けられる」およびそれらの変形の使用は、その後で列挙される項目、それらの均等物、および追加の項目、ならびに、その後で列挙される項目だけからなる代替の実装形態を包含することが意図される。一実装形態では、本明細書で説明されるシステムおよび方法は、説明される要素、活動、または構成要素のうちの1つ、1つよりも多くの各組合せ、またはすべてからなる。
本明細書において単数形で言及されるシステムおよび方法の実装形態または要素または活動に対するどのような言及も、複数のこれらの要素を含む実装形態を包含することができ、本明細書におけるどのような実装形態または要素または活動への複数形でのどのような参照も、単一の要素だけを含む実装形態を包含することができる。単数形または複数形での言及は、現在開示されるシステムもしくは方法、それらの構成要素、活動、または要素を、単一のまたは複数の構成に限定することは意図されない。任意の情報、活動、または要素に基づく、どのような活動または要素への言及も、活動または要素が任意の情報、活動、または要素に少なくとも一部基づくような実装形態を含み得る。
本明細書で開示されるどのような実装形態も、どのような他の実装形態と組み合わされてもよく、「ある実装形態」「いくつかの実装形態」「代替の実装形態」「様々な実装形態」「1つの実装形態」などへの言及は、必ずしも相互に排他的ではなく、実装形態に関連して説明される特定の特徴、構造、または特性が少なくとも1つの実装形態に含まれ得ることを示すことが意図される。本明細書で使用されるようなそのような用語は、必ずしもすべてが同じ実装形態を指しているとは限らない。どのような実装形態も、本明細書で開示される態様および実装形態と一貫する任意の方式で、包含的にまたは排他的に、どのような他の実装形態とも組み合わされ得る。
「または」への言及は、「または」を使用して説明されるどのような用語も、説明される用語の1つ、1つより多く、およびすべてのうちのいずれかを示し得るように、包含的であるものとして解釈され得る。
図面、詳細な説明、または任意の請求項における技術的な特徴の後に引用符号がある場合、引用符号は、図面、詳細な説明、および特許請求の範囲の明瞭度を高めることのみを目的として含まれている。したがって、引用符号も、それが存在しないことも、いずれの請求項の要素の範囲に対しても限定する効果を有しない。
本明細書で説明されるシステムおよび方法は、それらの特性から逸脱することなく、他の特定の形式で具現化され得る。本明細書で提供される例は、情報リソースのコンテンツの表示を制御することに関するが、本明細書で説明されるシステムおよび方法は他の環境に適用され得る。前述の実装形態は、説明されるシステムおよび方法を限定するものではなく例示するものである。したがって、本明細書で説明されるシステムおよび方法の範囲は、前述の説明ではなく、添付の特許請求の範囲によって示され、請求項の均等性の意味および範囲内にある変更は、本明細書に包含される。