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

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

▶ パーミュティブ・リミテッドの特許一覧

特許7463286高速かつ安全なコンテンツ提供のためのシステム
<>
  • 特許-高速かつ安全なコンテンツ提供のためのシステム 図1
  • 特許-高速かつ安全なコンテンツ提供のためのシステム 図2
  • 特許-高速かつ安全なコンテンツ提供のためのシステム 図3
  • 特許-高速かつ安全なコンテンツ提供のためのシステム 図4
  • 特許-高速かつ安全なコンテンツ提供のためのシステム 図5
  • 特許-高速かつ安全なコンテンツ提供のためのシステム 図6
  • 特許-高速かつ安全なコンテンツ提供のためのシステム 図7
  • 特許-高速かつ安全なコンテンツ提供のためのシステム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-29
(45)【発行日】2024-04-08
(54)【発明の名称】高速かつ安全なコンテンツ提供のためのシステム
(51)【国際特許分類】
   H04L 67/02 20220101AFI20240401BHJP
   G06Q 30/02 20230101ALI20240401BHJP
【FI】
H04L67/02
G06Q30/02
【請求項の数】 19
(21)【出願番号】P 2020554949
(86)(22)【出願日】2018-12-21
(65)【公表番号】
(43)【公表日】2021-03-04
(86)【国際出願番号】 GB2018053740
(87)【国際公開番号】W WO2019122917
(87)【国際公開日】2019-06-27
【審査請求日】2021-12-15
(31)【優先権主張番号】15/852,220
(32)【優先日】2017-12-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520227293
【氏名又は名称】パーミュティブ・リミテッド
【氏名又は名称原語表記】PERMUTIVE LIMITED
【住所又は居所原語表記】45 Gee Street, London EC1V 3RS, United Kingdom
(74)【代理人】
【識別番号】100088605
【弁理士】
【氏名又は名称】加藤 公延
(74)【代理人】
【識別番号】100130384
【弁理士】
【氏名又は名称】大島 孝文
(72)【発明者】
【氏名】スプラット・ティム
(72)【発明者】
【氏名】ルート・ジョー
【審査官】羽岡 さやか
(56)【参考文献】
【文献】特表2011-525659(JP,A)
【文献】特表2012-527689(JP,A)
【文献】特表2011-527784(JP,A)
【文献】特開2015-222458(JP,A)
【文献】特開2008-234641(JP,A)
【文献】特許第5905551(JP,B1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/00
G06Q 30/02
(57)【特許請求の範囲】
【請求項1】
コンテンツをユーザに表示するためのシステムにおいて、
前記システムは、ユーザデバイスと、ウェブ要素サーバと、コード供給サーバと、を含み、
前記ユーザデバイスは、ウェブ要素を示すウェブ要素要求を開始するように構成され、
前記ウェブ要素サーバは、前記ウェブ要素要求に応答して前記ウェブ要素を前記ユーザデバイスに送信するように構成され、
前記コード供給サーバは、前記ウェブ要素要求に応答してコード部分要求を受信するように構成され、
前記コード供給サーバは、前記コード部分要求に応答してコード部分を前記ユーザデバイスに送信するように構成され、
前記ユーザデバイスは、前記ウェブ要素要求に応答して前記コード部分を実行するように構成され、
前記コード部分を実行することにより、前記ユーザデバイスのプロセッサは、前記ユーザデバイスにおいてユーザデータを収集し、収集された前記ユーザデータに基づいて、前記ユーザを複数のカテゴリのうちの少なくとも1つのカテゴリと関連付け、収集された前記ユーザデータおよび/または前記ユーザのカテゴリに基づいてアクションを実行させる命令を生成する、
システム。
【請求項2】
前記アクションを実行させる命令は、前記ユーザデバイスにおいてコンテンツを表示させるコンテンツ命令を含み、
前記コンテンツは、収集された前記ユーザデータに基づいており、
前記コード部分を実行することにより、前記ユーザデバイスのプロセッサは、前記コンテンツ命令に応答して前記コンテンツを表示する、請求項1に記載のシステム。
【請求項3】
前記アクションを実行させる命令は、フラグを前記ユーザデバイスのユーザと関連付けさせるフラグ命令を生成することを含み、
前記フラグは、収集された前記ユーザデータに基づいている、請求項1に記載のシステム。
【請求項4】
前記アクションは、前記ユーザと関連付けられた予め決定された前記少なくとも1つのカテゴリに基づいて選択される、請求項1に記載のシステム。
【請求項5】
前記命令を生成することは、前記ユーザデバイスからコンテンツサーバに、収集された前記ユーザデータの少なくとも一部を示すデータ項目を含む前記命令を送信することを含む、請求項1に記載のシステム。
【請求項6】
前記コンテンツサーバは、前記ユーザデバイスにおいてコンテンツを表示させるコンテンツ命令に応答して、収集された前記ユーザデータの前記一部に基づくコンテンツを送信するように構成されている、請求項5に記載のシステム。
【請求項7】
前記命令を生成することは、前記ユーザデバイスからコンテンツサーバに、前記少なくとも1つのカテゴリを示すデータ項目を含む前記命令を送信することを含む、請求項1に記載のシステム。
【請求項8】
前記コンテンツサーバは、前記ユーザデバイスにおいてコンテンツを表示させるコンテンツ命令に応答して、前記少なくとも1つのカテゴリに基づくコンテンツを前記ユーザデバイスに送信するように構成されている、請求項7に記載のシステム。
【請求項9】
前記コード供給サーバは、複数のカテゴリを定義し、前記コード部分要求に応答して前記複数のカテゴリの少なくともサブセットを前記ユーザデバイスに送信するように構成されている、請求項1に記載のシステム。
【請求項10】
カテゴリを定義することは、前記カテゴリについて少なくとも1つの基準を選択することを含み、
前記ユーザをカテゴリと関連付けることは、収集された前記ユーザデータの少なくとも一部を前記カテゴリの前記少なくとも1つの基準と適合させることを含む、請求項9に記載のシステム。
【請求項11】
前記コンテンツ命令に応答して前記コンテンツを表示することは、前記コンテンツを前記ウェブ要素に埋め込むことを含む、請求項2に記載のシステム。
【請求項12】
前記ユーザデバイスは、ウェブ要素を示す追加のウェブ要素要求を開始し、前記ユーザデバイスにおける前記コード部分のバージョンが、前記コード供給サーバにおける前記コード部分のバージョンに対応すると決定するように構成されている、請求項1に記載のシステム。
【請求項13】
前記ユーザデバイスは、前記ユーザデバイスにおける前記コード部分の前記バージョンが前記コード供給サーバにおけるバージョンに対応しないと決定することに応答して、前記コード供給サーバにおける前記コード部分の前記バージョンを受信するように構成されている、請求項12に記載のシステム。
【請求項14】
前記コード供給サーバにおける前記コード部分の前記バージョンは、最新バージョンである、請求項12に記載のシステム。
【請求項15】
前記ウェブ要素は、ウェブページ、ビデオコンテンツ、およびオンラインゲームのうちの少なくとも1つを含む、請求項1に記載のシステム。
【請求項16】
前記ユーザを複数のカテゴリのうちの少なくとも1つのカテゴリと関連付けることは、 前記ユーザが、複数のカテゴリのうちの少なくとも1つのカテゴリの基準に適合しない否定的な状態から、前記カテゴリに適合する肯定的な状態に移行したかどうかを検出すること、
前記ユーザが、複数のカテゴリのうちの少なくとも1つのカテゴリの基準に適合する肯定的な状態から、前記カテゴリに適合しない否定的な状態に移行したかどうかを検出すること、
前記ユーザが複数のカテゴリのうちの少なくとも1つのカテゴリの基準に適合するかどうかを検出すること、および、
記ユーザが1つのクエリ値から新しいクエリ値に移行したかどうかを検出すること、
のうちの少なくとも1つを含む、請求項1に記載のシステム。
【請求項17】
前記ウェブ要素サーバは、前記ウェブ要素要求に応答してコードスニペットを前記ユーザデバイスに送信するように構成され、
前記ユーザデバイスは、前記コード部分要求を開始するために前記コードスニペットを実行するように構成されている、請求項1に記載のシステム。
【請求項18】
ユーザデバイスにおいてユーザにコンテンツを表示するためのサーバにおいて、
前記ユーザデバイスで開始されたウェブ要素要求に応答してコード部分要求を受信するステップと、
前記コード部分要求に応答してコード部分を前記ユーザデバイスに送信するステップと、
を実行するように構成されたプロセッサを含み、
前記コード部分は、前記ユーザデバイスにおいて実行され、前記ユーザデバイスのプロセッサに、前記ユーザデバイスにおいてユーザデータを収集させ、収集された前記ユーザデータに基づいて、前記ユーザを複数のカテゴリのうちの少なくとも1つのカテゴリと関連付けさせ、収集された前記ユーザデータおよび/または前記ユーザのカテゴリに基づいてアクションを実行させる命令を生成させる、ように構成されている、サーバ。
【請求項19】
ユーザデバイスにおいてユーザにコンテンツを表示する方法において、
前記ユーザデバイスにおいて、ウェブ要素を示すウェブ要素要求を開始することと、
ウェブ要素サーバにおいて、前記ウェブ要素要求に応答して前記ウェブ要素を前記ユーザデバイスに送信することと、
コード供給サーバにおいて、前記ウェブ要素要求に応答してコード部分要求を受信することと、
前記コード供給サーバにおいて、前記コード部分要求に応答して前記ユーザデバイスにコード部分を送信することと、
前記ユーザデバイスにおいて、前記ウェブ要素要求に応答して前記コード部分を実行することであって、前記コード部分を実行することにより、前記ユーザデバイスのプロセッサに、前記ユーザデバイスにおいてユーザデータを収集させ、収集された前記ユーザデータに基づいて、前記ユーザを複数のカテゴリのうちの少なくとも1つのカテゴリと関連付けさせ、収集された前記ユーザデータおよび/または前記ユーザのカテゴリに基づいてアクションを実行させる命令を生成させる、ことと、を含む、方法。
【発明の詳細な説明】
【開示の内容】
【0001】
〔技術分野〕
本開示は、特定のコンテンツを高速かつ安全にユーザに提供するためのシステム、サーバ、ユーザデバイス、方法、およびコンピュータプログラムに関する。
【0002】
〔背景〕
現代の環境では、データおよびデジタルコンテンツを識別しユーザに提供することが非常に重要である。特に、特定のコンテンツの正確な識別、およびそのコンテンツがユーザに提供され得る速度は、多くの技術研究開発の焦点である。
【0003】
データおよびデジタルコンテンツは、医療データ、統計データ、科学研究データ、およびユーザデータなどに基づく個人化コンテンツのような多くの形態をとることができる。本発明は、一般にユーザにデータが提供され得る速度および精度を向上させることを目的とする。しかしながら、個人化コンテンツの提供は、本明細書では、提供される技術的利点を示す、本発明の特定の適用として説明される。
【0004】
従来のコンピューティング環境では、ユーザに特化したコンテンツが埋め込まれたウェブサイトをユーザが初めて訪問したときに、示されるコンテンツは、しばしば不正確に識別されてきた(またはユーザに関連しない)。これは、コンテンツ選択プロセスが、その選択の基礎となるいかなるユーザ情報も有していないか、またはシステムが、「クラウド」においてユーザ情報を送信および収集することによってコンテンツを適合させることができるユーザプロファイルを構築するために時間を必要とするかのいずれかによる可能性が高い。
【0005】
既存のシステムでは、クラウドにおいてユーザデータを送信、処理、および解析する時間は12~24時間程度かかり、ユーザがそのウェブサイトを次に訪問する前には不完全である場合がある。この長い時間枠には問題がある。
【0006】
さらに、従来のシステムでは、(広告ターゲット「セグメント」としても知られる)特定のユーザを配置するための新しいカテゴリを作成するには、クラウドにおいて大量のユーザデータを処理することを必要とする。これには多大な時間がかかり、高速で効率的なセグメント更新の「ボトルネック」となる可能性がある。これは、セグメントが定義されるのとセグメントが実装されるのとの間の時間遅延の結果として、ターゲティング機会の損失につながる可能性がある。
【0007】
現在、ほとんどのコンテンツパーソナライゼーションプラットフォームは、バッチベースの処理モデルを使用している。これには、ユーザの行動に関連するデータを収集し、プロファイリング情報データを格納し、その後、解析ソフトウェアを実行して、パターンマッチングに基づき、所与のカテゴリ内のユーザにルールを適用して、所与のユーザの関心対象となり得る製品を決定することが含まれる。
【0008】
このアプローチはいくつかの制限を呈する。第一に、新しい分類メトリクスに基づいて処理する必要がある場合、取り込まれたデータはこれらのルールを適用するために十分ではない場合があり、これらのルールによりユーザ分類を実行することは、将来収集されるデータでのみ可能となり得るという点で制限される。第二に、本質的にはより複雑な形態のセグメントである新しいクエリは、典型的には、新しいデータでのみ実行されるが、理想的なソリューションであれば、過去のデータを解析して、これらのクエリをすぐに役に立つようにすることができるであろう。第三に、この解析エンジンは、通常、サーバ側に実装され、したがって、いかなるオフラインアクティビティも捕捉することができず、これは、ユーザデバイスが、セッション中に接続に出入りすることができるという点でモバイルである場合の使用事例にとって重要である。
【0009】
典型的には、ウェブカスタマイズプラットフォームは、ユーザに関する大量のデータを収集し、次に、クエリを実行し、セグメントおよび統計の洞察を可能にするために、サーバでこのデータをバッチ処理する。これらは、典型的には、24時間毎に一回実行され、その結果、顧客プロファイリング情報が、例えば広告に使用され得る前に、かなりの遅れを生じる。これは、例えば、ユーザが短時間に非常に素早く閲覧している可能性が高く、再訪問の可能性が限られている場合で、ユーザの行動が非常に変動的で、速度に焦点を当てているような場合に、有効性の損失をもたらす場合がある。いくつかのリアルタイム解析プラットフォームが存在するが、それらは典型的には、ライブコンポーネントを提供するために使用されるデータを単純化し、例えば現在位置のみを使用するか、または、Gmailおよび他のグーグル製品などのサービスに専用である。
【0010】
携帯電話、タブレット、ノートパソコン、およびその他のインターネット接続された個人用デバイスの数が増加し、今後数年間でIoTデバイスの劇的な増加が予想される結果、収集されるデータの量は、クラウドベースの集中型サーバへの取り込みデータのタイムリーな送信およびクラウドベースの集中型サーバでの取り込みデータの処理が重大な技術的課題を呈するほどに増加することが予想されるという懸念がある。利用可能な伝送帯域幅が制限されることは、データ処理プロセスをさらに遅くする制約となる可能性が高い。
【0011】
上記を考慮すると、本明細書で特定される技術的問題の少なくともいくつかを軽減するシステムを提供する必要がある。
【0012】
〔概要〕
この概要は、以下の詳細な説明でさらに説明される概念の抜粋を簡略化した形で紹介するために提供される。この概要は、特許請求される主題の重要な特徴または本質的な特徴を特定することを意図したものではなく、また、特許請求される主題の範囲を決定する助けとして使用されることを意図したものでもない。
【0013】
一態様によれば、ユーザデバイスにおいてユーザにコンテンツを表示する方法があり、この方法は、ユーザデバイスにおいて、ウェブ要素を示すウェブ要素要求を開始することと;ウェブ要素サーバにおいて、ウェブ要素要求に応答してウェブ要素をユーザデバイスに送信することと;コード供給サーバにおいて、ウェブ要素要求に応答してコード部分要求を受信することと;コード供給サーバにおいて、コード部分要求に応答してユーザデバイスにコード部分を送信することと;ユーザデバイスにおいて、ウェブ要素要求に応答してコード部分を実行することであって、コード部分を実行することにより、ユーザデバイスのプロセッサに、ユーザデバイスにおいてユーザデータを照合させ、照合されたユーザデータに基づいてアクションを実行させる命令を生成させる、ことと、を含む。
【0014】
この方法では、ユーザデータを外部デバイスに送信せずにデバイスにおいてユーザデータを照合することにより、ユーザデータに基づく(またはユーザに特化した)アクションを実行する(例えば、コンテンツを識別してユーザに表示する)ことができる。これにより、セキュリティの整っていない可能性のあるデバイスではユーザデータを利用できないため、セキュリティが強化される。また、ユーザデータはユーザデバイスにおいて処理されるため、ユーザデータの照合に伴う処理負担が分散される。これは、ユーザの数が、例えば、数万人、数十万人、または数百万人のユーザに至るほど大きい場合、複数のユーザにとって特に有利である。
【0015】
ユーザデータに基づいて実行されるアクションの例として、照合されたユーザデータに基づいてコンテンツを表示することが挙げられるが、このコンテンツを表示する代わりに、またはそれに加えて、他のアクションが実行され得ることも考えられる。例えば、特定のユーザと関連付けられたセグメントまたはクエリがイベントに応答して変化する場合、実行されるアクションは、ユーザデバイスにおいてコード部分によってデバイス上で実行され得る任意のアクションであり得、ここで、コンテンツの表示は単なる一例である。一例では、セグメントの変更に応答して、例えば、フェイスブックのようなソーシャルネットワークのオーディエンスAPI内で、目的の特定のトピックに対していくらか好みを有するとしてユーザにフラグを立てるAPIコールを行うアクションを実行することができる。この例では、コンテンツがユーザに表示されず、代わりに、後日ソーシャルネットワークを介してユーザをターゲットにするためにフラグが設定されることが可能である。別の例では、実行されるアクションは電子メールに関連してもよく、例えば、アクションは、照合されたユーザデータに基づいて電子メールを送信させることができる。
【0016】
本方法は、ウェブ要素サーバにおいて、ウェブ要素要求に応答してコードスニペットをユーザデバイスに送信することと;ユーザデバイスにおいてコードスニペットを実行し、コード部分要求を開始することと、をさらに含み得る。このようにして、ウェブ要素サーバがこの要求を開始するよう要求されるのとは対照的に、ユーザデバイスにコード部分要求を発行させることができる。しかし、いくつかの実施形態では、ウェブ要素サーバが、ユーザデバイスを経由せずにコード供給サーバにコード部分要求を発行し得ることが十分に可能である。別の実施形態では、ウェブ要素サーバおよびコード供給サーバは、同じサーバ内に含まれてもよい。
【0017】
コード部分を実行することにより、ユーザデバイスのプロセッサは、ユーザを複数のカテゴリのうちの少なくとも1つと関連付けることができる。コンテンツは、ユーザと関連付けられた少なくとも1つのカテゴリに基づいて選択することができる。このようにして、照合されたユーザデータを全体として記憶するのではなく、ユーザデータを単一のカテゴリと関連付けることができる。例えば、いったんユーザのカテゴリが確立されると、照合されたユーザデータを破棄し、ユーザをカテゴリと関連付けて保持することが可能となり得る。これにより、本方法によって必要とされるデータ記憶量を削減することができる。
【0018】
ユーザを複数のカテゴリのうちの少なくとも1つと関連付けることは、照合されたユーザが、複数のカテゴリのうちの少なくとも1つの基準に適合しない否定的な状態から、そのカテゴリに適合する肯定的な状態に移行したかどうかを検出することを含み得る。ユーザを複数のカテゴリのうちの少なくとも1つと関連付けることは、照合されたユーザが、複数のカテゴリのうちの少なくとも1つの基準に適合する肯定的な状態から、そのカテゴリに適合しない否定的な状態に移行したかどうかを検出することを含み得る。ユーザを複数のカテゴリのうちの少なくとも1つと関連付けることは、照合されたユーザが複数のカテゴリのうちの少なくとも1つの基準に適合するかどうかを検出することを含み得る。
【0019】
コンテンツ命令を生成することは、ユーザデバイスからコンテンツサーバに、照合されたユーザデータの少なくとも一部を示すデータ項目を含むコンテンツ命令を送信することを含み得る。このようにして、コンテンツサーバは、ユーザデバイスに提供されることが意図されたコンテンツを正確に識別することができる。
【0020】
アクションを実行させる命令は、ユーザデバイスにおいてコンテンツを表示させるコンテンツ命令を含むことができ、コンテンツは、照合されたユーザデータに基づいており、コード部分を実行することにより、ユーザデバイスのプロセッサは、コンテンツ命令に応答してコンテンツを表示する。コンテンツ命令を生成することは、ユーザデバイスからコンテンツサーバに、少なくとも1つのカテゴリを示すデータ項目を含むコンテンツ命令を送信することを含み得る。(例えば、照合されたユーザデータ全体が存在しない場合に)カテゴリを送信することは、送信されるデータ量が削減されるため有益であり、よって、帯域幅の使用量とストレージの負荷が軽減される。さらに、カテゴリを送信することで、機密性の高い可能性のあるユーザデータが他のデバイスおよび第三者に送信されることが回避され、セキュリティおよびプライバシーが強化される。
【0021】
コンテンツ命令は、データエンリッチメントサーバを介してユーザデバイスからコンテンツサーバに送信され得る。データエンリッチメントサーバは、照合されたユーザデータに追加のユーザを提供することができる。照合されたユーザデータは、ウェブ要素から抽出されたデータと組み合わせることができる。ウェブ要素からのデータは、データエンリッチメントサーバによって抽出され得る。照合されたユーザデータは、ユーザの位置の推定値を示すジオロケーションデータと組み合わせられ得る。ジオロケーションデータは、データエンリッチメントサーバによって生成され得る。よって、ユーザデータに基づき得るデータをより正確に識別することができる。
【0022】
コンテンツサーバは、コンテンツ命令に応答して、照合されたユーザデータの一部または少なくとも1つのカテゴリに基づくコンテンツをユーザデバイスに送信するように構成され得る。このようにして、コンテンツサーバは、コンテンツがユーザデバイスによって提供されるのとは対照的に、コンテンツを提供することができる。よって、より広範囲の可能なコンテンツ項目からコンテンツを選択することができる。
【0023】
本方法は、コード供給サーバにおいて複数のカテゴリを定義することと;コード部分要求に応答して複数のカテゴリの少なくともサブセットをユーザデバイスに送信することと、をさらに含み得る。複数のカテゴリのうちの少なくとも1つまたはすべてがユーザ定義され得る。
【0024】
カテゴリを定義することは、カテゴリについて少なくとも1つの基準を選択することを含み得、ユーザをカテゴリと関連付けることは、照合されたユーザデータの少なくとも一部をカテゴリの少なくとも1つの基準と適合させることを含む。
【0025】
コンテンツ命令に応答してコンテンツを表示することは、コンテンツをウェブ要素に埋め込むことを含み得る。
【0026】
本方法は、ユーザデバイスにおいて、ウェブ要素を示す追加のウェブ要素要求を開始することと;ユーザデバイスにおけるコード部分のバージョンがコード供給サーバにおけるコード部分のバージョンに対応すると決定することと、をさらに含み得る。このようにして、コード部分の最近のバージョンを確実に実行することができる。これにより、古いコード部分を実行するという不必要な処理負担を回避することができる。
【0027】
本方法は、ユーザデバイスにおけるコード部分のバージョンがコード供給サーバにおけるバージョンに対応しないと決定することに応答して、コード供給サーバにおけるコード部分のバージョンを受信することをさらに含み得る。コード部分のバージョンは、最近のバージョンであっても、最新バージョンであってもよい。
【0028】
本方法は、ユーザデバイスにおいて、ウェブ要素を示す追加のウェブ要素要求を開始することと;ユーザデバイスにおいて、追加のウェブ要素要求に応答してコード部分を実行することであって、コード部分を実行することにより、ユーザデバイスのプロセッサは、ユーザデバイスにおいてユーザデータを照合する、ことと;ユーザデバイスにおいてコンテンツを表示させるコンテンツ命令を生成することであって、コンテンツは、照合されたユーザデータに基づく、ことと;コンテンツ命令に応答してコンテンツを表示することと、をさらに含み得る。このようにして、実行のためにコード部分を再ダウンロードする処理、帯域幅およびストレージ負荷を回避することができる。
【0029】
ウェブ要素はウェブページを含み得る。ウェブ要素は、ビデオコンテンツを含み得る。ウェブ要素は、オンラインゲームを含む。照合されたユーザデータの少なくとも一部は、ユーザに近接するインターネット対応デバイスから受信され得る。
【0030】
別の態様によれば、ユーザデバイスにおいてユーザにコンテンツを表示する方法があり、この方法は、コード供給サーバにおいて、ユーザデバイスで開始されたウェブ要素要求に応答してコード部分要求を受信することと;コード部分要求に応答してコード部分をユーザデバイスに送信することと、を含み、コード部分は、ユーザデバイスで実行され、ユーザデバイスのプロセッサに、ユーザデバイスにおいてユーザデータを照合させ、かつ照合されたユーザデータに基づいてアクションを実行させる命令を生成させるように構成されている。
【0031】
別の態様によれば、ユーザデバイスにおいてユーザにコンテンツを表示する方法があり、この方法は、ユーザデバイスにおいて、ウェブ要素を示すウェブ要素要求を開始することと;ユーザデバイスにおいて、コード供給サーバからのウェブ要素要求に応答してコード部分を受信することと;ユーザデバイスにおいて、ウェブ要素要求に応答してコード部分を実行することであって、コード部分を実行すると、ユーザデバイスにおいてユーザデータが照合される、ことと;ユーザデバイスにおいて、ウェブ要素要求に応答して、ウェブ要素要求に対応するウェブ要素をウェブ要素サーバから受信することと;照合されたユーザデータに基づいてアクションを実行させる命令を生成することと、を含む。
【0032】
別の態様によれば、ユーザデバイスにおいてユーザにコンテンツを表示する方法があり、この方法は、ウェブ要素サーバにおいて、ユーザデバイスからウェブ要素を示すウェブ要素要求を受信することと;ウェブ要素サーバにおいて、ウェブ要素要求に応答してウェブ要素およびコードスニペットをユーザデバイスに送信することと、を含み、コードスニペットは、ユーザデバイスにおいて実行され、ユーザデバイスのプロセッサに、ユーザデバイスにおいてユーザデータを照合させ、かつ照合されたユーザデータに基づいてアクションを実行させる命令を生成させるように構成されている。
【0033】
別の態様によれば、コンテンツをユーザに表示するためのシステムがあり、このシステムは、ユーザデバイスと、ウェブ要素サーバと、コード供給サーバと、を含み、ユーザデバイスは、ウェブ要素を示すウェブ要素要求を開始するように構成され、ウェブ要素サーバは、ウェブ要素要求に応答してウェブ要素をユーザデバイスに送信するように構成され、コード供給サーバは、ウェブ要素要求に応答してコード部分要求を受信するように構成され、コード供給サーバは、コード部分要求に応答してコード部分をユーザデバイスに送信するように構成され、ユーザデバイスは、ウェブ要素要求に応答してコード部分を実行するように構成され、コード部分を実行することにより、ユーザデバイスのプロセッサは、ユーザデバイスにおいてユーザデータを照合し、照合されたユーザデータに基づいて命令を生成する。
【0034】
別の態様によれば、ユーザデバイスにおいてユーザにコンテンツを表示するためのサーバがあり、このサーバは、ユーザデバイスで開始されたウェブ要素要求に応答してコード部分要求を受信するステップと、コード部分要求に応答してコード部分をユーザデバイスに送信するステップと、を実行するように構成されたプロセッサを含み、コード部分は、ユーザデバイスにおいて実行され、ユーザデバイスのプロセッサに、ユーザデバイスにおいてユーザデータを照合させ、照合されたユーザデータに基づいてアクションを実行させる命令を生成させるように構成されている。
【0035】
別の態様によれば、コンテンツをユーザに表示するためのユーザデバイスがあり、このユーザデバイスは、ウェブ要素を示すウェブ要素要求を開始するステップと;コード供給サーバからのウェブ要素要求に応答してコード部分を受信するステップと;ウェブ要素要求に応答してコード部分を実行するステップであって、コード部分を実行することにより、ユーザデバイスにおいてユーザデータを照合する、ステップと;ウェブ要素要求に応答して、ウェブ要素要求に対応するウェブ要素をウェブ要素サーバから受信するステップと;照合されたユーザデータに基づいてアクションを実行させる命令を生成するステップと、を実行するように構成されたプロセッサを含む。
【0036】
別の態様によれば、ユーザデバイスにおいてユーザにコンテンツを表示するためのサーバがあり、このサーバは、ユーザデバイスからウェブ要素を示すウェブ要素要求を受信するステップと;ウェブ要素要求に応答してユーザデバイスにウェブ要素およびコードスニペットを送信するステップと、を実行するように構成されたプロセッサを含み、コードスニペットは、ユーザデバイスにおいて実行され、ユーザデバイスのプロセッサに、ユーザデバイスにおいてユーザデータを照合させ、照合されたユーザデータに基づいてアクションを実行させる命令を生成させるように構成されている。
【0037】
別の態様によれば、ユーザデバイスにおいてユーザにコンテンツを表示するためのサーバがあり、このサーバは、ウェブ要素要求に応答してユーザデバイス上で実行されるコード部分によって照合されたユーザデータをユーザデバイスから受信するステップと;照合されたユーザデータに基づいてコンテンツを識別するステップと;識別されたコンテンツをユーザデバイスにおいて表示するためにユーザに送信するステップと、を実行するように構成されたプロセッサを含む。
【0038】
別の態様によれば、命令を含むコンピュータプログラムがあり、この命令は、プログラムがコンピュータによって実行されると、コンピュータに本明細書に記載の方法を実行させる。
【0039】
別の態様によれば、命令を含むコンピュータ可読媒体があり、この命令は、コンピュータによって実行されると、コンピュータに本明細書に記載の方法を実行させる。
【0040】
本明細書で説明するコンピュータプログラムを運ぶデータキャリア信号。
【0041】
以下の図面を参照して、本発明の様々な実施形態を、単なる例として説明する。
【図面の簡単な説明】
【0042】
図1】高速かつ安全なコンテンツ提供のためのシステムの概略図を示す。
図2】このシステムによって実行される方法を示すフローチャートを示す。
図3】ウェブ要素サーバの観点からのフローチャートを示す。
図4】システム内のデバイス間で送信されるデータの概略図を示す。
図5】図の方法のフローチャートをより詳細に示す。
図6】コード供給サーバによって実行される方法のフローチャートを示す。
図7】ソフトウェア開発キットへのJavaScriptの導入を示す。
図8】システム内の例としてのデバイスの概略図を示す。
【0043】
〔詳細な説明〕
本明細書に記載される実施例は、いわゆる「エッジコンピューティング」を利用して、すなわち、処理タスクを集中ポイントから離れて分散することによって、各ユーザの情報を各自のデバイス上で処理することによって、上記の問題の両方を解決する。さらに、ユーザが、例えばウェブページを訪問することによって、イベントをトリガするたびにデータベース全体を処理するのではなく、システムは、新しいイベントごとに反復的に更新される状態を記憶する。
【0044】
本発明のシステムアーキテクチャおよびエッジ処理は、ユーザ情報が収集され、ユーザがセグメント化され、ターゲットを絞った広告が、ウェブページのロードを要求してから最初の数百ミリ秒以内に供給されることを可能とし、したがってウェブページのロードに要する時間内に完了する。
【0045】
エッジ上の新しいセグメントまたは更新されたセグメントの処理は、データ伝送遅延がないため、より高速であり、使用可能な伝送帯域幅に関連する問題がない。これまでのユーザデータの「状態」がセグメントを計算するために必要な情報を含む場合には、これまでのユーザデータをすべて処理する必要もなく、その状態の情報はすでに最新であるため、かなりの時間を節約する。
【0046】
本発明は、ユーザまたはデバイス入力を検出および処理することができるインターネット接続デバイスのシステム、集中型サーバベースのデータベース、ならびにユーザデバイスをデータベースと接続するインターネットベースのネットワークを含む。本発明の1つの重要な利点は、ローカルのオンデバイス処理を利用することによってほぼリアルタイムで、ユーザまたはデバイス入力によって分割された非常に大量のデータを処理する能力である(例えば、1分当たり数百万のイベントを処理し、各イベントは1KBを超えるデータの処理を伴う)。
【0047】
本発明は、先行技術における上記の問題に対処し、それによって、過去および将来のデータからユーザまたはデバイスの行動をほぼリアルタイムで処理することを可能にするプラットフォームを提供することができる。また、エッジ処理のソリューションはスケーラブルであるため、多数のインターネット接続デバイス(例えば、数億台のデバイス)からの非常に大量のデータに対処すると共に、伝送帯域幅、および利用可能なクラウドベースの処理能力の制限という問題を解決することができる。
【0048】
本発明は、特にターゲットとされたユーザタイプに関連コンテンツ(例えば広告)を表示するためのシステムであり、これは、ユーザの複数のインターネット接続デバイスと、インターネットを介してユーザデバイスにデータを送信し、ユーザデバイスからデータを受信することができる集中型サーバベースのデータベースと、を含む。
【0049】
ユーザをターゲットとしたコンテンツを配信するためのハイブリッドコンピューティングシステムが本明細書に記載され、これにより、ユーザデータまたはデバイス入力データの計算処理の大部分が、分散されたデバイス上でローカルに行われる。いわゆる「エッジコンピューティング」である。取り込まれたデータのサブセットはデバイスに記憶され、完全なデータセットは集中型のクラウドベースのデータベースに記憶される。データセット全体の解析は、クラウド内のサーバで行うことができる。セグメントが利用可能であること、およびセグメントが構成された直後にデバイスに分配され得る容易さは、特に有利である。
【0050】
エッジにおける現在のセグメントを知った上で、また、クラウドでの処理集約的な結合を行う必要なしに、不変の元帳データ記憶構造と組み合わせて、各ユーザのデータを処理するために、分散されたデバイスの処理手段を利用すると、およそミリ秒単位の、または効果的にはリアルタイムの処理速度がもたらされる。したがって、ターゲットコンテンツは、ロードが完了する前にウェブページに埋め込まれ得る。これにより、コンテンツ制作者は、ウェブサイトを初めて訪問したときから、ターゲットとなる視聴者と交流することができ、データの処理および送信が実施されたら、個人化コンテンツを配信するのにユーザがウェブサイトを繰り返し訪問することを当てにする必要がなくなる。ユーザが属するセグメントはデバイス上でもリアルタイムでも知られているため、すべてのイベントは、セグメントIDのリストを含むイベントのプロパティとして、イベントが発生した時点でユーザがいたセグメントによって強化される。ユーザの現在のセグメントを含めることは、計算コストのかかる、いくつかの結合操作を避け得ることを意味する。例えば、フォーム「イベント「X」を実施し、その時点でセグメント「S」にいた(did perform event ‘X’ and was in segment ‘S’ at the time)」のセグメントは、ユーザがその時点でセグメント「S」にいたかどうかを再計算する必要なく形成され得る。
【0051】
プラットフォームは、すべてのユーザの膨大な量のデータを処理することができ、したがって、コンテンツをユーザに向ける際のプラットフォームの精度を高めるであろう。ユーザのデバイス上でエッジコンピューティングを利用することは、ユーザおよびデバイスの数が増えるので、そのような大量のデータ(例えば、毎月数億人のユーザについて、毎日数十億のイベント)を収集し処理することが可能になることも意味し、これはスケーラブルなソリューションである。
【0052】
このシステムは、ヘッダー入札を活用するのにも使用され得る。ユーザのセグメント化に基づいて、プラットフォーム内でキー値ペアが作成されると、アドエクスチェンジに送り込まれる。この追加情報により、ユーザの所与のセグメントにコンテンツを表示することに関心のある広告会社は、そのユーザに入札することができる。システムは入札に利用できる時間を増やすことができる。
【0053】
本発明の別の有利な特徴は、ユーザのセグメント化の高度な個人化である。開示された発明において、セグメントは、多種多様なユーザおよびウェブページの属性およびデータから作成され得る。任意の一般的なデータを任意の複雑さで取り込むことができる。さらに、クエリの形で適用されるロジックは複雑である可能性がある。これにより、ユーザが作成するセグメントをより制御できるという点で、既存の技術に比べて利点がもたらされる。
【0054】
このシステムはまた、複雑さおよび実行コストが低減されるという点で有利である。ハイブリッド処理の使用は、クラウドベースのシステムが必要とするのと同じ規模で大きなコンピュータ処理設備を必要としないことを意味する。
【0055】
ローカル処理およびストレージの使用により、システムは、接続性の問題に対する堅牢性が向上している。
【0056】
本明細書で提案される発明は、ユーザによって分割された大量のユーザ生成データを処理することができ、これを使用して、高度に個人化された関連するアクションまたは反応をリアルタイムでユーザに配信することができる、システムを提供し得る。本発明の目的は、ユーザがウェブページを初めて訪問したときから、ユーザデータ処理およびセグメント化を介して、ユーザにターゲットコンテンツを提供することである。
【0057】
本発明の別の利点は、ユーザの新しいセグメントまたは更新されたセグメントのほぼリアルタイム(例えば、およそミリ秒または秒で)の実装を可能にすることである。新しいセグメントまたは更新されたセグメントの実装時間は、特定のデバイス/ユーザについて以前に記録されたイベントの数の関数である。
【0058】
本発明の別の目的は、エッジコンピューティングの利用を通じてデバイスのローカル処理能力を利用することにより、IoTデバイスと共に機能し、インターネット接続デバイスまたはIoTデバイスの数が著しく増加することが予想され、デバイスが収集するデータが急速に増加することが予想されるにつれて、スケールアップできるプラットフォームを提供することである。
【0059】
本発明の別の利点は、ユーザに配信されるコンテンツの個人化が利用可能な収集されたユーザデータのすべてに基づくように、複数のデバイス(例えば、スマートフォン、デスクトップ、タブレット)およびクラウドサーバデータベースにわたってユーザのデータを同期させるプラットフォームを提供することである。
【0060】
本発明の別の利点は、第三者から追加のユーザプロファイリング情報を供給し、入力データを強化して、収集されるユーザデータの量を拡大し、ユーザをセグメント化する、より広い範囲の属性を提供することである。
【0061】
本発明の別の利点は、ユーザの(例えば、平均バスケット値(average basket value)に基づく)高度に個人化されたセグメント化を定義してプラットフォームに提供し、よってターゲティングするための複雑なクエリ言語を提供することである。
【0062】
本発明は、将来的にIoTに適用される可能性がある、広告、コンテンツ推薦および個人化のためのウェブ解析プラットフォームを含む。本発明の目的は、スケーラブルでリアルタイムの関連コンテンツ配信ソリューションを顧客に提供することである。
【0063】
ここで詳述する実施形態は、関連するターゲットを絞った広告を提示するための方法を説明するが、任意の種類の関連デジタルコンテンツを示すことを含む多くの異なる形態で、アクションを提供するか、または反応するために使用され得ることを理解されたい。本明細書に記載される特定の実施形態は、関連するターゲットを絞った広告を提示するための方法に関連するが、任意の種類の関連デジタルコンテンツを示すこと、またはターゲットを絞ったデータを第三者によるサービスに送信することを含む多くの異なる形態で、アクションを提供するか、または反応するために、実施形態が使用され得ることを理解されたい。
【0064】
本発明の主要な態様は、分散されたユーザデバイスのローカル処理能力を利用することにより、ユーザまたはデバイス入力によって分割された非常に大量のデータをリアルタイムで処理する能力である。
【0065】
イベントは、デバイスまたはユーザからの任意の形態の対話を含むことができる。これは、例えば、ウェブページへのユーザの訪問、またはデバイスで行われた温度読み取りとすることができる。
【0066】
システムアーキテクチャ
図1は、コンテンツの高速かつ安全な提供のためのシステム1の一般的なアーキテクチャを示す。システム1は、ユーザデバイス3(例えば、デバイス200)と、ウェブ要素サーバ5(例えば、ウェブホスティングシステム206)と、コンテンツサーバ9(例えば、分配システム222)と、コード供給サーバ7(例えば、クラウドサーバシステム209)と、データエンリッチメントサーバ11(例えば、データエンリッチメントソース215)と、を含むコンピューティング/電子デバイスを含む。
【0067】
コンピューティングデバイス3、5、7、9、11は、通信ネットワーク13を介して互いに通信するように構成される。通信ネットワーク13は、この実施例では、インターネット13である。しかしながら、任意の適切な形態の通信ネットワーク13を使用し得ることが理解されよう。
【0068】
コンピューティングデバイス3、5、7、9、11は、埋め込みブラウザまたは「アプリ」または同様のものを含むことによってウェブ対応である。さらに、各デバイス3、5、7、9、11は、ディスプレイ、UI、プロセッサ、およびメモリを含むことができる。
【0069】
デバイス3、5、7、9、11は、任意の適切な通信プロトコルまたは接続を介して互いの間でデータを通信するように構成することができる。例えば、デバイス3、5、7、9、11は、有線および/または無線接続を介して互いに通信することができる。
【0070】
方法の概要
図2は、システム1によって実行される方法のフローチャートを示す。ステップ21では、ユーザデバイス3のユーザは、ウェブページのようなウェブ要素の要求を開始し、これがウェブ要素サーバ5に送信される。ステップ23では、ウェブ要素サーバ5は、ユーザデバイス3にウェブページを提供することによりウェブページ要求に応答する。ステップ25では、ウェブ要素サーバ5は、オプションとして、ウェブページ要求に応答して、コードの一部または「コードスニペット」をユーザデバイス3に送信することもできる。ステップ27では、コードスニペットがユーザデバイス3で実行され、ユーザデバイス3はコード部分の要求をコード供給サーバ7に送信する。代替的な実施形態では、ウェブ要素サーバ5は、最初にコードスニペットをユーザデバイス3に送信することなく、コード供給サーバ7にコード部分要求を送信してもよい。別の実施例では、ウェブ要素サーバ5とコード供給サーバ7とが同じサーバであってもよく、よって、コード部分の要求は外部に送信する必要はなく、代わりに、コード部分要求は、同じサーバ内のサーバのウェブ要素部からサーバのコード供給部に渡される。
【0071】
ステップ29では、コード部分をユーザデバイス3に提供する。ステップ31では、ユーザデバイス3でコード部分を実行し、ユーザデータを照合する。ユーザデータは、ユーザデバイス3に記憶されたデータを用いて照合されてよく、かつ/または、データは、ユーザデバイス3において外部ソースから照合されてもよい。オプションのステップ31a~31cでは、ユーザデータは、データエンリッチメントサーバ11によって補足されてよく、データエンリッチメントサーバは、ステップ31aにおける追加のユーザデータの要求に応答することができる。追加のユーザデータは、ウェブ要素から抽出されたデータ、ユーザと関連付けられたジオロケーションデータ、および/またはユーザと関連付けられたさらなるデータを含むことができる。このデータは、ステップ31aでの要求に応答する必要なく、ウェブ要素サーバ5に送信され得る。このデータは、データエンリッチメントサーバ11によって定期的に送信され得る。ユーザデータは、ステップ31cでユーザデバイス3に転送され得る。
【0072】
オプションのステップ33では、ユーザデータは、例えばユーザデータが、あるカテゴリと関連付けられた少なくとも1つの基準に適合する場合に、ユーザを分類するために使用される。ステップ35では、アクションを実行させる命令(例えばコンテンツ命令)がユーザデバイス3で生成される。コンテンツ命令は、ユーザデバイス3に既に記憶されているデータをユーザに提示させる命令を含み得る。例えば、コンテンツ命令により、ウェブページのデータが、例えば「ポップアップ」ウィンドウを介して、ユーザに示されることができる。ステップ41では、アクションが実行され、例えば、コンテンツがユーザに表示され得る。オプションとして、コンテンツ命令はステップ37および39を含み得、ここで、コンテンツサーバ9に命令が送信される。この命令は、照合されたユーザデータおよび/またはユーザのカテゴリを示すデータ項目を含むことができる。ステップ39では、コンテンツサーバ9は、データ項目をコンテンツ項目と一致させ、そのコンテンツをユーザデバイス3に送信する。ステップ41では、識別されたコンテンツがユーザデバイス3において表示される。
【0073】
ユーザデータに基づいて実行されるアクションの例として、照合されたユーザデータに基づいてコンテンツを表示することが挙げられるが、このコンテンツを表示する代わりに、またはそれに加えて、他のアクションが実行され得ることも考えられる。例えば、特定のユーザと関連付けられたセグメントまたはクエリがイベントに応答して変化する場合、実行されるアクションは、ユーザデバイスにおいてコード部分によってデバイス上で実行され得る任意のアクションであり得、ここで、コンテンツの表示は単なる一例である。一実施例では、セグメントの変更に応答して、例えば、フェイスブックのようなソーシャルネットワークのオーディエンスAPI内で、目的の特定のトピックに対していくらか好みを有するとしてユーザにフラグを立てるAPIコールを行うアクションを実行することができる。この実施例では、コンテンツがユーザに表示されず、代わりに、後日ソーシャルネットワークを介してユーザをターゲットにするためにフラグが設定されることが可能である。別の実施例では、実行されるアクションは電子メールに関連し、例えば、アクションは、照合されたユーザデータに基づいて電子メールを送信させることができる。
【0074】
ウェブページサーバの観点
ウェブサイトプロバイダーは、コンテンツ(例えば広告)をウェブページに埋め込むことができる。以下のサブセクションでは、その観点から、ウェブページでターゲットを絞った広告を生成および配信するために実行されるプロセスについて説明する。
【0075】
高いレベルで、開示された発明のウェブページサーバの観点から見たフローチャートを、図3に示す。プラットフォームがウェブサイトに埋め込まれると(100)、システムはデフォルトのイベントおよびセグメントを自動的に収集することができ、クエリおよび反応をダッシュボードで定義し得る(101)。
【0076】
ウェブサイトは、そのウェブページ上に、ターゲットを絞った広告を特徴とする広告要素を含み得る(102)。広告要素は、ウェブページ上のスペースまたは領域で、ここに広告を配置することができる。これは、長方形のボックス、正方形のボックス、バナー、ポップアップブラウザウィンドウまたはスポンサー付きコンテンツであってもよいが、これらに限定されない。パートナーが作成する広告要素が多ければ多いほど、プラットフォームがウェブページの訪問者に合わせて広告を調整しなければならない機会が多くなる。フローチャートには(101)と(102)が並行して示されているが、広告要素がパートナーのウェブページに埋め込まれる前、前記ウェブページの作成に並行して、またはウェブページが公開された後に、セグメント、クエリ、および反応を定義することができる。
【0077】
いったんセグメント、クエリおよび反応が設定されると、ユーザが1つ以上の埋め込み広告を有するウェブページを訪問した場合に(103)、ユーザは、その以前のイベントおよび進行中のイベントに従ってセグメント化される(104)。このユーザセグメント化プロセスは、実行される広告要素を自動オークションに通知するのに役立つ(105)。このオークションの結果は、ウェブページ上で広告要素の中に置かれた、ユーザをターゲットにした広告である(106)。
【0078】
セグメント
セグメントは、ユーザのイベント履歴を処理し、所与のユーザについてブール値のTRUEまたはFALSEの出力を返す。
【0079】
プラットフォームがいつ反応すべきかを定義するには、プラットフォームのユーザがブラウザベースのダッシュボードに1つ以上のセグメントを作成する必要がある。ユーザは、ユーザのイベントに関する基準を定義することによって、典型的な広告ターゲットユーザの典型的な行動および属性、プロファイルを指定する必要がある。
【0080】
セグメントの名前、セグメントのフィルタリングおよび検索を容易にするセグメントに関連付けられたタグ、ならびにセグメントの説明を含む、セグメントと関連付けられたメタデータが必要とされ得る。これらの入力に続いて、セグメント基準に適合するユーザの前述の行動またはプロファイルが定義される。
【0081】
セグメントを作成する必要がある状況の例として、ユーザが、販売したい広告スペースを有するウェブページを有する、システムを使用するオンラインプレゼンスを有する新聞社であると仮定する。その新聞社は、仕事を探しているビジネスアナリストのためのセグメントを作りたいと考えている。この例では、新聞社がセグメントを作成するであろう。この例では、ユーザが広告スペースを有するウェブページに訪問するセグメント基準に適合する場合、セグメントは、ユーザの状態を例えばFALSEからTRUEに変更することにより、そのインスタンスにフラグを立てるであろう。プラットフォームは次に、このイベントに対して指示されたとおりに反応するであろう。ユーザのこのセグメントは、例えば、このユーザの前でロードされているウェブページ上の広告要素に入札することができる求人リストを持っているコンサルティング会社にとって興味深いものとなり得る。
【0082】
クエリ
クエリは、セグメントと同様に、ユーザの行動またはプロファイルに応答してユーザのイベント履歴を処理する。しかし、クエリは、データのグループ化または集約を必要とする、より複雑なロジックに対応することができる。好ましい実施形態では、平均、合計、カウント、最大値および最小値を含むがこれらに限定されない数学関数がクエリでサポートされる。セグメントは、反応され得るTRUEおよびFALSEの値を生成するが、クエリは任意の特定のタイプの値を生成する。例えば、クエリで、ユーザの購入イベントについて平均バスケット値を計算することができる。これは、セグメントによって提供されるTRUEまたはFALSE値だけでなく、任意のタイプの値に基づいてクエリに対する反応を決定できることを意味する。
【0083】
クエリは、ユーザインタフェースを介してクエリ言語を使用して書かれる。セグメントは、ダッシュボードのセグメント・ビルダー・インタフェースを使用して構築される。
【0084】
反応
反応は、セグメントを他のプラットフォームに渡すことができるプロセスである。
【0085】
セグメントは、反応をトリガするために使用される。好ましい実施形態では、トリガには3つのタイプがある。
i.入力時(On Entry):ユーザがセグメントを入力すると、反応がトリガされる。
ii.終了時(On Exit):ユーザがセグメントを終了すると、反応がトリガされる。
iii.毎回(Every Time):そのセグメントにいる間にユーザがページを訪問するたびに、反応がトリガされる。
【0086】
トリガに対するプラットフォームの応答は、例えばユーザインタフェースを介して、ユーザが定義することができる。
【0087】
好ましい実施形態では、ユーザは、ユーザの行動に合わせた広告を含む自身のウェブサイトを閲覧するユーザを選択的にターゲティングするために、1つ以上のウェブページ上で本明細書に記載された発明を使用する。
【0088】
ウェブページへの最初の訪問
開示される発明の好ましい実施形態では、図4に示すように、5つのグループのコンポーネントがある。第一に、ターゲットを絞った広告が埋め込まれたウェブサイトにアクセスする、ユーザのデバイス(200)がある。ユーザデバイス(200)と通信するのは、クラウドサーバシステム(209)、データエンリッチメントソース(215)、広告販売および配信システム(222)、ならびにウェブホスティングシステム(206)である。
【0089】
以前にウェブサイトにアクセスしたことがないユーザのためのプロセスにおける第1のステップは、ユーザのデバイス(200)上でのウェブページ(201)に対するユーザの要求である。ウェブページ(201)は、広告要素(202)を含む。URLは、メッセージ(204)をウェブホストのサーバ(205)に送信することによって、ブラウザにウェブページを供給するように指示する。これに応答して、ウェブホストサーバ(205)は、HTML形式のウェブページコンテンツを、ウェブサイトの各ウェブページに付加されたJavaScriptスニペットと共に、デバイス(200)上のブラウザに送信する(204)。次に、スニペットが実行され、これによりサーバ(208)にpingを送り、ソフトウェア開発キット(SDK)をダウンロードして初期化する(218)。
【0090】
好ましい実施形態では、ユーザプロファイリング情報は、データ(213)をサーバ(208)のAPIに連続的にストリーミングする、「The Nielsen Company (US), LLC」などのユーザデータ集約を専門とする会社のデータベース(214)から得られる。ユーザ情報は、ユーザの性別、年齢、および個人的関心を含み得るが、これらに限定されない。
【0091】
サーバ(208)は、ウェブページ情報を、IBM Watsonのような自然言語処理(NLP)プロバイダ(211)に中継し(210)、これにより、概念、タグ、または他の強化されたウェブページデータを抽出する。好ましい実施形態では、サーバ(208)は、そのデータベース内に、URLとNLPプロバイダ分類との間の関連付けを含む。NLP分類が必要な場合、およびデータベース(208)に存在するURLを有するイベントがAPIに送信された場合(218)、APIはデータベースを使用して、データベース(208)に記憶されたNLPプロバイダ分類でイベントを強化する。データベース(208)にURLの分類が存在しない場合、要求(210)が、URLのテキスト本文と共にNLPプロバイダ(211)に送信される。NLPプロバイダ(211)からの応答(212)はサーバ(208)に送信され、そこで、将来の分類要求のためにデータベースに記憶される。
【0092】
代替実施形態では、NLPプロバイダの出力は、ユーザのデバイス(200)に直接送信され(212)、そこで、そのデータは、ユーザのセグメント化のためにその他のユーザデータと組み合わせられる。次いで、情報がサーバ(208)と同期される(218)。
【0093】
クライアント側エンリッチメントとして知られる別の代替実施形態では、ウェブページ情報は、デバイス(200)からユーザ・プロファイリング・データベース(214)またはデータ・エンリッチメント・プロバイダに直接送信される(223)。
【0094】
エンリッチメントの別の形態であるジオロケーションは、ユーザのIPアドレスの供給に依存する。この強化されたデータに対する要求は、API(208)からジオロケーションプロバイダ(217)にプッシュされる(210)。GeoIPなどのジオロケーションプロバイダー(217)は、ユーザに関する強化されたロケーションデータを返信する(216)。そのデータは次に、ユーザデバイス(200)内のSDKに中継される(218)。
【0095】
代替実施形態では、ジオロケーションプロバイダ(217)への、またジオロケーションプロバイダ(217)からのデータの要求および送信は、サーバ(208)をバイパスして、ユーザデバイス(200)に対して、またユーザデバイス(200)からそのように直接行われる。
【0096】
代替実施形態では、他のデータソースを使用して、APIHub, Inc(「Clearbit」)のような会社からの、IAB広告分類およびインターネットサービスプロバイダの詳細およびビジネス情報などの分類などであるがこれらに限定されない追加の強化されたコンテンツを提供することができる。
【0097】
サーバはSDKをユーザのデバイス(200)に送信し(218)、そこで、SDKはデバイス(200)上のブラウザのローカルストレージに記憶される。
【0098】
ユーザのセグメント化に続いて、広告要素およびユーザのカテゴリに関する情報がブラウザからアドサーバ(221)に送信される(223)。次いで、アドサーバ(221)は、広告要素のオークションのために、この情報をアドエクスチェンジ(219)に転送する(220)。広告のためのオークションが完了した後、メッセージがアドサーバ(222)に送られ(220)、落札した広告を要求する。次いで、広告がユーザのデバイス(200)のブラウザに送られ(223)、そこでウェブページ(201)の広告要素(202)に埋め込まれる。
【0099】
好ましい実施形態では、図4に示すように、システム内のデバイス間で送信されているユーザデータを保護するために、通信チャネルのうちの1つ以上に暗号化が適用される。
【0100】
上述のコンテンツ(例えば広告)選択プロセスは、図5で見ることができるフローチャートにおいて可視化されている。
【0101】
ユーザによるウェブページの要求からユーザのセグメント化までのプロセス(400)~(410)は、図4の説明のとおりである。追加のタイプの強化されたコンテンツ、および、第三者のエンリッチメントソースと、サーバと、ユーザのデバイスとの間の代替的なデータ送信のような代替実施形態は、図5から省略されているが、依然として本発明の範囲内である。
【0102】
図5の要素(411)~(414)は、キー値ペアがユーザのセグメント化から作成される場合のイベントのシーケンスを示す。次に、キー値ペアがヘッダー入札プロセスで使用される。ヘッダー入札は重要な新しいプログラム技術であり、これにより、広告掲載がページにロードされる前に、パブリッシャーがページロードごとにオークションを実行する。オークションは、パブリッシャーのアドサーバの外部、すなわちユーザのブラウザ内のウェブページのヘッダーで行われ、パブリッシャーがオークションを制御する。ページのロードが開始されると、ユーザのブラウザはパブリッシャーのデマンドパートナーすべてを同時に呼び出し、それぞれがユーザのページ上のスロットに入札する。従来のようにアドエクスチェンジの最低価格が次々と下落するのとは対照的に、広告主はあらゆるインプレッションを見ることができ、パブリッシャーは直接注文よりも価値の高い広告を選ぶことができる。
【0103】
このシステムのリアルタイムのオンデバイス機能により、パブリッシャーはヘッダー入札を利用することができる。パブリッシャーのページを設定してヘッダー入札をイベント(例えば、イベントのプロパティとして入札価格を有する)に変換すると、クエリが作成されて、リアルタイムでユーザの平均、最小および最大付け値を計算し、オークションの効率に影響を及ぼすようにリアルタイムでオークションに情報を追加するリアルタイムの反応設定を計算することができる。例えば、落札額の最小値を取ることで、オークションの最低価格をこの最小値に設定でき、これは、入札がより高く開始されるため、オークションが実行される限られた期間にわたって入札の値が上昇する時間が増えることを意味する。
【0104】
対照的に、ユーザの情報がセグメントの基準に適合しない場合、デフォルトのアドサーバ処理が続き、それにより、ユーザに対する広告のある量の個人化は、依然として可能であるが、図5に示された代替経路によって示すのと同じ程度まで可能ではない。
【0105】
好ましい実施形態では、ウェブページがユーザによって要求されて(400)から広告がアドサーバから送信される(414)または(417)までの経過時間は、200ミリ秒程度であり、ウェブページのロードが完了する前に、広告がデバイスに送信される。
【0106】
ウェブページへの再訪問
ウェブページへの次の訪問の際に取り上げられるターゲットを絞った広告の配信を管理するプロセスをここで説明する。
【0107】
ユーザが最初にウェブページを訪問するのとは対照的に、この場合、ユーザのデバイスは既にSDKをブラウザのキャッシュに有している。より最近のバージョンのSDKが利用可能な場合、または新しいセグメントもしくは更新されたセグメントが利用可能な場合は、サーバからダウンロードされる。以前のウェブサイトへの訪問により収集されたユーザデータの最近のサブセットは、キャッシュに記憶される。SDKに記憶されて実行される状態は、以前に取得されたデータを反映するように最新である。この再訪問では、状態の再更新を促すイベントが生成される。反応が設定されていて、状態に対する変更によってトリガされる場合、これらが実行される。前のセクションで説明し、図5に示したような広告オークションのプロセスは同じであるが、再訪問時には、この訪問から収集されたデータを補足する、ユーザデータの履歴データベースがあるため、より多くの量のユーザデータが、広告配信を調整するのに利用可能である。例えば、ユーザが訪問したことがあり、かつ訪問しているウェブページのための概念タグの蓄積により、ユーザの興味に関してシステムにより良く通知される。このデータは、より多くのキー値ペア、またはより正確なキー値ペアを生成するために使用され、オークションにおける改善されたユーザと広告とのマッチングをもたらす可能性が高い。
【0108】
セグメントの実装
デバイス上でのユーザの行動を取り込むために、セグメントは、プラットフォームを実行させているウェブページにアクセスした任意のユーザに分配される。好ましい実施形態では、セグメントは、JavaScript SDKの形態で分配される。図6のフローチャートは、セグメントを更新するために必要とされるプラットフォームのバックエンドに含まれるステップを詳述する。
【0109】
このウェブページへの訪問で取り込まれた情報は、キャッシュとしても知られる、デバイス(200)のブラウザのローカルストレージにおける、ユーザが訪問したウェブサイトの以前に取り込まれた履歴データに追加される。
【0110】
セグメントを作成し、そのロジックをダッシュボード・セグメント・ビルダーに定義することができる(500)。好ましい実施形態では、これは、任意のインターネット接続デバイス上で行うことができる。これが完了すると、集中型サーバはセグメントSQLを生成する(501)。好ましい実施形態では、SQL(501)は、次に、クエリ構文木に構文解析され(502)、その後、コンパイルされてセグメントJavaScript(503)、C、または他の解釈を作成する。JavaScriptをSDKに導入する次のステップ(504)を図7に示す。
【0111】
顧客のユーザのエンドデバイス(505)に分配され、それぞれのブラウザキャッシュに記憶されるSDK(600)は、汎用SDK(602)、および導入されたJavaScriptセグメント(601)の2つのコンポーネントを有する。
【0112】
汎用SDK(602)は、いくつかの重要な役割を果たす。これらは次のとおりである:
i.取り込み(Ingestion):ユーザの行動をユーザイベントとして取り込み、サーバAPIにpingする。
ii.セグメント処理:イベントおよび現在の状態を取得し、新しい状態を生成する更新関数にイベントを供給する責任がある。
iii.反応:新しい状態に基づいて、反応をトリガするかどうかを決定する。
iv.ローカルストレージ管理:キャッシュに記憶されたセグメントを管理する。
v.クラウドとの同期:集中型コピー(centralized copy)のため、ローカルで生成されたイベントをサーバにプッシュし、必要に応じて集中型コピーからイベントをプルする(例えば、ユーザが別のデバイスにログインし、そこでイベントを生成した場合)。
【0113】
汎用SDKへの更新はまれであり、多くの場合、コードのパフォーマンスが改善された場合、またはバグ修正が行われた場合に行われるに過ぎない。SDKは、デバイス(200)のブラウザのキャッシュに記憶される。
【0114】
ユーザがセグメントまたはクエリを変更するたびに、導入されたセグメントが更新され、ユーザのウェブページのうちの1つに次にアクセスしたときにユーザのデバイスにダウンロードされる。
【0115】
状態
状態とは、セグメント結果を生成するためにイベントから必要な情報をすべてカプセル化した、必要最小限の情報を表す1つのデータまたはデータ構造である。これらの状態は増分的に更新され、特定のユーザと関連付けられた過去のイベントに応答して更新することができる。さらに、SDKがユーザのデバイスにダウンロードされると発生する新しいイベントに応答して、これらの状態を更新することができる。
【0116】
例としての一実施形態では、結果が平均である場合、その状態で2つのデータを取り込む必要がある。つまり、この場合、合計とカウントである。次に、合計をカウントで除算するだけで、セグメント結果を算出することができる。
【0117】
ユーザ、ウェブページおよび広告要素に関する情報は、アドエクスチェンジにおける広告要素のためのオークションに送られる。ユーザのセグメント化を利用して、キー値ペアが作成され得る。キー値ペアは、ユーザに関するより多くの情報を提供するため、プログラマティックエクスチェンジに参加している広告関係者(advertising party)は、メッセージ送信でこの視聴者をターゲットにすることを望む場合、より多くの料金を支払うことにさらに意欲的となる。
【0118】
ユーザデータストレージ
各ユーザのプロファイルデータは、好ましい実施形態では一意的な文字列の形式をとる、一意的なユーザIDと関連付けられる。ユーザの複数のデバイスを、電子メールアドレス、ペイパル番号、または別の形態のIDによってデータベース内でリンクさせることができる。これは、ウェブサイトのログインページでのユーザ入力と、システム内の一意的なユーザIDとの間にリンクを作成することによって、行われ得る。
【0119】
ユーザがウェブサイトにアクセスするたびに、その訪問またはイベントからのデータが、イベントとしてユーザデータに追加される。いくつかのユーザ定義セグメントは、より多くのデータがより正確な平均を意味するため、平均化関数に基づくものなどの、より多くの量のデータの蓄積から利益を得る。これらのサイトへのユーザの訪問回数が多いほど、より多くのデータが生成される。このデータは、より正確なセグメントを生成するために、したがって、より正確なキー値ペアを生成するために使用され、オークションにおいて改善されたユーザ広告マッチングをもたらす可能性が高い。
【0120】
データベースでは、ユーザのデータがサーバのAPIによって受信された後、データがユーザによって分割される前にストリーミングデータパイプラインが使用される。ストリーミングデータパイプラインは、大規模データ解析を処理することを可能にし、一方、分割データストレージは、エッジコンピューティングを可能にするために、そのデータの分配およびユーザデバイスとの同期を容易にする。
【0121】
本発明のさらなる態様は、クッキーを使用せずに実施されることである。本発明は、ユーザのデバイスのローカルストレージ手段が利用され、第三者のクッキーを記憶する必要性をなくすように実施することができ、クッキーなしのソリューションである。プライバシーの問題から、第三者のクッキーがますます制限されるようになっている。したがって、このソリューションはこれらの制限を受けない。
【0122】
同期
ユーザプロファイルデータは、ユーザのデバイス(200)がウェブページにアクセスしているときに、ユーザデバイス(200)と集中型クラウドベースサーバとの間で同期される。好ましい実施形態では、ローカルデバイス(200)上のストレージの制約により、最新のイベントに関するデータのサブセットのみが、デバイス(200)内のブラウザのローカルストレージに記憶され、一方、集中型サーバは完全なデータセットを記憶する。好ましい実施形態では、データは、デバイス(200)内のローカルストレージに圧縮フォーマットで記憶され、ローカルに記憶されるユーザのデータの割合が増加する。
【0123】
所与のユーザの新しいデバイスがウェブページにアクセスする場合、既にサーバに記憶されているユーザのデータは、以前に回避されたようにキャッシュがサポートできる範囲で、デバイスにダウンロードされる。
【0124】
履歴データからの情報を必要とする新しいセグメントまたはクエリが作成された場合、いったんセグメントが汎用SDKに導入され、ユーザのブラウザに送信されると、すべての履歴データがサーバから順番にプルされる。イベントがダウンロードされると、ユーザのデバイス上でセグメントまたはクエリを処理するためにエッジコンピューティングが使用され、デバイス上のSDKは、イベントがダウンロードされる際にすべてのイベントを調べる。すべてのイベントがダウンロードされるが、前述同様に、最新のイベントのみがそのときローカルデバイスのブラウザのキャッシュに記憶される。エッジ処理からの結果は、ユーザのすべてのデータに対して実行された最終状態である。代替実施形態では、新しいセグメントまたはクエリの処理は、クラウド内のユーザのデータ上で実行される。
【0125】
他の追加の使用事例
IPTVは開示される発明の潜在的な使用事例であり、それによって、コマーシャルの時間中に、バナー上に、または別のピクチャインピクチャ形式で、番組を視聴しているユーザに、インターネットを介して個人化された広告が供給される。重要なのは、ユーザがチャンネルに初めてアクセスしたときから、そのユーザに特化した、調整された広告が提供され、視聴した番組に関する情報がユーザ情報データベースに追加されるにつれて、ユーザデータが絶えず更新されていることである。
【0126】
スマートポスターとの対話は、ポスターを最初に訪問するかまたはこれと対話したときから調整された広告が必要とされることにより、本発明に適している。他の非リアルタイムソリューションでは、典型的には訪問時間が短く、再訪問の頻度が低く、ゼロにさえなるという課題がある。
【0127】
ハイブリッドコンピューティングを使用してリアルタイムで膨大な量のデータを解析する本明細書に記載のソリューションの能力は、「モノのインターネット」(「IoT」)デバイスに適している。ユーザの活動および行動を監視するのではなく、例えば冷蔵庫の内部温度またはスマートハウスのエネルギー使用量など、IoTデバイスからセンサーデータを追跡する。データはIoTデバイスによってセグメント化され得る。IoTデバイスの所有者から収集したデータに基づいて、コンテンツ、製品、またはサービスがIoTデバイスの所有者に提供され得る。別の潜在的な使用事例では、このソリューションは、IoTデバイスを監視、追跡、および管理するためのオンラインの総合的なツールと組み合わせることができる。
【0128】
マーケティングすること、例えば、小売業者のサイト上で、ユーザが好む製品もしくはサービスの調整された製品推薦または注文リストを提供することは、開示される発明の別の実行可能な使用事例である。
【0129】
本発明のもう1つの潜在的な用途はeコマースにある。ショッピング空間でのマーケティングにおける本発明の使用に加えて、本発明は、金融取引プロセスのバックエンドシステムにおいても使用されることができる。複数のソースからデータを集めて顧客のプロファイリングを行い、取引を承認するためにユーザの支出傾向を監視することは、より一般的になると思われる。本発明のエッジコンピューティング態様は、独自の処理手段を有し得る電子財布またはスマートカードの場合に特に有用であり得る。
【0130】
異常検出は、プラットフォームのさらに別の使用事例である。異常検出の例としては、不正なトラフィックの検出、および広告ブロックソフトウェアがインストールされているユーザの識別などが含まれる。このような大量のデータを処理し、このような短時間でデータに反応する能力は、これらの適用に適している。不正なトラフィックを検出するために、ユーザのウェブページの閲覧時間を解析することができ、そのデータはシステムによって取り込まれ得る。また、このシステムは、ユーザが閲覧したウェブページの数を監視しながら、ユーザが閲覧した広告の数を決定することもできる。この情報を使用して、ユーザがデバイスのブラウザで広告ブロッカーを実行させているかどうかを確認することができる。
【0131】
ゲームも本発明の別の潜在的な使用事例である。ターゲットを絞ったゲーム内広告の提供、またはユーザのゲームプレイのリアルタイム解析もしくはそれに対する反応のいずれかのためのものである。あるいは、ゲームの要素がリアルタイムで処理される特定の要素の属性に依存する、ゲーム自体の不可欠な側面とすることもできる。
【0132】
「ライブの」ユーザ対話の他の例では、ユーザに特化したコンテンツをオンザフライで提供するメリットがある。
【0133】
例としての電子デバイス
図8は、本開示の電子デバイス(ユーザデバイス3、ウェブ要素サーバ5、コンテンツサーバ9、コード供給サーバ7、またはデータエンリッチメントサーバ11など)のいずれかによる例示的な電子デバイス801を示す。電子デバイスは、処理回路810(マイクロプロセッサなど)およびメモリ812を含む。電子デバイス801はまた、以下のサブシステム:電源814、ディスプレイ816、短距離無線トランシーバ818、長距離無線トランシーバ820、スピーカ822、および入力装置826のうちの1つ以上を含むことができる。
【0134】
処理回路810は、電子デバイス801およびサブシステム812~822の動作を制御することができる。プロセッサ810は、サブシステム812~828と通信可能に連結される。メモリ812は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、フラッシュメモリ、他の揮発性メモリ、および他の不揮発性メモリのうちの1つ以上を含み得る。
【0135】
ディスプレイ816は、処理回路810と通信可能に連結され得、処理回路は、ディスプレイ816に画像を出力させるように構成され得る。ディスプレイ816は、タッチスクリーンディスプレイのようなタッチセンシティブインターフェースを含むことができる。ディスプレイ816は、電子デバイス801のプロセッサ810上で動作するソフトウェアと対話するために使用され得る。タッチセンシティブインターフェースは、処理回路および本明細書に記載される機能の動作を制御するための、慎重な接触、複数の接触、または1つ以上のジェスチャを介して、ユーザが処理回路810に入力を提供することを可能にする。入力デバイスにキーボードまたはマウスを含み得る入力装置826などの、他の形態の入力インターフェースを同じ目的のために追加的または代替的に使用してもよいことが、認識されるであろう。
【0136】
短距離無線トランシーバ818は、短距離無線プロトコルに従って動作するように構成された短距離無線装置であってもよい。短距離無線トランシーバ818は、短距離無線プロトコルを介して通信するように構成することができる。短距離無線プロトコルは、ブルートゥース、またはブルートゥースローエナジー、またはブルートゥーススマートとすることができ、短距離無線トランシーバは、そのようなプロトコルに従って、無線ビーコンなどの他のデバイスと通信するように構成することができる。この点に関し、および短距離無線プロトコルに関する本明細書のすべての実施形態の目的のために、短距離無線プロトコルは、1、5、10、20、30、40、50、または100m未満での通信が可能であり、かつそのように設計されたプロトコルであってよい。
【0137】
長距離無線トランシーバ820は、LTE、UMTS、3G、EDGE、GPRS、GSM、およびWi-Fiなどの通信規格に従って動作するように構成された1つ以上の長距離RFトランシーバとすることができる。例えば、電子デバイス801は、LTE、UMTS、3G、EDGE、GPRS、またはGSMなどのセルラデータプロトコルを介してセルタワー803と通信するように構成されたセルラトランシーバなどの第1の長距離無線トランシーバ821と、802.11 ac/n/g/b/aなどのWi-Fi規格を介して無線アクセスポイント804と通信するように構成されたWi-Fiトランシーバなどの第2の長距離無線トランシーバ828と、を含み得る。この点に関し、長距離無線プロトコルに関する本明細書のすべての実施形態の目的のために、長距離無線プロトコルは、5m、10m、20m、30m、40m、50m、または100mでの通信が可能であり、かつそのように設計されたプロトコルであってよい。これは、上述の短距離無線プロトコルとは対照的である。長距離無線プロトコルは、短距離無線プロトコルよりも高い電力を利用して通信することができる。長距離無線プロトコルのための長距離エンドノード(電子デバイスおよびルーターまたは基地局)間の範囲(例えば、視線距離)は、短距離エンドノード(例えば、電子デバイスおよび無線ビーコン)間の範囲(例えば、視線距離)よりも大きくてよい。
【0138】
電子デバイス801は、長距離無線トランシーバ820を介してネットワーク840と通信するように構成され得る。ネットワーク840は、インターネットのような広域ネットワークであってもよいし、ローカルエリアネットワークであってもよい。電子デバイス801は、長距離無線トランシーバ820およびネットワーク840を介して、1つ以上のサーバまたはユーザデバイスと通信するようにさらに構成され得る。これらのサーバまたはユーザデバイスは、本明細書に記載されているもののうちいずれか1つとすることができる。
【0139】
用語「含む(comprising)」は、「含む(including)」ならびに「なる(consisting)」を包含し、例えば、Xを「含む」組成物は、Xのみからなり得るか、または何か追加のもの、例えば、X+Yを含み得る。
【0140】
単語「実質的に」は、「完全に」を排除するものではなく、例えば、Yを「実質的に含まない」組成物は、Yを全く含まなくてもよい。必要な場合、単語「実質的に」は、本発明の定義から省略することができる。
【0141】
数値xに関する「約」という用語はオプションであり、例えばx+10%を意味する。
【0142】
別段の指示がない限り、本明細書に記載される各実施形態は、本明細書に記載される別の実施形態と組み合わせることができる。
【0143】
本明細書に記載される方法は、プログラムがコンピュータ上で実行されるときに本明細書に記載される方法のいずれかのステップのすべてを実行するように適合されたコンピュータプログラムコード手段を含むコンピュータプログラムの形態などの、有形ストレージ媒体上の機械可読形態のソフトウェアによって実行され得、コンピュータプログラムはコンピュータ可読媒体上に具現化され得る。有形(または非一時的)ストレージ媒体の例は、ディスク、サムドライブ、メモリカードなどを含み、伝播された信号を含まない。ソフトウェアは、方法ステップが任意の適切な順序で、または同時に実行され得るように、パラレルプロセッサまたはシリアルプロセッサ上での実行に適していてもよい。これにより、ファームウェアおよびソフトウェアが、別個に取引可能な貴重な商品となり得ることが認められる。これは、所望の機能を実行するために、「データ処理能力のない」ハードウェアもしくは標準ハードウェア上で実行されるかまたはこれを制御するソフトウェアを包含することを意図している。また、所望の機能を実行するために、シリコンチップを設計するために、またはユニバーサルプログラマブルチップを構成するために使用されるような、HDL(ハードウェア記述言語)ソフトウェアなど、ハードウェアの構成を「記述」または定義するソフトウェアを包含することも意図されている。
【0144】
本明細書に記載されるモジュールは、ハードウェアまたはソフトウェアで実施されてもよいことが理解されよう。さらに、モジュールは、システム全体の様々な場所に実装することができる。
【0145】
当業者であれば、プログラム命令を記憶するために使用されるストレージデバイスをネットワークにわたって分散させ得ることを理解するであろう。例えば、リモートコンピュータは、ソフトウェアとして記述されるプロセスの一例を記憶することができる。ローカルコンピュータまたはターミナルコンピュータは、リモートコンピュータにアクセスし、ソフトウェアの一部または全部をダウンロードしてプログラムを実行することができる。あるいは、ローカルコンピュータは、必要に応じていくつかのソフトウェアをダウンロードするか、またはローカル端末でいくつかのソフトウェア命令を実行し、リモートコンピュータ(もしくはコンピュータネットワーク)でいくつかのソフトウェア命令を実行してもよい。当業者はまた、当業者に既知の従来技術を利用することによって、ソフトウェア命令の全てまたは一部が、DSP、プログラマブル論理アレイなどの専用回路によって実行され得ることを理解するであろう。
【0146】
当業者に明らかなように、本明細書で与えられる任意の範囲またはデバイス値は、求められる効果を失うことなく拡張または変更することができる。
【0147】
上述の利益および利点は、1つの実施形態に関連してもよいし、いくつかの実施形態に関連してもよいことが理解されよう。実施形態は、記載された問題のいずれかもしくはすべてを解決するもの、または記載された利益および利点のいずれかもしくはすべてを有するものに限定されない。
【0148】
「ある」アイテムへのいかなる言及も、これらのアイテムのうちの1つ以上を指す。「含む(comprising)」という用語は、本明細書では、特定された方法ブロックまたは要素を含むことを意味するために使用されるが、そのようなブロックまたは要素は、排他的リストを含まず、方法または装置が追加のブロックまたは要素を含み得る。
【0149】
本明細書に記載される方法のステップは、任意の適切な順序で、または適切な場合は同時に実施することができる。さらに、個々のブロックは、本明細書に記載される主題の趣旨および範囲から逸脱することなく、方法のうち任意のものから削除することができる。上述の実施例のいずれかの態様を、上述のその他の実施例のいずれかの態様と組み合わせて、求められる効果を失うことなく、さらなる実施例を形成することができる。上述したモジュールのいずれも、ハードウェアまたはソフトウェアで実装することができる。
【0150】
上述の好ましい実施形態の説明は単に例として記載されたものであり、種々の変更を当業者が行い得ることが理解されるであろう。種々の実施形態が、ある程度の特殊性をもって、または1つ以上の個々の実施形態を参照して上述されてきたが、当業者は、本発明の範囲から逸脱することなく、開示された実施形態に多数の変更を加えることができる。
【0151】
〔実施の態様〕
(1) コンテンツをユーザに表示するためのシステムにおいて、
前記システムは、ユーザデバイスと、ウェブ要素サーバと、コード供給サーバと、を含み、
前記ユーザデバイスは、ウェブ要素を示すウェブ要素要求を開始するように構成され、
前記ウェブ要素サーバは、前記ウェブ要素要求に応答して前記ウェブ要素を前記ユーザデバイスに送信するように構成され、
前記コード供給サーバは、前記ウェブ要素要求に応答してコード部分要求を受信するように構成され、
前記コード供給サーバは、前記コード部分要求に応答してコード部分を前記ユーザデバイスに送信するように構成され、
前記ユーザデバイスは、前記ウェブ要素要求に応答して前記コード部分を実行するように構成され、
前記コード部分を実行することにより、前記ユーザデバイスのプロセッサは、
前記ユーザデバイスにおいてユーザデータを照合し、
照合された前記ユーザデータに基づいてアクションを実行させる命令を生成する、システム。
(2) 前記アクションを実行させる命令は、前記ユーザデバイスにおいてコンテンツを表示させるコンテンツ命令を含み、
前記コンテンツは、前記照合されたユーザデータに基づいており、
前記コード部分を実行することにより、前記ユーザデバイスのプロセッサは、前記コンテンツ命令に応答して前記コンテンツを表示する、実施態様1に記載のシステム。
(3) 前記アクションを実行させる命令は、フラグを前記ユーザデバイスのユーザと関連付けさせるフラグ命令を生成することを含み、
前記フラグは、前記照合されたユーザデータに基づいている、実施態様1に記載のシステム。
(4) 前記コード部分を実行することにより、前記ユーザデバイスの前記プロセッサは、前記ユーザを複数のカテゴリのうちの少なくとも1つのカテゴリと関連付ける、実施態様1に記載のシステム。
(5) 前記アクションは、前記ユーザと関連付けられた予め決定された前記少なくとも1つのカテゴリに基づいて選択される、実施態様4に記載のシステム。
【0152】
(6) 前記命令を生成することは、前記ユーザデバイスからコンテンツサーバに、前記照合されたユーザデータの少なくとも一部を示すデータ項目を含む前記命令を送信することを含む、実施態様1に記載のシステム。
(7) 前記コンテンツサーバは、前記コンテンツ命令に応答して、前記照合されたユーザデータの前記一部に基づくコンテンツを送信するように構成されている、実施態様6に記載のシステム。
(8) 前記命令を生成することは、前記ユーザデバイスからコンテンツサーバに、前記少なくとも1つのカテゴリを示すデータ項目を含む前記命令を送信することを含む、実施態様4に記載のシステム。
(9) 前記コンテンツサーバは、前記コンテンツ命令に応答して、前記少なくとも1つのカテゴリに基づくコンテンツを前記ユーザデバイスに送信するように構成されている、実施態様8に記載のシステム。
(10) 前記コード供給サーバは、複数のカテゴリを定義し、前記コード部分要求に応答して前記複数のカテゴリの少なくともサブセットを前記ユーザデバイスに送信するように構成されている、実施態様1に記載のシステム。
【0153】
(11) カテゴリを定義することは、前記カテゴリについて少なくとも1つの基準を選択することを含み、
前記ユーザをカテゴリと関連付けることは、前記照合されたユーザデータの少なくとも一部を前記カテゴリの前記少なくとも1つの基準と適合させることを含む、実施態様4に記載のシステム。
(12) 前記コンテンツ命令に応答して前記コンテンツを表示することは、前記コンテンツを前記ウェブ要素に埋め込むことを含む、実施態様2に記載のシステム。
(13) 前記ユーザデバイスは、ウェブ要素を示す追加のウェブ要素要求を開始し、前記ユーザデバイスにおける前記コード部分のバージョンが、前記コード供給サーバにおける前記コード部分のバージョンに対応すると決定するように構成されている、実施態様1に記載のシステム。
(14) 前記ユーザデバイスは、前記ユーザデバイスにおける前記コード部分の前記バージョンが前記コード供給サーバにおけるバージョンに対応しないと決定することに応答して、前記コード供給サーバにおける前記コード部分の前記バージョンを受信するように構成されている、実施態様13に記載のシステム。
(15) 前記コード供給サーバにおける前記コード部分の前記バージョンは、最新バージョンである、実施態様13に記載のシステム。
【0154】
(16) 前記ウェブ要素は、ウェブページ、ビデオコンテンツ、およびオンラインゲームのうちの少なくとも1つを含む、実施態様1に記載のシステム。
(17) 前記ユーザを複数のカテゴリのうちの少なくとも1つのカテゴリと関連付けることは、
照合された前記ユーザが、複数のカテゴリのうちの少なくとも1つのカテゴリの基準に適合しない否定的な状態から、前記カテゴリに適合する肯定的な状態に移行したかどうかを検出すること、
前記照合されたユーザが、複数のカテゴリのうちの少なくとも1つのカテゴリの基準に適合する肯定的な状態から、前記カテゴリに適合しない否定的な状態に移行したかどうかを検出すること、
前記照合されたユーザが複数のカテゴリのうちの少なくとも1つのカテゴリの基準に適合するかどうかを検出すること、および、
前記照合されたユーザが1つのクエリ値から新しいクエリ値に移行したかどうかを検出すること、
のうちの少なくとも1つを含む、実施態様4に記載のシステム。
(18) 前記ウェブ要素サーバは、前記ウェブ要素要求に応答してコードスニペットを前記ユーザデバイスに送信するように構成され、
前記ユーザデバイスは、前記コード部分要求を開始するために前記コードスニペットを実行するように構成されている、実施態様1に記載のシステム。
(19) ユーザデバイスにおいてユーザにコンテンツを表示するためのサーバにおいて、
前記ユーザデバイスで開始されたウェブ要素要求に応答してコード部分要求を受信するステップと、
前記コード部分要求に応答してコード部分を前記ユーザデバイスに送信するステップと、
を実行するように構成されたプロセッサを含み、
前記コード部分は、前記ユーザデバイスにおいて実行され、前記ユーザデバイスのプロセッサに、
前記ユーザデバイスにおいてユーザデータを照合させ、
照合された前記ユーザデータに基づいてアクションを実行させる命令を生成させるように構成されている、サーバ。
(20) ユーザデバイスにおいてユーザにコンテンツを表示する方法において、
前記ユーザデバイスにおいて、ウェブ要素を示すウェブ要素要求を開始することと、
ウェブ要素サーバにおいて、前記ウェブ要素要求に応答して前記ウェブ要素を前記ユーザデバイスに送信することと、
コード供給サーバにおいて、前記ウェブ要素要求に応答してコード部分要求を受信することと、
前記コード供給サーバにおいて、前記コード部分要求に応答して前記ユーザデバイスにコード部分を送信することと、
前記ユーザデバイスにおいて、前記ウェブ要素要求に応答して前記コード部分を実行することであって、前記コード部分を実行することにより、前記ユーザデバイスのプロセッサに、
前記ユーザデバイスにおいてユーザデータを照合させ、
照合された前記ユーザデータに基づいてアクションを実行させる命令を生成させる、ことと、
を含む、方法。
図1
図2
図3
図4
図5
図6
図7
図8