JP6803955B2 - レイテンシの削減 - Google Patents

レイテンシの削減 Download PDF

Info

Publication number
JP6803955B2
JP6803955B2 JP2019173284A JP2019173284A JP6803955B2 JP 6803955 B2 JP6803955 B2 JP 6803955B2 JP 2019173284 A JP2019173284 A JP 2019173284A JP 2019173284 A JP2019173284 A JP 2019173284A JP 6803955 B2 JP6803955 B2 JP 6803955B2
Authority
JP
Japan
Prior art keywords
user
data
given
account
content item
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019173284A
Other languages
English (en)
Other versions
JP2020038675A (ja
Inventor
ニキル・バクシ
オリヴァー・マイケル・キング
ドゥーユム・ジェレミア・マル
トンマーゾ・フランチェスコ・ベルザーノ・ベジー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2020038675A publication Critical patent/JP2020038675A/ja
Application granted granted Critical
Publication of JP6803955B2 publication Critical patent/JP6803955B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0242Determining effectiveness of advertisements
    • G06Q30/0243Comparative campaigns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0269Targeted advertisements based on user profile or attribute
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0892Network architectures or network communication protocols for network security for authentication of entities by using authentication-authorization-accounting [AAA] servers or protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Databases & Information Systems (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Tourism & Hospitality (AREA)
  • Human Resources & Organizations (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

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

Claims (20)

1つまたは複数のサーバによって実施される方法であって、
ンテンツアイテムのそれぞれの表現に対して、複数の異なるデバイスによって提示された複数の異なるリソース上の前記コンテンツアイテムの複数の異なる表現にわたって前記コンテンツアイテムがクライアントデバイスにおいてどのように視覚的に表現されたか判定するステップであって、前記コンテンツアイテムの各表現に対して、前記判定が、前記コンテンツアイテムが提示されたデバイスの種類に基づく、ステップと、
前記コンテンツアイテムが視覚的に表現されたそれぞれの異なる方法に対して、前記コンテンツアイテムが何回前記方法で提示されたかをカウントするステップと、
前記カウントに基づいて、最も頻繁に提示された前記コンテンツアイテムの特定の視覚的表現を決定するステップと、
も頻繁に提示された前記コンテンツアイテムの前記特定の視覚的表現を含む所与のディスプレイカードを生成するステップと、
与のオンラインアカウントに対する異なるレポートを提供する複数の異なるディスプレイカードを含むダッシュボードユーザインターフェースの視覚化を生成するステップであって、前記複数の異なるディスプレイカードが、前記所与のディスプレイカードを前記ダッシュボードユーザインターフェースに挿入することを含む、同じユーザインターフェースにおける異なる種類のデータを提示する、ステップと、
前記ダッシュボードユーザインターフェースの前記視覚化を提示するために、クライアントデバイスのディスプレイを更新するステップと
を含む、方法。
所与のユーザのクライアントデバイスを通じて提出されたデータに基づいて、前記所与のユーザを所与のオンラインアカウントの認可されたユーザとして認証するステップと、
前記所与のユーザに対して前記認証に応答して、前記所与のオンラインアカウントに関連するデータが前記所与のユーザに提示されるユーザセッションを開始するステップと、
前記クライアントデバイスにおいて、1つまたは複数の先のユーザセッション中に前記所与のユーザによってディスプレイカードとのインタラクション履歴に基づいて、所与のディスプレイカードとの前記ダッシュボードユーザインターフェースに含まれない前記所与のディスプレイカードについてのデータセットをプリキャッシュするステップであって、前記所与のディスプレイカードを提示するために前記所与のユーザによる要求の前に実施される、ステップと
をさらに含む、請求項1に記載の方法。
前記所与のユーザが、複数のユーザグループを作成するとともに前記複数のユーザグループにユーザを割り当てる機械学習プロセスを使用して前記ユーザグループに割り当てられ、前記方法が、前記所与のカードと以前にインタラクションした前記ユーザの異なるメンバーに基づいて前記所与のカードを特定するステップをさらに含む、請求項2に記載の方法。
前記所与のユーザが、(i)以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの時間の範囲、(ii)前記ユーザによって修正されたデータ、または(iii)前記所与のユーザが前記アカウントに関連するデータにアクセスする頻度のうちの少なくとも1つに基づいて前記ユーザグループに割り当てられる、請求項3に記載の方法。
前記所与のユーザと同じ前記ユーザグループにおける複数のユーザの各々が、前記複数の異なるユーザの各々によって要求されたデータの種類に基づいて、異なる初期アカウントビューを提供される、請求項3に記載の方法。
前記データセットの少なくとも一部が、(i)前記以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの種類、(ii)以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの時間の範囲、または(iii)前記以前のユーザセッションにおいて前記所与のユーザがデータを要求した地理的領域のうちの少なくとも1つに基づいて選択される、請求項2に記載の方法。
前記キャッシュを更新するためのデータコストが閾値のコスト未満であることに基づいて前記クライアントデバイスにおいてプリキャッシュされたデータを更新すると決定するステップと、
前記クライアントデバイスにおいてプリキャッシュされた前記データを更新すると決定するステップに応答して、前記ユーザデバイスに、更新されたデータセットを提供するステップと
をさらに含む、請求項2に記載の方法。
第1のサーバであって、
コンテンツアイテムのそれぞれの表現に対して、複数の異なるデバイスおよび複数の異なるリソース上の前記コンテンツアイテムの複数の異なる表現にわたって前記コンテンツアイテムがクライアントデバイスにおいてどのように視覚的に表現されたかを判定することであって、前記コンテンツアイテムの各表現に対して、前記判定が、前記コンテンツアイテムが提示されたデバイスの種類に基づく、実施することと、
前記コンテンツアイテムが視覚的に表現されたそれぞれの異なる方法に対して、前記コンテンツアイテムが何回前記方法で提示されたかをカウントすることと、
前記カウントに基づいて、最も頻繁に提示された前記コンテンツアイテムの特定の視覚的表現を決定することと、
最も頻繁に提示された前記コンテンツアイテムの前記特定の視覚的表現を含む所与のディスプレイカードを生成するステップと、
所与のオンラインアカウントに対する異なるレポートを提供する複数の異なるディスプレイカードを含むダッシュボードユーザインターフェースの視覚化を生成することであって、前記複数の異なるディスプレイカードが、前記所与のディスプレイカードを前記ダッシュボードユーザインターフェースに挿入することを含む、同じユーザインターフェースにおける異なる種類のデータを提示する、生成することと
を行う、第1のサーバと
前記ダッシュボードユーザインターフェースの前記視覚化を提示するために、クライアントデバイスのディスプレイを更新する、第2のサーバと
を備える、システム。
所与のユーザのクライアントデバイスを通じて提出されたデータに基づいて、前記所与のユーザを所与のオンラインアカウントの認可されたユーザとして認証し、前記所与のユーザに対して前記認証に応答して、前記所与のオンラインアカウントに関連するデータが前記所与のユーザに提示されるユーザセッションを開始する、フロントエンドサーバをさらに備え、前記第2のサーバが、前記クライアントデバイスにおいて、1つまたは複数の先のユーザセッション中に前記所与のユーザによってディスプレイカードとのインタラクション履歴に基づいて、所与のディスプレイカードとの前記ダッシュボードユーザインターフェースに含まれない前記所与のディスプレイカードについてのデータセットをプリキャッシュし、前記プリキャッシュが、前記所与のディスプレイカードを提示するために前記所与のユーザによる要求の前に実施される、請求項8に記載のシステム。
前記所与のユーザが、複数のユーザグループを作成するとともに前記複数のユーザグループにユーザを割り当てる機械学習プロセスを使用して前記ユーザグループに割り当てられ、
前記所与のカードが、前記所与のカードと以前にインタラクションした前記ユーザの異なるメンバーに基づいて特定される、
請求項9に記載のシステム。
前記所与のユーザが、(i)以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの時間の範囲、(ii)前記ユーザによって修正されたデータ、または(iii)前記所与のユーザが前記アカウントに関連するデータにアクセスする頻度のうちの少なくとも1つに基づいて前記ユーザグループに割り当てられる、請求項10に記載のシステム。
前記所与のユーザと同じ前記ユーザグループにおける複数のユーザの各々が、前記複数の異なるユーザの各々によって要求されたデータの種類に基づいて、異なる初期アカウントビューを提供される、請求項10に記載のシステム。
前記データセットの少なくとも一部が、(i)前記以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの種類、(ii)以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの時間の範囲、または(iii)前記以前のユーザセッションにおいて前記所与のユーザがデータを要求した地理的領域のうちの少なくとも1つに基づいて選択される、請求項9に記載のシステム。
1つまたは複数のプロセッサが、
前記キャッシュを更新するためのデータコストが閾値のコスト未満であることに基づいて前記クライアントデバイスにおいてプリキャッシュされたデータを更新すると決定することと、
前記クライアントデバイスにおいてプリキャッシュされた前記データを更新すると決定するステップに応答して、前記ユーザデバイスに、更新されたデータセットを提供することと
を含む動作を実施する、請求項9に記載のシステム。
コンピュータプログラムで符号化された非一時的コンピュータストレージ媒体であって、前記コンピュータプログラムが、1つまたは複数のデータ処理装置によって実行されるとき、前記データ処理装置に、
コンテンツアイテムのそれぞれの表現に対して、複数の異なるデバイスおよび複数の異なるリソース上の前記コンテンツアイテムの複数の異なる表現にわたって前記コンテンツアイテムがクライアントデバイスにおいてどのように視覚的に表現されたか判定することであって、前記コンテンツアイテムの各表現に対して、前記判定が、前記コンテンツアイテムが提示されたデバイスの種類に基づく、実施することと、
前記コンテンツアイテムが視覚的に表現されたそれぞれの異なる方法に対して、前記コンテンツアイテムが何回前記方法で提示されたかをカウントすることと、
前記カウントに基づいて、最も頻繁に提示された前記コンテンツアイテムの特定の視覚的表現を決定することと、
最も頻繁に提示された前記コンテンツアイテムの前記特定の視覚的表現を含む所与のディスプレイカードを生成することと、
所与のオンラインアカウントに対する異なるレポートを提供する複数の異なるディスプレイカードを含むダッシュボードユーザインターフェースの視覚化を生成することであって、前記複数の異なるディスプレイカードが、前記所与のディスプレイカードを前記ダッシュボードユーザインターフェースに挿入することを含む、同じユーザインターフェースにおける異なる種類のデータを提示する、生成することと、
前記ダッシュボードユーザインターフェースの前記視覚化を提示するために、クライアントデバイスのディスプレイを更新することと
を含む動作を実行させる命令を含む、非一時的コンピュータストレージ媒体。
前記命令は、前記1つまたは複数のデータ処理装置に、
所与のユーザのクライアントデバイスを通じて提出されたデータに基づいて、前記所与のユーザを所与のオンラインアカウントの認可されたユーザとして認証することと、
前記所与のユーザに対して前記認証に応答して、前記所与のオンラインアカウントに関連するデータが前記所与のユーザに提示されるユーザセッションを開始することと、
前記クライアントデバイスにおいて、1つまたは複数の先のユーザセッション中に前記所与のユーザによってディスプレイカードとのインタラクション履歴に基づいて、所与のディスプレイカードとの前記ダッシュボードユーザインターフェースに含まれない前記所与のディスプレイカードについてのデータセットをプリキャッシュすることであって、前記所与のディスプレイカードを提示するために前記所与のユーザによる要求の前に実施される、プリキャッシュすることと
を含む動作を実行させる、請求項15に記載の非一時的コンピュータストレージ媒体。
前記所与のユーザが、複数のユーザグループを作成するとともに前記複数のユーザグループにユーザを割り当てる機械学習プロセスを使用して前記ユーザグループに割り当てられ、前記命令が、前記1つまたは複数のデータ処理装置に、前記所与のカードと以前にインタラクションした前記ユーザの異なるメンバーに基づいて前記所与のカードを特定することを含む動作を実行させる、請求項16に記載の非一時的コンピュータストレージ媒体。
前記所与のユーザが、(i)以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの時間の範囲、(ii)前記ユーザによって修正されたデータ、または(iii)前記所与のユーザが前記アカウントに関連するデータにアクセスする頻度のうちの少なくとも1つに基づいて前記ユーザグループに割り当てられる、請求項17に記載の非一時的コンピュータストレージ媒体。
前記所与のユーザと同じ前記ユーザグループにおける複数のユーザの各々が、前記複数の異なるユーザの各々によって要求されたデータの種類に基づいて、異なる初期アカウントビューを提供される、請求項17に記載の非一時的コンピュータストレージ媒体。
前記データセットの少なくとも一部が、(i)前記以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの種類、(ii)以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの時間の範囲、または(iii)前記以前のユーザセッションにおいて前記所与のユーザがデータを要求した地理的領域のうちの少なくとも1つに基づいて選択される、請求項16に記載の非一時的コンピュータストレージ媒体。
JP2019173284A 2016-01-25 2019-09-24 レイテンシの削減 Active JP6803955B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/005,788 US20170214674A1 (en) 2016-01-25 2016-01-25 Reducing latency
US15/005,788 2016-01-25

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018538738A Division JP6595116B2 (ja) 2016-01-25 2016-12-01 レイテンシの削減

Publications (2)

Publication Number Publication Date
JP2020038675A JP2020038675A (ja) 2020-03-12
JP6803955B2 true JP6803955B2 (ja) 2020-12-23

Family

ID=57589209

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018538738A Active JP6595116B2 (ja) 2016-01-25 2016-12-01 レイテンシの削減
JP2019173284A Active JP6803955B2 (ja) 2016-01-25 2019-09-24 レイテンシの削減

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2018538738A Active JP6595116B2 (ja) 2016-01-25 2016-12-01 レイテンシの削減

Country Status (7)

Country Link
US (4) US20170214674A1 (ja)
EP (2) EP3408757B1 (ja)
JP (2) JP6595116B2 (ja)
KR (2) KR102196404B1 (ja)
CN (2) CN107231816B (ja)
AU (2) AU2016389047B2 (ja)
WO (1) WO2017131857A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10656935B2 (en) 2015-10-13 2020-05-19 Home Box Office, Inc. Maintaining and updating software versions via hierarchy
US10623514B2 (en) 2015-10-13 2020-04-14 Home Box Office, Inc. Resource response expansion
US20170214674A1 (en) 2016-01-25 2017-07-27 Google Inc. Reducing latency
US10698740B2 (en) 2017-05-02 2020-06-30 Home Box Office, Inc. Virtual graph nodes
US11810147B2 (en) * 2017-10-19 2023-11-07 Foursquare Labs, Inc. Automated attribution modeling and measurement
US11182056B2 (en) * 2018-01-31 2021-11-23 Salesforce.Com, Inc. Application navigation
US11238210B2 (en) * 2018-08-22 2022-02-01 Microstrategy Incorporated Generating and presenting customized information cards
US11640429B2 (en) * 2018-10-11 2023-05-02 Home Box Office, Inc. Graph views to improve user interface responsiveness
US11550534B2 (en) 2019-11-11 2023-01-10 Aveva Software, Llc Computerized system and method for generating and dynamically updating a dashboard of multiple processes and operations across platforms
US11250015B2 (en) 2020-02-07 2022-02-15 Coupang Corp. Systems and methods for low-latency aggregated-data provision
CN113688116A (zh) * 2020-05-19 2021-11-23 长鑫存储技术有限公司 数据展示系统、方法、设备及计算机可读存储介质
US11438442B1 (en) * 2021-03-18 2022-09-06 Verizon Patent And Licensing Inc. Systems and methods for optimizing provision of high latency content by a network
CN116149778B (zh) * 2023-04-19 2023-06-27 深圳开鸿数字产业发展有限公司 界面显示方法、终端设备及存储介质
CN116257164B (zh) * 2023-05-11 2023-07-21 武汉元光科技有限公司 候车用户焦虑响应方法及系统
CN117873931B (zh) * 2024-03-11 2024-06-07 浪潮电子信息产业股份有限公司 一种数据处理系统、方法及介质

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088679A (en) * 1997-12-01 2000-07-11 The United States Of America As Represented By The Secretary Of Commerce Workflow management employing role-based access control
US6539382B1 (en) 1999-04-29 2003-03-25 International Business Machines Corporation Intelligent pre-caching algorithm for a directory server based on user data access history
US6847892B2 (en) * 2001-10-29 2005-01-25 Digital Angel Corporation System for localizing and sensing objects and providing alerts
US6486874B1 (en) 2000-11-06 2002-11-26 Motorola, Inc. Method of pre-caching user interaction elements using input device position
US6665385B2 (en) * 2001-04-23 2003-12-16 Cardionet, Inc. Medical monitoring system having multipath communications capability
US20030135553A1 (en) 2002-01-11 2003-07-17 Ramesh Pendakur Content-based caching and routing of content using subscription information from downstream nodes
US7698230B1 (en) * 2002-02-15 2010-04-13 ContractPal, Inc. Transaction architecture utilizing transaction policy statements
JP4017065B2 (ja) * 2002-03-25 2007-12-05 学校法人金沢工業大学 キャッシュ制御方法およびキャッシュシステム
US6891920B1 (en) * 2002-11-29 2005-05-10 Fischer Imaging Corporation Automated background processing mammographic image data
KR100539449B1 (ko) * 2004-07-12 2005-12-27 주식회사 하이닉스반도체 플래시 메모리 소자의 제조 방법
US7752203B2 (en) 2004-08-26 2010-07-06 International Business Machines Corporation System and method for look ahead caching of personalized web content for portals
US9032076B2 (en) * 2004-10-22 2015-05-12 International Business Machines Corporation Role-based access control system, method and computer program product
US20060277271A1 (en) 2005-06-07 2006-12-07 Yahoo! Inc. Prefetching content based on a mobile user profile
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US9385914B1 (en) * 2006-04-06 2016-07-05 Versata Development Group, Inc. Application state client-side cache for a state-based client-server application
US20080097792A1 (en) * 2006-09-01 2008-04-24 Siemens Medical Solutions Usa, Inc. Treatment Decision Support System and User Interface
US8352382B1 (en) * 2008-08-15 2013-01-08 Amazon Technologies, Inc. Heuristic methods for customer order fulfillment planning
US9396042B2 (en) * 2009-04-17 2016-07-19 Citrix Systems, Inc. Methods and systems for evaluating historical metrics in selecting a physical host for execution of a virtual machine
JP5172792B2 (ja) * 2009-07-31 2013-03-27 本田技研工業株式会社 固体高分子型燃料電池用膜−電極構造体及び固体高分子型燃料電池
JP2011081472A (ja) * 2009-10-05 2011-04-21 Nomura Research Institute Ltd ドキュメント管理システム
US9569285B2 (en) * 2010-02-12 2017-02-14 International Business Machines Corporation Method and system for message handling
US9501582B2 (en) * 2010-05-10 2016-11-22 Amazon Technologies, Inc. Providing text content embedded with protected multimedia content
US8455723B2 (en) * 2010-07-19 2013-06-04 Monsanto Technology Llc Soybean variety A1023586
US9525712B1 (en) * 2010-07-30 2016-12-20 Western Digital Technologies, Inc. Dynamic auto-registration and transcoding of media content devices via network attached storage
KR101537222B1 (ko) * 2010-08-16 2015-07-16 에스케이플래닛 주식회사 오프라인 실행을 위한 웹 페이지 사전 캐싱 시스템 및 방법
US20140282915A1 (en) * 2013-03-14 2014-09-18 Core Mobile Networks, Inc. Context-based analytics and intelligence
US9378485B2 (en) * 2010-12-30 2016-06-28 General Electric Company Systems and methods for applying geolocation to workflows using mobile medical clients
US9065793B2 (en) * 2011-02-24 2015-06-23 Cbs Interactive Inc. Rendering web content using pre-caching
TWI469062B (zh) 2011-11-11 2015-01-11 Ind Tech Res Inst 影像穩定方法及影像穩定裝置
JP6169826B2 (ja) * 2012-06-27 2017-07-26 ソニー株式会社 情報処理装置、情報処理方法、プログラム及び情報処理システム
CN103577079B (zh) * 2012-07-24 2017-11-07 腾讯科技(深圳)有限公司 电子设备中实现与应用交互的方法及电子设备
CN105094521B (zh) * 2012-07-26 2018-09-14 奇智软件(北京)有限公司 一种界面文件展示方法及系统
CN103677866B (zh) * 2012-09-05 2017-02-01 北京搜狗科技发展有限公司 应用程序扩展工具推送方法及系统
US9965134B2 (en) * 2012-09-14 2018-05-08 Advanced Micro Devices, Inc. Method and apparatus for providing a user interface for a file system
CN103677783A (zh) * 2012-09-25 2014-03-26 苏州精易会信息技术有限公司 一种程序界面设计装置
WO2014142209A1 (ja) * 2013-03-15 2014-09-18 ソニー株式会社 画像処理装置および画像処理装置におけるgui構成指示方法
US20160191650A1 (en) * 2013-06-06 2016-06-30 Yahoo Inc. Method and system for dynamic content pre-caching
US9990440B2 (en) * 2013-12-30 2018-06-05 Oath Inc. Smart content pre-loading on client devices
US9201933B2 (en) * 2014-04-01 2015-12-01 BizDox, LLC Systems and methods for documenting, analyzing, and supporting information technology infrastructure
US20160014249A1 (en) * 2014-07-08 2016-01-14 Ohanes D. Ghazarian Supervisory headset mobile communication system
CN105592435A (zh) * 2014-10-21 2016-05-18 中兴通讯股份有限公司 一种ui加载方法、装置及相关设备
US9720948B2 (en) * 2014-11-12 2017-08-01 Vivanti N. Jain, M.D., F.A.C.S. Fast searching using multidimensional indexing
US9952744B2 (en) 2014-11-19 2018-04-24 Imprivata, Inc. Crowdsourced determination of movable device location
CN104834460A (zh) * 2015-02-10 2015-08-12 数据通信科学技术研究所 桌面显示控制方法、装置及移动终端
CN105187237B (zh) * 2015-08-12 2018-09-11 百度在线网络技术(北京)有限公司 查找相关联的用户标识的方法和装置
US20170214674A1 (en) 2016-01-25 2017-07-27 Google Inc. Reducing latency

Also Published As

Publication number Publication date
JP2019509546A (ja) 2019-04-04
JP6595116B2 (ja) 2019-10-23
AU2019203985A1 (en) 2019-06-27
US20170214676A1 (en) 2017-07-27
EP3709606A1 (en) 2020-09-16
US20180343264A1 (en) 2018-11-29
CN112883305A (zh) 2021-06-01
KR20180108706A (ko) 2018-10-04
WO2017131857A1 (en) 2017-08-03
JP2020038675A (ja) 2020-03-12
AU2019203985B2 (en) 2020-07-23
US20170214674A1 (en) 2017-07-27
CN107231816A (zh) 2017-10-03
CN107231816B (zh) 2021-02-05
AU2016389047B2 (en) 2019-05-16
US10075449B2 (en) 2018-09-11
KR102120370B1 (ko) 2020-06-26
KR102196404B1 (ko) 2020-12-29
US11343254B2 (en) 2022-05-24
US20170214764A1 (en) 2017-07-27
US9838399B2 (en) 2017-12-05
EP3408757B1 (en) 2020-04-22
KR20200066383A (ko) 2020-06-09
AU2016389047A1 (en) 2018-08-09
EP3408757A1 (en) 2018-12-05

Similar Documents

Publication Publication Date Title
JP6803955B2 (ja) レイテンシの削減
US11023441B2 (en) Distributed storage and processing of hierarchical data structures
RU2720952C2 (ru) Способ и система для создания рекомендации цифрового содержимого
US11693863B1 (en) Query completions
RU2731335C2 (ru) Способ и система для формирования рекомендаций цифрового контента
US20230088898A1 (en) Suggesting actions for evaluating user performance in an enterprise social network
US11275806B2 (en) Dynamic materialization of feeds for enabling access of the feed in an online social network
JP6557357B2 (ja) モバイル・アプリケーションに関連付けられたコンテンツ・アイテムのデバイスベースのフィルタリング
US20160019195A1 (en) Method and system for posting comments on hosted web pages
US20190310888A1 (en) Allocating Resources in Response to Estimated Completion Times for Requests
JP2021526245A (ja) 推測された意図に基づく場所的拡張のトリガ
US20160188716A1 (en) Crowd-Sourced Crawling
US11237693B1 (en) Provisioning serendipitous content recommendations in a targeted content zone
US20160371389A1 (en) Method of presenting information on a search result page
JP7223164B2 (ja) データインテグリティの最適化
US11475510B2 (en) Method and server for generating modifiable portion of digital document
US11423034B1 (en) Display of social content

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201019

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201201

R150 Certificate of patent or registration of utility model

Ref document number: 6803955

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250