IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ フルストーリー・インコーポレイテッドの特許一覧

特表2022-544192ユーザインターフェースデータ収集におけるユーザプライバシーの保護
<>
  • 特表-ユーザインターフェースデータ収集におけるユーザプライバシーの保護 図1
  • 特表-ユーザインターフェースデータ収集におけるユーザプライバシーの保護 図2A
  • 特表-ユーザインターフェースデータ収集におけるユーザプライバシーの保護 図2B
  • 特表-ユーザインターフェースデータ収集におけるユーザプライバシーの保護 図2C
  • 特表-ユーザインターフェースデータ収集におけるユーザプライバシーの保護 図3
  • 特表-ユーザインターフェースデータ収集におけるユーザプライバシーの保護 図4
  • 特表-ユーザインターフェースデータ収集におけるユーザプライバシーの保護 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-10-17
(54)【発明の名称】ユーザインターフェースデータ収集におけるユーザプライバシーの保護
(51)【国際特許分類】
   G06F 21/62 20130101AFI20221007BHJP
   G06F 16/21 20190101ALI20221007BHJP
【FI】
G06F21/62 345
G06F16/21
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022507814
(86)(22)【出願日】2020-08-06
(85)【翻訳文提出日】2022-04-06
(86)【国際出願番号】 US2020045208
(87)【国際公開番号】W WO2021026356
(87)【国際公開日】2021-02-11
(31)【優先権主張番号】62/883,551
(32)【優先日】2019-08-06
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】522050365
【氏名又は名称】フルストーリー・インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ジョエル・グレイソン・ウェバー
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175BA01
5B175CA07
(57)【要約】
ユーザセッションのプレイバックを生成するための、コンピュータ記憶媒体上で符号化されたコンピュータプログラムを含む、方法、システム、および装置。一態様では、方法は、発行者のホワイトリスト化ユーザインターフェース要素のセットを指定する構成データをクライアントデバイスに提供することを含む。各ホワイトリスト化ユーザインターフェース要素は、コンテンツがそこから収集されクライアントデバイスから送信されるのに適格なユーザインターフェース要素である。ユーザセッション中に提示されたユーザインターフェースの構造を指定するインターフェースデータ、ユーザインターフェースとのユーザ対話を指定するユーザ対話データ、および(i)ユーザインターフェースによって提示されたが、(ii)構成データによって指定されるホワイトリスト化ユーザインターフェース要素に整合する、1つまたは複数の第1の提示されたユーザインターフェース要素のコンテンツを含む、イベントデータがクライアントデバイスから受信される。ユーザセッションのプレイバックが、イベントデータに基づいて生成される。
【特許請求の範囲】
【請求項1】
発行者のホワイトリスト化ユーザインターフェース要素のセットを指定する構成データをクライアントデバイスに提供するステップであって、各ホワイトリスト化ユーザインターフェース要素が、コンテンツがそこから収集され前記クライアントデバイスから送信されるのに適格なユーザインターフェース要素である、ステップと、
前記クライアントデバイスから、かつユーザがその中で前記発行者の1つまたは複数のユーザインターフェースと対話したユーザセッションに対して、イベントデータを受信するステップであって、前記イベントデータが、
前記ユーザセッション中に提示された前記1つまたは複数のユーザインターフェースの構造を指定するインターフェースデータ、
前記1つまたは複数のユーザインターフェースとのユーザ対話を指定するユーザ対話データ、および
(i)前記1つまたは複数のユーザインターフェースによって提示されたが、(ii)前記構成データによって指定されるホワイトリスト化ユーザインターフェース要素に整合する、1つまたは複数の第1の提示されたユーザインターフェース要素のコンテンツを含み、前記クライアントデバイスが、前記構成データによって指定されるホワイトリスト化ユーザインターフェース要素に整合しない1つまたは複数の第2の提示されたユーザインターフェース要素のコンテンツを提供しない、ステップと、
前記1つまたは複数のユーザインターフェース、前記1つまたは複数の第1の提示されたユーザインターフェース要素の前記コンテンツ、前記1つまたは複数のユーザインターフェースとの前記ユーザ対話、また前記1つまたは複数の第2のユーザインターフェース要素のコンテンツに対しては、前記第2のユーザインターフェース要素の実際のコンテンツをマスクしながら前記第2のユーザインターフェース要素の前記コンテンツを表すマスキング要素を提示する、前記ユーザセッションのプレイバックを、前記イベントデータに基づいて生成するステップと
を備える方法。
【請求項2】
前記構成データが、ホワイトリスト化ユーザインターフェース要素ごとに、タグの所与のセット内の所与のフィールドを指定する、請求項1に記載の方法。
【請求項3】
提示されたユーザインターフェース要素がタグの前記所与のセットの前記所与のフィールドによって定義されるときはいつでも、前記提示されたユーザインターフェース要素がホワイトリスト化ユーザインターフェース要素に整合する、請求項2に記載の方法。
【請求項4】
タグの前記所与のセットが、前記1つまたは複数のユーザインターフェースの各々に対して前記ユーザインターフェースの前記構造を表す、ドキュメントオブジェクトモデルのタグを備える、請求項2に記載の方法。
【請求項5】
1つまたは複数のユーザインターフェースがハイパーテキストマークアップ言語(HTML)文書を備え、タグの前記所与のセットがHTMLタグを備える、請求項2に記載の方法。
【請求項6】
前記ユーザセッションの前記プレイバックにおける前記1つまたは複数のユーザインターフェースのうちの少なくとも1つによって提示されている、ユーザインターフェースとのユーザ対話を、前記ユーザセッションの前記プレイバック中に検出するステップと、
前記ユーザ対話の検出に応答して、前記ユーザインターフェース要素のホワイトリストステータスを変更するステップとをさらに備え、前記ホワイトリストステータスが、コンテンツ項目が前記クライアントデバイスから収集されるべきコンテンツを含むかどうかを指定する、
請求項1に記載の方法。
【請求項7】
前記コンテンツ項目の前記ホワイトリストステータスを変更するステップが、
前記ユーザインターフェース要素のコンテンツを含むフィールドを、前記ユーザインターフェース要素を含む前記ユーザインターフェースの前記構造を指定する前記インターフェースデータから決定するステップと、
ホワイトリスト化コンテンツを指定するホワイトリスト上に前記フィールドがあるときはいつでも前記ホワイトリスト化コンテンツから前記フィールドを除去するステップと、
前記ホワイトリスト化コンテンツを指定する前記ホワイトリスト上に前記フィールドがないときはいつでも前記ホワイトリストに前記フィールドを追加するステップとを備える、
請求項6に記載の方法。
【請求項8】
前記ユーザセッションのプレイバックを生成するステップが、
所与の第2のユーザインターフェース要素に対するタグを、前記ユーザセッション中に提示された前記1つまたは複数のユーザインターフェースの前記構造を指定する前記インターフェースデータの中で識別するステップと、
前記所与の第2のユーザインターフェース要素のコンテンツを含むオブジェクトの提示サイズを決定するステップと、
前記オブジェクトの前記提示サイズに基づいて、前記所与の第2のユーザインターフェース要素の前記コンテンツを表すマスキング要素のサイズを合わせるステップとを備える、
請求項1に記載の方法。
【請求項9】
ホワイトリスト化ユーザインターフェース要素のセットを指定する構成データをクライアントデバイスに提供するステップが、
前記1つまたは複数のユーザインターフェースのうちの1つの、アプリケーションによるローディングに応答して、前記構成データを求める要求を前記クライアントデバイスから受信するステップと、
前記要求の受信に応答して前記構成データを提供するステップとを備える、
請求項1に記載の方法。
【請求項10】
システムであって、
データ記憶装置、および
1つまたは複数のコンピュータであって、前記データ記憶装置と相互作用し、前記1つまたは複数のコンピュータに動作を実行させる命令を実行する、1つまたは複数のコンピュータを備え、前記動作が、
発行者のホワイトリスト化ユーザインターフェース要素のセットを指定する構成データをクライアントデバイスに提供することであって、各ホワイトリスト化ユーザインターフェース要素が、コンテンツがそこから収集され前記クライアントデバイスから送信されるのに適格なユーザインターフェース要素である、提供することと、
前記クライアントデバイスから、かつユーザがその中で前記発行者の1つまたは複数のユーザインターフェースと対話したユーザセッションに対して、イベントデータを受信することであって、前記イベントデータが、
前記ユーザセッション中に提示された前記1つまたは複数のユーザインターフェースの構造を指定するインターフェースデータ、
前記1つまたは複数のユーザインターフェースとのユーザ対話を指定するユーザ対話データ、および
(i)前記1つまたは複数のユーザインターフェースによって提示されたが、(ii)前記構成データによって指定されるホワイトリスト化ユーザインターフェース要素に整合する、1つまたは複数の第1の提示されたユーザインターフェース要素のコンテンツを含み、前記クライアントデバイスが、前記構成データによって指定されるホワイトリスト化ユーザインターフェース要素に整合しない1つまたは複数の第2の提示されたユーザインターフェース要素のコンテンツを提供しない、受信することと、
前記1つまたは複数のユーザインターフェース、前記1つまたは複数の第1の提示されたユーザインターフェース要素の前記コンテンツ、前記1つまたは複数のユーザインターフェースとの前記ユーザ対話、また前記1つまたは複数の第2のユーザインターフェース要素のコンテンツに対しては、前記第2のユーザインターフェース要素の実際のコンテンツをマスクしながら前記第2のユーザインターフェース要素の前記コンテンツを表すマスキング要素を提示する、前記ユーザセッションのプレイバックを、前記イベントデータに基づいて生成することとを備える、
システム。
【請求項11】
前記構成データが、ホワイトリスト化ユーザインターフェース要素ごとに、タグの所与のセット内の所与のフィールドを指定する、請求項10に記載のシステム。
【請求項12】
提示されたユーザインターフェース要素がタグの前記所与のセットの前記所与のフィールドによって定義されるときはいつでも、前記提示されたユーザインターフェース要素がホワイトリスト化ユーザインターフェース要素に整合する、請求項11に記載のシステム。
【請求項13】
タグの前記所与のセットが、前記1つまたは複数のユーザインターフェースの各々に対して前記ユーザインターフェースの前記構造を表す、ドキュメントオブジェクトモデルのタグを備える、請求項11に記載のシステム。
【請求項14】
1つまたは複数のユーザインターフェースがハイパーテキストマークアップ言語(HTML)文書を備え、タグの前記所与のセットがHTMLタグを備える、請求項11に記載のシステム。
【請求項15】
前記動作が、
前記ユーザセッションの前記プレイバックにおける前記1つまたは複数のユーザインターフェースのうちの少なくとも1つによって提示されている、ユーザインターフェースとのユーザ対話を、前記ユーザセッションの前記プレイバック中に検出することと、
前記ユーザ対話の検出に応答して、前記ユーザインターフェース要素のホワイトリストステータスを変更することとを備え、前記ホワイトリストステータスが、コンテンツ項目が前記クライアントデバイスから収集されるべきコンテンツを含むかどうかを指定する、
請求項10に記載のシステム。
【請求項16】
前記コンテンツ項目の前記ホワイトリストステータスを変更することが、
前記ユーザインターフェース要素のコンテンツを含むフィールドを、前記ユーザインターフェース要素を含む前記ユーザインターフェースの前記構造を指定する前記インターフェースデータから決定することと、
ホワイトリスト化コンテンツを指定するホワイトリスト上に前記フィールドがあるときはいつでも前記ホワイトリスト化コンテンツから前記フィールドを除去することと、
前記ホワイトリスト化コンテンツを指定する前記ホワイトリスト上に前記フィールドがないときはいつでも前記ホワイトリストに前記フィールドを追加することとを備える、
請求項15に記載のシステム。
【請求項17】
前記ユーザセッションのプレイバックを生成することが、
所与の第2のユーザインターフェース要素に対するタグを、前記ユーザセッション中に提示された前記1つまたは複数のユーザインターフェースの前記構造を指定する前記インターフェースデータの中で識別することと、
前記所与の第2のユーザインターフェース要素のコンテンツを含むオブジェクトの提示サイズを決定することと、
前記オブジェクトの前記提示サイズに基づいて、前記所与の第2のユーザインターフェース要素の前記コンテンツを表すマスキング要素のサイズを合わせることとを備える、
請求項10に記載のシステム。
【請求項18】
ホワイトリスト化ユーザインターフェース要素のセットを指定する構成データをクライアントデバイスに提供することが、
前記1つまたは複数のユーザインターフェースのうちの1つの、アプリケーションによるローディングに応答して、前記構成データを求める要求を前記クライアントデバイスから受信することと、
前記要求の受信に応答して前記構成データを提供することとを備える、
請求項10に記載のシステム。
【請求項19】
1つまたは複数のコンピュータによる実行時に前記1つまたは複数のコンピュータに動作を実行させる命令を記憶する非一時的コンピュータ可読媒体であって、前記動作が、
発行者のホワイトリスト化ユーザインターフェース要素のセットを指定する構成データをクライアントデバイスに提供することであって、各ホワイトリスト化ユーザインターフェース要素が、コンテンツがそこから収集され前記クライアントデバイスから送信されるのに適格なユーザインターフェース要素である、提供することと、
前記クライアントデバイスから、かつユーザがその中で前記発行者の1つまたは複数のユーザインターフェースと対話したユーザセッションに対して、イベントデータを受信することであって、前記イベントデータが、
前記ユーザセッション中に提示された前記1つまたは複数のユーザインターフェースの構造を指定するインターフェースデータ、
前記1つまたは複数のユーザインターフェースとのユーザ対話を指定するユーザ対話データ、および
(i)前記1つまたは複数のユーザインターフェースによって提示されたが、(ii)前記構成データによって指定されるホワイトリスト化ユーザインターフェース要素に整合する、1つまたは複数の第1の提示されたユーザインターフェース要素のコンテンツを含み、前記クライアントデバイスが、前記構成データによって指定されるホワイトリスト化ユーザインターフェース要素に整合しない1つまたは複数の第2の提示されたユーザインターフェース要素のコンテンツを提供しない、受信することと、
前記1つまたは複数のユーザインターフェース、前記1つまたは複数の第1の提示されたユーザインターフェース要素の前記コンテンツ、前記1つまたは複数のユーザインターフェースとの前記ユーザ対話、また前記1つまたは複数の第2のユーザインターフェース要素のコンテンツに対しては、前記第2のユーザインターフェース要素の実際のコンテンツをマスクしながら前記第2のユーザインターフェース要素の前記コンテンツを表すマスキング要素を提示する、前記ユーザセッションのプレイバックを、前記イベントデータに基づいて生成することとを備える、
非一時的コンピュータ可読媒体。
【請求項20】
前記構成データが、ホワイトリスト化ユーザインターフェース要素ごとに、タグの所与のセット内の所与のフィールドを指定する、請求項19に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザインターフェースデータ収集におけるユーザプライバシーの保護に関する。
【背景技術】
【0002】
ユーザインターフェースは、様々なリソースおよびアプリケーションとのユーザ対話を容易にする。たとえば、ユーザインターフェースは、一般に、ユーザが、(たとえば、テキストボックスを使用して)データを入力すること、(たとえば、ラジオボタン、チェックボックス、またはドロップダウンメニューを使用して)データ選択を行うこと、(たとえば、埋込み式リンクと対話することによって)リソースまたはアプリケーションページにナビゲートすること、およびユーザインターフェースの視覚的な様相を変更する(たとえば、デバイスを回転させる、ウィンドウのサイズを変更する、文書の他の部分へスクロールする、またはズーム制御を使用する)ことを可能にする、様々な対話型要素を含む。
【0003】
所与のウェブサイトまたはアプリケーションへの利用者満足度が、ユーザインターフェースを伴うユーザの体験に依存することができるので、ユーザインターフェースを用いたユーザセッションが記録され得るとともに発行者にプレイバックされ得る。バンキングウェブページまたはアプリケーションのユーザインターフェースなどのいくつかのユーザインターフェースは、ユーザインターフェースと対話しているユーザのプライベートデータまたは他のプライベートコンテンツを提示する。このコンテンツは、通常、ユーザインターフェースの品質および機能性を査定する際には有用でなく、他の当事者に提示されるべきでないので、そのようなコンテンツがプレイバックの一部でないことを確実にするように対処されるべきである。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許出願第16/038,002号
【特許文献2】米国特許出願第16/370,574号
【特許文献3】米国特許第9,766,769号
【発明の概要】
【課題を解決するための手段】
【0005】
概して、本明細書で説明する主題の1つの発明的態様は、発行者のホワイトリスト化ユーザインターフェース要素のセットを指定する構成データをクライアントデバイスに提供することを含む方法で具現され得る。各ホワイトリスト化ユーザインターフェース要素は、コンテンツがそこから収集されクライアントデバイスから送信されるのに適格なユーザインターフェース要素である。ユーザがその中で発行者の1つまたは複数のユーザインターフェースと対話したユーザセッションのためのイベントデータ。イベントデータは、ユーザセッション中に提示された1つまたは複数のユーザインターフェースの構造を指定するインターフェースデータ、1つまたは複数のユーザインターフェースとのユーザ対話を指定するユーザ対話データ、および(i)1つまたは複数のユーザインターフェースによって提示されたが、(ii)構成データによって指定されるホワイトリスト化ユーザインターフェース要素に整合する、1つまたは複数の第1の提示されたユーザインターフェース要素のコンテンツを含む。クライアントデバイスは、構成データによって指定されるホワイトリスト化ユーザインターフェース要素に整合しない1つまたは複数の第2の提示されたユーザインターフェース要素のコンテンツを提供しない。ユーザセッションのプレイバックが、イベントデータに基づいて生成される。プレイバックは、1つまたは複数のユーザインターフェース、1つまたは複数の第1の提示されたユーザインターフェース要素のコンテンツ、1つまたは複数のユーザインターフェースとのユーザ対話、また1つまたは複数の第2のユーザインターフェース要素のコンテンツに対しては、第2のユーザインターフェース要素の実際のコンテンツをマスクしながら第2のユーザインターフェース要素のコンテンツを表すマスキング要素を提示する。この態様の他の実施形態は、コンピュータ記憶デバイス上で符号化される、本方法のアクションを実行するように構成された、対応する方法、装置、およびコンピュータプログラムを含む。
【0006】
これらおよび他の実施形態は各々、以下の特徴のうちの1つまたは複数を随意に含むことができる。いくつかの態様では、構成データは、ホワイトリスト化ユーザインターフェース要素ごとに、タグの所与のセット内の所与のフィールドを指定する。提示されたユーザインターフェース要素がタグの所与のセットの所与のフィールドによって定義されるときはいつでも、提示されたユーザインターフェース要素は、ホワイトリスト化ユーザインターフェース要素に整合することができる。タグの所与のセットは、1つまたは複数のユーザインターフェースの各々に対してユーザインターフェースの構造を表す、ドキュメントオブジェクトモデルのタグを含むことができる。1つまたは複数のユーザインターフェースはハイパーテキストマークアップ言語(HTML)文書を含むことができ、タグの所与のセットはHTMLタグを備える。
【0007】
いくつかの態様は、ユーザセッションのプレイバックにおける1つまたは複数のユーザインターフェースのうちの少なくとも1つによって提示されている、ユーザインターフェースとのユーザ対話を、ユーザセッションのプレイバック中に検出することと、ユーザ対話の検出に応答して、ユーザインターフェース要素のホワイトリストステータスを変更することとを含むことができる。ホワイトリストステータスは、コンテンツ項目がクライアントデバイスから収集されるべきコンテンツを含むかどうかを指定する。コンテンツ項目のホワイトリストステータスを変更することは、ユーザインターフェース要素のコンテンツを含むフィールドを、ユーザインターフェース要素を含むユーザインターフェースの構造を指定するインターフェースデータから決定することを含むことができる。ホワイトリスト化コンテンツを指定するホワイトリスト上にフィールドがあるときはいつでもホワイトリスト化コンテンツからフィールドが除去される。ホワイトリスト化コンテンツを指定するホワイトリスト上にフィールドがないときはいつでもホワイトリストにフィールドが追加される。
【0008】
いくつかの態様では、ユーザセッションのプレイバックを生成することは、所与の第2のユーザインターフェース要素に対するタグを、ユーザセッション中に提示された1つまたは複数のユーザインターフェースの構造を指定するインターフェースデータの中で識別することと、所与の第2のユーザインターフェース要素のコンテンツを含むオブジェクトの提示サイズを決定することと、オブジェクトの提示サイズに基づいて、所与の第2のユーザインターフェース要素のコンテンツを表すマスキング要素のサイズを合わせることとを含むことができる。
【0009】
いくつかの態様では、ホワイトリスト化ユーザインターフェース要素のセットを指定する構成データをクライアントデバイスに提供することは、1つまたは複数のユーザインターフェースのうちの1つの、アプリケーションによるローディングに応答して、構成データを求める要求をクライアントデバイスから受信することと、要求の受信に応答して構成データを提供することとを含むことができる。
【0010】
本明細書で説明する主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実施され得る。本明細書で説明する技法は、ユーザインターフェースが提示された方式およびユーザセッション中に行われたユーザインターフェースへの変更を正確に反映する、ユーザセッションのプレイバックを生成するのに十分な情報を依然として収集しながら、コンテンツ、たとえば、プライベートコンテンツまたは機密コンテンツがユーザのデバイスから収集されることを防止することによって、ユーザのプライバシーを保護する。
【0011】
プレイバック中にテキストを表すマスキング要素のサイズを正しく合わせるために、テキストを含むオブジェクトのサイズを使用するテキスト置換技法は、テキストが提示された方式を、実際のテキストを提示することなく正確に反映する。これらの技法はより正確であり、テキスト置換のサイズを正確に合わせるために、実際のテキストを他のテキストと置換する技法よりも低い処理能力および少ない計算リソースしか必要としない。テキストを非テキスト表現と置換することは、そのような代用を逆転させるための能力を不可能にすることによって、他のテキストをプライベートテキストの代わりにする技法に比べてユーザのプライバシーをさらに保護する。どのオブジェクトに対してサイズ情報を収集すべきかを決定するための、本明細書で説明する技法は、すべてのオブジェクトに対してサイズ情報を取得する技法に比べて、サイズ情報を取得する際に(たとえば、リソース、処理能力、時間などに関して)計算コストを低減する。
【0012】
ユーザインターフェースがロードされるときに、収集されるべきホワイトリスト化コンテンツを指定する構成データをアプリケーション(たとえば、ウェブブラウザまたはネイティブアプリケーション)に提供することは、ウェブページまたはネイティブアプリケーションのコードにプログラム的な変更を加える必要なく、任意の時間において発行者がホワイトリスト化コンテンツを更新することを可能にする。このことは、更新を生成し、テストし、かつ配信する、時間およびコストがかかるプロセスを必要とすることなく、収集されるデータへの迅速かつ動的な変更を可能にする。本明細書で説明するユーザインターフェースは、ユーザセッションのプレイバック中にホワイトリスト化されるかまたはホワイトリストから除去されるべきコンテンツを発行者が簡単に選択することを可能にすることによって、このプロセスをさらに簡略化しその速度を速めることができる。
【0013】
本明細書で説明する主題の1つまたは複数の実施形態の詳細が、添付図面および以下の説明において記載される。本主題の他の特徴、態様、および利点が、説明、図面、および特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【0014】
図1】ユーザがその中でユーザインターフェースと対話する例示的な環境のブロック図である。
図2A】ユーザセッション中に提示される例示的なユーザインターフェースの図である。
図2B図2Aのユーザインターフェースを生成するために使用される例示的なハイパーテキストマークアップ言語(HTML)文書の一部分を示す図である。
図2C図2Aのユーザインターフェースの一部分のツリー構造の図である。
図3】ユーザセッションをリプレイするための例示的な対話型インターフェースの図である。
図4】ユーザセッションのプレイバックを提示する対話型インターフェースを生成および提供するための例示的なプロセスのフローチャートである。
図5】ユーザインターフェース要素のホワイトリストステータスを更新するための例示的なプロセスのフローチャートである。
【発明を実施するための形態】
【0015】
様々な図面の中の同様の参照番号および呼称は、同様の要素を示す。
【0016】
本明細書で説明する技法は、ユーザインターフェースを見るとともにユーザインターフェースと対話するユーザのプライバシーを同じく保護しながら、ユーザインターフェースと対話する肯定的な体験をユーザが有するように、発行者が彼らのユーザインターフェース(たとえば、ウェブページまたはアプリケーションインターフェース)を最適化することを可能にする。ユーザプライバシーを保護すべき必要性は、高まりつつある関心事になっているので、ユーザデータに触れるいかなる技術においても、これらの技法は極めて重要である。本明細書で説明する技法は、ユーザデータが絶えずユーザデバイスから収集または転送されることを防止し、データが送信中に傍受され得ないことまたは別のデバイスから盗まれ得ないことを確実にする。同時に、実際のユーザデータを見せることなく、ユーザに提示されたユーザインターフェース、ユーザセッション中に行われたユーザインターフェースへの変更、およびユーザセッション中に行われたユーザ対話を正確に反映するユーザセッションを再作成するために、ユーザインターフェースの構造およびユーザインターフェースの中で提示される要素のサイズに関係するデータなどの、極めて詳細なデータが収集され得る。
【0017】
たとえば、銀行のウェブサイトまたはモバイルアプリケーションは、顧客の残高、取引、およびユーザにとってプライベートな他のデータを顧客に見せる。ウェブサイトまたはアプリケーションの品質を査定する際に、取引および残高を示す実際のテキストは必要とされず、顧客は、そのようなデータが、プレイバックおよび分析のためにユーザインターフェースデータを収集するサードパーティと共有されないことを好むことになる。本明細書で説明する技法は、顧客によって見られるユーザインターフェースを正確に、ただし、ユーザの実際のデータを伴わずに、プレイバックが反映するように、そのようなデータが収集されることを防止し、プレイバックにおいてデータを置換する。
【0018】
本技法はまた、発行者のユーザインターフェースを用いたユーザセッション中にどんなデータが収集されるのかについて、微調整された制御を発行者に与える。発行者は、プレイバック中に単にコンテンツと対話(たとえば、選択)することによって、収集または遮断されるべきコンテンツを容易に選択することができる。たとえば、小売業者が、仮想ショッピングカートの中に置かれた品物の数量を見ること、ユーザが数量セレクタとどのように対話するのかを見ること、および数量セレクタの機能性を査定することを望むと決定する場合、その小売業者は、単にユーザセッションのうちの1つのプレイバック中に数量セレクタを選択することができる。別の顧客が後で同じウェブページまたはアプリケーションページを見ると、数量セレクタを使用して選択された品物の数量が、そのユーザセッションのプレイバックのために記録される。小売業者は、単にユーザセッションのプレイバック中に再び数量セレクタと対話(たとえば、選択)することによって、数量の収集を後でやめることができる。このことはすべて、小売業者がウェブページまたはアプリケーションにいかなるプログラム的な変更も加える必要なくバックエンドで(たとえば、サーバにおいて)処理され得る。
【0019】
発行者(たとえば、ウェブページおよび/またはアプリケーションインターフェースなどのユーザインターフェースを提供するエンティティ)は、一般に、ユーザが肯定的な体験を有するようにユーザインターフェースを利用者本位にさせることを望む。所与のユーザインターフェース(たとえば、ウェブページまたはアプリケーションインターフェース)とのユーザ対話、およびユーザインターフェースを用いたユーザセッション中に発生するイベントについての情報を有することは、ユーザエクスペリエンスを改善するように変更され得るユーザインターフェースの様相を発行者が迅速に識別する助けとなり得る。これらの様相は、ユーザインターフェースとの実際のユーザ対話を使用して識別され得、それによって、外部利用者調査を実施するかまたはユーザインターフェースについての主観的なフィードバックに依拠すべき必要性をなくす。むしろ、ユーザインターフェースとのユーザの記録された実際の対話、および/または対話の特性に基づくこれらのユーザ対話の分類が、ユーザエクスペリエンスを改善するように変更され得る、ユーザインターフェースの範囲を明らかにする。
【0020】
本明細書は、指定されたコンテンツ、たとえば、機密データまたはプライベートデータを含むことがあるコンテンツの収集を防止するための技法を説明する。コンテンツは、プレイバックの中で提示されるユーザインターフェースが実際のユーザセッション中に提示されたユーザインターフェースを反映するような同じサイズを有するコンテンツと、ユーザセッションのプレイバックの中で置換され得る。たとえば、テキストを置換するために使用される要素のサイズが実際のテキストよりも大きい場合、このことは、他のユーザインターフェース要素を不適切に、たとえば、互いの上に、または画面上の不適切なロケーションにおいて、提示させることがある。
【0021】
図1は、ユーザがその中でユーザインターフェースと対話する例示的な環境100のブロック図である。例示的な環境100は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはそれらの組合せなどの、ネットワーク102を含む。ネットワーク102は、ユーザデバイス120、発行者130、ウェブサイト140、および評価装置110を接続する。例示的な環境100は、多くの異なるユーザデバイス120、発行者130、およびウェブサイト140を含んでよい。
【0022】
ウェブサイト140は、ドメイン名に関連付けられ1つまたは複数のサーバによってホストされる1つまたは複数のリソース145である。例示的なウェブサイトは、テキスト、画像、マルチメディアコンテンツ、およびスクリプトなどのプログラミング要素を含むことができるHTMLでフォーマッティングされたウェブページの集合である。各ウェブサイト140は、ウェブサイト140を制御、管理、および/または所有するエンティティである発行者130によって保守される。
【0023】
リソース145は、ネットワーク102を介して提供され得る任意のデータである。リソース145は、リソース145に関連付けられているリソースアドレスによって識別される。リソースは、ほんのいくつかの例を挙げれば、HTMLページ、ワードプロセシング文書、およびポータブルドキュメントフォーマット(PDF)文書、画像、ビデオ、ならびにフィードソースを含む。リソースは、(ハイパーリンクにおけるメタ情報などの)埋込み式情報および/または(スクリプトなどの)埋込み式命令を含むことがある、単語、フレーズ、画像、およびサウンドなどのコンテンツを含むことができる。
【0024】
クライアントデバイスとも呼ばれるユーザデバイス120は、ネットワーク102を介してリソースを要求および受信することが可能な電子デバイスである。例示的なユーザデバイス120は、パーソナルコンピュータ、モバイル通信デバイス(たとえば、タブレットコンピュータ、スマートフォン、ウェアラブルデバイスなど)、およびネットワーク102を介してデータを送ることおよび受信することができる他のデバイスを含む。ユーザデバイス120は、通常、ネットワーク102を介してデータを送ることおよび受信することを容易にするために、ウェブブラウザおよび/またはネイティブアプリケーションなどの1つまたは複数のユーザアプリケーション121を含む。ネイティブアプリケーションは、特定のプラットフォームまたは特定のデバイスのために開発されたアプリケーションである。発行者130は、ネイティブアプリケーションを開発しユーザデバイス120に提供することができる。たとえば、ユーザは、ネイティブアプリケーションを彼らのユーザデバイス120にダウンロードすることができる。
【0025】
ユーザデバイス120は、ウェブサイト140にリソース145を要求するリソース要求122を、サブミットすることができる。今度は、要求されたリソース124を表すデータが、ユーザデバイス120のウェブブラウザによる提示のためにユーザデバイス120に提供され得る。要求されたリソース145は、たとえば、ウェブサイト140のホームページ、ソーシャルネットワークからのウェブページ、または別のリソース145であり得る。要求されたリソース124を表すデータは、ユーザデバイス120においてコンテンツ(たとえば、リソースのコードの中に含まれるテキストなどの埋込み式コンテンツ)の提示を生じさせるデータを含むことができる。コンテンツは、個々の画像、ボタン、アイコン、ロゴ、テキストのグループ、またはコンテンツの他のユニットなどの、個々のコンテンツ項目を含むことができる。
【0026】
要求されたリソース124を表すデータはまた、ユーザデバイス120に、リモートコンテンツをコンテンツ記憶装置150に要求させる、命令を含むことができる。リモートコンテンツは、たとえば、画像、周期的に更新されるコンテンツ、複数の異なるリソースにわたって使用されるコンテンツ、または(たとえば、発行者以外の)サードパーティによって提供されるコンテンツを含むことができる。したがって、リモートコンテンツは、リソースコードを更新する必要なく、更新または変更され得る。
【0027】
ネイティブアプリケーションはまた、コンテンツを求める要求をユーザデバイス120がサブミットするかまたはサブミットせずに、コンテンツを提示することができる。たとえば、いくつかのネイティブアプリケーション、たとえば、ゲームは、コンテンツを求める要求を必要とすることなく、ユーザデバイス120において記憶されたコンテンツを提示することができる。他のネイティブアプリケーション、たとえば、ニュースアプリケーションは、ネイティブアプリケーションの発行者130によって保守されるアプリケーションサーバから取得されるコンテンツを、要求および提示することができる。
【0028】
評価装置110は、発行者130のユーザインターフェースを用いたユーザセッションのプレイバックを提示する対話型インターフェースを生成し、それを発行者130のデバイスに提供する。対話型インターフェースを生成するために、評価装置110は、ユーザデバイス120からイベントデータ115を収集する。本明細書全体にわたって使用するイベントデータという句は、ユーザセッション中にユーザデバイス120から取得されるデータを指す。ユーザセッションとは、発行者130の、たとえば、ウェブサイトまたはネイティブアプリケーションの、ある期間の1つまたは複数のユーザインターフェースとのユーザ対話である。ウェブサイトのコンテキストでは、ユーザセッションは、ユーザが所与のドメイン(たとえば、example.com)に最初のリソースを要求すると開始することができ、セッション終了条件が満たされると終了することができる。ネイティブアプリケーションのコンテキストでは、ユーザセッションは、ユーザがネイティブアプリケーションを起動すると開始することができ、セッション終了条件が満たされると終了することができる。セッション終了条件は、所与のドメインまたはネイティブアプリケーションからのリソースとのユーザ対話から、指定された時間量が経過すると満たされたと見なされ得る。たとえば、ユーザが30分間(または、いくらかの他の時間量)にわたって所与のドメインまたはネイティブアプリケーションからのリソースと対話していない場合、セッション終了条件は満たされたものと見なすことができ、それによって、セッションを終える。
【0029】
セッション終了条件はまた、セッション終了イベントが発生すると満たされたと見なされ得る。セッション終了イベントは、たとえば、ユーザが所与のドメインから離れてナビゲートしたかもしくはブラウザをクローズしたことを示すセッション終了メッセージ、またはユーザがネイティブアプリケーションをクローズしたことを指定するメッセージの受信であり得る。ユーザデバイス120がセッション終了メッセージを評価装置110へサブミットする前の少しの間(たとえば、ユーザがブラウザを再びオープンするか、またはネイティブアプリケーションを再び起動するまで)、セッション終了イベントがユーザデバイス120において記憶されてよいことに留意されたい。
【0030】
アプリケーション121(たとえば、ウェブブラウザまたはネイティブアプリケーション)は、アプリケーション121に関係するイベントデータ115を収集しそれを評価装置110へ送るように構成され得る。たとえば、発行者130は、評価装置110を管理するサードパーティからコンピュータ可読コードを取得することができ、そのコードをウェブサイトまたはネイティブアプリケーションの中にインストールすることができる。コードは、アプリケーションプログラミングインターフェース(API)、ライブラリ、ソフトウェア開発キット(SDK)、計装モジュールを起動するコード、またはデータを収集する(または、アプリケーション121に収集させる)ことおよびデータを評価装置110へ送ることが可能な他のコードの形態をなし得る。以下で説明するように、アプリケーション121は、どんなコンテンツが収集され得るとともに評価装置110へ送られ得るのかを決定するために、ホワイトリスト125にアクセスするように構成され得る。
【0031】
イベントデータ115は、ユーザセッションのプレイバックを生成するために使用され得るデータを含むことができる。ユーザセッションのビデオを記録するのではなく、アプリケーション121は、ユーザセッションを再作成するために、たとえば、ユーザセッションのプレイバックを作成するために使用される、イベントデータ115を収集することができる。このことは、ユーザデバイス120が記憶しネットワーク102を介して送るデータの量を減らし、帯域幅消費、モバイルデバイスのデータ使用量を減らし、かつ/またはユーザデバイス120の限定されたメモリの消費を減らす。
【0032】
イベントデータ115は、ユーザセッション中にユーザデバイス120からストリーミングされ得るか、またはユーザデバイス120において収集され得、ユーザセッションが終了した後、またはユーザセッション中に周期的に、評価装置110へ送られ得る。イベントデータ115は、インターフェースデータ、ユーザ対話データ、および/または変異データを含むことができる。インターフェースデータは、セッション中にユーザデバイスにおいて提示されるユーザインターフェースの構造を指定する。たとえば、ユーザデバイス120がリソースをレンダリングするとき、インターフェースデータは、ユーザデバイス120において最初に提示されるリソースの初期ドキュメントオブジェクトモデル(DOM:Document Object Model)であり得る。この例では、DOMは、そのリソースが最初に提示されることを指定することになる。ネイティブアプリケーションの場合、インターフェースデータは、ネイティブアプリケーションのユーザインターフェースによって提示されるオブジェクトの階層を指定するツリー構造を含むことができる。
【0033】
ユーザ対話データは、ユーザデバイスにおけるユーザ対話を指定し、ユーザインターフェースの要素とのユーザ対話を含む。ユーザ対話データは、マウス移動、ユーザクリック、マウスホバー、強調、テキスト入力、およびユーザデバイスにおいて実行される任意の他のユーザ対話を指定することができる。ユーザ対話データは、ユーザデバイスにおけるユーザ対話を指定し、ユーザインターフェースの要素とのユーザ対話を含む。ユーザ対話データは、マウス移動、ユーザクリック、マウスホバー、強調、テキスト入力、およびユーザデバイスにおいて実行される任意の他のユーザ対話を指定することができる。たとえば、ユーザがリストの中の項目上をクリックすることを想定すると、この例では、ユーザ対話データは、ユーザクリックが行われたことを指定し、クリックされたユーザインターフェースの要素を識別する。
【0034】
ユーザが対話した要素に対するユーザ対話データは、要素に対する固有識別子を使用して要素を識別することができる。要素に対する識別子は、ユーザインターフェース要素ごとに固有である英数字シーケンスの形態をなし得る。DOMを含むリソースの場合、リソース識別子は、たとえば、DOM idプロパティから取得される、オブジェクトに対する識別子であり得る。このことは、評価装置110が、複数の異なるユーザの複数のユーザセッションにわたって、各ユーザインターフェース要素との、その回数のユーザ対話を集約することを可能にする。
【0035】
ユーザ対話データはまた、ユーザ対話データが他のデータと協調され得るように、各ユーザ対話がいつ行われたのかを指定するタイムスタンプ情報および/または連続的な番号付け情報を含むことができる。たとえば、ユーザ対話データは、所与のユーザ対話が行われた絶対時間、および/またはユーザ対話のセットの中の他のユーザ対話と比較して所与のユーザ対話がいつ行われたのかを表す数(たとえば、150回の全ユーザ対話のうちのユーザ対話50)を指定することができる。
【0036】
ユーザ対話データは、たとえば、リソース(または、ネイティブアプリケーション)のコードの中に対話追跡スクリプトを挿入することによって取得され得る。対話追跡スクリプトは、マウス移動、クリック、および他のユーザアクションを監視する。タブレットまたは他のタッチスクリーンデバイスのコンテキストでは、対話追跡スクリプトは、ユーザタップ、スワイプ、ピンチ、およびタッチスクリーンデバイスとの他のユーザ対話を監視する。いくつかのネイティブアプリケーションに対して、参照により本明細書に組み込まれる、2018年7月17日に出願された「Capturing and Processing Interactions with a User Interface of a Native Application」と題する米国特許出願第16/038,002号に記載されるように、ユーザ対話データは、どのユーザインターフェース要素が対話されるのかを決定するための反映技法を使用して取得され得る。いくつかのネイティブアプリケーションに対して、参照により本明細書に組み込まれる、2019年3月29日に出願されたCapturing and Processing Interactions with a User interface of a Native Applicationと題する米国特許出願第16/370,574号に記載されるように、ユーザ対話データは、ユーザ対話を検出するスウィズリング(swizzling)方法によって取得され得る。
【0037】
これらの技法を使用して、ユーザ対話データは、ユーザインターフェースを生成するために使用されるDOMまたはビューツリーの現在の構造に基づいて、対話された実際のユーザインターフェース要素を指定することができる。このことは、構造がそれに対して変化することができる動的なユーザインターフェースに対する実際の要素イベントをデータが指定すること、および/または新たな要素がユーザインターフェースによって提示され得ることを可能にする。たとえば、ポップアップウィンドウが、たとえば、スクリプトに基づいてまたはユーザ対話に応答して提示され、かつポップアップウィンドウの要素が対話される場合、対話データは、このデータがネイティブアプリケーションのDOM構造またはビューツリーの一部であることになるので、対話がそれとともに行われたポップアップウィンドウの要素を指定することができる。
【0038】
変異データは、ユーザデバイス120によってレンダリングされる各要素を指定することができ、変異データは、(たとえば、連続的に、または指定された時間にわたってユーザデバイス120によって蓄積された変異データのセットの中でのいずれかで)評価装置110に提供され得る。変異データを使用して、評価装置110は、ブラウザによって実行されるのと同様の方法でDOMを再構成することができる。変異データは、たとえば、リソース(または、ネイティブアプリケーション)のコードの中に変異観測器スクリプトを挿入することによって取得され得る。変異観測器スクリプトは、リソースの構造への変更に対してリソースを監視することができ、ユーザデバイス120におけるローカルメモリの変化を表す変異データを記録することができ、指定されたロケーション(たとえば、評価装置110)に変異データを提供することができる。ユーザセッションの記録されたビデオではなく変異データを提供することは、記録されなければならずまたネットワーク102を横断して転送されなければならないデータの量を減らす。このことは、この技術の否定的なレイテンシ影響および帯域幅消費を限定する。
【0039】
変異データは、ユーザセッション中に行われる、ユーザインターフェースの構造への変更を指定する。たとえば、ユーザがリストの中の項目上をクリックすることを想定すると、そのことは第1の画像を第2の画像と置換させる。この例では、変異観測器スクリプトは、ユーザインターフェースの中での第1の画像の除去および第2の画像の追加を検出することができ、ユーザインターフェースから第1の画像が除去されたことおよびユーザインターフェースの中に第2の画像が挿入されたことを指定する変異データを、ユーザデバイス120において記憶することができる。代替または追加として、変異データは、(たとえば、変異除去と変異追加の両方を指定するのではなく)第2の画像との第1の画像の置換を直接指定することができる。周期的に、ユーザデバイス120は、変異データを評価装置110にアップロード(または、別の方法で送信)することができ、評価装置110は、以下でより詳細に説明するように変異データを処理する。イベントデータを取得しそのデータを使用してユーザセッションのプレイバックを生成および提示するための例示的な技法が、参照により本明細書に組み込まれる、2014年12月31日に出願された「Evaluation of Interactions with a User Interface」と題する米国特許第9,766,769号、および2018年7月17日に出願された「Capturing and Processing Interactions with a User Interface of a Native Application」と題する米国特許出願第16/038,002号に記載されている。
【0040】
いくつかの実装形態では、アプリケーション121は、ホワイトリスト125によって指定されるコンテンツにしかイベントデータ115を提供しない。すなわち、アプリケーション121は、ホワイトリスト125によって指定されるホワイトリスト化コンテンツに整合しないコンテンツを排除する。たとえば、データを収集しそれを評価装置110へ送るために使用される、変異観測器スクリプトおよび/または他のスクリプトもしくはコードは、ホワイトリスト125の中に含まれないコンテンツを、評価装置110に提供されることから排除するように構成され得る。以後の説明を簡単にするために、そのようなコードはアプリケーション121と総称される。
【0041】
ホワイトリスト125は、コンテンツ(たとえば、テキスト、テキストの表、画像、ビデオなど)がそこから収集され得るとともに評価装置110に提供され得るユーザインターフェース要素を指定することができる。ユーザインターフェース要素は、ユーザインターフェースを生成するために使用される文書またはコードの構造に基づいて定義され得る。たとえば、ユーザインターフェースが、HTML文書、拡張可能マークアップ言語(XML)文書、またはその文書を表すDOMを使用して生成される場合、ホワイトリスト化ユーザインターフェース要素は、ノード、タグ、タグ内のフィールド、またはタグ内の属性によって定義され得る。たとえば、ホワイトリスト125は、コンテンツがそこから評価装置110にアップロードされ得るDOMの、特定のタグ、フィールド、属性、または他の構造要素を指定することができる。
【0042】
ホワイトリスト125は、どのユーザインターフェース要素からアプリケーション121がコンテンツを取得できコンテンツを評価装置110に提供できるのかを定義する排除規則を含むことができる。ユーザセッションのためのイベントデータの収集中に、ホワイトリストが、対応する規則をそれに対して含まない、ユーザインターフェース要素にアプリケーション121が遭遇する場合、アプリケーション121は、その構造要素内のコンテンツを評価装置110に提供しなくてよい。代わりに、アプリケーション121は、実際のコンテンツの代わりにマスキング要素がプレイバック中に提示され得るように、構造データ、たとえば、ユーザインターフェース要素を含む要素のサイズを提供することができる。このようにして、実際のコンテンツを伴わずに、ただしプレイバック中に要素のサイズが正確となり、かつユーザセッション中の実際のロケーションに整合しない画面上の他の場所の中にコンテンツがシフトされないように、プレイバックが生成され得る。
【0043】
特定の例では、ホワイトリスト125は、「フォーム(form)」タグの「値(value)」フィールド内のコンテンツが収集され得るとともに評価装置110にアップロードされ得ることを指定する。フォームタグの他のフィールド内のコンテンツは、それらのフィールドがホワイトリスト125の中に含まれないのでイベントデータ115から排除される。
【0044】
発行者130は、彼らのユーザインターフェース用のホワイトリスト125を指定することができる。たとえば、発行者130は、コンテンツがそこから収集され得るとともにユーザデバイス120から評価装置110に提供され得るユーザインターフェース要素を選択することができる。いくつかの実装形態では、発行者130は、そのユーザインターフェース用のホワイトリストを生成することができ、評価装置110にホワイトリストを提供することができる。発行者130はまた、ユーザインターフェース固有のホワイトリストを指定することができる。たとえば、ホームページ用のホワイトリストは、アカウント概要ページ用のホワイトリストとは異なってよい。以下でより詳細に説明するように、発行者130は、そのユーザインターフェースを用いたユーザセッションのプレイバックと対話することによって、そのホワイトリストを生成および更新することができる。
【0045】
ホワイトリスト125は、異なるレベルの粒度でホワイトリスト化ユーザインターフェース要素を指定することができる。たとえば、発行者130のためのホワイトリスト125は、フォームタグ内からのコンテンツが収集され得るとともに評価装置110に提供され得ることを指定することができる。ホワイトリスト125はまた、特定のクラス(たとえば、「タイトル(Title)」クラス)の特定のフィールド(たとえば、h1フィールド)内のコンテンツだけが収集され得るとともに評価装置110に提供され得ることを指定することができる。この例では、特定のクラスが他のフィールドを含む場合、それらのフィールド内のコンテンツは、イベントデータ115から排除され評価装置110に提供されない。
【0046】
いくつかの実装形態では、ブラックリストがホワイトリストに取って代わることができる。たとえば、特定のクラス内のコンテンツが収集され評価装置110へ送られることが可能でないことを、ブラックリストが指定する場合、アプリケーション121は、そのクラスがホワイトリスト125の中のタグおよび/またはフィールドを含んでも、そのクラスの中に含まれるコンテンツを送らない。各発行者130は、そのユーザインターフェースに対して、1つまたは複数のホワイトリストおよび1つまたは複数のブラックリストを指定することができる。
【0047】
ユーザセッションのためのイベントデータ115を収集および生成するとき、アプリケーション121は、ユーザセッション中に提示された提示済みのユーザインターフェース要素を、ホワイトリスト125によって指定されるホワイトリスト化ユーザインターフェース要素と比較することができる。たとえば、アプリケーション121は、提示された使用されるインターフェース要素を定義するタグを、ホワイトリスト化ユーザインターフェース要素のタグと比較することができる。整合があり、かつホワイトリスト125が特定のフィールドを指定しない場合、アプリケーション121は、コンテンツをイベントデータ115の中に含めることができ、それを評価装置110へ送ることができる。ホワイトリスト125が特定のフィールドまたは特定の属性を指定する場合、コンテンツは、コンテンツが特定のフィールド内または特定の属性内にある場合のみイベントデータ115の中に含められる。
【0048】
特定の例では、イベントデータ115は、一連のデータ項目、たとえば、トークンを含むことができる。インターフェースデータは、タグ、フィールド、属性など、および初期DOMの中のそれらのコンテンツを、一連のデータの中に含むことができる。同様に、変異データは、タグ、フィールド、属性など、およびDOMの変更された任意の部分のそれらのコンテンツを、一連のデータの中に含むことができる。アプリケーション121は、一連のデータ項目の中のタグ、フィールド、属性などをホワイトリストと比較することができる。一連のデータ項目の中のコンテンツがホワイトリストに整合しない場合、アプリケーション121は、イベントデータ115が評価装置110へ送られる前に、イベントデータ115からそのコンテンツを除去することができる。
【0049】
いくつかの実装形態では、いくつかのコンテンツは、ホワイトリストと比較されることなく評価装置110へ送られ得る。たとえば、スタイルフィールドなどのプログラム的な要素は、ユーザセッションの正確なプレイバックを生成するために使用され得るデータを含むが、機密データまたはプライベートデータを含まないことになる。そのようなデータは、ホワイトリスト125上になくても評価装置110へ送られ得る。たとえば、アプリケーション121は、プログラム的な要素のセット内のテキストを収集し、イベントデータ115の中にそのテキストを含めるように構成され得る。
【0050】
評価装置110は、ホワイトリストデータ記憶装置114の中にホワイトリスト125を記憶することができる。ユーザデバイス120において発行者130のユーザインターフェースがロードされると、アプリケーション121は、発行者130のためのホワイトリストを指定する構成データ118を要求することができる。たとえば、ウェブサイト上またはネイティブアプリケーション内にインストールされたコードが、アプリケーション121に、構成データ118を評価装置110に要求させることができる。それに応答して、評価装置110は、発行者130のための現在のホワイトリスト125をホワイトリストデータ記憶装置114から取得することができ、ホワイトリスト125を指定する構成データ118をユーザデバイス120に提供することができる。このようにして、ホワイトリスト125への更新ごとに発行者130がアプリケーション121またはユーザインターフェースにいかなるプログラム的な変更も加える必要なく、アプリケーション121は、ユーザセッションごとに最も最新のホワイトリスト125を使用することができる。
【0051】
イベントデータ115は、1つまたは複数のデータ送信の中で評価装置110へ送信され得る。たとえば、各タイプのイベントデータ115は、互いのタイプのイベントデータとは別個に送られ得る。別の例では、ページごとのイベントデータ115が、ユーザデバイス120上にページがロードされた後に評価装置110へ送信され得る。
【0052】
評価装置110は、ユーザデバイス120からイベントデータ115を受信し、セッションデータ記憶装置112の中にイベントデータ115を記憶する。たとえば、評価装置110は、セッションデータ記憶装置112の中に記憶されるセッションデータのインデックスの状態でイベントデータ115を記憶することができる。セッションデータのインデックスは、ユーザセッションごとに、そのユーザセッションのために受信されたイベントデータ115、ならびに随意に、ユーザデバイス120に関係するコンテキストデータ(たとえば、ユーザデバイス120のタイプ、ユーザデバイス120のメーカーおよびモデル、デバイスのハードウェアおよび/またはソフトウェア、デバイスの地理的ロケーションなど)などの追加のデータを含むことができる。コンテキストデータによって指定されるソフトウェアは、ブラウザのタイプ、ブラウザのバージョン、またはブラウザについての他のデータを含むことができる。
【0053】
評価装置110は、セッションデータ記憶装置112の中のイベントデータ115およびコンテキストデータにインデックス付けすることができる。このことは、ユーザが、特定のイベントもしくは属性を含むユーザセッションを求めて検索すること、および/またはイベントもしくは属性に基づいてユーザセッションをフィルタ処理することを可能にする。たとえば、評価装置110は、1つまたは複数の属性、たとえば、ブラウザのタイプ、およびユーザセッション中に発生したイベントのタイプ(たとえば、1つまたは複数のレイジクリック(rage click))を求めるクエリを受信することができる。評価装置110は、クエリによって指定されるブラウザのタイプを使用して行われ、かつクエリによって指定されるタイプのイベントがその間に行われた、各ユーザセッションを識別するために、インデックスを使用することができる。評価装置110は、次いで、対話型インターフェースにおいて、識別されたユーザセッションを提示するデータを提供することができる。
【0054】
評価装置110は、ユーザセッションごとに、ユーザセッションのためのイベントデータ115を使用して、ユーザセッションの(プレイバックデータ116として記憶および送信され得る)プレイバック、およびユーザセッションのためのセッションアクティビティデータ117を生成することができる。評価装置110は、ユーザセッション中に提示されるユーザインターフェースを提供する発行者130に、プレイバックデータ116およびセッションアクティビティデータ117を提供する。
【0055】
ユーザセッションのプレイバックは、ユーザセッション中に提示されたユーザインターフェース、ユーザセッション中に行われた、ユーザインターフェースへの視覚的な変更、およびユーザセッション中に行われた、ユーザインターフェースとのユーザ対話(たとえば、マウス移動)を提示する。ユーザインターフェースへの視覚的な変更の少なくとも一部分は、ユーザセッションに対する変異データに対応する。たとえば、ユーザセッションのプレイバックは、ユーザインターフェースを介したマウス移動、ユーザインターフェースの中に提示される項目上でのクリックなどを、発行者130に示すことができる。
【0056】
ユーザセッションのプレイバックはまた、提示されたユーザインターフェース要素が、発行者130のためのホワイトリスト125によって指定されるホワイトリスト化ユーザインターフェース要素に整合することに基づいて、イベントデータ115の中に含められた提示されたユーザインターフェース要素のコンテンツを提示することができる。ユーザインターフェース要素がホワイトリスト化ユーザインターフェース要素に整合しないことに基づいてイベントデータ115の中に含められなかったユーザインターフェース要素に対して、プレイバックは、ユーザインターフェース要素のコンテンツを表すマスキング要素を提示することができる。特定の例では、ユーザインターフェースは、ユーザインターフェースのワイヤフレームに類似することができ、たとえば、ユーザインターフェース要素のいずれもホワイトリスト化されない。
【0057】
たとえば、コンテンツが画像である場合、画像を表す空白のボックスがユーザセッションのプレイバックにおいて提示され得る。画像を表す空白のボックスは、画像と同じサイズ(たとえば、同じ高さおよび幅)であり得、ユーザインターフェース内の、画像と同じロケーションにおいて提示され得る。このようにして、プレイバックは、ホワイトリスト化されていない画像がユーザインターフェースの中でどのように提示されたのかを正確に反映する。
【0058】
コンテンツがテキストである場合、テキストを表すためにバーまたは他のマスキング要素が提示され得る。たとえば、丸められた縁部を有するバーが、同じロケーションにおいて、かつバーが表しているテキストと同じサイズを有して提示され得る。テキストを置換するアルゴリズムを使用するのではなくそのようなバーを使用することは、置換を逆転させどんなテキストが実際に提示されたのかを決定するための能力を妨げる。加えて、バーは、テキスト文字の異なる幅に基づく置換テキストよりも正確に、実際のテキストにサイズが合わせられ得る。たとえば、より広い文字が、より細い文字を置換するために使用される場合、テキストの置換文字列の幅全体が実際のテキストの長さ全体よりも大きくなることになり、置換テキストに、ユーザセッション中に提示されたテキストを正確には反映させない。そのような置換テキストは、プレイバックにおける他のオブジェクトの上方に提示されることがあり、プレイバック中に他のユーザインターフェース要素のシフティング(shifting)を引き起こすことがあるか、またはプレイバックにおける他の間違いを引き起こすことがあり、その結果、ユーザインターフェースの品質を査定する際にプレイバックが有用なものでない場合がある。
【0059】
ホワイトリスト化されていないコンテンツのサイズを決定するために、アプリケーション121(または、評価装置110)は、ユーザインターフェースの中に提示されるときの、ホワイトリスト化されていないコンテンツの各部分のサイズを測定することができる。しかしながら、オブジェクトのサイズを測定することは、計算コストが高い場合がある。ホワイトリスト化されていないコンテンツがユーザインターフェース要素の唯一のコンテンツである場合、評価装置110は、コンテンツを含むオブジェクトのサイズに基づいて、コンテンツのためのマスキング要素のサイズを合わせることができる。たとえば、ホワイトリスト化されていないテキストがボタンの中に含まれる場合、評価装置110は、たとえば、ボタン内にちょうど収まるように、ボタンのサイズに基づいてマスキング要素のサイズを合わせることができる。
【0060】
いくつかのユーザインターフェース要素は、ホワイトリスト化されているコンテンツとホワイトリスト化されていないコンテンツの両方を含むことができる。たとえば、テキストのブロックは、一方がブロックのためのタイトルであり、別の方がユーザのアカウント情報であって、複数のフィールドを含むことができる。この例では、タイトルフィールドは、たとえば、規則の形式でホワイトリストの中に含められてよく、アカウント情報フィールドはホワイトリストの中になくてよい。この例では、アカウント情報に対するマスクされる部分は、実際のテキストが提供されないので、テキストのブロックの知られていない部分を占めることがある。たとえば、アカウント情報は人物ごとに変わることがある。テキストのブロックに対するマスクされる要素のサイズを適切に合わせるために、アプリケーション121は、テキストのブロックのサイズを記録することができ、その情報を評価装置110に提供することができる。
【0061】
プレイバック時間において、評価装置110は、テキストのブロックのサイズに基づいてマスキング要素のサイズを決定することができる。タイトルの中のテキストによって行われる、テキストのブロックのロケーションおよびサイズへの寄与が、アプリケーション121から評価装置110へ送られている実際のテキストに基づいて知られているので、評価装置110は、テキストのブロックの残りのエリア、および随意にテキストの2つの部分のロケーションに基づいて、マスキング要素のサイズを合わせることができる。たとえば、アカウント情報がタイトルの下方にあり、かつタイトルがテキストのブロックの上半分を占有する場合、評価装置110は、テキストのブロックの下半分を埋めるようにアカウント情報マスキング要素のサイズを合わせることができる。
【0062】
場合によっては、ユーザインターフェースまたはユーザインターフェースの構造への変更は、ユーザインターフェースによって提示されるコンテンツのサイズの変更を引き起こす場合がある。たとえば、クラスの変更が、ユーザインターフェース要素のサイズの変更をもたらすスタイル要素の変更という結果になる場合がある。ユーザインターフェース要素のサイズの変更を検出するために、アプリケーション121は、サポートされるブラウザにおいてResizeObserver API(または、他の適切なコード)を使用することができる。ResizeObserver APIは、要素のコンテンツがその中に置かれ得る長方形への変更を検出および報告する。アプリケーション121は、ResizeObserver APIによって報告されたデータをイベントデータ115の中に含めることができる。評価装置110は、要素の新たなサイズを指定するデータを使用して、ユーザセッションのプレイバックにおける要素のコンテンツのサイズを再び合わせることができる。
【0063】
ResizeObserver APIをサポートしないブラウザの場合、評価装置110は、他のユーザインターフェース要素のサイズの変更を引き起こすことがあるユーザインターフェース要素を表す、ユーザインターフェース要素の階層グラフを生成することができる。評価装置110は、ユーザインターフェースのDOMを使用してそのグラフを生成することができる。第2のユーザインターフェース要素(たとえば、親ノードまたは祖父母ノード)内でネストされる第1のユーザインターフェース要素(たとえば、子ノード)のサイズは、第2のユーザインターフェース要素への変更によって影響を受ける場合がある。評価装置110は、イベントデータ115の中に含まれる変異データに基づいてユーザインターフェース要素への変更を検出することができる。ホワイトリスト化されていないコンテンツに影響を及ぼすことがあるユーザインターフェース要素が変更される場合、評価装置110は、ホワイトリスト化されていないコンテンツを含むユーザインターフェース要素のサイズを測定することができる。サイズが変化している場合、評価装置110は、ユーザインターフェースのプレイバックの中で、対応する時間において、ホワイトリスト化されていないコンテンツのサイズを変更することができる。
【0064】
このグラフはまた、ホワイトリスト化されていないコンテンツのサイズを合わせる目的で、どの要素のサイズを測定すべきかを決定するために使用され得る。たとえば、アプリケーション121または評価装置110は、他のノードに対応するユーザインターフェース要素のサイズを測定することなく、ホワイトリスト化されていないコンテンツの親ノードに対応する各ユーザインターフェース要素のサイズを測定することができる。
【0065】
セッションアクティビティデータ117は、ユーザセッション中に発生したイベントのリストを発行者130に提示することができる。ユーザセッションのプレイバックが提示される(たとえば、マウス移動および視覚的な変更を示す)につれて、イベントのリストは、プレイバックにおいて提示されつつある視覚的な変更にどのイベントが対応するのかを示すように強調され得る。
【0066】
図2Aは、ユーザセッション中に提示される例示的なユーザインターフェース200の図である。ユーザインターフェース200は、ウェブページのためのURLへのユーザのナビゲーションに応答してウェブブラウザによって提示される、例示的なショッピングウェブページである。ユーザインターフェース200は、テキスト211(「例示的なショッピングページ」)を有するページタイトル210を含む。ユーザインターフェース200はまた、テキスト221(「項目1」)を有する要素220、テキスト231(「項目2」)を有する要素230、テキスト241(「数量」)およびテキスト入力フィールド242を有するフォーム240、メニュー250の中で提示される値251(「青色」)を有するドロップダウンメニュー250、ならびにテキスト261(「精算」)を有する精算ボタン260を含む。破線263によって示すように、ユーザインターフェースを見ているユーザは、数量フォーム240の上にカーソルをフォーカスさせ、次いで、精算ボタン260の上にカーソルを移動させ、精算ボタン260を選択した。
【0067】
ユーザインターフェース200を提示するユーザデバイスは、図1の評価装置110にイベントデータを提供することができる。この例では、イベントデータは、ユーザインターフェース200の構造を指定するインターフェースデータを含むことになる。イベントデータはまた、数量フォーム240上でのカーソルのフォーカス、精算ボタン260へのカーソルの移動、および精算ボタン260の選択を指定する、ユーザ対話データを含むことになる。
【0068】
イベントデータはまた、テキストがホワイトリスト化コンテンツである場合にユーザインターフェース200の中で提示されるテキストを含むことができる。この例では、ユーザインターフェース200の発行者のためのホワイトリストが図1のホワイトリスト125であることを想定する。すなわち、ホワイトリストは、フォームタグの「値」フィールド内のコンテンツがホワイトリスト化されていること、「タイトル」クラスの「h1」フィールド内のコンテンツがホワイトリスト化されていること、および「ボタンクラス(button class)」内のコンテンツがホワイトリスト化されていることを指定する。
【0069】
次に図2Bを参照すると、図2Bは、図2Aのユーザインターフェースを生成するために使用される例示的なHTML文書270の一部分を示す。詳細には、HTML文書の部分は、ページタイトル210、数量フォーム240、ドロップダウンメニュー250、および精算ボタン260のための、言語の一部分を示す。ただし、HTML文書270の部分は、ユーザインターフェース200を生成するために必要とされることになる言語の、すべてを示すとは限らない。
【0070】
HTML文書270の部分からわかるように、ページタイトル210のテキスト211は、タイトルクラスタグのh1フィールドの中にある。したがって、テキスト211はホワイトリスト化コンテンツである。同様に、数量フォーム240のテキスト242は、フォームタグの値フィールドの中にありホワイトリスト化コンテンツである。加えて、コンテンツボタン260のテキスト261は、ボタンタグ内にありホワイトリスト化コンテンツである。ドロップダウンメニュー350のテキスト351が、ホワイトリスト125によって指定されない選択(select)タグのオプション値(option value)フィールド内にあるので、テキスト351はホワイトリスト化コンテンツでない。したがって、この例では、テキスト211、テキスト242、およびテキスト261が、イベントデータの中に含められることになる。しかしながら、テキスト251は、テキストがホワイトリスト化タグの中にないのでイベントデータから遮断されることになる。この例の残部に対して、テキストを含むHTML文書270のタグ(図示せず)がホワイトリスト115によって指定されないことに基づいて、テキスト221および231が同じくホワイトリスト化コンテンツでないと想定する。
【0071】
図2Cは、図2Aのユーザインターフェースの一部分のツリー構造280の図である。図示の部分は、ユーザインターフェース200の中に示されるユーザインターフェース要素を含むbody要素に対するノード、数量フォーム240のためのdiv要素に対するノードおよびそのテキスト241、ならびにドロップダウンメニュー250のためのdiv要素に対するノードおよびそのテキスト251を示す。ドロップダウンメニュー250のテキスト251がホワイトリスト化されていないとき、テキスト251がドロップダウンメニュー250内にあり、かつテキスト251に対するノードがドロップダウンメニュー250に対するノードの子であるので、テキスト251のサイズは、ドロップダウンメニュー250のサイズに基づいて(たとえば、ドロップダウンメニュー250のコンテンツがその中に置かれ得る長方形のサイズに基づいて)決定されることになる。
【0072】
グラフ280はまた、テキスト251などのホワイトリスト化されていないコンテンツのサイズをいつチェックすべきかを決定するために使用され得る。たとえば、bodyのスタイルが変化する場合、テキスト251に対するノードがbodyに対するノードの孫であるので、この変化はテキスト251のサイズに影響を及ぼす場合がある。
【0073】
図3は、ユーザセッションをリプレイするための例示的な対話型インターフェース300の図である。対話型インターフェース300は、図2Aのユーザインターフェース200を用いたユーザセッションをリプレイする。たとえば、図1の評価装置110は、ユーザインターフェースを提示したユーザデバイスから受信されるイベントデータに基づいて、ユーザセッションのプレイバックを生成することができる。
【0074】
ユーザインターフェース300は、セッションを識別するための検索基準を受け取る検索フィールド302を含む。たとえば、ユーザがその間に所与のウェブサイト(または、ネイティブアプリケーション)の精算ボタン360をクリックしたセッションを識別することおよび/または見ることに関心がある発行者が、検索フィールド302の中に検索フレーズ「クリックされた精算」を入力できることを想定する。検索フレーズをサブミットすると(たとえば、入力コマンドを入力すると、またはサブミッションボタンの上をクリックすると)、セッション情報を求める要求が、検索装置を含み得る評価装置110へ送信される。セッション情報を求める要求は、たとえば、検索フレーズ、およびセッション情報を要求している発行者の識別情報、ならびに/または要求に関連するコンテキストを提供する他の情報を含むことができる。
【0075】
セッション情報を求める要求の受信に応答して、評価装置110は、検索フレーズ「クリックされた精算」を使用して、ユーザがその間に所与のウェブサイトの精算ボタン360をクリックした1つまたは複数のセッションを識別することができる。いくつかの実装形態では、評価装置110は、検索フレーズに応答して、ユーザセッションのインデックスからセッションを識別する。たとえば、インデックスは、ユーザがその間に「精算」ボタン360上をクリックしたセッションに、ユーザアクション「クリック」およびユーザインターフェース要素「精算ボタン」を関連付ける、1つまたは複数のエントリを含んでよい。
【0076】
評価装置110は、セッション情報を求める要求に応答して、セッションを識別するデータを要求側デバイスに提供する。いくつかの実装形態では、評価装置110は、検索フレーズに基づいて識別された1つまたは複数のセッションについてのデータを提供することによって、セッション情報を求める要求に応答することができる。上記の例を続けると、評価装置110は、検索フレーズ「クリックされた精算」に基づいてインデックスから識別されたセッションのリスト308を提供することができる。図3によって示すように、ユーザがその中で精算ボタンをクリックしたセッションは、セッション1、セッション2、セッション3、セッション4、セッション5、およびセッション6を含む。
【0077】
評価装置110はまた、セッション情報を求める要求に応答して、識別されたセッションのうちの1つまたは複数のためのプレイバックデータおよびセッションアクティビティデータを提供することができる。たとえば、図3によって示すように、セッション1は影が付けられ、セッション1のためのプレイバックデータがリプレイのために利用可能であること、およびセッション1のためのセッションアクティビティデータが提示のために利用可能であることを示す。
【0078】
ユーザインターフェース300は、プレイバックデータに基づいて以前のセッションがその中でリプレイされる、プレイバック領域306を含む。プレイバック領域306は、再生/一時停止部分310、カウンタ312、およびスライダー部分314を含む、プレイバックバーを含む。再生/一時停止部分310は、再生/一時停止部分310と対話することによって、発行者がセッションのリプレイを開始および停止することを可能にする。カウンタ312は、セッションの総継続時間(たとえば、1分50秒)、および現在提示されているセッションの一部分(たとえば、45秒)を提供する。スライダー部分314は、スライダー部分314内のスライディング要素316をスライドさせることによって、発行者がセッションの他の部分に迅速に移動することを可能にする。上記の例を続けると、プレイバック領域306は、セッションのリストの中のセッション1のシェーディングによって示されるように、セッション1をリプレイしている。
【0079】
セッション1のプレイバックは、ユーザセッションが行われたユーザデバイスから受信されるイベントデータに基づく、図2のユーザインターフェース200の再作成を示す。詳細には、リプレイは、ページタイトルおよびテキスト211に対応するテキスト311を有するページタイトル310、要素220およびテキスト221に対応するマスクされた要素321を有する要素320、要素320およびテキスト321に対応するマスクされた要素331を有する要素330、テキスト241およびテキスト入力フィールド242を有する数量フォーム240に対応する、テキスト341およびテキスト入力フィールド342を有する数量フォーム340、テキスト251を有するドロップダウンメニュー250に対応する、マスクされた要素351を有するドロップダウンメニュー350、ならびにテキスト261を有する精算ボタン260に対応する、テキスト361を有する精算ボタン360を示す。
【0080】
要素220および230のテキストがホワイトリスト化されていなかったので、このテキストは収集されず評価装置110へ送られなかった。したがって、評価装置110は、それぞれ、テキスト221および231を表すために、マスキング要素321および331を生成した。上記で説明したように、マスキング要素321および331は、テキストを含む要素、すなわち、要素220および230のサイズに基づくサイズであり得る。このようにして、マスキング要素321および331は、マスキング要素321および331によって表されるテキスト221および231と類似の要素320および330の中にちょうど収まる。同様に、評価装置110は、ドロップダウンメニュー350のテキストがホワイトリスト化されていなかったので、ドロップダウンメニュー350のテキスト251の代わりにマスキング要素351を含めた。このマスキング要素351は、ドロップダウンメニュー350のサイズに基づいて、たとえば、ドロップダウンメニュー350のコンテンツがその中に置かれ得る長方形エリアのサイズに基づいて、サイズが合わせられる。
【0081】
いくつかのマスキング要素は、テキストの文字列を表すための複数のマスキング要素を含むことができる。たとえば、それぞれのマスキング要素は、文の中の各単語をマスクするために使用され得る。マスキング要素を生成すると、評価装置110は、各単語の冒頭において新たなマスキング要素を始めることができ、その単語の末尾を示すスペースまたは句読点に遭遇するとマスキング要素を終えることができる。
【0082】
テキスト311、341、342、および361は、それらの対応するユーザインターフェース要素のコンテンツがホワイトリスト化されていたので、プレイバックの中に含められる。この例では、ユーザインターフェース200の発行者は、フォームが正しく機能すること、およびユーザが彼らの所望の数量を間違いなくまたは苛立ちなく指定できることを確実にするために、数量フォーム240の中の数量をユーザがどのように変更するのかを見ることを望む場合がある。しかしながら、購入される項目は機密情報と見なされてよい。したがって、項目を表すテキスト221および231はホワイトリスト化されず、ユーザセッションのプレイバックにおいてマスキング要素321および331を使用してマスクされる。
【0083】
ユーザインターフェース300は、リプレイされているセッション中に行われたアクティビティがセッションアクティビティデータに基づいてその中に提示される、セッションアクティビティ領域370を含む。たとえば、セッションアクティビティ領域370は、リプレイされているセッションが行われた時間(たとえば、曜日、日付、時刻、および/または年)、ユーザセッションを実施するために使用されたブラウザのタイプ、ユーザセッションが行われたデバイスのインターネットプロトコル(IP)アドレス、および/またはユーザセッションが行われたユーザデバイスの地理的ロケーションなどの、情報を提示する。セッションアクティビティ領域318はまた、セッション中に行われるいくつかのアクティビティ(たとえば、いくつかのクリック、フォーカス、ページナビゲーション、または他のユーザ対話)を提示することができる。
【0084】
セッションアクティビティ領域370はまた、リプレイされているユーザセッション中に行われた様々なアクティビティを識別および/または略述する。たとえば、セッションアクティビティ領域370は、プレイバック領域306の中でリプレイされているセッション中、ユーザが、example.com/products 371にナビゲートし、ページ372内の数量フォーム340にフォーカスし、精算ボタン373をクリックし、example.com/checkout 374にナビゲートし、かつアドレスボックス375にフォーカスしたことを指定する。セッションアクティビティ領域370の中に列挙されたアクティビティは、それらがセッション中に行われる順序で配列され得る。たとえば、アクティビティ371は、アクティビティ372、373、374、および375の前に行われた。追加として、セッションアクティビティ領域370の中に列挙されるアクティビティは、視覚的には階層的に表され得る。たとえば、アクティビティ372および373の各々は、アクティビティ371に対して右にオフセットされ、それによって、アクティビティ372および373がexample.com/products 371への訪問中に行われたことを示す。
【0085】
アクティビティのリスト370はまた、アクティビティに関するコンテキストデータを提供することができる。たとえば、アクティビティ372は、ユーザ対話「フォーカス」が数量フォーム340を用いて行われたことを示す。アクティビティのリスト370はまた、各アクティビティに関係するユーザインターフェースの構造からの情報を提供することができる。たとえば、各アクティビティは、ユーザインターフェース構造の階層表現からの(たとえば、DOMからの)、アクティビティに関連するノードからの情報を含むことができる。特定の例では、アクティビティ372は、数量フォーム340についてのコンテキスト情報(たとえば、//header div...)を提供するDOMノードの一部分を示す。いくつかの実装形態では、アクティビティ372とのユーザ対話は、アクティビティ370のリスト(たとえば、アクティビティに関係する情報を提供するDOMノードの完全なセット)の中に提示されない追加のコンテキスト情報の提示を生じさせる。
【0086】
リプレイ領域306の中でセッションのリプレイが進むにつれて、提示されているリプレイの部分に対応するアクティビティが強調され得る。たとえば、ユーザが数量フォーム340にフォーカスした後、ユーザは精算ボタン360上をクリックした。数量フォーム340の近くから精算ボタン360まで(破線によって示されるように)マウスが移動することをリプレイが示すとき、アクティビティ373は、現在リプレイされているセッションの部分に対応するセッションアクティビティを示して影が付けられ得る(すなわち、強調され得る)。セッションのリプレイが、ユーザが精算ボタン360をクリックした時点に到達すると、プレイバックデータは、影付き円362を提示させることができ、それによって、ユーザクリックが行われたこと、および精算ボタン360上でのユーザクリックのロケーションを、発行者に視覚的に伝達する。他の対話が行われたことを発行者に視覚的に伝達するために、類似のアニメーションが使用され得る。たとえば、タッチスクリーンデバイスを参照すると、ユーザタップの発生を視覚的に伝達するために、類似の影付き円が使用され得、タッチスクリーン上でのユーザスワイプまたは他の指移動を示すために、細長いシェーディングアニメーションが使用され得る。
【0087】
上記で説明したように、発行者は、他のセッションのうちの1つ(たとえば、セッション2)のリプレイをユーザインターフェース300(または、別のユーザインターフェース)に要求することができる。たとえば、セッションのリスト308の中のセッション2とのユーザ対話(たとえば、それのクリック)は、セッション2についてのセッション情報を求める要求を開始することができる。その要求に応答して、評価装置110は、セッション2に関係するプレイバックデータおよびセッションアクティビティデータを要求側デバイスに出力することができる。プレイバックデータおよびセッションアクティビティデータの受信時に、要求側デバイスは、リプレイ領域306の中でセッション2をリプレイすることができ、セッション2の間に行われたアクティビティについての情報をセッションアクティビティ領域318の中に提示することができる。
【0088】
いくつかの実装形態では、ユーザインターフェース300はフィルタ要素304を含むことができる。フィルタ要素304は、たとえば、サブミットされた検索フレーズを使用して識別されるセッションを発行者がフィルタ処理することを可能にする。たとえば、発行者は、ユーザがその間に精算ボタン360上をクリックしたが最終的に購入を行わなかったセッションだけを識別することに関心がある場合がある。この例では、ユーザは、検索フレーズ「クリックされた精算」をサブミットすることができ、(たとえば、ドロップダウンボタン上をクリックし「購入しなかった」オプションを選択することによって)ユーザがその間に購入を行わなかったセッションだけを識別するフィルタを選択するために、フィルタ要素304と対話することができる。このことは、発行者が、対象のセッションを迅速に識別すること、および/またはこれらのユーザが購入を行うことを何が妨げていたのだろうか(たとえば、ユーザインターフェースを伴う問題)を識別することを可能にする。
【0089】
ここでは例示的なフィルタが例示のために提供されるが、様々な他のフィルタが必要に応じて使用および指定され得る。たとえば、発行者は、特定の地理的領域(たとえば、米国南西部、中央アメリカ、欧州)の中で実行されたセッションだけを、またはいくらかの指定された持続時間の前(たとえば、2分間以内)に、ユーザがその間にセッションを終了したセッションだけを、評価することに関心がある場合がある。以下でより詳細に説明するように、セッションに関係するこれらの情報および/または分析情報がフィルタを使用して識別されるようなフィルタを提供することは、どのように発行者のユーザインターフェースをよりよくフォーマッティングし、かつ/または特定の事業目標を達成する(たとえば、売上を大きくする)のかに関する洞察を、発行者に提供することができる。
【0090】
いくつかの実装形態では、ユーザインターフェース200の発行者は、ユーザセッションのプレイバックの中で単にユーザインターフェース要素と対話することによって、ユーザインターフェース200のためのホワイトリストを更新することができる。たとえば、発行者は、数量フォーム240の中に提示される項目の数量を見る必要がないことを決定する場合、発行者は、リプレイ領域306の中の数量値342を選択することができる。評価装置110は、選択を検出することができ、数量フォーム240の数量値242のホワイトリストステータスを更新することができる。この例では、評価装置110は、たとえば、この値がホワイトリスト化されていることを指定する「Tag:form; Field: value」をホワイトリスト120から除去することによって、数量値242のホワイトリストステータスを非ホワイトリスト化コンテンツに変更することになる。ユーザインターフェース200を用いた後続のユーザセッションに対して、数量値342は収集されず評価装置110へ送られないことになる。発行者は、ユーザインターフェース200を用いたセッション1または別のセッションのプレイバックの中で値342を選択することによって、数量値242をホワイトリスト120に戻して追加することができる。
【0091】
図4は、ユーザセッションのプレイバックを提示する対話型インターフェースを生成および提供するための例示的なプロセス400のフローチャートである。プロセス400の動作は、たとえば、評価装置110などの1つまたは複数のデータ処理装置によって実行され得る。プロセス400の動作はまた、非一時的コンピュータ可読媒体上に記憶された命令として実施され得る。命令の実行は、1つまたは複数のデータ処理装置にプロセス400の動作を実行させる。
【0092】
構成データがクライアントデバイスに提供される(402)。構成データは、発行者のホワイトリスト化ユーザインターフェース要素のセットを指定する。各ホワイトリスト化ユーザインターフェース要素は、コンテンツがそこから収集されクライアントデバイスから送信されるのに適格なユーザインターフェース要素である。たとえば、上記で説明したように、構成データは、ホワイトリスト化コンテンツがそこから取得され得るとともに評価装置へ送られ得る、タグ、フィールド、属性、または他のユーザインターフェース構造インジケータを指定することができる。
【0093】
構成データは、発行者のユーザインターフェースの、クライアントデバイスによるローディングに応答して、クライアントデバイスへ送られ得る。たとえば、ユーザインターフェースをロードするアプリケーション、またはユーザインターフェース自体が、ローディングに応答して構成データを要求するように構成され得る。このようにして、評価装置へ送るためのイベントデータを収集するために、現在のホワイトリストがクライアントデバイスに提供される。
【0094】
イベントデータがクライアントデバイスから受信される(404)。クライアントデバイスは、イベントデータを収集することができ、ユーザセッション中に、またはユーザセッションの終結において、そのイベントデータを評価装置へ送ることができる。上記で説明したように、イベントデータは、ユーザセッション中に提示される1つまたは複数のユーザインターフェースの構造を指定するインターフェースデータ、および1つまたは複数のユーザインターフェースとのユーザ対話を指定するユーザ対話データを含むことができる。イベントデータはまた、ユーザセッション中のユーザインターフェースの構造への変更を指定する変異データを含むことができる。
【0095】
イベントデータはまた、1つまたは複数のユーザインターフェースによって提示されたが、構成データによって指定されるホワイトリスト化ユーザインターフェース要素に整合する、1つまたは複数の提示されたユーザインターフェース要素のコンテンツを含むことができる。たとえば、発行者のユーザインターフェースを提示するアプリケーションは、ユーザインターフェース要素を、構成データによって指定されるホワイトリスト化ユーザインターフェース要素と比較することができる。整合するユーザインターフェース要素の場合、アプリケーションは、ユーザインターフェース要素のコンテンツを取得することができ、イベントデータを有するコンテンツを提供することができる。整合しないユーザインターフェース要素の場合、アプリケーションは、ユーザインターフェース要素のコンテンツの収集を遮断することができ、イベントデータを有するコンテンツを提供しない。代わりに、アプリケーションは、ユーザインターフェース要素に識別子を提供することができるが、ユーザインターフェース要素によって提示された実際のコンテンツを提供しない。
【0096】
ユーザセッションのプレイバックが、受信されたイベントデータに基づいて生成される(406)。ユーザセッションのプレイバックは、ユーザセッション中に見られる1つまたは複数のユーザインターフェース、ホワイトリスト化ユーザインターフェース要素に整合する1つまたは複数のユーザインターフェース要素のコンテンツ、1つまたは複数のユーザインターフェースとのユーザ対話を、提示することができる。ホワイトリスト化ユーザインターフェース要素に整合しないユーザインターフェース要素のコンテンツの場合、プレイバックは、ユーザインターフェース要素のコンテンツを有しないユーザインターフェース要素を提示することができる。代わりに、プレイバックは、コンテンツを表すマスキング要素を含めることができる。上記で説明したように、マスキング要素は、コンテンツを含んだユーザインターフェース要素のサイズに基づいてサイズが合わせられ得る。
【0097】
図5は、ユーザインターフェース要素のホワイトリストステータスを更新するための例示的なプロセス500のフローチャートである。プロセス500の動作は、たとえば、評価装置110などの1つまたは複数のデータ処理装置によって実行され得る。プロセス500の動作はまた、非一時的コンピュータ可読媒体上に記憶された命令として実施され得る。命令の実行は、1つまたは複数のデータ処理装置にプロセス500の動作を実行させる。
【0098】
いくつかの実装形態では、発行者のコンテンツは、発行者がホワイトリストにそのコンテンツを追加するまでホワイトリスト化されない。このことは、発行者によって要求されない限り機密データが収集されないことを確実にする。発行者は、次いで、必要に応じてホワイトリストにコンテンツを追加することができる。
【0099】
発行者の1つまたは複数のユーザインターフェースを用いたユーザセッションのプレイバックが生成される(502)。プレイバックは、図4のプロセス400を使用して生成され得る。
【0100】
プレイバックの中に提示されるユーザインターフェース要素とのユーザ対話が検出される(504)。たとえば、発行者は、ユーザインターフェース要素のコンテンツのホワイトリストステータスを変更するために、ユーザインターフェース要素を選択することができる。ユーザインターフェース要素が、複数のコンテンツ項目、たとえば、複数のフィールドを含む場合、選択された特定のフィールドが検出および記録され得る。
【0101】
ユーザインターフェース要素のホワイトリストステータスが変更される(506)。ユーザインターフェース要素またはユーザインターフェース要素の特定のフィールドが発行者のためのホワイトリストの中に現在含まれる場合、ユーザインターフェース要素または特定のフィールドのホワイトリストステータスは、もはやホワイトリスト化されていないように更新され得る。たとえば、コンテンツに対するタグまたはフィールドがホワイトリストから除去され得る。
【0102】
ユーザインターフェース要素またはユーザインターフェース要素の特定のフィールドが発行者のためのホワイトリストの中に現在含まれない場合、ユーザインターフェース要素または特定のフィールドのホワイトリストステータスは、ホワイトリスト化されるように更新され得る。たとえば、コンテンツに対するタグまたはフィールドがホワイトリストに追加され得る。
【0103】
クライアントデバイスが発行者のユーザインターフェースをロードすると、更新済みのホワイトリストがクライアントデバイスに提供され得る。このようにして、更新済みのホワイトリストは、後続のユーザセッションのプレイバックのためのイベントデータを収集するために使用される。
【0104】
本明細書で説明する主題および動作の実施形態は、本明細書で開示する構造およびそれらの構造的均等物を含む、デジタル電子回路構成で、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアで、あるいはそれらのうちの1つまたは複数の組合せで、実装され得る。本明細書で説明する主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のための、またはデータ処理装置の動作を制御するための、コンピュータ記憶媒体上で符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして、実装され得る。代替または追加として、プログラム命令は、データ処理装置による実行のための、好適な受信機装置への送信のために情報を符号化するために生成される、人工的に生成された伝搬信号、たとえば、機械生成された電気信号、光信号、または電磁信号に対して符号化され得る。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムアクセスもしくはシリアルアクセスのメモリアレイもしくはデバイス、またはそれらのうちの1つまたは複数の組合せであり得るか、またはそれらの中に含まれ得る。その上、コンピュータ記憶媒体は伝搬信号でないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号の中で符号化されたコンピュータプログラム命令のソースまたは宛先であり得る。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理構成要素または物理媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であり得るか、またはそれらの中に含まれ得る。
【0105】
本明細書で説明する動作は、1つまたは複数のコンピュータ可読記憶デバイス上に記憶されるかまたは他のソースから受信されるデータに対してデータ処理装置によって実行される動作として実施され得る。
【0106】
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または上記のもののうちの複数のもの、もしくはその組合せを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路構成、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置はまた、ハードウェアに加えて、当該のコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想機械、またはそれらのうちの1つまたは複数の組合せを構成するコードを含むことができる。装置および実行環境は、ウェブサービス基盤、分散コンピューティング基盤、およびグリッドコンピューティング基盤などの、様々な異なるコンピューティングモデル基盤を実現することができる。
【0107】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイラ型言語またはインタープリタ型言語、宣言型言語または手続型言語を含む、任意の形式のプログラミング言語で書くことができ、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他のユニットを含む、任意の形態で展開され得る。コンピュータプログラムは、必須ではないがファイルシステムの中のファイルに相当してよい。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語文書の中に記憶された1つまたは複数のスクリプト)を保持するファイルの一部分の中に、当該のプログラムに専用の単一のファイルの中に、または協調した複数のファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)の中に、記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するかもしくは複数のサイトにわたって分散され通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開され得る。
【0108】
本明細書で説明するプロセスおよび論理フローは、入力データに対して動作することおよび出力を生成することによってアクションを実行するために、1つまたは複数のプログラマブルプロセッサが1つまたは複数のコンピュータプログラムを実行することによって、実行され得る。専用論理回路構成、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって、プロセスおよび論理フローが実行されることも可能であり、それらとして装置が実装されることも可能である。
【0109】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの1つまたは複数の任意のプロセッサを含む。一般に、プロセッサは、読取り専用メモリもしくはランダムアクセスメモリまたはその両方から、命令およびデータを受信する。コンピュータの必須要素は、命令に従ってアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを含むか、またはそれらからデータを受信すること、もしくはそれらにデータを転送すること、またはその両方を行うように動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有することが必須ではない。その上、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)レシーバ、またはポータブル記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)の中に組み込まれ得る。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内部ハードディスクまたはリムーバルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路構成によって増補され得るか、または専用論理回路構成の中に組み込まれ得る。
【0110】
ユーザとの対話を行うために、本明細書で説明する主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがそれによってコンピュータに入力を提供できるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上で実施され得る。他の種類のデバイスが、同じくユーザとの対話を行うために使用され得、たとえば、ユーザに提供されるフィードバックは、任意の形態の知覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスへ文書を送ることおよびそこから文書を受信することによって、たとえば、ユーザのデバイス上のウェブブラウザから受信された要求に応答して、そのウェブブラウザへウェブページを送ることによって、ユーザと対話することができる。
【0111】
本明細書で説明する主題の実施形態は、たとえば、データサーバとしてのバックエンド構成要素を含むか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、ユーザがそれを通じて本明細書で説明する主題の実装形態と対話できるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータ、あるいは1つまたは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムの中で実施され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【0112】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に、互いに遠隔にあり、通常は通信ネットワークを通じて相互作用する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行しており互いにクライアントサーバ関係を有する、コンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、(たとえば、クライアントデバイスと対話しているユーザにデータを表示し、かつそうしたユーザからユーザ入力を受信するために)データ(たとえば、HTMLページ)をクライアントデバイスへ送信する。クライアントデバイスにおいて生成されるデータ(たとえば、ユーザ対話の結果)は、サーバにおいてクライアントデバイスから受信され得る。
【0113】
本明細書は多くの特定の実装詳細を含むが、これらは任意の発明の、または特許請求され得るものの、範囲に対する限定としてではなく、むしろ特定の発明の特定の実施形態に固有の特徴の説明として解釈されるべきである。別個の実施形態のコンテキストで本明細書で説明されるいくつかの特徴はまた、単一の実施形態の中で組合せで実施され得る。反対に、単一の実施形態のコンテキストで説明される様々な特徴はまた、複数の実施形態の中で別個に、または任意の好適な部分組合せで実施され得る。その上、特徴はいくつかの組合せで作用するものとして上記で説明されることがあり、当初はそのように特許請求されることさえあるが、特許請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除することができ、特許請求される組合せは、部分組合せまたは部分組合せの変形を対象とすることがある。
【0114】
同様に、特定の順序で動作が図面に示されるが、このことは、望ましい結果を達成するために、そのような動作が図示の特定の順序もしくは逐次的な順序で実行されること、または図示したすべての動作が実行されることを必要とするものとして理解されるべきでない。いくつかの環境では、マルチタスキングおよび並列処理が有利であり得る。その上、上記で説明した実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきでなく、説明するプログラム構成要素およびシステムが、一般に、単一のソフトウェア製品の中で一緒に統合され得るか、または複数のソフトウェア製品の中にパッケージ化され得ることを理解されたい。
【0115】
したがって、本主題の特定の実施形態が説明されている。他の実施形態が以下の特許請求の範囲内に入る。場合によっては、特許請求の範囲に記載されるアクションは、異なる順序で実行することができ、やはり望ましい結果を達成する。加えて、添付の図に示すプロセスは、望ましい結果を達成するために、必ずしも図示の特定の順序または逐次的な順序を必要とするとは限らない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【0116】
100 環境
102 ネットワーク
110 評価装置
112 コンテンツ要求
114 アプリケーションコンテンツ
115 イベントデータ
116 プレイバックデータ
117 セッションアクティビティデータ
118 構成データ
120 ユーザデバイス
121 計装モジュール
122 ホワイトリスト
124 ウィンドウスキャナ
125 キャンバスレコーダ
130 発行者
140 ウェブサイト
145 リソース
150 コンテンツ記憶装置
200 ユーザインターフェース
210 ページタイトル
240 数量フォーム
242 テキスト入力フィールド
250 ドロップダウンメニュー
260 精算ボタン、コンテンツボタン
270 HTML文書
280 ツリー構造
300 対話型インターフェース、ユーザインターフェース
302 検索フィールド
304 フィルタ要素
306 プレイバック領域、リプレイ領域
308 セッションのリスト
310 再生/一時停止部分
310 ページタイトル
312 カウンタ
314 スライダー部分
316 スライディング要素
321 マスクされた要素、マスキング要素
331 マスクされた要素、マスキング要素
340 数量フォーム
342 テキスト入力フィールド
350 ドロップダウンメニュー
351 マスクされた要素、マスキング要素
360 精算ボタン
370 セッションアクティビティ領域、アクティビティのリスト
371、372、373、374、375 アクティビティ
図1
図2A
図2B
図2C
図3
図4
図5
【国際調査報告】