JP2019509546A - Latency reduction - Google Patents

Latency reduction Download PDF

Info

Publication number
JP2019509546A
JP2019509546A JP2018538738A JP2018538738A JP2019509546A JP 2019509546 A JP2019509546 A JP 2019509546A JP 2018538738 A JP2018538738 A JP 2018538738A JP 2018538738 A JP2018538738 A JP 2018538738A JP 2019509546 A JP2019509546 A JP 2019509546A
Authority
JP
Japan
Prior art keywords
data
user
account
given
requested
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.)
Granted
Application number
JP2018538738A
Other languages
Japanese (ja)
Other versions
JP6595116B2 (en
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 JP2019509546A publication Critical patent/JP2019509546A/en
Application granted granted Critical
Publication of JP6595116B2 publication Critical patent/JP6595116B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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
    • 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/00Systems or methods specially adapted for 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
    • 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/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
    • 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

Abstract

ネットワーク通信およびデータの提示におけるレイテンシを削減するための、コンピュータストレージ媒体上に符号化されたコンピュータプログラムを含む方法、システム、および装置が開示される。一態様においては、アカウントに関連するデータがユーザに対して提示されるユーザセッションが開始される。所与のユーザが割り当てられたユーザグループが特定される。アカウントに関連する第1のデータセットが、ユーザグループに基づいて選択される。アカウントに関連する第2のデータセットが、ユーザグループ内のその他のユーザによって以前に要求されたデータの種類に基づいて選択される。アカウントのためのユーザインターフェースが、第1のデータセットの少なくとも一部を提示するために更新される。第2のデータセットの要求を受信する前に第2のデータセットをクライアントデバイスに提供することによって、第1のデータセットまたは第2のデータセットの追加の部分を提示するときに、ユーザインターフェースを更新する際のレイテンシが削減される。Disclosed are methods, systems, and apparatus that include a computer program encoded on a computer storage medium for reducing latency in network communication and data presentation. In one aspect, a user session is initiated in which data related to the account is presented to the user. A user group to which a given user is assigned is identified. A first data set associated with the account is selected based on the user group. A second data set associated with the account is selected based on the type of data previously requested by other users in the user group. The user interface for the account is updated to present at least a portion of the first data set. By presenting the second data set to the client device prior to receiving the request for the second data set, the user interface can be used when presenting the first data set or additional portions of the second data set. Latency when updating is reduced.

Description

本発明は、レイテンシの削減に関する。   The present invention relates to latency reduction.

インターネットは、世界中のユーザの間の情報の交換および取引を容易にする。情報のこの交換は、データプロバイダが様々なユーザにデータを提供することを可能にする。データは、クライアントデバイスから受信された複数の要求に応答して提供される場合がある。しかし、各要求は、要求されたデータによって応答するために計算リソース(たとえば、サーバおよびメモリストレージデバイス)ならびにネットワークリソース(たとえば、ルータ、スイッチ、およびネットワーク帯域幅)の使用を必要とする。加えて、各要求は、データプロバイダが適切なデータを特定し、データをネットワークを介してクライアントデバイスに送信するためにいくらか時間がかかる。   The Internet facilitates the exchange and trading of information between users around the world. This exchange of information allows data providers to provide data to various users. The data may be provided in response to multiple requests received from the client device. However, each request requires the use of computational resources (eg, servers and memory storage devices) and network resources (eg, routers, switches, and network bandwidth) to respond with the requested data. In addition, each request takes some time for the data provider to identify the appropriate data and send the data over the network to the client device.

本明細書は、ネットワーク通信およびデータの提示におけるレイテンシを削減することに関連するテクノロジーを説明する。   This document describes technologies related to reducing latency in network communications and data presentation.

概して、本明細書に記載の主題の1つの革新的な態様は、所与のユーザのクライアントデバイスを通じて提出されたデータに基づいて、所与のユーザを所与のオンラインアカウントの認可されたユーザとして認証するアクションと、所与のユーザに関して、認証に応じて、アカウントに関連するデータがユーザに対して提示されるユーザセッションを開始するアクションであって、アカウントが、アカウントにアクセスするための資格証明情報を有する複数のユーザによってアクセス可能である、アクションと、(i)以前のユーザセッション中にアカウントのユーザインターフェース内に提示されたユーザインターフェース要素との所与のユーザのインタラクションとユーザインターフェース要素とのその他のユーザのその他のインタラクションとの間の類似性、または(ii)以前のユーザセッション中に所与のユーザによって要求された少なくとも1つのデータの種類とその他のユーザによって要求された少なくとも1つのデータの種類との間の類似性に基づいて所与のユーザが割り当てられたユーザグループを特定するアクションと、所与のユーザが割り当てられたユーザグループに基づいてアカウントに関連する第1のデータセットを選択するアクションであって、第1のデータセットが、少なくとも(i)以前のユーザセッション中に所与のユーザによって要求されたデータの種類、および(ii)以前のユーザセッション中に所与のユーザがインタラクションしたユーザインターフェース要素に基づいて選択される、アクションと、ユーザ以外のユーザグループ内の少なくとも1人のユーザによって以前に要求されたデータの種類に基づいて、アカウントに関連する第2のデータセットを選択するアクションと、アカウントのための初期アカウントビュー内に第1のデータセットの少なくとも一部を提示するためにアカウントのためのユーザインターフェースを更新するアクションであって、初期アカウントビューが、アカウントの概要を提供する、単一の提示へと組み合わされた複数の異なる種類のデータを提示する、アクションと、クライアントデバイスからの第2のデータセットの要求を受信する前に第2のデータセットをクライアントデバイスに提供することによって、クライアントデバイスにおいて第1のデータセットまたは第2のデータセットの追加の部分を提示するときにアカウントのためのユーザインターフェースを更新する際のレイテンシを削減するアクションであって、第2のデータセットが、クライアントデバイスにおいてキャッシュされ、初期アカウントビュー内に提示されない、アクションとを含む方法において具現化されることが可能である。この態様のその他の実施形態は、コンピュータストレージデバイス上に符号化された方法のアクションを実行するように構成される対応するシステム、装置、およびコンピュータプログラムを含む。   In general, one innovative aspect of the subject matter described herein is that a given user is an authorized user of a given online account based on data submitted through the given user's client device. Authenticating action and, for a given user, the action of initiating a user session in which data related to the account is presented to the user in response to authentication, with which the account has access to the account A given user interaction and user interface element with an action accessible by multiple users having information and (i) a user interface element presented within the user interface of the account during a previous user session Other user interactions Or (ii) the similarity between at least one data type requested by a given user during a previous user session and at least one data type requested by another user An action to identify a user group to which a given user is assigned based on gender and an action to select a first data set associated with the account based on the user group to which the given user is assigned, comprising: The first data set contains at least (i) the type of data requested by the given user during the previous user session, and (ii) the user interface element that the given user interacted with during the previous user session. Selected by the action and at least one user in a user group other than the user To present an action to select a second dataset associated with the account based on the type of data previously requested and at least a portion of the first dataset in the initial account view for the account An action that updates the user interface for an account, wherein the initial account view presents multiple different types of data combined into a single presentation that provides an overview of the account Presenting the first data set or an additional portion of the second data set at the client device by providing the second data set to the client device prior to receiving a request for the second data set from the device When updating the user interface for an account A action to reduce the latency, the second data set, is cached in the client device, not presented in the initial account view, we can be embodied in a method comprising the actions. Other embodiments of this aspect include corresponding systems, apparatus, and computer programs configured to perform the method actions encoded on the computer storage device.

これらのおよびその他の実施形態は、それぞれ、任意で以下の特徴のうちの1つまたは複数を含むことが可能である。いくつかの態様において、所与のユーザおよびその他のユーザは、複数のユーザグループを作成するとともに複数のユーザグループにユーザを割り当てる機械学習プロセスを使用してユーザグループに割り当てられることが可能である。いくつかの態様において、所与のユーザは、(i)以前のユーザセッションにおいて所与のユーザによって要求されたデータの時間の範囲、(ii)ユーザによって修正されたデータ、または(iii)所与のユーザがアカウントに関連するデータにアクセスする頻度のうちの少なくとも1つにさらに基づいてユーザグループに割り当てられることが可能である。   These and other embodiments can each optionally include one or more of the following features. In some aspects, a given user and other users can be assigned to user groups using a machine learning process that creates multiple user groups and assigns users to multiple user groups. In some aspects, a given user may: (i) a time range of data requested by a given user in a previous user session, (ii) data modified by the user, or (iii) a given Can be assigned to a user group based further on at least one of the frequency of access to data associated with the account.

いくつかの態様において、第2のデータセットの少なくとも一部は、(i)以前のユーザセッションにおいて所与のユーザによって要求されたデータの種類、(ii)以前のユーザセッションにおいて所与のユーザによって要求されたデータの時間の範囲、または(iii)以前のユーザセッションにおいて所与のユーザがそこからデータを要求した地理的領域のうちの少なくとも1つに基づいて選択されることが可能である。いくつかの態様において、複数のユーザの各々は、複数の異なるユーザの各々によって要求されたデータの種類に基づいて異なる初期アカウントビューを提供される。   In some aspects, at least a portion of the second data set is (i) the type of data requested by a given user in a previous user session, (ii) by a given user in a previous user session. It may be selected based on at least one of the requested time range of data, or (iii) the geographic region from which a given user requested data from previous user sessions. In some aspects, each of the plurality of users is provided with a different initial account view based on the type of data requested by each of the plurality of different users.

いくつかの態様は、所与のユーザのために開始されたそれぞれの所与のユーザセッションに関して、所与のユーザが所与のユーザセッション中にインタラクションしたユーザインターフェース要素および所与のユーザがユーザセッション中に要求したデータの種類を指定するデータによって所与のユーザに関するユーザプロファイルを更新することと、更新することに基づいて所与のユーザのための初期アカウントビューを修正することとを含むことができる。   Some aspects may relate to a given user session initiated for a given user, a user interface element that the given user interacted with during the given user session, and the given user to the user session. Updating the user profile for the given user with data specifying the type of data requested therein, and modifying the initial account view for the given user based on the updating. it can.

いくつかの態様は、ユーザデバイスにおける第2のデータのキャッシュを、キャッシュを更新するためのデータコストが閾値のコスト未満であることに基づいて更新すると決定することと、キャッシュを更新するとの決定に応じて更新されたデータセットをユーザデバイスに提供することとを含むことができる。いくつかの態様は、少なくとも1つの同じ特徴と、2つ以上のキャンペーンの各々に関して異なる少なくとも1つの特徴とを有するアカウントの2つ以上のキャンペーンを特定することと、2つ以上のキャンペーンの各々の少なくとも1つの特徴を強調するような方法で、2つ以上のキャンペーンの各々のデータを提示するデータを提供することとを含むことができる。   Some aspects may determine to update the second data cache at the user device based on the data cost for updating the cache being less than a threshold cost, and to update the cache. Providing a correspondingly updated data set to the user device. Some aspects identify two or more campaigns in an account having at least one same characteristic and at least one characteristic that is different for each of the two or more campaigns; and each of the two or more campaigns Providing data presenting data for each of the two or more campaigns in a manner that highlights at least one feature.

別の態様は、プロセッサ可読命令を記憶するメモリと、前記メモリに記憶された命令を読み出し、実行するように構成される1つまたは複数のプロセッサと、所与のユーザのクライアントデバイスを通じて提出されたデータに基づいて、所与のユーザを所与のオンラインアカウントの認可されたユーザとして認証すること、および所与のユーザに関して、認証に応じて、アカウントに関連するデータがユーザに対して提示されるユーザセッションを開始することであって、アカウントが、アカウントにアクセスするための資格証明情報を有する複数のユーザによってアクセス可能である、開始することを行う第1のフロントエンドサーバと、(i)以前のユーザセッション中にアカウントのユーザインターフェース内に提示されたユーザインターフェース要素との所与のユーザのインタラクションとユーザインターフェース要素とのその他のユーザのその他のインタラクションとの間の類似性、または(ii)以前のユーザセッション中に所与のユーザによって要求された少なくとも1つのデータの種類とその他のユーザによって要求された少なくとも1つのデータの種類との間の類似性に基づいて所与のユーザが割り当てられたユーザグループを特定すること、所与のユーザが割り当てられたユーザグループに基づいてアカウントに関連する第1のデータセットを選択することであって、第1のデータセットが、少なくとも(i)以前のユーザセッション中に所与のユーザによって要求されたデータの種類、および(ii)以前のユーザセッション中に所与のユーザがインタラクションしたユーザインターフェース要素に基づいて選択される、選択すること、ならびにアカウントに関連する第2のデータセットを、ユーザグループ内の様々なその他のユーザによって以前に要求されたデータの種類に基づいて選択することを行うデータセレクタと、アカウントのための初期アカウントビュー内に第1のデータセットの少なくとも一部を提示するためにアカウントのためのユーザインターフェースを更新するユーザインターフェースジェネレータであって、初期アカウントビューが、アカウントの概要を提供する、単一の提示へと組み合わされた複数の異なる種類のデータを提示する、ユーザインターフェースジェネレータと、クライアントデバイスからの第2のデータセットの要求を受信する前に第2のデータセットをクライアントデバイスに提供することによって、クライアントデバイスにおいて第1のデータセットまたは第2のデータセットの追加の部分を提示するときにアカウントのためのユーザインターフェースを更新する際のレイテンシを削減する第2のフロントエンドサーバであって、第2のデータセットが、第2のフロントエンドサーバまたはクライアントデバイスにおいてキャッシュされ、初期アカウントビュー内に提示されない、第2のフロントエンドサーバとを含むシステムにおいて具現化されることが可能である。第1の態様の文脈で説明された特徴は、システムと組み合わせて実装されることが可能である。   Another aspect is filed through a memory device storing processor readable instructions, one or more processors configured to read and execute instructions stored in the memory, and a client device of a given user. Based on the data, authenticating a given user as an authorized user of a given online account, and for a given user, depending on the authentication, data associated with the account is presented to the user A first front-end server that initiates a user session, wherein the account is accessible by multiple users having credentials to access the account; and (i) before The user interface presented in the account user interface during the user session Similarity between the given user's interaction with the source element and the other user's other interaction with the user interface element, or (ii) at least requested by the given user during the previous user session Identify a user group to which a given user is assigned based on the similarity between one data type and at least one data type requested by another user, and the given user is assigned Selecting a first data set associated with an account based on a user group, wherein the first data set is at least (i) of data requested by a given user during a previous user session. Type, and (ii) the user interface that the given user interacted with during the previous user session Select based on the source element, and select a second data set associated with the account based on the type of data previously requested by various other users in the user group A data selector that performs and a user interface generator that updates the user interface for the account to present at least a portion of the first data set in the initial account view for the account, the initial account view comprising: Provide an overview of the account, present a plurality of different types of data combined into a single presentation, a user interface generator and a second before receiving a request for a second data set from the client device Providing datasets to client devices A second front-end server that reduces latency in updating a user interface for an account when presenting an additional portion of a first data set or a second data set at a client device, The second data set can be embodied in a system that includes a second front-end server that is cached at the second front-end server or client device and is not presented in the initial account view. The features described in the context of the first aspect can be implemented in combination with the system.

本明細書に記載の主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装されることが可能である。ユーザに対してデータを提示する際のレイテンシが、ユーザが要求する見込みが大きいがまだ要求していないデータをユーザのデバイスにおいてプリキャッシュすることによって削減されることが可能である。データをプリキャッシュすることによって、ネットワークを介して提出された要求の数と、ひいてはネットワークに課される要求の量および要求に応答するために使用される計算リソースとが、削減されることが可能である。ネットワークおよび計算リソースに課される要求のこの削減は、リソースが要求に応答する速度を上げ、リソースに負荷を掛けすぎることによって引き起こされるエラーおよび性能の劣化を最小化することによってネットワークおよび計算リソースの性能を改善することができる。また、計算リソースに課される要求は、データソースに複数回問い合わせるのではなく同時にプリキャッシュするために要求されたデータおよび追加データを取り出すことによって削減される。したがって、実施形態は、デバイスにおいてプリキャッシュするための適切なデータをどのような方法で提供すべきかに関連する問題に対処し、たとえばキャッシュされるデータの選択の改善のおかげで、キャッシュされたデータのより大きなセットの恩恵と同様の恩恵を提供するデータのセットがデバイスにおいてキャッシュされることを可能にすることができる。   Particular embodiments of the subject matter described in this specification can be implemented to realize one or more of the following advantages. The latency in presenting data to the user can be reduced by pre-caching at the user's device data that the user is likely to request but has not yet requested. By pre-caching data, the number of requests submitted over the network and thus the amount of requests imposed on the network and the computational resources used to respond to the requests can be reduced. It is. This reduction in the demands placed on network and computing resources increases the speed at which resources respond to requests and minimizes errors and performance degradation caused by overloading resources. The performance can be improved. Also, the demands placed on computing resources are reduced by retrieving the requested data and additional data to pre-cache at the same time rather than querying the data source multiple times. Thus, embodiments address the issues related to how appropriate data to be pre-cached at a device should be provided, eg cached data thanks to improved selection of cached data A set of data that provides benefits similar to the benefits of a larger set of can be cached at the device.

ユーザが要求する見込みが大きいデータをプリキャッシュすることはまた、要求がネットワークを越えていき、サーバが要求されたデータを特定し、要求されたデータがクライアントデバイスに向かって進むのをクライアントデバイスが待たなくてよいので、クライアントデバイスが要求されたデータをより迅速に提示することを可能にする。加えて、ユーザによって提出された要求に応答してネットワーク接続性なしにデータを提示することによってユーザの苛立ちが少なくされる。ネットワークおよび計算リソースに課される要求はまた、キャッシュに記憶されたデータをいつ更新すべきかを選択的に決定することによって削減されることが可能である。   Pre-caching data that is likely to be requested by the user also allows the client device to pass the request across the network, the server identifies the requested data, and the requested data travels towards the client device. This eliminates the need to wait and allows the client device to present the requested data more quickly. In addition, user frustration is reduced by presenting data without network connectivity in response to requests submitted by the user. The demands placed on the network and computing resources can also be reduced by selectively determining when to update the data stored in the cache.

本明細書に記載の主題の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。本主題のその他の特徴、態様、および利点は、説明、図面、および請求項から明らかになるであろう。   The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the present subject matter will be apparent from the description, drawings, and claims.

プリキャッシュシステムがクライアントデバイスにおいてキャッシュするためのデータを提供する例示的な環境の図である。FIG. 2 is an exemplary environment in which a pre-cache system provides data for caching at a client device. アカウント管理システムがアカウントデータを管理し、アカウントデータを提示するユーザインターフェースを提供する例示的な環境の図である。FIG. 2 is an exemplary environment in which an account management system manages account data and provides a user interface for presenting account data. アカウントデータが提示される例示的なユーザインターフェースのスクリーンショットである。4 is a screen shot of an exemplary user interface in which account data is presented. アカウントデータを提示する際のレイテンシを削減するための例示的なプロセスの流れ図である。6 is a flow diagram of an exemplary process for reducing latency in presenting account data. キャッシュを更新するための例示的なプロセスの流れ図である。2 is a flowchart of an exemplary process for updating a cache. 所与のユーザをユーザグループに割り当て、ユーザグループに基づいて所与のユーザに提供するデータを特定するための例示的なプロセスの流れ図である。4 is a flow diagram of an example process for assigning a given user to a user group and identifying data to provide to the given user based on the user group. 複数のキャンペーンのためのアカウントデータを提示する視覚化を生成するための例示的なプロセスの流れ図である。4 is a flow diagram of an example process for generating a visualization that presents account data for multiple campaigns.

様々な図面における同様の参照符号および参照記号は、同様の要素を示す。   Like reference symbols and symbols in the various drawings indicate like elements.

システムは、クライアントデバイスがデータの要求を送る前にクライアントデバイスにデータを送信し、クライアントデバイスにおいてデータをキャッシュすることによってデータを提示する際のレイテンシを削減することができる。しかし、概して、キャッシュされることが可能であるデータの量は、利用可能なデータの量よりも少ない。したがって、システムは、データをキャッシュすることによって与えられる恩恵(たとえば、より高速なユーザインターフェースの更新および/またはユーザインターフェースとのリアルタイムのインタラクション)が実現されることが可能であるように異なるユーザに関してどのデータをキャッシュすべきかを決定する。システムは、データを提示するユーザインターフェースとのユーザの以前のインタラクションに基づいてクライアントデバイスに提供するデータを選択することができる。たとえば、ユーザが特定のデータを特定の時間期間に複数回(たとえば、前週にデータを)要求した場合、システムは、ユーザがデータの要求を実際に送る前のその時間期間に特定のデータを提供してもよい。ユーザがデータの要求を後で送る場合、データは、ユーザデバイスにおいてキャッシュされており、クライアントデバイスがたとえばネットワークを介して遠隔のシステムからのデータを要求しなければならない場合よりも迅速に取得および提示されることが可能である。追加データがまた、クライアントデバイスへのより速い配信のために遠隔のシステムによってキャッシュされることが可能である。   The system can reduce latency in presenting data by sending data to the client device before the client device sends a request for data and caching the data at the client device. However, in general, the amount of data that can be cached is less than the amount of data available. Thus, the system can determine which of the different users can benefit from the benefits afforded by caching data (e.g., faster user interface updates and / or real-time interaction with the user interface). Decide if data should be cached. The system can select data to provide to the client device based on the user's previous interaction with the user interface presenting the data. For example, if a user requests specific data multiple times in a specific time period (eg, data in the previous week), the system will provide specific data for that time period before the user actually sends a request for data May be. If the user sends a request for data later, the data is cached at the user device and is retrieved and presented more quickly than if the client device had to request data from a remote system, eg, over a network Can be done. Additional data can also be cached by remote systems for faster delivery to client devices.

システムは、ユーザがシステムによって管理されたアカウントにアクセスするとき、ユーザに提示するためのデータおよびユーザのデバイスにおいてキャッシュするためのデータを送信することができる。たとえば、ユーザが自身のアカウントにログインするとき、システムは、ダッシュボード内に初期アカウントビューを含むユーザインターフェースと、ユーザのデバイスにおいてキャッシュするための追加データとを提供することができる。ダッシュボードは、システムによって提供されるユーザインターフェースとのユーザの以前のインタラクションに基づいてユーザのために選択されたデータの要約を含むアカウントの概要を含むことができる。データが提示される方法はまた、システムによって提供されるユーザインターフェースとのユーザの以前のインタラクションに基づいて選択されることが可能である。これらのユーザのインタラクションはたとえば、ユーザが閲覧したか、選択したか、もしくはユーザがインタラクションした特定のユーザインターフェース要素(たとえば、コントロール、ディスプレイカード(display card)など)、ユーザによって要求されたかもしくは修正されたデータの種類、および/またはデータの次元(dimension)(たとえば、特定の時間期間内のもしくは特定の地理的位置に関連するデータ)を含むことができる。そのとき、ユーザは、異なるデータを閲覧するかまたはデータの異なる種類の提示を閲覧するためにダッシュボードのユーザインターフェース要素とインタラクションすることができる。それに応答して、適切なデータが、キャッシュされたデータから取得されるか、またはデータを維持するシステムに要求されることが可能である。   The system can transmit data for presentation to the user and data for caching at the user's device when the user accesses an account managed by the system. For example, when a user logs in to their account, the system can provide a user interface that includes an initial account view in the dashboard and additional data to cache on the user's device. The dashboard can include an account summary that includes a summary of data selected for the user based on the user's previous interaction with the user interface provided by the system. The manner in which the data is presented can also be selected based on the user's previous interaction with the user interface provided by the system. These user interactions are, for example, specific user interface elements that the user has viewed, selected, or interacted with (e.g., controls, display cards, etc.), requested or modified by the user. Data types and / or dimensions of the data (eg, data within a specific time period or associated with a specific geographic location). The user can then interact with the dashboard user interface elements to view different data or to view different types of presentation of data. In response, appropriate data can be obtained from the cached data or requested from the system that maintains the data.

初期アカウントビュー内に提示されるデータおよび/またはクライアントデバイスにおいてキャッシュするために提供されるデータは、ユーザが割り当てられるユーザグループに基づいて選択されることが可能である。たとえば、ユーザの特定のグループは、同様の種類のデータを要求し、および/または同様の種類のユーザインターフェース要素とインタラクションしてもよい。特定の例において、同様の役割を有するが異なる組織内のユーザは、同様の種類のデータおよび同様の次元内のデータを要求し、閲覧してもよい。一部の実装において、所与のユーザのためにキャッシュされるデータは、たとえ所与のユーザがアクションを実行しなかったときでさえもグループ内のその他のユーザによって実行されたそれらのアクションに基づいて選択されることが可能である。   The data presented in the initial account view and / or the data provided for caching at the client device can be selected based on the user group to which the user is assigned. For example, a particular group of users may request similar types of data and / or interact with similar types of user interface elements. In certain examples, users in similar organizations but in different organizations may request and view similar types of data and data in similar dimensions. In some implementations, the data cached for a given user is based on those actions performed by other users in the group, even when the given user did not perform the action. Can be selected.

図1は、プリキャッシュシステム110がクライアントデバイス130においてキャッシュするためのデータを提供する例示的な環境100である。プリキャッシュシステム110は、クライアントデバイス130から受信されたデータ要求140に応答してデータストレージデバイス115からのデータを提供することができる。クライアントデバイス130は、データ通信ネットワーク120、たとえばローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、またはこれらの組合せを介してデータ要求140を提供する。各データ要求140は、ユーザがクライアントデバイス130を使用して要求した特定のデータを指定することができる。   FIG. 1 is an exemplary environment 100 in which the pre-cache system 110 provides data for caching at the client device 130. The pre-cache system 110 can provide data from the data storage device 115 in response to a data request 140 received from the client device 130. Client device 130 provides data request 140 over data communication network 120, eg, a local area network (LAN), a wide area network (WAN), the Internet, or a combination thereof. Each data request 140 may specify particular data that the user has requested using the client device 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を記憶する高速なメモリデバイスを含むことができる。   In response to each data request 140, the pre-cache system 110 can obtain the requested data from the data storage device 115 and provide the requested data 142 to the client device 130. For example, the pre-cache system 110 may send the requested data 142 to the client device 130 in one or more transmissions of one or more data packets. The pre-cache system 110 can also select and provide additional data 144 that was not requested by the data request 140. For example, the user of client device 130 may not request additional data 144. Additional data 144 can be cached at client device 130 so that when a user requests additional data 144, it can be provided quickly without sending another data request over network 120. It is. For example, the additional data 144 can be stored in the high speed cache 135 of the client device 130. The fast cache 135 may include a fast memory device that is installed on the client device 130 and stores additional data 144.

一部の実装において、プリキャッシュシステム110は、クライアントデバイス130のユーザに基づいて追加データ144を選択する。たとえば、プリキャッシュシステム110は、ユーザに対してデータを提示する1つまたは複数のユーザインターフェース、たとえばプリキャッシュシステム110によって提供される1つまたは複数のユーザインターフェースとのユーザの以前のインタラクションに基づいて追加データ144を選択してもよい。追加データ144を選択するためにプリキャッシュシステム110が使用するユーザインタラクションはたとえば、ユーザがインタラクションしたユーザインターフェース要素(たとえば、コントロール、ディスプレイカード、グラフの種類など)、ユーザによって要求されたデータの種類(たとえば、キーワード、成果測定値、ビッド(bid)など)、ユーザによって要求された実際のデータ(たとえば、特定のキャンペーン、特定のキーワード、特定のコンテンツアイテムなど)、ユーザによって要求されたデータの次元(たとえば、特定の時間期間、特定の地理的位置、特定の値の範囲など)、ユーザがアカウントにどれだけ頻繁にアクセスするか、および/またはユーザによって選択されたプリファレンスを含むことができる。たとえば、ユーザが特定のコンテンツ配信キャンペーンに関する前週のインプレッションデータを以前のユーザセッション中に要求した場合、プリキャッシュシステム110は、ユーザがこのデータを要求する前に特定のキャンペーンに関する前週のインプレッションデータを現在のユーザセッションのための追加データとして提供してもよい。   In some implementations, pre-cache system 110 selects additional data 144 based on the user of client device 130. For example, the pre-cache system 110 may be based on a user's previous interaction with one or more user interfaces that present data to the user, eg, one or more user interfaces provided by the pre-cache system 110. Additional data 144 may be selected. User interactions used by the pre-cache system 110 to select additional data 144 include, for example, user interface elements that the user interacted with (e.g., controls, display cards, graph types, etc.), the type of data requested by the user ( (E.g., keywords, performance measures, bids), actual data requested by the user (e.g., specific campaigns, specific keywords, specific content items, etc.), dimensions of the data requested by the user (e.g. For example, a specific time period, a specific geographical location, a specific range of values, etc.), how often the user accesses the account, and / or preferences selected by the user. For example, if a user requests previous week's impression data for a particular content delivery campaign during a previous user session, the pre-cache system 110 may currently request previous week's impression data for a particular campaign before requesting this data. May be provided as additional data for other user sessions.

一部の実装において、一部のデータ要求140は、特定のデータの特定の要求ではなく包括的なまたは暗黙的な要求であってもよい。たとえば、プリキャッシュシステム110は、ユーザがアカウントにログインするかまたはその他の方法でアクセスすることに応じてアカウントの概要を提供する初期アカウントビューをともなうユーザインターフェース、たとえばダッシュボードを生成し、提供してもよい。データのこの要約は、概要に含まれるデータの特定の要求ではなくユーザがアカウントにログインすることに応じて選択されることが可能である。プリキャッシュシステム110はまた、ダッシュボードを閲覧した後にユーザが要求する場合がある追加データを選択し、提供することができる。   In some implementations, some data requests 140 may be generic or implicit requests rather than specific requests for specific data. For example, the pre-cache system 110 generates and provides a user interface, such as a dashboard, with an initial account view that provides an overview of the account in response to a user logging into or otherwise accessing the account. Also good. This summary of data can be selected in response to a user logging into an account rather than a specific request for data contained in the summary. The pre-cache system 110 can also select and provide additional data that the user may request after viewing the dashboard.

一部の実装において、プリキャッシュシステム110はまた、プリキャッシュシステム110において追加データをキャッシュする場合がある。このような方法で、プリキャッシュシステムは、追加データを指定するデータ要求に応答してデータをより迅速に提供することができる。この追加データは、クライアントデバイス130に送信される追加データ144と同様にして選択されることが可能である。たとえば、プリキャッシュシステム110は、プリキャッシュするための追加データのセットを選択してもよい。プリキャッシュシステム110は、クライアントデバイスにおいてキャッシュするためにクライアントデバイス130に追加データのサブセットを送信してもよい。プリキャッシュシステム110はまた、プリキャッシュシステム110において追加データのサブセットをキャッシュする場合がある。たとえば、プリキャッシュシステム110は、ユーザが選択する見込みが最も大きいデータを追加データのセットから特定し、そのデータをクライアントデバイス130に提供してもよい。追加データのセットのうちの残りのデータは、プリキャッシュシステム110においてキャッシュされてもよい。プリキャッシュシステム110におけるこのキャッシュは、データの要求に応答してデータストレージデバイス115からデータを取得することがいくらか時間がかかり、データを取得するために使用される計算リソースの需要を増やす可能性があるときに、クライアントデバイス130にデータを提供する際のレイテンシを削減することができる。   In some implementations, the pre-cache system 110 may also cache additional data in the pre-cache system 110. In this way, the pre-cache system can provide data more quickly in response to a data request specifying additional data. This additional data can be selected in the same manner as the additional data 144 transmitted to the client device 130. For example, the pre-cache system 110 may select a set of additional data to pre-cache. The pre-cache system 110 may send a subset of the additional data to the client device 130 for caching at the client device. Pre-cache system 110 may also cache a subset of the additional data at pre-cache system 110. For example, the pre-cache system 110 may identify data from the set of additional data that is most likely to be selected by the user and provide that data to the client device 130. The remaining data in the set of additional data may be cached in the pre-cache system 110. This cache in the pre-cache system 110 can take some time to retrieve data from the data storage device 115 in response to a request for data, and can increase the demand for computing resources used to retrieve the data. At some point, latency in providing data to the client device 130 can be reduced.

図2は、アカウント管理システム210がオンラインアカウントデータを管理し、アカウントデータを提示するユーザインターフェースを提供する例示的な環境200である。アカウント管理システム210は、1つまたは複数のデータセンターに置かれた1つまたは複数のサーバを含むことができる。1つまたは複数のサーバは、データ通信ネットワーク250、たとえばLAN、WAN、インターネット、またはこれらの組合せを介してオンラインアカウントデータの要求を受信することができる。たとえば、アカウント管理システム210は、オンラインデータの要求を受信し、要求されたデータをネットワーク250を介してクライアントデバイス262および272に提供する1つまたは複数のフロントエンドサーバ240を含むことができる。アカウント管理システム210はまた、フロントエンドサーバから要求を受信し、要求に基づいて適切なアカウントデータを取得し、取得されたデータをフロントエンドサーバ240に提供する1つまたは複数のバックエンドサーバを含むことができる。   FIG. 2 is an exemplary environment 200 in which the account management system 210 manages online account data and provides a user interface for presenting account data. Account management system 210 may include one or more servers located in one or more data centers. One or more servers may receive a request for online account data over a data communication network 250, such as a LAN, WAN, the Internet, or a combination thereof. For example, account management system 210 may include one or more front-end servers 240 that receive requests for online data and provide the requested data to client devices 262 and 272 via network 250. Account management system 210 also includes one or more back-end servers that receive requests from front-end servers, obtain appropriate account data based on the requests, and provide the obtained data to front-end server 240 be able to.

アカウント管理システム210は、複数の異なるアカウント保持者の複数の異なるアカウントのためのオンラインアカウントデータを管理することができる。たとえば、アカウント管理システム210は、複数の異なる組織、たとえばアカウント保持者260および270のためのアカウントデータを管理することができる。2つのアカウント保持者260および270が図2に示されるが、アカウント管理システム210は、その他の数のアカウント保持者のためのアカウントデータを管理することができる。以下で説明されるシステムおよび技術は、様々なその他の種類のデータにも適用されることが可能である。   Account management system 210 can manage online account data for a plurality of different accounts of a plurality of different account holders. For example, account management system 210 can manage account data for a number of different organizations, such as account holders 260 and 270. Although two account holders 260 and 270 are shown in FIG. 2, the account management system 210 can manage account data for other numbers of account holders. The systems and techniques described below can be applied to various other types of data.

アカウント管理システム210によって管理されるアカウントデータは、コンテンツアイテムに関する成果データ(たとえば、インプレッションの数、クリック率、コンバージョン率など)、アカウント保持者に関する予算情報、および/またはコンテンツアイテム配信基準などのアカウントに関連する任意のデータを含むことができる。各アカウント保持者に関するアカウントデータは、1つまたは複数のデータセンターに置かれた複数のデータストレージデバイスを含む場合があるアカウントデータストレージデバイス227に記憶される。各アカウント保持者に関するアカウントデータは、1人のアカウント保持者に関するアカウントデータが異なるアカウント保持者のユーザに提供されないように別々にかつ安全に記憶されてもよい。   Account data managed by the account management system 210 can be attributed to the account, such as performance data about content items (eg, impressions, click rate, conversion rate, etc.), budget information about account holders, and / or content item delivery criteria. Any relevant data can be included. Account data for each account holder is stored in an account data storage device 227 that may include multiple data storage devices located in one or more data centers. Account data for each account holder may be stored separately and securely so that account data for one account holder is not provided to users of different account holders.

各アカウント保持者260および270は、アカウント保持者のアカウントに関連するデータを閲覧することを認可される1人または複数の認可されたユーザを有することができる。たとえば、組織は、アカウント管理システム210がアカウントデータを維持するキャンペーンを管理することを認可される複数のユーザを有してもよい。アカウント保持者260のアカウントデータにアクセスすることを認可された各ユーザは、クライアントデバイス262-1〜262-nを使用してアカウントデータにアクセスすることができる。同様に、アカウント保持者270のアカウントデータにアクセスすることを認可された各ユーザは、クライアントデバイス272-1〜272-nを使用してアカウントデータにアクセスすることができる。ユーザは、アカウントデータにアクセスできるようにされる前に資格証明情報(たとえば、ユーザ名およびパスワード)を入力するように促されてもよい。   Each account holder 260 and 270 may have one or more authorized users who are authorized to view data associated with the account holder's account. For example, an organization may have multiple users who are authorized to manage campaigns for which account management system 210 maintains account data. Each user authorized to access account holder 260 account data can access account data using client devices 262-1 through 262-n. Similarly, each user authorized to access account holder 270 account data can access account data using client devices 272-1 through 272-n. The user may be prompted to enter credential information (eg, username and password) before being allowed to access account data.

クライアントデバイスは、ネットワーク250を介して電子的なリソースおよびその他のデータを要求し、受信することができる電子デバイスである。例示的なクライアントデバイスは、パーソナルコンピュータ、モバイル通信デバイス(たとえば、スマートフォン、タブレットコンピューティングデバイス、および/またはスマートウォッチ)、ならびにネットワーク250を介してデータを送受信することができるその他のデバイスを含む。概して、クライアントデバイスは、ネットワーク250を介したデータの送受信を容易にするための、ウェブブラウザなどのユーザアプリケーションを含む。ウェブブラウザは、ユーザが概してウェブサイトのウェブページに置かれるテキスト、画像、ビデオ、音楽、およびその他の情報とインタラクションすることを可能にすることができる。クライアントデバイスは、特定の種類のデバイスまたは特定のプラットフォームのために開発されたその他のアプリケーション、たとえばネイティブアプリケーションを含むことができる。   A client device is an electronic device that can request and receive electronic resources and other data over network 250. Exemplary client devices include personal computers, mobile communication devices (eg, smartphones, tablet computing devices, and / or smart watches), and other devices that can send and receive data over the network 250. In general, the client device includes a user application, such as a web browser, to facilitate sending and receiving data over the network 250. A web browser can allow a user to interact with text, images, videos, music, and other information that is typically placed on a web page of the website. A client device can include a particular type of device or other application developed for a particular platform, such as a native application.

各クライアントデバイス262および272は、高速キャッシュ264およびアカウントビューア266を含むことができる。アカウントビューア266は、クライアントデバイスのユーザに対してアカウントデータを提示するアプリケーションである。アカウントビューア266は、下でより詳細に説明されるように、アカウント管理システム210からのアカウントデータを要求し、1つまたは複数のユーザインターフェースを使用してアカウントデータを提示するウェブブラウザまたはネイティブアプリケーションであってもよい。   Each client device 262 and 272 can include a high speed cache 264 and an account viewer 266. The account viewer 266 is an application that presents account data to the user of the client device. Account viewer 266 is a web browser or native application that requests account data from account management system 210 and presents the account data using one or more user interfaces, as described in more detail below. There may be.

高速キャッシュ264は、アカウントビューア266によって提示されてもよいアカウントデータを記憶する高速なメモリデバイスを含む。たとえば、高速キャッシュ264は、スタティックランダムアクセスメモリ(SRAM)および/またはソリッドステートメモリデバイスを含んでもよい。高速キャッシュ264は、クライアントデバイスのユーザによってまだ要求されていないアカウントデータを記憶してもよい。ユーザが高速キャッシュ264に記憶されたアカウントデータを要求するとき、アカウントビューア266は、ネットワーク250を介してアカウントデータの要求を送ることなく、高速キャッシュ264から迅速にアカウントデータを取得することができる。このデータのプリキャッシュは、アカウントデータを提示する際のレイテンシを削減し、ネットワーク250およびアカウント管理システム210の計算リソースに対して課される要求を削減する。   The high speed cache 264 includes a high speed memory device that stores account data that may be presented by the account viewer 266. For example, high speed cache 264 may include static random access memory (SRAM) and / or solid state memory devices. The fast cache 264 may store account data that has not yet been requested by the user of the client device. When a user requests account data stored in the high speed cache 264, the account viewer 266 can quickly obtain account data from the high speed cache 264 without sending a request for account data over the network 250. This pre-caching of data reduces the latency in presenting account data and reduces the demands placed on the computational resources of the network 250 and account management system 210.

一部の実装において、アカウントビューア266は、アカウントデータの要求に応答して高速キャッシュ264を調べるように構成されることが可能である。要求されたアカウントデータが高速キャッシュ264内で見つかる場合、アカウントビューア266は、高速キャッシュ264からアカウントデータを取得し、アカウントデータをユーザに対して提示することができる。要求されたアカウントデータが高速キャッシュ内にない場合、アカウントビューア266はたとえば、ネットワーク250を介して要求を送ることによってアカウント管理システム210からのアカウントデータを要求することができる。   In some implementations, the account viewer 266 can be configured to examine the high speed cache 264 in response to a request for account data. If the requested account data is found in the high speed cache 264, the account viewer 266 can retrieve the account data from the high speed cache 264 and present the account data to the user. If the requested account data is not in the high speed cache, the account viewer 266 can request account data from the account management system 210 by sending a request over the network 250, for example.

アカウント管理システム210は、データ送信サブシステム220、インタラクションロガー230、およびユーザグループエンジン235を含む。データ送信サブシステム220は、アカウントデータの要求を受信しかつ応答する。データ要求は、特定のアカウントデータの特定の要求を含んでもよい。特定の要求の例は、特定の時間期間の間の、特定のキャンペーンに関する成果データの要求である。アカウント管理システム210はまた、包括的なまたは暗黙的な要求に応答してアカウントデータを提供することができる。包括的なまたは暗黙的な要求の例は、ユーザがアクセスすることを認可されるアカウントにユーザがログインすることである。この例において、データ送信サブシステム220は、ユーザのための初期アカウントビューを提供するためのデータの要約を選択してもよい。   The account management system 210 includes a data transmission subsystem 220, an interaction logger 230, and a user group engine 235. The data transmission subsystem 220 receives and responds to requests for account data. The data request may include a specific request for specific account data. An example of a specific request is a request for performance data for a specific campaign during a specific time period. Account management system 210 may also provide account data in response to a comprehensive or implicit request. An example of a comprehensive or implicit request is that the user logs into an account that the user is authorized to access. In this example, data transmission subsystem 220 may select a data summary to provide an initial account view for the user.

データ送信サブシステム220は、データセレクタ221およびユーザインターフェースジェネレータ229を含む。データセレクタ221は、クライアントデバイスから受信されたデータ要求(たとえば、特定の、包括的な、または暗黙的な要求)に応答して提供するアカウントデータを特定する。たとえば、データセレクタ221は、特定のデータ要求によって指定された特定のデータを取得するためにアカウントデータストレージデバイス227にアクセスしてもよい。包括的なまたは暗黙的なデータ要求に関して、データセレクタ221は、要求がなされた特定のユーザに基づいてアカウントデータのサブセットを選択することができる。アカウントデータのこのサブセットは、ユーザがアクセスすることを認可されるアカウントのアカウントデータのサブセットである。たとえば、下でより詳細に説明されるように、データセレクタ221は、アカウント管理システム210によって提供されるユーザインターフェースとのユーザの以前のインタラクションに基づいて提供するアカウントデータのサブセットを選択してもよい。   The data transmission subsystem 220 includes a data selector 221 and a user interface generator 229. Data selector 221 identifies account data to provide in response to a data request (eg, a specific, generic or implicit request) received from a client device. For example, the data selector 221 may access the account data storage device 227 to obtain specific data specified by a specific data request. For generic or implicit data requests, the data selector 221 can select a subset of account data based on the particular user for whom the request was made. This subset of account data is a subset of the account data of the account that the user is authorized to access. For example, as described in more detail below, the data selector 221 may select a subset of account data to provide based on the user's previous interaction with the user interface provided by the account management system 210. .

ユーザインターフェースジェネレータ229は、アカウントデータを提示する様々なユーザインターフェースを生成することができる。ユーザインターフェースは、ユーザが様々なフォーマット(たとえば、グラフ、チャート、テーブルなど)の様々なデータを要求し、閲覧することを可能にするユーザインターフェース要素(たとえば、コントロール、ディスプレイカード、メニューなど)を含むダッシュボードを含むことができる。ダッシュボードは、ユーザがアカウントに最初にアクセスする度に、たとえばユーザがアカウントにログインすることに応じて初期アカウントビューを提示してもよい。初期アカウントビューはたとえば、アカウントの概要を提供し、アカウントにアクセスしているユーザに適合されるアカウントデータのサブセットを含むことができる。下でより詳細に説明されるように、アカウントデータの要約は、アカウント管理システム210によって提供されるユーザインターフェースとのユーザの以前のインタラクションに基づいて選択されたデータを含むことができる。   The user interface generator 229 can generate various user interfaces that present account data. The user interface includes user interface elements (e.g., controls, display cards, menus, etc.) that allow the user to request and view various data in various formats (e.g., graphs, charts, tables, etc.). Dashboards can be included. The dashboard may present an initial account view each time the user first accesses the account, for example in response to the user logging into the account. The initial account view can, for example, provide a summary of the account and include a subset of account data adapted to the user accessing the account. As described in more detail below, the summary of account data may include data selected based on the user's previous interaction with the user interface provided by account management system 210.

ユーザインターフェースは、1つまたは複数のディスプレイカードユーザインターフェース要素を含むことができる。各ディスプレイカードは、特定の種類のデータを特定の方法で提示することができる。たとえば、第1のディスプレイカードが、コンテンツアイテムに関するインプレッションデータをテーブルにおいて提示してもよい一方、第2のディスプレイカードは、コンテンツアイテムを配信するための複数のキーワードに関するクリック率を棒グラフを使用して提示してもよい。一部の実装において、ユーザインターフェースジェネレータ229は、ディスプレイカードまたはその他のユーザインターフェース要素とのユーザの以前のインタラクションに基づいて初期アカウントビュー内に提供するディスプレイカードを選択する。たとえば、ユーザが特定のディスプレイカードを少なくとも閾値の回数閲覧することを選択する場合、ユーザインターフェースジェネレータ229は、初期アカウントビュー内に特定のディスプレイカードを提供してもよい。別の例において、ユーザインターフェースジェネレータ229は、ユーザが最も頻繁に閲覧することを選択する1つまたは複数のディスプレイカードを初期アカウントビュー内に含んでもよい。下でより詳細に説明されるように、ユーザインターフェースジェネレータ229はまた、ユーザが割り当てられるユーザグループに基づいて初期アカウントビュー内に含めるためのディスプレイカードを選択する場合がある。例示的なユーザインターフェースが、図3に示され、下で説明される。   The user interface can include one or more display card user interface elements. Each display card can present a particular type of data in a particular way. For example, a first display card may present impression data for a content item in a table, while a second display card uses a bar graph to show click rates for multiple keywords for delivering a content item. May be presented. In some implementations, the user interface generator 229 selects a display card to provide in the initial account view based on the user's previous interaction with the display card or other user interface element. For example, if the user chooses to view a particular display card at least a threshold number of times, the user interface generator 229 may provide the particular display card in the initial account view. In another example, the user interface generator 229 may include one or more display cards in the initial account view that the user chooses to view most frequently. As described in more detail below, the user interface generator 229 may also select a display card for inclusion in the initial account view based on the user group to which the user is assigned. An exemplary user interface is shown in FIG. 3 and described below.

インタラクションロガー230は、アカウント管理システム210によって提供されおよび/またはアカウントビューア266によって提示されるユーザインターフェースとのユーザのインタラクションを説明するデータをログに記録する。下でより詳細に説明されるように、このインタラクションデータは、ユーザに提供されるアカウントデータを選択するために使用される。たとえば、各ユーザは、アカウントデータを閲覧し、および/またはユーザが閲覧し、変更を行うことを認可されるアカウントに変更を行うために自身のアカウントにログインしてもよい。ユーザがログインされている間に、およびユーザの許可を受けて、インタラクションロガー230は、ユーザインターフェースとのユーザのインタラクションを説明するデータを受信し、安全なインタラクションログ232にデータを記憶することができる。たとえば、アカウントビューア266は、各インタラクションに関するデータを取得する埋め込みスクリプトを含んでもよく、インタラクションロガー230にデータを提供する。インタラクションログ232に記憶されるユーザのインタラクションを説明するデータはたとえば、ユーザがインタラクションしたユーザインターフェース要素(たとえば、コントロール、ディスプレイカード、グラフの種類など)、ユーザによって要求されたデータの種類(たとえば、キーワード、成果測定値、ビッドなど)、ユーザによって要求された実際のデータ(たとえば、特定のキャンペーン、特定のキーワード、特定のコンテンツアイテムなど)、ユーザによって要求されたデータの次元(たとえば、特定の時間期間、特定の地理的位置、特定の値の範囲など)、ユーザがアカウントにどれだけ頻繁にアクセスするか、ユーザによって選択されたプリファレンス、および/またはその他の適切なインタラクションデータを含むことができる。   The interaction logger 230 logs data describing the user's interaction with the user interface provided by the account management system 210 and / or presented by the account viewer 266. As will be described in more detail below, this interaction data is used to select account data provided to the user. For example, each user may view account data and / or log into their account to make changes to an account that the user is authorized to view and make changes to. While the user is logged in and with the user's permission, the interaction logger 230 can receive data describing the user's interaction with the user interface and store the data in the secure interaction log 232. . For example, the account viewer 266 may include an embedded script that obtains data about each interaction and provides the data to the interaction logger 230. Data describing the user's interaction stored in the interaction log 232 includes, for example, user interface elements that the user interacted with (eg, control, display card, graph type, etc.), the type of data requested by the user (eg, keyword , Performance measures, bids, etc.), the actual data requested by the user (e.g., specific campaigns, specific keywords, specific content items, etc.), dimensions of the data requested by the user (e.g., specific time period) , Specific geographic location, specific value range, etc.), how often the user accesses the account, preferences selected by the user, and / or other suitable interaction data.

一部の実装において、インタラクションロガー230は、ログに記録されたデータを含む各ユーザに関するユーザプロファイルを生成する。ユーザに関するユーザプロファイルに、インタラクションロガー230は、ユーザがインタラクションした各ユーザインターフェース要素を特定するデータ、ユーザがユーザインターフェース要素とインタラクションした回数、および/またはユーザがユーザインターフェース要素とインタラクションした頻度を含んでもよい。ユーザに関するユーザプロファイルは、ユーザによって要求されたデータの各種類を特定するデータ、ユーザが各種類のデータを要求した回数、およびユーザが各種類のデータを要求する頻度も含んでよい。同じ特定するおよび頻度のデータが、ユーザによって要求された実際のデータのそれぞれの特定の部分に関して記憶されることが可能である。データの各種類に関して、および/またはユーザによって要求されたデータのそれぞれの特定の部分に関して、ユーザプロファイルは、データに関する次元を含むことができる。たとえば、ユーザが特定の時間期間中の特定のコンテンツアイテムの成果を要求した場合、ユーザプロファイルは、その種類のデータ(成果データ)に関しておよび実際のデータ(特定のコンテンツアイテムの成果)に関して特定の時間期間を指定するデータを含む。ユーザがオンラインアカウントにアクセスする各ユーザセッションの後で、ユーザインタラクションロガー230は、ユーザセッション中のデータおよびユーザインターフェース要素とのユーザのインタラクションを説明するようにユーザのプロファイルを更新することができる。   In some implementations, the interaction logger 230 generates a user profile for each user that includes logged data. In the user profile for the user, the interaction logger 230 may include data identifying each user interface element that the user interacted with, the number of times the user interacted with the user interface element, and / or the frequency with which the user interacted with the user interface element. . The user profile for the user may also include data identifying each type of data requested by the user, the number of times the user requested each type of data, and the frequency with which the user requests each type of data. The same identifying and frequency data can be stored for each particular portion of actual data requested by the user. For each type of data and / or for each particular portion of data requested by the user, the user profile can include dimensions for the data. For example, if a user requests the outcome of a particular content item during a particular period of time, the user profile will have a specific time for that type of data (achievement data) and for the actual data (a particular content item's outcome). Contains data that specifies a period. After each user session in which the user accesses the online account, the user interaction logger 230 can update the user's profile to account for the user's interaction with the data and user interface elements during the user session.

ユーザグループエンジン235は、アカウント管理システム210によって提供されるユーザインターフェースとのユーザのインタラクションに基づいてユーザをユーザグループに割り当てることができる。たとえば、ユーザグループエンジン235は、ユーザのユーザプロファイルの間の類似性に基づいてユーザをユーザグループに割り当ててもよい。ユーザグループは、ユーザのユーザプロファイルに基づいてグループ内のそれぞれのその他のユーザと少なくとも閾値の類似性を有するユーザをユーザグループのメンバーとして含むことができる。たとえば、類似性のスコアが、2人のユーザのプロファイルに記憶されたデータの間の類似性に基づいてユーザの各ペアに関して決定されることが可能である。類似性のスコアが(たとえば、閾値を満たすかまたは超えることによって)閾値を満足する場合、2人のユーザは、ユーザグループにともに含まれてもよい。類似性のスコアは、2人のユーザの間の一致する特徴の数に基づくことが可能である。たとえば、2人のユーザが同じ種類のデータを要求したおよび/または同じユーザインターフェース要素を選択した場合、2人のユーザは、2人のユーザが同じ種類のデータを要求しなかったかまたは同じユーザインターフェース要素を選択しなかった場合よりも高い類似性のスコアを有する場合がある。ユーザグループは、下でより詳細に説明されるように、グループのメンバーに提供するアカウントデータおよびユーザインターフェース要素を特定するために使用されることが可能である。   The user group engine 235 can assign users to user groups based on the user's interaction with the user interface provided by the account management system 210. For example, the user group engine 235 may assign users to user groups based on the similarity between the user's user profiles. The user group can include users having at least a threshold similarity as members of the user group with each other user in the group based on the user profile of the user. For example, a similarity score can be determined for each pair of users based on the similarity between data stored in the profiles of two users. If the similarity score meets the threshold (eg, by meeting or exceeding the threshold), the two users may be included in the user group together. The similarity score can be based on the number of matching features between the two users. For example, if two users requested the same type of data and / or selected the same user interface element, the two users did not request the same type of data or the same user interface It may have a higher similarity score than if no element was selected. User groups can be used to identify account data and user interface elements to provide to members of the group, as described in more detail below.

一部の実装において、ユーザグループは、組織内での特定の役割に基づく。たとえば、ユーザグループエンジン235が、プロダクトマネージャのためのユーザグループおよび会計士のための別のユーザグループを作成し、データを投入してもよい。特定の役割のためのユーザグループは、特定の役割のためのプロファイルと一致するかまたは類似しているユーザプロファイルを有するユーザを含むことができる。たとえば、特定の役割のユーザは、同様のデータの次元の同様の種類のデータにアクセスしおよび/または同じもしくは同様のユーザインターフェース要素を閲覧してもよい。   In some implementations, user groups are based on specific roles within the organization. For example, the user group engine 235 may create and populate the user group for the product manager and another user group for the accountant. A user group for a particular role can include users with user profiles that match or are similar to the profile for the particular role. For example, a user in a particular role may access similar types of data in similar data dimensions and / or view the same or similar user interface elements.

ユーザグループは、複数の異なるアカウント保持者のためのユーザを含むことができる。たとえば、プロダクトマネージャのためのユーザグループは、複数の異なる組織のプロダクトマネージャを含んでもよい。このような方法で、複数の異なる組織からのユーザインタラクションのパターンが、同じ役割を有するユーザによって要求される見込みがより大きいか、またはその他の点で類似しているデータの種類を特定するために使用されることが可能である。ユーザをユーザグループに割り当てるための例示的なプロセスが、図6に示され、下で説明される。   A user group can include users for multiple different account holders. For example, a user group for product managers may include product managers from different organizations. In this way, to identify data types in which patterns of user interaction from multiple different organizations are more likely to be required by users with the same role or otherwise similar Can be used. An exemplary process for assigning users to user groups is shown in FIG. 6 and described below.

上述のように、データセレクタ221は、アカウント管理システム210によって提供されるユーザインターフェースとのユーザの以前のインタラクションに基づいてユーザに提供するデータを選択することができる。特に、データセレクタ221は、アカウント管理システム210によって提供されるユーザインターフェースとのユーザの以前のインタラクションに基づいてユーザのための初期アカウントビュー内に提供するデータを選択してもよい。たとえば、ユーザがアカウント管理システム210のアカウントにアクセスするとき、データセレクタ221は、ユーザがアカウントにアクセスすることに応じてユーザのための初期アカウントビュー内に提供するアカウントデータの第1のデータセットと、潜在的にたとえそのデータが初期アカウントビューのために使用されない場合があるとしてもクライアントデバイスによってキャッシュされるデータとを選択してもよい。   As described above, the data selector 221 can select data to provide to the user based on the user's previous interaction with the user interface provided by the account management system 210. In particular, the data selector 221 may select data to provide in the initial account view for the user based on the user's previous interaction with the user interface provided by the account management system 210. For example, when a user accesses an account in the account management system 210, the data selector 221 includes a first data set of account data that is provided in an initial account view for the user in response to the user accessing the account and , Potentially selecting data to be cached by the client device even if that data may not be used for the initial account view.

データセレクタ221は、特定のデータがユーザによって要求されるかもしくは閲覧される頻度、特定の種類のデータがユーザによって要求されるかもしくは閲覧される頻度、ユーザが特定のユーザインターフェース要素とインタラクションした頻度、および/またはユーザのプロファイルに含まれるその他のデータに基づいて第1のデータセットに含めるためのデータを選択してもよい。たとえば、初期アカウントビューはたとえば、ユーザインターフェースジェネレータ229によって選択された特定の数のカードを含んでもよい。データセレクタ221は、ディスプレイカードにデータを投入するための第1のデータセットを選択することができる。この第1のデータセットは、ディスプレイカードに含めるための最も頻繁に要求されたデータおよび/またはデータの最も頻繁に選択された種類を含んでもよい。   The data selector 221 includes the frequency at which specific data is requested or viewed by the user, the frequency at which specific types of data are requested or viewed by the user, and the frequency at which the user interacts with specific user interface elements. And / or data for inclusion in the first data set may be selected based on other data included in the user's profile. For example, the initial account view may include a certain number of cards selected by the user interface generator 229, for example. The data selector 221 can select a first data set for inputting data to the display card. This first data set may include the most frequently requested data for inclusion in the display card and / or the most frequently selected type of data.

データセレクタ221は、ユーザによって要求されたデータの次元に基づいて第1のデータセットを選択してもよい。たとえば、第1のデータセットは、ユーザがデータを以前に要求した特定の時間期間に関するデータを含んでもよい。特定の例において、ユーザは、最近のデータ、たとえば先週に起こったイベントに関するデータにのみ関心がある場合がある。この例において、ユーザは、より古いデータを要求することなく前週に関するデータを要求することが多い場合がある。データセレクタ221は、ユーザがログインする前の週に起こったイベントに関するデータを含む第1のデータセットを初期アカウントビュー内に提示するためにこのユーザに提供してもよい。データセレクタ221は、ユーザがデータを要求するまでこのユーザにより古いデータを提供しないと決定してもよく、より少ないデータがネットワークを介して提供され、クライアントデバイスに記憶される結果となる。   The data selector 221 may select the first data set based on the dimension of the data requested by the user. For example, the first data set may include data regarding a particular time period for which the user previously requested data. In certain instances, the user may only be interested in recent data, for example, data regarding events that occurred last week. In this example, the user often requests data for the previous week without requesting older data. The data selector 221 may provide the user with a first data set that includes data relating to events that occurred in the week before the user logs in in the initial account view. The data selector 221 may decide not to provide older data to the user until the user requests the data, resulting in less data being provided over the network and stored on the client device.

第1のデータセットを選択する際に使用されるデータの次元はまた、頻度に基づいて選択される場合がある。たとえば、ユーザは、異なる時間期間または異なる地理的位置に関するデータを要求する場合がある。データセレクタ221は、最も頻繁に要求された時間期間または地理的位置に基づいて第1のデータセットを選択してもよい。   The dimension of data used in selecting the first data set may also be selected based on frequency. For example, a user may request data regarding different time periods or different geographic locations. The data selector 221 may select the first data set based on the most frequently requested time period or geographic location.

データセレクタ221は、ユーザのための初期アカウントビュー内に提示されるデータの種類に基づいて初期アカウントビューのための第1のデータセットを選択してもよい。たとえば、特定のディスプレイカードが、特定の種類のデータを提示してもよい。特定のカードが初期アカウントビューのために選択される場合、データセレクタ221は、特定のディスプレイカードにデータを投入するために適切なデータを第1のデータセットに含めるために選択してもよい。   The data selector 221 may select a first data set for the initial account view based on the type of data presented in the initial account view for the user. For example, a particular display card may present a particular type of data. If a particular card is selected for the initial account view, the data selector 221 may select the appropriate data to include in the first data set to populate the particular display card.

一部の実装において、データセレクタ221はまた、ユーザが割り当てられたユーザグループまたは役割に基づいて第1のデータセットを選択することが可能である。たとえば、グループ内のまたは同じ役割を有するその他のユーザは、特定の種類のデータを要求するかまたは特定のユーザインターフェース要素(たとえば、特定のディスプレイカード)とインタラクションしてもよい。データセレクタ221は、ユーザがグループ内の(または同じ役割を割り当てられる)その他のユーザによって要求された種類のデータに関心がある場合があり、またはこれらの種類のデータが有用であると知る場合があるとき、これらの種類のデータを第1のデータセットに含めてもよい。もちろん、その他のアカウントからの実際のデータは、第1のデータセットに含まれない。その代わりに、データセレクタ221は、グループ内のその他のユーザが要求した同じ種類のアカウントデータをユーザがアクセスすることを認可されるアカウント内で特定してもよい。   In some implementations, the data selector 221 can also select the first data set based on the user group or role to which the user is assigned. For example, other users within a group or having the same role may request a particular type of data or interact with a particular user interface element (eg, a particular display card). Data selector 221 may allow a user to be interested in the types of data requested by other users in the group (or assigned the same role), or know that these types of data are useful. At some point, these types of data may be included in the first data set. Of course, actual data from other accounts is not included in the first data set. Instead, the data selector 221 may specify in an account that the user is authorized to access the same type of account data requested by other users in the group.

データセレクタ221は、ユーザグループ内のその他のユーザによって要求される種類のデータをグループ内のその他のユーザが要求するかまたは閲覧する頻度に基づいて、第1のデータセットに含めるためにその種類のデータを選択することができる。たとえば、グループが全体として特定の種類のデータを最も頻繁に要求するかまたは閲覧する場合、その特定の種類のデータが第1のデータセットに含まれてもよい。データセレクタ221はまた、ユーザグループ内のその他のユーザによって要求される種類のデータを要求するかまたは閲覧するその他のユーザの数に基づいて、第1のデータセットに含めるためにその種類のデータを選択することが可能である。たとえば、最も多くのユーザ(または少なくとも閾値の数のユーザ)によって要求されるかまたは閲覧される特定の種類のデータが第1のデータセットに含まれてもよい。   The data selector 221 selects the type of data requested by other users in the user group for inclusion in the first data set based on the frequency with which other users in the group request or view the data. Data can be selected. For example, if a group generally requests or views a particular type of data as a whole, that particular type of data may be included in the first data set. The data selector 221 also requests that type of data for inclusion in the first data set based on the number of other users that request or view the type of data requested by other users in the user group. It is possible to select. For example, a particular type of data that is requested or viewed by the most users (or at least a threshold number of users) may be included in the first data set.

同様に、ユーザインターフェースジェネレータ229は、ユーザグループ内のその他のユーザが選択したかまたは閲覧したユーザインターフェース要素に基づいて初期アカウントビューに含めるユーザインターフェース要素、たとえばディスプレイカードを選択することができる。たとえば、ユーザインターフェースジェネレータ229は、ユーザグループ内のユーザがユーザインターフェース要素を選択したかもしくは閲覧した回数および/またはユーザインターフェース要素を選択したかもしくは閲覧したグループ内のユーザの数に基づいて初期アカウントビューのためのユーザインターフェース要素を選択してもよい。   Similarly, the user interface generator 229 can select user interface elements to include in the initial account view, such as a display card, based on user interface elements selected or viewed by other users in the user group. For example, the user interface generator 229 may determine the initial account view based on the number of times users in a user group have selected or viewed user interface elements and / or the number of users in the group that have selected or viewed user interface elements. User interface elements for may be selected.

アカウント管理システム210によって提供されるユーザインターフェースとのユーザの以前のインタラクションに基づいておよび/またはグループに含まれるその他のユーザのそのユーザとのインタラクションに基づいてユーザのための初期アカウントビュー内に含めるユーザインターフェース要素およびデータを選択することによって、アカウント管理システム210は、ユーザにとって最も有用である見込みが大きいデータの要約を提供することができ、それによって、データの要約の有用性を高める。これは、より高いユーザの満足と、ユーザによって提出される追加データの要求の数の削減とをもたらすことができる。したがって、この選択プロセスは、ネットワークに対して課される要求およびネットワークによって引き起こされるレイテンシを削減することができる。   Users to include in the initial account view for a user based on the user's previous interaction with the user interface provided by the account management system 210 and / or based on the user's interaction with other users included in the group By selecting interface elements and data, the account management system 210 can provide a summary of data that is likely to be most useful to the user, thereby increasing the usefulness of the data summary. This can result in higher user satisfaction and a reduction in the number of requests for additional data submitted by the user. Thus, this selection process can reduce the demands placed on the network and the latency caused by the network.

データセレクタ221は、プリキャッシュエンジン223およびキャンペーングルーパ(campaign grouper)225を含む。プリキャッシュエンジン223は、アカウントデータの要求に応答してクライアントデバイスに提供する1つまたは複数の第2のデータセットを選択することができる。プリキャッシュエンジン223は、特定のデータの特定の要求および/またはデータの包括的なもしくは暗黙的な要求(たとえば、ユーザがアカウントにログインすること)に応答して第2のデータセットを選択することができる。プリキャッシュエンジン223は、第2のデータセットに含まれるデータの要求を受信する前に第2のデータセットを選択し、提供することができる。たとえば、第2のデータセットは、特定の要求において指定されなかった、または初期アカウントビューのために提供される第1のデータセットに含めるために選択されなかったデータであることができる。   The data selector 221 includes a pre-cache engine 223 and a campaign grouper 225. The pre-cache engine 223 can select one or more second data sets to provide to the client device in response to a request for account data. The pre-cache engine 223 selects a second data set in response to a specific request for specific data and / or a comprehensive or implicit request for data (e.g., a user logging into an account). Can do. The pre-cache engine 223 can select and provide the second data set prior to receiving a request for data contained in the second data set. For example, the second data set may be data that was not specified in a particular request or selected for inclusion in the first data set provided for the initial account view.

プリキャッシュエンジン223は、特定の要求に応答して取得されたアカウントデータとともに、または第1のデータセットとともに、第2のデータセットをクライアントデバイスに送信することができる。あるいは、プリキャッシュエンジン223は、その他のデータがクライアントデバイスに送信された後、第2のデータセットを提供することができる。クライアントデバイスは、第2のデータセットを高速キャッシュ264に記憶することができる。このような方法で、第2のデータセットのアカウントデータが、ユーザがそのようなデータを要求する場合にユーザにより迅速に提示されることが可能である。   The pre-cache engine 223 can send the second data set to the client device along with the account data obtained in response to the specific request or with the first data set. Alternatively, the pre-cache engine 223 can provide the second data set after other data is sent to the client device. The client device can store the second data set in the high speed cache 264. In this way, the account data of the second data set can be quickly presented by the user when the user requests such data.

プリキャッシュエンジン223は、アカウント管理システム210によって提供されるユーザインターフェースとのユーザの以前のインタラクションおよび/またはユーザが割り当てられたユーザグループもしくは役割に基づいてユーザのための第2のデータセットに含めるためのデータを選択することができる。第1のデータセットを選択するために使用される同様の基準が、第2のデータセットを選択するために使用されることが可能である。たとえば、プリキャッシュエンジン223は、特定のデータがユーザによって要求されるかもしくは閲覧される頻度、特定の種類のデータがユーザによって要求されるかもしくは閲覧される頻度、ユーザが特定のユーザインターフェース要素とインタラクションした頻度、ユーザによって要求されたデータの次元、ユーザグループ内のその他のユーザがある種のデータを要求するかもしくは閲覧する頻度、ある種のデータを要求するかまたは閲覧するユーザグループ内のその他のユーザの数、ならびに/またはユーザインターフェースとのユーザのインタラクションに関するその他の適切なデータおよびユーザインターフェースとのその他のユーザのインタラクションに関するデータに基づいて第2のデータセットに含めるためのデータを選択することができる。   The pre-cache engine 223 is included in the second data set for the user based on the user's previous interaction with the user interface provided by the account management system 210 and / or the user group or role to which the user is assigned. Can be selected. Similar criteria used to select the first data set can be used to select the second data set. For example, the pre-cache engine 223 may determine how often specific data is requested or viewed by the user, how often a particular type of data is requested or viewed by the user, Frequency of interaction, dimension of data requested by the user, frequency of other users in the user group requesting or viewing certain data, others in the user group requesting or viewing certain data Select data for inclusion in the second data set based on the number of users and / or other appropriate data regarding user interaction with the user interface and data regarding other user interaction with the user interface Door can be.

一部の実装においては、第1のデータセットが、ユーザインターフェースとのユーザの以前のインタラクションに基づいて選択されてよい一方、第2のデータセットは、ユーザが割り当てられたユーザグループまたは役割のその他のユーザのインタラクションに基づいて選択される。一部の実装においては、第1のデータセットおよび第2のデータセットが、両方ともアカウント管理システム210によって提供されるユーザインターフェースとのユーザの以前のインタラクションとユーザが割り当てられたユーザグループまたは役割のその他のユーザのインタラクションとの組合せに基づいて選択される。この例において、ユーザのインタラクションは、ユーザが割り当てられたユーザグループまたは役割のその他のユーザのインタラクションよりも重い重みを与えられてもよい。   In some implementations, the first data set may be selected based on the user's previous interaction with the user interface, while the second data set may be a user group or role miscellaneous to which the user is assigned. Selected based on user interaction. In some implementations, the first data set and the second data set are both of the user's previous interaction with the user interface provided by the account management system 210 and the user group or role to which the user is assigned. It is selected based on a combination with other user interactions. In this example, the user interaction may be given more weight than the other user interaction of the user group or role to which the user is assigned.

一部の実装において、プリキャッシュエンジン223は、第2のデータセット、第2のデータセットの一部、または異なる第3のデータセットをフロントエンドサーバ240の高速キャッシュ245に記憶してもよい。たとえば、フロントエンドサーバ240は、SRAMおよび/またはソリッドステートメモリデバイスなどの高速メモリを含む高速キャッシュ245を含むかまたは高速キャッシュ245に結合されてもよい。一部の実装において、第2のデータセットは、クライアントデバイスの高速キャッシュではなくアカウント管理システム210の高速キャッシュ245に記憶されてもよい。一部の実装においては、第2のデータセットの一部が、アカウント管理システム210の高速キャッシュ245に記憶され、第2のデータセットの一部が、クライアントデバイスにおいてキャッシュされる。   In some implementations, the pre-cache engine 223 may store the second data set, a portion of the second data set, or a different third data set in the fast cache 245 of the front-end server 240. For example, the front-end server 240 may include or be coupled to a high speed cache 245 that includes high speed memory such as SRAM and / or solid state memory devices. In some implementations, the second data set may be stored in the high speed cache 245 of the account management system 210 rather than the high speed cache of the client device. In some implementations, a portion of the second data set is stored in the fast cache 245 of the account management system 210 and a portion of the second data set is cached at the client device.

一部の実装において、第2のデータセットは、クライアントデバイスの高速キャッシュに記憶されてもよく、第3のデータセットは、アカウント管理システム210の高速キャッシュ245に記憶されてもよい。第3のデータセットは、第2のデータセットと同様にして選択されてもよい。追加データをフロントエンドサーバに記憶することによって、それがアカウントデータストレージデバイス227からのデータを特定し、取り出すために必要とされる時間を除去するので、追加データの要求に応答して追加データを提示する際のレイテンシが削減されることが可能である。   In some implementations, the second data set may be stored in the high speed cache of the client device, and the third data set may be stored in the high speed cache 245 of the account management system 210. The third data set may be selected in the same manner as the second data set. By storing additional data on the front-end server, it eliminates the time required to identify and retrieve data from the account data storage device 227, so that additional data can be stored in response to a request for additional data. Latency when presenting can be reduced.

キャンペーングルーパ225は、類似しているが、キャンペーンのすべてが異なる特定の特徴を有するキャンペーンのグループ(または情報のその他のグループ)を特定することができる。たとえば、アカウント保持者は、同じキーワードおよびコンテンツアイテムを使用する、同じ製品またはサービスに関する複数の異なるキャンペーンを有していてもよい。しかし、各キャンペーンは、異なる州を対象としていてもよい。この例において、コンテンツアイテム配信基準は、各キャンペーンのためのコンテンツアイテムが配信されることが可能である州を除いて各キャンペーンに関して同じであってもよい。キャンペーングルーパ225は、これらのキャンペーンを特定し、キャンペーングループに追加することができる。   The campaign grouper 225 can identify groups of campaigns (or other groups of information) that have specific characteristics that are similar but all of the campaigns are different. For example, an account holder may have multiple different campaigns for the same product or service that use the same keywords and content items. However, each campaign may target a different state. In this example, the content item delivery criteria may be the same for each campaign except for the states where content items for each campaign can be delivered. The campaign grouper 225 can identify these campaigns and add them to the campaign group.

ユーザインターフェースジェネレータ229は、キャンペーンの間の違いと、違いに基づくキャンペーンの成果の任意の違いとを強調する各キャンペーングループのための視覚化を生成することができる。前の例を続けると、ユーザインターフェースジェネレータ229は、50州の地図を含む視覚化を生成してもよい。地図上で、視覚化はたとえば、成果の数字、成果を示す色、または異なる州におけるキャンペーンの間の違いを強調する別の視覚効果を使用して、各州におけるキャンペーンの成果を強調してもよい。   The user interface generator 229 can generate a visualization for each campaign group that highlights the differences between campaigns and any differences in campaign performance based on the differences. Continuing the previous example, the user interface generator 229 may generate a visualization that includes a map of 50 states. On the map, visualizations may highlight the outcome of campaigns in each state, for example using outcome numbers, outcome colors, or other visual effects that highlight differences between campaigns in different states .

別の例において、ユーザインターフェースジェネレータ229は、コンテンツアイテムがキャンペーンのために提供される曜日に基づき異なる同じまたは類似したキャンペーンの成果の違いを強調する視覚化を生成してもよい。たとえば、異なる曜日のキャンペーンの相対的な成果を示すために、ヒートマップが使用されてもよい。さらに別の例においては、複数のキャンペーンが、キーワードマッチングの種類(たとえば、完全一致(exact match)、部分一致(broad match)など)にのみ基づいて異なってもよい。この例において、ユーザインターフェースは、キーワードマッチングの各種類に関してキャンペーンの成果を提示してもよい。   In another example, the user interface generator 229 may generate a visualization that highlights the same or similar campaign performance differences that differ based on the day of the week on which the content item is offered for the campaign. For example, a heat map may be used to show the relative performance of campaigns on different days of the week. In yet another example, multiple campaigns may differ based only on the type of keyword matching (eg, exact match, broad match, etc.). In this example, the user interface may present campaign results for each type of keyword matching.

図3は、アカウントデータが提示される例示的なユーザインターフェース310のスクリーンショット300である。例示的なユーザインターフェース310は、アカウントのためにダッシュボード内に表示されるアカウントの初期アカウントビューを含む。初期アカウントビューはたとえば、ユーザがアカウントにアクセスした以前のユーザセッション中のユーザインターフェースとの所与のユーザのインタラクションに基づいて所与のユーザのために生成されることが可能である。   FIG. 3 is a screenshot 300 of an exemplary user interface 310 where account data is presented. The example user interface 310 includes an initial account view of the account that is displayed in the dashboard for the account. An initial account view can be generated for a given user based on the user's interaction with the user interface during a previous user session in which the user accessed the account, for example.

ユーザインターフェース310は、メニュー320と、ディスプレイカードのセット330とを含む。メニュー310は、ユーザが閲覧するために選択することができるその他のディスプレイカードのリストを提供することが可能である。メニュー310は、ユーザが閲覧するために選択することができるデータのリストも提供することが可能である。メニュー320内のアイテムの選択に応じて、ユーザインターフェース310は、ユーザインターフェース310を提示するクライアントデバイスに、選択されたディスプレイカードまたは選択されたデータを要求させることができる。たとえば、クライアントデバイスは、まず、選択されたデータ(または選択されたディスプレイカード内に提示されることになるデータ)がキャッシュに記憶されているかどうかを判定するためにクライアントデバイスのキャッシュにアクセスしてもよい。記憶されている場合、クライアントデバイスは、キャッシュからデータを取得し、データをユーザインターフェース310内に提示することができる。データがキャッシュに記憶されていない場合、クライアントデバイスは、遠隔のシステム、たとえば図2のアカウント管理システム210からのデータを要求することができる。   The user interface 310 includes a menu 320 and a display card set 330. Menu 310 may provide a list of other display cards that the user can select to view. Menu 310 may also provide a list of data that the user can select for viewing. In response to the selection of an item in menu 320, user interface 310 may cause a client device presenting user interface 310 to request the selected display card or selected data. For example, the client device first accesses the client device's cache to determine whether the selected data (or data that will be presented in the selected display card) is stored in the cache. Also good. If stored, the client device can retrieve the data from the cache and present the data in the user interface 310. If the data is not stored in the cache, the client device can request data from a remote system, eg, account management system 210 of FIG.

各ディスプレイカードは、特定の種類のデータを特定の方法で提示することができる。たとえば、ディスプレイカード331は、キャンペーンに関する成果データ(たとえば、コンバージョン数、クリック数、およびインプレッション数)ならびにコストデータを提示する。ディスプレイカード331はまた、このデータを数値的フォーマットで提示し、少なくとも成果および/またはコストデータの一部を提示する折れ線グラフを含む。   Each display card can present a particular type of data in a particular way. For example, the display card 331 presents performance data (eg, conversions, clicks, and impressions) and cost data regarding the campaign. Display card 331 also presents this data in a numerical format and includes a line graph that presents at least a portion of the results and / or cost data.

ディスプレイカード333は、いくつかのキャンペーンに関する成果およびコストデータをテーブルフォーマットで提示する。同様に、ディスプレイカード337は、コンテンツアイテムを配信するために使用されたいくつかのキーワードに関する成果およびコストデータをテーブルフォーマットで提示する。別のディスプレイカード335は、キャンペーンのためのコンテンツアイテムが提示された異なる種類のデバイスに関する成果およびコストデータを示す棒グラフを提示する。さらに別のディスプレイカード339は、キャンペーンの測定基準(たとえば、成果測定値、コスト測定値など)を示すヒートマップを経時的に提示する。たとえば、ヒートマップ内の各正方形の暗さは、対応する時間に関する測定基準の値に基づいて変化してもよい。ヒートマップの時間の範囲は、ディスプレイカード339の最上部の「日」、「日および時間」、または「時間」を選択することによって調整されることが可能である。   Display card 333 presents results and cost data for several campaigns in a table format. Similarly, the display card 337 presents achievement and cost data in a table format for a number of keywords used to deliver the content item. Another display card 335 presents a bar graph showing performance and cost data for different types of devices on which content items for the campaign were presented. Yet another display card 339 presents a heat map over time showing campaign metrics (eg, outcome measures, cost measures, etc.). For example, the darkness of each square in the heat map may change based on a metric value for the corresponding time. The time range of the heat map can be adjusted by selecting “Day”, “Day and Time”, or “Time” at the top of the display card 339.

上で検討されたように、初期アカウントビューに含まれるディスプレイカードおよび/またはデータは、ユーザインターフェースとのユーザの以前のインタラクションおよび/またはユーザが割り当てられたユーザグループに基づいて選択されることが可能である。たとえば、ディスプレイカード331〜339およびディスプレイカード331〜339によって提示されるデータは、アカウントによる以前のユーザセッション中にユーザがディスプレイカード331〜339を選択することに基づいて選択されてもよい。加えて、ディスプレイカード333に含まれるキャンペーンは、これらのキャンペーンに関連するデータをユーザが以前に要求することに基づいて選択されてもよい。同様に、ディスプレイカード337に含まれるキーワードは、これらのキーワードに関連するデータをユーザが要求することに基づいて選択されてもよい。別の例において、ディスプレイカード339内に提示される時間の範囲は、ユーザがその時間期間にデータを閲覧するためにディスプレイカード339(または別のディスプレイカード)と以前にインタラクションすることに基づいて選択されてもよい。   As discussed above, the display card and / or data included in the initial account view can be selected based on the user's previous interaction with the user interface and / or the user group to which the user is assigned. It is. For example, display card 331-339 and data presented by display card 331-339 may be selected based on the user selecting display card 331-339 during a previous user session with an account. In addition, the campaigns included on the display card 333 may be selected based on a user's previous request for data related to these campaigns. Similarly, keywords included in display card 337 may be selected based on a user requesting data associated with these keywords. In another example, the time range presented in the display card 339 is selected based on the user's previous interaction with the display card 339 (or another display card) to view data during that time period. May be.

追加データを有する追加的なカードが、ユーザが追加的なカードを要求する前にクライアントデバイスに提供され、クライアントデバイスにおいてキャッシュされることが可能である。たとえば、ユーザインターフェース310は、5つのディスプレイカード331〜339を含む。しかし、ユーザは、9つの異なるディスプレイカードを閲覧することが多い場合がある。ユーザインターフェース内に提示される5つのディスプレイカードおよびその他の4つのディスプレイカードは、ユーザがアカウントにログインするときに(ディスプレイカード内に提示されるデータと一緒に)クライアントデバイスに提供されることが可能である。このような方法で、ユーザが4つのディスプレイカードのうちの1つを選択するとき、選択されたディスプレイカードが、ネットワークを介して別の要求を送ることなく迅速にユーザに提示されることが可能である。   Additional cards with additional data can be provided to the client device and cached at the client device before the user requests the additional card. For example, the user interface 310 includes five display cards 331-339. However, users often browse nine different display cards. Five display cards presented in the user interface and the other four display cards can be provided to the client device (along with the data presented in the display card) when the user logs into the account It is. In this way, when the user selects one of the four display cards, the selected display card can be presented to the user quickly without sending another request over the network. It is.

別の例示的なディスプレイカードは、特定のコンテンツアイテムがユーザのデバイスにおいて表示された方法を示すことができる。たとえば、コンテンツアイテムは、コンテンツアイテムが提示されるクライアントデバイスの種類(たとえば、コンテンツアイテムはスマートフォン上ではデスクトップコンピュータとは異なって提示されてもよい)、コンテンツアイテムが提示されるリソース上の位置(たとえば、コンテンツアイテムはウェブページの最上部にウェブページの片側とは異なるように提示されてもよい)、またはコンテンツアイテムが提示されたリソースの種類(たとえば、コンテンツアイテムは検索結果ページ上にブログ上とは異なるように提示されてもよい)に基づいて異なる方法で提示されてもよい。このディスプレイカードに関して、ユーザインターフェースジェネレータ229は、コンテンツアイテムがコンテンツアイテムの各インプレッションに関してどのような方法で表示されたかに関して確率的判定を行い、コンテンツアイテムがどのような方法で提示されたかの表現を表示することができる。たとえば、ユーザインターフェースジェネレータ229は、コンテンツアイテムが提示されたデバイスの種類、コンテンツアイテムが提示されたリソースの位置、コンテンツアイテムが提示されたリソースの種類、および/またはコンテンツアイテムの提示に影響を与えることが可能なその他の適切なデータに基づいて特定のインプレッションに関して確率的判定を行ってもよい。   Another exemplary display card can indicate how a particular content item was displayed on the user's device. For example, the content item may be the type of client device on which the content item is presented (eg, the content item may be presented differently than a desktop computer on a smartphone), the location on the resource where the content item is presented (eg, , The content item may be presented at the top of the web page differently from one side of the web page), or the type of resource on which the content item was presented (for example, the content item will appear on the blog on the search results page) May be presented differently based on). For this display card, the user interface generator 229 makes a probabilistic determination as to how the content item was displayed for each impression of the content item and displays a representation of how the content item was presented. be able to. For example, the user interface generator 229 may affect the type of device on which the content item was presented, the location of the resource on which the content item was presented, the type of resource on which the content item was presented, and / or the presentation of the content item Probabilistic determinations may be made for a particular impression based on other suitable data that is possible.

ディスプレイカードは、コンテンツアイテムが提示されたと判定された方法のサブセットを提示することができる。たとえば、ユーザインターフェースジェネレータ229は、コンテンツアイテムがコンテンツアイテムの各インプレッションに関してどのような方法で表示されたかに関して確率的判定を行ってもよい。ユーザインターフェースジェネレータ229は、確率的判定に基づいて、コンテンツアイテムが提示された場合があるそれぞれの方法に関してインプレッション数を数えてもよい。それから、ユーザインターフェースジェネレータ229は、最も多くのインプレッションを有する方法のためのコンテンツアイテムの表現を示すディスプレイカードを生成してもよい。たとえば、インプレッションに基づいて上位4つの表現が、ディスプレイカード内に提示されてもよい。このような方法で、ユーザが、コンテンツアイテムがどのような方法でユーザに対して提示された見込みが大きいかを素早く見ることができる。   The display card can present a subset of the methods in which it was determined that the content item was presented. For example, the user interface generator 229 may make a probabilistic determination as to how the content item was displayed for each impression of the content item. User interface generator 229 may count the number of impressions for each method in which a content item may be presented based on a probabilistic determination. The user interface generator 229 may then generate a display card that shows a representation of the content item for the method with the most impressions. For example, the top four representations based on impressions may be presented in the display card. In this way, the user can quickly see how the content item is likely to be presented to the user.

図4は、アカウントデータを提示する際のレイテンシを削減するための例示的なプロセス400の流れ図である。プロセス400の動作はたとえば、図1のアカウント管理システム210などのデータ処理装置によって実装されることが可能である。プロセス400は、コンピュータストレージ媒体に記憶された命令によって実装されることも可能であり、データ処理装置による命令の実行が、データ処理装置にプロセス400の動作を実行させる。   FIG. 4 is a flow diagram of an example process 400 for reducing latency in presenting account data. The operations of process 400 may be implemented, for example, by a data processing device such as account management system 210 of FIG. Process 400 may also be implemented by instructions stored on a computer storage medium, where execution of instructions by the data processing device causes the data processing device to perform the operations of process 400.

所与のユーザが、オンラインアカウントに関して認証される(402)。オンラインアカウントは、ユーザがアクセスすることができるアカウントであってもよい。たとえば、ユーザは、アカウント管理システムが組織のアカウントデータを管理する組織の従業員であってもよい。複数の異なるユーザは、アカウントにアクセスすることができてもよい。たとえば、組織は、従業員に関連するデータを閲覧するおよび/または修正するためにそれぞれがオンラインアカウントにアクセスすることができる異なる役割(たとえば、プロダクトマネージャ、ブランドマネージャ、キャンペーンマネージャなど)の異なる従業員を有していてもよい。   A given user is authenticated (402) for an online account. The online account may be an account that the user can access. For example, the user may be an employee of an organization whose account management system manages the account data of the organization. Multiple different users may be able to access the account. For example, an organization may have different employees with different roles (e.g., product manager, brand manager, campaign manager, etc.) that each have access to an online account to view and / or modify data related to the employee You may have.

所与のユーザは、所与のユーザのクライアントデバイスを通じて提出されたデータに基づいて認証されてもよい。たとえば、ユーザは、オンラインアカウントにアクセスするための一意のユーザ名およびパスワードを提供してもよい。ユーザは、所与のユーザによって提供されたユーザ名およびパスワードが所与のユーザに関して記憶されたユーザ名およびパスワードと一致する場合、オンラインアカウントに関して認証されてもよい。   A given user may be authenticated based on data submitted through the given user's client device. For example, a user may provide a unique username and password for accessing an online account. A user may be authenticated for an online account if the username and password provided by the given user matches the username and password stored for the given user.

ユーザを認証することに応じて、所与のユーザに関してユーザセッションが開始される(404)。ユーザセッションは、ユーザがオンラインアカウントに関するアカウントデータを閲覧することを可能にする。アカウントデータは、1つまたは複数のユーザインターフェースを使用してユーザに提示されることが可能である。たとえば、ダッシュボードが、ユーザに提示されてもよい。このダッシュボードは、初期アカウントビューをアカウントの概要とともに含むことができる。加えて、ダッシュボードは、ユーザが追加データを要求するかまたは所与のユーザが関心がある場合があるその他のディスプレイカードを選択することを可能にするリンクまたはその他のユーザインターフェースコントロールを含んでもよい。   In response to authenticating the user, a user session is initiated for the given user (404). A user session allows a user to view account data regarding an online account. Account data can be presented to the user using one or more user interfaces. For example, a dashboard may be presented to the user. This dashboard can include an initial account view with an account summary. In addition, the dashboard may include links or other user interface controls that allow the user to request additional data or select other display cards that a given user may be interested in. .

所与のユーザが割り当てられるユーザグループが特定される(406)。たとえば、所与のユーザは、以前のユーザセッション中にアカウントのユーザインターフェース内に提示されたユーザインターフェース要素との所与のユーザのインタラクションとユーザインターフェース要素とのその他のユーザのその他のインタラクションとの間の類似性に基づいて1つまたは複数のユーザグループに割り当てられてもよい。所与のユーザは、以前のユーザセッション中に所与のユーザによって要求された少なくとも1つのデータの種類とその他のユーザによって要求された少なくとも1つのデータの種類との間の類似性に基づいてユーザグループに割り当てられてもよい。ユーザをユーザグループに割り当てるための例示的なプロセスが、図6に示され、下で説明される。   A user group to which a given user is assigned is identified (406). For example, a given user may interact between a given user's interaction with a user interface element presented within the user interface of the account during a previous user session and other user's other interactions with the user interface element. May be assigned to one or more user groups based on their similarity. A given user is a user based on the similarity between at least one data type requested by a given user during a previous user session and at least one data type requested by another user. It may be assigned to a group. An exemplary process for assigning users to user groups is shown in FIG. 6 and described below.

オンラインアカウントに関連する第1のデータセットが、選択される(408)。第1のデータセットは、ユーザがアクセスすることを認証されたオンラインアカウントのアカウントデータを含む。たとえば、第1のデータセットは、オンラインアカウントの概要を所与のユーザに提供する初期アカウントビュー内で提示するためのアカウントデータを含んでもよい。初期アカウントビューは、所与のユーザのためにカスタムされ、ユーザインターフェース要素(たとえば、特定のディスプレイカード、コントロール、グラフなど)のユーザの以前の要求および/もしくはユーザインターフェース要素(たとえば、特定のディスプレイカード、コントロール、グラフなど)とのインタラクション、所与のユーザの要求もしくはデータもしくはデータの種類に対する修正、データの特定の次元の所与のユーザの要求もしくは閲覧(たとえば、時間期間、地理的位置など)、所与のユーザがオンラインアカウントにどれだけ頻繁にアクセスするか、所与のユーザによって選択されたプリファレンス、所与のユーザが割り当てられたユーザグループ、ならびに/またはその他の適切なデータに基づいてもよい。初期アカウントビューは、単一の提示へと組み合わされ、オンラインアカウントの概要を所与のユーザに提供する複数の異なる種類のデータを提示することができる。   A first data set associated with the online account is selected (408). The first data set includes account data for an online account that the user is authorized to access. For example, the first data set may include account data for presentation in an initial account view that provides an overview of an online account to a given user. The initial account view is customized for a given user and the user's previous request for user interface elements (e.g., specific display cards, controls, graphs, etc.) and / or user interface elements (e.g., specific display cards) , Controls, graphs, etc.), a given user's request or modification to data or data type, a given user's request or view of a particular dimension of data (e.g., time duration, geographical location, etc.) , Based on how often a given user accesses an online account, the preferences selected by the given user, the user group to which the given user is assigned, and / or other appropriate data Also good. The initial account view can be combined into a single presentation to present multiple different types of data that provide an overview of the online account to a given user.

一部の実装において、初期アカウントビュー内に提示するための第1のデータセットは、所与のユーザの以前のユーザセッションにおいて提示されたユーザインターフェースとのユーザの以前のインタラクションおよび/または所与のユーザが割り当てられたユーザグループに基づいて、オンラインアカウントに関するアカウントデータのデータストアから選択されてもよい。たとえば、第1のデータセットは、以前のユーザセッション中に所与のユーザによって要求されたデータの種類および/または所与のユーザの以前のユーザセッション中に所与のユーザがインタラクションしたユーザインターフェース要素に基づいて選択されてもよい。また、第1のデータセットは、所与のユーザが割り当てられたユーザグループ内のその他のユーザによって要求されたデータの種類および/またはその他のユーザがインタラクションしたユーザインターフェース要素に基づいて選択されてもよい。   In some implementations, the first data set for presentation in the initial account view is the user's previous interaction with the user interface presented in the given user's previous user session and / or the given The user may be selected from a data store of account data related to the online account based on the user group to which the user is assigned. For example, the first data set may be a type of data requested by a given user during a previous user session and / or a user interface element that a given user interacted with during a given user's previous user session. May be selected based on The first data set may also be selected based on the type of data requested by other users in the user group to which a given user is assigned and / or user interface elements that other users interact with. Good.

オンラインアカウントに関連する第2のデータセットが選択される(410)。第2のデータセットは、初期アカウントビュー内に提示されないデータを含むことができる。その代わりに、第2のデータセットは、クライアントデバイスにおいてキャッシュするために所与のユーザのクライアントデバイスに送信されてもよい。このような方法で、所与のユーザが初期アカウントビュー内に示されないが第2のデータセットに含まれる追加データを閲覧することを要求する場合、追加データは、遠隔のデバイスからの追加データを要求することなく所与のユーザに提示されることが可能である。したがって、追加データを提示する際のレイテンシが削減されることが可能である。   A second data set associated with the online account is selected (410). The second data set may include data that is not presented in the initial account view. Alternatively, the second data set may be sent to a given user's client device for caching at the client device. In this way, if a given user requests to view additional data that is not shown in the initial account view but is included in the second data set, the additional data will receive additional data from the remote device. It can be presented to a given user without request. Therefore, latency when presenting additional data can be reduced.

概して、第2のデータセットは、所与のユーザに関連する見込みが大きいが、第1のデータセット内のデータほどには関連性がない場合があるデータを含んでもよい。また、第2のデータセットは、所与のユーザの以前のユーザセッションにおいて提示されたユーザインターフェースとのユーザの以前のインタラクションおよび/または所与のユーザが割り当てられたユーザグループに基づいて選択されることが可能である。たとえば、第2のデータセットは、所与のユーザが割り当てられたユーザグループ内の少なくとも閾値の数のその他のユーザによって要求された、またはユーザグループ内のその他のユーザによって少なくとも閾値の回数要求されたデータであってもよい。   In general, the second data set may include data that is likely to be associated with a given user, but may not be as relevant as the data in the first data set. Also, the second data set is selected based on the user's previous interaction with the user interface presented in the given user's previous user session and / or the user group to which the given user is assigned. It is possible. For example, the second data set was requested by at least a threshold number of other users in the user group to which a given user was assigned or requested at least a threshold number of times by other users in the user group It may be data.

アカウントのためのユーザインターフェースが、第1のデータセットの少なくとも一部を提示するために更新される(412)。たとえば、所与のユーザが認可データを提出したユーザインターフェースが、所与のユーザのためのアカウントの初期アカウントビューを提示するために更新されることが可能である。所与のユーザにオンラインアカウントの概要を提供する初期アカウントビューは、第1のデータセットの少なくとも一部を含むことができる。   The user interface for the account is updated (412) to present at least a portion of the first data set. For example, the user interface on which a given user submitted authorization data can be updated to present an initial account view of an account for the given user. The initial account view that provides an overview of the online account for a given user can include at least a portion of the first data set.

クライアントデバイスにおいて第1のデータセットまたは第2のデータセットの追加の部分を提示するときにユーザインターフェースを更新する際のレイテンシが、クライアントデバイスからの第2のデータセットの要求を受信する前にクライアントデバイスに第2のデータセットを提供することによって削減される(414)。たとえば、第2のデータセットは、第1のデータセットとともにクライアントデバイスに送信されることが可能である。別の例において、第2のデータセットは、第1のデータセットがクライアントデバイスに送信された後であるが、第2のデータセットの要求が受信される前にクライアントデバイスに送信されることが可能である。第2のデータセット(および第1のデータセット)は、クライアントデバイスにおいて要求されるときにキャッシュされたデータを提示する際のレイテンシを削減するためにクライアントデバイスのキャッシュに記憶されることが可能である。   The latency in updating the user interface when presenting the first data set or an additional portion of the second data set at the client device before the client device receives a request for the second data set from the client device. Reduced by providing the device with a second data set (414). For example, the second data set can be transmitted to the client device along with the first data set. In another example, the second data set may be sent to the client device after the first data set is sent to the client device but before the request for the second data set is received. Is possible. The second data set (and the first data set) can be stored in the client device cache to reduce latency in presenting the cached data when requested at the client device. is there.

各ユーザセッションの後、所与のユーザのプロファイルは、ユーザセッション中のデータおよびユーザインターフェース要素との所与のユーザのインタラクションに基づいて更新されることが可能である。プロファイルに対する更新に基づいて、ユーザのための初期アカウントビューが更新されてもよい。たとえば、初期アカウントビューは、ユーザセッション中にユーザが要求したディスプレイカードおよび/またはユーザセッション中にユーザが要求したかもしくは修正したデータを提示するために更新されてもよい。第1のデータセットおよび/または第2のデータセットに含まれるものは、所与のユーザのプロファイルに対する更新に基づいて同様に更新されてもよい。   After each user session, a given user's profile can be updated based on the data during the user session and the user's interaction with user interface elements. Based on updates to the profile, the initial account view for the user may be updated. For example, the initial account view may be updated to present the display card requested by the user during the user session and / or data requested or modified by the user during the user session. What is included in the first data set and / or the second data set may be similarly updated based on updates to a given user's profile.

クライアントデバイスのキャッシュはたとえば、データが変わったかまたはデータがキャッシュに少なくとも閾値の量の時間記憶された場合、更新されたデータによってリフレッシュされてもよい。しかし、キャッシュを更新することに関連するコストが存在する。たとえば、大量のデータが、取得され、ネットワークを介して送信される必要がある場合がある。したがって、プリキャッシュエンジン、たとえば図1のプリキャッシュエンジン223が、これらのコストおよびキャッシュを更新することに関連する利益に基づいてキャッシュを更新すべきかどうかを判定することができる。   The client device cache may be refreshed with updated data, for example, if the data has changed or if the data has been stored in the cache for at least a threshold amount of time. However, there are costs associated with updating the cache. For example, a large amount of data may need to be acquired and transmitted over a network. Accordingly, a pre-cache engine, such as pre-cache engine 223 of FIG. 1, can determine whether to update the cache based on these costs and benefits associated with updating the cache.

図5は、キャッシュを更新するための例示的なプロセス500の流れ図である。プロセス500の動作はたとえば、図1のアカウント管理システム210などのデータ処理装置によって実装されることが可能である。プロセス500は、コンピュータストレージ媒体に記憶された命令によって実装されることも可能であり、データ処理装置による命令の実行が、データ処理装置にプロセス500の動作を実行させる。   FIG. 5 is a flow diagram of an example process 500 for updating a cache. The operations of process 500 may be implemented, for example, by a data processing device such as account management system 210 of FIG. Process 500 can also be implemented by instructions stored on a computer storage medium, where execution of instructions by the data processing apparatus causes the data processing apparatus to perform the operations of process 500.

クライアントデバイスのキャッシュを更新するためのトリガが特定される(502)。一部の実装において、トリガは、キャッシュに記憶するためにデータがクライアントデバイスに送信されてから経過した時間の量に基づいてもよい。トリガは、キャッシュに記憶されたデータがキャッシュに記憶された値から変わったかどうかに基づくことも可能である。たとえば、コンテンツアイテムに関するコンバージョン数は、キャッシュがコンテンツアイテムに関するコンバージョン数を含むデータを投入された後に起こった新しいコンバージョンイベントが原因で増えた場合がある。トリガは、データがキャッシュに記憶するためにクライアントデバイスに送信されてから変わったデータアイテムの数に基づくことが可能である。たとえば、少なくとも閾値の数のデータアイテムが変わった場合、キャッシュの更新がトリガされてもよい。トリガは、アカウントデータに対するユーザの修正に基づくことも可能である。   A trigger for updating the cache of the client device is identified (502). In some implementations, the trigger may be based on the amount of time that has elapsed since the data was sent to the client device for storage in the cache. The trigger can also be based on whether the data stored in the cache has changed from the value stored in the cache. For example, the number of conversions for a content item may have increased due to a new conversion event that occurred after the cache was populated with data containing the number of conversions for the content item. The trigger can be based on the number of data items that have changed since the data was sent to the client device for storage in the cache. For example, a cache update may be triggered if at least a threshold number of data items change. Triggers can also be based on user modifications to account data.

トリガを特定することに応じて、キャッシュを更新すべきかどうかの判定がなされる(504)。判定は、キャッシュを更新することに関連するコストおよびキャッシュを更新することに関連する利益に基づくことが可能である。たとえば、キャッシュへの更新は、更新されたデータを取得し、更新されたデータをクライアントデバイスに送信するための計算リソースおよびネットワークリソースの使用を必要とする。別のコストは、更新されたデータによってキャッシュを更新するのにかかる時間の量である。   In response to identifying the trigger, a determination is made whether the cache should be updated (504). The determination can be based on the costs associated with updating the cache and the benefits associated with updating the cache. For example, updates to the cache require the use of computational and network resources to obtain updated data and send the updated data to the client device. Another cost is the amount of time it takes to update the cache with updated data.

利益は、古いデータではなく最新のデータを提示することを含む。利益はまた、たとえばデータを閲覧するユーザの要求に応答してクライアントデバイスが更新されたデータを要求する場合に更新されたデータを提示する際の削減されたレイテンシを含む場合がある。しかし、ユーザへの最新のデータの利益はデータの種類によって決まる場合がある。たとえば、前年に関するインプレッションデータは、変わる見込みが小さく、いずれの変更も最小限である見込みが大きい。したがって、過去の時間期間に関するデータによってキャッシュを更新することの利益は、ほとんど恩恵がない場合がある。しかし、当日の成果データを更新することの利益は、ユーザに非常に恩恵がある場合がある。   Profit includes presenting the latest data rather than the old data. Benefits may also include reduced latency in presenting updated data when, for example, a client device requests updated data in response to a user request to view the data. However, the benefit of the latest data to the user may depend on the type of data. For example, the impression data for the previous year is unlikely to change, and any changes are likely to be minimal. Thus, the benefits of updating the cache with data regarding past time periods may be of little benefit. However, the benefit of updating the current day's performance data can be very beneficial to the user.

一部の実装において、キャッシュを更新すべきかどうかの判定は、キャッシュに記憶されたデータの種類および/またはデータの量に基づく。たとえば、一部の種類のデータは、取得し、ネットワークを介して提供するのにより長い時間がかかり、および/または送信されなければならないより多くのデータを含むことが可能である。一部の実装において、キャッシュを更新すべきかどうかの判定は、キャッシュに記憶されたデータの種類および/またはデータの量に関連する履歴的データに基づく。たとえば、判定は、以前の問い合わせのパターンに関する以前のレイテンシの数の分析に基づいてもよい。   In some implementations, the determination of whether to update the cache is based on the type of data and / or the amount of data stored in the cache. For example, some types of data may take more time to acquire and provide over the network and / or include more data that must be transmitted. In some implementations, the determination of whether to update the cache is based on historical data related to the type of data and / or the amount of data stored in the cache. For example, the determination may be based on an analysis of the number of previous latencies with respect to previous query patterns.

キャッシュを更新しない判定がなされる場合、キャッシュは更新されない。その代わりに、プロセス500は、別のトリガが特定され、そのときにキャッシュを更新すべきかどうかの別の判定がなされることが可能になるまで待ってもよい。キャッシュを更新する判定がなされる場合、更新されたデータが、キャッシュに記憶されたデータの少なくとも一部に関して取得される(506)。たとえば、キャッシュされたデータのすべてが、更新される場合がある。別の例においては、データがクライアントデバイスにおいてキャッシュされてから変更されたデータのみが更新される場合がある。   If it is determined not to update the cache, the cache is not updated. Instead, the process 500 may wait until another trigger is identified, at which time another determination can be made whether to update the cache. If a determination is made to update the cache, updated data is obtained for at least a portion of the data stored in the cache (506). For example, all of the cached data may be updated. In another example, only data that has changed since the data was cached at the client device may be updated.

更新されたデータがクライアントデバイスに送信される(508)。たとえば、更新されたデータは、1つまたは複数のデータパケットの1つまたは複数のデータ送信を使用してネットワークを介してクライアントデバイスに送信されてもよい。受信されると、クライアントデバイスは、以前のキャッシュされたデータを更新されたデータによって置き換えることができる。   The updated data is sent to the client device (508). For example, the updated data may be sent over the network to the client device using one or more data transmissions of one or more data packets. When received, the client device can replace the previous cached data with the updated data.

図6は、所与のユーザをユーザグループに割り当て、ユーザグループに基づいて所与のユーザに提供するデータを特定するための例示的なプロセス600の流れ図である。プロセス600の動作はたとえば、図1のアカウント管理システム210などのデータ処理装置によって実装されることが可能である。プロセス600は、コンピュータストレージ媒体に記憶された命令によって実装されることも可能であり、データ処理装置による命令の実行が、データ処理装置にプロセス600の動作を実行させる。   FIG. 6 is a flow diagram of an example process 600 for assigning a given user to a user group and identifying data to provide to the given user based on the user group. The operations of process 600 may be implemented, for example, by a data processing device such as account management system 210 of FIG. Process 600 can also be implemented by instructions stored on a computer storage medium, where execution of instructions by the data processing apparatus causes the data processing apparatus to perform the operations of process 600.

所与のユーザに関するユーザプロファイルが取得される(602)。所与のユーザに関するユーザプロファイルは、アカウントデータを提示するユーザインターフェースとの以前のユーザインタラクションを説明するデータを含むことができる。たとえば、上述のように、所与のユーザに関するユーザプロファイルは、所与のユーザがインタラクションした各ユーザインターフェース要素を特定するデータ、所与のユーザがユーザインターフェース要素とインタラクションした回数、および/または所与のユーザがユーザインターフェース要素とインタラクションした頻度を含んでもよい。所与のユーザに関するユーザプロファイルは、所与のユーザによって要求されたかまたは修正されたデータの各種類を特定するデータ、所与のユーザが各種類のデータを要求したかまたは修正した回数、および所与のユーザが各種類のデータを要求するかまたは修正する頻度も含んでよい。同じ特定するおよび頻度のデータが、所与のユーザによって要求されたかまたは修正された実際のデータのそれぞれの特定の部分に関して記憶されることが可能である。データの各種類に関して、および/または所与のユーザによって要求されたデータのそれぞれの特定の部分に関して、ユーザプロファイルは、データに関する次元(たとえば、データのための時間期間または地理的位置)を含むことができる。   A user profile for a given user is obtained (602). The user profile for a given user can include data describing previous user interaction with the user interface presenting account data. For example, as described above, a user profile for a given user may include data identifying each user interface element that a given user interacts with, the number of times a given user interacts with the user interface element, and / or a given Frequency of user interaction with user interface elements. The user profile for a given user is the data that identifies each type of data requested or modified by a given user, the number of times a given user requested or modified each type of data, and the given The frequency with which a given user requests or modifies each type of data may also be included. The same identifying and frequency data can be stored for each particular portion of actual data requested or modified by a given user. For each type of data and / or for each specific part of the data requested by a given user, the user profile includes dimensions related to the data (e.g. time period or geographical location for the data) Can do.

所与のユーザが、所与のユーザに関するユーザプロファイルに基づいてユーザグループに割り当てられる(604)。一部の実装において、所与のユーザは、所与のユーザのプロファイルとその他のユーザのユーザプロファイルとの間の類似性に基づいてユーザグループに割り当てられる。たとえば、所与のユーザは、類似したユーザプロファイルを持つその他のユーザを有するユーザグループを割り当てられてもよい。特に、所与のユーザは、以前のユーザセッション中にユーザのアカウントのためのユーザインターフェース内に提示されたユーザインターフェース要素(たとえば、コントロール)との所与のユーザのインタラクションとユーザインターフェース内に提示されたユーザインターフェース要素とのその他のユーザのその他のインタラクションとの間の類似性に基づいてユーザグループに割り当てられてもよい。また、所与のユーザは、所与のユーザによって要求されたデータの種類とその他のユーザによって要求されたデータの種類との間の類似性、および/または所与のユーザによって要求されたデータの次元とその他のユーザによって要求されたデータの次元との間の類似性に基づいてユーザグループに割り当てられてもよい。   A given user is assigned to a user group based on a user profile for the given user (604). In some implementations, a given user is assigned to a user group based on the similarity between a given user's profile and other users' user profiles. For example, a given user may be assigned a user group having other users with similar user profiles. In particular, a given user is presented in a given user interaction and user interface with a user interface element (e.g., control) presented in the user interface for the user's account during a previous user session. May be assigned to user groups based on similarities between other user interface elements and other user interactions. In addition, a given user may have a similarity between the type of data requested by a given user and the type of data requested by other users, and / or the data requested by a given user. User groups may be assigned based on the similarity between the dimensions and the dimensions of the data requested by other users.

一部の実装においては、機械学習プロセスが、ユーザのユーザプロファイルの間の類似性に基づいてユーザグループを生成し、データを投入するために使用される。たとえば、機械学習プロセスは、決定木、ニューラルネットワーク、ディープラーニング、および/またはクラスタリング技術に基づいてもよい。   In some implementations, a machine learning process is used to generate user groups and populate data based on the similarity between the user's user profiles. For example, the machine learning process may be based on decision trees, neural networks, deep learning, and / or clustering techniques.

データおよびユーザインターフェース要素の種類が、所与のユーザが割り当てられるユーザグループに基づいて所与のユーザに関して特定される。たとえば、所与のユーザは、グループ内のその他のユーザによって要求された種類のデータおよび/またはグループ内のその他のユーザによって選択されるかもしくは閲覧されたユーザインターフェース要素を提供されてもよい。特定の例において、所与のユーザは、ユーザグループ内の少なくとも閾値の数のユーザによって要求された種類のデータまたはユーザグループ内のユーザによって最も頻繁に要求された種類のデータを提供されてもよい。同様に、所与のユーザは、グループ内の少なくとも閾値の数のユーザによって選択されたかもしくは閲覧されたユーザインターフェース要素および/またはユーザグループ内のユーザによって最も頻繁に選択されたかもしくは閲覧されたユーザインターフェース要素を提供されてもよい。   Types of data and user interface elements are identified for a given user based on the user group to which the given user is assigned. For example, a given user may be provided with the type of data requested by other users in the group and / or user interface elements selected or viewed by other users in the group. In certain examples, a given user may be provided with the type of data requested by at least a threshold number of users in the user group or the type of data most frequently requested by users in the user group. . Similarly, a given user may be a user interface element that is selected or viewed by at least a threshold number of users in the group and / or a user interface that is most frequently selected or viewed by users in the user group. Elements may be provided.

図7は、複数のキャンペーンのためのアカウントデータを提示する視覚化を生成するための例示的なプロセス700の流れ図である。プロセス700の動作はたとえば、図1のアカウント管理システム210などのデータ処理装置によって実装されることが可能である。プロセス700は、コンピュータストレージ媒体に記憶された命令によって実装されることも可能であり、データ処理装置による命令の実行が、データ処理装置にプロセス700の動作を実行させる。   FIG. 7 is a flow diagram of an example process 700 for generating a visualization that presents account data for multiple campaigns. The operations of process 700 can be implemented, for example, by a data processing device such as account management system 210 of FIG. Process 700 can also be implemented by instructions stored on a computer storage medium, where execution of instructions by the data processing apparatus causes the data processing apparatus to perform the operations of process 700.

アカウント保持者の複数のキャンペーンが特定される(702)。たとえば、アカウント保持者は、複数の異なるコンテンツ配信キャンペーンを有していてもよい。特定の例において、アカウント保持者は、製品またはサービスに関する複数の異なるキャンペーンを有していてもよい。また、アカウント保持者は、その他の製品またはサービスに関するキャンペーンを有していてもよい。   Multiple campaigns of account holders are identified (702). For example, an account holder may have multiple different content distribution campaigns. In certain examples, an account holder may have multiple different campaigns for products or services. Account holders may also have campaigns for other products or services.

アカウント保持者の類似したキャンペーンのセットが特定される(704)。類似したキャンペーンのセットは、類似しているがキャンペーンのすべてが異なる特定の特徴を有するキャンペーンを含むことができる。たとえば、アカウント保持者は、同じ配信基準を用いるが、各キャンペーンのために配信される異なるコンテンツアイテムを有する、特定の製品に関する複数の異なるキャンペーンを持っていてもよい。これらの異なるキャンペーンは、特定の製品に関するキャンペーンのセットに含まれることが可能である。   A set of similar campaigns for account holders is identified (704). A set of similar campaigns can include campaigns with specific characteristics that are similar but all of the campaigns are different. For example, an account holder may have multiple different campaigns for a particular product that use the same delivery criteria but have different content items delivered for each campaign. These different campaigns can be included in a set of campaigns for a particular product.

キャンペーンのセットのための視覚化が生成される(706)。たとえば、視覚化は、キャンペーンのセット内のキャンペーンのためのデータの違いを強調してもよい。上述の例について続けると、視覚化は、キャンペーンのセット内の各キャンペーンのための各コンテンツアイテムの成果を強調してもよい。視覚化は、アカウント保持者のユーザのクライアントデバイスにおいて提示するために自動的に生成され、ディスプレイカード内に提供されることが可能である。たとえば、視覚化は、類似したキャンペーンのセットを特定することに応じて、その視覚化が1つの異なる特徴を強調するような方法で自動的に生成されてもよい。   A visualization for the set of campaigns is generated (706). For example, visualization may highlight data differences for campaigns within a set of campaigns. Continuing with the above example, the visualization may highlight the outcome of each content item for each campaign in the set of campaigns. The visualization can be automatically generated and presented in a display card for presentation on the account holder user's client device. For example, the visualization may be generated automatically in such a way that in response to identifying a similar set of campaigns, the visualization highlights one different feature.

本主題についてコンテンツ配信管理システムを参照して上で全般的に説明されているが、本主題はデータがユーザに提供される代替的なシステムにおいて適用可能であり、コンテンツ配信の管理に限定されないことが理解されるであろう。   Although the subject matter is generally described above with reference to a content delivery management system, the subject matter is applicable in alternative systems where data is provided to the user and is not limited to managing content delivery. Will be understood.

上の説明に加えて、ユーザは、本明細書において説明されたシステム、プログラム、または特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、社会的アクションもしくは活動、職業、ユーザのプリファレンス、またはユーザの現在位置に関する情報)の集合を有効化してもよいかどうかといつ有効化してもよいかとの両方、およびユーザがコンテンツまたは通信をサーバから送信されるかどうかについての選択をユーザが行うことを可能にするコントロールを提供されてもよい。さらに、特定のデータが、個人を特定できる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で処理されてもよい。たとえば、ユーザの識別情報が、個人を特定できる情報がユーザに関して決定されることが不可能であるか、または位置情報が取得される場合にユーザの地理的な位置が(都市、郵便番号、もしくは州のレベルなどに)一般化されることが可能であり、したがって、ユーザの特定の位置が決定されることが不可能であるように処理されてもよい。したがって、ユーザは、どの情報がユーザについて収集されるか、その情報がどのように使用されるのか、およびどの情報がユーザに提供されるのかを制御することができてもよい。   In addition to the above description, the user may be responsible for user information (e.g., the user's social network, social action or activity, occupation, user's preferences, or user's preferences). Allows the user to make a choice as to whether and when to activate the set of (current location information) and whether the user is to send content or communications from the server Controls may be provided. Further, specific data may be processed in one or more ways before being stored or used such that personally identifiable information is deleted. For example, if the user's identification information is such that personally identifiable information cannot be determined for the user, or the location information is obtained, the user's geographic location (city, zip code, or Can be generalized (such as to a state level) and thus processed such that a particular location of the user cannot be determined. Thus, the user may be able to control what information is collected about the user, how that information is used, and what information is provided to the user.

本明細書に記載の主題の実施形態および動作は、本明細書において開示された構造およびそれらの構造的均等物を含む、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはこれらのうちの1つもしくは複数の組合せで実装されることが可能である。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するためにコンピュータストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることが可能である。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適なレシーバ装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化されることが可能である。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはこれらのうちの1つもしくは複数の組合せであるか、あるいはこれらに含まれることが可能である。さらに、コンピュータストレージ媒体は、伝播信号ではないが、人為的に生成された伝播信号に符号化されたコンピュータプログラム命令の送信元または送信先であることができる。コンピュータストレージ媒体は、1つまたは複数の別個の物理的構成要素または媒体(たとえば、複数のCD、ディスク、もしくはその他のストレージデバイス)であるか、またはそれらに含まれることも可能である。   Embodiments and operations of the subject matter described herein include digital electronic circuits, or computer software, firmware, or hardware, or any of these, including the structures disclosed herein and their structural equivalents. Can be implemented in one or more combinations. Embodiments of the subject matter described in this specification are encoded on a computer storage medium for execution by one or more computer programs, i.e., a data processing device, or for controlling the operation of a data processing device. Can be implemented as one or more modules of computer program instructions. Alternatively or additionally, the program instructions may be artificially generated propagation signals generated to encode information for transmission to a suitable receiver device for execution by a data processing device, such as a machine Can be encoded on an electrical signal, an optical signal, or an electromagnetic signal. The computer storage medium may be or be included in a computer readable storage device, a computer readable storage substrate, a random or serial access memory array or device, or a combination of one or more thereof. Further, a computer storage medium can be a source or destination of computer program instructions that are not propagation signals but are encoded in artificially generated propagation signals. A computer storage medium may be or be included in one or more separate physical components or media (eg, multiple CDs, disks, or other storage devices).

本明細書に記載の動作は、1つもしくは複数のコンピュータ可読ストレージデバイスに記憶される、またはその他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装されることが可能である。   The operations described herein can be implemented as operations performed by a data processing device on data stored on one or more computer-readable storage devices or received from other sources. It is.

用語「データ処理装置」は、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、1つのシステムオンチップ、またはこれらの複数もしくは組合せを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用の論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置はまた、ハードウェアに加えて、問題にしているコンピュータプログラムのための実行環境を生成するコード、たとえばプロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはこれらのうちの1つもしくは複数の組合せを構成するコードを含むことができる。装置および実行環境は、ウェブサービスインフラストラクチャ、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。   The term “data processing device” refers to all types of devices for processing data, including, by way of example, one programmable processor, one computer, one system on chip, or multiple or combinations thereof, Includes devices and machines. The device can include dedicated logic circuitry, such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit). In addition to hardware, the device can also generate code that generates an execution environment for the computer program in question, such as processor firmware, protocol stack, database management system, operating system, cross-platform runtime environment, virtual machine, or Codes that make up one or more of these may be included. The device and execution environment can implement a variety of different computing model infrastructures, such as a web services infrastructure, a distributed computing infrastructure, and a grid computing infrastructure.

コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語もしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述されることが可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境での使用に適したその他のユニットとしての形態を含む任意の形態で配置されることが可能である。コンピュータプログラムは、ファイルシステム内のファイルに対応する場合があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト)、問題にしているプログラム専用の単一のファイル、または複数の連携されたファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル)に記憶されることが可能である。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように配置されることが可能である。   A computer program (also known as a program, software, software application, script, or code) may be written in any form of programming language, including a compiled or interpreted language, a declarative or procedural language And can be arranged in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment . A computer program may correspond to a file in a file system, but this is not always the case. A program is part of a file that holds other programs or data (for example, one or more scripts stored in a markup language document), a single file dedicated to the program in question, or multiple It can be stored in a linked file (eg, a file that stores one or more modules, subprograms, or portions of code). A computer program may be placed on one computer, or in one location, or distributed across multiple locations and executed on multiple computers interconnected by a communication network Is possible.

本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによってアクションを行うために1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なプロセッサが実行することによって実行されることが可能である。また、プロセスおよび論理フローは、専用の論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されることが可能であり、さらに、装置は、それらの専用の論理回路として実装されることが可能である。   The process and logic flow described herein includes one or more programmable programs for one or more programmable programs to perform operations by performing operations on input data and generating output. It can be executed by executing. Processes and logic flows can also be performed by dedicated logic circuits, such as FPGAs (Field Programmable Gate Arrays) or ASICs (Application Specific Integrated Circuits), and the device can also perform their dedicated logic. It can be implemented as a circuit.

コンピュータプログラムの実行に好適なプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサとの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。概して、プロセッサは、読み出し専用メモリ、またはランダムアクセスメモリ、またはこれらの両方から命令およびデータを受信する。コンピュータの必須の要素は、命令にしたがってアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概してコンピュータは、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを備えていなくてもよい。さらに、コンピュータは、別のデバイス、たとえばほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブルストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に組み込まれることが可能である。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれることが可能である。   Suitable processors for the execution of computer programs include, by way of example, both general and special purpose microprocessors and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions according to instructions and one or more memory devices for storing instructions and data. Also, in general, a computer includes or receives data from one or more mass storage devices for storing data, such as a magnetic disk, a magneto-optical disk, or an optical disk, Alternatively, they are operatively coupled to transfer data to those mass storage devices, or both. However, the computer may not include such a device. In addition, a computer can be another device, such as a mobile phone, personal digital assistant (PDA), mobile audio or video player, game console, global positioning system (GPS) receiver, or portable device, to name just a few. It can be incorporated into a storage device (eg, a universal serial bus (USB) flash drive). Devices suitable for storing computer program instructions and data include, by way of example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, magnetic disks such as internal hard disks or removable disks, magneto-optical disks, and CD-ROMs Includes all forms of non-volatile memory, media, and memory devices, including disks and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, dedicated logic circuitry.

ユーザとのインタラクションを提供するために、本明細書に記載の主題の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえばCRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールを有するコンピュータ上に実装されることが可能である。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえばユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックであることが可能であり、ユーザからの入力は、音響、発話、または触覚による入力を含む任意の形態で受信されることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえばウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。   In order to provide user interaction, embodiments of the subject matter described herein include display devices for displaying information to the user, such as CRT (CRT) or LCD (Liquid Crystal Display) monitors, and users Can be implemented on a computer with a keyboard and pointing device, such as a mouse or trackball, that can provide input to the computer. Other types of devices can also be used to provide interaction with the user, for example, the feedback provided to the user can be any form of sensory feedback, eg visual feedback, audio feedback , Or tactile feedback, and input from the user can be received in any form including acoustic, utterance, or tactile input. In addition, the computer sends a document to a device used by the user and receives the document from the device, for example, in response to a request received from the web browser, to the web browser on the user's client device. You can interact with the user by sending a page.

本明細書に記載の主題の実施形態は、バックエンド構成要素を、たとえばデータサーバとして含むか、またはミドルウェア構成要素、たとえばアプリケーションサーバを含むか、またはフロントエンド構成要素、たとえばユーザが本明細書に記載の主題の実装とインタラクションすることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムに実装されることが可能である。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク("LAN")および広域ネットワーク("WAN")、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。   Embodiments of the subject matter described herein include a back-end component, eg, as a data server, or a middleware component, eg, an application server, or a front-end component, eg, a user, herein. Includes a client computer with a graphical user interface or web browser capable of interacting with the implementation of the described subject matter, or any of one or more such back-end components, middleware components, or front-end components Can be implemented in a computing system including a combination of: The components of the system can be interconnected by any form or medium of digital data communication, eg, a communication network. Examples of communication networks include local area networks (“LAN”) and wide area networks (“WAN”), internetworks (eg, the Internet), and peer-to-peer networks (eg, ad hoc peer-to-peer networks).

コンピューティングシステムは、クライアントおよびサーバを含むことが可能である。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実施形態において、サーバは、(たとえば、クライアントデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受信する目的で)クライアントデバイスにデータ(たとえば、HTMLページ)を送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザのインタラクションの結果)が、サーバにおいてクライアントデバイスから受信されることが可能である。   The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship between the client and the server is generated by a computer program that is executed on each computer and has a client-server relationship with each other. In some embodiments, the server provides data (e.g., HTML pages) to the client device (e.g., for the purpose of displaying data to a user interacting with the client device and receiving user input from such user). Send. Data generated at the client device (eg, the result of user interaction) can be received from the client device at the server.

本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求され得るものの範囲に対する限定とも見なされるべきでなく、むしろ、特定の発明の特定の実施形態に固有の特徴の説明と見なされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態において組み合わせて実装されることも可能である。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々に、または任意の好適な部分的組合せで実装されることも可能である。さらに、特徴は、特定の組合せで動作するものとして上で説明されている場合があり、最初にそのように主張されてさえいる場合があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されることも可能であり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とすることもある。   This specification includes many specific implementation details, but these should not be construed as limitations on the scope of any invention or what may be claimed, but rather specific to a particular embodiment of a particular invention. Should be regarded as an explanation of the characteristics of Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. In addition, a feature may be described above as operating in a particular combination, and may even be so claimed initially, but one or more features of the claimed combination may be In some cases, it may be deleted from the combination, and the claimed combination may be targeted to a partial combination or a variation of a partial combination.

同様に、動作が図中に特定の順序で示されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である場合がある。さらに、上述の実施形態における様々なシステム構成要素の分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であると理解されるべきである。   Similarly, operations are shown in a particular order in the figures, but this may be performed in the particular order shown or in sequential order, or to achieve the desired result. Therefore, it should not be understood that all operations shown for this need to be performed. In certain situations, multitasking and parallel processing may be advantageous. Further, the division of various system components in the above-described embodiments should not be understood as requiring such division in all embodiments, and the described program components and systems are generally simply It should be understood that they can be integrated together in one software product or packaged into multiple software products.

このように、本主題の特定の実施形態が説明された。その他の実施形態は、以下の特許請求の範囲内にある。場合によっては、請求項に挙げられたアクションは、異なる順序で実行され、それでも所望の結果を達成することができる。加えて、添付の図面に示されたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序または逐次的順序である必要はない。特定の実装においては、マルチタスクおよび並列処理が有利である場合がある。   Thus, specific embodiments of the present subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes shown in the accompanying drawings do not necessarily have to be in the specific order or sequential order shown in order to achieve the desired result. In certain implementations, multitasking and parallel processing may be advantageous.

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 プロセス
100 environment
110 Pre-cache system
115 Data storage devices
120 Data communication network
130 client devices
135 Fast cache
140 Data request
142 Requested data
144 Additional data
200 environment
210 Account management system
220 Data transmission subsystem
221 Data selector
223 pre-cache engine
225 Campaign Grouper
227 Account data storage device
229 User Interface Generator
230 Interaction Logger
232 Interaction Log
235 User Group Engine
240 front-end server
245 fast cache
250 Data communication network
260 Account holder
262 client devices
264 fast cache
266 Account Viewer
270 account holder
272 client devices
300 screenshots
310 User interface
320 Menu
331 display card
333 display card
335 display card
337 Display card
339 display card
400 processes
500 processes
600 processes
700 processes

Claims (10)

データ処理装置によって実行される方法であって、
所与のユーザのクライアントデバイスを通じて提出されたデータに基づいて、前記所与のユーザを所与のオンラインアカウントの認可されたユーザとして認証するステップと、
前記所与のユーザに関してかつ前記認証に応じて、アカウントに関連するデータが前記ユーザに対して提示されるユーザセッションを開始するステップであって、前記アカウントが、前記アカウントにアクセスするための資格証明情報を有する複数のユーザによってアクセス可能である、ステップと、
(i)以前のユーザセッション中に前記アカウントのユーザインターフェース内に提示されたユーザインターフェース要素との前記所与のユーザのインタラクションと前記ユーザインターフェース要素とのその他のユーザのその他のインタラクションとの間の類似性、または(ii)前記以前のユーザセッション中に前記所与のユーザによって要求された少なくとも1つのデータの種類とその他のユーザによって要求された少なくとも1つのデータの種類との間の類似性に基づいて前記所与のユーザが割り当てられたユーザグループを特定するステップと、
前記所与のユーザが割り当てられた前記ユーザグループに基づいて前記アカウントに関連する第1のデータセットを選択するステップであって、前記第1のデータセットが、少なくとも(i)前記以前のユーザセッション中に前記所与のユーザによって要求された前記データの種類、および(ii)前記以前のユーザセッション中に前記所与のユーザがインタラクションしたユーザインターフェース要素に基づいて選択される、ステップと、
前記所与のユーザ以外の前記ユーザグループ内の少なくとも1人のユーザによって以前に要求されたデータの種類に基づいて、前記アカウントに関連する第2のデータセットを選択するステップと、
前記アカウントのための初期アカウントビュー内に前記第1のデータセットの少なくとも一部を提示するために前記アカウントのためのユーザインターフェースを更新するステップであって、前記初期アカウントビューが、前記アカウントの概要を提供する単一の提示へと組み合わされた複数の異なる種類のデータを提示する、ステップと、
前記クライアントデバイスからの前記第2のデータセットの要求を受信する前に前記第2のデータセットを前記クライアントデバイスに提供することによって、前記クライアントデバイスにおいて前記第1のデータセットまたは前記第2のデータセットの追加の部分を提示するときに前記アカウントのための前記ユーザインターフェースを更新する際のレイテンシを削減するステップであって、前記第2のデータセットが、前記クライアントデバイスにおいてキャッシュされ、かつ前記初期アカウントビュー内に提示されない、ステップと
を含む、方法。
A method performed by a data processing device, comprising:
Authenticating the given user as an authorized user of a given online account based on data submitted through the given user's client device;
Initiating a user session in which data related to an account is presented to the user for the given user and in response to the authentication, wherein the account has credentials to access the account Accessible by a plurality of users having information; and
(i) the similarity between the given user's interaction with the user interface element presented in the user interface of the account during a previous user session and the other user's other interaction with the user interface element Or (ii) similarity between at least one data type requested by the given user during the previous user session and at least one data type requested by other users Identifying a user group to which the given user is assigned;
Selecting a first data set associated with the account based on the user group to which the given user is assigned, the first data set comprising at least (i) the previous user session Selected based on the type of data requested by the given user during, and (ii) user interface elements that the given user interacted with during the previous user session;
Selecting a second data set associated with the account based on the type of data previously requested by at least one user in the user group other than the given user;
Updating a user interface for the account to present at least a portion of the first data set in an initial account view for the account, the initial account view comprising an overview of the account Presenting a plurality of different types of data combined into a single presentation providing
Providing the second data set to the client device prior to receiving a request for the second data set from the client device, so that the first data set or the second data at the client device; Reducing latency in updating the user interface for the account when presenting an additional portion of the set, wherein the second data set is cached at the client device and the initial A method that includes steps that are not presented in the account view.
前記所与のユーザおよび前記その他のユーザが、複数のユーザグループを作成するとともに前記複数のユーザグループにユーザを割り当てる機械学習プロセスを使用して前記ユーザグループに割り当てられる、請求項1に記載の方法。   The method of claim 1, wherein the given user and the other users are assigned to the user group using a machine learning process that creates a plurality of user groups and assigns users to the plurality of user groups. . 前記所与のユーザが、(i)以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの時間の範囲、(ii)前記ユーザによって修正されたデータ、または(iii)前記所与のユーザが前記アカウントに関連するデータにアクセスする頻度のうちの少なくとも1つにさらに基づいて前記ユーザグループに割り当てられる、請求項1または2に記載の方法。   The given user is (i) a time range of data requested by the given user in a previous user session, (ii) data modified by the user, or (iii) the given user The method according to claim 1 or 2, wherein is assigned to the user group further based on at least one of the frequency of accessing data associated with the account. 前記第2のデータセットの少なくとも一部が、(i)前記以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの種類、(ii)以前のユーザセッションにおいて前記所与のユーザによって要求されたデータの時間の範囲、または(iii)前記以前のユーザセッションにおいて前記所与のユーザがデータを要求した地理的領域のうちの少なくとも1つに基づいて選択される、請求項1から3のいずれか一項に記載の方法。   At least a portion of the second data set is (i) the type of data requested by the given user in the previous user session, and (ii) requested by the given user in the previous user session. The time range of the data, or (iii) selected based on at least one of the geographical regions from which the given user requested data in the previous user session. The method according to claim 1. 前記複数のユーザの各々が、複数の異なるユーザの各々によって要求されたデータの種類に基づいて、異なる初期アカウントビューを提供される、請求項1から4のいずれか一項に記載の方法。   5. The method of any one of claims 1-4, wherein each of the plurality of users is provided with a different initial account view based on the type of data requested by each of a plurality of different users. 前記所与のユーザのために開始されたそれぞれの所与のユーザセッションに関して、前記所与のユーザが前記所与のユーザセッション中にインタラクションしたユーザインターフェース要素および前記所与のユーザが前記ユーザセッション中に要求したデータの種類を指定するデータによって前記所与のユーザに関するユーザプロファイルを更新するステップと、
前記更新するステップに基づいて前記所与のユーザのための前記初期アカウントビューを修正するステップと
をさらに含む、請求項1から5のいずれか一項に記載の方法。
For each given user session initiated for the given user, the user interface element with which the given user interacted during the given user session and the given user during the user session Updating a user profile for the given user with data specifying the type of data requested in
6. The method of any one of claims 1 to 5, further comprising: modifying the initial account view for the given user based on the updating step.
前記キャッシュを更新するためのデータコストが閾値のコスト未満であることに基づいて前記ユーザデバイスにおける第2のデータの前記キャッシュを更新すると決定するステップと、
前記キャッシュを更新すると決定するステップに応じて更新されたデータセットを前記ユーザデバイスに提供するステップと
をさらに含む、請求項1から6のいずれか一項に記載の方法。
Determining to update the cache of second data at the user device based on a data cost for updating the cache being less than a threshold cost;
7. The method of any one of claims 1 to 6, further comprising: providing the user device with an updated data set in response to determining to update the cache.
少なくとも1つの同じ特徴と、2つ以上のキャンペーンの各々に関して異なる少なくとも1つの特徴とを有する前記アカウントの前記2つ以上のキャンペーンを特定するステップと、
前記2つ以上のキャンペーンの各々の前記少なくとも1つの特徴を強調するような方法で、前記2つ以上のキャンペーンの各々のデータを提示するデータを提供するステップと
をさらに含む、請求項1から7のいずれか一項に記載の方法。
Identifying the two or more campaigns of the account having at least one same feature and at least one feature that is different for each of the two or more campaigns;
Providing data presenting data for each of the two or more campaigns in a manner that highlights the at least one feature of each of the two or more campaigns. The method as described in any one of.
システムであって、
プロセッサ可読命令を記憶するメモリと、
前記メモリに記憶された命令を読み出しかつ実行するように構成される1つまたは複数のプロセッサと
を含み、
前記プロセッサ可読命令が、請求項1から8のいずれか一項に記載の方法を実行するように前記システムを制御するように構成される命令を含む、
システム。
A system,
Memory for storing processor readable instructions;
One or more processors configured to read and execute instructions stored in said memory; and
Wherein the processor readable instructions comprise instructions configured to control the system to perform a method according to any one of claims 1 to 8,
system.
コンピュータプログラムで符号化された非一時的コンピュータストレージ媒体であって、前記コンピュータプログラムが、1つまたは複数のデータ処理装置によって実行されるときに、前記データ処理装置に請求項1から8のいずれか一項に記載の方法を含む動作を実行させる命令を含む、非一時的コンピュータストレージ媒体。   9. A non-transitory computer storage medium encoded with a computer program, wherein when the computer program is executed by one or more data processing devices, the data processing device is any one of claims 1 to 8. A non-transitory computer storage medium comprising instructions for performing an operation comprising the method of claim 1.
JP2018538738A 2016-01-25 2016-12-01 Latency reduction Active JP6595116B2 (en)

Applications Claiming Priority (3)

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
PCT/US2016/064369 WO2017131857A1 (en) 2016-01-25 2016-12-01 Reducing latency

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019173284A Division JP6803955B2 (en) 2016-01-25 2019-09-24 Latency reduction

Publications (2)

Publication Number Publication Date
JP2019509546A true JP2019509546A (en) 2019-04-04
JP6595116B2 JP6595116B2 (en) 2019-10-23

Family

ID=57589209

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018538738A Active JP6595116B2 (en) 2016-01-25 2016-12-01 Latency reduction
JP2019173284A Active JP6803955B2 (en) 2016-01-25 2019-09-24 Latency reduction

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2019173284A Active JP6803955B2 (en) 2016-01-25 2019-09-24 Latency reduction

Country Status (7)

Country Link
US (4) US20170214674A1 (en)
EP (2) EP3709606A1 (en)
JP (2) JP6595116B2 (en)
KR (2) KR102196404B1 (en)
CN (2) CN112883305A (en)
AU (2) AU2016389047B2 (en)
WO (1) WO2017131857A1 (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10623514B2 (en) 2015-10-13 2020-04-14 Home Box Office, Inc. Resource response expansion
US10656935B2 (en) 2015-10-13 2020-05-19 Home Box Office, Inc. Maintaining and updating software versions via hierarchy
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
EP4058908A4 (en) * 2019-11-11 2023-11-15 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 (en) * 2020-05-19 2021-11-23 长鑫存储技术有限公司 Data presentation system, method, device and computer readable storage medium
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 (en) * 2023-04-19 2023-06-27 深圳开鸿数字产业发展有限公司 Interface display method, terminal device and storage medium
CN116257164B (en) * 2023-05-11 2023-07-21 武汉元光科技有限公司 Waiting user anxiety response method and system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003280975A (en) * 2002-03-25 2003-10-03 Kanazawa Inst Of Technology Cache control method and cache system
JP2011081472A (en) * 2009-10-05 2011-04-21 Nomura Research Institute Ltd Document management system
JP2014006842A (en) * 2012-06-27 2014-01-16 Sony Corp Information processing apparatus, information processing method, program, and information processing system
WO2014194441A1 (en) * 2013-06-06 2014-12-11 Yahoo! Inc Method and system for dynamic content pre-caching

Family Cites Families (42)

* 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
US6891920B1 (en) * 2002-11-29 2005-05-10 Fischer Imaging Corporation Automated background processing mammographic image data
KR100539449B1 (en) * 2004-07-12 2005-12-27 주식회사 하이닉스반도체 Method of manufacturing flash memory device
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
US8019811B1 (en) * 2006-04-06 2011-09-13 Versata Development Group, Inc. Application state server-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 (en) * 2009-07-31 2013-03-27 本田技研工業株式会社 Membrane-electrode structure for polymer electrolyte fuel cell and polymer electrolyte fuel cell
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 (en) * 2010-08-16 2015-07-16 에스케이플래닛 주식회사 Web page pre-caching system and method for offline-executing
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 (en) 2011-11-11 2015-01-11 Ind Tech Res Inst Image stabilization method and image stabilization device
CN103577079B (en) * 2012-07-24 2017-11-07 腾讯科技(深圳)有限公司 The method interacted with the application and electronic equipment are realized in electronic equipment
CN102819584B (en) * 2012-07-26 2015-07-08 北京奇虎科技有限公司 Interface file display method and system
CN103677866B (en) * 2012-09-05 2017-02-01 北京搜狗科技发展有限公司 Application program extension tool pushing method and system
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 (en) * 2012-09-25 2014-03-26 苏州精易会信息技术有限公司 Program interface design device
US10007975B2 (en) * 2013-03-15 2018-06-26 Sony Corporation Image processing device and GUI configuration command method for image processing device
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 (en) * 2014-10-21 2016-05-18 中兴通讯股份有限公司 User interface (UI) loading method, device and related equipment
US9720948B2 (en) * 2014-11-12 2017-08-01 Vivanti N. Jain, M.D., F.A.C.S. Fast searching using multidimensional indexing
US10078425B2 (en) 2014-11-19 2018-09-18 Imprivata, Inc. Strong authentication via distributed stations
CN104834460A (en) * 2015-02-10 2015-08-12 数据通信科学技术研究所 Desktop display control method and device and mobile terminal
CN105187237B (en) * 2015-08-12 2018-09-11 百度在线网络技术(北京)有限公司 The method and apparatus for searching associated user identifier
US20170214674A1 (en) 2016-01-25 2017-07-27 Google Inc. Reducing latency

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003280975A (en) * 2002-03-25 2003-10-03 Kanazawa Inst Of Technology Cache control method and cache system
JP2011081472A (en) * 2009-10-05 2011-04-21 Nomura Research Institute Ltd Document management system
JP2014006842A (en) * 2012-06-27 2014-01-16 Sony Corp Information processing apparatus, information processing method, program, and information processing system
WO2014194441A1 (en) * 2013-06-06 2014-12-11 Yahoo! Inc Method and system for dynamic content pre-caching

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6595116B2 (en) Latency reduction
US11240289B2 (en) Apparatus and method for low-latency message request/response processing
RU2720952C2 (en) Method and system for generating digital content recommendation
US20080281610A1 (en) Method and system for integrating idea and on-demand services
US11188838B2 (en) Dynamic access of artificial intelligence engine in a cloud computing architecture
US11055796B2 (en) User management of subscriptions to multiple social network platforms
US20190310888A1 (en) Allocating Resources in Response to Estimated Completion Times for Requests
US20200089722A1 (en) Dynamic materialization of feeds for enabling access of the feed in an online social network
US9538377B2 (en) Switching between restricted-access websites on mobile user devices
US10489390B2 (en) Content management in an on-demand environment
US20160253763A1 (en) Triggered targeting
JP7223164B2 (en) Data integrity optimization
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: 20180918

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180918

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190710

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: 20190826

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190925

R150 Certificate of patent or registration of utility model

Ref document number: 6595116

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250