(58)【調査した分野】(Int.Cl.,DB名)
前記ページに対応する前記コンテンツ、および前記選択されたリンクに対応する前記受信したコンテンツが、前記ユーザデバイス上で実行される前記アプリケーション内で実行される、ウェブブラウザアプリケーション内に提示される、
請求項2または3に記載の方法。
前記ページの前記コンテンツを前記ユーザデバイス上に提示させる前に、前記ページに対応する前記コンテンツ内の前記1つまたは複数のリンクの各々についてイベントハンドラを挿入するステップをさらに含む、
請求項1から4のいずれか一項に記載の方法。
前記ページに対応する前記コンテンツ、および前記選択されたリンクに対応する受信したコンテンツが、前記ユーザデバイス上で実行される前記アプリケーション内で実行される、ウェブブラウザアプリケーション内に提示される、
請求項8または9に記載のシステム。
前記ハードウェアプロセッサが、前記ページの前記コンテンツを前記ユーザデバイス上に提示させる前に、前記ページに対応する前記コンテンツ内の前記1つまたは複数のリンクの各々についてイベントハンドラを挿入するようにさらに構成される、
請求項7から10のいずれか一項に記載のシステム。
前記ページに対応する前記コンテンツ、および前記選択されたリンクに対応する前記受信したコンテンツが、前記ユーザデバイス上で実行される前記アプリケーション内で実行される、ウェブブラウザアプリケーション内に提示される、
請求項14または15に記載のコンピュータ可読記憶媒体。
【発明を実施するための形態】
【0015】
さまざまな実施形態によれば、リンクに関連するコンテンツを取得するための(方法、システム、および媒体を含むことのできる)メカニズムが提供される。
【0016】
いくつかの実施形態では、本明細書において説明するメカニズムは、ページがユーザデバイス上に提示されるとの決定をすることができる。例えば、いくつかの実施形態では、ページは、ユーザデバイス上で実行されるアプリケーションを通じて提示されるページとすることができる。より特定の例として、ページは、アプリケーションに関連するサービスのホームページ、アプリケーションに関連する特定のコンテンツに対応するページ、および/または他の任意の適切なタイプのページとすることができる。メカニズムは次いで、ページのコンテンツならびにページ内に含まれるリンクのマッピングを要求するリモートプロシージャコール(RPC)を、サーバに送信することができる。リンクのマッピングは、リンクに関連するURLや、リンクに関連する対応するエンドポイントまたはページタイプなど、任意の適切な情報を示すことができる。例えば、リンクが特定のビデオ共有サービスによってホストされるビデオへのものである場合、URLは、リンクのロケーションを指定することができ、エンドポイントは、ビデオが、特定のビデオプレーヤウィンドウ、ビデオ共有サービスに関連する特定のロゴ、および/または他の任意の適切な要素を含むビデオ鑑賞ページ内に提示される、ということを示すことができる。ユーザデバイスは、コンテンツおよびマッピングを受信することができ、マッピングをユーザデバイスのローカルメモリ内に格納することができる。ページの提示中にページのリンクのうちの選択された1つの受領に応答して、ユーザデバイスは、格納されたマッピングを使用して、選択されたリンクに対応するコンテンツがそこに提示されるエンドポイントまたはページタイプを決定することができ、選択されたリンクに関連するコンテンツをサーバが送信するのを待つ間に、そのエンドポイントまたはページタイプに対応する要素をロードし始めることができる。
【0017】
いくつかの実施形態では、ページに関連するコンテンツを、モバイルデバイス上で実行されるアプリケーション内に任意の適切な様式で提示することができる。例えば、いくつかの実施形態では、コンテンツは、WebViewアプリケーションや、アプリケーション内にレンダリングされた他の任意の適切なウェブブラウザなど、アプリケーション内で実行されるウェブブラウザインターフェース内に提示することができる。より特定の例として、いくつかの実施形態では、ページに関連するコンテンツは、アプリケーション内のWebView内に提示される、アプリケーションに関連しないサードパーティコンテンツとすることができる。この例を続けると、コンテンツ内のリンクは、アプリケーションを通じて提供される、アプリケーションに関連するビデオ共有サービスによって提供されるビデオへのものとすることができる。本明細書において説明するメカニズムは、WebViewを通じたビデオへのリンクの選択をインタセプトすることができ、ビデオがユーザデバイス上にバッファリングされている間に、ビデオ鑑賞ページに関連するユーザインターフェース要素をアプリケーション内にロードさせることができる。反対に、いくつかの実施形態では、ページのコンテンツをアプリケーション内に提示することができ、選択されたリンクが、アプリケーション内のWebView内にレンダリングされるサードパーティコンテンツに対応することができる。この例を続けると、ページのコンテンツ内のリンクの選択をインタセプトすることができ、サードパーティコンテンツがユーザデバイスに送信されている間に、WebViewに関連する要素をアプリケーション内にロードすることができる。
【0018】
したがって、本明細書において説明するメカニズムは、アプリケーション内でリンクが選択されたときの応答のレーテンシを、コンテンツが提示されるページの要素をユーザデバイスがプレロードし始められるようにすることによって、低減させることができる。具体的には、いくつかの実施形態では、初期ページが最初に提示されるときにURLのエンドポイントへのマッピングをユーザデバイス上にローカルに格納しておくため、ユーザデバイスとサーバとの間の1つまたは複数のラウンドトリップメッセージをなくすことができる。加えて、本明細書において説明するメカニズムは、各ユーザデバイスにユーザデバイス上のアプリケーションに対するアップデートをダウンロードするように要求することなく、アプリケーションの開発者がユーザインターフェースの外観に、サーバによって供給されるコンテンツを通じて変更を加えられるようにすることができる。例えば、アプリケーション上に提示されるページ内のリンクに関するエンドポイント情報をサーバからユーザデバイスに送信することによって、ユーザデバイスにアプリケーションに対するアップデートをダウンロードするように要求するのではなく、サーバが、各エンドポイントに対応するユーザインターフェース要素についての情報(例えば、ビデオプレーヤウィンドウの外観、ロゴの外観もしくは位置、ディスカッションフォーラムの外観もしくは位置、および/または他の任意の適切な要素)を含めることができる。
【0019】
図1Aに移ると、開示する本主題のいくつかの実施形態による、ユーザデバイス上に提示することのできるユーザインターフェースの、説明のための例100が示されている。図示のように、ユーザインターフェース100は、ページコンテンツ102およびリンク104を含むことができる。いくつかの実施形態では、ユーザインターフェース100は、アプリケーション、例えば
図1Aに示すようにモバイルデバイス上で実行されるアプリケーション内に、提示することができる。
【0020】
いくつかの実施形態では、ページコンテンツ102は、ビデオコンテンツ、画像、アニメーション、テキストコンテンツ、ウェブページからのコンテンツ、および/または他の任意の適切なタイプのコンテンツなど、任意の適切なタイプのコンテンツを含むことができる。コンテンツがビデオコンテンツを含む場合、ページコンテンツ102は、任意の適切なビデオプレーヤコントロール(例えば一時停止コントロール、音量コントロール、および/または他の任意の適切なタイプのコントロール)を含むことのできるビデオプレーヤウィンドウ内に提示することができる。
【0021】
いくつかの実施形態では、リンク104は、任意の適切なタイプのリンクとすることができる。例えば、リンク104は、ウェブページへのリンク、メディアコンテンツアイテムへのリンク(例えばビデオ、画像、オーディオファイル、および/もしくは他の任意の適切なタイプのメディアコンテンツアイテムへのリンク)、チャットルームまたはディスカッションフォーラムへのリンク、ならびに/あるいは他の任意の適切なタイプのコンテンツへのリンクとすることができる。いくつかの実施形態では、リンク104は、ユーザインターフェース100がそれを通じて提示されているアプリケーション内のコンテンツにリンクすることができる。例えば、ユーザインターフェース100が、ビデオ共有サービスに関連するアプリケーション内に提示される場合、リンク104は、ビデオ共有サービスを通じてアクセスされる別のビデオへのリンク、ビデオ共有サービスを通じてアクセスされる情報のページへのリンク、ビデオ共有サービスのユーザのプロファイルへのリンク、および/または他の任意の適切なタイプのページなど、そのビデオ共有サービスに関連する別のページへのものとすることができる。それに加えてまたはその代わりに、いくつかの実施形態では、リンク104は、別のエンティティに関連するウェブページおよび/または他の任意の適切なタイプのコンテンツなど、アプリケーションに関連しないコンテンツにリンクすることができる。
【0022】
いくつかの実施形態では、リンク104を選択すると、ユーザインターフェース150を提示させることができる。図示のように、いくつかの実施形態では、ユーザインターフェース150は、選択されたリンクに関連するコンテンツに対応することのできるリンクコンテンツ154を含むことができる。いくつかの実施形態では、
図1Bに示すように、リンクコンテンツ154は、ユーザインターフェース100を提示したアプリケーション内に提示することができる、ということに留意されたい。例えば、いくつかの実施形態では、リンクコンテンツ154が、アプリケーションに関連しないウェブページを含んでいた場合でも、そのウェブページをアプリケーション内に(例えばアプリケーション内にレンダリングされたウェブブラウザウィンドウ内に)提示することができる。
【0023】
図2に移ると、開示する本主題のいくつかの実施形態に従って使用することのできる、リンクに関連するコンテンツを取得し、提示するためのハードウェアの、説明のための例200が示されている。図示のように、ハードウェア200は、コンテンツサーバ202など、1つもしくは複数のサーバ、通信ネットワーク204、および/またはユーザデバイス208や210など、1つもしくは複数のユーザデバイス206を含むことができる。
【0024】
いくつかの実施形態では、コンテンツサーバ202は、コンテンツを格納し、そのコンテンツを提示のためにユーザデバイスに送信するのに適した、任意のサーバとすることができる。例えば、いくつかの実施形態では、コンテンツサーバ202は、メディアコンテンツをユーザデバイス206に通信ネットワーク204を介してストリーミングするサーバとすることができる。いくつかの実施形態では、コンテンツサーバ202上のコンテンツは、ビデオコンテンツ、オーディオコンテンツ、映画、テレビ番組、ライブストリームコンテンツ(live-streamed content)、オーディオブック、および/または他の任意の適切なタイプのコンテンツなど、任意の適切なコンテンツとすることができる。いくつかの実施形態では、コンテンツサーバ202は省略することができる。
【0025】
通信ネットワーク204は、いくつかの実施形態では、1つまたは複数の有線ネットワークおよび/またはワイヤレスネットワークの任意の適切な組合せとすることができる。例えば、通信ネットワーク204は、インターネット、イントラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、ワイヤレスネットワーク、デジタル加入者回線(DSL)ネットワーク、フレームリレーネットワーク、非同期転送モード(ATM)ネットワーク、バーチャルプライベートネットワーク(VPN)、および/または他の任意の適切な通信ネットワークのうちのいずれか1つまたは複数を含むことができる。ユーザデバイス206は、1つまたは複数の通信リンク212によって通信ネットワーク204に接続され得、通信ネットワーク204は、1つまたは複数の通信リンク(例えば通信リンク214)を介してコンテンツサーバ202にリンクされ得る。通信リンク212および/または214は、ネットワークリンク、ダイヤルアップリンク、ワイヤレスリンク、ハードワイヤードリンク、他の任意の適切な通信リンク、またはそのようなリンクの任意の適切な組合せなど、ユーザデバイス206およびサーバ202の間でデータを通信するのに適した任意の通信リンクとすることができる。
【0026】
いくつかの実施形態では、ユーザデバイス206は、オーディオコンテンツもしくはビデオコンテンツを視聴すること、コンテンツページ内のリンクの選択されたものを受領すること、および/または他の任意の適切な機能に適した、1つまたは複数のコンピューティングデバイスを含むことができる。例えば、いくつかの実施形態では、ユーザデバイス206は、スマートフォン、モバイルフォン、タブレットコンピュータ、ウェアラブルコンピュータ、ラップトップコンピュータ、車両(例えば、車、ボート、飛行機、もしくは他の任意の適切な車両)エンターテイメントシステム、ポータブルメディアプレーヤ、および/または他の任意の適切なモバイルデバイスなどのモバイルデバイスとして実装することができる。別の例として、いくつかの実施形態では、ユーザデバイス206は、デスクトップコンピュータ、セットトップボックス、テレビ、ストリーミングメディアプレーヤ、ゲームコンソール、および/または他の任意の適切な非モバイルデバイスなどの非モバイルデバイスとして実装することができる。
【0027】
コンテンツサーバ202は、単一のデバイスとして示されているが、コンテンツサーバ202によって実施される機能は、いくつかの実施形態では、任意の適切な数のデバイスを使用して実施することができる。例えば、いくつかの実施形態では、複数のデバイスを使用して、コンテンツサーバ202によって実施される機能を実装することができる。
【0028】
図2には2つのユーザデバイス208および210が示されているが、任意の適切な数のユーザデバイス、および/または任意の適切なタイプのユーザデバイスを、いくつかの実施形態では使用することができる。
【0029】
コンテンツサーバ202およびユーザデバイス206は、いくつかの実施形態では、任意の適切なハードウェアを使用して実装することができる。例えば、いくつかの実施形態では、デバイス202および206は、任意の適切な汎用コンピュータまたは専用コンピュータを使用して実装することができる。例えば、サーバは、専用コンピュータを使用して実装されてよい。そのような任意の汎用コンピュータまたは専用コンピュータは、任意の適切なハードウェアを含むことができる。例えば、
図3の例示的ハードウェア300内に示すように、そのようなハードウェアは、ハードウェアプロセッサ302、メモリおよび/または記憶装置304、入力デバイスコントローラ306、入力デバイス308、ディスプレイ/オーディオドライバ310、ディスプレイおよびオーディオ出力回路312、通信インターフェース314、アンテナ316、ならびにバス318を含むことができる。
【0030】
ハードウェアプロセッサ302としては、いくつかの実施形態では、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、専用論理回路、および/または汎用コンピュータもしくは専用コンピュータの機能を制御するための他の任意の適切な回路など、任意の適切なハードウェアプロセッサがあり得る。いくつかの実施形態では、ハードウェアプロセッサ302は、(例えばコンテンツサーバ202などの)サーバのメモリおよび/または記憶装置304内に格納されたサーバプログラムによって制御することができる。例えば、このサーバプログラムは、ユーザデバイスからの要求の受信に応答して、コンテンツサーバ202のハードウェアプロセッサ302に、コンテンツおよび/またはコンテンツ内のリンクのマッピングをユーザデバイスに送信させることができる。いくつかの実施形態では、ハードウェアプロセッサ302は、ユーザデバイス206のメモリおよび/または記憶装置304内に格納されたコンピュータプログラムによって制御することができる。例えば、このコンピュータプログラムは、ユーザデバイス206のハードウェアプロセッサ302に、ページを提示させる、提示されたページ内のリンクの選択されたものを受領させる、リンクに関連するエンドポイントを特定させる、エンドポイントに関連するコンテンツを求める要求を、コンテンツサーバ202に送信させる、エンドポイントに関連するコンテンツを提示させる、かつ/または他の任意の適切な機能を実施させることができる。
【0031】
メモリおよび/または記憶装置304は、いくつかの実施形態では、プログラム、データ、メディアコンテンツ、広告、および/または他の任意の適切な情報を格納するのに適した任意のメモリおよび/または記憶装置とすることができる。例えば、メモリおよび/または記憶装置304としては、ランダムアクセスメモリ、読出し専用メモリ、フラッシュメモリ、ハードディスク記憶装置、光学媒体、および/または他の任意の適切なメモリがあり得る。
【0032】
入力デバイスコントローラ306は、いくつかの実施形態では、1つまたは複数の入力デバイス308からの入力を制御および受領するのに適した任意の回路とすることができる。例えば、入力デバイスコントローラ306は、タッチスクリーンからの、キーボードからの、マウスからの、1つもしくは複数のボタンからの、音声認識回路からの、マイクロホンからの、カメラからの、光センサからの、加速度計からの、温度センサからの、近接場センサからの、かつ/または他の任意のタイプの入力デバイスからの入力を受領するための回路とすることができる。
【0033】
ディスプレイ/オーディオドライバ310は、いくつかの実施形態では、1つまたは複数のディスプレイ/オーディオ出力デバイス312への出力を制御および駆動するのに適した任意の回路とすることができる。例えば、ディスプレイ/オーディオドライバ310は、タッチスクリーン、フラットパネルディスプレイ、陰極線管ディスプレイ、プロジェクタ、1つもしくは複数のスピーカ、および/または他の任意の適切なディスプレイおよび/または提示デバイスを駆動するための回路とすることができる。
【0034】
通信インターフェース314は、
図2に示すネットワーク204など、1つまたは複数の通信ネットワークとインターフェースするのに適した任意の回路とすることができる。例えば、インターフェース314としては、ネットワークインターフェースカード回路、ワイヤレス通信回路、および/または他の任意の適切なタイプの通信ネットワーク回路があり得る。
【0035】
アンテナ316は、いくつかの実施形態では、通信ネットワーク(例えば通信ネットワーク204)とワイヤレス通信するのに適した任意の1つまたは複数のアンテナとすることができる。いくつかの実施形態では、アンテナ316は省略することができる。
【0036】
バス318は、いくつかの実施形態では、2つ以上の構成要素302と、304と、306と、310と、314との間で通信するのに適した任意のメカニズムとすることができる。
【0037】
他の任意の適切な構成要素を、いくつかの実施形態によるハードウェア300内に含めることができる。
【0038】
図4に移ると、開示する本主題のいくつかの実施形態による、リンクに関連するコンテンツを取得し、提示するための情報流れ図の、説明のための例400が示されている。図示のように、いくつかの実施形態では、情報流れ
図400のブロックは、ユーザデバイス206およびコンテンツサーバ202上で実施することができる。
【0039】
402において、ユーザデバイス206がコンテンツサーバ202に、ユーザデバイス206上に提示しようとするページに関連するコンテンツを要求するリモートプロシージャコール(RPC)を送信することができる。いくつかの実施形態では、RPCは、提示しようとするページの識別情報(例えばページに関連するURL、および/または他の任意の適切な識別情報)など、任意の適切な情報を含むことができる。いくつかの実施形態では、RPCは、ページがそこに提示されるアプリケーションを介して成すことができる。いくつかのそのような実施形態では、アプリケーションは、ビデオ共有サービスに関連するアプリケーション、ソーシャルネットワーキングサービスに関連するアプリケーション、および/または他の任意の適切なタイプのアプリケーションなど、ユーザデバイス206上で実行される任意の適切なアプリケーションとすることができる。
【0040】
404において、コンテンツサーバ202がユーザデバイス206に、ページのコンテンツ、およびページ内に含まれるリンクのマッピングを送信することができる。いくつかの実施形態では、ページのコンテンツは、テキスト、画像、アニメーション、アイコン、ビデオ、および/または他の任意の適切なタイプのコンテンツなど、任意の適切なコンテンツを含むことができる。いくつかの実施形態では、ページのコンテンツは、ハイパーテキストマークアップ言語(HTML)形式および/または他の任意の適切な形式でなど、任意の適切な形式で送信することができる。いくつかの実施形態では、リンクのマッピングは、任意の適切な情報を含むことができる。例えば、いくつかの実施形態では、リンクのマッピングは、ページ内に含まれるリンクのうちの1つまたは複数に関するキー(key)-値ペアを示すことができ、ここでキーは、リンクのユニフォームリソースロケータ(URL)を示し、値は、URLに関連するエンドポイントを示す。より特定の例として、ページを提示するアプリケーションが、ビデオ共有サービスに関連するアプリケーションであり、リンクに対応するURLが、特定のビデオに関連するメインページへのものである場合、エンドポイントは、URLがビデオ鑑賞ページ(例えば、ビデオがそこに提示されるビデオプレーヤウィンドウを含むページ、ビデオに対してコメントするためのコメントセクションを含むページ、ビデオ共有サービスのロゴを含むページ、および/または他の任意の適切な要素を含むページ)に対応する、ということを示すことができる。
【0041】
いくつかの実施形態では、コンテンツサーバ202がユーザデバイス206に、ユーザインターフェースのための任意のユーザインターフェース要素、またはリンクに関連するコンテンツがそこに提示されるユーザインターフェースをレンダリングするための命令を送信することができる、ということに留意されたい。例えば、いくつかの実施形態では、コンテンツサーバ202は、ビデオ共有サービスのロゴなど、ビデオ鑑賞ページに対応するユーザインターフェースのためのユーザインターフェース要素、コメントセクションをレンダリングするための命令、ビデオプレーヤウィンドウをレンダリングするための命令、および/または他の任意の適切な要素もしくは命令を送信することができる。それに加えてまたはその代わりに、いくつかの実施形態では、これらの要素または命令は、ユーザデバイス206によって、任意の適切な時間に、例えばページのコンテンツがそこに提示されるアプリケーションがダウンロードまたは最終更新された時間に、前もって受信されていてもよい。
【0042】
406において、ユーザデバイス206が、受信したページコンテンツ、およびリンクのマッピングを、ユーザデバイス206のローカルメモリ(例えば
図3に示し、上で
図3に関して説明したメモリ304)内に格納することができる。
【0043】
ユーザデバイス206が、408において、ページを提示させることができる。いくつかの実施形態では、ユーザデバイス206は、格納されたページコンテンツをメモリ304から取得して、そのページコンテンツを提示することができる。いくつかの実施形態では、ページは、任意の適切な様式で提示することができる。例えば、
図1Aに示し、上で
図1Aに関して説明したように、ページは、ユーザデバイス206上で実行されるアプリケーションのウィンドウ内に提示することができる。いくつかの実施形態では、提示されたページは、ビデオ、オーディオコンテンツ、テキスト、画像、グラフィック、アニメーション、アイコン、および/または他の任意の適切なコンテンツなど、任意の適切なコンテンツを含むことができる、ということに留意されたい。加えて、いくつかの実施形態では、提示されたページは、他のコンテンツへの任意の適切な数(例えば0個、1個、2個、5個、10個、および/または他の任意の適切な数)のリンクを含むことができる。いくつかの実施形態では、リンクは、アプリケーションに関連するコンテンツへのもの、またはアプリケーションに関連しないコンテンツへのリンクとすることができる。例えば、いくつかの実施形態では、リンクのうちの1つまたは複数を、アプリケーションまたはアプリケーション内のコンテンツの他の部分への(例えばアプリケーションの特定のセクションへの、アプリケーションによって表されるウェブサイトの別のページへの、かつ/またはアプリケーション内の他の任意の適切なリンクへの)ディープリンクとすることができる。反対に、いくつかの実施形態では、リンクのうちの1つまたは複数を、サードパーティによってホストされるウェブページや記事など、アプリケーションに関連しないサードパーティコンテンツへのリンクとすることができる。いくつかの実施形態では、提示されるページは、ユーザデバイス206上で実行されるアプリケーション内にレンダリングされたWebViewウェブブラウザ内に提示することができる。
【0044】
ユーザデバイス206が、410において、ページ内に含まれるリンクの選択されたものを受領することができる。いくつかの実施形態では、リンクの選択されたものは、任意の適切な様式で受領することができる。例えば、いくつかの実施形態では、選択されたものは、ユーザデバイス206のユーザがページ内のリンクをタップまたはクリックすることに基づいて受領することができる。
【0045】
ユーザデバイス206は、412において、リンクに関連するエンドポイントを、406においてローカルメモリ内に格納されたリンクのマッピングに基づいて特定することができる。いくつかの実施形態では、エンドポイントは、リンクに基づいてアプリケーション内に提示されるページタイプを示すことができる。例えば、アプリケーションが、ビデオ共有サービスに関連し、リンクが、アプリケーション内に提示されるビデオに対応する場合、エンドポイントは、リンクが、ビデオ鑑賞ページタイプに対応するページ(例えばビデオプレーヤウィンドウ、ビデオについての情報を提示するためのセクション、ビデオをホストするビデオ共有サービスに関連するロゴ、および/または他の任意の適切なコンテンツを含むページ)内に提示される、ということを示すことができる。より特定の例として、いくつかの実施形態では、エンドポイントは、リンクに関連するコンテンツが提示される特定のページタイプに対応する一般的なユーザインターフェース要素を示すことができる。
【0046】
ユーザデバイス206が、414において、コンテンツサーバ202に、エンドポイントに関連するコンテンツを求める要求を送信することができる。例えば、いくつかの実施形態では、リンクがビデオへのリンクである場合、ユーザデバイス206は、ビデオに関連するデータをユーザデバイス206に送信し始めよとの要求を送信することができる。
【0047】
いくつかの実施形態では、ユーザデバイス206は、コンテンツサーバ202からの、要求に対する応答を待つ間に、提示されるページタイプに関連するユーザインターフェースをロードし始めることができる、ということに留意されたい。例えば、ページタイプがビデオ鑑賞ページに対応する場合、ユーザデバイス206は、ビデオプレーヤウィンドウ、ビデオについての情報を提示するためのセクション、および/または他の任意の適切なタイプのコンテンツを含む、ビデオを提示するための一般的なユーザインターフェースを提示し始めることができる。
【0048】
416において、コンテンツサーバ202が、受信した要求に対して、要求したコンテンツをユーザデバイス206に送信することによって応答することができる。要求したコンテンツが、ストリーミングされるメディアコンテンツ(例えばビデオコンテンツアイテム、オーディオコンテンツアイテム、ライブストリームビデオ、および/または他の任意の適切なタイプのメディアコンテンツ)を含む場合、コンテンツサーバ202は、要求したコンテンツに対応するデータのストリームを送信することができる。
【0049】
418において、ユーザデバイス206が、受信したコンテンツを提示することができる。例えば、受信したコンテンツがビデオを含む場合、ユーザデバイス206はそのビデオを提示し始めることができる。別の例として、受信したコンテンツがウェブページのコンテンツを含む場合、ユーザデバイス206はそのウェブページを提示することができる。いくつかの実施形態では、受信したコンテンツは、
図1Bに示し、上で
図1Bに関して説明したように、ユーザデバイス206上で実行されるアプリケーション内に提示することができる。さらに、いくつかの実施形態では、受信したコンテンツは、アプリケーション内にレンダリングされたWebViewウェブブラウザ内に提示することができる。
【0050】
図5に移ると、開示する本主題のいくつかの実施形態による、リンクに関連するコンテンツを取得し、提示するためのプロセスの、説明のための例500が示されている。いくつかの実施形態では、プロセス500のブロックは、ユーザデバイス206上で実施することができる。
【0051】
プロセス500は、502において、ユーザデバイスからサーバに、ユーザデバイス上に提示しようとするページのコンテンツをフェッチするためのリモートプロシージャコール(RPC)を送信することから始めることができる。上で
図4のブロック402に関して説明したように、RPCは、ページがそこに提示されるアプリケーションの識別子、ページに関連するURL、および/または他の任意の適切な情報など、任意の適切な情報を含むことができる。いくつかの実施形態では、ページは、ウェブページ、ビデオなどのメディアコンテンツアイテムを視聴するためのページ、ソーシャルネットワーキングサービスに関連するページ、および/または他の任意の適切なタイプのページなど、任意の適切なタイプのページとすることができる。
【0052】
504において、プロセス500が、サーバから、ページに対応するコンテンツ、およびページ内に含まれるリンクのマッピングを含む、RPCに対する応答を受信することができる。ページに対応するコンテンツは、ビデオコンテンツ、画像、アイコン、アニメーション、グラフィック、テキスト、オーディオコンテンツ、および/または他の任意の適切なタイプのコンテンツなど、任意の適切なタイプのコンテンツを含むことができる。いくつかの実施形態では、ページに対応するコンテンツは、HTML形式および/または他の任意の適切な形式でなど、任意の適切な形式で受信することができる。いくつかの実施形態では、リンクのマッピングは、ページ内に含まれるリンクについての任意の適切な情報を含むことができる。例えば、上で
図4に関して説明したように、情報は、リンクに関連するURL、およびURLに関連する対応するエンドポイントまたはページタイプを示すことができる。より特定の例として、リンクが、特定のビデオを視聴するためのページへのものである場合、URLは、「www.video.com/video1」であり得、URLに関連するエンドポイントまたはページタイプは、「ビデオ鑑賞ページ」であり得る。この例を続けると、ビデオ鑑賞ページエンドポイントは、ビデオがそこに提示されるビデオプレーヤウィンドウ、ビデオについての情報を提示するためのセクション、コメントセクション、ビデオの提供業者に関連するロゴ、および/または他の任意の適切なセクションもしくは要素など、このタイプのページに関連する特定のセクションまたはユーザインターフェース要素を示すことができる。別のより特定の例として、リンクが、提示されたページ上のコンテンツについての追加情報を提示するページへのものである場合、URLは、「www.video.com/videoinfo」であり得、URLに関連するエンドポイントまたはページタイプは、「ビデオ情報ページ」であり得る。この例を続けると、ビデオ情報ページエンドポイントは、ビデオに関連する画像を提示するためのセクション、ビデオについての情報に関連するテキストを提示するためのセクション、ビデオについて他の視聴者とディスカッションするためのセクション、および/または他の任意の適切なセクションもしくは要素など、このタイプのページに関連する特定のセ
クションまたはユーザインターフェース要素を示すことができる。いくつかの実施形態では、URLおよび対応するエンドポイントは、キー-値ペアなど、任意の適切な形式で格納することができる。
【0053】
いくつかの実施形態では、リンクは、ページがそこに提示されているアプリケーションに関連するリンクに対応することができる、ということに留意されたい。例えば、アプリケーションが、ビデオ共有サービスに関連し、リンクが、ビデオ共有サービスによってホストされるビデオに対応する場合、エンドポイントは、ビデオ共有サービスに関連するビデオ鑑賞ページを示すことができ、ビデオ共有サービスに関連するロゴ、ビデオ共有サービスに特有の視覚的外観をもつビデオプレーヤウィンドウ、および/または他の任意の適切なセクションもしくは要素などの、セクションまたは要素を含むことができる。それに加えてまたはその代わりに、いくつかの実施形態では、リンクは、アプリケーションに関連しないページ、例えば別のエンティティに関連するウェブページまたは記事に対応することもできる。いくつかのそのような実施形態では、URLは、ウェブページまたは記事のロケーションを示すことができ、エンドポイントまたはページタイプは、ウェブページまたは記事が、アプリケーション内にレンダリングされたブラウザウィンドウ(例えばWebViewまたは他の任意の適切なブラウザウィンドウ)内に提示される、ということを示すことができる。
【0054】
いくつかの実施形態では、ユーザデバイスは、受信したコンテンツ、およびリンクのマッピングを、任意の適切なロケーションに格納することができる。例えば、いくつかの実施形態では、ユーザデバイスは、受信したコンテンツ、およびリンクのマッピングを、ユーザデバイスのローカルメモリ(例えば
図3に示し、上で
図3に関して説明したメモリ304)内に格納することができる。
【0055】
506において、プロセス500が、ユーザデバイス上へのページの提示を初期化することができる。例えば、いくつかの実施形態では、プロセス500は、ページに対応するコンテンツをユーザデバイスのローカルメモリ(例えば
図3に示し、上で
図3に関して説明したメモリ304)から取得することができる。
【0056】
508において、プロセス500が、任意の適切なイベントハンドリング機能を、提示しようとするページに関連するHTMLコンテンツに挿入することができる。例えば、いくつかの実施形態では、プロセス500は、ページ内のリンクに対応する、リンクの選択されたものの受領に応答して取られるべき1つまたは複数のアクションを指定するイベントハンドラを挿入することができる。より特定の例として、いくつかの実施形態では、イベントハンドラは、対応するリンクが選択されたときに呼び出される機能を示すことのできる、「onclick」JavaScript(登録商標)イベントハンドラに対応することができる。具体的な例として、リンクに対応するHTMLタグが「<a href="www.video.com/video1">LINK</a>」である場合、プロセス500は、そのリンクが選択されたときにある機能が呼び出されるということを示すイベントハンドラを挿入することができる。この例を続けると、プロセス500は、このHTMLタグを「<a href=www.video.com/video1 onClick="exampleFunction()">LINK</a>」になるように修正することができる。上で説明した例は、JavaScript(登録商標)イベントハンドラを含んでいるが、いくつかの実施形態では、任意の適切な言語に対応するイベントハンドラを使用することができる、ということに留意されたい。加えて、いくつかの実施形態では、イベントハンドリング機能は、ユーザデバイスによって(例えばサーバからHTMLコンテンツを受信した後で)、またはサーバによって(例えばHTMLコンテンツをユーザデバイスに送信する前に)、挿入することができる。
【0057】
プロセス500は次いで、ユーザデバイス上にページを提示させることができる。いくつかの実施形態では、ページは、ユーザデバイス上で実行されるアプリケーション内に提示することができる。加えて、いくつかの実施形態では、ページは、アプリケーション内のWebView内に提示することができる。
【0058】
510において、プロセス500が、ユーザデバイスからリンクの選択されたものを受領することができる。例えば、いくつかの実施形態では、プロセス500は、ユーザデバイスのユーザが、ユーザデバイス上に提示されたページ内に含まれるリンクをタップし、クリックし、またはその他の方法で選択したとの通知を受領することができる。
【0059】
512において、プロセス500が、選択されたリンクに対応するイベントハンドラを使用して、リンクに対応するエンドポイントを特定することができる。例えば、いくつかの実施形態では、イベントハンドラは、ブロック504において受信したマッピング内に示される、選択されたリンクのURLに対応するエンドポイントまたはページタイプを、呼び出されたときに特定するという機能を示すことができる。いくつかの実施形態では、イベントハンドラに関連する機能が、例えばモバイルデバイス上で実行されるアプリケーションに関連する第2の機能を呼び出すことができ、この第2の機能(例えばアプリケーションハンドラ)が次いで、マッピングに基づいてエンドポイントまたはページタイプを特定することができる、ということに留意されたい。それに加えてまたはその代わりに、いくつかの実施形態では、アプリケーションハンドラは、モバイルデバイス上で実行されるアプリケーション内にウェブブラウザインターフェースを提示するWebViewアプリケーションに関連付けられてもよい。
【0060】
514において、プロセス500が、ブロック512において特定されたエンドポイントに基づいて、選択されたリンクに関連するページまたはコンテンツをプレロードし始めることができる。例えば、選択されたリンクが、提示されるビデオを示し、エンドポイントが、ビデオがビデオ鑑賞ページ内に提示される、ということを示す場合、プロセス500は、ビデオ鑑賞ページに対応するセクションまたは要素をロードし始めることができる。より特定の例として、ビデオ鑑賞ページに対応するロードされたセクションまたは要素は、ビデオがそこに提示されるビデオプレーヤウィンドウ、ビデオについての情報を提示するためのユーザインターフェースのセクション、ビデオの提供業者に関連するロゴ、ビデオに関連するコメントセクション、および/または他の任意の適切な要素など、特定のビデオに関係なくページ上に存在する一般的な要素とすることができる。いくつかの実施形態では、これらの要素は、ユーザデバイスのローカルメモリ(例えばメモリ304)からロードすることができる。
【0061】
プロセス500が、516において、サーバに、選択されたリンクに関連するコンテンツを求める要求を送信することができる。いくつかの実施形態では、要求は、選択されたリンクに対応するURLの通知を含むことができる。いくつかの実施形態では、プロセス500は、サーバからの応答を待つ間に、上でブロック514に関して説明したようにページをプレロードし続けられる、ということに留意されたい。
【0062】
518において、プロセス500が、要求したコンテンツをサーバから受信することができ、選択されたリンクに関連するコンテンツを提示することができる。上で
図1Aに関して説明したように、コンテンツは、任意の適切な様式で提示することができる。例えば、
図1Aに示すように、コンテンツは、リンクがそこから選択された、モバイルデバイス上で実行されるアプリケーション内に提示することができる。いくつかの実施形態では、コンテンツは、アプリケーション内にレンダリングされたウェブブラウザ内に提示することができる。例えば、選択されたリンクが、ウェブコンテンツ(例えばウェブページ、オンライン記事、および/または他の任意の適切なタイプのコンテンツ)に対応する場合、コンテンツは、ユーザデバイス上のアプリケーション内のWebView内に提示することができる。
【0063】
いくつかの実施形態では、
図4および
図5のプロセスの上で説明したブロックのうちの少なくとも一部を、それらの図に示し、それらの図に関して説明した順序および順番に限定されない、任意の順序または順番で実行または実施することができる。また、
図4および
図5の上記のブロックの一部を、レーテンシおよび処理時間を低減させるために、必要に応じて実質的に同時に、または並列に、実行または実施することができる。それに加えてまたはその代わりに、
図4および
図5のプロセスの上で説明したブロックの一部を省略することもできる。
【0064】
いくつかの実施形態では、任意の適切なコンピュータ可読媒体を使用して、本明細書における機能および/またはプロセスを実施するための命令を格納することができる。例えば、いくつかの実施形態では、コンピュータ可読媒体は、一時的または非一時的とすることができる。例えば、非一時的なコンピュータ可読媒体としては、(ハードディスク、フロッピーディスク、および/もしくは他の任意の適切な磁気媒体などの)非一時的な形態の磁気媒体、(コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、および/もしくは他の任意の適切な光学媒体などの)非一時的な形態の光学媒体、(フラッシュメモリ、電気的プログラマブル読出し専用メモリ(EPROM)、電気的消去可能プログラマブル読出し専用メモリ(EEPROM)、および/もしくは他の任意の適切な半導体媒体などの)非一時的な形態の半導体媒体、瞬間的ではなくかつ伝送中に任意の外見上の永続性を欠かない、任意の適切な媒体、ならびに/または任意の適切な有形の媒体などの媒体があり得る。別の例として、一時的なコンピュータ可読媒体としては、ネットワーク上の信号、ワイヤ内の信号、導体内の信号、光ファイバ内の信号、回路内の信号、瞬間的でありかつ伝送中に任意の外見上の永続性を欠く、任意の適切な媒体内の信号、および/または任意の適切な無形の媒体内の信号があり得る。
【0065】
本明細書において説明したシステムが、ユーザについての個人情報を収集するか、または個人情報を使用する場合、ユーザには、プログラムまたは機能がユーザ情報(例えばユーザのソーシャルネットワーク、社会的行為もしくは社会的活動、職業、ユーザの嗜好、またはユーザの現在位置についての情報)を収集するかどうかを制御する機会が与えられてよい。加えて、ある特定のデータが、格納または使用される前に、個人情報が取り除かれるように1つまたは複数の方途で処理されてよい。例えば、ユーザの識別情報は、ユーザにとってどんな個人情報も特定することができないように処理されてよく、または位置情報が得られる場合において、ユーザの地理的位置は、ユーザの特定の位置を特定することができないように(市、郵便番号、または州レベルなどに)一般化されてよい。したがって、ユーザは、コンテンツサーバによってユーザについてどのように情報が収集され、使用されるかについて、制御することができてよい。
【0066】
したがって、リンクに関連するコンテンツを取得するための方法、システム、および媒体が提供される。
【0067】
以上、本発明については、説明のための前述の実施形態の中で説明し図示してきたが、本開示は例として行われたにすぎないこと、また添付の特許請求の範囲によってのみ限定される本発明の趣旨および範囲から逸脱することなく、本発明の実装の詳細の多数の変更を行うことができることが、理解されよう。開示した実施形態の特徴は、さまざまに組み合わせ、再編成することが可能である。