(58)【調査した分野】(Int.Cl.,DB名)
1つまたは複数のその他のデータ処理装置を指定する要求データを受信するステップは、前記ユーザのインタラクションが報告されるべき前記1つまたは複数のその他のデータ処理装置のそれぞれに関する一意識別子を含む要求データを受信するステップを含む請求項1に記載の方法。
一意識別子を含む要求データを受信するステップは、前記コンテンツアイテムとインタラクションするために使用された特定のユーザデバイスを一意に特定する一意識別子を含む要求データを受信するステップを含む請求項2に記載の方法。
応答データを与えるステップは、前記一意識別子がユニフォームリソースロケータ(URL)に含まれる応答データを与えるステップをさらに含む請求項2に記載の方法。
報告データを与えるステップは、前記ユーザのインタラクションが報告されるべき前記1つまたは複数のその他のデータ処理装置のそれぞれに関する前記一意識別子を含む報告データを与えるステップを含む請求項2に記載の方法。
コンテンツアイテムのロケーションデータを与えるステップは、前記コンテンツアイテム要求に応答する前記コンテンツアイテムに関するユニフォームリソースロケータ(URL)に前記一意識別子が含まれるコンテンツアイテムのロケーションデータを与えるステップをさらに含む請求項8に記載の方法。
前記一意識別子を含むコンテンツアイテムのロケーションデータを与えるステップは、前記コンテンツアイテムのロケーションデータが与えられた特定のユーザデバイスを一意に特定する一意識別子を含むコンテンツアイテムのロケーションデータを与えるステップを含む請求項8に記載の方法。
1つまたは複数のその他のデータ処理装置を指定する要求データを受信する動作は、前記ユーザのインタラクションが報告されるべき前記1つまたは複数のその他のデータ処理装置のそれぞれに関する一意識別子を含む要求データを受信する動作を含む請求項11に記載のシステム。
一意識別子を含む要求データを受信する動作は、前記コンテンツアイテムとインタラクションするために使用された特定のユーザデバイスを一意に特定する一意識別子を含む要求データを受信する動作を含む請求項12に記載のシステム。
報告データを与える動作は、前記ユーザのインタラクションが報告されるべき前記1つまたは複数のその他のデータ処理装置のそれぞれに関する前記一意識別子を含む報告データを与える動作を含む請求項12に記載のシステム。
コンテンツアイテムのロケーションデータを与える動作は、前記コンテンツアイテム要求に応答する前記コンテンツアイテムに関するユニフォームリソースロケータ(URL)に前記一意識別子が含まれるコンテンツアイテムのロケーションデータを与える動作をさらに含む請求項18に記載のシステム。
前記一意識別子を含むコンテンツアイテムのロケーションデータを与える動作は、前記コンテンツアイテムのロケーションデータが与えられた特定のユーザデバイスを一意に特定する一意識別子を含むコンテンツアイテムのロケーションデータを与える動作を含む請求項18に記載のシステム。
【発明を実施するための形態】
【0018】
さまざまな図面における同様の参照番号および参照指示は、同様の要素を示す。
【0019】
インターネットを介して利用可能なリソースは、発行者からのコンテンツおよび広告主からのコンテンツを含み得る。例えば、ウェブページは、発行者からの発行者のコンテンツを、ウェブページ上の広告(アド(ad))と一緒に含む可能性がある。発行者のコンテンツは、発行者のサーバによって提供される可能性があり、アドは、広告サーバによって提供される可能性がある。発行者のサーバおよび広告サーバは、異なるサーバシステムである可能性がある。したがって、ウェブページがユーザデバイスにおいて表示されるとき、ウェブページは、複数の異なる者によって提供されたコンテンツを含む可能性がある。
【0020】
ウェブページと一緒に表示されるアドを提供または供給することは、複数の者の間の調整も含む可能性がある。例えば、ウェブページと一緒に表示するために選択されるアドは、アドを選択するために発行者が要求したアドサーバ(「発行者のアドサーバ」)によって選択される可能性がある。発行者のアドサーバによって選択される広告は、例えば、広告主のための広告の配信を管理する別のアドサーバ(「広告主のアドサーバ」)によってホストされる可能性がある。広告主は広告の配信に対して料金を払い、発行者は広告をその発行者のコンテンツと一緒に表示させることに対して対価を受け取るので、発行者のアドサーバおよび広告主のアドサーバのそれぞれは、広告とのユーザのインタラクションを追跡することができる。さらに、広告主(または発行者)は、ユーザインタラクションデータを収集し、ユーザインタラクションデータを分析して広告の実績(performance)についての情報を広告主に提供する広告分析サービスにオプトインしている可能性がある。したがって、さらなるサーバが、特定の広告とのユーザのインタラクションを追跡している可能性もある。
【0021】
複数の異なるサーバ(またはその他のデータ処理装置)によってユーザのインタラクションの追跡を容易にするために、広告とのユーザのインタラクションに応答して、ユーザのインタラクションが開始されたユーザデバイスは、ユーザのインタラクションを追跡しているサーバのそれぞれがユーザのインタラクションを記録することができるように各サーバにリダイレクトされる可能性がある。しかし、リダイレクトの回数が増えるにつれて、ユーザのインタラクションと要求されたリソースの表示との間のレイテンシーが大きくなる。加えて、ユーザデバイスがさらなるリダイレクトを実行するたびに、通信エラー(または別のエラー)が、要求されたリソースがユーザデバイスに提供されることを妨げる公算が大きくなる。さらに、増加したレイテンシーは、例えば、ユーザがリソースが正しくロードされていないと思う場合、またはユーザがリソースを待つよりも異なるウェブサイトにナビゲートすることを決断する場合、ユーザが通信の連鎖(communication chain)を中断する結果となる可能性がある。
【0022】
一部の実装において、ユーザデバイスが実行するリダイレクトの回数は、サーバのうちの1つ(または複数)に、ユーザのインタラクションについての情報を用いてその他のサーバのそれぞれ(または適切なサブセット)と連絡を取らせることによって削減され得る。例えば、以下でより詳細に説明されるように、コンテンツアイテムに関するユーザのインタラクションを追跡している各サーバが、特定の広告とのユーザのインタラクションが特定され得る一意識別子を与える。ユーザが特定の広告とインタラクションするとき、サーバのうちの1つ(例えば、ユーザデバイスに広告のコンテンツを提供したアドサーバ)が、ユーザデバイスを、広告が参照する(例えば、リンクする)ウェブページにリダイレクトし、その他のサーバのそれぞれにそれらのそれぞれの一意識別子を非同期で提供する可能性がある。そして今度は、サーバのそれぞれが、それらのサーバが与えた一意識別子を用いて、インタラクションされた広告、および広告とインタラクションするためにどのユーザデバイスが使用されたかを判定することができる。したがって、ユーザデバイスは、異なるサーバのそれぞれにリダイレクトされる必要がない。
【0023】
一部の実装においては、各アドインスタンス(ad instance)が、アドが表示される各ユーザに対してそれぞれの特定のアドに関する異なる一意識別子が使用されるようにして一意識別子を割り振られる可能性がある。一部の実装においては、各ユーザが、ユーザに対して表示される各アドに対して同じ一意識別子が使用されるようにして一意識別子を割り振られる可能性がある。一部の実装においては、一意識別子が、ランダムな部分と組み合わされる、各ユーザに対して一意である部分を含む可能性がある。
【0024】
以降の説明は、広告とのユーザのインタラクションの追跡について検討する。しかし、その他の種類のコンテンツアイテム(例えば、オーディオファイルおよびビデオファイル)とのユーザのインタラクションも、説明される方法と同様の方法で追跡され得る。加えて、用語「アドサーバ」および「サーバ」は、ユーザのインタラクションの追跡が実行され得るデータ処理装置を指して使用されるが、その他のデータ処理装置も使用され得る。
【0025】
図1は、オンラインコンテンツがユーザデバイスに配信される例示的な環境100の構成図である。例示的な環境100は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、またはそれらの組み合わせなどのネットワーク102を含む。ネットワーク102は、ウェブサイト104、ユーザデバイス106、広告主108、および広告管理システム110を接続する。例示的な環境100は、何千ものウェブサイト104、ユーザデバイス106、および広告主108を含み得る。
【0026】
ウェブサイト104は、ドメイン名に関連付けられ、1つまたは複数のサーバによってホストされる1つまたは複数のリソース105である。例示的なウェブサイトは、テキスト、画像、マルチメディアコンテンツ、およびスクリプトなどのプログラミング要素を含み得るハイパーテキストマークアップ言語(HTML)形式のウェブページの集合である。各ウェブサイト104は、ウェブサイト104を制御、管理、および/または所有する主体である発行者によって維持される。
【0027】
リソース105は、ネットワーク102を介して提供され得る任意のデータである。リソース105は、リソース105に関連付けられているリソースアドレスによって特定される。リソースは、ほんのいくつか例を挙げるとすれば、HTMLページ、ワープロ文書、ポータブルドキュメントフォーマット(PDF)文書、画像、ビデオ、およびフィードソース(feed source)を含む。リソースは、(ハイパーリンク内のメタ情報などの)埋め込み情報および/または(JavaScript(登録商標)スクリプトなどの)埋め込み命令を含む可能性がある語、句、画像、および音声などのコンテンツを含み得る。リソースで(またはリソースと一緒に)表示されるコンテンツの単位は、コンテンツアイテムと呼ばれる。
【0028】
ユーザデバイス106は、ユーザの制御下にあり、ネットワーク102を介してリソースを要求し、受信することができる電子デバイスである。例示的なユーザデバイス106は、パーソナルコンピュータ、モバイル通信デバイス、およびネットワーク102を介してデータを送受信することができるその他のデバイスを含む。概して、ユーザデバイス106は、ネットワーク102を介したデータの送受信を容易にするための、ウェブブラウザなどのユーザアプリケーションを含む。
【0029】
ユーザデバイス106は、ウェブサイト104からのリソース105を要求する。そして次に、リソース105を表すデータが、ユーザデバイス106によってリソース105を表示するためにユーザデバイス106に与えられ得る。リソース105を表すデータは、広告が表示され得るリソースの一部またはユーザディスプレイの一部(例えば、ポップアップウィンドウの表示位置またはウェブページのスロット内の表示位置)を指定するデータも含む可能性がある。リソースまたはユーザディスプレイのこれらの指定された部分は、広告スロットと呼ばれる。
【0030】
これらのリソース105の検索を容易にするために、環境100は、ウェブサイト104で発行者によって提供されるリソース105をクローリングし、インデックス付けすることによってリソース105を特定する検索システム112を含み得る。リソースについてのデータは、データが対応するリソース105に基づいてインデックス付けされる可能性がある。インデックス付けされ、任意でキャッシュされたリソース105の複製が、検索インデックス114に記憶される。
【0031】
ユーザデバイス106は、ネットワーク102を介して検索システム112に検索クエリ116を送ることができる。それに応答して、検索システム112は、検索インデックス114にアクセスして、検索クエリ116に適したリソースを特定する。検索システム112は、検索結果118の形態でリソースを特定し、検索結果ページ(すなわち、検索結果が表示されるリソース)で検索結果118をユーザデバイス106に返す。検索結果118は、特定の検索クエリに応答するリソースを特定し、リソースへのリンクを含む、検索システム112によって生成されたデータである。例示的な検索結果118は、ウェブページのタイトル、ウェブページから抽出されたテキストのスニペットまたは画像の一部、およびウェブページのユニフォームリソースロケータ(「URL」)を含み得る。検索結果ページは、広告が表示され得る1つまたは複数の広告スロットも含む可能性がある。
【0032】
リソース105または検索結果118がユーザデバイス106によって要求されるとき、広告管理システム110が、リソース105または検索結果118と一緒に提供されるべき広告の要求を受信する。広告管理システム110は、広告の要求(またはその他のコンテンツアイテムの要求)に応答する広告(またはその他のコンテンツアイテム)を選択するデータ処理装置である。例えば、広告管理システム110は、広告の要求に応答する広告を選択および/または配信することができる1つまたは複数のアドサーバを含む可能性がある。
【0033】
応答する広告の選択を容易にするために、広告の要求は、要求されたリソースまたは検索結果ページに対して定義され、広告管理システム110に与えられ得る広告スロットの特徴を含む可能性がある。例えば、広告スロットが定義されるリソースへの参照(例えば、URL)、広告スロットのサイズ、および/または広告スロットに表示するのにふさわしいメディアの種類が、広告管理システム110に与えられる可能性がある。同様に、要求されたリソースに関連付けられたキーワード(「リソースキーワード」)、または検索結果が要求される検索クエリ116も、リソースまたは検索クエリ116に適した広告の特定を容易にするために広告管理システム110に与えられる可能性がある。
【0034】
広告の要求に含まれるデータに基づいて、広告管理システム110は、要求に応答して提供するのにふさわしい広告(「ふさわしい広告(eligible advertisement)」)を選択する。例えば、ふさわしい広告は、広告スロットの特徴に合う特徴(例えば、サイズおよび/またはアスペクト比)を有し、指定されたリソースキーワードまたは検索クエリ116に適すると特定される広告を含み得る。
【0035】
ユーザに対して表示するために広告が選択された条件を表すデータと、広告(例えば、Ad1 ... Adi)の表示に応答してユーザによって行われた行為を表すユーザインタラクションデータ(例えば、Id1 ... Idn)とが、実績データストア119bなどのデータストアに記憶される可能性がある。
【0036】
例えば、実績データストア119bは、広告の表示をもたらした(例えば、リソースキーワードまたは検索クエリに一致した)対象設定キーワード(targeting keyword)を指定するデータと、対象設定キーワードに一致したリソースキーワードおよび/または検索クエリと、広告が現れたアドスロット(ad slot)と、アドスロットの特徴(例えば、位置およびサイズ)と、広告に適用された可能性がある任意の特別な特徴とを記憶し得る。広告に当てはめられ得る例示的な特徴は、画像と一緒に広告が表示されること、広告主のための異なるランディングページへの複数のリンク(例えば、ハイパーリンク)と一緒に(例えば、近くに)広告が表示されること、またはリンクの選択に応答して広告を広げ、広告に関連する追加の情報が見えるようにする(例えば、地図を見せる、ビデオクリップを表示する、または製品購入情報を提供する)リンクと一緒に広告が提供されることを含む。
【0037】
実績データストア119bは、表示された広告(またはその他のコンテンツアイテム)とのユーザのインタラクションを明示するユーザインタラクションデータも記憶する可能性がある。例えば、広告がユーザに対して表示されるとき、広告の印象を表すデータが、実績データストア119bに記憶される可能性がある。ユーザが表示された広告を選択する(すなわち、クリックする)とき、ユーザの広告の選択を表す選択データが、実績データストア119bに記憶される。
【0038】
図2Bを参照してより詳細に説明されるように、選択データは、広告によってリンクされているウェブページの要求に応答して記憶される。例えば、ユーザの広告の選択は、広告主によって(または広告主のために)提供されるウェブページ(「広告主のウェブページ」)の表示の要求を開始する可能性がある。しかし、広告主のウェブページの要求が広告主のウェブページをホストするサーバに送られる前に、要求は、記録され得るように、広告管理システムを通じてリダイレクトされる可能性がある。要求は、ユーザデバイスに関するクッキーを特定するデータを含む可能性があり、広告管理システム110は、クッキーからのデータを実績データストア119bに記憶する可能性がある。クッキーは、サーバによって提供され、および/またはユーザデバイスに記憶されるデータである可能性がある。サーバは、ユーザデバイスがサーバと通信するときにユーザデバイスからクッキーを取得することができる。
【0039】
本明細書で検討されるシステムがユーザについての個人情報を収集する場合、ユーザは、個人情報(例えば、ユーザのデモグラフィックス(demographics)、過去の広告の選択についての情報)を収集する可能性があるプログラムまたは特徴にオプトインする/からオプトアウトする機会を与えられる可能性がある。さらに、ユーザデータは、個人を特定できる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で匿名化される可能性がある。例えば、ユーザに関して個人を特定できる情報が判定できないように、ユーザの識別情報が匿名化および/もしくは暗号化される可能性があり、またはユーザの活動の情報が得られる場合は、ユーザの活動が(例えば、ユーザの大きなグループに)一般化される可能性がある。
【0040】
以下でより詳細に説明されるように、複数の異なる主体および/またはシステムがコンテンツアイテム(例えば、広告)とのユーザのインタラクションを追跡するとき、リソースを提供するサーバからのリソースが要求される前に複数回のリダイレクトが実行される可能性がある。したがって、コンテンツアイテムとのユーザのインタラクションと、コンテンツアイテムに関連付けられているリソースのユーザデバイスによる受信との間のレイテンシーが、発生するリダイレクトの回数に比例して増加する可能性がある。さらに、ネットワークエラー(または処理エラーなどの別のエラー)が発生する公算が、リダイレクトが起こるたびに大きくなり、したがって、リソースがユーザデバイスに提供される信頼性は、リソースをユーザデバイスに提供する前に発生するリダイレクトの回数に比例して低くなる。
【0041】
コンテンツアイテムの供給と、コンテンツアイテムとのユーザのインタラクションを追跡するための複数回のリダイレクトの使用とが、
図2Aおよび
図2Bを参照してより詳細に説明される。ユーザのインタラクションを追跡するために使用されるリダイレクトの回数を削減するための例示的なデータフローが、
図3を参照して説明され、削減された回数のリダイレクトを使用してユーザのインタラクションを追跡するための例示的なプロセスが、
図4および
図5を参照して説明される。
【0042】
図2Aは、リソースと一緒にコンテンツアイテムを提供し、コンテンツアイテムとのユーザのインタラクションを追跡するための例示的なデータフロー200のブロック図である。データフロー200は、ユーザデバイス106によるURL要求202の送信から始まる。要求に応答して、発行者のサーバ204 (例えば、要求に応答して発行者のリソースを提供するサーバ)が、ウェブページのデータ206をユーザデバイス106に提供することができる。ウェブページのデータ206は、ウェブページを表す(およびウェブページの表示をもたらす)データと、実行されるとユーザデバイス106にアド要求208 (例えば、リソースと一緒に表示されるべき広告の選択の要求)をアドサーバB 210 (例えば、ウェブページのデータ206によって表されるウェブページと一緒に表示するための広告を選択するサーバ)に送信させるコードの一部とを含む。アドサーバB 210は、
図1の広告管理システム110に含まれるか、または
図1の広告管理システム110とは独立して実装されるアドサーバ(または別のデータ処理装置)である可能性がある。
【0043】
図1を参照して上で説明されたように、アドサーバB 210は、アド要求208に含まれる情報を使用して、ウェブページ(すなわち、ウェブページのデータ206によって表されるウェブページ)と一緒に提供されるアドを選択する。例えば、アドサーバB 210は、アドを選択するためにユーザ(またはユーザが関連付けられているユーザのグループ)についてのサイコグラフィック情報(psychographic information)、デモグラフィック情報、またはその他の情報を使用することができる。一部の実装において、アドサーバB 210は、広告データストア212にアクセスして、アド要求208に含まれる情報に合う対象設定基準(targeting criteria)を有するアドを選択することができる。そして次に、アドサーバB 210は、アドロケーションデータ214をユーザデバイス106に提供する可能性がある。
【0044】
アドロケーションデータ214は、ユーザデバイス106が選択されたアドを取得することができるロケーション(例えば、URLまたは別のネットワークロケーション)を指定するデータである。例えば、アドロケーションデータ214は、ユーザデバイス106に、選択されたアドのコンテンツ(「アドコンテンツ」)を広告主のアドサーバD 218などの別のサーバに要求させる可能性がある。一部の実装において、アドロケーションデータ214は、ユーザデバイス106に、アドコンテンツ要求216 (「要求データ」とも呼ばれる)をアドサーバD 218に送信させる。アドコンテンツ要求216は、例えば、要求されている選択されたアドを特定する可能性がある。例えば、アドコンテンツ要求216は、選択されたアドを一意に特定する識別子を含む可能性がある。アドサーバD 218は、
図1の広告管理システム110に含まれるか、または
図1の広告管理システム110とは独立して実装されるアドサーバ(または別のデータ処理装置)である可能性がある。
【0045】
一部の実装において、アドサーバB 210によって提供されるアドロケーションデータ214は、選択されたアドとのユーザのインタラクションを追跡するためにアドサーバB 210によって使用されるインタラクション追跡データ(すなわち、ユーザのインタラクションが追跡されるコードの一部)を含む。例えば、アドサーバB 210は、選択された広告とのユーザのインタラクションに応答して、選択された広告がリンクするリソース(例えば、広告の広告主が広告をリンクしたリソース)を要求する前にユーザデバイス106がアドサーバB 210にリダイレクトされるようにするコードの一部をアドロケーションデータ214に含める可能性がある。アドサーバB 210のためのインタラクション追跡データは、アドコンテンツ要求216に含められる可能性もあり、および/または以下で説明されるようにアドサーバD 218 (または別のアドサーバ)によって提供される選択されたアドに関するアドコンテンツと一緒に含められる可能性もある。
【0046】
アドコンテンツ要求216を受信することに応答して、アドサーバD 218は、選択されたアドに関するアドコンテンツ220の位置を見つける。例えば、アドサーバD 218は、アドコンテンツ要求216に含められた識別子を使用してアドコンテンツ220を取得するためにアドコンテンツデータストア222にアクセスまたは問い合わせする可能性がある。そして次に、アドサーバD 218は、アドコンテンツ220をユーザデバイス106に提供する。ユーザデバイス106に提供されるアドコンテンツ220は、広告とのユーザのインタラクションに応答してユーザデバイス106に、広告が関連付けられているリソース(例えば、広告主のためのウェブページ、またはコンテンツ220によって参照される別のリソース)の要求を送信させるコードの一部を含む可能性がある。例えば、アドコンテンツ220は、選択された広告を出した広告主のためのウェブページのURLを指定する可能性があり、その結果、以下でより詳細に説明されるように、選択された広告とのユーザのインタラクションに応答して、ウェブページの要求が開始される。
【0047】
一部の実装において、アドサーバD 218は、アドコンテンツ220と一緒に、選択されたアドとのユーザのインタラクションを追跡するためにアドサーバD 218によって使用されるインタラクション追跡データを含める。例えば、アドサーバD 218は、選択された広告とのユーザのインタラクションに応答してユーザデバイス106がアドサーバD 218にリダイレクトされるようにするコードの一部をアドコンテンツ220に含める可能性がある。アドサーバD 218は、アドコンテンツ220と一緒に、アドサーバB 210のためのインタラクション追跡データも含める可能性がある。したがって、ユーザデバイス106に提供されるアドコンテンツ220は、アドサーバB 210とアドサーバD 218との両方のためのインタラクション追跡データを含む可能性があり、したがって、以下でより詳細に説明されるように、選択された広告とのユーザのインタラクションに応答して、ユーザデバイス106は、選択された広告がリンクするリソースが取得され得る発行者のサーバ(または別のサーバ)に振り向けられる前にアドサーバD 218およびアドサーバB 210にリダイレクトされる。
【0048】
図2Bは、複数回のリダイレクトを使用してユーザのインタラクション(例えば、ユーザの広告のクリック)を追跡するための例示的なデータフロー250のブロック図である。データフロー250は、ユーザが選択されたアドをクリックするときに、ユーザデバイス106によってアドサーバD 218にインタラクションデータ252が送信されることから始まる。アドサーバD 218へのインタラクションデータ252の送信は、例えば、アドサーバD 218がユーザデバイスに提供されたアドコンテンツ220に含めたインタラクション追跡データによってもたらされる可能性がある。
【0049】
インタラクションデータ252は、選択された広告(または別のコンテンツアイテム)とのユーザのインタラクションが発生したことを明示するデータである。インタラクションデータ252は、要求されたリソースのURLを指定するリソース要求を含む可能性がある。インタラクションデータ252は、選択された広告とのユーザのインタラクションを追跡する1つまたは複数の異なるサーバのためのインタラクション追跡データも含む可能性がある。
【0050】
インタラクションデータ252は、インタラクションの時間などの情報と、ユーザデバイス106上のクッキーなどのユーザデバイス106に関連する情報とを含む情報をアドサーバD 218に提供する。アドサーバD 218は、アドサーバD 218は、インタラクションデータ252をアドデータストア222に記憶し、リダイレクトデータ254 (例えば、ハイパーテキスト転送プロトコル(HTTP) 302ステータスコード)をユーザデバイス106に与える可能性がある。
【0051】
リダイレクトデータ254は、例えば、アドロケーションデータ214に含まれた(またはアドロケーションデータ214と一緒に提供された)インタラクション追跡データに基づいてユーザデバイス106をアドサーバB 210に振り向ける可能性がある。ユーザデバイス106は、インタラクションデータ252 (またはその他のデータ)をアドサーバB 210に与え、したがって、アドサーバB 210は選択されたアドとのユーザのインタラクションを知らされる。アドサーバB 210は、選択されたアドとのユーザのインタラクションを記録する。例えば、アドサーバB 210は、インタラクションデータ252および/またはユーザデバイス106についての情報をアドデータストア212などのデータストアに記憶する可能性がある。そして次に、アドサーバB 210は、リダイレクトデータ256をユーザデバイス106に提供する可能性がある。
【0052】
リダイレクトデータ256は、アドに関連付けられているリソース(例えば、広告主が広告をリンクしたウェブページ)をユーザデバイス106に提供することができる目的サーバ258にユーザデバイス106を振り向ける可能性がある。代替的に、リダイレクトデータ256は、ユーザデバイス106が目的サーバ258にリダイレクトされる前にユーザデバイス106をさらなるサーバ(例えば、選択されたアドとのユーザのインタラクションを追跡するさらなるサーバ)にリダイレクトする可能性がある。目的サーバ258にリダイレクトされることに応答して、ユーザデバイスは、インタラクションデータ252 (またはその一部)を目的サーバ258に送る可能性がある。
【0053】
広告のトラッキングがデータフロー250にしたがって実行されるとき、ユーザデバイス106は、選択されたアドに関連付けられたランディングページに到達する前に複数回のリダイレクトを経る可能性がある。リダイレクトの回数および順序は、この例示的なプロセスにおいて示されたリダイレクトの回数および順序とは異なる可能性がある。しかし、ユーザデバイス106の複数回のリダイレクトは、レイテンシーを増やし、ユーザがランディングページを見るためにより長く待つことを要求し、ネットワーク上のデバイス間の通信の途絶によってか、または誤っているもしくは古くなった目的のロケーションのリンクによってかのどちらかによりリダイレクトの連鎖が途切れる可能性を高める恐れがある。
【0054】
図3は、コンテンツアイテムとのユーザのインタラクションを追跡するために使用されるリダイレクトの回数を削減するための例示的なデータフロー300のブロック図である。データフロー300は、選択された広告とのユーザのインタラクションに応答してユーザデバイス106がインタラクションデータ252をアドサーバD 218に送ることから始まる。インタラクションデータ252を受信することに応答して、アドサーバD 218 (例えば、インタラクションデータ252を受信する最初のアドサーバおよび/またはユーザデバイスがアドコンテンツを受信したアドサーバ)がリダイレクトデータ302をユーザデバイス106に送信する。リダイレクトデータ302は、選択された広告に関連付けられているウェブページを要求するためにユーザデバイス106を目的サーバ258に振り向ける。その他のアドサーバ(またはその他のデータ処理装置)が選択された広告とのユーザのインタラクションを追跡しているかどうかに関係なく、リダイレクトデータ302は、ウェブページを要求する前にユーザデバイスがその他のアドサーバ(例えば、アドサーバB 210)を通じてリダイレクトされることを必要としない。したがって、ユーザデバイス106は、ただ1回のリダイレクトの後に、要求されたウェブページを提供され得る。
【0055】
インタラクションデータ252は、例えば、アドデータストア222に記録される。そして次に、アドサーバD 218が、報告データ260をアドサーバB 210 (および/または選択された広告とのユーザのインタラクションを追跡している任意のその他のアドサーバもしくはその他のデータ処理装置)に非同期に提供する。以下でより詳細に説明されるように、報告データ260は、ユーザのインタラクションをその他の処理装置に伝えるデータである。したがって、アドサーバB 210も、ユーザデバイス106による選択された広告とのインタラクションを記録することができる。
【0056】
アドサーバD 218は、選択されたアドに関連付けられている一意のおよび/または暗号化された識別子を使用することによってアドサーバB 210に対してユーザデバイス106を特定することができる。一意識別子は、例えば、選択された広告が要求されたときにアドサーバB 210によって与えられた識別子である可能性がある。例えば、アドサーバB 210は、アドコンテンツ要求のURLに含まれる予約されたキー値のペアなどにより、アドロケーションデータをユーザデバイス106に提供するときに一意識別子をアドサーバD 218に提供することができる。予約されたキー値のペアは、例えば、以下でより詳細に説明されるように、アドサーバB 210を特定するキーと、アドサーバB 210が現在のアド要求に対して生成した一意IDを指定する値との組み合わせである可能性がある。そして次に、アドサーバD 218が、URL内のこの予約されたキー値のペアを特定し、URLに予約されたキー値のペアが含まれていることに基づいてユーザのインタラクションをアドサーバB 210に報告することができる。
【0057】
一部の実装において、アドサーバB 210は、それぞれの選択されたアド、および選択されたアドが選択されたそれぞれの要求が一意識別子に基づいて特定可能であるように、(アド要求ごとおよび/またはユーザごとに)それぞれの選択されたアドに対して異なる一意識別子を生成する。したがって、ユーザがアドとインタラクションし、アドサーバD 218がアドサーバB 210にアドに関連付けられた一意識別子を提供するとき、アドサーバBは、どのアドがクリックされたかと、どの要求に関してアドが選択されたかと、ひいては、どのユーザがアドとインタラクションしたかとを特定することができる。このように、ユーザを特定する情報は、アドサーバB 210によって生成される一意識別子に含められる必要がない。
【0058】
代替的にまたは追加的に、アドサーバB 210およびアドサーバD 218は、より少ない(例えば、1つだけの)リダイレクトをやはり必要としながら広告(またはその他のコンテンツアイテム)とのユーザのインタラクションを追跡するためにクッキー交換システムを使用する。例えば、共有される一意識別子(例えば、匿名の暗号化された識別子)のデータベースが、ユーザのインタラクションの追跡を容易にするために設置される可能性がある。共有される一意識別子のデータベースは、各サーバが、共有される一意識別子をサーバによって生成されたサーバに固有のユーザ識別子と突き合わせることを可能にし、したがって、特定のアドサーバが共有される一意識別子を別のアドサーバから受信するとき、特定のアドサーバは、特定のアドサーバがユーザデバイスのために生成したサーバに固有のユーザ識別子を特定することができる。一部の実装において、共有される一意識別子は、クッキーのハッシュされたクッキー識別子(例えば、ハッシュされたユーザに固有の識別子)および/またはクッキーの暗号化された形態である可能性があり、暗号化キーは秘匿される。
【0059】
クッキー交換システムの使用を示すために、アドサーバD 218が、アドサーバD 218によって前に生成されたサーバに固有のクッキーを含むインタラクションデータを受信するものとする。この例においては、アドサーバD 218は、選択されたアドとのユーザのインタラクションをアドサーバB 210に知らせるために、アドサーバB 210にインタラクションデータおよび共有された一意識別子(例えば、暗号化されたクッキー)を提供することができる。したがって、アドサーバD 218は、サーバに固有のクッキーに含まれた情報のいずれかをアドサーバB 210に与える必要がなく、それにより、ユーザのプライバシーを保護する。
【0060】
一部の実装において、アドサーバB 210は、クッキー(またはクッキーによって与えられる情報の適切なサブセット)の暗号化された形態をアドサーバD 218に提供する可能性がある。クッキーの暗号化された形態は、識別子として機能することができるが、アドサーバD 218およびアドサーバB 210は、識別子を記憶する必要がない。さらに言えば、アドサーバD 218が、選択されたアドとのユーザのインタラクションが行われるときに、クッキーの暗号化された形態をアドサーバB 210に提供する可能性がある。アドサーバB 210は、クッキーの暗号化された形態を受信し、復号して、クッキーそのものを取り出すことができる。次いで、アドサーバB 210は、クッキーを使用して、インタラクションデータをユーザと一緒に記録することができる。
【0061】
一部の実装において、ユーザデバイス106と、アドサーバB 210と、アドサーバD 218との間のインタラクションは、
図2Aに示された例示的なインタラクションとは異なる順序で行われる可能性がある。例えば、ユーザデバイス106は、アド要求のために発行者のサーバ204によってアドサーバD 218に振り向けられる可能性がある。アドサーバD 218は、アドコンテンツを受信するためにユーザデバイス106をアドサーバB 210に振り向けるアドロケーションデータなどの応答を提供する可能性がある。そのような実装においては、ユーザが選択されたアドとインタラクションするとき、ユーザデバイス106は、インタラクションデータを非同期でアドサーバB 210に提供するようにアドサーバD 218に指示する一意識別子をアドサーバD 218に与える可能性がある。
【0062】
一部の実装においては、複数のアドサーバが、アドの供給のためのインタラクションの連鎖に含まれる可能性がある。インタラクションの連鎖は、選択されたアドとユーザがインタラクションするとその他のアドサーバに非同期でインタラクションデータを提供するアドサーバの前後両方のアドサーバを含み得る。
【0063】
一部の実装においては、各アドインスタンスが、アドが表示される各ユーザに対して任意の特定のアドに関する異なる一意識別子が使用されるようにして一意識別子を割り振られる可能性がある。一部の実装においては、各ユーザが、ユーザに対して表示される各アドに対して同じ一意識別子が使用されるようにして一意識別子を割り振られる可能性がある。
図4は、1回のリダイレクトを使用してユーザのインタラクションを追跡するための例示的なプロセス400の流れ図である。プロセス400は、例えば、
図1の広告管理システム110、ならびに/または
図2Aおよび
図2BのアドサーバD 218によって実施され得る。一部の実装において、広告管理システム110および/またはアドサーバD 218は、それぞれ、プロセス400の行為を実行するように構成される1つまたは複数のプロセッサを含むデータ処理装置である。一部の実装においては、コンピュータ可読媒体が、コンピュータによって実行されるときにプロセス400の行為をコンピュータに実行させる命令を含む可能性がある。
【0064】
コンテンツアイテムが要求されたことを示す要求データが、受信される(402)。一部の実装において、要求データは、コンテンツアイテムとのユーザのインタラクションが報告されるべき1つまたは複数のその他のデータ処理装置(例えば、サーバシステム)を指定する。例えば、
図3を参照すると、要求データは、アドサーバD 218によって受信される可能性があり、広告とのユーザのインタラクションがアドサーバB 210に報告されるべきであることを指定するデータを含む可能性がある。
【0065】
ユーザのインタラクションが報告されるべき1つまたは複数のその他のデータ処理装置を指定するデータは、ユーザのインタラクションが報告されるべきそれぞれのデータ処理装置に関する一意識別子を指定する可能性がある。例えば、ユーザのインタラクションの情報が提供されるべき各データ処理装置は、それぞれのコンテンツアイテムの要求に対して一意識別子を生成する可能性があり、一意識別子は、ユーザデバイスから受信される要求データに含められる可能性がある。上述のように、一意識別子は、ユーザデバイスごとに生成される可能性もある。したがって、一意識別子の参照は、データ処理装置のそれぞれに、コンテンツアイテムとインタラクションするためにどのユーザデバイスが使用されたか、および/またはどのコンテンツ要求がユーザのインタラクションをもたらしたかを示すことができる。一部の実装においては、それぞれの一意識別子が、
図3を参照して説明された予約されたキー値のペアのように、コンテンツアイテムのURLに含められる可能性がある。
【0066】
要求されたコンテンツアイテムは、コンテンツアイテムとのユーザのインタラクションに応答して要求されるリソースへの参照を含む。一部の実装において、リソースは、コンテンツアイテム(例えば、広告)とのユーザのインタラクションに続いてユーザデバイスによって要求されるランディングページ(例えば、ウェブページ)である。ランディングページは、例えば、コンテンツアイテムによって広告されている製品またはサービスについてのさらなる情報を提供するウェブページである可能性がある。
【0067】
要求データに応答して、応答データが与えられる(404)。一部の実装において、応答データは、ユーザデバイスにおけるコンテンツアイテムの表示をもたらすデータを含む。例えば、応答データは、ウェブページで定義された広告スロットにおける広告の表示をもたらすデータを含む可能性がある。システムは、応答データをユーザデバイスに与え、したがって、コンテンツアイテムがウェブページと一緒に表示される。
【0068】
応答データは、コンテンツアイテムとのユーザのインタラクションに応答してリソースを要求するために使用されるURL (または別の有効なリンク)も含む可能性がある。例えば、URLは、リソースが取得され得るロケーションを含む可能性がある。加えて、URLは、コンテンツアイテムとのユーザのインタラクションが報告されるべきデータ処理装置のそれぞれを特定するキー値のペアと、データ処理装置がユーザがインタラクションしたコンテンツアイテムおよびコンテンツアイテムがインタラクションされたユーザデバイスを特定することができる一意識別子とを含む可能性がある。例えば、URL、www.example.com/click?redir=example.org¬ify=adserv_B:12345,adserv_C:56455は、ウェブページが取得され得るロケーション(例えば、www.example.org)と、コンテンツアイテムとのユーザのインタラクションが報告されるべき2つのアドサーバ(例えば、adserv_Bおよびadserv_C)とを含む可能性がある。例示的なURLは、それぞれのアドサーバがユーザがインタラクションしたコンテンツアイテムおよびコンテンツアイテムがインタラクションされたユーザデバイスを特定することができる一意識別子(例えば、12345および56455)も含む。
【0069】
インタラクションデータが受信される(406)。インタラクションデータは、コンテンツアイテムとのユーザのインタラクションが行われたことを明示する。例えば、コンテンツアイテムとのユーザのインタラクションに応答して、ユーザデバイスが、コンテンツアイテムがリンクされているリソースの要求を送る可能性がある。要求は、インタラクションデータと、クッキーなどのユーザデバイスに記憶される情報とを含む可能性がある。上述のように、受信されたインタラクションデータが記録される可能性がある。
【0070】
リダイレクトデータが、ユーザデバイスに与えられる(408)。リダイレクトデータは、ユーザデバイスがコンテンツアイテムがリンクされているリソース(例えば、広告主がコンテンツアイテムに関連付けたURLにあるリソース)にリダイレクトされるようにする。一部の実装において、リダイレクトデータは、さらなるリダイレクトなしに、ユーザデバイスにリソースを要求させる。一部の実装において、リダイレクトデータは、ユーザデバイスが、コンテンツアイテムとのユーザのインタラクションを追跡しているデータ処理装置のうちの一部にだけリダイレクトされるようにする。
【0071】
例えば、
図3を参照して、アドサーバB 210およびアドサーバD 218が、両方ともコンテンツアイテムとのユーザのインタラクションを追跡しているものとする。さらに、第3のサーバ(例えば、広告分析サーバ)も、コンテンツアイテムとのユーザのインタラクションを追跡しているものとする。この例においては、アドサーバD 218がインタラクションデータを受信するとき、アドサーバD 218は、いかなるさらなるリダイレクトもなしに、または1回の追加のリダイレクトだけで、ユーザデバイス106にリソースを要求させるリダイレクトデータを提供することができる。よって、リダイレクトデータが、ユーザデバイスがコンテンツアイテムとのユーザのインタラクションを追跡しているサーバのそれぞれにリダイレクトされることを防ぐことができる。したがって、サーバの少なくとも一部へのリダイレクトが省略されるので、ユーザのインタラクションと、リソースがユーザデバイスに提供されることとの間のレイテンシーが削減される。
【0072】
報告データが、その他のデータ処理装置に提供される(410)。報告データは、(リダイレクトデータに対して)非同期で提供される可能性があり、したがって、ユーザデバイスは、報告データがその他のデータ処理装置に提供されることとは独立してリソースを要求することができる。一部の実装においては、報告データは、
図2Bを参照して説明されたように一連の続いて起こるリダイレクトを通じてインタラクションデータを受信したであろうその他のデータ処理装置(例えば、アドサーバなどのその他のサーバ)に提供される。
【0073】
報告データは、コンテンツアイテムとのユーザのインタラクションが行われたことを明示するデータを含み得る。例えば、報告データは、インタラクションデータ、ならびに/またはユーザのインタラクションが行われたコンテンツアイテムおよび/もしくはユーザのインタラクションが行われたユーザデバイスを明示するためにさまざまなデータ処理装置によって提供された一意識別子を含む可能性がある。上述のように、一意識別子は、ユーザのプライバシーが守られるように生成され得る。システムは、ユーザがインタラクションしたコンテンツアイテムに一意識別子を与えた各データ処理装置にインタラクションデータを提供することができる。一部の実装においては、暗号化され共有された識別子が、コンテンツアイテムとのユーザのインタラクションを追跡していると特定されたその他のデータ処理装置のそれぞれに与えられる可能性がある。例えば、上述のように、クッキーに含まれる可能性があるその他のユーザデータをその他のデータ処理装置が利用できるようにすることなく、コンテンツアイテムとのユーザのインタラクションをその他のデータ処理装置に安全に伝えるために、クッキー交換システムが使用され得る。
【0074】
図5は、コンテンツアイテムとのユーザのインタラクションを追跡するための例示的なプロセス500の流れ図である。プロセス500は、追跡を実行しているデータ処理装置にユーザデバイスがリダイレクトされることを必要とせずにユーザのインタラクションを追跡することを容易にする。また、プロセス500は、データ処理装置がユーザデバイスにクッキーを置くことを必要とせずにユーザのインタラクションを追跡することを容易にする。
【0075】
プロセス500は、例えば、
図1の広告管理システム110、ならびに/または
図2Aおよび
図2BのアドサーバB 210によって実施され得る。一部の実装において、広告管理システム110および/またはアドサーバB 210は、それぞれ、プロセス500の行為を実行するように構成される1つまたは複数のプロセッサを含むデータ処理装置である。一部の実装においては、コンピュータ可読媒体が、コンピュータによって実行されるときにプロセス500の行為をコンピュータに実行させる命令を含む可能性がある。
【0076】
コンテンツアイテムの要求が、受信される(502)。コンテンツアイテムの要求は、ユーザデバイスによって要求されたリソースと一緒に表示するためのコンテンツアイテムの選択の要求である。例えば、
図2Aを参照して上で説明されたように、ユーザデバイスがウェブページの表示を要求するとき、アド要求が、広告サーバ(例えば、アドサーバB 210)に送られる可能性がある。アド要求は、広告スロットに与えられるべき広告の選択の要求である。
【0077】
コンテンツアイテム要求は、要求されたコンテンツアイテムが一緒に表示されるリソースの1つまたは複数の特徴を指定する。例えば、コンテンツアイテム要求は、コンテンツアイテムが表示されるべきウェブページについての情報、および/またはウェブページのコンテンツに適すると特定されたキーワードについての情報を含む可能性がある。要求データは、ユーザデバイスについての情報(例えば、ユーザデバイスを特定する一意識別子)、ならびに/または性別、年齢層、興味、地理的位置、およびその他の情報を含むデモグラフィック情報などのユーザについての情報も含む可能性がある。上述のように、ユーザ情報は、ユーザのプライバシーを保護するために匿名化および/または暗号化され得る。
【0078】
コンテンツアイテム要求に応答して、一意識別子が生成される(504)。一部の実装において、一意識別子は、コンテンツアイテム要求を一意に特定する準ランダムに選択された一連の数字および/もしくは文字または別の一意の文字列である可能性がある。例えば、一意識別子は、ユーザデバイスに関する一意識別子のハッシュ、および/またはコンテンツアイテム要求が受信された時間のハッシュである可能性がある。それぞれのコンテンツアイテム要求と、ひいてはコンテンツアイテム要求に関連するデータ(例えば、コンテンツアイテム要求を送ったユーザデバイスに関する一意識別子、および要求に応答して選択されたコンテンツアイテム)とが一意識別子を用いて特定され得るように、それぞれのコンテンツアイテム要求に対して異なる一意識別子が生成され得る。
【0079】
コンテンツアイテム要求に応答して、アドロケーションデータが提供される(506)。上述のように、アドロケーションデータは、コンテンツアイテム要求に基づいて選択されたコンテンツアイテム(「選択されたコンテンツアイテム」)のロケーション(例えば、URL)を指定する。一部の実装において、アドロケーションデータは、選択されたコンテンツアイテムとのユーザのインタラクションが一意識別子を用いて追跡され得るように、生成された一意識別子も含む。例えば、上述のように、一意識別子は、選択されたコンテンツアイテムに関するURLに付加される(または別の方法で含められる)可能性がある。アドロケーションデータは、コンテンツアイテム要求が受信されたユーザデバイスに提供され得る。
【0080】
一意識別子を含む報告データが、受信される(508)。報告データは、例えば、コンテンツアイテムとのインタラクションが行われたユーザデバイスとは異なるデータ処理装置から受信される可能性がある。一部の実装において、報告データは、ユーザデバイスにおける選択されたコンテンツアイテムの表示をもたらすデータをユーザデバイスに与えるサーバシステムから受信される可能性がある。例えば、
図2Aを参照すると、報告データは、アドコンテンツ220をユーザデバイスに提供したアドサーバD 218から受信される可能性がある。報告データは、ユーザデバイスから受信されるインタラクションデータを含む可能性がある。代替的に、報告データは、コンテンツアイテムとのユーザのインタラクションを追跡しているデータ処理装置によって与えられたただ1つのまたは複数の一意識別子を含む可能性がある。
【0081】
一部の実装において、報告データは、コンテンツアイテムとのユーザのインタラクションが行われたユーザデバイスに関する共有される識別子(例えば、暗号化された識別子)、および/またはユーザのインタラクションが行われたコンテンツアイテムを明示するデータを含む可能性がある。共有される識別子は、上述のように、共有される識別子のインデックスおよびサーバに固有のユーザ識別子を用いてサーバに固有のユーザ識別子にマッピングされ得る。
【0082】
コンテンツアイテムとのユーザのインタラクションが、記録される(510)。上述のように、各コンテンツアイテムは、コンテンツアイテムの要求に応答して生成された対応する一意識別子(すなわち、コンテンツアイテムが選択されたコンテンツアイテム要求に応答して生成された一意識別子)を有する可能性がある。したがって、ユーザがインタラクションした選択されたコンテンツアイテムと、ユーザのインタラクションが開始されたユーザデバイスについての情報とを特定するために、報告データが使用され得る。このように、ユーザのインタラクションは、コンテンツアイテムとのユーザのインタラクションを追跡している各データ処理装置にユーザデバイスをリダイレクトすることなく記憶され得る。
【0083】
図6は、上述のように、ユーザのインタラクションを追跡するために使用され得る例示的なコンピュータシステム600のブロック図である。システム600は、プロセッサ610、メモリ620、ストレージデバイス630、および入力/出力デバイス640を含む。コンポーネント610、620、630、および640のそれぞれは、例えば、システムバス650を用いて相互接続され得る。プロセッサ610は、システム600内で実行するための命令を処理することができる。1つの実装において、プロセッサ610は、シングルスレッドプロセッサである。別の実装において、プロセッサ610は、マルチスレッドプロセッサである。プロセッサ610は、メモリ620またはストレージデバイス630に記憶された命令を処理することができる。
【0084】
メモリ620は、システム600内で情報を記憶する。1つの実装において、メモリ620は、コンピュータ可読媒体である。1つの実装において、メモリ620は、揮発性メモリユニットである。別の実装において、メモリ620は、不揮発性メモリユニットである。
【0085】
ストレージデバイス630は、システム600に大容量ストレージを提供することができる。1つの実装において、ストレージデバイス630は、コンピュータ可読媒体である。さまざまな異なる実装において、ストレージデバイス630は、例えば、ハードディスクデバイス、光ディスクデバイス、または何らかのその他の大容量ストレージデバイスを含み得る。
【0086】
入力/出力デバイス640は、システム600に関する入力/出力動作を行う。1つの実装において、入力/出力デバイス640は、ネットワークインターフェースデバイス、例えばイーサネット(登録商標)カード、シリアル通信デバイス、例えばRS-232ポート、および/または無線インターフェースデバイス、例えば802.11カードのうちの1つまたは複数を含み得る。別の実装において、入力/出力デバイスは、入力データを受信し、その他の入力/出力デバイス、例えば、キーボード、プリンタ、およびディスプレイデバイス660に出力データを送信するように構成されたドライバデバイスを含み得る。しかし、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビクライアントデバイスなどのその他の実装が使用されてもよい。
【0087】
例示的な処理システムが
図6に示されたが、本明細書に記載の主題の実装および機能的動作は、本明細書で開示された構造およびそれらの構造的均等物を含む、その他の種類のデジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組み合わせで実装され得る。
【0088】
本明細書に記載の主題の実装および動作は、本明細書で開示された構造およびそれらの構造的均等物を含む、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組み合わせで実装され得る。本明細書に記載の主題の実装は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するためにコンピュータストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、例えば、機械によって生成された電気的信号、光学的信号、または電磁的信号に符号化され得る。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらの1つもしくは複数の組み合わせであるか、あるいはそれらに含まれる可能性がある。さらに、コンピュータストレージ媒体は伝播信号ではないが、コンピュータストレージ媒体は、人為的に生成された伝播信号に符号化されたコンピュータプログラム命令の送信元または送信先である可能性がある。コンピュータストレージ媒体は、1つもしくは複数の別個の物理コンポーネントもしくは媒体(例えば、複数のCD、ディスク、もしくはその他のストレージデバイス)であるか、またはそれらに含まれる可能性もある。
【0089】
本明細書に記載の動作は、1つもしくは複数のコンピュータ可読ストレージデバイスに記憶された、またはその他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装され得る。
【0090】
用語「データ処理装置」は、例として、1つのプログラム可能なプロセッサ、1台のコンピュータ、1つのシステムオンチップ、またはそれらの複数もしくは組み合わせを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用の論理回路、例えば、FPGA (フィールドプログラマブルゲートアレイ)またはASIC (特定用途向け集積回路)を含み得る。装置は、ハードウェアに加えて、問題にしているコンピュータプログラムのための実行環境を生成するコード、例えば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組み合わせを構成するコードも含み得る。装置および実行環境は、ウェブサービスインフラストラクチャ、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの、さまざまな異なるコンピューティングモデルインフラストラクチャを実現することができる。
【0091】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語もしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境での使用に適したその他の単位としての形態を含む任意の形態で配置され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応する可能性があるが、ファイルシステム内のファイルに対応することは必須ではない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部(例えば、マークアップ言語の文書に記憶された1つもしくは複数のスクリプト)、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル(例えば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続されている複数のコンピュータ上で実行されるように配置され得る。
【0092】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって行為を行う1つまたは複数のコンピュータプログラムを1つまたは複数のプログラム可能なプロセッサが実行することによって行われ得る。また、プロセスおよび論理フローは、専用の論理回路、例えば、FPGA (フィールドプログラマブルゲートアレイ)またはASIC (特定用途向け集積回路)によって実行される可能性があり、さらに、装置は、それらの専用の論理回路として実装される可能性がある。
【0093】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサとの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。概して、プロセッサは、読み出し専用メモリ、またはランダムアクセスメモリ、またはそれらの両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令にしたがって行為を実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概して、コンピュータは、データを記憶するための1つまたは複数の大容量ストレージデバイス、例えば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うためにそれらの大容量ストレージデバイスに動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを備えていなくてもよい。さらに、コンピュータは、別のデバイス、例えば、ほんのいくつか例を挙げるとすれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス(例えば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に組み込まれる可能性がある。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、例えば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれる可能性がある。
【0094】
ユーザとのインタラクションを行うために、本明細書に記載の主題の実装は、ユーザに対して情報を表示するためのディスプレイデバイス、例えば、CRT (ブラウン管)またはLCD (液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、例えば、マウスまたはトラックボールとを有するコンピュータ上に実装され得る。その他の種類のデバイスが、ユーザとのインタラクションを行うためにさらに使用される可能性があり、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックである可能性があり、ユーザからの入力は、音響、発話、または触覚による入力を含む任意の形態で受け取られる可能性がある。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そのデバイスから文書を受信することによって、例えば、ウェブブラウザから受信された要求に応答してユーザのクライアントデバイスのウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。
【0095】
本明細書は多くの具体的な実装の詳細を含むが、これらは、いかなる開示の範囲または特許請求され得るものの範囲に対する限定とも見なされるべきでなく、むしろ、特定の開示の特定の実装に固有の特徴の説明と見なされるべきである。別々の実装に関連して本明細書に記載されている特定の特徴が、単一の実装で組み合わせて実装される可能性もある。反対に、単一の実装に関連して説明されているさまざまな特徴が、複数の実装に別々に、または任意の適切な部分的組み合わせで実装される可能性もある。さらに、特徴は、特定の組み合わせで動作するように上で説明されている可能性があり、最初にそのように主張されてさえいる可能性があるが、主張された組み合わせの1つまたは複数の特徴は、場合によってはその組み合わせから削除される可能性があり、主張された組み合わせは、部分的組み合わせ、または部分的組み合わせの変形を対象とする可能性がある。
【0096】
同様に、動作が図中に特定の順序で示されているが、これは、そのような動作が、示された特定の順序で、もしくは逐次的順序で実行されること、または所望の結果を達成するために、示されたすべての動作が実行されることを必要とすると理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が、有利である可能性がある。さらに、上述の実装におけるさまざまなシステムコンポーネントの分割は、すべての実装においてそのような分割を必要とすると理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされる可能性があることが理解されるべきである。
【0097】
このように、主題の特定の実装が説明された。その他の実装は、添付の特許請求の範囲の範囲内にある。場合によっては、特許請求の範囲に挙げられた行為は、異なる順序で実行され、それでも所望の結果をもたらす可能性がある。加えて、添付の図面に示されたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序、または逐次的順序である必要はない。ある実装において、マルチタスクおよび並列処理が、有利である可能性がある。