特許第6643491号(P6643491)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パラブル インコーポレイテッドの特許一覧

特許6643491識別子のタイムスタンプベースのマッチング
<>
  • 特許6643491-識別子のタイムスタンプベースのマッチング 図000002
  • 特許6643491-識別子のタイムスタンプベースのマッチング 図000003
  • 特許6643491-識別子のタイムスタンプベースのマッチング 図000004
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6643491
(24)【登録日】2020年1月8日
(45)【発行日】2020年2月12日
(54)【発明の名称】識別子のタイムスタンプベースのマッチング
(51)【国際特許分類】
   G06F 13/00 20060101AFI20200130BHJP
   G06F 12/00 20060101ALI20200130BHJP
【FI】
   G06F13/00 353C
   G06F12/00
【請求項の数】20
【全頁数】19
(21)【出願番号】特願2018-534501(P2018-534501)
(86)(22)【出願日】2016年9月22日
(65)【公表番号】特表2018-530091(P2018-530091A)
(43)【公表日】2018年10月11日
(86)【国際出願番号】US2016053065
(87)【国際公開番号】WO2017053540
(87)【国際公開日】20170330
【審査請求日】2019年9月10日
(31)【優先権主張番号】14/861,993
(32)【優先日】2015年9月22日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】518097774
【氏名又は名称】パラブル インコーポレイテッド
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】グリーン、ジャスティン、イー.
【審査官】 木村 雅也
(56)【参考文献】
【文献】 特表2010−530566(JP,A)
【文献】 米国特許出願公開第2011/0087694(US,A1)
【文献】 米国特許第9083739(US,B1)
【文献】 米国特許出願公開第2013/0124309(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
識別子のタイムスタンプベースのマッチングによってデバイスアクティビティを追跡するための方法であって、
1以上のマップに関する情報を識別子サーバのメモリに格納するステップであって、各マップはコンピューティングデバイスに固有のデバイス識別子を前記コンピューティングデバイスによって使用されたブラウザに固有の少なくとも1つのブラウザ識別子に関連づけ、前記マップは前記デバイス識別子をインターネットプロトコル(IP)アドレスと稼働時間にさらにマップするものである、前記格納するステップと、
ブラウザを使用してウェブサイトをダウンロードしたアクティブなコンピューティングデバイスから通信ネットワークを介して送信された情報を受信するステップであって、前記ダウンロードされたウェブサイトは、前記アクティブなコンピューティングデバイスによって使用された前記ブラウザに固有のブラウザ識別子への参照を含む、前記受信するステップと、
前記受信された情報がタイムスタンプと前記アクティブなコンピューティングデバイスに対するIPアドレスを含むことを識別するステップであって、前記タイムスタンプは、最後の起動以来前記アクティブなコンピューティングデバイスが継続して動作している時間を計測した前記アクティブなコンピューティングデバイスの稼働時間を含む、前記識別するステップと、
前記受信された情報における前記タイムスタンプによって示された稼働時間と前記IPアドレスが、前記格納されたマップの一つにおけるデバイス識別子に関連づけられて格納された稼働時間とIPアドレスに一致することを識別するステップと
前記一致にもとづいて前記識別されたデバイス識別子に関連づけられた前記格納されたマップを更新するステップであって、前記更新された格納されたマップは、前記参照されたブラウザ識別子と、前記アクティブなコンピューティングデバイスによって以前使用された異なるブラウザに固有の少なくとも1つの他のブラウザ識別子とを含む、前記更新するステップとを含む、方法。
【請求項2】
前記タイムスタンプはさらにクロックスキューに関連づけられており、前記クロックスキューが前記コンピューティングデバイスに対応するかどうか判定するステップをさらに含む、請求項1の方法。
【請求項3】
前記更新されたマップは、前記識別されたデバイス識別子を複数のブラウザ識別子に関連づけ、前記複数のブラウザ識別子は前記参照されたブラウザ識別子を含む、請求項1の方法。
【請求項4】
前記参照されたブラウザ識別子を新しいブラウザ識別子に置き換えることによって前記参照されたブラウザ識別子を更新するステップをさらに含む、請求項3の方法。
【請求項5】
前記新しいブラウザ識別子を含むように前記識別されたデバイス識別子に関連づけられた前記格納されたマップを更新するステップをさらに含む、請求項4の方法。
【請求項6】
前記参照されたブラウザ識別子はさらに前記ダウンロードされたウェブサイトに固有の少なくとも1つの可変ブラウザ識別子に関連づけられており、前記新しいブラウザ識別子を前記少なくとも1つの可変ブラウザ識別子に関連づけるように前記格納されたマップを更新するステップをさらに含む、請求項5の方法。
【請求項7】
前記受信された情報はセッション識別子をさらに含み、前記受信されたセッション識別子がメモリに格納されたいずれかのセッション識別子に一致するかどうかを判定するステップをさらに含む、請求項1の方法。
【請求項8】
前記受信された情報はユーザエージェント識別子をさらに含み、前記受信されたユーザエージェント識別子がメモリに格納されたいずれかのユーザエージェント識別子に一致するかどうかを判定するステップをさらに含む、請求項1の方法。
【請求項9】
前記ユーザエージェント識別子は前記アクティブなコンピューティングデバイス上のアプリケーションに特有である、請求項8の方法。
【請求項10】
識別子のタイムスタンプベースのマッチングによってデバイスアクティビティを追跡するためのサーバシステムであって、
1以上のマップに関する情報を格納するメモリであって、各マップはコンピューティングデバイスに固有のデバイス識別子を前記コンピューティングデバイスによって使用されたブラウザに固有の少なくとも1つのブラウザ識別子に関連づけ、前記マップは前記デバイス識別子をインターネットプロトコル(IP)アドレスと稼働時間にさらにマップするものである、前記メモリと、
ブラウザを使用してウェブサイトをダウンロードしたアクティブなコンピューティングデバイスから通信ネットワークを介して送信された情報を受信する通信インタフェースであって、前記ダウンロードされたウェブサイトは、前記アクティブなコンピューティングデバイスによって使用された前記ブラウザに固有のブラウザ識別子への参照を含む、前記通信インタフェースと、
メモリに格納された命令を実行するプロセッサとを含み、プロセッサによる前記命令の実行は、
前記受信された情報がタイムスタンプと前記アクティブなコンピューティングデバイスに対するIPアドレスを含むことを識別する処理であって、前記タイムスタンプは、最後の起動以来前記アクティブなコンピューティングデバイスが継続して動作している時間を計測した前記アクティブなコンピューティングデバイスの稼働時間を含む、前記識別する処理と、
前記受信された情報における前記タイムスタンプによって示された稼働時間と前記IPアドレスが、前記格納されたマップの一つにおけるデバイス識別子に関連づけられて格納された稼働時間とIPアドレスに一致することを識別する処理と
前記一致にもとづいて前記識別されたデバイス識別子に関連づけられた前記格納されたマップを更新する処理であって、前記更新された格納されたマップは、前記参照されたブラウザ識別子と、前記アクティブなコンピューティングデバイスによって以前使用された異なるブラウザに固有の少なくとも1つの他のブラウザ識別子とを含む、前記更新する処理とを含む、システム。
【請求項11】
前記タイムスタンプはさらにクロックスキューに関連づけられており、前記プロセッサは、前記クロックスキューが前記コンピューティングデバイスに対応するかどうか判定する命令をさらに実行する、請求項10のシステム。
【請求項12】
前記格納されたマップは、前記識別されたデバイス識別子を複数のブラウザ識別子に関連づけ、前記複数のブラウザ識別子は前記参照されたブラウザ識別子を含む、請求項10のシステム。
【請求項13】
前記プロセッサは、前記参照されたブラウザ識別子を新しいブラウザ識別子に置き換えることによって前記参照されたブラウザ識別子を更新する命令をさらに実行する、請求項12のシステム。
【請求項14】
前記プロセッサは、前記新しいブラウザ識別子を含むように前記識別されたデバイス識別子に関連づけられた前記格納されたマップを更新する命令をさらに実行する、請求項13のシステム。
【請求項15】
前記参照されたブラウザ識別子はさらに前記ダウンロードされたウェブサイトに固有の少なくとも1つの可変ブラウザ識別子に関連づけられており、前記プロセッサは、前記新しいブラウザ識別子を前記少なくとも1つの可変ブラウザ識別子に関連づけるように前記格納されたマップを更新する命令をさらに実行する、請求項14のシステム。
【請求項16】
前記受信された情報はセッション識別子をさらに含み、前記プロセッサは、前記受信されたセッション識別子がメモリに格納されたいずれかのセッション識別子に一致するかどうかを判定する命令をさらに実行する、請求項10のシステム。
【請求項17】
前記受信された情報はユーザエージェント識別子をさらに含み、前記プロセッサは、前記受信されたユーザエージェント識別子がメモリに格納されたいずれかのユーザエージェント識別子に一致するかどうかを判定する命令をさらに実行する、請求項10のシステム。
【請求項18】
前記ユーザエージェント識別子は前記アクティブなコンピューティングデバイス上のアプリケーションに特有である、請求項17のシステム。
【請求項19】
識別子のタイムスタンプベースのマッチングによってデバイスアクティビティを追跡するための方法を実行するためのプロセッサによって実行可能なプログラムが格納された非一時的コンピュータ可読記憶媒体であって、前記方法は、
1以上のマップに関する情報を識別子サーバのメモリに格納するステップであって、各マップはコンピューティングデバイスに固有のデバイス識別子を前記コンピューティングデバイスによって使用されたブラウザに固有の少なくとも1つのブラウザ識別子に関連づけ、前記マップは前記デバイス識別子をインターネットプロトコル(IP)アドレスと稼働時間にさらにマップするものである、前記格納するステップと、
ブラウザを使用してウェブサイトをダウンロードしたアクティブなコンピューティングデバイスから通信ネットワークを介して送信された情報を受信するステップであって、前記ダウンロードされたウェブサイトは、前記アクティブなコンピューティングデバイスによって使用された前記ブラウザに固有のブラウザ識別子への参照を含む、前記受信するステップと、
前記受信された情報がタイムスタンプと前記アクティブなコンピューティングデバイスに対するIPアドレスを含むことを識別するステップであって、前記タイムスタンプは、最後の起動以来前記アクティブなコンピューティングデバイスが継続して動作している時間を計測した前記アクティブなコンピューティングデバイスの稼働時間を含む、前記識別するステップと、
前記受信された情報における前記タイムスタンプによって示された稼働時間と前記IPアドレスが、前記格納されたマップの一つにおけるデバイス識別子に関連づけられて格納された稼働時間とIPアドレスに一致することを識別するステップと
前記一致にもとづいて前記識別されたデバイス識別子に関連づけられた前記格納されたマップを更新するステップであって、前記更新された格納されたマップは、前記参照されたブラウザ識別子と、前記アクティブなコンピューティングデバイスによって以前使用された異なるブラウザに固有の少なくとも1つの他のブラウザ識別子とを含む、前記更新するステップとを含む、非一時的コンピュータ可読記憶媒体。
【請求項20】
前記格納されたマップは、前記アクティブなコンピューティングデバイスに固有の複数のデバイス識別子を含む、請求項1の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般にウェブサイトに関する。より具体的には、本発明は識別子のタイムスタンプベースのマッチングに関する。
【背景技術】
【0002】
インターネットとウェブリソースは先進工業国全体を通してほぼ普遍的に利用されている。ユーザは、一般に無線または有線接続のいずれであっても、通信ネットワークを介して通信することができる多数のコンピューティングデバイスのいずれかを使用してインターネットにアクセスする。より具体的には、ユーザは、コンピューティングデバイス上のブラウザアプリケーションを使用して、一つまたは複数のウェブサーバによってホストされる多数のウェブページおよびウェブサイトのいずれかのコンテンツにアクセスすることができる。
【0003】
要求に応じて、指定されたウェブページに関連するコンテンツをユーザコンピューティングデバイスにダウンロードすることができ、ユーザコンピューティングデバイスはウェブページをさらに表示させることができる。そのようなダウンロードされたコンテンツは、ドキュメント、グラフィックス、オーディオおよびビデオなどの様々な異なるタイプのファイル、ならびに関連データ(例えば、メタデータ、カスケードスタイルシートを含むスタイルシート)を含んでもよい。ダウンロードされたコンテンツは、コンピューティングデバイスのローカルメモリ内のブラウザキャッシュに格納されてもよい。特定のウェブページまたはウェブサイトの様々な要素および構成要素は、(例えば、パブリッシャが新しいコンテンツまたは更新されたコンテンツを発行するなどして)時間とともに変化することがある。ただし、ある構成要素または要素は静的で変更されない。ユーザがウェブページを離れ、後で復帰したいとき、ユーザがウェブページを再訪したい場合に同じウェブオブジェクトを再ダウンロードするのではなく、ブラウザキャッシュによって、コンピューティングデバイスはローカルメモリから関連ウェブページに関連する静的で変更されていないファイルを検索することが可能になる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
現在、ブラウザは、ウェブサイトがアクセスして使用できる一意の識別子をもっていないか、顕在化させていない。現在のウェブサイトおよびウェブページは、特定のウェブページに関するユーザの活動(例えば、繰り返しの訪問)に関するデータを追跡し、共有することができる。そのようなデータは、状態情報(例えば、嗜好、ショッピングカート項目)を含み、登録情報または認証情報(例えば、ユーザ名、パスワード、アドレス/場所)を提供するか、さもなければブラウジング履歴(例えば、どのウェブページを訪問したか、訪問回数、いつ訪問が発生したか)を追跡することができる。現代生活のほぼすべての側面がインターネット活動に反映されるか、そうでなければインターネット活動に関与する可能性があるため、追跡されたデータの一部は特定の個人を個人的に識別することができる。したがって、このような個人識別可能なデータを網羅する追跡メカニズムは、個人情報、機密情報、および/または重要なユーザ情報を暴露するリスクがある。ユーザのプライバシーを保護する理由から、ある裁判管轄では法域や規制によって追跡可能なデータの種類を制限することもある。
【0005】
一方、様々なパブリッシャ、サービスプロバイダ、および関連エンティティは、所与のウェブページまたはウェブサイトを訪れるユーザトラフィックに関する統計データを取得することに関心をもつかもしれない。ウェブサーバは、特定のウェブページに対するダウンロード要求の数を識別することができるかもしれないが、そのような要求は、同じユーザ(または同じ少数のユーザの集合)によってなされるかもしれない。したがって、このような測定基準は、ウェブサイトに関連するトラフィックまたはユーザ活動の正確な実態を提示することができない一方で、上述のもっと特定化されたデータを使用すると、特定のユーザの個人識別可能な情報を暴露するリスクがある。
【0006】
さらに、ユーザは異なるブラウザを使用して、様々な異なるウェブサイトを訪れることができる。そのような多様性によって、例えば、ユーザが異なるブラウザを使用して同じウェブサイトを訪れるなど、トラフィックを追跡する能力が複雑化する可能性がある。このような異なるブラウザは一般に情報をやりとりしたり交換したりしないので、そのようなユーザがインターネットを行き来する完全な実態を把握することがかなり難しくなる。
【0007】
したがって、ブラウザ識別子をブラウザおよび/またはデバイスにマッチングさせるための改良されたシステムおよび方法が当技術分野において必要とされる。
【課題を解決するための手段】
【0008】
本発明の実施の形態は、識別子のタイムスタンプベースのマッチングを可能にする。関連づけられたウェブサイトまたは関連づけられたブラウザにそれぞれ固有の複数の識別子に関する情報をメモリに格納してもよい。格納された情報はデバイス識別子を少なくとも一つのブラウザ識別子にそれぞれ関連づける1以上のマップに関する情報をさらに含んでもよい。デバイス識別子は関連づけられたコンピューティングデバイスに固有のものであってもよい。ブラウザを使用してウェブサイトをダウンロードしたコンピューティングデバイスから情報を受信してもよい。ダウンロードされたウェブサイトは、ブラウザに特有のブラウザ識別子への参照を含んでもよい。受信された情報がタイムスタンプとインターネットプロトコル(IP)アドレスを含むことを判定してもよい。受信された情報におけるタイムスタンプとIPアドレスが、格納されたマップの一つにおけるデバイス識別子に対応することをさらに判定してもよい。対応するコンピューティングデバイスは対応するデバイス識別子によって識別される。参照されたブラウザ識別子にもとづいて対応するデバイス識別子に関連づけられた格納されたマップを更新してもよい。
【0009】
様々な実施の形態は、識別子のタイムスタンプベースのマッチングのための方法を含んでもよい。このような方法は、1以上のマップに関する情報をメモリに格納するステップであって、各マップはデバイス識別子を少なくとも1つのブラウザ識別子を有するコンピューティングデバイスに関連づける、前記格納するステップと、ブラウザを使用して前記ブラウザに特有のブラウザ識別子への参照を含むウェブサイトをダウンロードしたコンピューティングデバイスから情報を受信するステップと、前記受信された情報がタイムスタンプとインターネットプロトコル(IP)アドレスを含むことを識別するステップと、前記受信された情報における前記タイムスタンプと前記IPアドレスが、前記格納されたマップの一つにおけるデバイス識別子に対応することを判定するステップであって、前記対応するデバイス識別子は前記コンピューティングデバイスに特有のものである、前記判定するステップと、前記参照されたブラウザ識別子にもとづいて前記対応するデバイス識別子に関連づけられた前記格納されたマップを更新するステップとを含んでもよい。
【0010】
追加の実施の形態は、識別子のタイムスタンプベースのマッチングのためのサーバシステムを含んでもよい。このようなシステムは、1以上のマップに関する情報を格納するメモリであって、各マップはデバイス識別子を少なくとも1つのブラウザ識別子に関連づけ、前記デバイス識別子は関連づけられたコンピューティングデバイスに固有のものである、前記メモリと、ブラウザを使用してウェブサイトをダウンロードしたコンピューティングデバイスから情報を受信する通信インタフェースであって、前記ダウンロードされたウェブサイトは、前記ブラウザに特有のブラウザ識別子への参照を含む、前記通信インタフェースと、命令を実行するプロセッサとを含み、前記命令の実行は、前記受信された情報がタイムスタンプとインターネットプロトコル(IP)アドレスを含むことを識別する処理と、前記受信された情報における前記タイムスタンプと前記IPアドレスが、前記格納されたマップの一つにおけるデバイス識別子に対応することを判定する処理であって、前記対応するデバイス識別子は前記コンピューティングデバイスに特有のものである、前記判定する処理と、前記参照されたブラウザ識別子にもとづいて前記対応するデバイス識別子に関連づけられた前記格納されたマップを更新する処理とを含んでもよい。
【0011】
さらなる実施形態は、上記のような識別子のタイムスタンプベースの照合のための方法を実行するためにプロセッサによって実行可能なプログラムを具現化した非一時的なコンピュータ可読記憶媒体を含む。
【図面の簡単な説明】
【0012】
図1】識別子のタイムスタンプベースのマッチングのためのシステムが実装される例示的なネットワーク環境を示す。
【0013】
図2】識別子のタイムスタンプベースのマッチングのための例示的な方法を示すフローチャートである。
【0014】
図3】本発明の実施の形態を実装するために使用される例示的なコンピューティングシステムを示す。
【発明を実施するための形態】
【0015】
本発明の実施の形態は、識別子のタイムスタンプベースのマッチングを可能にする。関連づけられたウェブサイトまたは関連づけられたブラウザにそれぞれ固有の複数の識別子に関する情報をメモリに格納してもよい。格納された情報はデバイス識別子を少なくとも一つのブラウザ識別子にそれぞれ関連づける1以上のマップに関する情報をさらに含んでもよい。デバイス識別子は関連づけられたコンピューティングデバイスに固有のものであってもよい。ブラウザを使用してウェブサイトをダウンロードしたコンピューティングデバイスから情報を受信してもよい。ダウンロードされたウェブサイトは、ブラウザに特有のブラウザ識別子への参照を含んでもよい。受信された情報がタイムスタンプとインターネットプロトコル(IP)アドレスを含むことを判定してもよい。受信された情報におけるタイムスタンプとIPアドレスが、格納されたマップの一つにおけるデバイス識別子に対応することをさらに判定してもよい。対応するコンピューティングデバイスは対応するデバイス識別子によって識別される。参照されたブラウザ識別子にもとづいて対応するデバイス識別子に関連づけられた格納されたマップを更新してもよい。
【0016】
図1は、可変ブラウザ識別子のマッチングを取るためのシステムが実装されるネットワーク環境100を示す。ネットワーク環境100は、通信ネットワーク110、一つまたは複数のユーザデバイス120A−D、ウェブサーバ130、識別子サーバ140、および一つまたは複数のサービスプロバイダ150を含んでもよい。ネットワーク環境100内のデバイスは、通信ネットワーク110を介して互いに通信することができる。
【0017】
通信ネットワーク110は、ローカルの専用ネットワーク(例えば、イントラネット)であってもよく、および/またはより広いワイドエリアネットワークの一部であってもよい。通信ネットワーク110は、インターネットなどの広域ネットワーク(WAN)に通信可能に結合されるローカルエリアネットワーク(LAN)であってもよい。インターネットは、相互接続されたコンピュータおよびサーバの広範なネットワークであり、ネットワークサービスプロバイダを介して接続されたユーザ間でインターネットプロトコル(IP)データの送信および交換を可能にする。ネットワークサービスプロバイダの例は、公衆交換電話網、セルラまたはモバイルサービスプロバイダ、ケーブルサービスプロバイダ、デジタル加入者回線(DSL)サービスのプロバイダ、または衛星サービスプロバイダである。通信ネットワーク110は、ネットワーク環境100の様々なコンポーネント間の通信を可能にする。
【0018】
ユーザは、汎用コンピュータ、携帯電話、スマートフォン、スマートウォッチ、ウェアラブルデバイス、パーソナルデジタルアシスタント(PDA)、ポータブルコンピューティングデバイス(例えば、ラップトップ、ネットブック、タブレット)、デスクトップコンピューティングデバイス、ハンドヘルドコンピューティングデバイス、または通信ネットワーク110を介して通信することができる任意の他のタイプのコンピューティングデバイスなどの任意の数の異なる電子ユーザデバイス120A〜Dを利用する。ユーザデバイス120は、ダウンロードされたサービスの場合に適切であるように、ローカルキャッシュ、メモリカード、またはディスクドライブなどの他の記憶媒体からデータにアクセスするように構成されてもよい。ユーザデバイス120は、ネットワークおよびメディアインタフェースのような標準的なハードウェアコンピューティングコンポーネント、非一時的コンピュータ可読記憶装置(メモリ)、およびメモリに記憶される命令を実行するためのプロセッサを含んでもよい。
【0019】
さらに、ユーザデバイス120は、ユーザが特定のウェブページを要求できるようにするブラウザアプリケーションを含む様々なアプリケーションを含んでもよい。ここで使用される、ブラウザおよびブラウザ識別子への参照は例示的なものであり、これに関する教示内容は、他のタイプのアプリケーションおよびアプリケーション識別子(たとえばアップルのIDFAやグーグルのAdID)にも適用可能である。例えば、ユーザは、ブラウザアプリケーションにユニフォームリソースロケータ(URL)を入力することができる。そのようなブラウザは、関連するウェブサーバ(例えば、ウェブサーバ130)にそのような要求を送信し、応答データ(例えばダウンロードする他のファイルへの参照を含むウェブページファイル)を受信し、そのような応答データを使用して、要求されたウェブページを表示してもよい。ユーザデバイス120にダウンロードされるウェブページファイルは、ウェブページの一部として実際に表示されるコンテンツに対応するファイルだけでなく、関連するファイルも含んでもよい。
【0020】
ウェブサーバ130、識別子サーバ140、およびサービスプロバイダ150は、ネットワークおよびメディアインタフェースなどの標準的なハードウェアコンピューティングコンポーネント、非一時的コンピュータ可読記憶装置(メモリなど)、およびメモリに格納される命令を実行するかメモリに格納される情報にアクセスするためのプロセッサを含む、既知の任意のタイプのサーバまたは他のコンピューティングデバイスを含んでもよい。複数のサーバの機能を一つのサーバに統合してもよい。前述のサーバ(または統合サーバ)は、特定のクライアント側のキャッシュ、またはプロキシサーバの特性を引き受けてもよい。これらの特性は、サーバの特定のネットワーク配置またはサーバの特定の構成に依存することがある。
【0021】
ウェブサーバ130は、任意のタイプのウェブページまたはウェブサイトデータを含む、ウェブコンテンツをホストするために使用される任意の種類のサーバであってもよい。各ウェブサイトに関連づけられる特定のファイルは、パブリッシャ(または指定された管理者)によって制御されてもよい。ウェブサイトファイルには、他の当事者の管理下にあるファイルへのリンクが含まれることがある。これに関して、ウェブサーバ130からダウンロードされたウェブサイトファイルは、可変ブラウザ識別子ファイルへの参照(例えば、URL)と、オプションのローダアプリケーション(例えば、Java(登録商標)Script(登録商標)コマンド)と、可変ブラウザ識別子ファイルとともに使用される関連コードライブラリを含んでもよい。そのような可変ブラウザ識別子ファイルは、ウェブサイトに固有であってもよい。例えば、特定のウェブサイトに対する可変ブラウザ識別子は、そのウェブサイトのドメイン(または他の特性)を含むか、さもなければそれに基づくものであってもよい。このように、特定のユーザデバイスによって訪問された各ウェブサイトは、一意かつ異なる可変ブラウザ識別子に関連付けられてもよい。
【0022】
そのような可変ブラウザ識別子は、関連する同時係属の米国特許出願第14/716,187号に開示されているブラウザ識別子に関して開示されたものと同様の方法で生成され、管理されてもよい。さらに、本明細書で開示される可変ブラウザ識別子は、関連する米国特許出願第14/716,187号に開示された発明と併せて使用されてもよい。それぞれの名前で示されるように、不変ブラウザ識別子は変化せず、可変ブラウザ識別子は変化する可能性がある。不変ブラウザ識別子は、異なる可変ブラウザ識別子に関連付けられるかまたはマッピングされてもよい。可変ブラウザ識別子は変化する可能性があるため、参照された可変ブラウザ識別子に関連づけられた様々なインジケータを使用して、参照されたブラウザ識別子を不変ブラウザ識別子、それに関連づけられた可変ブラウザ識別子および/または関連づけられたデバイス識別子にマッピングしてもよい。
【0023】
この点に関して、ブラウザは、自動的にまたはユーザデバイス120によって実行されるローダアプリケーションの指示の下で、参照された可変ブラウザ識別子ファイルにアクセスしようと試みることができる。このようなアクセスは、参照された可変ブラウザ識別子ファイルが既に以前からダウンロードされているかどうかを判断するためにローカルブラウザキャッシュを自動的にチェックすることを含んでもよい。
【0024】
ローカルブラウザキャッシュのこのようなチェックの後、ユーザデバイス120は、参照された可変ブラウザ識別子ファイルに関連づけられた識別子サーバ140に要求を送信してもよい。そのような要求は、参照された可変ブラウザ識別子ファイルがローカルブラウザキャッシュ内に見つかったかどうか(もしそうであれば、参照された可変ブラウザ識別子ファイルがいつ最後に変更されたか)を示してもよい。その要求が、参照された可変ブラウザ識別子ファイルがローカルブラウザキャッシュに見つからなかったことを示す場合、識別子サーバ140は、新しい可変ブラウザ識別子ファイルをユーザ装置120に送信することによって応答してもよい。上述したように、新しい可変ブラウザ識別子は、(例えば、ウェブサイトドメインまたは他の特性に基づいて)ダウンロードされている特定のウェブサイトに固有になるように生成してもよい。
【0025】
この点で、識別子サーバ140は、要求に応じて新たな一意の可変ブラウザ識別子を生成し提供してもよい。このような一意の可変ブラウザ識別子は、要求を行うウェブサイトに固有のものであってもよい。ただし、ユーザがオプトアウトした場合は、一意の可変ブラウザ識別子の代わりに一意でない用語を挿入してもよい。いくつかの実施の形態では、ユーザは、指定されたウェブページまたはウェブサイトに関して一意の識別子を提供されることをオプトアウト(選択解除)することができる。あるいは、ユーザは、指定されたウェブページまたはウェブサイトに関して一意の識別子を提供することをオプトイン(選択)してもよい。このようにして、そのウェブサイトは、一部のウェブページの一意の可変ブラウザ識別子を介して一意に識別されるが、他のウェブサイトは識別されない。いくつかの実施の形態では、ユーザのオプトアウトまたはオプトインに関するこのような情報は、可変ブラウザ識別子ファイルに反映されてもよい。例えば、可変ブラウザ識別子ファイルは、定義されたウェブページ、ウェブサイトまたはウェブサイトのカテゴリに対するユーザのオプトインまたはオプトアウトを示す情報と、オプトインまたはオプトアウトのどちらが実施されるべきか細かい詳細を指定するインジケータとを含んでもよい。
【0026】
ユーザはまた、ウェブサイトに関連付けられた一意の可変ブラウザ識別子をリセットすることを選択してもよい。一意の可変ブラウザ識別子をリセットすることは、以前にダウンロードされた可変ブラウザ識別子ファイルのローカルブラウザキャッシュをクリアし、(新しい可変ブラウザ識別子ファイル内に)新しい可変ブラウザ識別子を生成し、ローカルブラウザのキャッシュにキャッシュすることを含む。いくつかの実施の形態では、可変ブラウザ識別子ファイルを更新する必要があることを示すために、識別子サーバ140に信号を送ってもよい。そのような信号はクッキーに実装されてもよく、識別子サーバ140がクッキーを読み取って、可変ブラウザ識別子ファイルとして何を返送するべきかを決定することができる。あるいは、(パス情報またはパラメータを含む)要求を(例えば、可変ブラウザ識別子および任意の指令を含むように構成された)一時的URLに向かわせ、その後、その要求を識別子サーバ140にリダイレクトしてもよい。識別子サーバ140は、その要求のリファラーヘッダ(例えば、一時的URL)を見て、可変ブラウザ識別子ファイルへの要求された変更を解析することができる。
【0027】
さらに、識別子サーバ140は、複数の可変ブラウザ識別子(それぞれ異なるウェブサイトに対するものであり、異なる可変ブラウザ識別子ファイルで提供される)を提供することができる。ウェブサイトに関連するユーザデバイス120でのアクティビティは、その後、提供された一意の可変ブラウザ識別子に関連付けられてもよい。そのような可変ブラウザ識別子は、さらに、不変ブラウザ識別子および/またはデバイス識別子と関連付けられてもよく、それによって、場合によっては同じまたは異なるコンピューティングデバイス上の異なるブラウザ間を区別する能力が可能になる。具体的には、ユーザデバイス120上のローダアプリケーションによって識別子サーバ140(または関連づけられたサーバ)に提供される(一意の可変ブラウザ識別子によって識別される)特定のウェブサイトでの活動に関する情報をログに記録してもよい。この点で、可変ブラウザ識別子は、ユーザデバイス120に常駐するローカルアプリケーションまたはコード(例えば、ブラウザ、ローダアプリケーション、ローカルコードライブラリ)によってのみ呼び出すことができるので、識別子サーバ140は、可変ブラウザ識別子自体を受信しなくてもよい。ローダアプリケーションを実行して、コードライブラリからのコードのロードおよび実行を含む様々な機能を実行してもよい。そのようなコードライブラリは、ウェブサーバ130、識別子サーバ140、または他の指定されたサービスプロバイダ150で提供され、変更され、更新されてもよい。
【0028】
参照された可変ブラウザ識別子ファイルが実際にローカルブラウザキャッシュ内に見つかった場合、ブラウザは、参照された可変ブラウザ識別子ファイルに関するインジケータ(例えば、「if−modified−since」ヘッダ)とともに要求を識別子サーバ140に送信する。次いで、識別子サーバ140は、当該要求の中に提供された情報(例えば、「if−modified−since」ヘッダが参照された可変ブラウザ識別子ファイルに存在するかどうか)または関連づけられたクッキー、リファラーヘッダーなどに基づいて、参照された可変ブラウザ識別子ファイルの更新バージョンを送信するべきかどうかを判断する。参照された可変ブラウザ識別子ファイルがローカルブラウザキャッシュにあると判定された場合(例えば、当該要求の中に関連づけられた「if−modified−since」ヘッダが存在することによって示される)、識別子サーバ140は当該ファイルを検証し、このような検証に関するインジケータ(例えば、「304 not modified」インジケータ)を送信する。いくつかの実施の形態では、このような検証は、参照された可変ブラウザ識別子ファイルの最大年齢または有効期日/期限を延長してもよく、それにより、参照された可変ブラウザ識別子ファイルを(延長された最大年齢または有効期日/期限に対応する)延長期間の間、ローカルブラウザキャッシュに維持してもよい。しかしながら、(例えば、オプトアウトクッキーによって示されるように)ユーザがオプトアウトを選択した場合、識別子サーバ140は、一意でない可変ブラウザ識別子またはオプトアウト識別子を有する可変ブラウザ識別子ファイルを返してもよい。
【0029】
ブラウザは、場合によっては、識別子サーバ140が参照された可変ブラウザ識別子ファイルを検証することを必ずしも要求しない。そのような場合、ブラウザは、識別子サーバ140に何の要求もせずに、キャッシュされた可変ブラウザ識別子ファイルを使用してもよい。
【0030】
場合によっては、参照された可変ブラウザ識別子ファイルは、更新を要求するように決定されてもよい。例えば、「if−modified−since」ヘッダのないクッキーは、参照された可変ブラウザ識別子ファイルが以前に存在していたが、もはや(全部または一部が)ローカルブラウザキャッシュには存在しないことを示すことがある。そのような変更が(例えば、要求の中のヘッダまたは他のインジケータによって示されるように)起こった可能性があると判断すると、識別子サーバ140は、参照されたウェブサイトファイルを再作成するか、または新しい可変ブラウザ識別子ファイルをユーザデバイス120に送信する。上記は主に変更ヘッダのことを指すが、当技術分野で知られている任意のタイプのキャッシュ制御ヘッダ(または任意のタイプのキャッシュ制御コマンド)を使用してもよい。キャッシュ制御には、検証を指示すること、所望の最大年齢を調整すること、および可変ブラウザ識別子ファイルがキャッシュされる場所(例えば、ローカルブラウザキャッシュを指定する)を制御することを含め、キャッシュメモリに関する任意の操作が含まれてもよい。
【0031】
可変ブラウザ識別子ファイルは、スタイルシート、JavaScript(登録商標)ファイル、HTMLファイル、テキストファイル、AJAX要求、画像ファイルなどを含む、ローカルブラウザのキャッシュメモリにキャッシュされる任意のタイプのファイルであってもよい。このような可変ブラウザ識別子ファイルによって、そのコンテンツ(一意であるか非一意であるかにかかわらず、可変ブラウザ識別子を含む)がブラウザおよび関連するブラウザアプリケーション(ローダアプリケーションを含む)にアクセスされることが可能になる。このように、ブラウザおよび関連するブラウザアプリケーションは、可変ブラウザ識別子にアクセスし、ロギングアクティビティを含むさまざまな操作のために可変ブラウザ識別子を使用することができる。
【0032】
可変ブラウザ識別子ファイルは、可変ブラウザ識別子を含んでもよく、可変ブラウザ識別子は、ウェブページに固有のものであってもよい。場合によっては、ユーザは、一意の可変ブラウザ識別子を提供されることをオプトアウト(選択解除)してもよい。そのような場合、新しい可変ブラウザ識別子ファイルは、可変ブラウザ識別子として一意でない用語とともに生成されてもよい。あるいは、可変ブラウザ識別子ファイルを更新して、一意の識別子を一意でない用語(または定義されたまたは一般的なオプトアウト用のオプトアウト識別子)で置き換えてもよい。
【0033】
いくつかの実施の形態では、可変ブラウザ識別子ファイルは、特定のウェブページに対するユーザオプトアウトまたはオプトインに関する情報を含む、(ユーザによって指定された)ユーザプリファレンスに関する他のタイプの情報をさらに含んでもよい。ユーザがオプトアウト設定またはオプトイン設定を変更すると、そのような情報を使用して、可変ブラウザ識別子ファイルを更新することができる。次に、ブラウザは、可変ブラウザ識別子ファイルをローカルブラウザキャッシュに再ロードするように指示され、それによって、更新されたユーザ設定を実装することができる。
【0034】
識別子サーバ140はさらに、可変ブラウザ識別子を共通の不変のブラウザ識別子に一致させることができ、場合によっては共通のデバイス識別子に一致させることもできる。これに関して、(デバイス識別子によって識別される)特定のユーザデバイス120は、(それぞれの不変ブラウザ識別子によって識別される)一つ以上のブラウザに関連付けられてもよく、それぞれのブラウザは(それぞれの可変ブラウザ識別子によって識別される)一つ以上のウェブサイトに関連付けられてもよい。したがって、識別子サーバ140は、ユーザデバイスが特定のブラウザを使用してウェブサイトを要求したとき、一つまたは複数のそのような識別子(ウェブサイトであれ、ブラウザであれ、デバイスであれ)を識別することができるだけでなく、どの識別子が互いに関連づけられているかに関するマップを管理し更新することができる。
【0035】
識別子サーバ140は、様々なインジケータを使用して、そのようなマップを作成し更新することができる。例えば、セキュアセッション(例えば、セキュアソケットレイヤ(SSL)セッション)によってセッション再開が可能になる。セッション再開は、クライアントとサーバがSSL情報をネゴシエートし、後で将来の接続のためにそのネゴシエートされたSSL情報を再利用する場合に発生する。SSLセッションの設定には通常非常に時間がかかるため、再ネゴシエートする必要がないことが望ましい。セッションを再開するには、クライアントがセッションを識別できることが必要である。SSLセッションIDとTLSセッションチケットは、以前のセッションの識別と再開を可能にする2つのメカニズムである。
【0036】
識別子サーバ140は、ブラウザが(例えば、識別子サーバ140のドメインを呼び出すような)特定のスクリプトを有するウェブサイトにアクセスするときに呼び出される。したがって、識別子サーバ140は、特定のウェブサイトがアクセスされたときにセッション再開データを受信することができる。このように、識別子サーバ140はそのようなセッション情報を使用して、複数の接続が、例えば同じSSLセッションIDによって示された同じセッションをいつ使用しているかを決定することができる。したがって、識別子サーバ140は、複数の接続に関連づけられたブラウザIDをまとめてマッピングすることができる。識別子サーバ140によって構築されたこのようなマップによって、既存のSSLセッションが存在しない場合であっても、ブラウザを認識するために使用可能な一連の永続的インジケータを作成することが可能になる。
【0037】
付加的なインジケータは、伝送制御プロトコル(TCP)情報の使用に基づいてもよい。TCPは、Webブラウザ、電子メール、およびその他のアプリケーションを含むさまざまなインターネットベースのアプリケーションによって使用される。(例えば、TCPパケット内に存在する)特定のデバイスによるTCPの使用に関連づけられた情報は、現在の時間、稼働時間、およびクロックスキューなどの様々なタイムスタンプ情報を含むか示すものであってもよい。例示的な実施の形態では、識別子サーバ140は、(例えば、特定の現在時刻、稼働時間、ソースIPアドレス、クロックスキューなどのTCPタイムスタンプ情報に関連づけられた)ブラウザ識別子を受信し、関連づけられたタイムスタンプ情報(例えば、稼働時間)がブラウザ識別子に以前に関連付けられたいずれかのタイムスタンプ情報と一致するかどうか判断し(一致しない場合、その関連付けられたタイムスタンプ情報を含むようにブラウザ識別子に関する格納された情報を更新する)、稼働時間(またはソースIPアドレスまたはクロックスキュー)がデバイス識別子にマッピングされるかどうかを決定し、もしそうであるなら、それらのデバイス識別子をまとめてマッピングする。
【0038】
現在の時間が一般にTCPパケットに含まれているが、更なる計算が他のタイムスタンプ情報(例えば、稼働時間及びクロックスキュー)を得るために適用されてもよい。例えば、稼働時間は、コンピューティングデバイスが開始され、継続的に動作してからの時間の計測を提供する。特に、他のインジケータ(例えば、送信元IPアドレス、クロックスキュー)と組み合わされたとき、稼働時間は、特定のデバイスを、そのコンピューティングデバイスが再起動される前の時間の間、一意に識別することができる。稼働時間に関して、デバイスは、デバイスが起動されるか、ティックの数がリセットされた最後の時間以来のティックの数を記録し報告することができる。ティックの数は、異なるコンピューティングデバイスに対して異なるスケジュールに基づいてリセットされてもよい(例えば、いくつかのデバイスは数日ごとにリセットし、他のデバイスは数週間ごとにリセットする)。ティックはまた、異なるシステムに対して異なる時間量を表すこともあるので、報告されたティック数によってどのくらいの時間が表されるかを決定するためにデバイス固有の計算が関与することがある。結果は、一貫して増加する時間である。これを後方に計算することで、デバイスが最後に起動された時刻や、ティックの数がリセットされた最後の時刻などの稼働時間が提供される。このようにして、一般に稼働時間は、稼働時間がリセットされる時までティックが増加しても同じ値にとどまる。
【0039】
したがって、識別子サーバ140によって使用されるこのようなインジケータは、セッション識別子(例えば、トランスポート層セキュリティ(TLS)、セキュアソケット層(SSL))、伝送制御プロトコル(TCP)識別子(例えば、稼働時間、現在時刻、クロックスキュー)、インターネットプロトコル(IP)アドレス、ユーザエージェント識別子、その他が含まれる。そのようなインジケータは、個別にまたは任意の組み合わせ(例えば、SSLセッション識別子とTCPタイムスタンプ)で使用され、共通の一致に基づいて特定の共通ブラウザおよび/または特定のユーザデバイス120を識別する。例示的な実施の形態は、異なるブラウザまたは異なるデバイスに対する識別子間の結合を識別する際に、それぞれの決定論的な値に基づいてある種のインジケータのセットを選択することができる。たとえば、SSLセッション識別子は特定のセッションに固有であるため、同じブラウザに対する異なる可変ブラウザ識別子をまとめてマップして関連付けることができる。同様に、現在の時間、稼働時間、クロックスキューおよびソースIPアドレスの組み合わせは、特定のデバイスに固有であり、それによって、デバイスに関連付けられた異なるデバイス識別子間の結合を導出することが可能になる。
【0040】
例えば、ウェブサイトをダウンロードする特定の要求は、一つまたは複数のインジケータ(たとえば、SSLセッション識別子)に関連付けられた可変ブラウザ識別子を参照してもよい。このようなSSLセッション識別子は、格納された情報と比較され、識別子サーバ140によって、異なる可変ブラウザ識別子、不変ブラウザ識別子、および/またはデバイス識別子と共に以前に使用されたものとして決定されてもよい。同様に、要求側コンピューティングデバイスに関連づけられたTCPタイムスタンプは、識別子サーバ140によって、他の可変ブラウザ識別子、不変ブラウザ識別子、および/またはデバイス識別子と共に以前にマッピングされるか使用されたものとして決定されてもよい。
【0041】
参照された可変ブラウザ識別子(またはその関連づけられたインジケータまたは識別子のいずれか)に対して格納されたマップが存在しない場合、新しいマップが作成されてもよい。格納されたマップが存在する場合、そのような格納されたマップは更新されてもよい。このように、これらの識別子のうちの一つ以上を有するマップは、(特定のインジケータに関連づけられた)新たに入ってくる識別子に基づいて、また(同一または異なるインジケータに関連付けられた)格納された識別子との一致に基づいて、生成され、更新されてもよい。例えば、二つの異なる可変ブラウザ識別子が同じインジケータ(例えば、SSLセッション識別子)を有することを識別子サーバ140が発見すると、識別子サーバ140は、それぞれのウェブサイトが同じブラウザを使用していると判断することができる。各インジケータの寿命、可用性、および決定論的価値は、異なるブラウザ、ユーザエージェント、および/またはオペレーティングシステムによって異なるかもしれない。したがって、インジケータを組み合わせて使用して、一致を見つける可能性を高め、そのような一致の信頼度を高めてもよい。
【0042】
いくつかの実施の形態では、識別子サーバ140は、要求が特定のブラウザおよびウェブサイト(可変ブラウザ識別子によって識別される)に関連付けられていることを判定することができてもよい。「304 not modified」というインジケータの代わりに、識別子サーバ140は、元のブラウザ識別子に関連付けられるかマッピングされた識別子サーバ140によって格納される新しい可変ブラウザ識別子を有する「200 request fulfilled」というインジケータを返してもよい。したがって、このようなスキームは、様々な他の識別子(例えば、デバイス識別子および不変ブラウザ識別子)との関連を維持しながら、可変ブラウザ識別子の可変性を提供する。
【0043】
いくつかの実施の形態では、第1の当事者のクッキーを、各ウェブサイトに対する永続的識別子(例えば、可変ブラウザ識別子)として使用してもよい。クッキーはある時間の間持続するかもしれないが、そのようなクッキーは定期的に変更されるかもしれない。その後、以下でさらに詳細に説明するように、様々なマッチングパラメータ(例えば、SSLおよび稼動時間)を使用して、関連づけられたクッキーを識別し、それらを一緒にマッピングしてもよい。これに関して、識別子サーバ140は、他の永続的識別子にマッピングするために任意の永続的識別子を使用する能力を有するものとして理解されるべきである。したがって、時間の経過とともに、識別子サーバ140によって構築されたマップは、様々な識別子間の新しい結合および関連づけを組み込むように成長することができる。
【0044】
サービスプロバイダ150は、ブラウザの識別に基づいて様々なサービスを提供することができるサーバまたは他のコンピューティングデバイスを含んでもよい。例えば、サービスプロバイダ140は、リピート訪問に関する情報を使用して、(初回訪問者と対比して)リピート訪問者に対するターゲット広告を提供してもよい。
【0045】
図2は、識別子のタイムスタンプベースのマッチングのための例示的な方法200を示すフローチャートである。図2の方法200は、CD、DVD、またはハードドライブなどの不揮発性メモリを含むがこれに限定されない非一時的コンピュータ可読記憶媒体内の実行可能命令として実施することができる。記憶媒体の命令は、記憶媒体をホスティングまたはアクセスするコンピューティング装置の様々なハードウェア構成要素に方法を実行させるプロセッサ(またはプロセッサ群)によって実行されてもよい。図2で特定されるステップ(およびその順序)は例示的なものであり、それらの実行順序を含むがそれらに限定されない様々な代替、等価物、または派生物を含んでもよい。
【0046】
図2の方法200では、識別子情報を識別子サーバ140のメモリに格納し、ブラウザ識別子への参照を受信し、参照されたブラウザ識別子に関連づけられたタイムスタンプおよびIPアドレスが存在するかどうかを判定することができる。存在しない場合、この方法は、参照されたブラウザ識別子がデバイス識別子にマッピングされているかどうかを決定するために進み、マッピングされていない場合、デバイス識別子を作成し、参照されたブラウザ識別子にマッピングする。あるいは、参照されたブラウザ識別子は、一つまたは複数の他の識別子(例えば、デバイス、他のブラウザ、および/またはウェブサイト)と照合されてもよい。対応する格納されたブラウザ識別子に関連づけられた格納された情報は、参照されたブラウザ識別子(およびその関連情報)を格納されたブラウザ識別子情報(関連識別子のマップを含む)と比較することに基づいて、更新される。
【0047】
ステップ205では、識別子情報を識別子サーバ140のメモリに格納する。格納された情報は、複数の異なる可変ブラウザ識別子、不変ブラウザ識別子、およびデバイス識別子、ならびに一つまたは複数のこのような識別子を相互に関連づけるマップを含む。例えば、マップは、特定のデバイス識別子を一つまたは複数の可変ブラウザ識別子および不変ブラウザ識別子に関連付けることができる。そのようなマップは、そのような関連付けに関する以前に受信された情報(例えば、特定の共通のデバイス識別子にマッピングされた以前に受信されたブラウザ識別子)に基づいて生成され、また時間の経過とともに更新されてもよい。このような更新は、新たに受信された関連付けデータに基づいて新たな関連付けを生成することだけでなく、新たに受信された情報との一致に基づいて格納された関連付けを更新することも含む。
【0048】
ステップ210において、(例えばURLによって識別されるような)特定のウェブサイトに対する要求はユーザデバイス120のブラウザを介してユーザによって入力され、ブラウザは、そのウェブサイトに関連づけられたウェブサーバ130にそのような要求を送信する。ウェブサーバ130は、ウェブサイトコンテンツをユーザデバイス120のブラウザに提供する。このようなウェブサイトのコンテンツは、ブラウザ識別子ファイルへの参照に関連付けられる。このような参照は、識別子サーバ140に解決(resolve)される別のURLであってもよい。いくつかの実施の形態では、ウェブサーバ140によって送信された参照は、ブラウザ識別子ファイルを参照するために実行可能なローダアプリケーションに関するものであってもよい。ブラウザは、ローカルのブラウザキャッシュをチェックして、参照されたブラウザ識別子ファイルを見つけてもよい。
【0049】
ステップ215において、タイムスタンプ(例えば、TCPタイムスタンプ)およびIPアドレスが、ステップ210で受信された要求に関連づけられているかどうかが判定される。関連づけられていない場合、方法はステップ220に進み、関連づけられている場合、方法はステップ235に進む。
【0050】
ステップ220において、参照されたブラウザ識別子がデバイス識別子に既にマッピングされているかどうかが判定される。そのような決定は、識別子サーバ140のメモリ内に記憶されたマップに基づくことができる。マッピングされていれば、この方法は終了する。マッピングされていなければ、方法はステップ225に進むことができる。
【0051】
ステップ225において、ブラウザ識別子を参照したコンピューティングデバイスを一意に特定するためにデバイス識別子が生成される。
【0052】
ステップ230において、参照されたブラウザ識別子は、デバイス識別子にマッピングされる。
【0053】
ステップ235では、参照されたブラウザ識別子をデバイス識別子にマッピングできるかどうかが判定される。このようなステップは、ステップ220と同様の方法で実行されてもよい。もっとも、ここで、参照されたブラウザ識別子をデバイス識別子にマッピングできない場合、方法はステップ240に進む。一方、参照されたブラウザ識別子をデバイス識別子にマッピングできる場合、本方法はステップ245に進む。
【0054】
ステップ240において、参照されたブラウザ識別子と同じ要求で見つかったタイムスタンプおよびIPアドレスが、格納されたデバイス識別子にマッピングできるかどうかが判定される。マッピングできない場合、方法は、ステップ230(そこでは参照されたブラウザ識別子がデバイス識別子にマッピングされる)に進む前に、ステップ225(そこではデバイス識別子が作成される)に進む。しかし、参照されたブラウザ識別子と同じ要求で見つかったタイムスタンプおよびIPアドレスを格納されたデバイス識別子にマッピングできる場合、方法は直接ステップ230に進む。
【0055】
ステップ245では、マッピングされたデバイス識別子に関連付けられたタイムスタンプおよびIPアドレスが、参照されたブラウザ識別子と同じ要求で受信されたタイプスタンプおよびIPアドレスと一致するかどうかが判定される。一致する場合、この方法は終了する。一致しない場合、方法はステップ250に進む。
【0056】
ステップ250において、参照されたブラウザ識別子のタイムスタンプおよびIPアドレスと一致するタイムスタンプおよびIPアドレスに関連づけられた別の異なるデバイス識別子(例えば、識別子サーバ140に記憶されたすべてのデバイス識別子のうちのいずれか)が存在するかどうかが判定される。存在しない場合、方法はステップ255に進み、存在する場合、方法はステップ260に進む。
【0057】
ステップ255において、デバイス識別子に関する格納された情報は、参照されたブラウザ識別子のタイムスタンプおよびIPアドレスを反映するように更新される。上述したように、いくつかのインジケータは異なる決定論的価値を有する。ありそうもないが、二つの異なるコンピューティングデバイスが同じタイムスタンプおよびIPアドレスをもつことはありうる。そのような場合、参照されたブラウザ識別子は、そのブラウザ識別子を参照したコンピューティングデバイス以外の(異なるデバイス識別子を有する)異なるコンピューティングデバイスに関連付けられる。
【0058】
ステップ260では、格納されたマップを更新して、一致するタイムスタンプおよびIPアドレスに基づいて、参照された不変ブラウザ識別子(および任意の関連づけられた可変ブラウザ識別子)を他のデバイスザ識別子に再マッピングする。いくつかの実施の形態では、再マッピングは、どのデバイス識別子がより古いかに基づいてもよい。
【0059】
図3は、本発明の実施の形態を実装するために使用される例示的なコンピューティングシステム300を示す。図3のシステム300は、ユーザ装置120A〜D、ウェブサーバ130、識別子サーバ140、およびサービスプロバイダ150の類いのコンテキストで実装することができる。図3のコンピューティングシステム300は、一つまたは複数のプロセッサ310およびメモリ310を含む。メインメモリ310は、プロセッサ310による実行のための命令およびデータを部分的に記憶する。メインメモリ310は、動作中に実行可能コードを格納することができる。図3のシステム300は、大容量記憶装置330、可搬型記憶媒体ドライブ340、出力装置350、ユーザ入力装置360、グラフィックスディスプレイ370、および周辺装置380をさらに含む。
【0060】
図3に示す構成要素は、単一のバス390を介して接続されているものとして示されている。しかしながら、構成要素は、一つ以上のデータ転送手段を介して接続されてもよい。例えば、プロセッサユニット310およびメインメモリ310は、ローカルマイクロプロセッサバス390を介して接続され、大容量記憶装置330、周辺装置380、可搬型記憶装置340、およびディスプレイシステム370は、一つまたは複数の入出力(I/O)バス390を介して接続される。
【0061】
大容量記憶装置330は、磁気ディスクドライブまたは光ディスクドライブで実装することができ、プロセッサユニット310による使用のためのデータおよび命令を記憶するための不揮発性記憶装置である。大容量記憶装置330は、メインメモリ310にソフトウェアをロードする目的で、本発明の実施の形態を実施するためのシステムソフトウェアを格納することができる。
【0062】
ポータブル記憶装置340は、フロッピー(登録商標)ディスク、コンパクトディスク(CD)またはデジタルビデオディスク(DVD)などのポータブル不揮発性記憶媒体と連携して動作し、図3のコンピュータシステム300に対してデータおよびコードを入出力する。本発明の実施の形態を実装するためのシステムソフトウェアは、このようなポータブル媒体に格納され、ポータブルストレージデバイス340を介してコンピュータシステム300に入力されてもよい。
【0063】
入力装置360は、ユーザインタフェースの一部を提供する。入力装置360は、アルファベットやその他の情報を入力するためのキーボードなどの英数字キーパッド、マウス、トラックボール、スタイラスまたはカーソル方向キーなどのポインティングデバイスを含んでもよい。さらに、図3に示すシステム300は、出力装置350を含む。適切な出力装置の例には、スピーカ、プリンタ、ネットワークインタフェース、およびモニタが含まれる。
【0064】
ディスプレイシステム370は、液晶ディスプレイ(LCD)または他の適切なディスプレイデバイスを含んでもよい。表示システム370は、テキスト情報およびグラフィック情報を受信し、その情報を処理して表示装置に出力する。
【0065】
周辺機器380は、コンピュータシステムに追加の機能を追加するための任意のタイプのコンピュータ支援デバイスを含んでもよい。例えば、周辺装置380は、モデムまたはルータを含んでもよい。
【0066】
図3のコンピュータシステム300に含まれる構成要素は、本発明の実施の形態で使用するのに適したコンピュータシステムに通常見られる構成要素であり、当技術分野で周知であるそのようなコンピュータ構成要素の広範なカテゴリを表すことが意図されている。したがって、図3のコンピュータシステム300は、パーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、電話、モバイルコンピューティングデバイス、ワークステーション、サーバ、ミニコンピュータ、メインフレームコンピュータ、または任意の他のコンピューティングデバイスであってもよい。また、コンピュータは、異なるバス構成、ネットワーク化されたプラットフォーム、マルチプロセッサ・プラットフォームなどを含むことができる。Unix(登録商標)、Linux(登録商標)、Windows(登録商標)、Macintosh OS、Palm OS、および他の適切なオペレーティングシステムを含む様々なオペレーティングシステムを使用することができる。
【0067】
本発明は、様々なデバイスを使用して動作可能なアプリケーションで実装することができる。非一時的コンピュータ可読記憶媒体は、実行するために中央処理装置(CPU)に命令を提供することに関与する任意の媒体または媒体を指す。そのような媒体は、光学ディスクまたは磁気ディスクおよび動的メモリなどの不揮発性および揮発性媒体を含むが、これに限定されない多くの形態を取ることができる。例えば、非一時的コンピュータ可読記憶媒体の通常の形態には、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、CD−ROMディスク、デジタルビデオディスク(DVD)、その他光学媒体、RAM、PROM、EPROM、FLASHEPROM、および任意の他のメモリチップまたはカートリッジが含まれる。
【0068】
様々な形態の伝送媒体が、実行するために一つまたは複数の命令の一つまたは複数のシーケンスをCPUに搬送することに関与してもよい。バス(例えば、バス390)は、データをシステムRAMに運び、そこからCPUが命令を取り出して実行する。システムRAMによって受信された命令は、任意に、CPUによる実行の前または後のいずれかに、固定ディスクに格納することができる。様々な形態の記憶装置を同様に実装することができ、必要なネットワークインタフェースおよびネットワークトポロジを同様に実装することができる。
【0069】
様々な実施の形態を上記で説明してきたが、それらは限定ではなく例として提示されたものであることを理解されたい。本説明は、本発明の範囲を本明細書に記載の特定の形態に限定することを意図したものではない。したがって、好ましい実施の形態の幅および範囲は、上記の例示的な実施の形態のいずれによっても制限されるべきではない。上記の説明は例示であり、限定的ではないことを理解されたい。それどころか、本説明は、添付の特許請求の範囲によって定義されるような本発明の精神および範囲内に含まれるものとして、さもなければ当業者によって認識されるものとして代替物、改変物、および等価物を包含することが意図される。したがって、本発明の範囲は、上記の説明を参照せずに決定されるべきであり、その代わりに、添付の特許請求の範囲を参照して、均等物の全範囲とともに決定されるべきである。
図1
図2
図3