(58)【調査した分野】(Int.Cl.,DB名)
所与のユーザのクライアントデバイスを通じて提出されたデータに基づいて、前記所与のユーザを所与のオンラインアカウントの認可されたユーザとして認証するステップと、
前記所与のユーザに対して前記認証に応答して、前記所与のオンラインアカウントに関連するデータが前記所与のユーザに提示されるユーザセッションを開始するステップと、
前記クライアントデバイスにおいて、1つまたは複数の先のユーザセッション中に前記所与のユーザによってディスプレイカードとのインタラクション履歴に基づいて、所与のディスプレイカードとの前記ダッシュボードユーザインターフェースに含まれない前記所与のディスプレイカードについてのデータセットをプリキャッシュするステップであって、前記所与のディスプレイカードを提示するために前記所与のユーザによる要求の前に実施される、ステップと
をさらに含む、請求項1に記載の方法。
前記所与のユーザが、複数のユーザグループを作成するとともに前記複数のユーザグループにユーザを割り当てる機械学習プロセスを使用して前記ユーザグループに割り当てられ、前記方法が、前記所与のカードと以前にインタラクションした前記ユーザの異なるメンバーに基づいて前記所与のカードを特定するステップをさらに含む、請求項2に記載の方法。
前記所与のユーザが、(i)以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの時間の範囲、(ii)前記ユーザによって修正されたデータ、または(iii)前記所与のユーザが前記アカウントに関連するデータにアクセスする頻度のうちの少なくとも1つに基づいて前記ユーザグループに割り当てられる、請求項3に記載の方法。
前記所与のユーザと同じ前記ユーザグループにおける複数のユーザの各々が、前記複数の異なるユーザの各々によって要求されたデータの種類に基づいて、異なる初期アカウントビューを提供される、請求項3に記載の方法。
前記データセットの少なくとも一部が、(i)前記以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの種類、(ii)以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの時間の範囲、または(iii)前記以前のユーザセッションにおいて前記所与のユーザがデータを要求した地理的領域のうちの少なくとも1つに基づいて選択される、請求項2に記載の方法。
前記キャッシュを更新するためのデータコストが閾値のコスト未満であることに基づいて前記クライアントデバイスにおいてプリキャッシュされたデータを更新すると決定するステップと、
前記クライアントデバイスにおいてプリキャッシュされた前記データを更新すると決定するステップに応答して、前記ユーザデバイスに、更新されたデータセットを提供するステップと
をさらに含む、請求項2に記載の方法。
所与のユーザのクライアントデバイスを通じて提出されたデータに基づいて、前記所与のユーザを所与のオンラインアカウントの認可されたユーザとして認証し、前記所与のユーザに対して前記認証に応答して、前記所与のオンラインアカウントに関連するデータが前記所与のユーザに提示されるユーザセッションを開始する、フロントエンドサーバをさらに備え、前記第2のサーバが、前記クライアントデバイスにおいて、1つまたは複数の先のユーザセッション中に前記所与のユーザによってディスプレイカードとのインタラクション履歴に基づいて、所与のディスプレイカードとの前記ダッシュボードユーザインターフェースに含まれない前記所与のディスプレイカードについてのデータセットをプリキャッシュし、前記プリキャッシュが、前記所与のディスプレイカードを提示するために前記所与のユーザによる要求の前に実施される、請求項8に記載のシステム。
前記所与のユーザが、複数のユーザグループを作成するとともに前記複数のユーザグループにユーザを割り当てる機械学習プロセスを使用して前記ユーザグループに割り当てられ、
前記所与のカードが、前記所与のカードと以前にインタラクションした前記ユーザの異なるメンバーに基づいて特定される、
請求項9に記載のシステム。
前記所与のユーザが、(i)以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの時間の範囲、(ii)前記ユーザによって修正されたデータ、または(iii)前記所与のユーザが前記アカウントに関連するデータにアクセスする頻度のうちの少なくとも1つに基づいて前記ユーザグループに割り当てられる、請求項10に記載のシステム。
前記所与のユーザと同じ前記ユーザグループにおける複数のユーザの各々が、前記複数の異なるユーザの各々によって要求されたデータの種類に基づいて、異なる初期アカウントビューを提供される、請求項10に記載のシステム。
前記データセットの少なくとも一部が、(i)前記以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの種類、(ii)以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの時間の範囲、または(iii)前記以前のユーザセッションにおいて前記所与のユーザがデータを要求した地理的領域のうちの少なくとも1つに基づいて選択される、請求項9に記載のシステム。
コンピュータプログラムで符号化された非一時的コンピュータストレージ媒体であって、前記コンピュータプログラムが、1つまたは複数のデータ処理装置によって実行されるとき、前記データ処理装置に、
コンテンツアイテムのそれぞれの表現に対して、複数の異なるデバイスおよび複数の異なるリソース上の前記コンテンツアイテムの複数の異なる表現にわたって前記コンテンツアイテムがクライアントデバイスにおいてどのように視覚的に表現されたか判定することであって、前記コンテンツアイテムの各表現に対して、前記判定が、前記コンテンツアイテムが提示されたデバイスの種類に基づく、実施することと、
前記コンテンツアイテムが視覚的に表現されたそれぞれの異なる方法に対して、前記コンテンツアイテムが何回前記方法で提示されたかをカウントすることと、
前記カウントに基づいて、最も頻繁に提示された前記コンテンツアイテムの特定の視覚的表現を決定することと、
最も頻繁に提示された前記コンテンツアイテムの前記特定の視覚的表現を含む所与のディスプレイカードを生成することと、
所与のオンラインアカウントに対する異なるレポートを提供する複数の異なるディスプレイカードを含むダッシュボードユーザインターフェースの視覚化を生成することであって、前記複数の異なるディスプレイカードが、前記所与のディスプレイカードを前記ダッシュボードユーザインターフェースに挿入することを含む、同じユーザインターフェースにおける異なる種類のデータを提示する、生成することと、
前記ダッシュボードユーザインターフェースの前記視覚化を提示するために、クライアントデバイスのディスプレイを更新することと
を含む動作を実行させる命令を含む、非一時的コンピュータストレージ媒体。
前記所与のユーザが、複数のユーザグループを作成するとともに前記複数のユーザグループにユーザを割り当てる機械学習プロセスを使用して前記ユーザグループに割り当てられ、前記命令が、前記1つまたは複数のデータ処理装置に、前記所与のカードと以前にインタラクションした前記ユーザの異なるメンバーに基づいて前記所与のカードを特定することを含む動作を実行させる、請求項16に記載の非一時的コンピュータストレージ媒体。
前記所与のユーザが、(i)以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの時間の範囲、(ii)前記ユーザによって修正されたデータ、または(iii)前記所与のユーザが前記アカウントに関連するデータにアクセスする頻度のうちの少なくとも1つに基づいて前記ユーザグループに割り当てられる、請求項17に記載の非一時的コンピュータストレージ媒体。
前記所与のユーザと同じ前記ユーザグループにおける複数のユーザの各々が、前記複数の異なるユーザの各々によって要求されたデータの種類に基づいて、異なる初期アカウントビューを提供される、請求項17に記載の非一時的コンピュータストレージ媒体。
前記データセットの少なくとも一部が、(i)前記以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの種類、(ii)以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの時間の範囲、または(iii)前記以前のユーザセッションにおいて前記所与のユーザがデータを要求した地理的領域のうちの少なくとも1つに基づいて選択される、請求項16に記載の非一時的コンピュータストレージ媒体。
【発明を実施するための形態】
【0014】
様々な図面における同様の参照符号および参照記号は、同様の要素を示す。
【0015】
システムは、クライアントデバイスがデータの要求を送る前にクライアントデバイスにデータを送信し、クライアントデバイスにおいてデータをキャッシュすることによってデータを提示する際のレイテンシを削減することができる。しかし、概して、キャッシュされることが可能であるデータの量は、利用可能なデータの量よりも少ない。したがって、システムは、データをキャッシュすることによって与えられる恩恵(たとえば、より高速なユーザインターフェースの更新および/またはユーザインターフェースとのリアルタイムのインタラクション)が実現されることが可能であるように異なるユーザに関してどのデータをキャッシュすべきかを決定する。システムは、データを提示するユーザインターフェースとのユーザの以前のインタラクションに基づいてクライアントデバイスに提供するデータを選択することができる。たとえば、ユーザが特定のデータを特定の時間期間に複数回(たとえば、前週にデータを)要求した場合、システムは、ユーザがデータの要求を実際に送る前のその時間期間に特定のデータを提供してもよい。ユーザがデータの要求を後で送る場合、データは、ユーザデバイスにおいてキャッシュされており、クライアントデバイスがたとえばネットワークを介して遠隔のシステムからのデータを要求しなければならない場合よりも迅速に取得および提示されることが可能である。追加データがまた、クライアントデバイスへのより速い配信のために遠隔のシステムによってキャッシュされることが可能である。
【0016】
システムは、ユーザがシステムによって管理されたアカウントにアクセスするとき、ユーザに提示するためのデータおよびユーザのデバイスにおいてキャッシュするためのデータを送信することができる。たとえば、ユーザが自身のアカウントにログインするとき、システムは、ダッシュボード内に初期アカウントビューを含むユーザインターフェースと、ユーザのデバイスにおいてキャッシュするための追加データとを提供することができる。ダッシュボードは、システムによって提供されるユーザインターフェースとのユーザの以前のインタラクションに基づいてユーザのために選択されたデータの要約を含むアカウントの概要を含むことができる。データが提示される方法はまた、システムによって提供されるユーザインターフェースとのユーザの以前のインタラクションに基づいて選択されることが可能である。これらのユーザのインタラクションはたとえば、ユーザが閲覧したか、選択したか、もしくはユーザがインタラクションした特定のユーザインターフェース要素(たとえば、コントロール、ディスプレイカード(display card)など)、ユーザによって要求されたかもしくは修正されたデータの種類、および/またはデータの次元(dimension)(たとえば、特定の時間期間内のもしくは特定の地理的位置に関連するデータ)を含むことができる。そのとき、ユーザは、異なるデータを閲覧するかまたはデータの異なる種類の提示を閲覧するためにダッシュボードのユーザインターフェース要素とインタラクションすることができる。それに応答して、適切なデータが、キャッシュされたデータから取得されるか、またはデータを維持するシステムに要求されることが可能である。
【0017】
初期アカウントビュー内に提示されるデータおよび/またはクライアントデバイスにおいてキャッシュするために提供されるデータは、ユーザが割り当てられるユーザグループに基づいて選択されることが可能である。たとえば、ユーザの特定のグループは、同様の種類のデータを要求し、および/または同様の種類のユーザインターフェース要素とインタラクションしてもよい。特定の例において、同様の役割を有するが異なる組織内のユーザは、同様の種類のデータおよび同様の次元内のデータを要求し、閲覧してもよい。一部の実装において、所与のユーザのためにキャッシュされるデータは、たとえ所与のユーザがアクションを実行しなかったときでさえもグループ内のその他のユーザによって実行されたそれらのアクションに基づいて選択されることが可能である。
【0018】
図1は、プリキャッシュシステム110がクライアントデバイス130においてキャッシュするためのデータを提供する例示的な環境100である。プリキャッシュシステム110は、クライアントデバイス130から受信されたデータ要求140に応答してデータストレージデバイス115からのデータを提供することができる。クライアントデバイス130は、データ通信ネットワーク120、たとえばローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、またはこれらの組合せを介してデータ要求140を提供する。各データ要求140は、ユーザがクライアントデバイス130を使用して要求した特定のデータを指定することができる。
【0019】
各データ要求140に応答して、プリキャッシュシステム110は、要求されたデータをデータストレージデバイス115から取得し、要求されたデータ142をクライアントデバイス130に提供することができる。たとえば、プリキャッシュシステム110は、1つまたは複数のデータパケットの1つまたは複数の送信においてクライアントデバイス130に要求されたデータ142を送信してもよい。プリキャッシュシステム110はまた、データ要求140によって要求されなかった追加データ144を選択し、提供することができる。たとえば、クライアントデバイス130のユーザは、追加データ144を要求しない場合がある。追加データ144は、ユーザが追加データ144を要求する場合にネットワーク120を介して別のデータ要求を送ることなく迅速に提供されることが可能であるようにクライアントデバイス130においてキャッシュされることが可能である。たとえば、追加データ144は、クライアントデバイス130の高速キャッシュ135に記憶されることが可能である。高速キャッシュ135は、クライアントデバイス130にインストールされ、追加データ144を記憶する高速なメモリデバイスを含むことができる。
【0020】
一部の実装において、プリキャッシュシステム110は、クライアントデバイス130のユーザに基づいて追加データ144を選択する。たとえば、プリキャッシュシステム110は、ユーザに対してデータを提示する1つまたは複数のユーザインターフェース、たとえばプリキャッシュシステム110によって提供される1つまたは複数のユーザインターフェースとのユーザの以前のインタラクションに基づいて追加データ144を選択してもよい。追加データ144を選択するためにプリキャッシュシステム110が使用するユーザインタラクションはたとえば、ユーザがインタラクションしたユーザインターフェース要素(たとえば、コントロール、ディスプレイカード、グラフの種類など)、ユーザによって要求されたデータの種類(たとえば、キーワード、成果測定値、ビッド(bid)など)、ユーザによって要求された実際のデータ(たとえば、特定のキャンペーン、特定のキーワード、特定のコンテンツアイテムなど)、ユーザによって要求されたデータの次元(たとえば、特定の時間期間、特定の地理的位置、特定の値の範囲など)、ユーザがアカウントにどれだけ頻繁にアクセスするか、および/またはユーザによって選択されたプリファレンスを含むことができる。たとえば、ユーザが特定のコンテンツ配信キャンペーンに関する前週のインプレッションデータを以前のユーザセッション中に要求した場合、プリキャッシュシステム110は、ユーザがこのデータを要求する前に特定のキャンペーンに関する前週のインプレッションデータを現在のユーザセッションのための追加データとして提供してもよい。
【0021】
一部の実装において、一部のデータ要求140は、特定のデータの特定の要求ではなく包括的なまたは暗黙的な要求であってもよい。たとえば、プリキャッシュシステム110は、ユーザがアカウントにログインするかまたはその他の方法でアクセスすることに応じてアカウントの概要を提供する初期アカウントビューをともなうユーザインターフェース、たとえばダッシュボードを生成し、提供してもよい。データのこの要約は、概要に含まれるデータの特定の要求ではなくユーザがアカウントにログインすることに応じて選択されることが可能である。プリキャッシュシステム110はまた、ダッシュボードを閲覧した後にユーザが要求する場合がある追加データを選択し、提供することができる。
【0022】
一部の実装において、プリキャッシュシステム110はまた、プリキャッシュシステム110において追加データをキャッシュする場合がある。このような方法で、プリキャッシュシステムは、追加データを指定するデータ要求に応答してデータをより迅速に提供することができる。この追加データは、クライアントデバイス130に送信される追加データ144と同様にして選択されることが可能である。たとえば、プリキャッシュシステム110は、プリキャッシュするための追加データのセットを選択してもよい。プリキャッシュシステム110は、クライアントデバイスにおいてキャッシュするためにクライアントデバイス130に追加データのサブセットを送信してもよい。プリキャッシュシステム110はまた、プリキャッシュシステム110において追加データのサブセットをキャッシュする場合がある。たとえば、プリキャッシュシステム110は、ユーザが選択する見込みが最も大きいデータを追加データのセットから特定し、そのデータをクライアントデバイス130に提供してもよい。追加データのセットのうちの残りのデータは、プリキャッシュシステム110においてキャッシュされてもよい。プリキャッシュシステム110におけるこのキャッシュは、データの要求に応答してデータストレージデバイス115からデータを取得することがいくらか時間がかかり、データを取得するために使用される計算リソースの需要を増やす可能性があるときに、クライアントデバイス130にデータを提供する際のレイテンシを削減することができる。
【0023】
図2は、アカウント管理システム210がオンラインアカウントデータを管理し、アカウントデータを提示するユーザインターフェースを提供する例示的な環境200である。アカウント管理システム210は、1つまたは複数のデータセンターに置かれた1つまたは複数のサーバを含むことができる。1つまたは複数のサーバは、データ通信ネットワーク250、たとえばLAN、WAN、インターネット、またはこれらの組合せを介してオンラインアカウントデータの要求を受信することができる。たとえば、アカウント管理システム210は、オンラインデータの要求を受信し、要求されたデータをネットワーク250を介してクライアントデバイス262および272に提供する1つまたは複数のフロントエンドサーバ240を含むことができる。アカウント管理システム210はまた、フロントエンドサーバから要求を受信し、要求に基づいて適切なアカウントデータを取得し、取得されたデータをフロントエンドサーバ240に提供する1つまたは複数のバックエンドサーバを含むことができる。
【0024】
アカウント管理システム210は、複数の異なるアカウント保持者の複数の異なるアカウントのためのオンラインアカウントデータを管理することができる。たとえば、アカウント管理システム210は、複数の異なる組織、たとえばアカウント保持者260および270のためのアカウントデータを管理することができる。2つのアカウント保持者260および270が
図2に示されるが、アカウント管理システム210は、その他の数のアカウント保持者のためのアカウントデータを管理することができる。以下で説明されるシステムおよび技術は、様々なその他の種類のデータにも適用されることが可能である。
【0025】
アカウント管理システム210によって管理されるアカウントデータは、コンテンツアイテムに関する成果データ(たとえば、インプレッションの数、クリック率、コンバージョン率など)、アカウント保持者に関する予算情報、および/またはコンテンツアイテム配信基準などのアカウントに関連する任意のデータを含むことができる。各アカウント保持者に関するアカウントデータは、1つまたは複数のデータセンターに置かれた複数のデータストレージデバイスを含む場合があるアカウントデータストレージデバイス227に記憶される。各アカウント保持者に関するアカウントデータは、1人のアカウント保持者に関するアカウントデータが異なるアカウント保持者のユーザに提供されないように別々にかつ安全に記憶されてもよい。
【0026】
各アカウント保持者260および270は、アカウント保持者のアカウントに関連するデータを閲覧することを認可される1人または複数の認可されたユーザを有することができる。たとえば、組織は、アカウント管理システム210がアカウントデータを維持するキャンペーンを管理することを認可される複数のユーザを有してもよい。アカウント保持者260のアカウントデータにアクセスすることを認可された各ユーザは、クライアントデバイス262-1〜262-nを使用してアカウントデータにアクセスすることができる。同様に、アカウント保持者270のアカウントデータにアクセスすることを認可された各ユーザは、クライアントデバイス272-1〜272-nを使用してアカウントデータにアクセスすることができる。ユーザは、アカウントデータにアクセスできるようにされる前に資格証明情報(たとえば、ユーザ名およびパスワード)を入力するように促されてもよい。
【0027】
クライアントデバイスは、ネットワーク250を介して電子的なリソースおよびその他のデータを要求し、受信することができる電子デバイスである。例示的なクライアントデバイスは、パーソナルコンピュータ、モバイル通信デバイス(たとえば、スマートフォン、タブレットコンピューティングデバイス、および/またはスマートウォッチ)、ならびにネットワーク250を介してデータを送受信することができるその他のデバイスを含む。概して、クライアントデバイスは、ネットワーク250を介したデータの送受信を容易にするための、ウェブブラウザなどのユーザアプリケーションを含む。ウェブブラウザは、ユーザが概してウェブサイトのウェブページに置かれるテキスト、画像、ビデオ、音楽、およびその他の情報とインタラクションすることを可能にすることができる。クライアントデバイスは、特定の種類のデバイスまたは特定のプラットフォームのために開発されたその他のアプリケーション、たとえばネイティブアプリケーションを含むことができる。
【0028】
各クライアントデバイス262および272は、高速キャッシュ264およびアカウントビューア266を含むことができる。アカウントビューア266は、クライアントデバイスのユーザに対してアカウントデータを提示するアプリケーションである。アカウントビューア266は、下でより詳細に説明されるように、アカウント管理システム210からのアカウントデータを要求し、1つまたは複数のユーザインターフェースを使用してアカウントデータを提示するウェブブラウザまたはネイティブアプリケーションであってもよい。
【0029】
高速キャッシュ264は、アカウントビューア266によって提示されてもよいアカウントデータを記憶する高速なメモリデバイスを含む。たとえば、高速キャッシュ264は、スタティックランダムアクセスメモリ(SRAM)および/またはソリッドステートメモリデバイスを含んでもよい。高速キャッシュ264は、クライアントデバイスのユーザによってまだ要求されていないアカウントデータを記憶してもよい。ユーザが高速キャッシュ264に記憶されたアカウントデータを要求するとき、アカウントビューア266は、ネットワーク250を介してアカウントデータの要求を送ることなく、高速キャッシュ264から迅速にアカウントデータを取得することができる。このデータのプリキャッシュは、アカウントデータを提示する際のレイテンシを削減し、ネットワーク250およびアカウント管理システム210の計算リソースに対して課される要求を削減する。
【0030】
一部の実装において、アカウントビューア266は、アカウントデータの要求に応答して高速キャッシュ264を調べるように構成されることが可能である。要求されたアカウントデータが高速キャッシュ264内で見つかる場合、アカウントビューア266は、高速キャッシュ264からアカウントデータを取得し、アカウントデータをユーザに対して提示することができる。要求されたアカウントデータが高速キャッシュ内にない場合、アカウントビューア266はたとえば、ネットワーク250を介して要求を送ることによってアカウント管理システム210からのアカウントデータを要求することができる。
【0031】
アカウント管理システム210は、データ送信サブシステム220、インタラクションロガー230、およびユーザグループエンジン235を含む。データ送信サブシステム220は、アカウントデータの要求を受信しかつ応答する。データ要求は、特定のアカウントデータの特定の要求を含んでもよい。特定の要求の例は、特定の時間期間の間の、特定のキャンペーンに関する成果データの要求である。アカウント管理システム210はまた、包括的なまたは暗黙的な要求に応答してアカウントデータを提供することができる。包括的なまたは暗黙的な要求の例は、ユーザがアクセスすることを認可されるアカウントにユーザがログインすることである。この例において、データ送信サブシステム220は、ユーザのための初期アカウントビューを提供するためのデータの要約を選択してもよい。
【0032】
データ送信サブシステム220は、データセレクタ221およびユーザインターフェースジェネレータ229を含む。データセレクタ221は、クライアントデバイスから受信されたデータ要求(たとえば、特定の、包括的な、または暗黙的な要求)に応答して提供するアカウントデータを特定する。たとえば、データセレクタ221は、特定のデータ要求によって指定された特定のデータを取得するためにアカウントデータストレージデバイス227にアクセスしてもよい。包括的なまたは暗黙的なデータ要求に関して、データセレクタ221は、要求がなされた特定のユーザに基づいてアカウントデータのサブセットを選択することができる。アカウントデータのこのサブセットは、ユーザがアクセスすることを認可されるアカウントのアカウントデータのサブセットである。たとえば、下でより詳細に説明されるように、データセレクタ221は、アカウント管理システム210によって提供されるユーザインターフェースとのユーザの以前のインタラクションに基づいて提供するアカウントデータのサブセットを選択してもよい。
【0033】
ユーザインターフェースジェネレータ229は、アカウントデータを提示する様々なユーザインターフェースを生成することができる。ユーザインターフェースは、ユーザが様々なフォーマット(たとえば、グラフ、チャート、テーブルなど)の様々なデータを要求し、閲覧することを可能にするユーザインターフェース要素(たとえば、コントロール、ディスプレイカード、メニューなど)を含むダッシュボードを含むことができる。ダッシュボードは、ユーザがアカウントに最初にアクセスする度に、たとえばユーザがアカウントにログインすることに応じて初期アカウントビューを提示してもよい。初期アカウントビューはたとえば、アカウントの概要を提供し、アカウントにアクセスしているユーザに適合されるアカウントデータのサブセットを含むことができる。下でより詳細に説明されるように、アカウントデータの要約は、アカウント管理システム210によって提供されるユーザインターフェースとのユーザの以前のインタラクションに基づいて選択されたデータを含むことができる。
【0034】
ユーザインターフェースは、1つまたは複数のディスプレイカードユーザインターフェース要素を含むことができる。各ディスプレイカードは、特定の種類のデータを特定の方法で提示することができる。たとえば、第1のディスプレイカードが、コンテンツアイテムに関するインプレッションデータをテーブルにおいて提示してもよい一方、第2のディスプレイカードは、コンテンツアイテムを配信するための複数のキーワードに関するクリック率を棒グラフを使用して提示してもよい。一部の実装において、ユーザインターフェースジェネレータ229は、ディスプレイカードまたはその他のユーザインターフェース要素とのユーザの以前のインタラクションに基づいて初期アカウントビュー内に提供するディスプレイカードを選択する。たとえば、ユーザが特定のディスプレイカードを少なくとも閾値の回数閲覧することを選択する場合、ユーザインターフェースジェネレータ229は、初期アカウントビュー内に特定のディスプレイカードを提供してもよい。別の例において、ユーザインターフェースジェネレータ229は、ユーザが最も頻繁に閲覧することを選択する1つまたは複数のディスプレイカードを初期アカウントビュー内に含んでもよい。下でより詳細に説明されるように、ユーザインターフェースジェネレータ229はまた、ユーザが割り当てられるユーザグループに基づいて初期アカウントビュー内に含めるためのディスプレイカードを選択する場合がある。例示的なユーザインターフェースが、
図3に示され、下で説明される。
【0035】
インタラクションロガー230は、アカウント管理システム210によって提供されおよび/またはアカウントビューア266によって提示されるユーザインターフェースとのユーザのインタラクションを説明するデータをログに記録する。下でより詳細に説明されるように、このインタラクションデータは、ユーザに提供されるアカウントデータを選択するために使用される。たとえば、各ユーザは、アカウントデータを閲覧し、および/またはユーザが閲覧し、変更を行うことを認可されるアカウントに変更を行うために自身のアカウントにログインしてもよい。ユーザがログインされている間に、およびユーザの許可を受けて、インタラクションロガー230は、ユーザインターフェースとのユーザのインタラクションを説明するデータを受信し、安全なインタラクションログ232にデータを記憶することができる。たとえば、アカウントビューア266は、各インタラクションに関するデータを取得する埋め込みスクリプトを含んでもよく、インタラクションロガー230にデータを提供する。インタラクションログ232に記憶されるユーザのインタラクションを説明するデータはたとえば、ユーザがインタラクションしたユーザインターフェース要素(たとえば、コントロール、ディスプレイカード、グラフの種類など)、ユーザによって要求されたデータの種類(たとえば、キーワード、成果測定値、ビッドなど)、ユーザによって要求された実際のデータ(たとえば、特定のキャンペーン、特定のキーワード、特定のコンテンツアイテムなど)、ユーザによって要求されたデータの次元(たとえば、特定の時間期間、特定の地理的位置、特定の値の範囲など)、ユーザがアカウントにどれだけ頻繁にアクセスするか、ユーザによって選択されたプリファレンス、および/またはその他の適切なインタラクションデータを含むことができる。
【0036】
一部の実装において、インタラクションロガー230は、ログに記録されたデータを含む各ユーザに関するユーザプロファイルを生成する。ユーザに関するユーザプロファイルに、インタラクションロガー230は、ユーザがインタラクションした各ユーザインターフェース要素を特定するデータ、ユーザがユーザインターフェース要素とインタラクションした回数、および/またはユーザがユーザインターフェース要素とインタラクションした頻度を含んでもよい。ユーザに関するユーザプロファイルは、ユーザによって要求されたデータの各種類を特定するデータ、ユーザが各種類のデータを要求した回数、およびユーザが各種類のデータを要求する頻度も含んでよい。同じ特定するおよび頻度のデータが、ユーザによって要求された実際のデータのそれぞれの特定の部分に関して記憶されることが可能である。データの各種類に関して、および/またはユーザによって要求されたデータのそれぞれの特定の部分に関して、ユーザプロファイルは、データに関する次元を含むことができる。たとえば、ユーザが特定の時間期間中の特定のコンテンツアイテムの成果を要求した場合、ユーザプロファイルは、その種類のデータ(成果データ)に関しておよび実際のデータ(特定のコンテンツアイテムの成果)に関して特定の時間期間を指定するデータを含む。ユーザがオンラインアカウントにアクセスする各ユーザセッションの後で、ユーザインタラクションロガー230は、ユーザセッション中のデータおよびユーザインターフェース要素とのユーザのインタラクションを説明するようにユーザのプロファイルを更新することができる。
【0037】
ユーザグループエンジン235は、アカウント管理システム210によって提供されるユーザインターフェースとのユーザのインタラクションに基づいてユーザをユーザグループに割り当てることができる。たとえば、ユーザグループエンジン235は、ユーザのユーザプロファイルの間の類似性に基づいてユーザをユーザグループに割り当ててもよい。ユーザグループは、ユーザのユーザプロファイルに基づいてグループ内のそれぞれのその他のユーザと少なくとも閾値の類似性を有するユーザをユーザグループのメンバーとして含むことができる。たとえば、類似性のスコアが、2人のユーザのプロファイルに記憶されたデータの間の類似性に基づいてユーザの各ペアに関して決定されることが可能である。類似性のスコアが(たとえば、閾値を満たすかまたは超えることによって)閾値を満足する場合、2人のユーザは、ユーザグループにともに含まれてもよい。類似性のスコアは、2人のユーザの間の一致する特徴の数に基づくことが可能である。たとえば、2人のユーザが同じ種類のデータを要求したおよび/または同じユーザインターフェース要素を選択した場合、2人のユーザは、2人のユーザが同じ種類のデータを要求しなかったかまたは同じユーザインターフェース要素を選択しなかった場合よりも高い類似性のスコアを有する場合がある。ユーザグループは、下でより詳細に説明されるように、グループのメンバーに提供するアカウントデータおよびユーザインターフェース要素を特定するために使用されることが可能である。
【0038】
一部の実装において、ユーザグループは、組織内での特定の役割に基づく。たとえば、ユーザグループエンジン235が、プロダクトマネージャのためのユーザグループおよび会計士のための別のユーザグループを作成し、データを投入してもよい。特定の役割のためのユーザグループは、特定の役割のためのプロファイルと一致するかまたは類似しているユーザプロファイルを有するユーザを含むことができる。たとえば、特定の役割のユーザは、同様のデータの次元の同様の種類のデータにアクセスしおよび/または同じもしくは同様のユーザインターフェース要素を閲覧してもよい。
【0039】
ユーザグループは、複数の異なるアカウント保持者のためのユーザを含むことができる。たとえば、プロダクトマネージャのためのユーザグループは、複数の異なる組織のプロダクトマネージャを含んでもよい。このような方法で、複数の異なる組織からのユーザインタラクションのパターンが、同じ役割を有するユーザによって要求される見込みがより大きいか、またはその他の点で類似しているデータの種類を特定するために使用されることが可能である。ユーザをユーザグループに割り当てるための例示的なプロセスが、
図6に示され、下で説明される。
【0040】
上述のように、データセレクタ221は、アカウント管理システム210によって提供されるユーザインターフェースとのユーザの以前のインタラクションに基づいてユーザに提供するデータを選択することができる。特に、データセレクタ221は、アカウント管理システム210によって提供されるユーザインターフェースとのユーザの以前のインタラクションに基づいてユーザのための初期アカウントビュー内に提供するデータを選択してもよい。たとえば、ユーザがアカウント管理システム210のアカウントにアクセスするとき、データセレクタ221は、ユーザがアカウントにアクセスすることに応じてユーザのための初期アカウントビュー内に提供するアカウントデータの第1のデータセットと、潜在的にたとえそのデータが初期アカウントビューのために使用されない場合があるとしてもクライアントデバイスによってキャッシュされるデータとを選択してもよい。
【0041】
データセレクタ221は、特定のデータがユーザによって要求されるかもしくは閲覧される頻度、特定の種類のデータがユーザによって要求されるかもしくは閲覧される頻度、ユーザが特定のユーザインターフェース要素とインタラクションした頻度、および/またはユーザのプロファイルに含まれるその他のデータに基づいて第1のデータセットに含めるためのデータを選択してもよい。たとえば、初期アカウントビューはたとえば、ユーザインターフェースジェネレータ229によって選択された特定の数のカードを含んでもよい。データセレクタ221は、ディスプレイカードにデータを投入するための第1のデータセットを選択することができる。この第1のデータセットは、ディスプレイカードに含めるための最も頻繁に要求されたデータおよび/またはデータの最も頻繁に選択された種類を含んでもよい。
【0042】
データセレクタ221は、ユーザによって要求されたデータの次元に基づいて第1のデータセットを選択してもよい。たとえば、第1のデータセットは、ユーザがデータを以前に要求した特定の時間期間に関するデータを含んでもよい。特定の例において、ユーザは、最近のデータ、たとえば先週に起こったイベントに関するデータにのみ関心がある場合がある。この例において、ユーザは、より古いデータを要求することなく前週に関するデータを要求することが多い場合がある。データセレクタ221は、ユーザがログインする前の週に起こったイベントに関するデータを含む第1のデータセットを初期アカウントビュー内に提示するためにこのユーザに提供してもよい。データセレクタ221は、ユーザがデータを要求するまでこのユーザにより古いデータを提供しないと決定してもよく、より少ないデータがネットワークを介して提供され、クライアントデバイスに記憶される結果となる。
【0043】
第1のデータセットを選択する際に使用されるデータの次元はまた、頻度に基づいて選択される場合がある。たとえば、ユーザは、異なる時間期間または異なる地理的位置に関するデータを要求する場合がある。データセレクタ221は、最も頻繁に要求された時間期間または地理的位置に基づいて第1のデータセットを選択してもよい。
【0044】
データセレクタ221は、ユーザのための初期アカウントビュー内に提示されるデータの種類に基づいて初期アカウントビューのための第1のデータセットを選択してもよい。たとえば、特定のディスプレイカードが、特定の種類のデータを提示してもよい。特定のカードが初期アカウントビューのために選択される場合、データセレクタ221は、特定のディスプレイカードにデータを投入するために適切なデータを第1のデータセットに含めるために選択してもよい。
【0045】
一部の実装において、データセレクタ221はまた、ユーザが割り当てられたユーザグループまたは役割に基づいて第1のデータセットを選択することが可能である。たとえば、グループ内のまたは同じ役割を有するその他のユーザは、特定の種類のデータを要求するかまたは特定のユーザインターフェース要素(たとえば、特定のディスプレイカード)とインタラクションしてもよい。データセレクタ221は、ユーザがグループ内の(または同じ役割を割り当てられる)その他のユーザによって要求された種類のデータに関心がある場合があり、またはこれらの種類のデータが有用であると知る場合があるとき、これらの種類のデータを第1のデータセットに含めてもよい。もちろん、その他のアカウントからの実際のデータは、第1のデータセットに含まれない。その代わりに、データセレクタ221は、グループ内のその他のユーザが要求した同じ種類のアカウントデータをユーザがアクセスすることを認可されるアカウント内で特定してもよい。
【0046】
データセレクタ221は、ユーザグループ内のその他のユーザによって要求される種類のデータをグループ内のその他のユーザが要求するかまたは閲覧する頻度に基づいて、第1のデータセットに含めるためにその種類のデータを選択することができる。たとえば、グループが全体として特定の種類のデータを最も頻繁に要求するかまたは閲覧する場合、その特定の種類のデータが第1のデータセットに含まれてもよい。データセレクタ221はまた、ユーザグループ内のその他のユーザによって要求される種類のデータを要求するかまたは閲覧するその他のユーザの数に基づいて、第1のデータセットに含めるためにその種類のデータを選択することが可能である。たとえば、最も多くのユーザ(または少なくとも閾値の数のユーザ)によって要求されるかまたは閲覧される特定の種類のデータが第1のデータセットに含まれてもよい。
【0047】
同様に、ユーザインターフェースジェネレータ229は、ユーザグループ内のその他のユーザが選択したかまたは閲覧したユーザインターフェース要素に基づいて初期アカウントビューに含めるユーザインターフェース要素、たとえばディスプレイカードを選択することができる。たとえば、ユーザインターフェースジェネレータ229は、ユーザグループ内のユーザがユーザインターフェース要素を選択したかもしくは閲覧した回数および/またはユーザインターフェース要素を選択したかもしくは閲覧したグループ内のユーザの数に基づいて初期アカウントビューのためのユーザインターフェース要素を選択してもよい。
【0048】
アカウント管理システム210によって提供されるユーザインターフェースとのユーザの以前のインタラクションに基づいておよび/またはグループに含まれるその他のユーザのそのユーザとのインタラクションに基づいてユーザのための初期アカウントビュー内に含めるユーザインターフェース要素およびデータを選択することによって、アカウント管理システム210は、ユーザにとって最も有用である見込みが大きいデータの要約を提供することができ、それによって、データの要約の有用性を高める。これは、より高いユーザの満足と、ユーザによって提出される追加データの要求の数の削減とをもたらすことができる。したがって、この選択プロセスは、ネットワークに対して課される要求およびネットワークによって引き起こされるレイテンシを削減することができる。
【0049】
データセレクタ221は、プリキャッシュエンジン223およびキャンペーングルーパ(campaign grouper)225を含む。プリキャッシュエンジン223は、アカウントデータの要求に応答してクライアントデバイスに提供する1つまたは複数の第2のデータセットを選択することができる。プリキャッシュエンジン223は、特定のデータの特定の要求および/またはデータの包括的なもしくは暗黙的な要求(たとえば、ユーザがアカウントにログインすること)に応答して第2のデータセットを選択することができる。プリキャッシュエンジン223は、第2のデータセットに含まれるデータの要求を受信する前に第2のデータセットを選択し、提供することができる。たとえば、第2のデータセットは、特定の要求において指定されなかった、または初期アカウントビューのために提供される第1のデータセットに含めるために選択されなかったデータであることができる。
【0050】
プリキャッシュエンジン223は、特定の要求に応答して取得されたアカウントデータとともに、または第1のデータセットとともに、第2のデータセットをクライアントデバイスに送信することができる。あるいは、プリキャッシュエンジン223は、その他のデータがクライアントデバイスに送信された後、第2のデータセットを提供することができる。クライアントデバイスは、第2のデータセットを高速キャッシュ264に記憶することができる。このような方法で、第2のデータセットのアカウントデータが、ユーザがそのようなデータを要求する場合にユーザにより迅速に提示されることが可能である。
【0051】
プリキャッシュエンジン223は、アカウント管理システム210によって提供されるユーザインターフェースとのユーザの以前のインタラクションおよび/またはユーザが割り当てられたユーザグループもしくは役割に基づいてユーザのための第2のデータセットに含めるためのデータを選択することができる。第1のデータセットを選択するために使用される同様の基準が、第2のデータセットを選択するために使用されることが可能である。たとえば、プリキャッシュエンジン223は、特定のデータがユーザによって要求されるかもしくは閲覧される頻度、特定の種類のデータがユーザによって要求されるかもしくは閲覧される頻度、ユーザが特定のユーザインターフェース要素とインタラクションした頻度、ユーザによって要求されたデータの次元、ユーザグループ内のその他のユーザがある種のデータを要求するかもしくは閲覧する頻度、ある種のデータを要求するかまたは閲覧するユーザグループ内のその他のユーザの数、ならびに/またはユーザインターフェースとのユーザのインタラクションに関するその他の適切なデータおよびユーザインターフェースとのその他のユーザのインタラクションに関するデータに基づいて第2のデータセットに含めるためのデータを選択することができる。
【0052】
一部の実装においては、第1のデータセットが、ユーザインターフェースとのユーザの以前のインタラクションに基づいて選択されてよい一方、第2のデータセットは、ユーザが割り当てられたユーザグループまたは役割のその他のユーザのインタラクションに基づいて選択される。一部の実装においては、第1のデータセットおよび第2のデータセットが、両方ともアカウント管理システム210によって提供されるユーザインターフェースとのユーザの以前のインタラクションとユーザが割り当てられたユーザグループまたは役割のその他のユーザのインタラクションとの組合せに基づいて選択される。この例において、ユーザのインタラクションは、ユーザが割り当てられたユーザグループまたは役割のその他のユーザのインタラクションよりも重い重みを与えられてもよい。
【0053】
一部の実装において、プリキャッシュエンジン223は、第2のデータセット、第2のデータセットの一部、または異なる第3のデータセットをフロントエンドサーバ240の高速キャッシュ245に記憶してもよい。たとえば、フロントエンドサーバ240は、SRAMおよび/またはソリッドステートメモリデバイスなどの高速メモリを含む高速キャッシュ245を含むかまたは高速キャッシュ245に結合されてもよい。一部の実装において、第2のデータセットは、クライアントデバイスの高速キャッシュではなくアカウント管理システム210の高速キャッシュ245に記憶されてもよい。一部の実装においては、第2のデータセットの一部が、アカウント管理システム210の高速キャッシュ245に記憶され、第2のデータセットの一部が、クライアントデバイスにおいてキャッシュされる。
【0054】
一部の実装において、第2のデータセットは、クライアントデバイスの高速キャッシュに記憶されてもよく、第3のデータセットは、アカウント管理システム210の高速キャッシュ245に記憶されてもよい。第3のデータセットは、第2のデータセットと同様にして選択されてもよい。追加データをフロントエンドサーバに記憶することによって、それがアカウントデータストレージデバイス227からのデータを特定し、取り出すために必要とされる時間を除去するので、追加データの要求に応答して追加データを提示する際のレイテンシが削減されることが可能である。
【0055】
キャンペーングルーパ225は、類似しているが、キャンペーンのすべてが異なる特定の特徴を有するキャンペーンのグループ(または情報のその他のグループ)を特定することができる。たとえば、アカウント保持者は、同じキーワードおよびコンテンツアイテムを使用する、同じ製品またはサービスに関する複数の異なるキャンペーンを有していてもよい。しかし、各キャンペーンは、異なる州を対象としていてもよい。この例において、コンテンツアイテム配信基準は、各キャンペーンのためのコンテンツアイテムが配信されることが可能である州を除いて各キャンペーンに関して同じであってもよい。キャンペーングルーパ225は、これらのキャンペーンを特定し、キャンペーングループに追加することができる。
【0056】
ユーザインターフェースジェネレータ229は、キャンペーンの間の違いと、違いに基づくキャンペーンの成果の任意の違いとを強調する各キャンペーングループのための視覚化を生成することができる。前の例を続けると、ユーザインターフェースジェネレータ229は、50州の地図を含む視覚化を生成してもよい。地図上で、視覚化はたとえば、成果の数字、成果を示す色、または異なる州におけるキャンペーンの間の違いを強調する別の視覚効果を使用して、各州におけるキャンペーンの成果を強調してもよい。
【0057】
別の例において、ユーザインターフェースジェネレータ229は、コンテンツアイテムがキャンペーンのために提供される曜日に基づき異なる同じまたは類似したキャンペーンの成果の違いを強調する視覚化を生成してもよい。たとえば、異なる曜日のキャンペーンの相対的な成果を示すために、ヒートマップが使用されてもよい。さらに別の例においては、複数のキャンペーンが、キーワードマッチングの種類(たとえば、完全一致(exact match)、部分一致(broad match)など)にのみ基づいて異なってもよい。この例において、ユーザインターフェースは、キーワードマッチングの各種類に関してキャンペーンの成果を提示してもよい。
【0058】
図3は、アカウントデータが提示される例示的なユーザインターフェース310のスクリーンショット300である。例示的なユーザインターフェース310は、アカウントのためにダッシュボード内に表示されるアカウントの初期アカウントビューを含む。初期アカウントビューはたとえば、ユーザがアカウントにアクセスした以前のユーザセッション中のユーザインターフェースとの所与のユーザのインタラクションに基づいて所与のユーザのために生成されることが可能である。
【0059】
ユーザインターフェース310は、メニュー320と、ディスプレイカードのセット330とを含む。メニュー310は、ユーザが閲覧するために選択することができるその他のディスプレイカードのリストを提供することが可能である。メニュー310は、ユーザが閲覧するために選択することができるデータのリストも提供することが可能である。メニュー320内のアイテムの選択に応じて、ユーザインターフェース310は、ユーザインターフェース310を提示するクライアントデバイスに、選択されたディスプレイカードまたは選択されたデータを要求させることができる。たとえば、クライアントデバイスは、まず、選択されたデータ(または選択されたディスプレイカード内に提示されることになるデータ)がキャッシュに記憶されているかどうかを判定するためにクライアントデバイスのキャッシュにアクセスしてもよい。記憶されている場合、クライアントデバイスは、キャッシュからデータを取得し、データをユーザインターフェース310内に提示することができる。データがキャッシュに記憶されていない場合、クライアントデバイスは、遠隔のシステム、たとえば
図2のアカウント管理システム210からのデータを要求することができる。
【0060】
各ディスプレイカードは、特定の種類のデータを特定の方法で提示することができる。たとえば、ディスプレイカード331は、キャンペーンに関する成果データ(たとえば、コンバージョン数、クリック数、およびインプレッション数)ならびにコストデータを提示する。ディスプレイカード331はまた、このデータを数値的フォーマットで提示し、少なくとも成果および/またはコストデータの一部を提示する折れ線グラフを含む。
【0061】
ディスプレイカード333は、いくつかのキャンペーンに関する成果およびコストデータをテーブルフォーマットで提示する。同様に、ディスプレイカード337は、コンテンツアイテムを配信するために使用されたいくつかのキーワードに関する成果およびコストデータをテーブルフォーマットで提示する。別のディスプレイカード335は、キャンペーンのためのコンテンツアイテムが提示された異なる種類のデバイスに関する成果およびコストデータを示す棒グラフを提示する。さらに別のディスプレイカード339は、キャンペーンの測定基準(たとえば、成果測定値、コスト測定値など)を示すヒートマップを経時的に提示する。たとえば、ヒートマップ内の各正方形の暗さは、対応する時間に関する測定基準の値に基づいて変化してもよい。ヒートマップの時間の範囲は、ディスプレイカード339の最上部の「日」、「日および時間」、または「時間」を選択することによって調整されることが可能である。
【0062】
上で検討されたように、初期アカウントビューに含まれるディスプレイカードおよび/またはデータは、ユーザインターフェースとのユーザの以前のインタラクションおよび/またはユーザが割り当てられたユーザグループに基づいて選択されることが可能である。たとえば、ディスプレイカード331〜339およびディスプレイカード331〜339によって提示されるデータは、アカウントによる以前のユーザセッション中にユーザがディスプレイカード331〜339を選択することに基づいて選択されてもよい。加えて、ディスプレイカード333に含まれるキャンペーンは、これらのキャンペーンに関連するデータをユーザが以前に要求することに基づいて選択されてもよい。同様に、ディスプレイカード337に含まれるキーワードは、これらのキーワードに関連するデータをユーザが要求することに基づいて選択されてもよい。別の例において、ディスプレイカード339内に提示される時間の範囲は、ユーザがその時間期間にデータを閲覧するためにディスプレイカード339(または別のディスプレイカード)と以前にインタラクションすることに基づいて選択されてもよい。
【0063】
追加データを有する追加的なカードが、ユーザが追加的なカードを要求する前にクライアントデバイスに提供され、クライアントデバイスにおいてキャッシュされることが可能である。たとえば、ユーザインターフェース310は、5つのディスプレイカード331〜339を含む。しかし、ユーザは、9つの異なるディスプレイカードを閲覧することが多い場合がある。ユーザインターフェース内に提示される5つのディスプレイカードおよびその他の4つのディスプレイカードは、ユーザがアカウントにログインするときに(ディスプレイカード内に提示されるデータと一緒に)クライアントデバイスに提供されることが可能である。このような方法で、ユーザが4つのディスプレイカードのうちの1つを選択するとき、選択されたディスプレイカードが、ネットワークを介して別の要求を送ることなく迅速にユーザに提示されることが可能である。
【0064】
別の例示的なディスプレイカードは、特定のコンテンツアイテムがユーザのデバイスにおいて表示された方法を示すことができる。たとえば、コンテンツアイテムは、コンテンツアイテムが提示されるクライアントデバイスの種類(たとえば、コンテンツアイテムはスマートフォン上ではデスクトップコンピュータとは異なって提示されてもよい)、コンテンツアイテムが提示されるリソース上の位置(たとえば、コンテンツアイテムはウェブページの最上部にウェブページの片側とは異なるように提示されてもよい)、またはコンテンツアイテムが提示されたリソースの種類(たとえば、コンテンツアイテムは検索結果ページ上にブログ上とは異なるように提示されてもよい)に基づいて異なる方法で提示されてもよい。このディスプレイカードに関して、ユーザインターフェースジェネレータ229は、コンテンツアイテムがコンテンツアイテムの各インプレッションに関してどのような方法で表示されたかに関して確率的判定を行い、コンテンツアイテムがどのような方法で提示されたかの表現を表示することができる。たとえば、ユーザインターフェースジェネレータ229は、コンテンツアイテムが提示されたデバイスの種類、コンテンツアイテムが提示されたリソースの位置、コンテンツアイテムが提示されたリソースの種類、および/またはコンテンツアイテムの提示に影響を与えることが可能なその他の適切なデータに基づいて特定のインプレッションに関して確率的判定を行ってもよい。
【0065】
ディスプレイカードは、コンテンツアイテムが提示されたと判定された方法のサブセットを提示することができる。たとえば、ユーザインターフェースジェネレータ229は、コンテンツアイテムがコンテンツアイテムの各インプレッションに関してどのような方法で表示されたかに関して確率的判定を行ってもよい。ユーザインターフェースジェネレータ229は、確率的判定に基づいて、コンテンツアイテムが提示された場合があるそれぞれの方法に関してインプレッション数を数えてもよい。それから、ユーザインターフェースジェネレータ229は、最も多くのインプレッションを有する方法のためのコンテンツアイテムの表現を示すディスプレイカードを生成してもよい。たとえば、インプレッションに基づいて上位4つの表現が、ディスプレイカード内に提示されてもよい。このような方法で、ユーザが、コンテンツアイテムがどのような方法でユーザに対して提示された見込みが大きいかを素早く見ることができる。
【0066】
図4は、アカウントデータを提示する際のレイテンシを削減するための例示的なプロセス400の流れ図である。プロセス400の動作はたとえば、
図1のアカウント管理システム210などのデータ処理装置によって実装されることが可能である。プロセス400は、コンピュータストレージ媒体に記憶された命令によって実装されることも可能であり、データ処理装置による命令の実行が、データ処理装置にプロセス400の動作を実行させる。
【0067】
所与のユーザが、オンラインアカウントに関して認証される(402)。オンラインアカウントは、ユーザがアクセスすることができるアカウントであってもよい。たとえば、ユーザは、アカウント管理システムが組織のアカウントデータを管理する組織の従業員であってもよい。複数の異なるユーザは、アカウントにアクセスすることができてもよい。たとえば、組織は、従業員に関連するデータを閲覧するおよび/または修正するためにそれぞれがオンラインアカウントにアクセスすることができる異なる役割(たとえば、プロダクトマネージャ、ブランドマネージャ、キャンペーンマネージャなど)の異なる従業員を有していてもよい。
【0068】
所与のユーザは、所与のユーザのクライアントデバイスを通じて提出されたデータに基づいて認証されてもよい。たとえば、ユーザは、オンラインアカウントにアクセスするための一意のユーザ名およびパスワードを提供してもよい。ユーザは、所与のユーザによって提供されたユーザ名およびパスワードが所与のユーザに関して記憶されたユーザ名およびパスワードと一致する場合、オンラインアカウントに関して認証されてもよい。
【0069】
ユーザを認証することに応じて、所与のユーザに関してユーザセッションが開始される(404)。ユーザセッションは、ユーザがオンラインアカウントに関するアカウントデータを閲覧することを可能にする。アカウントデータは、1つまたは複数のユーザインターフェースを使用してユーザに提示されることが可能である。たとえば、ダッシュボードが、ユーザに提示されてもよい。このダッシュボードは、初期アカウントビューをアカウントの概要とともに含むことができる。加えて、ダッシュボードは、ユーザが追加データを要求するかまたは所与のユーザが関心がある場合があるその他のディスプレイカードを選択することを可能にするリンクまたはその他のユーザインターフェースコントロールを含んでもよい。
【0070】
所与のユーザが割り当てられるユーザグループが特定される(406)。たとえば、所与のユーザは、以前のユーザセッション中にアカウントのユーザインターフェース内に提示されたユーザインターフェース要素との所与のユーザのインタラクションとユーザインターフェース要素とのその他のユーザのその他のインタラクションとの間の類似性に基づいて1つまたは複数のユーザグループに割り当てられてもよい。所与のユーザは、以前のユーザセッション中に所与のユーザによって要求された少なくとも1つのデータの種類とその他のユーザによって要求された少なくとも1つのデータの種類との間の類似性に基づいてユーザグループに割り当てられてもよい。ユーザをユーザグループに割り当てるための例示的なプロセスが、
図6に示され、下で説明される。
【0071】
オンラインアカウントに関連する第1のデータセットが、選択される(408)。第1のデータセットは、ユーザがアクセスすることを認証されたオンラインアカウントのアカウントデータを含む。たとえば、第1のデータセットは、オンラインアカウントの概要を所与のユーザに提供する初期アカウントビュー内で提示するためのアカウントデータを含んでもよい。初期アカウントビューは、所与のユーザのためにカスタムされ、ユーザインターフェース要素(たとえば、特定のディスプレイカード、コントロール、グラフなど)のユーザの以前の要求および/もしくはユーザインターフェース要素(たとえば、特定のディスプレイカード、コントロール、グラフなど)とのインタラクション、所与のユーザの要求もしくはデータもしくはデータの種類に対する修正、データの特定の次元の所与のユーザの要求もしくは閲覧(たとえば、時間期間、地理的位置など)、所与のユーザがオンラインアカウントにどれだけ頻繁にアクセスするか、所与のユーザによって選択されたプリファレンス、所与のユーザが割り当てられたユーザグループ、ならびに/またはその他の適切なデータに基づいてもよい。初期アカウントビューは、単一の提示へと組み合わされ、オンラインアカウントの概要を所与のユーザに提供する複数の異なる種類のデータを提示することができる。
【0072】
一部の実装において、初期アカウントビュー内に提示するための第1のデータセットは、所与のユーザの以前のユーザセッションにおいて提示されたユーザインターフェースとのユーザの以前のインタラクションおよび/または所与のユーザが割り当てられたユーザグループに基づいて、オンラインアカウントに関するアカウントデータのデータストアから選択されてもよい。たとえば、第1のデータセットは、以前のユーザセッション中に所与のユーザによって要求されたデータの種類および/または所与のユーザの以前のユーザセッション中に所与のユーザがインタラクションしたユーザインターフェース要素に基づいて選択されてもよい。また、第1のデータセットは、所与のユーザが割り当てられたユーザグループ内のその他のユーザによって要求されたデータの種類および/またはその他のユーザがインタラクションしたユーザインターフェース要素に基づいて選択されてもよい。
【0073】
オンラインアカウントに関連する第2のデータセットが選択される(410)。第2のデータセットは、初期アカウントビュー内に提示されないデータを含むことができる。その代わりに、第2のデータセットは、クライアントデバイスにおいてキャッシュするために所与のユーザのクライアントデバイスに送信されてもよい。このような方法で、所与のユーザが初期アカウントビュー内に示されないが第2のデータセットに含まれる追加データを閲覧することを要求する場合、追加データは、遠隔のデバイスからの追加データを要求することなく所与のユーザに提示されることが可能である。したがって、追加データを提示する際のレイテンシが削減されることが可能である。
【0074】
概して、第2のデータセットは、所与のユーザに関連する見込みが大きいが、第1のデータセット内のデータほどには関連性がない場合があるデータを含んでもよい。また、第2のデータセットは、所与のユーザの以前のユーザセッションにおいて提示されたユーザインターフェースとのユーザの以前のインタラクションおよび/または所与のユーザが割り当てられたユーザグループに基づいて選択されることが可能である。たとえば、第2のデータセットは、所与のユーザが割り当てられたユーザグループ内の少なくとも閾値の数のその他のユーザによって要求された、またはユーザグループ内のその他のユーザによって少なくとも閾値の回数要求されたデータであってもよい。
【0075】
アカウントのためのユーザインターフェースが、第1のデータセットの少なくとも一部を提示するために更新される(412)。たとえば、所与のユーザが認可データを提出したユーザインターフェースが、所与のユーザのためのアカウントの初期アカウントビューを提示するために更新されることが可能である。所与のユーザにオンラインアカウントの概要を提供する初期アカウントビューは、第1のデータセットの少なくとも一部を含むことができる。
【0076】
クライアントデバイスにおいて第1のデータセットまたは第2のデータセットの追加の部分を提示するときにユーザインターフェースを更新する際のレイテンシが、クライアントデバイスからの第2のデータセットの要求を受信する前にクライアントデバイスに第2のデータセットを提供することによって削減される(414)。たとえば、第2のデータセットは、第1のデータセットとともにクライアントデバイスに送信されることが可能である。別の例において、第2のデータセットは、第1のデータセットがクライアントデバイスに送信された後であるが、第2のデータセットの要求が受信される前にクライアントデバイスに送信されることが可能である。第2のデータセット(および第1のデータセット)は、クライアントデバイスにおいて要求されるときにキャッシュされたデータを提示する際のレイテンシを削減するためにクライアントデバイスのキャッシュに記憶されることが可能である。
【0077】
各ユーザセッションの後、所与のユーザのプロファイルは、ユーザセッション中のデータおよびユーザインターフェース要素との所与のユーザのインタラクションに基づいて更新されることが可能である。プロファイルに対する更新に基づいて、ユーザのための初期アカウントビューが更新されてもよい。たとえば、初期アカウントビューは、ユーザセッション中にユーザが要求したディスプレイカードおよび/またはユーザセッション中にユーザが要求したかもしくは修正したデータを提示するために更新されてもよい。第1のデータセットおよび/または第2のデータセットに含まれるものは、所与のユーザのプロファイルに対する更新に基づいて同様に更新されてもよい。
【0078】
クライアントデバイスのキャッシュはたとえば、データが変わったかまたはデータがキャッシュに少なくとも閾値の量の時間記憶された場合、更新されたデータによってリフレッシュされてもよい。しかし、キャッシュを更新することに関連するコストが存在する。たとえば、大量のデータが、取得され、ネットワークを介して送信される必要がある場合がある。したがって、プリキャッシュエンジン、たとえば
図1のプリキャッシュエンジン223が、これらのコストおよびキャッシュを更新することに関連する利益に基づいてキャッシュを更新すべきかどうかを判定することができる。
【0079】
図5は、キャッシュを更新するための例示的なプロセス500の流れ図である。プロセス500の動作はたとえば、
図1のアカウント管理システム210などのデータ処理装置によって実装されることが可能である。プロセス500は、コンピュータストレージ媒体に記憶された命令によって実装されることも可能であり、データ処理装置による命令の実行が、データ処理装置にプロセス500の動作を実行させる。
【0080】
クライアントデバイスのキャッシュを更新するためのトリガが特定される(502)。一部の実装において、トリガは、キャッシュに記憶するためにデータがクライアントデバイスに送信されてから経過した時間の量に基づいてもよい。トリガは、キャッシュに記憶されたデータがキャッシュに記憶された値から変わったかどうかに基づくことも可能である。たとえば、コンテンツアイテムに関するコンバージョン数は、キャッシュがコンテンツアイテムに関するコンバージョン数を含むデータを投入された後に起こった新しいコンバージョンイベントが原因で増えた場合がある。トリガは、データがキャッシュに記憶するためにクライアントデバイスに送信されてから変わったデータアイテムの数に基づくことが可能である。たとえば、少なくとも閾値の数のデータアイテムが変わった場合、キャッシュの更新がトリガされてもよい。トリガは、アカウントデータに対するユーザの修正に基づくことも可能である。
【0081】
トリガを特定することに応じて、キャッシュを更新すべきかどうかの判定がなされる(504)。判定は、キャッシュを更新することに関連するコストおよびキャッシュを更新することに関連する利益に基づくことが可能である。たとえば、キャッシュへの更新は、更新されたデータを取得し、更新されたデータをクライアントデバイスに送信するための計算リソースおよびネットワークリソースの使用を必要とする。別のコストは、更新されたデータによってキャッシュを更新するのにかかる時間の量である。
【0082】
利益は、古いデータではなく最新のデータを提示することを含む。利益はまた、たとえばデータを閲覧するユーザの要求に応答してクライアントデバイスが更新されたデータを要求する場合に更新されたデータを提示する際の削減されたレイテンシを含む場合がある。しかし、ユーザへの最新のデータの利益はデータの種類によって決まる場合がある。たとえば、前年に関するインプレッションデータは、変わる見込みが小さく、いずれの変更も最小限である見込みが大きい。したがって、過去の時間期間に関するデータによってキャッシュを更新することの利益は、ほとんど恩恵がない場合がある。しかし、当日の成果データを更新することの利益は、ユーザに非常に恩恵がある場合がある。
【0083】
一部の実装において、キャッシュを更新すべきかどうかの判定は、キャッシュに記憶されたデータの種類および/またはデータの量に基づく。たとえば、一部の種類のデータは、取得し、ネットワークを介して提供するのにより長い時間がかかり、および/または送信されなければならないより多くのデータを含むことが可能である。一部の実装において、キャッシュを更新すべきかどうかの判定は、キャッシュに記憶されたデータの種類および/またはデータの量に関連する履歴的データに基づく。たとえば、判定は、以前の問い合わせのパターンに関する以前のレイテンシの数の分析に基づいてもよい。
【0084】
キャッシュを更新しない判定がなされる場合、キャッシュは更新されない。その代わりに、プロセス500は、別のトリガが特定され、そのときにキャッシュを更新すべきかどうかの別の判定がなされることが可能になるまで待ってもよい。キャッシュを更新する判定がなされる場合、更新されたデータが、キャッシュに記憶されたデータの少なくとも一部に関して取得される(506)。たとえば、キャッシュされたデータのすべてが、更新される場合がある。別の例においては、データがクライアントデバイスにおいてキャッシュされてから変更されたデータのみが更新される場合がある。
【0085】
更新されたデータがクライアントデバイスに送信される(508)。たとえば、更新されたデータは、1つまたは複数のデータパケットの1つまたは複数のデータ送信を使用してネットワークを介してクライアントデバイスに送信されてもよい。受信されると、クライアントデバイスは、以前のキャッシュされたデータを更新されたデータによって置き換えることができる。
【0086】
図6は、所与のユーザをユーザグループに割り当て、ユーザグループに基づいて所与のユーザに提供するデータを特定するための例示的なプロセス600の流れ図である。プロセス600の動作はたとえば、
図1のアカウント管理システム210などのデータ処理装置によって実装されることが可能である。プロセス600は、コンピュータストレージ媒体に記憶された命令によって実装されることも可能であり、データ処理装置による命令の実行が、データ処理装置にプロセス600の動作を実行させる。
【0087】
所与のユーザに関するユーザプロファイルが取得される(602)。所与のユーザに関するユーザプロファイルは、アカウントデータを提示するユーザインターフェースとの以前のユーザインタラクションを説明するデータを含むことができる。たとえば、上述のように、所与のユーザに関するユーザプロファイルは、所与のユーザがインタラクションした各ユーザインターフェース要素を特定するデータ、所与のユーザがユーザインターフェース要素とインタラクションした回数、および/または所与のユーザがユーザインターフェース要素とインタラクションした頻度を含んでもよい。所与のユーザに関するユーザプロファイルは、所与のユーザによって要求されたかまたは修正されたデータの各種類を特定するデータ、所与のユーザが各種類のデータを要求したかまたは修正した回数、および所与のユーザが各種類のデータを要求するかまたは修正する頻度も含んでよい。同じ特定するおよび頻度のデータが、所与のユーザによって要求されたかまたは修正された実際のデータのそれぞれの特定の部分に関して記憶されることが可能である。データの各種類に関して、および/または所与のユーザによって要求されたデータのそれぞれの特定の部分に関して、ユーザプロファイルは、データに関する次元(たとえば、データのための時間期間または地理的位置)を含むことができる。
【0088】
所与のユーザが、所与のユーザに関するユーザプロファイルに基づいてユーザグループに割り当てられる(604)。一部の実装において、所与のユーザは、所与のユーザのプロファイルとその他のユーザのユーザプロファイルとの間の類似性に基づいてユーザグループに割り当てられる。たとえば、所与のユーザは、類似したユーザプロファイルを持つその他のユーザを有するユーザグループを割り当てられてもよい。特に、所与のユーザは、以前のユーザセッション中にユーザのアカウントのためのユーザインターフェース内に提示されたユーザインターフェース要素(たとえば、コントロール)との所与のユーザのインタラクションとユーザインターフェース内に提示されたユーザインターフェース要素とのその他のユーザのその他のインタラクションとの間の類似性に基づいてユーザグループに割り当てられてもよい。また、所与のユーザは、所与のユーザによって要求されたデータの種類とその他のユーザによって要求されたデータの種類との間の類似性、および/または所与のユーザによって要求されたデータの次元とその他のユーザによって要求されたデータの次元との間の類似性に基づいてユーザグループに割り当てられてもよい。
【0089】
一部の実装においては、機械学習プロセスが、ユーザのユーザプロファイルの間の類似性に基づいてユーザグループを生成し、データを投入するために使用される。たとえば、機械学習プロセスは、決定木、ニューラルネットワーク、ディープラーニング、および/またはクラスタリング技術に基づいてもよい。
【0090】
データおよびユーザインターフェース要素の種類が、所与のユーザが割り当てられるユーザグループに基づいて所与のユーザに関して特定される。たとえば、所与のユーザは、グループ内のその他のユーザによって要求された種類のデータおよび/またはグループ内のその他のユーザによって選択されるかもしくは閲覧されたユーザインターフェース要素を提供されてもよい。特定の例において、所与のユーザは、ユーザグループ内の少なくとも閾値の数のユーザによって要求された種類のデータまたはユーザグループ内のユーザによって最も頻繁に要求された種類のデータを提供されてもよい。同様に、所与のユーザは、グループ内の少なくとも閾値の数のユーザによって選択されたかもしくは閲覧されたユーザインターフェース要素および/またはユーザグループ内のユーザによって最も頻繁に選択されたかもしくは閲覧されたユーザインターフェース要素を提供されてもよい。
【0091】
図7は、複数のキャンペーンのためのアカウントデータを提示する視覚化を生成するための例示的なプロセス700の流れ図である。プロセス700の動作はたとえば、
図1のアカウント管理システム210などのデータ処理装置によって実装されることが可能である。プロセス700は、コンピュータストレージ媒体に記憶された命令によって実装されることも可能であり、データ処理装置による命令の実行が、データ処理装置にプロセス700の動作を実行させる。
【0092】
アカウント保持者の複数のキャンペーンが特定される(702)。たとえば、アカウント保持者は、複数の異なるコンテンツ配信キャンペーンを有していてもよい。特定の例において、アカウント保持者は、製品またはサービスに関する複数の異なるキャンペーンを有していてもよい。また、アカウント保持者は、その他の製品またはサービスに関するキャンペーンを有していてもよい。
【0093】
アカウント保持者の類似したキャンペーンのセットが特定される(704)。類似したキャンペーンのセットは、類似しているがキャンペーンのすべてが異なる特定の特徴を有するキャンペーンを含むことができる。たとえば、アカウント保持者は、同じ配信基準を用いるが、各キャンペーンのために配信される異なるコンテンツアイテムを有する、特定の製品に関する複数の異なるキャンペーンを持っていてもよい。これらの異なるキャンペーンは、特定の製品に関するキャンペーンのセットに含まれることが可能である。
【0094】
キャンペーンのセットのための視覚化が生成される(706)。たとえば、視覚化は、キャンペーンのセット内のキャンペーンのためのデータの違いを強調してもよい。上述の例について続けると、視覚化は、キャンペーンのセット内の各キャンペーンのための各コンテンツアイテムの成果を強調してもよい。視覚化は、アカウント保持者のユーザのクライアントデバイスにおいて提示するために自動的に生成され、ディスプレイカード内に提供されることが可能である。たとえば、視覚化は、類似したキャンペーンのセットを特定することに応じて、その視覚化が1つの異なる特徴を強調するような方法で自動的に生成されてもよい。
【0095】
本主題についてコンテンツ配信管理システムを参照して上で全般的に説明されているが、本主題はデータがユーザに提供される代替的なシステムにおいて適用可能であり、コンテンツ配信の管理に限定されないことが理解されるであろう。
【0096】
上の説明に加えて、ユーザは、本明細書において説明されたシステム、プログラム、または特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、社会的アクションもしくは活動、職業、ユーザのプリファレンス、またはユーザの現在位置に関する情報)の集合を有効化してもよいかどうかといつ有効化してもよいかとの両方、およびユーザがコンテンツまたは通信をサーバから送信されるかどうかについての選択をユーザが行うことを可能にするコントロールを提供されてもよい。さらに、特定のデータが、個人を特定できる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で処理されてもよい。たとえば、ユーザの識別情報が、個人を特定できる情報がユーザに関して決定されることが不可能であるか、または位置情報が取得される場合にユーザの地理的な位置が(都市、郵便番号、もしくは州のレベルなどに)一般化されることが可能であり、したがって、ユーザの特定の位置が決定されることが不可能であるように処理されてもよい。したがって、ユーザは、どの情報がユーザについて収集されるか、その情報がどのように使用されるのか、およびどの情報がユーザに提供されるのかを制御することができてもよい。
【0097】
本明細書に記載の主題の実施形態および動作は、本明細書において開示された構造およびそれらの構造的均等物を含む、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはこれらのうちの1つもしくは複数の組合せで実装されることが可能である。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するためにコンピュータストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることが可能である。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適なレシーバ装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化されることが可能である。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはこれらのうちの1つもしくは複数の組合せであるか、あるいはこれらに含まれることが可能である。さらに、コンピュータストレージ媒体は、伝播信号ではないが、人為的に生成された伝播信号に符号化されたコンピュータプログラム命令の送信元または送信先であることができる。コンピュータストレージ媒体は、1つまたは複数の別個の物理的構成要素または媒体(たとえば、複数のCD、ディスク、もしくはその他のストレージデバイス)であるか、またはそれらに含まれることも可能である。
【0098】
本明細書に記載の動作は、1つもしくは複数のコンピュータ可読ストレージデバイスに記憶される、またはその他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装されることが可能である。
【0099】
用語「データ処理装置」は、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、1つのシステムオンチップ、またはこれらの複数もしくは組合せを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用の論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置はまた、ハードウェアに加えて、問題にしているコンピュータプログラムのための実行環境を生成するコード、たとえばプロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはこれらのうちの1つもしくは複数の組合せを構成するコードを含むことができる。装置および実行環境は、ウェブサービスインフラストラクチャ、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【0100】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語もしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述されることが可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境での使用に適したその他のユニットとしての形態を含む任意の形態で配置されることが可能である。コンピュータプログラムは、ファイルシステム内のファイルに対応する場合があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト)、問題にしているプログラム専用の単一のファイル、または複数の連携されたファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル)に記憶されることが可能である。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように配置されることが可能である。
【0101】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによってアクションを行うために1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なプロセッサが実行することによって実行されることが可能である。また、プロセスおよび論理フローは、専用の論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されることが可能であり、さらに、装置は、それらの専用の論理回路として実装されることが可能である。
【0102】
コンピュータプログラムの実行に好適なプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサとの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。概して、プロセッサは、読み出し専用メモリ、またはランダムアクセスメモリ、またはこれらの両方から命令およびデータを受信する。コンピュータの必須の要素は、命令にしたがってアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概してコンピュータは、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを備えていなくてもよい。さらに、コンピュータは、別のデバイス、たとえばほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブルストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に組み込まれることが可能である。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれることが可能である。
【0103】
ユーザとのインタラクションを提供するために、本明細書に記載の主題の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえばCRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールを有するコンピュータ上に実装されることが可能である。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえばユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックであることが可能であり、ユーザからの入力は、音響、発話、または触覚による入力を含む任意の形態で受信されることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえばウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。
【0104】
本明細書に記載の主題の実施形態は、バックエンド構成要素を、たとえばデータサーバとして含むか、またはミドルウェア構成要素、たとえばアプリケーションサーバを含むか、またはフロントエンド構成要素、たとえばユーザが本明細書に記載の主題の実装とインタラクションすることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムに実装されることが可能である。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク("LAN")および広域ネットワーク("WAN")、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【0105】
コンピューティングシステムは、クライアントおよびサーバを含むことが可能である。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実施形態において、サーバは、(たとえば、クライアントデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受信する目的で)クライアントデバイスにデータ(たとえば、HTMLページ)を送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザのインタラクションの結果)が、サーバにおいてクライアントデバイスから受信されることが可能である。
【0106】
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求され得るものの範囲に対する限定とも見なされるべきでなく、むしろ、特定の発明の特定の実施形態に固有の特徴の説明と見なされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態において組み合わせて実装されることも可能である。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々に、または任意の好適な部分的組合せで実装されることも可能である。さらに、特徴は、特定の組合せで動作するものとして上で説明されている場合があり、最初にそのように主張されてさえいる場合があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されることも可能であり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とすることもある。
【0107】
同様に、動作が図中に特定の順序で示されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である場合がある。さらに、上述の実施形態における様々なシステム構成要素の分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であると理解されるべきである。
【0108】
このように、本主題の特定の実施形態が説明された。その他の実施形態は、以下の特許請求の範囲内にある。場合によっては、請求項に挙げられたアクションは、異なる順序で実行され、それでも所望の結果を達成することができる。加えて、添付の図面に示されたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序または逐次的順序である必要はない。特定の実装においては、マルチタスクおよび並列処理が有利である場合がある。