(57)【特許請求の範囲】
【請求項１】
１つまたは複数のコンピューティング・デバイスを用いて、コンテンツ要求をユーザのクライアント・デバイスから受信するステップと、
前記１つまたは複数のコンピューティング・デバイスを用いて、前記クライアント・デバイス上の第一ネットワーク品質状態および前記ユーザに関連付けられたデータプラン可用性のレベルを決定するステップと、
前記１つまたは複数のコンピューティング・デバイスを用いて、前記ユーザに対して表示するための前記コンテンツをフィルタするためのユーザのアイテムに関与した以前のレベルを含む１つまたは複数のフィルタリング因子を決定するステップと、
前記１つまたは複数のコンピューティング・デバイスを用いて、前記ユーザの前記アイテムに関与した以前のレベル、前記第一ネットワーク品質状態、および前記データプラン可用性に基づいて前記コンテンツをフィルタするステップと、
全ての前記アイテムが処理された場合、第二ネットワーク品質状態を決定するステップと、
前記第一ネットワーク品質状態と前記第二ネットワーク品質状態との差に応じて、前記差に基づいて前記フィルタされたコンテンツを修正するステップと、
前記１つまたは複数のコンピューティング・デバイスを用いて、前記ユーザの前記クライアント・デバイスで表示するための修正されたコンテンツを提供するステップと、
を含む、コンピュータ実行型の方法。
【請求項２】
前記１つまたは複数のコンピューティング・デバイスを用いて、通知を前記ユーザの前記クライアント・デバイスに送信するステップであって、前記通知は、前記第一ネットワーク品質状態および前記データプラン可用性のうち１つまたは複数を前記ユーザに通知し前記コンテンツをフィルタするかどうかを前記ユーザに問い合わせる、ステップと、
前記ユーザの前記クライアント・デバイスから、前記１つまたは複数のコンピューティング・デバイスを用いて、前記コンテンツをフィルタするためのユーザの承認を受信するステップと、
前記コンテンツをフィルタするための前記ユーザの承認を受信したことに応答して、前記１つまたは複数のコンピューティング・デバイスを用いて、前記コンテンツをフィルタするステップと、
をさらに含む、請求項１に記載のコンピュータ実行型の方法。
【請求項３】
前記コンテンツは１組のアイテムを含み、前記１つまたは複数のフィルタリング因子、前記第一ネットワーク品質状態および前記データプラン可用性に基づいて前記コンテンツをフィルタするステップは、
前記１つまたは複数のコンピューティング・デバイスを用いて、前記１つまたは複数のフィルタリング因子に基づいて各アイテムの関連性を決定するステップと、
前記１つまたは複数のコンピューティング・デバイスを用いて、前記アイテムの前記関連性および前記第一ネットワーク品質状態および前記データプラン可用性のうち１つまたは複数に基づいて前記アイテムに対する包含スコアを割り当てるステップと、
前記１つまたは複数のコンピューティング・デバイスを用いて、前記アイテムに対する前記包含スコアが特定の閾値より小さいと判定したことに応答して前記アイテムを前記コンテンツから除去することによって前記コンテンツをフィルタするステップ
を含む、請求項１に記載のコンピュータ実行型の方法。
【請求項４】
前記１つまたは複数のフィルタリング因子は、ユーザ関心、ユーザコンテンツ品質嗜好、ユーザの現在の位置またはコンテンツ・アクセスの環境、前記コンテンツが関連する他のユーザへのユーザの親和性、前記コンテンツのタイプとサイズ、特定の時刻での前記コンテンツに関連する１つまたは複数のイベントを示すユーザのカレンダ、およびデータプランのユーザの通常の利用を含む、請求項１に記載のコンピュータ実行型の方法。
【請求項５】
前記１つまたは複数のコンピューティング・デバイスを用いて、前記第一ネットワーク品質状態を貧弱として決定するステップと、
前記１つまたは複数のコンピューティング・デバイスを用いて、前記ユーザに前記貧弱なネットワーク可用性を通知し、前記第一ネットワーク品質状態に基づいて前記コンテンツをフィルタするかどうかのオプションを前記ユーザに提供するステップと、
前記１つまたは複数のコンピューティング・デバイスを用いて、前記コンテンツをフィルタする前記オプションに対するユーザの承認を受信するステップと、
前記１つまたは複数のコンピューティング・デバイスを用いて、高品質のマルチメディア・アイテムを前記コンテンツから排除しテキストベースであり小型の画像を含む前記コンテンツ内のアイテムを優先することによって前記コンテンツをフィルタするステップと、
をさらに含む、請求項１に記載のコンピュータ実行型の方法。
【請求項６】
前記１つまたは複数のコンピューティング・デバイスを用いて、前記第一ネットワーク品質状態から第二ネットワーク品質状態に改善したと判定したことに応答して前記ユーザに表示するための前記コンテンツからフィルタ除去された前記高品質のマルチメディア・アイテムを自動的に提供するステップをさらに含む、請求項５に記載のコンピュータ実行型の方法。
【請求項７】
前記コンテンツをフィルタするステップは、１つまたは複数のアイテムを前記コンテンツから排除するステップおよび前記コンテンツの品質を劣化させるステップのうち１つまたは複数を含む、請求項１に記載のコンピュータ実行型の方法。
【請求項８】
前記コンテンツは、ソーシャル・ネットワーク投稿、ニュース記事、ビデオ、テキスト、オーディオ・クリップ、および画像のうち１つまたは複数を含む、請求項１に記載のコンピュータ実行型の方法。
【請求項９】
コンピュータ可読プログラムを含むコンピュータ使用可能記憶媒体であって、前記コンピュータ可読プログラムは、コンピュータで実行されたとき、前記コンピュータに、
コンテンツ要求をユーザのクライアント・デバイスから受信させ、
前記クライアント・デバイス上の第一ネットワーク品質状態および前記ユーザに関連付けられたデータプラン可用性のレベルを決定させ、
前記ユーザに対して表示する前記コンテンツをフィルタするためのユーザのアイテムに関与した以前のレベルを含む１つまたは複数のフィルタリング因子を決定させ、
前記ユーザの前記アイテムに関与した以前のレベル、前記第一ネットワーク品質状態、および前記データプラン可用性に基づいて前記コンテンツをフィルタさせ、
全ての前記アイテムが処理された場合、第二ネットワーク品質状態を決定し、
前記第一ネットワーク品質状態と前記第二ネットワーク品質状態との差に応じて、前記差に基づいて前記フィルタされたコンテンツを修正し、
前記ユーザの前記クライアント・デバイスで表示するための修正されたコンテンツを提供させる、
コンピュータ使用可能記憶媒体。
【請求項１０】
前記コンピュータ可読プログラムは、コンピュータで実行されたとき、前記コンピュータにまた、
通知を前記ユーザの前記クライアント・デバイスに送信させ、
前記ユーザの前記クライアント・デバイスから、前記コンテンツをフィルタするためのユーザの承認を受信させ、
前記コンテンツをフィルタするための前記ユーザの承認を受信したことに応答して前記コンテンツをフィルタさせ、
前記通知は、前記第一ネットワーク品質状態および前記データプラン可用性のうち１つまたは複数を前記ユーザに通知し前記コンテンツをフィルタするかどうかを前記ユーザに問い合わせる、
請求項９に記載のコンピュータ使用可能記憶媒体。
【請求項１１】
前記コンテンツは１組のアイテムを含み、前記１つまたは複数のフィルタリング因子、
前記第一ネットワーク品質状態、および前記データプラン可用性に基づいて前記コンテンツをフィルタすることは、
前記１つまたは複数のフィルタリング因子に基づいて各アイテムの関連性を決定するステップと、
前記アイテムの前記関連性および前記第一ネットワーク品質状態および前記データプラン可用性のうち１つまたは複数に基づいて前記アイテムに対する包含スコアを割り当てるステップと、
前記アイテムに対する前記包含スコアが特定の閾値より小さいと判定したことに応答して前記アイテムを前記コンテンツから除去することによって、前記コンテンツをフィルタするステップと、
を含む、請求項９に記載のコンピュータ使用可能記憶媒体。
【請求項１２】
前記１つまたは複数のフィルタリング因子は、ユーザ関心、ユーザコンテンツ品質嗜好、ユーザの現在の位置またはコンテンツ・アクセスの環境、前記コンテンツが関連する他のユーザへのユーザの親和性、前記コンテンツのタイプとサイズ、特定の時刻での前記コンテンツに関連する１つまたは複数のイベントを示すユーザのカレンダ、およびデータプランのユーザの通常の利用を含む、請求項９に記載のコンピュータ使用可能記憶媒体。
【請求項１３】
前記コンピュータ可読プログラムは、コンピュータで実行されたとき、前記コンピュータにまた、
前記第一ネットワーク品質状態を貧弱として決定し、
前記ユーザに前記貧弱な第一ネットワーク品質状態を通知し、前記貧弱な第一ネットワーク品質状態に基づいて前記コンテンツをフィルタするかどうかのオプションを前記ユーザに提供し、
前記コンテンツをフィルタする前記オプションに対するユーザの承認を受信し、
高品質のマルチメディア・アイテムを前記コンテンツから排除しテキストベースであり小型の画像を含む前記コンテンツ内のアイテムを優先することによって前記コンテンツをフィルタさせる、
請求項９に記載のコンピュータ使用可能記憶媒体。
【請求項１４】
前記コンピュータ可読プログラムは、コンピュータで実行されたとき、前記コンピュータにまた、
前記第一ネットワーク品質状態から第二ネットワーク品質状態に改善したと判定したことに応答して前記ユーザに表示するための前記コンテンツからフィルタ除去された前記高品質のマルチメディア・アイテムを自動的に提供させる
請求項１３に記載のコンピュータ使用可能記憶媒体。
【請求項１５】
前記コンテンツをフィルタすることは、１つまたは複数のアイテムを前記コンテンツから排除するステップおよび前記コンテンツの品質を劣化させるステップのうち１つまたは複数を含む、請求項９に記載のコンピュータ使用可能記憶媒体。
【請求項１６】
前記コンテンツは、ソーシャル・ネットワーク投稿、ニュース記事、ビデオ、テキスト、オーディオ・クリップ、および画像のうち１つまたは複数を含む、請求項９に記載のコンピュータ使用可能記憶媒体。
【請求項１７】
システムであって、
プロセッサと、
実行されたとき、前記システムに、
コンテンツ要求をユーザのクライアント・デバイスから受信させ、
前記クライアント・デバイス上の第一ネットワーク品質状態および前記ユーザに関連付けられたデータプラン可用性のレベルを決定させ、
前記ユーザに対して表示する前記コンテンツをフィルタするためのユーザのアイテムに関与した以前のレベルを含む１つまたは複数のフィルタリング因子を決定させ、
前記ユーザの前記アイテムに関与した以前のレベル、前記第一ネットワーク品質状態、および前記データプラン可用性に基づいて前記コンテンツをフィルタさせ、
全ての前記アイテムが処理された場合、第二ネットワーク品質状態を決定し、
前記第一ネットワーク品質状態と前記第二ネットワーク品質状態との差に応じて、前記差に基づいて前記フィルタされたコンテンツを修正し、
前記ユーザの前記クライアント・デバイスで表示するための修正されたコンテンツを提供させる
命令を格納したメモリと、
を備える、システム。
【請求項１８】
前記命令は、実行されたとき前記システムにまた、
通知を前記ユーザの前記クライアント・デバイスに送信させ、
前記ユーザの前記クライアント・デバイスから、前記コンテンツをフィルタするためのユーザの承認を受信させ、
前記コンテンツをフィルタするための前記ユーザの承認を受信したことに応答して前記コンテンツをフィルタさせ、
前記通知は、前記第一ネットワーク品質状態および前記データプラン可用性のうち１つまたは複数を前記ユーザに通知し前記コンテンツをフィルタするかどうかを前記ユーザに問い合わせる、
請求項１７に記載のシステム。
【請求項１９】
前記コンテンツは１組のアイテムを含み、前記１つまたは複数のフィルタリング因子、
前記第一ネットワーク品質状態、および前記データプラン可用性に基づいて前記コンテンツをフィルタすることは、
前記１つまたは複数のフィルタリング因子に基づいて各アイテムの関連性を決定するステップと、
前記アイテムの前記関連性および前記第一ネットワーク品質状態および前記データプラン可用性のうち１つまたは複数に基づいて前記アイテムに対する包含スコアを割り当てるステップと、
前記アイテムに対する前記包含スコアが特定の閾値より小さいと判定したことに応答して前記アイテムを前記コンテンツから除去することによって、前記コンテンツをフィルタするステップと、
を含む、請求項１７に記載のシステム。
【請求項２０】
前記１つまたは複数のフィルタリング因子は、ユーザ関心、ユーザコンテンツ品質嗜好、ユーザの現在の位置またはコンテンツ・アクセスの環境、前記コンテンツが関連する他のユーザへのユーザの親和性、前記コンテンツのタイプとサイズ、特定の時刻での前記コンテンツに関連する１つまたは複数のイベントを示すユーザのカレンダ、およびデータプランのユーザの通常の利用を含む、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ユーザ・モバイルネットワークおよびデータプランに基づいてコンテンツをフィルタすることに関する。具体的には、本開示は、当該ユーザのモバイルデバイスが動作しているネットワークの品質および当該ユーザに残されているデータプランの量に基づいてユーザに表示するためにコンテンツをフィルタすることに関する。
【背景技術】
【０００２】
ユーザがモバイルアプリケーション（例えば、ソーシャル・ネットワークアプリケーション）を使用していて貧弱なネットワーク接続（例えば、１バーエッジネットワーク）上にある場合、当該ユーザのエクスペリエンスは、当該ユーザにより要求されたコンテンツが低品質で提供されるかまたは興味深いデータでない場合に、非常にストレスの溜まるものでありうる。貧弱なネットワーク接続に関連付けられた問題の一部は、１）最初にロードすべき通常数のソーシャル投稿を取り出すのに時間がかかること、２）一旦当該投稿がロードされると、当該コンテンツは興味がないかもしれず、結果として、当該ユーザは当該ロードを待つ時間を無駄にすること、３）当該コンテンツが興味あるものであるかまたは大量のメディア・アイテム（例えば、写真、ビデオ等）を含む場合であっても、当該ユーザは、自分の貧弱なネットワーク接続のため当該メディア・アイテムをダウンロードするのはストレスが溜まるものであるかまたは不可能であるとわかり、再度当該ユーザの時間を無駄にするかもしれないことである。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
現在、ユーザが、当該ユーザのデータプランを使用するときに満たさなければならないコンテンツ品質または特性のどのレベルに対して嗜好を設定するか、または、表示するためにコンテンツを当該ユーザに送信し戻す前にコンテンツ提供サーバに自動的にそれを考慮させる方法はない。換言すれば、当該ユーザは、「データおよび／またはネットワーク帯域幅が厳しいので、最良のコンテンツだけほしい」ことをアプリケーションに伝えることはできない。現在、ユーザのネットワーク帯域幅可用性、ユーザのデータプランに残されたデータの量、および当該コンテンツの品質の組合せを考慮して、ユーザに対する高い関連性のコンテンツのみを貧弱なネットワーク接続および／または低データプラン可用性の時点で描画し、当該ネットワークおよびデータプランの制約が存在しない別の時点のために残りを待ち行列に入れるべきかどうかを判定するソリューションは無い。
【課題を解決するための手段】
【０００４】
本開示における主題の１つの進歩的な態様によれば、システムが、プロセッサと、実行されたとき、当該システムに、コンテンツ要求をユーザのクライアント・デバイスから受信させ、当該クライアント・デバイス上のネットワーク可用性のレベルおよびユーザに関連付けられたデータプラン可用性を決定させ、ユーザに対して表示するコンテンツをフィルタするための１つまたは複数のコンテンツ・フィルタリング因子を決定させ、当該１つまたは複数のフィルタリング因子、当該ネットワーク可用性のレベル、および当該データプラン可用性に基づいて当該コンテンツをフィルタさせ、ユーザの当該クライアント・デバイスで表示するためのフィルタされたコンテンツを提供させる命令を格納したメモリとを備える。
【０００５】
一般に、本開示で説明する主題の別の進歩的な態様を、１つまたは複数のコンピューティング・デバイスを用いて、コンテンツ要求をユーザのクライアント・デバイスから受信するステップと、当該１つまたは複数のコンピューティング・デバイスを用いて、当該クライアント・デバイス上のネットワーク可用性のレベルおよびユーザに関連付けられたデータプラン可用性を決定するステップと、当該１つまたは複数のコンピューティング・デバイスを用いて、ユーザに対して表示するコンテンツをフィルタするための１つまたは複数のコンテンツ・フィルタリング因子を決定するステップと、当該１つまたは複数のコンピューティング・デバイスを用いて、当該１つまたは複数のフィルタリング因子、当該ネットワーク可用性のレベル、および当該データプラン可用性に基づいて当該コンテンツをフィルタするステップと、当該１つまたは複数のコンピューティング・デバイスを用いて、ユーザの当該クライアント・デバイスで表示するためのフィルタされたコンテンツを提供するステップを含む方法で実装してもよい。
【０００６】
これらの態様のうち１つまたは複数の他の実装は、コンピュータ記憶デバイスで符号化された、当該方法の動作を実施するように構成された対応するシステム、装置、およびコンピュータプログラムを含む。
【０００７】
これらのおよび他の実装はそれぞれ、場合によっては以下の特徴のうち１つまたは複数を含んでもよい。
【０００８】
例えば、当該動作はさらに、当該１つまたは複数のコンピューティング・デバイスを用いて、通知をユーザの当該クライアント・デバイスに送信するステップであって、当該通知は、当該ネットワーク可用性のレベルおよび当該データプラン可用性のうち１つまたは複数をユーザに通知し当該コンテンツをフィルタするかどうかをユーザに問い合わせる、ステップを含む。当該動作はさらに、ユーザの当該クライアント・デバイスから、当該１つまたは複数のコンピューティング・デバイスを用いて、当該コンテンツをフィルタするためのユーザの承認を受信するステップと、当該コンテンツをフィルタするためのユーザの承認を受信したことに応答して、当該１つまたは複数のコンピューティング・デバイスを用いて、当該コンテンツをフィルタするステップを含む。当該コンテンツは１組のアイテムを含み、当該１つまたは複数のフィルタリング因子、当該ネットワーク可用性のレベル、および当該データプラン可用性に基づいてコンテンツをフィルタするステップは、当該１つまたは複数のコンピューティング・デバイスを用いて、当該１つまたは複数のフィルタリング因子に基づいて各アイテムの関連性を決定するステップと、当該１つまたは複数のコンピューティング・デバイスを用いて、当該アイテムの関連性および当該ネットワーク可用性のレベルおよび当該データプラン可用性のうち１つまたは複数に基づいて当該アイテムに対する包含スコアを割り当てるステップと、当該１つまたは複数のコンピューティング・デバイスを用いて、当該アイテムに対する包含スコアが特定の閾値より小さいと判定したことに応答して当該アイテムを当該コンテンツから除去することによって当該コンテンツをフィルタするステップとを含む。当該動作はさらに、当該１つまたは複数のコンピューティング・デバイスを用いて、当該ネットワーク可用性のレベルを貧弱として決定するステップと、当該１つまたは複数のコンピューティング・デバイスを用いて、ユーザに当該貧弱なネットワーク可用性を通知し、当該貧弱なネットワーク可用性に基づいて当該コンテンツをフィルタするかどうかのオプションをユーザに提供するステップとを含む。当該動作はさらに、当該１つまたは複数のコンピューティング・デバイスを用いて、当該コンテンツをフィルタする当該オプションに対するユーザの承認を受信するステップと、当該１つまたは複数のコンピューティング・デバイスを用いて、高品質のマルチメディア・アイテムを当該コンテンツから排除しテキストベースであり小型の画像を含む当該コンテンツ内のアイテムを優先することによって当該コンテンツをフィルタするステップと、当該１つまたは複数のコンピューティング・デバイスを用いて、当該ネットワーク可用性のレベルが改善したと判定したことに応答してユーザに表示するための当該コンテンツからフィルタ除去された当該高品質のマルチメディア・アイテムを自動的に提供するステップとを含み、当該コンテンツをフィルタするステップは、１つまたは複数のアイテムを当該コンテンツから排除するステップおよび当該コンテンツの品質を劣化させるステップのうち１つまたは複数を含む。
【０００９】
例えば、当該特徴は、当該１つまたは複数のフィルタリング因子はユーザ関心、ユーザコンテンツ品質嗜好、ユーザの現在の位置またはコンテンツ・アクセスの環境、当該コンテンツが関連する他のユーザへのユーザの親和性、当該コンテンツのタイプとサイズ、ユーザの当該コンテンツに従事した以前のレベル、特定の時刻での当該コンテンツに関連する１つまたは複数のイベントを示すユーザのカレンダ、およびデータプランのユーザの通常の利用を含むことと、当該コンテンツは、ソーシャル・ネットワーク投稿、ニュース記事、ビデオ、テキスト、オーディオ・クリップ、および画像のうち１つまたは複数を含むことと、を含んでもよい。
【００１０】
これらの実装は幾つかの観点で特に有利である。例えば、本明細書で説明した技術は、ユーザがそれらの制限されたデータプランを、より高品質ののコンテンツとユーザが消費するのが容易なコンテンツとに対して使用できるようにする。これは、データプラン利用を超えることを恐れて重要なコンテンツを逃すか、または、これらのユーザにとってあまりまたは全く関心がないコンテンツに対してユーザの時間とデータプランを無駄にする必要がないので、有利である。当該技術はさらに、ユーザが、貧弱なネットワークまたは最小データプラン可用性のときにどのコンテンツをフィルタまたは描画すべきかに関する嗜好（例えば、重み、設定等）を設定できるようにする。また、貧弱なネットワークまたは最小データプラン可用性がある状況の間に、当該技術は、品質は高くないかもしれないとユーザに通知する通知をユーザに提供し、大量のより多くのデータを無駄にする前に、環境条件（例えば、ネットワーク品質、データプラン可用性）が良好になったとき、ユーザに高品質のコンテンツを見るためのオプションを与える。
【００１１】
本開示で使用される言葉は、主に可読性および示唆的な目的のために選択されたものであり、主題本明細書で開示した主題の範囲を限定されないことは理解されるべきである。
【００１２】
本明細書を、限定ではなく例として、同様な参照番号が同様な要素を参照するために使用される添付図面の図において説明する。
【図面の簡単な説明】
【００１３】
【図１】ネットワークおよびデータプラン可用性に基づいてコンテンツをフィルタするための例示的な方法の流れ図である。
【図２Ａ】ネットワークおよびデータプラン可用性に基づいてコンテンツをフィルタするための別の例示的な方法のブロック図である。
【図２Ｂ】ネットワークおよびデータプラン可用性に基づいてコンテンツをフィルタするための別の例示的な方法のブロック図である。
【図２Ｃ】ネットワークおよびデータプラン可用性に基づいてコンテンツをフィルタするための別の例示的な方法のブロック図である。
【図３Ａ】ユーザに貧弱なネットワーク品質を通知し、コンテンツをフィルタするかまたは当該コンテンツを待機しロードするオプションをユーザに提供するための例示的な方法のブロック図である。
【図３Ｂ】ユーザに貧弱なネットワーク品質を通知し、コンテンツをフィルタするかまたは当該コンテンツを待機しロードするオプションをユーザに提供するための例示的な方法のブロック図である。
【図４】ネットワークおよびデータプラン可用性に基づいてコンテンツをフィルタするための例示的なシステムを示すブロック図である。
【図５】例示的なコンピューティング・デバイスを示すブロック図である。
【図６】本開示で格納された使用される様々な種類のデータを示す図である。
【発明を実施するための形態】
【００１４】
本開示は、ネットワークのレベルおよびデータプラン可用性に基づいてユーザに表示するためのコンテンツをフィルタするための技術を説明する。特に、本明細書で説明した技術は、１）ユーザが動作しているネットワークの品質（例えば、１バーのエッジネットワーク対高品質のＷｉ−Ｆｉ）、２）現在の支払いサイクルに対して残されたデータプランの量（例えば、過剰となる前に１０ＭＢが残され、現在のサイクルに対して１日残されていること、対、過剰になる前に１０ＭＢ残され、現在のサイクルに対して１０日残されていること）、３）ユーザの通常のデータプラン利用（例えば、ユーザが一般に１日あたり１０ＭＢ使用すること、対、ユーザが一般に１週間あたり１０ＭＢ使用すること）、４）コンテンツ内のアイテムのタイプ（例えば、短いテキスト投稿、長いテキスト投稿、ビデオのみを有する投稿、ビデオおよび幾つかの有意なテキストを有する投稿等）、５）ユーザの関心、位置、および／または環境に基づくコンテンツの品質、６）ソーシャルグラフ内の異なるノードまたはユーザに対するユーザのソーシャルグラフおよび親和性に基づくコンテンツの品質、および７）時間敏感性またはカレンダ適用可能性（例えば、特定の時点で誰かが知るのに有用なコンテンツ）のうち１つまたは複数の組合せに基づいて当該コンテンツをフィルタする。当該技術は、本明細書で列挙されたこれらの因子または基準のみに基づいてコンテンツをフィルタすることに限定されず、コンテンツをフィルタするための多数の他の因子も可能であり考慮されることは理解されるべきである。
【００１５】
図１は、ネットワークおよびデータプラン可用性に基づいてコンテンツをフィルタするための例示的な方法の流れ図１００である。方法１００は、コンテンツ要求をユーザのクライアント・デバイスから受信する１０２ことで開始する。例えば、ユーザ・インタフェース・モジュール４１０は、当該要求を受信し、それをコンテンツ・フィルタリング・エンジン４３６に、その要求をそこで処理するために送信してもよい。方法１００は次いで、当該クライアント・デバイス上のネットワーク可用性のレベルおよびユーザに関連付けられたデータプラン可用性を決定してもよい１０４。例えば、コンテンツ・フィルタリング・エンジン４３６のネットワーク品質データプランモジュール５０４は、クライアント・アプリケーション４０８のネットワーク品質データプラン分析器４１２と協調して、当該ネットワーク品質ステータス（例えば、ネットワーク品質が良好／貧弱であるかどうか）およびデータプラン利用統計値（例えば、ユーザに残されたデータプランの量、現在の課金サイクル期間が終了するまでに残された日数等）を決定してもよい。
【００１６】
方法１００は、当該クライアント・デバイスでユーザに対して表示するコンテンツをフィルタするための１つまたは複数のコンテンツ・フィルタリング因子を判定する１０６ことで継続する。当該１つまたは複数のフィルタリング因子は、限定ではなく例として、ユーザの平均データプラン利用、ユーザ関心およびユーザのソーシャルグラフ、当該コンテンツの時間敏感性、コンテンツに対する要求がそこから生成されたクライアント・デバイスの位置等に基づくコンテンツの品質を含んでもよい。幾つかの実装では、本明細書の別の場所で説明するように、当該１つまたは複数のフィルタリング因子の判定をコンテンツ関連性判定スコアリング・モジュール５０６により実施してもよい。
【００１７】
ネットワーク可用性のレベル、データプラン可用性、および１つまたは複数のフィルタリング因子が上述のように決定されると、方法１００は当該ネットワーク可用性のレベル、当該データプラン可用性、および当該１つまたは複数のフィルタリング因子に基づいてコンテンツをフィルタしてもよい１０８。例えば、フィルタリング・モジュール５０８は当該１つまたは複数のフィルタリング因子およびネットワークのレベルおよびデータプラン可用性に基づいて１つまたは複数のアイテムをコンテンツから排除することにより、当該コンテンツをフィルタしてもよい。ブロック１０８でコンテンツをフィルタしたことに応答して、方法１００はついで、ユーザのクライアント・デバイスで表示するためのフィルタされたコンテンツを提供してもよい１１０。例えば、フィルタリング・モジュール５０８はフィルタされたコンテンツをコンテンツ提供モジュール５１０に送信してもよい。当該モジュールは次いで、ユーザ・インタフェース・モジュール４１０と協調して、フィルタされたコンテンツをユーザのクライアント・デバイスに表示してもよい。
【００１８】
図２Ａ−２Ｃは、ネットワークおよびデータプラン可用性に基づいてコンテンツをフィルタするための別の例示的な方法２００のブロック図である。方法２００は、コンテンツ要求を、ユーザに関連付けられたクライアント・デバイスから受信することで開始する２０２。方法２００は、当該クライアント・デバイス上のネットワークの品質を決定してもよい２０４。例えば、ネットワーク品質データプラン分析器４１２、ネットワーク品質データプランモジュール５０４、および／またはその２つの組合せが、ブロック２０４における動作を実施してもよい。
【００１９】
ネットワークの品質を決定したことに応答して、方法２００は、ネットワークが貧弱な品質のネットワークであるかどうかをブロック２０６で判定してもよい。ブロック２０６における判定の結果がネガティブである場合、方法２００は、ユーザに残されているデータプランの量を判定し２０８、ブロック２１０で当該データプランが特定の閾値を超えて使用されているかどうかを判定することに進んでもよい。例えば、ユーザは５００ＭＢのデータプランを有してもよく、そのうち４００ＭＢが使用されており、当該データプラン可用性が５００ＭＢにリセットされるまでまだ１０日残っている。当該特定の閾値はこの例では４５０ＭＢであることができる。
【００２０】
ブロック２１０での判定の結果がネガティブである場合、方法２００は単純にブロック２３６（図２Ｃを参照）に進んで、ユーザのクライアント・デバイスに表示するための１つまたは複数のアイテムを含むコンテンツを提供してもよい。例えば、ネットワーク品質データプランモジュール５０４が、ネットワークのレベルおよびデータプラン可用性の何れも低くも貧弱でもないと判定した場合、コンテンツ提供モジュール５１０に信号送信して、要求されたコンテンツを取り出し、それを表示のためにユーザ・インタフェース・モジュール４１０に送信してもよい。
【００２１】
ブロック２０６に戻ると、ネットワーク品質データプランモジュール５０４が、ネットワーク品質が貧弱であると判定するかまたはブロック２１０で、データプラン利用が特定の閾値を超えて使用されていると判定した場合、方法２００はブロック２１２に進んで、当該ネットワーク品質および／またはユーザに残されているデータプランの量をユーザに通知し、コンテンツをそれに基づいてフィルタすべきかどうかをユーザに尋ねてもよい。次に、方法２００は、コンテンツ・フィルタリングへのユーザ応答を受信し２１４、ユーザ応答に基づいて、方法２００はブロック２１６で（図２Ｂを参照）当該コンテンツをフィルタするかどうかを判定してもよい。例えば、ネットワーク品質データプランモジュール５０４は、本明細書の別の場所で説明するように、コントローラ５０２を介してユーザ・インタフェース・モジュール４１０からユーザ応答を受信してもよい。ブロック２１６での判定の結果がネガティブである場合、方法２００は単純にブロック２３６に進んで（図２Ｃを参照）、ユーザのクライアント・デバイスに表示するための１つまたは複数のアイテムを含むコンテンツを提供してもよい。
【００２２】
他方、ブロック２１６での判定の結果がポジティブである場合、方法２００は、コンテンツ内の各アイテムの関連性を、１）ユーザの関心、２）ユーザの現在の位置またはコンテンツ・アクセスの環境、３）アイテムが関連する他の１つまたは複数のユーザに対するユーザの親和性、４）アイテムに特定の時刻で関連する１つまたは複数のイベントを表すユーザのカレンダ、５）アイテムのタイプおよびサイズ（例えば、短いまたは長いテキスト、ビデオ、画像、オーディオ等）、および６）アイテムとのユーザの過去の関わりレベルに基づいて判定してもよい２１８。アイテムの適切性を決定することはこれらの因子または基準に基づくことに限定されず、様々な他の因子も可能であり考慮されることは理解されるべきである。
【００２３】
次に、方法２００はユーザの通常のデータプラン利用を決定してもよい２２０。ブロック２２０は、ブロック２２０で実施される動作が任意であり、方法２００の動作の間の全ての時点で実施されなくてもよいことを示すために点線で示されている。方法２００はついで、ブロック２１８で判定されたアイテムの関連性と、（ブロック２０４で判定された）ネットワークの品質、（ブロック２０８で判定された）ユーザに残されているデータプランの量、および（ブロック２２０で判定された）ユーザの通常のデータプラン利用のうち１つまたは複数とに基づいて、コンテンツ内の各アイテムに対する包含スコアを計算してもよい２２２。幾つかの実装では、ブロック２１８乃至２２２における動作は本明細書の別の場所で説明するようにコンテンツ関連性判定スコアリング・モジュール５０６により実施される。
【００２４】
アイテムごとに包含スコアを計算したことに応答して、方法２００は、ブロック２２４で、当該アイテムに対するスコアが所定の閾値未満であるかどうかを判定してもよい。例えば、フィルタリング・モジュール５０８は、コンテンツ内の１つまたは複数のアイテムに関連付けられた包含スコアをコンテンツ関連性判定スコアリング・モジュール５０６から受信し、各アイテムに関連付けられた包含スコアを当該所定の閾値と比較してもよい。フィルタリング・モジュール５０８が、当該アイテムに対する包含スコアが当該閾値を上回ると判定した場合、方法２００は、ユーザに提供するために当該アイテムを当該コンテンツに保持し２２６、次いでブロック２３０（図２Ｃを参照）に進んで後続の動作を実施してもよい。他方、フィルタリング・モジュール５０８が、当該アイテムに対する包含スコアが当該所定の閾値を下回ると判定した場合、方法４００はブロック２２８（図２Ｃを参照）に進んでそのアイテムを当該コンテンツから除去してもよい。
【００２５】
次に、方法２００は、ブロック２３０で当該コンテンツ内のアイテムの全てが処理されたかどうかを判定してもよい。１つまたは複数のアイテムがフィルタリング・モジュール５０８によって処理されないと判定された場合、上述のように、方法２００はブロック２２２（図２Ｂを参照）に戻って、当該１つまたは複数のアイテムの各々に対する包含スコアを計算して、後続の動作を実施してもよい。他方、全てのアイテムがフィルタリング・モジュール５０８により処理されると判定された場合、方法２００は、ネットワークの品質が最後の品質チェックから改善されているかどうかを判定してもよい２３２。
【００２６】
ネットワーク品質がブロック２３４で改善されていると判定された場合、方法２００は上述のようにブロック２２２（図２Ｂを参照）に戻って、コンテンツ内の各アイテムに対する包含スコアを再度計算し、後続の動作を実施してもよい。ネットワーク品質チェックを再度実施するのは、当該ネットワーク品質または条件が改善したと判定された場合に、当該コンテンツに組み込まれた１つまたは複数の除外されたアイテムをユーザに提供できるので、有利である。他方、ブロック２３４での判定の結果がネガティブである場合、方法２００はブロック２３６に進んで、ユーザのクライアント・デバイス上で表示するための１つまたは複数のアイテムを含むコンテンツを提供してもよい。例えば、コンテンツ提供モジュール５１０は、コントローラ５０２を介して、当該コンテンツを要求したユーザのクライアント・デバイス上で描画または表示するための１つまたは複数のアイテムを含むコンテンツをユーザ・インタフェース・モジュール４１０に送信してもよい。
【００２７】
図３Ａおよび３Ｂは、ユーザに貧弱なネットワーク品質を通知し、コンテンツをフィルタするかまたは当該コンテンツを待機しロードするオプションをユーザに提供するための例示的な方法３００のブロック図である。方法３００は、コンテンツ要求をユーザのクライアント・デバイスから受信することで開始する３０２。方法３００は、当該クライアント・デバイスが動作しているネットワークの品質が貧弱であると判定してもよい３０４。例えば、コンテンツ・フィルタリング・エンジン４３６のネットワーク品質データプランモジュール５０４は、本明細書の別の場所で説明するように、クライアント・アプリケーション４０８のネットワーク品質データプラン分析器４１２と協調してこの動作を実施してもよい。
【００２８】
当該クライアント・デバイス上のネットワークの品質を貧弱と判定したことに応答して、方法３００は、ユーザに貧弱なネットワーク品質を通知し、コンテンツをフィルタして除外するかまたは当該コンテンツを待機してロードするかどうかを示すオプションをユーザに提供してもよい３０６。例えば、ネットワーク品質データプランモジュール５０４は、コントローラ５０２を介して、当該通知をユーザ・インタフェース・モジュール４１０に送信してもよく、ユーザ・インタフェース・モジュール４１０はついでそれをユーザのクライアント・デバイスに表示してもよい。方法３００はついで、ブロック３０６で提供されたオプションに対するユーザ応答を受信してもよい３０８。
【００２９】
ユーザ応答が受信されると、方法３００はブロック３１０で、ユーザ応答がコンテンツをフィルタして除外するかどうかを判定してもよい。当該判定の結果がネガティブである場合、方法３００はブロック３１２に進んで、ユーザ応答がコンテンツ全体を待機してロードするものであるかどうかを判定する。当該結果がネガティブである場合、方法３００は、ユーザ応答に基づいてユーザにより選択されたオプションを決定し続けてもよい。そうでない場合、方法３００は、コンテンツ内のアイテムの全てが現在のネットワーク帯域幅に基づいてロードされるまで特定の時間だけ待機し３１８、次いでユーザのクライアントに表示するために当該コンテンツを提供してもよい３２０。例えば、ユーザは、ユーザの親しい友達が投稿したユーザの好きなスポーツ・チームに関するソーシャル投稿を何等かの時間待機したいかもしれない。
【００３０】
ブロック３１０に戻ると、ユーザ応答がコンテンツをフィルタするものである場合、方法３００はブロック３１４に進んで、テキストベースのまたは小型の画像を有するコンテンツ内のアイテムを優先し、ネットワーク品質が良好になったときに後に提供するための高品質のマルチメディア・アイテムを除外することによって、当該コンテンツをフィルタしてもよい。例えば、コンテンツ関連性判定スコアリング・モジュール５０６は、コンテンツ内のアイテムがテキストまたは小型の画像のみを含み高品質またはマルチメディアのオブジェクト（例えば、ビデオ、オーディオ等）を含まない場合、当該コンテンツ内のアイテムにより高いスコアを割り当ててもよく、そのフィルタリング・プロセス中にフィルタリング・モジュール５０８は、コンテンツ関連性判定スコアリング・モジュール５０６によりより高いスコアを割り当てられた、コンテンツ提供に含めるためのアイテムにより高い優先度を与えてもよい。幾つかの実装では、方法３００は、ブロック３１４でのフィルタリング・プロセス中に、高品質のマルチメディア・アイテムを当該アイテムの品質が損なわれず依然としてユーザに高品質に見えるように、それらのサイズをより小型のサイズに劣化させることにより、含めることができてもよい。例えば、コンテンツ管理サーバ４３４は６ｍｂの高品質画像またはビデオを、その品質を劣化または損なうことなく５００ｋｂサイズに変換できてもよく、方法３００はブロック３１４でのそのフィルタリング・プロセス中に、その高品質の画像またはビデオをコンテンツまたは対応するコンテンツ投稿全体から除外してもよい。幾つかの他の実装では、方法３００が、当該ビデオのストリーミング品質が特定のネットワーク領域に対して貧弱であると判定した場合、方法３００は当該ビデオを当該コンテンツからフィルタして除外してもよい。さらなる幾つかの他の実装では、方法３００は、当該ビデオの全てを当該コンテンツからフィルタして除外するかまたは削除してもよく、テキストまたは小型の画像を含むだけでもよい。コンテンツをフィルタするための様々な他の方法も可能であり考慮される。
【００３１】
次に、フィルタリング・モジュール５０８によりコンテンツをフィルタしたことに応答して、方法３００は、ユーザのクライアント・デバイスで表示するためのフィルタされたコンテンツを提供してもよい３１６。次に図３Ｂを参照すると、方法３００は、ブロック３１４のフィルタリング・プロセスで当該コンテンツから除外されたアイテムを待ち行列に格納する３２２ことで継続する。当該除外されたアイテムを当該待ち行列に格納することは、環境条件（例えば、ネットワーク品質、データプラン可用性）が改善したときにユーザに表示するために後に提供できるので、有利である。次に、方法３００は、ブロック３２４で当該ネットワーク品質が最後の品質チェックから改善されたかどうかを判定し、改善されていない場合は、方法３００は、ブロック３２４でネットワーク品質を再度チェックする前に所定の時間だけ待機する３２６。他方、方法３００が、当該ネットワーク品質が改善したと判定した場合、方法３００は、当該コンテンツを、これらのアイテムを待ち行列から取り出すことで１つまたは複数の除外されたアイテムで更新し３２６、次いで、更新されたコンテンツをユーザのクライアント・デバイスに表示するために提供してもよい３３０。例えば、本明細書の別の場所で説明するように、コンテンツ提供モジュール５１０はネットワーク品質データプランモジュール５０４およびフィルタリング・モジュール５０８と協調してブロック３２４乃至３３０における動作を実施してもよい。
【００３２】
図４は、ネットワークおよびデータプラン可用性に基づいてコンテンツをフィルタするための例示的なシステム４００を示すブロック図である。図示した実装では、システム４００はクライアント・デバイス４０６ａ乃至４０６ｎ、コンテンツ管理サーバ４３４、ユーザ管理サーバ４４０、およびサードパーティサーバ４４４を含んでもよい。図示した実装では、システム４００のこれらのエンティティはネットワーク４０２を介して通信可能に接続される。しかし本開示はこの構成に限定されず、様々な異なるシステム環境および構成を使用してもよく、それらは本開示の範囲内にある。他の実装はより多いまたはより少ないコンピューティング・デバイス、サービス、および／またはネットワークを含んでもよい。
【００３３】
実装、参照番号または数字の後の文字の指示、例えば、「４０６ａ」を説明するために使用される図４ならびにその他の図面は、その特定の参照番号により指定される要素またはコンポーネントへの特定の参照であることは理解されるべきである。文字が続かないテキスト内に参照番号が現れる場合、例えば、「４０６」の場合、それは、その一般的な参照番号をもつ要素またはコンポーネントの異なる実装への一般的な参照であることは理解されるべきである。
【００３４】
幾つかの実装では、システム４００のエンティティは、１つまたは複数のコンピュータ機能またはルーチンがローカルコンピューティング・デバイスの要求でリモートコンピューティングシステムおよびデバイスにより実施される、クラウドベースのアーキテクチャを使用してもよい。例えば、クライアント・デバイス４０６は、ハードウェアおよび／またはソフトウェアリソースを有するコンピューティング・デバイスであってもよく、例えば、システム４００の他のクライアント・デバイス４０６、コンテンツ管理サーバ４３４、ユーザ管理サーバ４４０、および／またはサードパーティサーバ４４４または任意の他のエンティティを含む、他のコンピューティング・デバイスおよびリソースによりネットワーク４０２にわたって提供されるハードウェアおよび／またはソフトウェアリソースにアクセスしてもよい。
【００３５】
ネットワーク４０２は従来のタイプ、即ち、有線または無線であってもよく、星形構成、トークンリング構成または他の構成を含む多数の異なる構成を有してもよい。さらに、ネットワーク４０２はローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）（例えば、インターネット）、および／または複数のデバイスが通信できる他の相互接続されたデータ経路を含んでもよい。幾つかの実装では、ネットワーク４０２はピアツーピアネットワークであってもよい。ネットワーク４０２はまた、様々な異なる通信プロトコルでデータを送信するための電気通信ネットワークの一部に接続されるかまたはそれを含んでもよい。幾つかの実装では、ネットワーク４０２は、ショート・メッセージ・サービス（ＳＭＳ）、マルチメディア・メッセージング・サービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、直接データ接続、ＷＡＰ、電子メール等を介してデータを送受信するためのＢｌｕｅｔｏｏｔｈ「登録商標」通信ネットワークまたはセルラ通信ネットワークを含む。さらに、図４は、図示されたクライアント・デバイス４０６、コンテンツ管理サーバ４３４、ユーザ管理サーバ４４０、およびサードパーティサーバ４４４に接続された単一のネットワーク４０２を示すが、実際には、１つまたは複数のネットワーク４０２をこれらのエンティティに接続してもよい。
【００３６】
幾つかの実装では、クライアント・デバイス４０６（４０６ａ乃至４０６ｎの何れかまたは全部）は、データ処理およびデータ通信能力を有するコンピューティング・デバイスである。図示した実装では、ユーザ４１４ａ乃至４１４ｎはそれぞれ、信号線４１２ａおよび４１２ｎを介してクライアント・デバイス４０６ａおよび４０６ｎと対話する。クライアント・デバイス４０６ａ乃至４０６ｎはそれぞれ、信号線４０４ａ乃至４０４ｎを介してネットワーク４０２に通信可能に接続される。２つのクライアント・デバイス４０６が示されているが、本開示は、任意数のユーザ４１４に利用可能な任意数のクライアント・デバイス４０６を有するシステムアーキテクチャに適用される。
【００３７】
幾つかの実装では、クライアント・デバイス４０６は、ワークステーションコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、タブレットコンピュータ、スマートフォン、セットトップボックス／ユニット、視聴者入力を受信し、コンピュータネットワーク（例えば、インターネット）上でビデオコンテンツにアクセスし、および拡張された機能および対話を視聴者に提供するためのソフトウェアルーチンを実行できるコンピュータプロセッサを備えたインターネットプロトコル接続スマートＴＶ等を含む。幾つかの実装では、クライアント・デバイス４０６は、音声および／またはデータ通信を送受信できるハンドヘルド無線コンピューティング・デバイスであってもよい。
【００３８】
クライアント・デバイス４０６は、コンピュータプロセッサ、メモリ、電源、およびネットワーク４０２と対話するための１つまたは複数のネットワークインタフェースを含む通信ユニット、例えば、ラジオ信号を介してネットワークデータをブロードキャストし受信するための無線送受信器とを備えてもよい。クライアント・デバイス４０６はまた、グラフィックスプロセッサ、高解像度タッチスクリーン、物理キーボード、前方および後方カメラ、Ｂｌｕｅｔｏｏｔｈ「登録商標」モジュール、適用可能なファームウェアを格納するメモリ、および様々な物理接続インタフェース（例えば、ＵＳＢ、HDMI（登録商標）、ヘッドセット・ジャック等）、等のうち１つまたは複数を含んでもよい。
【００３９】
さらに、クライアント・デバイス４０６のハードェアおよびリソースを管理するためのオペレーティング・システム、ハードェアおよびリソースへのアプリケーション・アクセスを提供するためのアプリケーションプログラミングインタフェース（ＡＰＩ）、ユーザ対話および入力のためのインタフェースを生成し表示するためのユーザ・インタフェース・モジュール、および例えば、ウェブ閲覧のためのアプリケーション、インターネットアプリケーションを通じた１つまたは複数の他のユーザとのインスタントメッセージング、および／またはリアルタイムなビデオ通信アプリケーション等を含むアプリケーションは、クライアント・デバイス４０６に格納され、そこで動作可能であってもよい。図４は複数のクライアント・デバイス４０６を示すが、本開示は任意数のクライアント・デバイス４０６を有する任意のシステムアーキテクチャに適用される。
【００４０】
幾つかの実装では、クライアント・デバイス４０６ａ乃至４０６ｎはそれぞれ、ユーザ対話を提供し、ネットワーク４０２を介してデータを送受信するためにクライアント・デバイス４０６のプロセッサ５１６（図５を参照）により実行可能であるクライアント・アプリケーション４０８ａ乃至４０８ｎ（本明細書では独立して集合的にクライアント・アプリケーション４０８と称される）を含む。特に、クライアント・アプリケーション４０８は、ユーザインタフェースを描画し、ユーザ入力を受信し、コンテンツ管理サーバ４３４、ユーザ管理サーバ４４０、サードパーティサーバ４４４、およびシステム１００の他のエンティティと情報を送受信するようにクライアント・デバイス４０６に指示するように動作可能であることができる。これらのまたは他の実装では、クライアント・アプリケーション４０８をクライアント・デバイス４０６のメモリ５１８（図５を参照）に格納してもよく、プロセッサ５１６（図５を参照）によりアクセス可能かつ実行可能である。
【００４１】
コンテンツ管理サーバ４３４は、プロセッサ（図示せず）、メモリ（図示せず）、およびネットワーク通信能力を含むハードウェアサーバであることができる。コンテンツ管理サーバ４３４は、通信するために信号線４３２を介してネットワーク４０２に接続され、システム４００の他のコンポーネントと協調する。幾つかの実装では、コンテンツ管理サーバ４３４は、クライアント・デバイス４０６ａ−４０６ｎ、ユーザ管理サーバ４４０、および／またはサードパーティサーバ４４４のうち１つまたは複数とネットワーク４０２を介してデータを送受信する。１つのコンテンツ管理サーバ４３４が示されているが、複数のサーバを分散アーキテクチャまたはそれ以外の何れかで利用できることは当業者により理解される。本願の目的のため、当該システムにより実施されるシステム構成および動作を単一のコンテンツ管理サーバ４３４の文脈で説明する。
【００４２】
図示したように、コンテンツ管理サーバ４３４は、ネットワークのレベルおよびデータプラン可用性に基づいてコンテンツをフィルタするためのコンテンツ・フィルタリング・エンジン４３６を含んでもよい。幾つかの実装では、コンテンツ・フィルタリング・エンジン４３６は、クライアント・デバイス４０６と協調して本明細書で説明したその動作を実施してもよい。例えば、コンテンツ・フィルタリング・エンジン４３６は、ネットワークのレベルおよびデータプラン可用性をクライアント・デバイス４０６から入力として受信し、次いでそのフィルタリング動作を実施してもよい。コンテンツ・フィルタリング・エンジン４３６はさらに、ユーザ管理サーバ４４０と協調して本明細書で説明したその動作を実施してもよい。例えば、コンテンツ・フィルタリング・エンジン４３６は、ユーザデータ（例えば、ユーザのコンテンツ品質嗜好、ユーザの関心、ユーザのソーシャルグラフ、ユーザのカレンダ、ユーザの当該コンテンツとの過去の対話、ユーザの平均データプラン利用、ユーザの位置等）をユーザ管理サーバ４４０から取り出し、ユーザデータを考慮してそのフィルタリングを実施してもよい。コンテンツ・フィルタリング・エンジン４３６は上述のサービスの提供に限定されず、任意の他のクライアントまたはネットワークベースのサービスを提供してもよいことは理解されるべきである。
【００４３】
ユーザ管理サーバ４４０は、プロセッサ（図示せず）、メモリ（図示せず）、およびネットワーク通信能力を含むハードウェアサーバであることができる。ユーザ管理サーバ４４０は通信のために信号線４３８を介してネットワーク４０２に接続され、システム４００の他のコンポーネントと協調する。幾つかの実装では、ユーザ管理サーバ４４０は、クライアント・デバイス４０６ａ−４０６ｎ、コンテンツ管理サーバ４３４、および／またはサードパーティサーバ４４４のうち１つまたは複数とネットワーク４０２を介してデータを送受信する。１つのユーザ管理サーバ４４０が示されているが、複数のサーバを分散アーキテクチャまたはそれ以外の何れかで利用できることは当業者により理解される。本願の目的のため、当該システムにより実施されるシステム構成および動作を単一のユーザ管理サーバ４４０の文脈で説明する。
【００４４】
ユーザ管理サーバ４４０は、図６で図示したように、非一時的データ・ストア、例えば、ユーザデータ・ストア５２４内のユーザデータを維持するように構成される。幾つかの実装では、ユーザ管理サーバ４４０は、ネットワーク４０２を介してユーザにより実施される１つまたは複数のオンラインアクティビティを自動的に学習することによって、ユーザデータを編成してもよい。幾つかの他の実装では、ユーザ管理サーバ４４０は、ユーザによって定義されたユーザデータを、クライアント・デバイス４０６を介して明示的に受信し、次いで当該データをユーザデータ・ストア５２４に格納してもよい。例えば、ユーザ管理サーバ４４０は、ユーザデータ・ストア５２４内に図示したように（図６を参照）、１つまたは複数のアイテムをユーザに求める要求をクライアント・デバイス４０６に送信してもよく、当該１つまたは複数のアイテムを受信したとき、これらのアイテムをユーザデータ・ストア５２４に格納してもよい。
【００４５】
ユーザデータを、コンテンツ管理サーバ４３４により実施されるコンテンツ・フィルタ中に使用することができる。ユーザ管理サーバ４４０は、コンテンツ管理サーバ４３４とデータを送受信するためにコンテンツ管理サーバ４３４に通信可能に接続されてもよい。例えば、ユーザ管理サーバ４４０は要求をコンテンツ管理サーバ４３４から受信してもよく、当該要求は、ユーザデータ・ストア５２４に格納された１つまたは複数のアイテムを要求し、ユーザ管理サーバ４４０は、その要求を果たすために当該要求されたアイテムを送信してもよい。ユーザ管理サーバ４４０は上述のサービスの提供に制限されず、任意の他のクライアントまたはネットワークベースのサービスを提供してもよいことは理解されるべきである。
【００４６】
サードパーティサーバ４４４は、様々なコンピューティング機能、サービス、および／またはリソースをシステム４００の他のエンティティに提供するための１つまたは複数のコンピューティング・デバイスまたはシステムを備える。サードパーティサーバ４４４は、通信するために信号線４４２を介してネットワーク４０２に接続され、システム４００の他のコンポーネントと協調する。幾つかの実装では、サードパーティサーバ４４４は、コンピューティング機能、サービスおよび／またはリソースまたは機能を提供し、システム４００の他のエンティティとデータを送受信するように動作可能な、ネットワークベースのソフトウェアアプリケーション（例えば、サードパーティアプリケーション４４６）をホストする。幾つかの実装では、サードパーティサーバ４４４は、サーバ、サーバアレイまたは任意の他のコンピューティング・デバイス、またはコンピューティング・デバイスのグループであり、データ処理、格納および通信の能力を有する。サードパーティアプリケーション４４６を含むサードパーティサーバ４４４が提供できるソフトウェアサービスのタイプは、サードパーティオンラインゲームアプリケーション、インターネット検索、ソーシャルネットワーキング、ウェブベースの電子メール、ブログ、マイクロ−ブログ、マルチメディアのホスト、配布、および共有、ビジネスサービス、ニュースおよびメディアの配布、または以上のサービスの任意の組合せを含むがこれらに限られない。サードパーティサーバ４４４は、上述のサービスの提供に限定されず、任意の他のネットワークベースのまたはクラウドベースのサービスを含んでもよいことは理解されるべきである。
【００４７】
図５は、コンテンツ管理サーバ４３４に含まれるコンピューティング・デバイス、ユーザ管理サーバ４４０、および／またはクライアント・デバイス４０６を代表しうる例示的なコンピューティング・デバイス５００のブロック図である。図示したように、コンピューティング・デバイス５００はプロセッサ５１６、メモリ５１８、通信ユニット５２０、コンテンツリポジトリ５２２、ユーザデータ・ストア５２４、およびクライアント・アプリケーション４０８、およびコンテンツ・フィルタリング・エンジン４３６のうち１つまたは複数を含んでもよく、これらを、通信バス５１４により通信可能に接続してもよい。
【００４８】
当該構成に応じて、コンピューティング・デバイス５００は異なるコンポーネントを含んでもよい。例えば、コンテンツ管理サーバサイド実装において、コンピューティング・デバイス５００はプロセッサ５１６、メモリ５１８、通信ユニット５２０、コンテンツ・フィルタリング・エンジン４３６、およびコンテンツリポジトリ５２２を含んでもよい。例示的なユーザ管理サーバサイド実装では、コンピューティング・デバイス５００はコンポーネント５１６、５１８、５２０、およびユーザデータ・ストア５２４を含んでもよい。例示的なクライアントサイドの実装において、コンピューティング・デバイス５００はコンポーネント５１６、５１８、５２０、およびクライアント・アプリケーション４０８を含んでもよい。上述の構成は例として提供され、多数のさらに構成が考慮され可能であることは理解されるべきである。
【００４９】
プロセッサ５１６は、様々な入力、論理、および／または数学的動作を実施することによってソフトウェア命令を実行してもよい。プロセッサ５１６は、例えば、複雑命令セットコンピュータ（ＣＩＳＣ）アーキテクチャ、縮小命令セットコンピュータ（ＲＩＳＣ）アーキテクチャ、および／または命令セットの組合せを実装するアーキテクチャを含む、データ信号を処理するための様々なコンピューティングアーキテクチャを有してもよい。プロセッサ５１６は物理および／または仮想であってもよく、単一のコアまたは複数の処理ユニットおよび／またはコアを含んでもよい。幾つかの実装では、プロセッサ５１６は、電子ディスプレイ信号を生成しディスプレイデバイスに提供し、画像の表示をサポートし、画像をキャプチャし送信し、様々なタイプの特徴抽出およびサンプリング等を含む複雑なタスクを実施することができてもよい。幾つかの実装では、プロセッサ５１６は、バス５１４を介してメモリ５１に接続して、そこからデータおよび命令にアクセスし、そこにデータを格納してもよい。バス５１４は、例えば、クライアント・アプリケーション４０８、コンテンツ・フィルタリング・エンジン４３６、メモリ５１８、通信ユニット５２０、コンテンツリポジトリ５２２、および／またはユーザデータ・ストア５２４を含むコンピューティング・デバイス５００の他のコンポーネントにプロセッサ５１６を接続してもよい。
【００５０】
メモリ５１８は、データを格納し、データへのアクセスをコンピューティング・デバイス５００の他のコンポーネントに提供してもよい。幾つかの実装では、メモリ５１８は、プロセッサ５１６により実行されうる命令および／またはデータを格納してもよい。メモリ５１８はまた、例えば、オペレーティング・システム、ハードウェアドライバ、他のソフトウェアアプリケーション、データベース等を含む、他の命令およびデータを格納することができる。メモリ５１８を、プロセッサ５１６およびコンピューティング・デバイス５００の他のコンポーネントと通信するためのバス５１４に接続してもよい。
【００５１】
メモリ５１８は非一時的コンピュータ使用可能（例えば、可読、書込み可能等）媒体を含んでもよく、当該媒体は、プロセッサ５２１６によりまたはプロセッサ５２１６と関連して処理するための、命令、データ、コンピュータプログラム、ソフトウェア、コード、ルーチン等を含み、格納し、通信し、または転送できる任意の非一時的装置またはデバイスであることができる。幾つかの実装では、メモリ５１８は揮発性メモリおよび不揮発性メモリ（例えば、ＲＡＭ、ＲＯＭ、ハードディスク、光ディスク等）のうち１つまたは複数を含んでもよい。メモリ５１８は単一のデバイスであってもよくまたは複数のタイプのデバイスおよび構成を含んでもよいことは理解されるべきである。
【００５２】
バス５１４は、コンピューティング・デバイスのコンポーネントの間またはコンピューティング・デバイス、ネットワーク４０２またはその一部、プロセッサメッシュ、それらの組合せ等を含むネットワークバスシステムの間でデータを転送するための通信バスを備えることができる。幾つかの実装では、クライアント・アプリケーション４０８およびコンテンツ・フィルタリング・エンジン４３６は、バス５１４と関連して実装されたソフトウェア通信機構を介して協調および通信してもよい。当該ソフトウェア通信機構は、例えば、プロセス間通信、ローカル機能またはプロシージャ・コール、リモートプロシージャ・コール、ネットワークベースの通信、セキュア通信等を含み、かつ／または促進することができる。
【００５３】
通信ユニット５２０は、ネットワーク４０２との有線および無線接続のための１つまたは複数のインタフェースデバイスと、例えば、クライアント・デバイス４０６、コンテンツ管理サーバ４３４、ユーザ管理サーバ４４０、コンテンツリポジトリ５２２、およびユーザデータ・ストア５２４等を含む、システム４００の他のエンティティおよび／またはコンポーネントとを含んでもよい。例えば、通信ユニット５２０は、ＣＡＴタイプのインタフェース、Ｗｉ−Ｆｉ「登録商標」、Ｂｌｕｅｔｏｏｔｈ「登録商標」、セルラ通信等を用いて信号を送受信するための無線送受信器、ＵＳＢインタフェース、それらの様々な組合せ等を含んでもよいがこれらに限られない。通信ユニット５２０が、信号線４０４、４３２、および４３８を介してネットワーク４０２に接続されてもよい。幾つかの実装では、通信ユニット５２０はプロセッサ５１６をネットワーク４０２に接続することができる。ネットワーク４０２を他の処理システムに接続してもよい。通信ユニット５２０は、例えば、本明細書の別の場所で説明するものを含む、様々な標準的な通信プロトコルを用いて、他の接続をネットワーク４０２およびシステム４００の他のエンティティに提供することができる。
【００５４】
コンテンツリポジトリ５２２およびユーザデータ・ストア５２４は、データを格納しデータへのアクセスを提供するための情報ソースである。幾つかの実装では、コンテンツリポジトリ５２２およびユーザデータ・ストア５２４を、バス５１４を介してコンピューティング・デバイス５００のコンポーネント５１６、５１８、５２０、４０８、および／または４３６に接続して、データを受信しデータへのアクセスを提供してもよい。幾つかの実装では、コンテンツリポジトリ５２２およびユーザデータ５２４は、システム４００の他のエンティティ４０６、４３４、および／または４４０から受信したデータを格納し、これらのエンティティへのデータ・アクセスを提供してもよい。コンテンツリポジトリ５２２およびユーザデータ・ストア５２４はそれぞれ、当該データを格納する１つまたは複数の非一時的コンピュータ可読媒体を含むことができる。幾つかの実装では、コンテンツリポジトリ５２２およびユーザデータ・ストア５２４は、メモリ５１８により組み込んでもよく、または、メモリ５１８と異なってもよい。幾つかの実装では、コンテンツリポジトリ５２２およびユーザデータ・ストア５２４はデータベース管理システム（ＤＢＭＳ）を含んでもよい。例えば、当該ＤＢＭＳは構造化クエリ言語（ＳＱＬ）ＤＢＭＳ、ＮｏＳＱＬＤＭＢＳ、それらの様々な組合せ等を含みうる。幾つかの事例では、当該ＤＢＭＳは、行と列から成る多次元テーブルにデータを格納し、プログラム動作を用いてデータの行を操作、例えば、挿入、問合せ、更新および／または削除してもよい。
【００５５】
次に図６を参照すると、コンテンツリポジトリ５２２は、限定ではなく例として、ソーシャル・ネットワーク投稿６０２、ウェブ／ニュース・フィード６０４、ビデオベースの投稿６０６、テキストベースの投稿６０８、オーディオ・クリップ６１０、および／または画像６１２を含んでもよい。ソーシャル・ネットワーク投稿６０２は、ソーシャル・ネットワーク上の様々なトピックスに関する、ユーザにより生成された投稿を含む。ウェブ／ニュース・フィード６０４は、ニュース記事、ジャーナル、ステータス更新、写真、ビデオ、ウェブリンク、およびユーザがフォローする関心がある人々および／またはトピックスに関する承認のようなデータを含む。ビデオベースの投稿６０６は、ユーザによるソーシャル・ネットワーク上の、ビデオを組み込んだ投稿を含む。テキストベースの投稿６０８は、テキストのみを含み、マルチメディア（例えば、オーディオ、ビデオ、写真等）を含まない、ユーザにより作成された投稿である。オーディオ・クリップ６１０は、インターネットで提供された曲、ラジオ、オーディオレクチャ、キーノート等のようなオーディオコンテンツを含む。画像６１２はインターネットで提供されるグラフィカルコンテンツを含む。
【００５６】
ユーザデータ・ストア５２４は、例えば図６で図示したように、限定ではなく、ユーザコンテンツ品質嗜好６２２、ユーザ関心６２４、ユーザのソーシャルグラフ６２６、ユーザのカレンダ６２８、ユーザのコンテンツ６３０との過去の対話、ユーザデータプラン利用６３２、および／またはユーザの位置６３４を含んでもよい。ユーザコンテンツ品質嗜好６２２は、異なる環境条件（例えば、良好な／貧弱なネットワーク可用性、高／低いデータプラン可用性等）でのコンテンツの品質に対するユーザ嗜好を含む。例えば、ユーザコンテンツ品質嗜好６２２は、特定のユーザに対して、ネットワーク条件が貧弱であるときにユーザが高いまたは低い品質コンテンツを欲するかどうかを記述してもよい。ユーザの関心６２４が、複数のユーザに対して、様々なアクティビティ、トピックス、コンテンツ（例えば、映画、曲等）、食料、および他の人々におけるそれらの関心または好みを記述してもよい。ユーザのソーシャルグラフ６２６は、特定のユーザが関係または親和性をソーシャル・ネットワーク上で共有する１つまたは複数のユーザを定義する。当該１つまたは複数のユーザは、当該ソーシャル・ネットワーク上の当該特定のユーザの友達であることができる。ユーザのカレンダ６２８は、ユーザにより特定の日付／時刻に対するリマインダとしてまたは説明としてマークされた１つまたは複数のイベントまたはノートを含む。ユーザのコンテンツ６３０との過去の対話は、ビデオ、オーディオ、画像、メッセージ、ソーシャル・ネットワーク投稿等のような特定のコンテンツとのユーザの対話の日付およびタイムスタンプを含む。ユーザのデータプラン利用６３２は、ユーザに関連付けられたデータプランの利用統計値を記述する。例えば、当該利用統計値が、ユーザが特定の月に対する自分のデータプランのうち１．５ＧＢを使用しその後の月では１ＧＢだけを使用したことを示してもよい。ユーザの位置６３４は、コンテンツが要求またはアクセスされていたかまたは現在要求またはアクセスされている現在または過去の位置を示す。
【００５７】
図５に戻ると、図示したようにクライアント・アプリケーション４０８はユーザ・インタフェース・モジュール４１０およびネットワーク品質データプラン分析器４１２を含む。クライアント・アプリケーション４０８のコンポーネント４１０および４１２は、互いにおよびコンピューティング・デバイス５００の他のコンポーネント５０２、５０４、５０６、５０８、５１０、５１６、５１８、５２０、５２２、および５２４と通信するために接続される。コンポーネント４１０および４１２はまた、システム４００の他のエンティティと通信するために通信ユニット５２０を介してネットワーク４０２に接続される。
【００５８】
幾つかの実装では、ユーザ・インタフェース・モジュール４１０およびネットワーク品質データプラン分析器４１２は、それらの夫々の動作および／または機能を提供するためにプロセッサ５１６により実行可能な命令のセットである。他の実装では、ユーザ・インタフェース・モジュール４１０およびネットワーク品質データプラン分析器４１２は、コンピューティング・デバイス５００のメモリ５１８に格納され、それらの夫々の動作および／または機能を実施するためにプロセッサ５１６によりアクセス可能かつ実行可能である。これらの実装の何れかでは、ユーザ・インタフェース・モジュール１１０およびネットワーク品質データプラン分析器４１２を、プロセッサ５１６およびコンピューティング・デバイス５００の他のコンポーネント５０２、５０４、５０６、５０８、５１０、５１８、５２０、５２２、および５２４と協調し通信するように適合してもよい。
【００５９】
ユーザ・インタフェース・モジュール４１０が、１つまたは複数のユーザ入力を受信し、当該１つまたは複数のユーザ入力をコンテンツ・フィルタリング・エンジン４３６に処理のために送信し、当該処理の結果をユーザに表示するためのルーチンを含むソフトウェアであってもよい。当該１つまたは複数のユーザ入力は、コンテンツに対する要求、ネットワークのレベルおよびデータプラン可用性に基づいて当該コンテンツをフィルタするかまたはコンテンツ全体を待機しロードするかどうかをユーザに通知する通知への応答、特定のネットワーク品質および／またはデータプラン可用性で当該コンテンツをフィルタするためのユーザ嗜好等を含んでもよい。１つまたは複数の入力を受信したことに応答して、ユーザ・インタフェース・モジュール４１０は、当該１つまたは複数の入力をコンテンツ・フィルタリング・エンジン４３６の適切なコンポーネントに処理のために送信してもよい。例えば、ユーザ・インタフェース・モジュール４１０は当該１つまたは複数の入力を送信するためにコンテンツ・フィルタリング・エンジン４３６のコントローラ５０２に通信可能に接続されてもよく、コントローラ５０２はついで、さらなる処理のためにコンテンツ・フィルタリング・エンジン４３６の適切なコンポーネントにこれらの入力を渡してもよい。当該１つまたは複数の入力が処理されると、ユーザ・インタフェース・モジュール４１０は、当該処理の結果をコンテンツ・フィルタリング・エンジン４３６から受信してもよく、ついで、これらの結果を表示のためにクライアント・デバイス４０６のようなクライアント・デバイス上でユーザに提供してもよい。
【００６０】
ネットワーク品質データプラン分析器４１２が、ユーザのクライアント・デバイスに関連付けられたネットワーク品質およびデータプラン可用性を分析するためのルーチンを含むソフトウェアであってもよい。幾つかの実装では、当該ネットワーク品質を分析するステップは、ユーザのクライアント・デバイスに関連付けられたネットワーク可用性のレベルを決定することを含む。当該ネットワーク可用性のレベルは、当該ネットワークの品質が良好または貧弱であるかどうかの指示である。例えば、良好な品質ネットワークは高品質のＷｉ−Ｆｉネットワークであることができ、貧弱な品質のネットワークは１バーのエッジネットワークであることができる。
【００６１】
幾つかの実装では、データプラン可用性を分析するステップは、過剰となる前にユーザに残されたデータプランの量と現在の課金サイクル期間が終了する前に残された時間とを決定するステップを含む。非限定的な例により、ユーザは２ＧＢのデータプランに加入していてもよく、そのうち１．５ＧＢが、３１日を含む現在の課金サイクル期間のうち２５日で使用されている。ついで、この特定の例においてデータプラン可用性を分析するステップが、５００ＭＢが次の６日で利用するためにユーザに残されていると判定するステップを含む。
【００６２】
幾つかの実装では、ネットワーク品質データプラン分析器４１２は、要求をコンテンツ・フィルタリング・エンジン４３６から受信したことに応答して、本明細書で説明したその動作を実施してもよい。例えば、ネットワーク品質データプラン分析器４１２は、ユーザのクライアント・デバイスに関連付けられたネットワーク品質およびデータプラン可用性を分析する要求をコンテンツ描画エンジン４３６のネットワーク品質データプランモジュール５０４から受信してもよい。当該要求を処理したことに応答して、ネットワーク品質データプラン分析器４１２は、当該分析の当該結果をコンテンツ・フィルタリング・エンジン４３６に送信し戻して、そのさらに動作および／または機能を実施してもよい。他の変形も可能であり考慮される。
【００６３】
図示したように、コンテンツ・フィルタリング・エンジン４３６はコントローラ５０２、ネットワーク品質およびデータプランモジュール５０４、コンテンツ関連性判定およびスコアリング・モジュール５０６、フィルタリング・モジュール５０８、およびコンテンツ提供モジュール５１０を含む。コンテンツ・フィルタリング・エンジン４３６のコンポーネント５０２、５０４、５０６、５０８、および５１０は互いと通信し、コンピューティング・デバイス５００の他のコンポーネント４０８、４１０、４１２、５１６、５１８、５２０、５２２、および５２４と通信するために接続される。コンポーネント５０２、５０４、５０６、５０８、および５１０はまた、システム４００の他のエンティティと通信するために通信ユニット５２０を介してネットワーク４０２に接続される。
【００６４】
幾つかの実装では、コントローラ５０２、ネットワーク品質データプランモジュール５０４、コンテンツ関連性判定スコアリング・モジュール５０６、フィルタリング・モジュール５０８、およびコンテンツ提供モジュール５１０は、それらの夫々の動作および／または機能を提供するためにプロセッサ５１６により実行可能な命令のセットである。他の実装では、コントローラ５０２、ネットワーク品質データプランモジュール５０４、コンテンツ関連性判定スコアリング・モジュール５０６、フィルタリング・モジュール５０８、およびコンテンツ提供モジュール５１０は、コンピューティング・デバイス５００のメモリ５１８に格納され、それらの夫々の動作および／または機能を提供するためにプロセッサ５１６によりアクセス可能かつ実行可能である。これらの実装の何れかでは、コントローラ５０２、ネットワーク品質データプランモジュール５０４、コンテンツ関連性判定スコアリング・モジュール５０６、フィルタリング・モジュール５０８、およびコンテンツ提供モジュール５１０が、プロセッサ５１６およびコンピューティング・デバイス５００の他のコンポーネント４０８、４１０、４１２、５１８、５２０、５２２、および５２４と協調し通信するように適合されてもよい。
【００６５】
コントローラ５０２が、クライアント・デバイス４０８およびコンテンツ・フィルタリング・エンジン４２６の１つまたは複数のコンポーネント間でデータを交換するためのルーチンを含むソフトウェアであってもよい。例えば、コントローラ５０２は、１つまたは複数の入力をクライアント・デバイス４０８のコンポーネント（例えば、ユーザ・インタフェース・モジュール４１０）から受信し、当該１つまたは複数の入力をコンテンツ・フィルタリング・エンジン４２６の夫々のコンポーネントに処理のために送信するための媒体として動作してもよい。幾つかの実装では、当該処理に応答して、コントローラ５０２は、当該処理の結果をクライアント・デバイス４０８の当該１つまたは複数のコンポーネントに送信し戻して、それらの動作および／または機能を実施するようにさらに構成される。例として、コントローラ５０２は、ユーザ・インタフェース・モジュール４１０から、ネットワークおよび／またはデータプラン可用性のレベルに基づいてコンテンツのフィルタを承認するユーザ入力を受信し、当該フィルタリング・プロセスを開始するためにユーザ入力をネットワーク品質データプランモジュール５０４に送信してもよい。当該コンテンツがフィルタされると、コントローラ５０２は、フィルタされたコンテンツをユーザに表示するためにユーザ・インタフェース・モジュール４１０に送信してもよい。
【００６６】
ネットワーク品質データプランモジュール５０４が、ユーザに関連付けられたネットワークのレベルおよびデータプラン可用性を決定するためのルーチンを含むソフトウェアであってもよい。幾つかの実装では、ネットワークデータプランモジュール５０４はネットワーク品質データプラン分析器４１２と協調してネットワークのレベルおよびデータプラン可用性を決定してもよい。例えば、ネットワーク品質データプランモジュール５０４は、コントローラ５０２を介して、ユーザのクライアント・デバイスに関連付けられたネットワーク品質およびユーザのアカウントに関連付けられたデータプラン可用性を分析するための要求をクライアント・アプリケーション４０８のネットワーク品質データプラン分析器４１２に送信してもよく、ネットワーク品質データプラン分析器４１２はついで、その分析を実施してネットワークのレベルおよびデータプラン可用性を決定し、その要求への応答としてネットワークデータプランモジュール５０４にその分析の結果を送信してもよい。
【００６７】
ネットワーク品質のレベルおよびデータプラン可用性を受信すると、ネットワーク品質データプランモジュール５０４は当該ネットワーク品質が良好な／貧弱であるかどうか、および、当該データプラン利用が特定の閾値を超えるかどうかを判定してもよい。当該特定の閾値が、所定の利用値であってもよく、または、ユーザに残されているデータプランの量および現在の課金サイクル期間に残された日数に基づいて動的に決定されてもよい。ネットワーク品質データプランモジュール５０４が当該ネットワーク品質を貧弱と判定し、かつ／または、当該データプラン利用が当該特定の閾値を超えると判定した場合、ネットワーク品質データプランモジュール５０４は、ユーザにより要求されたコンテンツを当該ネットワーク品質および／または残されたデータプランの量ごとにフィルタすべきであると判定してもよい。幾つかの実装では、ネットワーク品質データプランモジュール５０４は、コントローラ５０４を介して、このコンテンツ・フィルタの通知をユーザ・インタフェース・モジュール４１０に送信して、当該コンテンツをフィルタするためのユーザの承認を求めてもよい。ユーザの応答に基づいて、ネットワーク品質データプランモジュール５０４は、後続の１組の動作を実施するようにコンテンツ・フィルタリング・エンジン４３６の適切なコンポーネントに信号送信してもよい。例えば、ユーザの応答がコンテンツ・フィルタの承認を示す場合、ネットワーク品質データプランモジュール５０４は、本明細書で説明したその動作および／または機能を実施するようにコンテンツ関連性判定スコアリング・モジュール５０６に信号送信してもよい。他方、ユーザの応答が、コンテンツ・フィルタの拒否を示し、コンテンツ全体を待機しロードしたいだけである場合、ネットワーク品質データプランモジュール５０４は単に当該要求されたコンテンツをフィルタなしでユーザに提供するようにコンテンツ提供モジュール５１０に信号送信してもよい。
【００６８】
コンテンツ関連性判定スコアリング・モジュール５０６が、ユーザにより要求されたコンテンツの関連性を決定するためのルーチンを含むソフトウェアであってもよい。当該コンテンツは１つまたは複数のアイテム（例えば、テキストベースの投稿、ビデオベースの投稿、オーディオ・クリップ、写真等）を含んでもよく、当該コンテンツの関連性を決定するステップは、幾つかのインスタンスにおいて、１つまたは複数の因子に基づいて当該コンテンツ内の各アイテムの関連性を決定するステップを含んでもよい。当該１つまたは複数の因子は、限定ではなく例として、ユーザの関心、コンテンツがそこからアクセスされているユーザの現在の位置または環境、コンテンツ内のアイテムが関連する他のユーザへのユーザの親和性、特定の時点でコンテンツ内のアイテムに関連する１つまたは複数のイベントを表すユーザのカレンダ、アイテムのタイプとサイズ（例えば、当該アイテムが短いテキストまたは長いテキスト、ビデオ、画像、オーディオ等を含むかどうか）、当該コンテンツ内のアイテムとのユーザの過去の関わりレベル、および要求するユーザの平均データプラン利用を含んでもよい。
【００６９】
幾つかの実装では、コンテンツ関連性判定スコアリング・モジュール５０６は、上述のように、１つまたは複数の因子をコンテンツ関連性判定のために、ユーザ管理サーバ４４０のユーザデータ・ストア５２４（図６を参照）から取り出してもよい。例えば、ユーザデータ・ストア５２４は、ユーザコンテンツ品質嗜好６２２、ユーザ関心６２４、ユーザのソーシャルグラフ６２６、ユーザのカレンダ６２８、ユーザのコンテンツ６３０との過去の対話、ユーザのデータプラン利用６３２、およびユーザの位置６３４を含んでもよく、コンテンツ関連性判定モジュール５０６は当該コンテンツの関連性をそれに基づいて判定してもよい。
【００７０】
コンテンツ内の各アイテムの関連性が決定されると、コンテンツ関連性判定スコアリング・モジュール５０６はついで、当該アイテムに関連付けられた関連性、ネットワーク品質のレベル、および／またはデータプラン可用性のレベルに基づいて、当該アイテムに対する包含スコアを計算してもよい。アイテムに対する包含スコアは、コンテンツ内のアイテムがどれだけ当該コンテンツを要求したユーザに対して重要でありまたは関連するかの指示であってもよい。幾つかの事例では、アイテムに対する包含スコアは任意の数値であってもよく、高い包含スコア値はユーザに対して高度に関連するアイテムを示し、低い包含スコア値はユーザがあまり関心がないかまたは全く関心がないアイテムを示す。包含スコアをコンテンツ内の各アイテムに割り当てたことに応答して、コンテンツ関連性判定スコアリング・モジュール５０６はついで、当該包含スコアをフィルタリング・モジュール５１０に送信して、その動作および／または機能をそこで実施してもよい。幾つかの実装では、コンテンツ関連性判定スコアリング・モジュール５０６はまた、クライアント・アプリケーション４０８および／またはコンテンツ・フィルタリング・エンジン４３６により後に取り出しかつ／またはアクセスするために、当該包含スコアをデータ・ストアに格納してもよい。
【００７１】
フィルタリング・モジュール５０８が、ネットワーク品質およびデータプラン可用性のレベルに従ってコンテンツをフィルタするためのルーチンを含むソフトウェアであってもよい。幾つかの実装では、コンテンツをフィルタするステップは、各アイテムに関連付けられた包含スコアに基づいて、１つまたは複数のアイテムを当該コンテンツからフィルタまたは除外するステップを含む。フィルタリング・モジュール５０８は、本明細書の別の場所で説明するように、アイテムに対する包含スコアをコンテンツ関連性判定スコアリング・モジュール５０６から受信してもよい。
【００７２】
当該コンテンツをフィルタするために、フィルタリング・モジュール５０８は、コンテンツ内のアイテムごとの包含スコアを所定の閾値スコアと比較してもよい。例えば、フィルタリング・モジュール５０８は、アイテムに対する包含スコアを当該閾値スコアと比較して、ユーザに提供するために当該コンテンツに対して当該アイテムを含めるか、または、除外するかどうかを判定してもよい。当該アイテムに対する包含スコアが当該閾値スコア未満である場合、フィルタリング・モジュール５０８は当該アイテムを除外してもよい。そうでない場合、フィルタリング・モジュール５０８は、当該アイテムを当該コンテンツ内で保持するかまたはそこに含めると判定してもよい。
【００７３】
幾つかの実装では、フィルタリング・モジュール５０８をさらに、上述のようにフィルタリング・プロセスの間に除外されたアイテムの待ち行列を維持するように構成してもよい。除外されたアイテムの待ち行列を維持することは、これらのアイテムを、ネットワークおよび／またはデータプラン条件が良好になったときにユーザに表示するために後に提供できるので、有利である。コンテンツ・フィルタと、当該待ち行列内の除外されたアイテムの待ち行列の維持が、フィルタリング・モジュール５０８により行われると、フィルタリング・モジュール５０８はついで、フィルタされたコンテンツおよび除外されたアイテムの待ち行列を、ユーザに提供するためにコンテンツ提供モジュール５１０に送信してもよい。
【００７４】
コンテンツ提供モジュール５１０が、ユーザに表示するためのコンテンツを提供するためのルーチンを含むソフトウェアであってもよい。表示のために提供されたコンテンツは、フィルタされたコンテンツまたはユーザにより要求されたフィルタなしのコンテンツであってもよい。幾つかの実装では、コンテンツ提供モジュール５１０は、フィルタリング・モジュール５０８またはネットワーク品質データプランモジュール５０４から信号を受信したことに応答して本明細書で説明したその機能を実施してもよい。例えば、フィルタリング・モジュール５０８から受信した信号は、フィルタリング・モジュール５０８によりフィルタされたコンテンツを、コンテンツを要求しコンテンツ・フィルタリングについて承認したユーザに表示するために、提供することを示してもよい。本明細書の別の場所で説明するように、ネットワーク品質データプランモジュール５０４から受信した信号は、要求するユーザに表示するためのフィルタなしのコンテンツを提供することを示してもよい。フィルタリング・モジュール５０８またはネットワーク品質データプランモジュール５０４から信号を受信したことに応答して、コンテンツ提供モジュール５１０は、当該フィルタされたコンテンツまたはフィルタなしのコンテンツをユーザ・インタフェース・モジュール４１０に送信してもよい。ユーザ・インタフェース・モジュール４１０はついで、ユーザに関連付けられたクライアント・デバイス４０６に当該コンテンツを表示する。
【００７５】
コンテンツ提供モジュール５１０は上述の信号に基づいてコンテンツを提供することに限定されず、他の変形も可能であり考慮されることは理解されるべきである。例えば、コンテンツ提供モジュール５１０は、コントローラ５０２を介して、コンテンツに対するユーザ要求をユーザ・インタフェース・モジュール４１０から直接受信してもよく、当該要求を受信したことに応答して、コンテンツ提供モジュール５１０は、当該要求されたコンテンツをコンテンツリポジトリ５２２から取り出し、コントローラ５０２を介して、当該取り出したコンテンツをユーザ・インタフェース・モジュール４１０に送信してもよい。ユーザ・インタフェース・モジュール４１０は次いで、当該コンテンツをユーザに関連付けられたクライアント・デバイス４０６に表示する。
【００７６】
幾つかの実装では、コンテンツ提供モジュール５１０をさらに、フィルタリング・モジュール５０８によるフィルタリング・プロセスの間に除外されたアイテムを、環境条件（例えば、ネットワーク品質、データプラン可用性）が良好になったときにユーザに提供するように構成してもよい。例えば、フィルタされたコンテンツをユーザ・インタフェース・モジュール４１０に表示の目的のために提供する間に、コンテンツ提供モジュール５１０は、後に当該環境条件が良好になったときに、ユーザが当該コンテンツ内の除外されたアイテムを取り出したいかどうかを通知する通知を送信してもよい。当該通知に対するユーザの承認に基づいて、コンテンツ提供モジュール５１０は、定期的にネットワーク品質データプランモジュール５０４でをチェックして、当該環境条件を判定し、当該条件が改善したと判定されたら、コントローラ５０２を介して、当該除外されたアイテムを、ユーザのクライアント・デバイス４０６に表示するためにユーザ・インタフェース・モジュール４１０に送信してもよい。
【００７７】
ユーザ・インタフェース・モジュール４１０、ネットワーク品質データプラン分析器４１２、コントローラ５０２、ネットワーク品質データプランモジュール２０４、コンテンツ関連性判定スコアリング・モジュール５０６、フィルタリング・モジュール５０８、およびコンテンツ提供モジュール５１０の追加の構造、動作、および／または機能は、少なくとも図１、２Ａ乃至２Ｃ、ならびに３Ａおよび３Ｂに関してさらに上述されている。
【００７８】
上の説明では、説明の目的のため、多数の具体的な詳細を説明した。しかし、これらの具体的な詳細のサブセットを与えられることなく開示された技術を実践できることは明らかである。他の事例では、構造およびデバイスはブロック図の形態で示されている。例えば、開示された技術を、上の幾つかの実装ではユーザインタフェースおよび特定のハードウェアを参照して説明した。さらに、上の技術は主にオンラインサービスの文脈で開示されているが、開示された技術は他のデータソースおよび他のデータにも適用される。
【００７９】
本明細書における「１実装」または「実装」という参照は、当該実装に関連して説明した特定の特徴、構造、または特性が開示された技術の少なくとも１つの実装に含まれることを意味する。本明細書内の様々な場所における「１実装において」というフレーズの出現は必ずしも全て同一の実装を指すものではない。
【００８０】
上述の詳細な説明の幾つかの部分は、コンピュータメモリ内のデータビットに対する動作のプロセスおよび記号的表現の観点から提供された。プロセスは一般に、結果を導く首尾一貫したステップのシーケンスと考えることができる。当該ステップは物理量の物理操作を含んでもよい。これらの量は、格納し、転送し、結合し、比較し、または操作できる電気または磁気信号の形態をとる。これらの信号がビット、値、要素、シンボル、文字、項、数値、等の形態で参照されてもよい。
【００８１】
これらのおよび同様な用語を当該適切な物理量に関連付けることができ、これらの量に適用されるラベルと考えることができる。特に断らない限り過去の議論から明らかなように、本明細書の説明にわたって、例えば「処理」または「コンピューティング」または「計算」または「判定」または「表示」等の用語を用いた議論、は、当該コンピュータシステムのレジスタおよびメモリ内の物理（電子）量として表されたデータを操作し、同様に当該コンピュータシステムメモリまたはレジスタまたは他のかかる情報記憶、送信またはディスプレイデバイス内の物理量として表された他のデータに変換する、コンピュータシステム、または同様な電子コンピューティング・デバイスのアクションおよびプロセスを参照してもよいことは理解される。
【００８２】
開示された技術が、本明細書の動作を実施するための装置に関連してもよい。当該装置は、当該必要な目的のために構築されてもよく、または、当該コンピュータに格納されたコンピュータプログラムにより選択的に起動または再構成される汎用目的コンピュータを含んでもよい。かかるコンピュータプログラムはコンピュータ可読記憶媒体に格納されてもよく、これには、例えば、それぞれコンピュータシステムバスに接続された、フロッピーディスク、光ディスク、ＣＤ−ＲＯＭ、および磁気ディスク、読取専用メモリ（ＲＯＭ）、ランダム・アクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気または光カード、不揮発性メモリまたは電子命令を格納するのに適した任意の種類の媒体を有するＵＳＢキーを含むフラッシュメモリを含む任意の種類のディスクがあるがこれらに限られない。
【００８３】
開示された技術は、もっぱらハードウェア実装、もっぱらソフトウェア実装またはハードウェアおよびソフトウェア要素の両方を含む実装の形態をとることができる。幾つかの実装では、当該技術がソフトウェアで実装される。当該ソフトウェアには、ファームウェア、常駐ソフトウェア、マイクロコード等を含むがこれらに限られない。
【００８４】
さらに、開示された技術は、コンピュータまたは任意の命令実行システムによりまたはそれと関連して使用するためのプログラムコードを提供する非一時的コンピュータ−使用可能またはコンピュータ−可読媒体からアクセス可能なコンピュータプログラム製品の形態をとることができる。この説明のため、コンピュータ−使用可能またはコンピュータ−可読媒体は、当該命令実行システム、装置、またはデバイスによりまたはそれらと接続して使用するためのプログラムを含み、格納し、通信し、伝播し、または転送できる任意の装置であることができる。
【００８５】
プログラムコードを格納および／または実行するのに適したコンピューティングシステムまたはデータ処理システムは、システムバスを通じて直接または間接にメモリ要素に接続された少なくとも１つのプロセッサ（例えば、ハードウェアプロセッサ）を含む。当該メモリ要素は、当該プログラムコードの実際の実行中に使用されるローカルメモリ、バルク記憶、およびコードを実行中にバルク記憶から抽出しなければならない回数を削減するために少なくとも幾つかのプログラムコードの一時記憶を提供するキャッシュメモリを含むことができる。
【００８６】
入力／出力またはＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティングデバイス等を含むがこれらに限定されない。）を、直接にまたは介在するＩ／Ｏコントローラを介して、当該システムに接続することができる。
【００８７】
ネットワークアダプタを当該システムに接続して、当該データ処理システムを、介在するプライベートまたはパブリックネットワークを通じて他のデータ処理システムまたはリモートプリンタまたは記憶デバイスに接続されるようにしてもよい。モデム、ケーブルモデム、およびイーサネット（登録商標）カードは現在利用可能なタイプのネットワークアダプタのごく幾つかにすぎない。
【００８８】
最後に、本明細書で提供したプロセスおよびディスプレイは本来、任意の特定のコンピュータまたは他の装置に関連しなくてもよい。様々な汎用目的システムを本明細書の教示事項に従うプログラムで使用してもよく、または当該必要な方法ステップを実施するためのより特化した装置を構築するのに都合が良いことを証明できる。様々なこれらのシステムに対する必要な構造は以下の説明から明らかになろう。さらに、開示された技術はどの特定のプログラミング言語を参照しても説明されていない。様々なプログラミング言語を使用して当該技術の教示事項を本明細書で説明したように実装してもよいことは理解されよう。
【００８９】
本技術および技術当の装の以上の説明を例示および説明の目的のために提示した。包括的であることは意図しておらず、本技術および技術を開示した厳密な形態に限定する意図もない。上述の教示事項に照らして多くの修正および変形が可能である。本技術および技術の範囲がこの詳細な説明により限定されないことが意図されている。本技術および技術を、その趣旨または本質的な特性から逸脱せずに、他の特定の形態で実装してもよい。同様に、当該特定のモジュール、ルーチン、特徴、属性、方法および他の態様の名前付けおよび分割は必須でも重要でもなく、本技術および技術またはその特徴を実装する機構は異なる名前、分割および／または形式を有してもよい。さらに、本技術モのジュール、ルーチン、特徴、属性、方法および他の態様をソフトウェア、ハードウェア、ファームウェアまたはこれらの３つの任意の組合せとして実装することができる。また、コンポーネントが、その例はモジュールであるが、ソフトウェアとして実装されるときは常に、当該コンポーネントを、スタンドアロンプログラムとして、大規模プログラムの一部として、複数の別個のプログラムとして、静的リンクまたは動的リンクライブラリとして、カーネルロード可能モジュールとして、デバイスドライバとして、および／またはコンピュータプログラミングにおいて既知であるかまたは将来知られる全ての任意の他の方法で、実装することができる。さらに、本技術および技術は決して任意の特定のプログラミング言語における実装、または任意の特定のオペレーティング・システムまたは環境のための実装に限定されない。したがって、本技術および技術の本開示は例示的であって限定的ではない。
【符号の説明】
【００９０】
４０２  ネットワーク
４０６ａ  クライアント・デバイス
４０６ｎ  クライアント・デバイス
４０８ａ  クライアント・アプリケーション
４０８ｎ  クライアント・アプリケーション
４３４  クライアント管理サーバ
４３６  コンテンツ・フィルタリング・エンジン
４４０  ユーザ管理サーバ
４４４  サード・パーティ・サーバ
４４６  サード・パーティ・アプリケーション
【図１】
0006507263.tif 000002
【図２Ａ】
0006507263.tif 000003
【図２Ｂ】
0006507263.tif 000004
【図２Ｃ】
0006507263.tif 000005
【図３Ａ】
0006507263.tif 000006
【図３Ｂ】
0006507263.tif 000007
【図４】
0006507263.tif 000008
【図５】
0006507263.tif 000009
【図６】
0006507263.tif 000010