(58)【調査した分野】(Int.Cl.,DB名)
クライアントデバイスから、(i)特定のグラフィック領域と、(ii)前記特定の領域の複数の異なるサブ領域に関するオンラインアカウントに関連したデータとを描画するインタラクティブマップユーザインターフェースの提示のための要求を受信するステップと、
1つまたは複数のサーバによってマッピングサービスを使用して、前記特定の領域のマップをレンダリングするステップであって、前記レンダリングするステップが、前記特定の領域のキャンバスを生成するステップと、前記マップを生成するために使用される複数のプログラミング要素とグラフィック要素とをロードするステップとを備える、ステップと、
前記1つまたは複数のサーバによって、前記レンダリングされたマップに基づいて、前記レンダリングされたマップの画像を表す画像ファイルを生成するステップと、
前記画像によって描画された視覚的境界に少なくとも基づいて、前記画像内の1つまたは複数のサブ領域を検出するステップと、
前記画像内の各異なるサブ領域に異なる視覚的特徴を割り当てるステップと、
前記画像内の各位置を含む対応するサブ領域に前記位置をマッピングする電子インデックスを生成するステップと、
前記1つまたは複数のサーバによって、前記クライアントデバイスが前記画像の所与のサブ領域とのユーザインタラクションを検出したときに、(i)前記異なるサブ領域の各々が前記異なるサブ領域に対応する前記異なる視覚的特徴に従って提示される前記画像と、(ii)少なくとも1つの前記所与のサブ領域に関連したアカウントデータとを提示するように前記クライアントデバイスのユーザインターフェースを構成するステップと
を備える、方法。
前記1つまたは複数のサーバによって、前記要求に応答してかつ前記サブ領域のうちの少なくとも1つのマップを各々が表す1つまたは複数の追加の画像ファイルに対する要求を受信する前に、前記1つまたは複数の追加の画像ファイルを前記クライアントデバイスに提供するステップをさらに備える、請求項1から6のいずれか一項に記載の方法。
クライアントデバイスから、(i)特定のグラフィック領域と、(ii)前記特定の領域の複数の異なるサブ領域に関するオンラインアカウントに関連したデータとを描画するインタラクティブマップユーザインターフェースの提示のための要求を受信する1つまたは複数のフロントエンドサーバと、
前記1つまたは複数のフロントエンドサーバとデータ通信するマップレンダリングサーバであって、前記特定の領域のキャンバスを生成し、かつマップを生成するために使用される複数のプログラミング要素とグラフィック要素とをロードすることによって、前記特定の領域の前記マップをレンダリングするためにマッピングサービスを使用する、マップレンダリングサーバと、
マップ画像ファイル生成器であって、
前記レンダリングされたマップに基づいて、前記レンダリングされたマップの画像を表す画像ファイルを生成し、
前記画像によって描画された視覚的境界に少なくとも基づいて、前記画像内の1つまたは複数のサブ領域を検出し、
前記画像内の各異なるサブ領域に異なる視覚的特徴を割り当て、前記画像内の各位置を含む対応するサブ領域に前記画像をマッピングする電子インデックスを生成する、
マップ画像ファイル生成器とを備え、
前記1つまたは複数のフロントエンドサーバが、前記クライアントデバイスが前記画像の所与のサブ領域とのユーザインタラクションを検出したときに、(i)前記異なる領域の各々が前記異なる領域に対応する前記異なる視覚的特徴に従って提示される前記画像と、(ii)少なくとも1つの前記所与のサブ領域に関連したアカウントデータとを提示するように前記クライアントデバイスのユーザインターフェースを構成する、
システム。
各サブ領域に関する前記視覚的特徴が、前記サブ領域に割り当てられ、かつ前記画像内の前記サブ領域内に提示される特定の色を備える、請求項8または9に記載のシステム。
コンピュータプログラムを用いて符号化された非一時的コンピュータ可読記憶媒体であって、前記プログラムが、1つまたは複数のデータ処理装置によって実行されたときに、前記データ処理装置に請求項1から7のいずれか一項に記載の方法を備える動作を実行させる、非一時的コンピュータ可読記憶媒体。
【発明を実施するための形態】
【0013】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【0014】
システムは、インタラクティブマップユーザインターフェースを提供および提示する際の待ち時間を低減することができる。たとえば、システムは、マッピングサービスによって生成されたマップの画像を生成することができる。画像は、特定の領域およびそのサブ領域のマップを描画することができる。システムはまた、画像のサブ領域に画像内の位置(たとえば、画像のx-y座標)をマッピングする電子インデックスを生成することができる。電子インデックスはまた、サブ領域をサブ領域用のデータにマッピングすることができる。このようにして、ユーザが、たとえば、サブ領域に対応する位置上にホバーするか、またはその位置を選択することによって、特定のサブ領域に対応する位置におけるマップの画像と相互作用すると、サブ領域用のデータは、インタラクティブな方法でユーザに提示されることが可能である。
【0015】
たとえば、インターネットを介してクライアントデバイスに画像を提供することは、マッピングサービスを使用してクライアントデバイスにおいてマップを生成することよりも少ないコンピューティングリソースおよびネットワーキングリソースを必要とすることができる。これはまた、マップユーザインターフェースがユーザに提示される速度を増加させる。コンピューティングリソースおよびネットワーキングリソースの量は、画像を圧縮することによって、さらに低減されることが可能であり、速度は、さらに増加されることが可能である。いくつかの実装形態では、画像は、画像の各サブ領域に特定の色を割り当てることによって圧縮されることが可能である。たとえば、サブ領域全体が、道路、地形などに対して異なる色で描画するのではなく、サブ領域に割り当てられた特定の色で描画されてもよい。このようにして、画像ファイルのサイズは、低減されることが可能であり、ネットワークを介するより迅速な転送と、ネットワークを介して画像を転送するためのより少ないネットワーク帯域幅とを可能にする。たとえば、所与のサブ領域の領域のすべてが同じ色であるので、サブ領域の複数の異なる部分のための異なるカラーコードを送信するのではなく、サブ領域を表す画像の領域全体に対して単一のカラーコード(たとえば、RGB値)のみが送信される必要がある。加えて、クライアントデバイスは、たとえば、グラフィックス処理ユニット(GPU)によって実装される圧縮画像レンダリング技術を使用してより迅速に圧縮画像を提示することができる。
【0016】
インタラクティブユーザインターフェースを提示する際の待ち時間をさらに低減するために、マップが要求される前にマップの追加画像が提示されてもよい。追加のマップ画像は、ユーザがマップを要求した場合にマップのより迅速な提示を可能にするために、クライアントデバイスにおいて、たとえば、キャッシュ内に記憶されることが可能である。たとえば、システムは、ユーザがより詳細なビューのためにサブ領域のうちの1つを選択した場合に、要求に応答して生成された画像内に描画された各サブ領域のより詳細なマップを提供してもよい。
【0017】
図1は、データ管理システム110がインタラクティブマップユーザインターフェースを提供する例示的な環境100である。たとえば、データ管理システム110は、クライアントデバイスからの要求に応答して、クライアントデバイス、たとえば、クライアントデバイス150にインタラクティブマップユーザインターフェースを提供してもよい。データ管理システム110は、データ通信ネットワーク130、たとえば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、モバイル通信ネットワーク、インターネット、またはそれらの組み合わせを介してインタラクティブマップユーザインターフェースを送信することができる。ネットワーク130は、サーバ、ハブ、ルータ、スイッチ、インターフェースデバイス、伝送媒体、およびデバイスが他のデバイスにデータを送信し、他のデバイスからデータを受信することを可能にする他のネットワーク構成要素を含むことができる。
【0018】
クライアントデバイス150は、ネットワーク130を介して電子リソースおよび他のデータを要求し、それらを受信することができる電子デバイスである。例示的なクライアントデバイス150は、パーソナルコンピュータ、モバイル通信デバイス(たとえば、スマートフォン、タブレットコンピュータデバイス、および/またはスマートウォッチ)、およびネットワーク130を介してデータを送信および受信することができる他のデバイスを含む。クライアントデバイス150は、典型的にはネットワーク130を介するデータの送信および受信を容易にするために、ウェブブラウザのようなユーザアプリケーションを含む。ウェブブラウザは、ユーザが、典型的にはウェブサイトにおけるウェブページ上に位置する、テキスト、画像、ビデオ、音楽および他の情報とインタラクションすることを可能にすることができる。
【0019】
クライアントデバイス150は、他のアプリケーション、たとえば、特定のタイプのデバイスのため、または特定のプラットフォームのために開発されたネイティブアプリケーションを含むことができる。たとえば、クライアントデバイス150は、インタラクティブマップユーザインターフェース157をクライアントデバイス150のユーザに提示するマップビューア155を含む。マップビューア155は、ウェブブラウザ、ネイティブアプリケーション、または別のタイプのアプリケーションプログラムにおいて実装されてもよい。
【0020】
インタラクティブマップユーザインターフェース157は、特定の領域のマップを提示する。たとえば、インタラクティブマップユーザインターフェース157は、クライアントデバイス150から受信された要求によって指定された特定の領域のマップを提示することができる。インタラクティブマップユーザインターフェース157はまた、マップ内に含まれる特定の領域および/または領域のサブ領域に関連したデータを提示することができる。以下に説明するように、提示されるデータは、クライアントデバイス150のユーザがアクセスすることを許可されたオンラインアカウントに関連したアカウントデータを含むことができる。データは、マップとのユーザインタラクションに応答して提示されることが可能である。たとえば、クライアントデバイス150のユーザが特定のサブ領域に対応する位置の上にカーソルまたは他のポインタをホバーさせた場合、サブ領域に関するデータがユーザに提示されてもよい。例示的なインタラクティブマップユーザインターフェースが
図2に示され、以下でより詳細に説明される。
【0021】
データ管理システム110は、ユーザおよび/または組織のためのデータを管理し、たとえば、データ管理システム110によって生成されたユーザインターフェースにおいて、ユーザに提示するためのデータを提供することができる。たとえば、データ管理システム110は、複数の異なるアカウント保有者の複数の異なるアカウントのためのオンラインアカウントデータを管理することができる。特定の例では、データ管理システム110は、複数の異なる組織のためのコンテンツ配信アカウントデータを管理することができる。以下に説明するシステムおよび技法はまた、様々な他のタイプのデータに適用されることが可能である。
【0022】
データ管理システム110によって管理されるアカウントデータは、コンテンツアイテムに関するパフォーマンスデータ(たとえば、インプレッション数、クリックスルーレート、コンバージョン率など)、アカウント保有者に関する予算情報、および/またはコンテンツアイテム配信基準のような、アカウントに関連した任意のデータを含むことができる。各アカウント保有者に関するアカウントデータは、1つまたは複数のデータセンタ内に配置された複数のデータ記憶デバイスを含んでもよいアカウントデータ記憶デバイス115内に記憶される。各アカウント保有者に関するアカウントデータは、あるアカウント保有者に関するアカウントデータが異なるアカウント保有者のユーザに提供されないように、別々に記憶されてもよい。
【0023】
アカウントデータの少なくとも一部は、データに関する対応する地理的位置を識別するデータと共に記憶されることが可能である。たとえば、コンテンツ配信キャンペーンに関するデータは、コンテンツアイテムのインプレッション数、コンテンツアイテムの選択数、コンテンツアイテムの提示から生じるコンバージョン数、および/または他の適切なキャンペーンデータを指定するデータを含んでもよい。各イベント(たとえば、インプレッション、選択、コンバージョンなど)に関するデータは、イベントが発生した地理的位置の指定を含むことができる。たとえば、コンテンツアイテムがシアトル内に位置するクライアントデバイス上に提示された場合、インプレッションに関するデータは、インプレッションがシアトル内で発生したことを示すことができる。このようにして、データは、位置に基づいてフィルタリングされることが可能であり、各位置に関連するメトリックが決定されることが可能である。
【0024】
データ管理システム110は、1つまたは複数のフロントエンドサーバ111と、データセレクタ113と、マップユーザインターフェース生成器120とを含む。データセレクタ113およびマップユーザインターフェース生成器120はまた、1つまたは複数サーバ内に実装されることが可能である。たとえば、フロントエンドサーバ111、データセレクタ113およびマップユーザインターフェース生成器120は、1つまたは複数の位置(たとえば、データセンタ)において配置された1つまたは複数のサーバ内に実装されてもよい。フロントエンドサーバ111、データセレクタ113およびマップユーザインターフェース生成器120は、たとえば、ネットワークを介して、互いにデータを通信することができる。
【0025】
フロントエンドサーバ111は、クライアントデバイスからデータに対する要求を受信し、要求されたデータをクライアントデバイスに提供する。フロントエンドサーバ111は、クライアントデバイスとデータセレクタ113とマップユーザインターフェース生成器120との間のインターフェースとして機能することができる。たとえば、フロントエンドサーバ111は、データに対する要求をデータセレクタ113に転送することができる。次に、データセレクタ113は、アカウントデータ記憶デバイス115から適切なデータを取得し、データをフロントエンドサーバ111に提供することができる。フロントエンドサーバ111は次いで、要求を提出したクライアントデバイスにデータを提供することができる。
【0026】
フロントエンドサーバ111はまた、受信された要求がマップユーザインターフェースを要求しているかどうかを判定することができる。たとえば、要求は、特定の領域に関するアカウントデータを描画するマップユーザインターフェースを要求していることを指定してもよい。別の例では、クライアントデバイスのユーザは、別のマップユーザインターフェースに対する要求をトリガするようにマップユーザインターフェースとインタラクションしてもよい。たとえば、ユーザは、異なる領域、またはサブ領域のより詳細なビューを見るために、マップユーザインターフェースをズームインまたはズームアウトしてもよい。この例では、要求は、マップユーザインターフェース内に含める領域を指定してもよい。
【0027】
フロントエンドサーバ111が、要求がマップユーザインターフェースを要求していると判定した場合、フロントエンドサーバ111は、マップユーザインターフェース生成器120からのマップユーザインターフェースを要求することができる。マップユーザインターフェース生成器120は、要求された領域に関するインタラクティブマップユーザインターフェースを生成し、インタラクティブマップユーザインターフェースをフロントエンドサーバ111に提供することができる。次に、フロントエンドサーバ111は、インタラクティブマップユーザインターフェースをクライアントデバイスに提供する。
【0028】
いくつかの実装形態では、データセレクタ113は、マップユーザインターフェースをクライアントデバイス150に提供するかどうかを判定することができる。たとえば、データセレクタ113は、クライアントデバイス150に提供されているデータに基づいて、マップユーザインターフェースを提供するかどうかを判定してもよい。データセレクタ113は、データが複数の異なる地理的位置に特有のデータを含む場合、マップユーザインターフェースを提供することを決定してもよい。たとえば、データは、複数の異なる地理的位置の各々について、コンテンツアイテムが地理的位置において提供されたときのコンテンツアイテムに関するコンバージョン率を含んでもよい。この例では、データセレクタ113は、マップ上のそれらの適切な位置におけるコンバージョン率を提示するマップユーザインターフェースを提供することを決定してもよい。
【0029】
マップユーザインターフェース生成器120は、マップ上に描画された地理的位置に関するデータを提示するインタラクティブマップユーザインターフェースを生成する。たとえば、マップユーザインターフェース生成器120は、クライアントデバイスから受信された要求によって指定された特定の領域のマップを描画するインタラクティブマップユーザインターフェースを生成してもよい。マップユーザインターフェース生成器120によって生成されたインタラクティブマップユーザインターフェースは、より複雑なマップの画像と、画像によって描画された地理的位置に対応するデータのインデックスとを含むことができる。このようにして、クライアントデバイス150においてインタラクティブマップユーザインターフェースをレンダリングする際の待ち時間は、コード(たとえば、スクリプト)と、DOM要素と、マッピングサービスから取得された他のデータとを使用してクライアントデバイス150においてマップを生成することと比較して低減されることが可能である。加えて、インタラクティブマップユーザインターフェースをレンダリングするために使用されるクライアントデバイス150の計算リソースへの要求は、低減されることが可能であり、それによって、クライアントデバイス150の性能を改善することができる。
【0030】
マップユーザインターフェース生成器120は、1つまたは複数のマップレンダリングサーバ121を含む。マップレンダリングサーバ121は、地理的領域のマップをレンダリングするためにマッピングサービス122とマップクライアント123とを使用することができる。マッピングサービス122は、マップに対する要求に応答してマップクライアント123にマップまたはマップの一部を提供するウェブマッピングサービスを含むことができる。たとえば、マッピングサービス122は、特定の領域のマップに対する要求に基づいてマップクライアント123に提供するマップタイル、オーバレイおよび他のマップデータを選択してもよい。マッピングサービス122は、マップデータ記憶デバイス124からマップタイル、オーバレイおよび他のマップデータを選択することができる。
【0031】
マップクライアント123は、マッピングサービス122からのマップを要求し、マッピングサービスから受信されたマップデータを編成し、マップをレンダリングすることができる。いくつかの実装形態では、マップクライアント123は、マップキャンバスを生成し、キャンバス上にマップタイルを編成し、マップタイル上にオーバレイを配置し、マップ上に対マップデータを配置し、たとえば、ディスプレイにおいて、またはメモリ内にマップをレンダリングするために複数のスクリプトを使用する。マップをレンダリングするために、マップクライアント123は、マップをレンダリングするためにスクリプトによって使用される複数のDOM要素をロードしてもよい。
【0032】
マップクライアント123は、クライアントデバイス、たとえば、クライアントデバイス150によって要求されたマップをレンダリングするために、マッピングサービス122とインタラクションすることができる。クライアントデバイス150ではなくマップレンダリングサーバ121においてマップをレンダリングすることによって、マップレンダリングサーバは、マップをレンダリングするより強力でより多くの計算リソースを有するので、マップは、より迅速にレンダリングされることが可能である。加えて、マップクライアント123は、インターネットを介して要求を提出することなくマッピングサービス122とインタラクションすることができ、マップをレンダリングするために必要とされる時間量をさらに低減することができる。
【0033】
マップユーザインターフェース120はまた、マップ画像ファイル生成器125と、インデック生成器128と、ファイル圧縮器129とを含む。マップ画像ファイル生成器125は、マップクライアント123によってレンダリングされたマップの画像を生成し、画像を表す画像ファイルを生成することができる。たとえば、マップ画像ファイル生成器125は、レンダリングされたマップのスクリーンショットをキャプチャし、キャプチャされた画像を表す画像ファイルを生成してもよい。画像ファイルは、ポータブルネットワークグラフィックス(PNG)ファイル、グラフィックスインターチェンジフォーマット(GIF)ファイル、ジョイントフォトグラフィックエキスパートグループ(JPEG)ファイル、または別の適切なタイプの画像ファイルであってもよい。
【0034】
マップ画像ファイル生成器125は、境界検出器126と視覚的特徴セレクタ127とを含む。境界検出器126は、マップ画像ファイル生成器125によって生成されたマップの画像内の視覚的境界を検出することができる。たとえば、画像は、境界によって画定されたサブ領域を含む特定の領域を描画してもよい。特定の例では、領域は、米国であってもよく、サブ領域は、個々の州であってもよい。境界検出器126は、サブ領域間の境界を検出するために、境界検出技法、たとえば、エッジ検出を使用することができる。
【0035】
いくつかの実装形態では、境界検出器126はまた、境界に基づいて、および/または画像によって描画された領域を指定するデータに基づいて、画像によって描画されたサブ領域を識別することができる。たとえば、画像内の領域およびサブ領域が分かると、境界検出器126は、画像のどの境界付けられた領域が各サブ領域に対応するのかを判定することができる。境界検出器126は、画像内の境界によって画定される形状と各サブ領域に関する既知の形状とを比較することによって、サブ領域を決定することができる。
【0036】
視覚的特徴セレクタ127は、マップの画像内に描画された各サブ領域と関係付ける視覚的特徴を選択することができる。たとえば、視覚的特徴は、色(たとえば、RGBカラーモデルまたは赤色、緑色、青色、アルファ(RGBAカラーモデル)に基づく)、シェーディング、ハッチング、色強度、または何らかの他の適切な視覚的特徴であってもよい。いくつかの実装形態では、視覚的特徴セレクタ127は、各サブ領域に関するデータに基づいて各サブ領域のための視覚的特徴を選択する。たとえば、インタラクティブマップユーザインターフェースは、コンテンツアイテムがサブ領域内に位置するクライアントデバイスにおいて提示されるとき、コンテンツアイテムのパフォーマンスを提示するために生成されてもよい。この例では、視覚的特徴セレクタ127は、各サブ領域に対するパフォーマンス測定に基づいて各サブ領域のための視覚的特徴を選択してもよい。コンテンツアイテムがより良いパフォーマンスを有するサブ領域は、コンテンツアイテムがより低いパフォーマンスを有するサブ領域よりも明るい色で提示されてもよい。
【0037】
別の例では、各サブ領域は、同じ色で描画されてもよいが、色の濃淡または明るさは、サブ領域に関するデータに基づいて変化する。たとえば、各サブ領域は、青色で描画されてもよい。視覚的特徴セレクタ127は、各サブ領域に関するデータに基づいて各サブ領域のための青色の明るさまたは濃淡を選択してもよい。さらに別の例では、各サブ領域の視覚的特徴は、異なるサブ領域を区別するためにランダムまたは疑似ランダムに選択されてもよい。
【0038】
インデックス生成器128は、マップの画像内の位置を画像内に描画されたサブ領域にマッピングする電子インデックスを生成することができる。たとえば、電子インデックスは、画像の各x-y座標をその対応するサブ領域にマッピングしてもよい。電子インデックスはまた、各サブ領域に関するデータをマップの画像によって描画されたサブ領域にマッピングしてもよい。たとえば、インデックス生成器128は、データセレクタ113からサブ領域に関するデータを取得することができる。いくつかの実装形態では、電子インデックスは、サブ領域に関するデータを、サブ領域に割り当てられた固有の視覚的特徴(たとえば、固有のRGBまたはRGBA値)にマッピングする。このようにして、ユーザが、サブ領域における画像、たとえば、サブ領域に関するx-y座標または固有の視覚的特徴のうちの1つにおける画像とインタラクションするとき、サブ領域に関するデータは、インデックスから取得され、ユーザに提示されることが可能である。
【0039】
ファイル圧縮器129は、ネットワーク130を介するより速い転送およびクライアントデバイス150のユーザへのより速いレンダリングのために、マップの画像を表す画像ファイルを圧縮することができる。いくつかの実装形態では、ファイル圧縮器129は、画像内に描画された各サブ領域に対して選択された固有の視覚的特徴を使用して画像ファイルを圧縮する。たとえば、各サブ領域に関する固有の視覚的特徴は、各サブ領域に割り当てられた固有の色であってもよい。この例では、ファイル圧縮器129は、各特定のサブ領域に関する画像領域にそのサブ領域の固有の色を割り当てることによって画像ファイルを圧縮することができる。このようにして、画像ファイルは、各サブ領域について、サブ領域に対応するx-y座標と、サブ領域に関するRGBカラー値とを記憶するだけでよい。クライアントデバイス150のアプリケーション(たとえば、ウェブブラウザ)は、クライアントデバイス150においてマップの画像をレンダリングするために、各サブ領域に関するx-y座標と、各サブ領域に関する固有のRGB色とを使用することができる。
【0040】
ファイル圧縮器129は、圧縮画像ファイルと、インデックス生成器128によって生成された電子インデックスとを、フロントエンドサーバ111に提供する。次に、フロントエンドサーバは、画像ファイルとインデックスとをクライアントデバイス150に提供する。クライアントデバイス150のマップビューア155は次いで、インタラクティブマップユーザインターフェースにおいて、画像ファイルによって表されるマップの画像をレンダリングすることができる。
【0041】
フロントエンドサーバ111はまた、クライアントデバイス150にマップの画像との特定のユーザインタラクションに応答して特定の動作を実行させるコード、ルーチン、またはスクリプトをクライアントデバイス150に提供することができる。たとえば、スクリプトは、ユーザが特定のサブ領域に対応する画像の位置の上にポインタ(たとえば、マウスカーソル)をホバーさせることに応答して、特定のサブ領域に関連したデータを取得しかつ提示するために、クライアントデバイス150に電子インデックスにアクセスさせてもよい。たとえば、ユーザが特定のサブ領域上にポインタをホバーさせた場合、クライアントデバイス150は、電子インデックスから特定のサブ領域に関するデータを取得し、かつデータをクライアントデバイス150のユーザに提示することができる。クライアントデバイス150は、地図の画像に関するユーザインタラクションの位置に基づいてデータを取得するサブ領域を識別することができる。たとえば、クライアントデバイス150は、ホバーイベント(たとえば、少なくともしきい値時間量の間同じ位置に留まるポインタ)の間にポインタのx-y座標を検出し、検出されたx-y座標に対応する電子インデックスからデータを取得することができる。別の例では、クライアントデバイス150は、ホバーイベントの間にポインタの位置における画像の色を判定し、色に対応する電子インデックスからデータを取得することができる。
【0042】
いくつかの実装形態では、マップユーザインターフェース生成器120は、マップの2つの画像を生成する。第1の画像は、マップレンダリングサーバによってレンダリングされたマップの画像であってもよい。たとえば、第1の画像は、任意の道路、水域、地形のタイプに関する色などを用いてレンダリングされたマップを描画してもよい。第2の画像は、特定のサブ領域に対して特定のRGB色を有する画像であってもよい。この例では、第2の画像は、第1の画像の上のオーバレイであってもよいが、クライアントデバイス150のユーザには見えない。代わりに、第2の画像は、上記で説明したように、画像内に描画されたサブ領域にユーザインタラクションの位置をマッピングするために使用されてもよい。このようにして、マップは、レンダリング速度およびネットワーク帯域幅消費の改善を実現しながら、マッピングサービス122によって典型的に提供されるマップと同じに見えることができる。
【0043】
いくつかの実装形態では、マップユーザインターフェース生成器120は、インタラクティブマップユーザインターフェースに対する要求に応答して、マップの追加の画像とインデックスとを生成し、追加の画像およびインデックスの各々をクライアントデバイス150に提供する。たとえば、要求は、複数のサブ領域を含む特定の領域を指定してもよい。この例では、この例では、マップユーザインターフェース生成器120は、各サブ領域に関するマップの画像と、各サブ領域に関する電子インデックスとを生成してもよい。特定のサブ領域の画像は、特定のサブ領域のサブ領域を描画してもよい。同様に、特定のサブ領域に関する電子インデックスは、特定のサブ領域の各サブ領域に関するデータを含んでもよい。
【0044】
マップユーザインターフェース生成器120は、要求に応答して生成された元の画像と共に、または元の画像がクライアントデバイス150に送信された後に、追加の画像と電子インデックスとをクライアントデバイス150に送信することができる。クライアントデバイス150は、クライアントデバイス150のキャッシュ内に追加の画像と電子インデックスとを記憶することができる。クライアントデバイス150は、元の画像(または別の画像)を含むインタラクティブマップユーザインターフェースとのユーザインタラクションに応答して追加の画像を提示することができる。たとえば、ユーザは、元の画像によって描画された特定のサブ領域を選択してもよい。これに応答して、クライアントデバイス150は、データ管理システム110から新しいインタラクティブマップユーザインターフェースを要求することなく、キャッシュから選択されたサブ領域の画像を取得し、かつ画像を提示することができる。このようにして、サブ領域の詳細なマップは、はるかにより迅速にレンダリングされることが可能であり、ネットワークトラフィックは、低減されることが可能である。
【0045】
図2は、例示的なインタラクティブマップユーザインターフェース210のスクリーンショット200である。この例では、インタラクティブマップユーザインターフェース210は、ウェブブラウザにおいて提示される。いくつかの実装形態では、インタラクティブマップユーザインターフェース210は、別のアプリケーションプログラム、たとえば、ネイティブアプリケーションによって提示される。
【0046】
例示的なインタラクティブマップユーザインターフェース210は、特定の領域のマップの画像220を含む。この例では、マップの画像220は、いくつかの南東部の州を描画する。各州は、南東領域のサブ領域である。
図2には示されていないが、各州は、その州に固有の視覚的特徴を含むことができる。たとえば、視覚的特徴は、色(たとえば、RGBカラーモデルに基づく)、シェーディング、ハッチング、色強度、または異なる州を区別する何らかの他の適切な視覚的特徴であってもよい。特定の例では、ジョージア州は、緑色であってもよく、アラバマ州は、青色であってもよい。別の例では、各州は、同じ基本色であってもよい。しかしながら、各州は、異なる強度、濃淡、または明るさのその色であってもよい。たとえば、各州は、異なる濃淡の青色であってもよい。
【0047】
各州に関する視覚的特徴は、各州に対応するデータに基づいてもよい。たとえば、インタラクティブマップユーザインターフェース210は、各州について、その州における特定のコンテンツの提示から生じるコンバージョン数を提示してもよい。この例では、各州の領域は、色の濃淡が各州のコンバージョン数に基づいている同じ色で提示されてもよい。たとえば、たとえば、最もコンバージョン数が多い州は、最も暗くてもよく、コンバージョンが最も少ない州は、最も明るくてもよい。
【0048】
各州に関するデータは、データおよび視覚的特徴を各州にマッピングする電子インデックス内に記憶されることが可能である。ユーザが、たとえば、カーソルを州の上にホバーさせるか、州を選択することによって州とインタラクションするとき、その州に関するデータが提示されることが可能である。たとえば、ジョージア州は、カーソル230によってホバーされている。それに応答して、コンテンツアイテムがジョージア州内に位置するデバイス上に提示された結果として生じたコンテンツアイテムに関するコンバージョン数が、オーバレイ240内に提示されている。オーバレイ240は、画像220の上に提示される。特に、オーバレイ240は、画像220内のジョージア州の上に提示される。
【0049】
いくつかの実装形態では、第1のタイプのユーザインタラクションが、画像220の上へのデータの提示を引き起こしてもよく、第2のタイプのユーザインタラクションが、異なるマップをインタラクティブマップユーザインターフェース210内に提示させてもよい。たとえば、州の上へのホバーは、州に関するデータを州の上のオーバレイ内に提示させてもよい。加えて、たとえば、州上でクリックすることによる州の選択が州の詳細マップを提示させてもよい。たとえば、ジョージア州が選択された場合、ジョージア州のサブ領域を描画するジョージア州のマップが提示されてもよい。州のビューのサブ領域は、郡、市、市外局番、郵便番号、またはより大きい領域をセグメント化する他の方法であってもよい。
【0050】
いくつかの実装形態では、選択の粒度レベルは、州が選択された時間としてインタラクティブマップユーザインターフェースのズームレベルに基づいてもよい。たとえば、ズームレベルがしきい値よりも大きい、たとえば、100%よりも大きい場合、選択は、選択が生じた画像内の位置に対応する州内の郡、市、郵便番号、または市外局番であるとみなされてもよい。この例では、インタラクティブマップユーザインターフェース210は、選択された郡、市、郵便番号、または市外局番のマップの画像を提示するように更新されてもよい。ズームレベルがしきい値未満、たとえば、100%未満である場合、選択は、州全体であるとみなされてもよい。この例では、インタラクティブマップユーザインターフェース210は、選択された州のマップの画像を提示するように更新されてもよい。
【0051】
いくつかの実装形態では、州の選択(または別のタイプのユーザインタラクション)は、ユーザがデータを入力または変更できるユーザインターフェースを提示させる。たとえば、州の選択は、ユーザがコンテンツ項目に対する入札(bid)を修正もしくは入力すること、コンテンツアイテムが配信されるキーワードを選択すること、または別の適切なパラメータを入力することを可能にするオーバレイを提示させてもよい。たとえば、ユーザがジョージア州を選択した後に入札を変更した場合、入札は、ジョージア州内に位置するクライアントデバイス上にコンテンツアイテムを提示させるかどうかを判定する際に使用されてもよい。
【0052】
いくつかの実装形態では、州が特定のキャンペーンのために提示されている間の州(たとえば、他のサブ領域)の選択は、キャンペーンに関するアクティブ状態と非アクティブ状態との間のトグルをもたらす。たとえば、州がキャンペーンに対してアクティブではない(たとえば、キャンペーンに関するコンテンツアイテムが州内に位置するクライアントデバイスに提供される資格がない)場合、州の選択は、州の状態をキャンペーンのためのアクティブ状態(たとえば、コンテンツアイテムは、州内に位置するクライアントデバイスに提供される資格がある)に切り替えてもよい。この例では、クライアントデバイスは、選択およびデータ管理システム110に応答して、州がキャンペーンに対して切り替えられたことを指定するデータを提供する。それに応答して、データ管理システム110は、州に関する状態の変化に基づいてキャンペーンに関する配信基準を更新してもよい。
【0053】
図3は、インタラクティブマップユーザインターフェースを提供するための例示的なプロセス300のフローチャートである。プロセス300の動作は、たとえば、
図1のデータ管理システム110のような1つまたは複数のデータ処理装置によって実施されることが可能である。プロセス300はまた、コンピュータ記憶媒体上に記憶された命令によって実施されることが可能であり、データ処理装置による命令の実行は、データ処理装置にプロセス300の動作を実行させる。
【0054】
インタラクティブマップユーザインターフェースの提示に対する要求が受信される(302)。たとえば、クライアントデバイスが、特定の地理的領域を描画するインタラクティブマップユーザインターフェースに対する要求を提出してもよい。要求はまた、クライアントデバイスのユーザが見たいと思う特定の地理的領域に関連したデータを指定してもよい。たとえば、コンテンツアイテムが南アメリカ内に位置するデバイスにおいて提示されるとき、要求は、南アメリカの地理的位置と、特定のコンテンツアイテムに関する選択データとを指定してもよい。
【0055】
特定の領域のマップが、マッピングサービスを使用してレンダリングされる(304)。たとえば、上記で説明したように、マップクライアントは、マップキャンバスを生成し、キャンバス上にマップファイルを編成し、マップタイルの上にオーバレイを配置し、マップ上に他のマップデータを配置し、たとえば、ディスプレイにおいて、またはメモリ内にマップをレンダリングするために、マッピングサービスとインタラクションすることができる。レンダリングは、特定の領域のキャンバスを生成することと、マップを生成するために使用されるプログラミング要素(たとえば、スクリプト)およびグラフィック要素(たとえば、マップタイル、オーバレイなど)を配置することとを含むことができる。
【0056】
レンダリングされたマップの画像を表す画像ファイルが生成される(306)。たとえば、レンダリングされたマップの画像は、レンダリングされたマップを提示しているディスプレイのスクリーンショットを撮影することによってキャプチャされてもよい。次いで、キャプチャされた画像を表す画像ファイルが生成される。画像ファイルは、PNG、GIF、JPEG、または他の適切な画像ファイルフォーマットであってもよい。
【0057】
1つまたは複数のサブ領域が画像内で検出される(308)。たとえば、画像内の境界が、境界検出技法を使用して検出されてもよい。境界間の形状は次いで、サブ領域を識別するために、特定の地理的領域の既知のサブ領域の形状と比較されることが可能である。
【0058】
異なる視覚的特徴が各サブ領域に割り当てられる(310)。たとえば、異なる色が各サブ領域に割り当てられてもよい。色は、RGBモデルまたは別の適切なコンピュータ可読カラーモデルに基づいてもよい。別の例では、視覚的特徴は、異なるシェーディング、ハッチング、色強度、または何らかの他の適切な視覚的特徴であってもよい。
【0059】
電子インデックスが生成される(312)。電子インデックスは、画像内の各位置を、位置を含む対応するサブ領域にマッピングすることができる。電子インデックスはまた、各サブ領域をサブ領域に関連したデータにマッピングすることができる。たとえば、インタラクティブマップユーザインターフェースは、サブ領域に関連した特定のデータを提示するように要求されてもよい。各サブ領域に関する特定のデータは、電子インデックス内に含まれることが可能である。
【0060】
いくつかの実装形態では、電子インデックスは、各位置x-y座標をその対応するサブ領域にマッピングする。いくつかの実装形態では、電子インデックスは、視覚的特徴をサブ領域にマッピングする。たとえば、電子インデックスは、各サブ領域をその固有のRGB色にマッピングしてもよい。
【0061】
クライアントデバイスのユーザインターフェースが画像を表すように構成される(314)。たとえば、画像の提示を引き起こすデータがクライアントデバイスに提供されてもよい。このデータは、画像を表す画像ファイルと、電子インデックスと、クライアントデバイスに画像を提示させるコード(たとえば、ルーチンまたはスクリプト)とを含むことができる。このデータは、異なるサブ領域の各々を異なるサブ領域に対応する異なる視覚的特徴に従って提示しながら画像を提示させてもよい。たとえば、各サブ領域は、そのRGB色において提示されてもよい。いくつかの実装形態では、画像を表す画像ファイルは、画像ファイルをクライアントデバイスに送信する前に圧縮されてもよい。画像ファイルを圧縮するための例示的なプロセスを
図4に示し、以下に説明する。
【0062】
クライアントデバイスは、画像とのユーザインタラクションに応答して電子インデックスにアクセスすることができる。たとえば、ユーザが特定のサブ領域の位置の上にポインタをホバーさせた場合、クライアントデバイスは、画像内のホバーの位置(たとえば、x-y座標)を検出することができる。クライアントデバイスは次いで、サブ領域がホバーされていると判定するために電子インデックスにアクセスし、電子インデックスからサブ領域に関するデータを取り出すことができる。クライアントデバイスは次いで、ユーザインターフェース内に、たとえば、ユーザインタラクションを受信したサブ領域の上に、取り出されたデータを提示することができる。
【0063】
クライアントデバイスに提供されたデータは、特定のユーザインタラクションに応答してクライアントデバイスに他の動作を実行させることができる。たとえば、クライアントデバイスは、特定のサブ領域における画像の選択に応答して、特定のサブ領域に関するキャンペーンのアクティブ/非アクティブ状態を切り替えてもよい。この例では、スクリプトが、クライアントデバイスに、特定のサブ領域のアクティブ/非アクティブ状態のトグルを指定するデータをコンテンツ配信システムに送信させてもよい。
【0064】
別の例では、特定のサブ領域の選択が、クライアントデバイスに特定のサブ領域のマップを要求させてもよい。この例では、スクリプトが、クライアントデバイスに、特定のサブ領域の画像を表す画像ファイルがキャッシュ内に記憶されているかどうかを判定するために、そのキャッシュにアクセスさせてもよい。そうである場合、クライアントデバイスは、キャッシュから画像ファイルを取得し、ユーザインターフェース内の特定のサブ領域の画像を提示することができる。そうでない場合、スクリプトは、クライアントデバイスに特定のサブ領域のマップの画像を要求させることができる。
【0065】
図4は、画像を圧縮するための例示的なプロセス400のフローチャートである。プロセス400の動作は、たとえば、
図1のファイル圧縮器129のような1つまたは複数の処理装置によって実施されることが可能である。プロセス400はまた、コンピュータ記憶媒体上に記憶された命令によって実施されることが可能であり、データ処理装置による命令の実行は、データ処理装置にプロセス400の動作を実行させる。
【0066】
画像ファイルが受信される(402)。画像ファイルは、特定の領域の画像を表してもよく、特定の領域のサブ領域を描画してもよい。画像ファイルは、PNG、GIF、JPEG、または他の適切な画像ファイルフォーマットであってもよい。
【0067】
複数の異なるサブ領域の各々に関する画像内の位置を指定するデータが受信される(404)。たとえば、データは、各サブ領域について、各サブ領域に対応する画像内のx-y座標(またはx-y座標の範囲)を指定してもよい。
【0068】
異なる色が各サブ領域について識別される(406)。たとえば、各サブ領域は、RGBカラーモデルに基づいて異なる色が割り当てられてもよい。
【0069】
画像ファイルが圧縮される(408)。画像ファイルは、各サブ領域の位置と各サブ領域に割り当てられた色とに基づいて圧縮される。たとえば、画像ファイルは、各サブ領域について、サブ領域に割り当てられた色とその対応する位置とを記憶してもよい。このように画像を圧縮することは、画像が単色で色付けされたサブ領域を含むとき、サブ領域が多色で色付けされた場合よりも少ないデータを使用して各サブ領域が画像ファイル内で表されることが可能であるので、はるかにより低いピクセルあたりのコスト(たとえば、表示ピクセルあたりの画像のデータサイズの点で)をもたらすことができる。
【0070】
このように画像ファイルを圧縮することによって、画像ファイルは、ネットワークを介し、非圧縮画像ファイルよりも少ない帯域幅を使用して、より迅速に送信されることが可能である。加えて、クライアントデバイスのGPUは、画像内の各位置の詳細データを含む非圧縮画像ファイルを提示することができるよりも迅速に圧縮画像ファイルを提示することができる。
【0071】
実施形態がコンテンツ配信管理システムのためのマップインターフェースを参照して一般的に説明されているが、主題は、データがユーザに提供される代替システムにおいて適用可能であり、コンテンツ配信管理に限定されないことが理解されよう。
【0072】
本明細書で説明される主題の実施形態および動作は、デジタル電子回路において、または本明細書において開示される構造およびそれらの構造的均等物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらのうちの1つもしくは複数の組み合わせにおいて実施されることが可能である。本明細書で説明される主題の実施形態は、データ処理装置による実行のため、またはデータ処理装置の動作を制御するためにコンピュータ記憶媒体上に符号化された1つまたは複数のコンピュータプログラム、すなわち、コンピュータプログラム命令の1つまたは複数のモジュールとして実装されることが可能である。代替的には、または加えて、プログラム命令は、データ処理装置による実行のための適切なレシーバ装置への送信のために情報を符号化するために生成された人工的に生成された伝搬信号、たとえば、機械生成された電気信号、光信号、または電磁信号において符号化されることが可能である。コンピュータ記憶媒体は、コンピュータ可読記憶媒体、コンピュータ可読基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらの1つもしくは複数の組み合わせであることができ、またはそれらの中に含まれることが可能である。さらに、コンピュータ記憶媒体は、伝搬信号ではないが、人工的に生成された伝搬信号内に符号化されたコンピュータプログラム命令のソースまたは宛先であることが可能である。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理的構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であることもでき、またはそれらの中に含まれることが可能である。
【0073】
本明細書で説明される動作は、1つもしくは複数のコンピュータ可読記憶デバイス上に記憶されるか、または他のソースから受信されたデータに対してデータ処理装置によって実行される命令として実装されることが可能である。
【0074】
「データ処理装置」という用語は、例として、プログラム可能なプロセッサ、コンピュータ、システムオンチップ、もしくは複数のそれら、または上記のものの組み合わせを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。本装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。本装置はまた、ハードウェアに加えて、問題のコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェアを構成するコード、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組み合わせを含むことができる。本装置および実行環境は、ウェブサービスインフラストラクチャ、分散コンピューティングインフラストラクチャおよびグリッドコンピューティングインフラストラクチャのような、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【0075】
(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)コンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、宣言型言語もしくは手続型言語を含む任意の形式のプログラミング言語において書かれることが可能であり、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他の単位として、を含む任意の形式において展開されることが可能である。コンピューティングプログラムは、ファイルシステム内のファイルに対応してもよいが、必ずしも対応する必要はない。プログラムは、他のプログラムもしくはデータ(たとえば、マークアップ言語文書内に記憶された1つもしくは複数のスクリプト)を保持するファイルの一部内、問題のプログラム専用の単一のファイル内、または複数の連携ファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル)内に記憶されることが可能である。コンピュータプログラムは、単一のコンピュータ上で、または1つのサイトにおいて配置されるかもしくは複数のサイトにわたって分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開されることが可能である。
【0076】
本明細書で説明されるプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによってアクションを実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なプロセッサによって実行されることが可能である。プロセスおよび論理フローはまた、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されることが可能であり、本装置はまた、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)として実装されることが可能である。
【0077】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方と、任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサとを含む。一般にプロセッサは、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から、命令とデータとを受信する。コンピュータの必須要素は、命令に従ってアクションを実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとである。一般に、コンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば磁気ディスク、光磁気ディスク、または光ディスクも含むか、またはそれらからデータを受信するか、もしくはそれらにデータを送信するか、もしくはその両方を行うように動作可能に結合される。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえばいくつか例を挙げると、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブル記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)内に組み込まれることが可能である。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCDROMおよびDVD-ROMを含む、すべての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完されることが可能であり、またはそれに組み込まれることが可能である。
【0078】
ユーザとのインタラクションを提供するために、本明細書で開示される主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、ユーザが入力をコンピュータに提供することができるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールとを有するコンピュータ上で実施されることが可能である。同様にユーザとのインタラクションを提供するために他の種類のデバイスが使用されることが可能であり、たとえばユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信されることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そこから文書を受信することによって、たとえばウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザとインタラクションすることができる。
【0079】
本明細書で説明される実施形態は、たとえばデータサーバとしてバックエンド構成要素と含み、たとえばたとえば、アプリケーションサーバとしてミドルウェア構成要素を含み、またはフロントエンド構成要素、たとえばユーザが本明細書で説明される主題の実装形態とインタラクションすることができるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ、もしくは、1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組み合わせを含むコンピューティングシステムにおいて実施されることが可能である。システムの構成要素は、任意の形式または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク("LAN")およびワイドエリアネットワーク("WAN")、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【0080】
コンピューティングシステムは、クライアントとサーバとを含むことができる。クライアントおよびサーバは、一般に互いに遠隔であり、典型的には通信ネットワークを介してインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムのおかげで生じる。いくつかの実施形態では、サーバは、データ(たとえば、HTMLページ)をクライアントデバイスに(たとえば、クライアントデバイスとインタラクションするユーザにデータを表示し、ユーザからユーザ入力を受信する目的のために)送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザインタラクションの結果)は、サーバにおいてクライアントデバイスから受信されることが可能である。
【0081】
本明細書は、多くの具体的な実装形態の詳細を含むが、これらは、任意の発明の範囲、または特許請求されてもよい発明の範囲に対する限定として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特有の特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書で説明される特定の特徴はまた、単一の実施形態において組み合わせて実装されることが可能である。逆に、単一の実施形態の文脈において説明される様々な特徴はまた、複数の実施形態において別々に、または任意の適切な部分的組み合わせにおいて実装されることが可能である。さらに、特徴は、特定の組み合わせにおいて作用するものとして上記で説明され、当初はそのように特許請求されている場合があるが、特許請求された組み合わせからの1つまたは複数の特徴は、場合によっては組み合わせから削除されることが可能であり、特許請求された組み合わせは、部分的組み合わせまたは部分的組み合わせの変形に向けられてもよい。
【0082】
同様に、動作は、特定の順序で図面に示されているが、これは、所望の結果を達成するために、そのような動作が示された特定の順序または逐次的な順序で実行されること、またはすべての図示された動作が実行されることを必要とするものとして理解されるべきではない。特定の状況では、マルチタスク処理および並列処理が有利な場合がある。さらに、上記で説明した様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されたプログラム構成要素およびシステムは、一般に単一のソフトウェア製品内に一緒に統合されるか、または複数のソフトウェア製品にパッケージ化されることが可能であることが理解されるべきである。
【0083】
したがって、主題の特定の実施形態について説明した。他の実施形態は、以下の特許請求の範囲内にある。場合によっては、特許請求の範囲内に列挙された動作は、異なる順序で実行されることが可能であり、依然として所望の結果を達成することができる。加えて、添付図面において記されたプロセスは、所望の結果を達成するために、示された特定の順序または逐次的な順序を必ずしも必要としない。特定の実装形態では、マルチタスク処理および並列処理が有利な場合がある。