(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-24
(45)【発行日】2024-11-01
(54)【発明の名称】パターン認識を使用するイベントストリームの処理
(51)【国際特許分類】
G06Q 30/0204 20230101AFI20241025BHJP
【FI】
G06Q30/0204
(21)【出願番号】P 2021502785
(86)(22)【出願日】2020-01-09
(86)【国際出願番号】 US2020012866
(87)【国際公開番号】W WO2020159686
(87)【国際公開日】2020-08-06
【審査請求日】2023-01-04
(32)【優先日】2019-01-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】トレイナー,ヤーラト
【審査官】樋口 龍弥
(56)【参考文献】
【文献】米国特許出願公開第2016/0042367(US,A1)
【文献】国際公開第2016/067988(WO,A1)
【文献】特開2015-103031(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
プロセッサによりプログレッシブウェブアプリケーションと通信するようパターン認識を使用してイベンストリームを処理するための方法であって、前記方法は、
ウェブブラウザおよびプログレッシブウェブアプリケーションとのユーザのインタラクションを表すイベントのストリームを受信することと、
前記イベントのストリームを前記ユーザに関するコンテキストデータと組み合わせて処理することと、
前記イベントのストリーム内において複数の所定のパターンのうちの1つを認識することと、
認識された前記パターンに基づいて、前記ユーザの電子デバイスにウェブプッシュメッセージを送信することとを含み、
前記ウェブプッシュメッセージのコンテンツは、認識された1つの前記パターンに基づいて生成され、
前記イベントのストリームは、前記ユーザに関するコンテキストデータと組み合わせて処理され、
前記複数の所定のパターンのうちの1つは、前記イベントのストリームおよび前記コンテキストデータ内において認識され、
前記ウェブプッシュメッセージのコンテンツは、1つの認識された前記パターンおよび前記コンテキストデータに基づいて生成され、
前記イベントのストリームおよび前記コンテキストデータ内において1つの前記パターンを認識することは、前記イベントのストリームからの1つ以上のイベントを1つの認識された前記パターンについて定義されるイベントにマッチングすることと、前記ユーザに関するコンテキストデータを1つの認識された前記パターンについて定義されるコンテキストデータにマッチングすることとをさらに含み、
マッチングされる前記イベントは、少なくとも2つのイベントを含み、マッチングされる前記コンテキストデータは、少なくとも前記ユーザについてのトランザクション履歴を含み、
前記ウェブプッシュメッセージについてのスケジューリングされるタイミングは、1つの認識された前記パターンまたは前記コンテキストデータに基づく、方法。
【請求項2】
前記ウェブプッシュメッセージを送信する前に、サービスワーカが前記ユーザの電子デバイスにロードされ、前記ウェブプッシュメッセージに対応するウェブプッシュ通知が前記サービスワーカによって前記ユーザの電子デバイスに表示される、請求項1に記載の方法。
【請求項3】
前記サービスワーカは、前記ウェブブラウザおよび前記プログレッシブウェブアプリケーションとともに実行するように構成されるスクリプトを含む、請求項2に記載の方法。
【請求項4】
前記イベントのストリームは、アパッチカフカプロデューサによって生成され、前記イベントのストリームは、アパッチカフカ処理要素によって処理される、請求項1に記載の方法。
【請求項5】
認識された前記パターンは、Aの後にBが続くパターン、Aの後にBが続かないパターン、ミッシングイベントパターン、複製イベントパターン、変化検出器パターン、アップ/ダウントレンドパターン、または、位置に基づくパターンのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項6】
前記コンテキストデータは、前記ユーザについてのトランザクション履歴、前記ユーザについてのブラウジングパターン、または、前記ユーザの位置のうちの1つ以上を含む、請求項1に記載の方法。
【請求項7】
請求項1-6のいずれか一項に記載の方法をコンピュータに実行させるためのプログラム。
【請求項8】
請求項7に記載のプログラムを格納するメモリと、
前記プログラムを実行するためのプロセッサとを備える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
分野
本開示の実施形態は一般的に、プログレッシブウェブアプリケーションと通信するためにパターン認識を使用してイベントストリームを処理することに関する。
【背景技術】
【0002】
背景
インターネットコマースが拡大し続けるにつれて、消費者は、現実世界の製品またはサービスの提供に関する大量のオンラインアクティビティデータを生成している。さらに、潜在的な消費者は、たとえばモバイルデバイスを使用して、アドホックな態様でオンライン販売者とインタラクションする。結果として、実店舗への物理的な移動のひとまとまりのプロセスは、商品またはサービスを購入するために継続的に利用可能な手段によって置き換えられている。したがって、ユーザのオンラインの挙動からパターンを認識し得るシステムは、ユーザの電子デバイスにタイムリーかつ関連のある通信を提供し得、これにより、ユーザがオンライン販売者とつながる態様を改善し得る。
【発明の概要】
【課題を解決するための手段】
【0003】
概要
本開示の実施形態は一般的に、プログレッシブウェブアプリケーションと通信するようパターン認識を使用してイベントストリームを処理するためのシステムおよび方法に関する。ウェブブラウザおよびプログレッシブウェブアプリケーションとのユーザのインタラクションを表すイベントのストリームが受信され得る。イベントのストリームは、ユーザに関するコンテキストデータと組み合わせて処理され得る。イベントのストリーム内において複数の所定のパターンのうちの1つが認識され得る。ウェブプッシュメッセージは、認識されたパターンに基づいてユーザの電子デバイスに送信され得、ウェブプッシュメッセージのコンテンツは、認識された1つのパターンに基づいて生成される。
【0004】
実施形態の特徴および利点は、以下の説明に記載されるか、または、当該記載から明らかであるか、または、本開示の実施によって学習され得る。
【0005】
さらなる実施形態、詳細、利点、および、修正例は、添付の図面に関連して解釈されるべき好ましい実施形態の以下の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【0006】
【
図1】例示的な実施形態に従った、プログレッシブウェブアプリケーションと通信するようパターン認識を使用してイベントストリームを処理するためのシステムを示す図である。
【
図2】例示的な実施形態に従った、システムに動作可能に結合されるコンピューティングデバイスのブロック図を示す図である。
【
図3】例示的な実施形態に従った、パターン認識を使用してイベントストリームを処理するためのシステムを示す図である。
【
図4-1】例示的な実施形態に従った、ユーザのアクティビティストリームに基づいてウェブプッシュメッセージを生成するための図を示す図である。
【
図4-2】例示的な実施形態に従った、ユーザのアクティビティストリームに基づいてウェブプッシュメッセージを生成するための図を示す図である。
【
図5】例示的な実施形態に従った、ブラウザにウェブプッシュメッセージを送信するためのフロー図を示す図である。
【
図6】例示的な実施形態に従った、プログレッシブウェブアプリケーションと通信するようパターン認識を使用してイベントストリームを処理するためのフロー図を示す図である。
【発明を実施するための形態】
【0007】
詳細な説明
実施形態は、プログレッシブウェブアプリケーションと通信するよう、パターン認識を使用してイベントストリームを処理する。たとえば、ユーザは、電子デバイスを使用してウェブサイトとインタラクションし得、当該インタラクションは、電子デバイス上で実行されているプログレッシブウェブアプリケーションを通じて達成され得る。プログレッシブウェブアプリケーションは、ネイティブアプリケーションをダウンロードおよび格納する必要なしに、そのようなネイティブアプリケーションと同様のエクスペリエンスを作り出すために使用され得る。いくつかの実施形態では、プログレッシブウェブアプリケーションは、プログレッシブウェブアプリケーションとともに実行されるサービスワーカまたはスクリプトを含み得る。
【0008】
ユーザがウェブサイトをナビゲートしている間、イベントのストリームは、ユーザのアクションに基づいて生成され得る。たとえば、(たとえば、製品およびカテゴリなどの)検索、製品固有のページの閲覧、カートへのアイテムの追加、および、任意の他の好適なアクションが、イベントのストリームに追加され得る。イベントのストリームは、パターンを認識するために、受信および処理され得る。たとえば、1つ以上のイベントによって定義される複数のパターンは、あらかじめ定められ得る。複数のパターンのうちの1つは、パターンを定義する1つ以上のイベントがイベントのストリームとマッチングすると、イベントのストリーム内において認識され得る。
【0009】
いくつかの実施形態では、システムは、電子デバイスのユーザに関するデータ、電子デバイスに関するデータ、および、地理的領域に関連付けられるデータなどといったコンテキストデータを含み得、コンテキスト基準が定義され得る。たとえば、複数のパターンのうちの1つは、パターンを定義する1つ以上のイベントがイベントのストリームとマッチングすると、イベントのストリーム内において認識され得、コンテキスト基準は、基準を定義するコンテキストデータがユーザ/電子デバイスのコンテキストデータとマッチングすると、満たされ得る。別の例では、所定のパターンのうちの1つ以上は、1つ以上の定義されたイベントに加えてコンテキスト基準を含み得る。この例では、これらのパターンは、ユーザのインタラクションによって生成されるイベントと、関連するコンテキスト情報とにマッチングされる。
【0010】
いくつかの実施形態では、認識されたパターンに基づいて、ウェブプッシュメッセージが電子デバイスに送信され得る。たとえば、認識されたパターンは、電子デバイスのユーザにエンゲージする機会を示し得る。eコマースウェブサイトに関する例示的な認識されたパターンは、廃棄されたカートであり得る。この例では、ウェブプッシュメッセージは、カートから廃棄された製品またはサービスに関するプロモーション資料またはマーケティング資料といった、廃棄されたカートに関するコンテンツにより生成され得る。
【0011】
所定のパターンは、ユーザ/ビジターの意図を示し得る。したがって、特定のユーザのイベントストリーム内の所定のパターンのうちの1つの認識は、所定のパターンに関連付けられる意図を特定のユーザに相関するよう、使用され得る。たとえば、廃棄されたカートに類似する所定のパターンは、中断またはそうでなければ変更された、製品を購入する意図に関連付けられ得る。この例では、この初期意図を回復するために、特定のユーザとエンゲージ(または再エンゲージ)する機会が存在する。たとえば、ユーザの意図は価格によって影響され得るので、プロモーションによってユーザは製品を購入するように説得され得る。他のアクションも同様にユーザに影響を及ぼし得る。したがって、ユーザのイベントストリーム内の所定のパターンの認識は、意図(たとえば、認識された所定のパターンに関連する意図)をユーザに相関するよう使用され得、したがって、本明細書においてさらに記載されるように、この意図に基づいてアクションが行われ得る。
【0012】
いくつかの実施形態では、認識されたパターンおよび/またはコンテキスト情報はさらに、ウェブプッシュメッセージを送信するためのタイミングを示し得る。たとえば、ユーザのオンライン挙動の分析は、一日のある時間(たとえば、通常の平日の労働時間の間)に製品を閲覧し、一日の別の時間(たとえば、平日のランチの間、または、通常の労働時間の後)に製品を購入する傾向を示し得る。結果として、ウェブプッシュメッセージは、製品を購入するユーザの傾向に対応する時間に送信され得る。実施形態は、ブラウザ/サービスワーカ/プログレッシブウェブアプリケーションを使用して、ウェブプッシュメッセージに対応するウェブプッシュ通知をユーザの電子デバイスのディスプレイ上に表示し得る。たとえば、サービスワーカ(たとえばスクリプト)は、プログレッシブウェブアプリケーションとともに(一緒に)実行され得、サービスワーカは、ウェブプッシュ通知を表示するために使用され得る。
【0013】
プログレッシブウェブアプリケーション(「PWA: progressive web application」)は、たとえばオフラインウェブページ、ウェブプッシュ通知、およびロード時間の改善を提供することによって、通常のウェブページまたはウェブサイトのようにロードするが、ネイティブアプリケーションのように機能するウェブアプリケーションを指す。たとえば、PWAは、インストール可能であり得、ユーザのホーム画面上に(たとえば、アプリストアを必要とすることなく)存在し得る。PWAは、没入型のフルスクリーンのエクスペリエンスを提供し得、ネイティブアプリケーションの迅速なエクスペリエンスをウェブ上ではるかに多くのオーディエンスに送達し得る。そのようなアプリケーションのための機能は、さまざまなウェブ技術および/またはフレームワークを使用して達成され得る。さまざまなウェブ技術および/またはフレームワークの例としては、アンギュラー(Angular)(アンギュラーJS(Angularjs))、リアクト(React)、Vue.js、Ember.js、ジャバサーバページ(「JSP: Java(登録商標)Server Pages」)、PHP:ハイパーテキストプリプロセッサ(Hypertext Preprocessor(「PHP」))、ASP.net、ハイパーテキスト転送プロトコル(「HTTP: Hypertext Transfer Protocol」)5.0、カスケーディングスタイルシート(「CSS: Cascading Style Sheets」)および関連するフレームワーク、ジャバスクリプト(JavaScript)、ならびに、任意の他の適切なウェブ技術および/またはフレームワークが挙げられる。PWAはさらに、メタデータのための一元的な場所を提供するジャバスクリプトオブジェクトノーテーション(「JSON: JavaScript Object Notation」)ベースのマニフェストファイル(manifest file)といった、ユーザ/ビジターの電子デバイスにロードされるマニフェストファイルを含み得る。いくつかの実現例では、PWAは、セキュアなプロトコル(たとえば、HTTPS)およびアプリケーションシェルアーキテクチャを活用して、ネイティブアプリケーションエクスペリエンスを送達し得る。
【0014】
PWAの実施形態はさらに、要求(たとえば、HTTP要求または他のウェブ要求)を管理するようウェブブラウザにおけるネットワークプロキシとして機能し得るサービスワーカを含み/サービスワーカとともに動作する。たとえば、サービスワーカは、ユーザの電子デバイスがウェブサイトにアクセスすると、ダウンロード/構成/インストールされ得る。いくつかの実施形態では、ウェブサイトのためのサービスワーカを実現するために、サービスワーカは、たとえば、ウェブサイトのジャバスクリプトに登録され得る。たとえば、サービスワーカを登録することによって、ウェブブラウザはサービスワーカを(たとえば、バックグラウンドで)ダウンロード/構成/インストールし得る。これにより、ウェブサイト/PWAのジャバスクリプトとサービスワーカとの間で接続が確立され得る。
【0015】
いくつかの実施形態では、ウェブプッシュ通知のためのコンテンツは、ユーザとエンゲージするためのインターフェイスを含み得る。たとえば、廃棄されたカートの例では、廃棄された製品を購入するために使用され得るウェブリンク(たとえば、ユニフォームリソースロケータ(「URL: uniform resource locator」))が、ウェブプッシュ通知とともに含まれ得る。他の例では、認識されたパターンは、ユーザとエンゲージするための他のコンテンツまたは技術を示し得、これらの項目は、関連するウェブプッシュ通知に含まれ得る。
【0016】
次に、本開示の実施形態への参照が詳細になされ、その例が添付の図面に示される。以下の詳細な説明では、本開示の完全な理解を提供するために、多数の具体的な詳細が記載される。しかしながら、本開示は、これらの具体的な詳細がなくても実施され得ることが、当業者には明白であろう。他の例では、周知の方法、手順、コンポーネント、および回路は、実施形態の局面を不必要に不明瞭にしないように、詳細には記載されない。可能な限り、同様の参照番号は同様の要素に使用される。
【0017】
図1は、例示的な実施形態に従った、プログレッシブウェブアプリケーションと通信するようパターン認識を使用してイベントストリームを処理するためのシステムである。
図1に示されるように、システム100は、コマースクラウドクライアント102、コマースクラウドサーバ104、イベントハブ106、ストリームアナリティックス108、コヒーレンスデータ110、データレーク(data lake)112、プッシュメッセージングサーバ114、および、データベース116を含む。いくつかの実施形態では、コマースクラウドクライアント102は、プログレッシブウェブアプリケーションのコンポーネントといった、電子デバイスのウェブブラウザにおいて実行されるソフトウェアを含み得る。ウェブブラウザの例は、クローム(Chrome)(登録商標)、または、プログレッシブウェブアプリケーションを実行する他の好適なウェブブラウザを含み得る。他の好適なウェブブラウザの例としては、オペラ(Opera)、ファイヤーフォックス(Firefox)(登録商標)、マイクロソフトエッジ(Microsoft Edge)(登録商標)、サムソンインターネット(Samsung Internet)、または、任意の他の好適な商業的に利用可能なブラウザが挙げられる。実施形態は、ウェブプッシュ通知を表示するといった機能を提供するために使用され得るプログレッシブウェブアプリケーションとともに実行されるサービスワーカまたはソフトウェアスクリプトを含む。たとえば、サービスワーカは、プログレッシブウェブアプリケーションの機能を向上させるように実行されるジャバスクリプト(JavaScript)コードであり得る。
【0018】
いくつかの実施形態では、ユーザは、コマースクラウドクライアント102を使用して、ウェブサイトにアクセスするために電子デバイスとインタラクションし得る。たとえば、ユーザは、たとえば、異なるウェブページまたはウェブページの部分の閲覧、コンテンツの検索、および、カートへのアイテムの追加などといったさまざまなアクションを実行することによって、ウェブサイトをナビゲートし得る。実現例は、ウェブブラウザ内でシングルページアプリケーション(「SPA: single-page application」)として実行されるコマースクラウドクライアント102を含む。いくつかの実施形態では、コマースクラウドサーバ104は、ユーザが電子デバイスを使用してアクセスするウェブサイトを実現し得る。たとえば、コマースクラウドサーバ104は、ウェブサイトをホストし得、コマースクラウドクライアント102と通信し得る。
【0019】
いくつかの実施形態では、コマースクラウドサーバ104は、イベントハブ106と通信し得る(またはイベントハブ106を含み得る)。イベントハブ106は、コマースクラウド102(たとえば、ならびに/または、電子デバイス、ウェブブラウザおよびサービスワーカなど)を使用してウェブサイトをナビゲートする際にユーザによって行われるアクションを表すイベントのストリームを構築(消費およびパイプライン化)し得る。たとえば、イベントのストリームはタイムスタンプを含み得、各イベントは、ストリームを構築する(パイプライン化する)ために、以前のイベントを保持するデータ構造に追加され得る。
【0020】
いくつかの実施形態では、イベントハブ106は、オラクル(Oracle)(登録商標)イベントハブクラウドサービス(「EHCS」: Event Hub Cloud Service)であり得る。たとえば、コマースクラウドサーバ104は、メタデータによりアノテーション付けされたデータを含み得る店頭エンドポイントを表し得る。いくつかの実施形態では、フレームワークは、(たとえば、イベントハブ106において)メッセージを作成し、メッセージをシリアル化し、メッセージをある数のカフカ(Kafka)トピックにポスティングし、イベントデータのストリームを(たとえば、イベントハブ106によって公開される)カフカブローカーエンドポイントに方向付けし、かつ、この着信ストリーミングデータを受信するよう新しいカフカトピック設定を消費する機能といった機能を実現し得る。
【0021】
いくつかの実施形態では、イベントハブ106は、イベントのストリームを構築する際にデータベース116にアクセスし得る。データベース116は、コマースクラウドサーバ104に関連付けられる運用データベースであり得る。たとえば、データベース116は、注文、製品、プロモーションおよびユーザプロファイルなどといったデータを格納し得る。データベース112は、コマースクラウドサーバ104に関連付けられるビッグデータレークであり得る。データベース112は、ページビュー、検索イベントおよびサイト訪問などのデータ(たとえば、データベース116に格納されない高容量データ)を格納し得る。
【0022】
ストリームアナリティックス108は、イベントの構築されたストリームを受信し得、パターンを認識するようさらにストリームを処理し得る。いくつかの実施形態では、ストリームアナリティックス108は、イベントハブ106によって構築された(またはパイプライン化された)イベントストリームの消費者として登録し得る。1つ以上のイベントによって定義される複数のパターンが、あらかじめ定められ得、これらのパターンは、ストリームアナリティックス108によってアクセスされ得る。複数のパターンのうちの1つは、パターンを定義する1つ以上のイベントがイベントのストリームとマッチングすると、イベントのストリーム内において認識され得る。
【0023】
いくつかの実施形態では、システムは、電子デバイスのユーザに関するデータ、電子デバイスに関するデータ、および、地理的領域に関連するデータといったコンテキストデータを含み得、コンテキスト基準が定義され得る。たとえば、コヒーレンスデータ110および/またはデータレーク112は、パターン認識および他の分析を行なうためにストリームアナリティックス108によってアクセスされ得るコンテキストデータを格納し得る。コンテキストデータは、ファーストパーティデータ、サードパーティデータ、予想または予測データ(たとえば、予想された天候データ)、または、任意の他の好適なコンテキストデータを含み得る。
【0024】
いくつかの実施形態では、ユーザ/ビジターは、ビジターIDのようなビジター識別子に関連付けられ得る。そのようなビジターIDは、オラクル(登録商標)コマースクラウドサービスビジターIDサービス(Commerce Cloud Service Visitor ID Service)といった識別サービスによって割り当てられ得る。特定のユーザ/ビジターに関するコンテキストデータは、対応するビジターIDを使用して抽出され得る。たとえば、ビジターIDは、コンテキスト情報についてのデータストア(たとえば、ビッグデータクラウドサービス、NoSQL履歴データストア、および、オラクル(登録商標)コヒーレンスインメモリデータグリッドなど)におけるプロファイル、オーディエンス、または、RFM(最新性、頻度、金銭価値)クラスタなどをルックアップするよう、参照として使用され得る(たとえば、訪問/検索/ページビューイベントの履歴を保持するデータストアは、ビジターIDおよびビジターID値によりストライプ化され得る)。
【0025】
いくつかの実施形態では、複数のパターンのうちの1つは、パターンを定義する1つ以上のイベントがイベントのストリームとマッチングすると、イベントのストリーム内において認識され得、コンテキスト基準は、基準を定義するコンテキストデータが、ユーザ、電子デバイス、地理的領域、または、関連するエンティティ/状況(たとえばコンテキストデータが関係するエンティティ/状況、または、状況の同様のセット)からのコンテキストデータとマッチングすると、満たされ得る。別の例では、所定のパターンのうちの1つ以上は、1つ以上の定義されたイベントに加えてコンテキスト基準を含み得る。この例では、これらのパターンは、ユーザによって生成されるイベントのストリームと、関連するコンテキスト情報とにマッチングされる(たとえば、認識されたパターンは、コンテキストストリームパターンであり得る)。
【0026】
イベントのストリームにおいてひとたびパターンが認識されると、ストリームアナリティックス108は、認識されたパターンに応答してアクションを生成するよう、コマースクラウド104と通信し得る。たとえば、ストリーミングアナリティックス108は、(プッシュメッセージングサーバ114とともに)ウェブプッシュメッセージを生成し得る/ウェブプッシュ通知を表示し得るREST APIターゲット/エンドポイントをコマースクラウド104上で呼び出し得る。
【0027】
実施形態は、ユーザに関連付けられる電子デバイスへの送信のためのウェブプッシュメッセージを生成することを含む。たとえば、ウェブプッシュメッセージに対応するウェブプッシュ通知のためのコンテンツは、認識されたパターンに基づくユーザとエンゲージするためのインターフェイスを含み得る。たとえば、廃棄されたカートの例では、廃棄された製品を購入するために使用され得るウェブリンク(たとえば、URL)がウェブプッシュ通知に含まれ得る。他の例では、認識されたパターンは、ユーザとエンゲージするための他のコンテンツまたは技術を示し得、これらの項目は、関連するウェブプッシュ通知に含まれ得る。いくつかの実施形態では、たとえば認識されたパターンに基づいて、ウェブプッシュメッセージのために生成され得るとともに対応するウェブプッシュ通知によって表示され得る他のアクション可能なコンテンツは、製品をウィッシュリストに追加するために使用され得るウェブリンクと、サービス(たとえばプレミアムサービス)についての登録に使用され得るウェブリンクと、クリック・ツー・チャットリンク(たとえば、顧客サービス代表者またはチャットボットとのチャットを生成するように構成される)と、クリック・ツー・コールリンク(たとえば、モバイルデバイス上で通話を実行するためにクリックされ得る)と、フリーサンプルのオファー(たとえば、フリーオファーを受けるために記入され得るフォーム/ウェブリンク)と、製品レビューを行なうための1つ以上のリンクと、発送オプションを提供するコンテンツと、頻繁に質問される質問に関するコンテンツとなどを含む。
【0028】
いくつかの実施形態では、認識されたパターンおよび/またはコンテキスト情報はさらに、ウェブプッシュメッセージを送信するためのタイミングを示し得る。たとえば、ユーザのブラウジングアクションの分析は、一日のある時間(たとえば、通常の平日の労働時間の間)に製品を閲覧し、一日の別の時間(たとえば、平日のランチの間、または、通常の労働時間の後)に製品を購入する傾向を示し得る。結果として、ウェブプッシュメッセージは、製品を購入するユーザの傾向に対応する時間に送信され得る(または、送信のためにスケジューリングされ得る)。
【0029】
いくつかの実施形態では、コマースクラウド104は、たとえば、決定された時間に、ウェブプッシュメッセージをコマースクラウドクライアント102(たとえば、電子デバイス、ウェブブラウザおよびサービスワーカなど)に送信するようにプッシュメッセージングサーバ114に命令し得る。次いで、対応するウェブプッシュ通知が電子デバイスによって表示され得る(これは、いくつかの例ではサービスワーカによって達成され得る)。いくつかの実施形態では、コマースクラウドクライアント102、コマースクラウドサーバ104、イベントハブ106、ストリームアナリティックス108、コヒーレンスデータ110(たとえば、オラクル(登録商標)コヒーレンスインメモリデータグリッド)、データレーク112、および、データベース116は、オラクル(登録商標)製品またはサービスを使用して実現され得る。
【0030】
図2は、実施形態に従ったコンピュータサーバ/システム210のブロック図である。システム210のすべてまたは部分は、
図1に示される要素のいずれかを実現するように使用され得る。
図2に示されるように、システム210は、プロセッサ222およびメモリ214といったシステム210のさまざまなコンポーネント同士間で情報を通信するように構成されるバスデバイス212および/または他の通信メカニズムを含み得る。さらに、通信デバイス220は、ネットワーク(図示せず)を介してプロセッサ222から別のデバイスに送信されるデータをエンコードし、かつ、プロセッサ222のためにネットワークを介して別のシステムから受信されるデータをデコードすることによって、プロセッサ222と他のデバイスとの間の接続性を可能にし得る。
【0031】
たとえば、通信デバイス220は、ワイヤレスネットワーク通信を提供するように構成されるネットワークインターフェイスカードを含み得る。赤外線、無線、ブルートゥース(登録商標)、Wi-Fi(登録商標)、および/または、セルラ通信を含むさまざまなワイヤレス通信技術が使用され得る。代替的には、通信デバイス220は、イーサネット(登録商標)接続のような有線ネットワーク接続を提供するように構成され得る。
【0032】
プロセッサ222は、システム210の計算および制御機能を実行するために1つ以上の汎用または専用プロセッサを含み得る。プロセッサ222は、マイクロプロセッシングデバイスのような単一の集積回路を含み得、または、プロセッサ222の機能を達成するように協働して動作する複数の集積回路デバイスおよび/もしくは回路基板を含み得る。さらに、プロセッサ222は、メモリ214内に格納されるオペレーティングシステム215、ストリーミング処理モジュール216、および、他のアプリケーション218といったコンピュータプログラムを実行し得る。
【0033】
システム210は、情報と、プロセッサ222による実行のための命令とを格納するためのメモリ214を含み得る。メモリ214は、データを抽出、提示、修正、および、格納するためのさまざまなコンポーネントを含み得る。たとえば、メモリ214は、プロセッサ222によって実行されると機能を提供するソフトウェアモジュールを格納し得る。モジュールは、システム210のためのオペレーティングシステム機能を提供するオペレーティングシステム215を含み得る。モジュールは、オペレーティングシステム215と、受信されたイベントストリームデータの分析を実行するように構成されるストリーミング処理モジュール216と、他のアプリケーションモジュール218とを含み得る。オペレーティングシステム215は、システム210のためのオペレーティングシステム機能を提供する。いくつかの場合では、ストリーミング処理モジュール216は、インメモリ構成として実現され得る。システム210は、ストリーミング処理モジュール216の機能を実行すると、本明細書において開示される機能を実行する非従来の特殊化されたコンピュータシステムとして実現する。
【0034】
一時的でないメモリ214は、プロセッサ222によってアクセスされ得るさまざまなコンピュータ読取可能媒体を含み得る。たとえば、メモリ214は、ランダムアクセスメモリ(「RAM: random access memory」)、ダイナミックRAM(「DRAM: dynamic RAM」)、スタティックRAM(「SRAM: static RAM」)、リードオンリーメモリ(「ROM: read only memory」)、フラッシュメモリ、キャッシュメモリ、および/または、任意の他のタイプの一時的でないコンピュータ読取可能媒体の任意の組み合わせを含み得る。
【0035】
プロセッサ222は、バス212を介して、液晶ディスプレイ(「LCD: Liquid Crystal Display」)のようなディスプレイ224にさらに結合される。キーボード226およびコンピュータマウスのようなカーソル制御デバイス228は、ユーザがシステム210とつながることができるように通信デバイス212にさらに結合される。
【0036】
いくつかの実施形態では、システム210は、より大きなシステムの部分であり得る。したがって、システム210は、付加的な機能を含むように1つ以上の付加的な機能モジュール218を含み得る。他のアプリケーションモジュール218は、たとえば、オラクル(登録商標)コマースクラウドサービス(「OCCS: Oracle Commerce Cloud Service」)、オラクル(登録商標)ゴールデンゲート(Oracle Golden Gate)、オラクル(登録商標)ビッグデータクラウドサービス(「BDCS: Big Data Cloud Service」)、オラクル(登録商標)アナリティックスクラウド(Oracle Analytics Cloud)、オラクル(登録商標)ストリームアナリティックス(「OSA: Oracle Stream Analytics」)、オラクル(登録商標)イベントハブクラウドサービス(「EHCS: Event Hub Cloud Service」)、および/または、アパッチ(登録商標)カフカ(Apache Kafka)システムのさまざまなモジュールを含み得る。データベース217は、モジュール216および218のための中央集中型のストレージを提供し、かつ、たとえば、さまざまなデバイスから受信されるデータを格納するようにバス212に結合される。データベース217は、論理的に関連したレコードまたはファイルの統合された集合にデータを格納し得る。データベース217は、運用データベース、分析データベース、データウェアハウス、分散データベース、エンドユーザデータベース、外部データベース、ナビゲーションデータベース、インメモリデータベース、ドキュメント指向データベース、リアルタイムデータベース、リレーショナルデータベース、オブジェクト指向データベース、非リレーショナルデータベース、NoSQLデータベース、Hadoop(登録商標)分散ファイルシステム(「HFDS: Hadoop distributed file system」)、または、当該技術分野において公知である任意の他のデータベースであり得る。
【0037】
単一のシステムとして示されているが、システム210の機能は、分散システムとして実現されてもよい。たとえば、メモリ214およびプロセッサ222は、集合的にシステム200を表す複数の異なるコンピュータにわたって分散されてもよい。一実施形態では、システム210は、デバイス(たとえば、スマートフォン、タブレット、コンピュータなど)の部分であってもよい。一実施形態では、システム210は、当該デバイスとは別体であってもよく、開示される機能をデバイスに遠隔で提供してもよい。さらに、システム210の1つ以上のコンポーネントは含まれなくてもよい。たとえば、ユーザまたはコンシューマデバイスとしての機能について、システム210は、プロセッサ、メモリおよびディスプレイを含むスマートフォンまたは他のワイヤレスデバイスであってよく、
図2に示される他のコンポーネントのうちの1つ以上を含まず、アンテナ、トランシーバ、または、任意の他の好適なワイヤレスデバイスコンポーネントといった
図2に示されない追加のコンポーネントを含む。
【0038】
さまざまな実施形態は、プログレッシブウェブアプリケーションを表示可能なモバイルブラウザを実行するワイヤレスデバイスを含み得る。たとえば、ワイヤレスデバイスは、携帯電話、スマートフォンおよびタブレットなどのようなポータブル通信デバイスである電子デバイスであり得る。デバイスのためのユーザインターフェイスは、タッチスクリーンおよび/または他の入力/出力デバイスを含み得る。しかしながら、ユーザインターフェイスおよび関連付けられる方法は、キーボードおよび/もしくはマウスといった1つ以上の他の物理的ユーザインターフェイスデバイス、または、任意の他の適切なユーザインターフェイスデバイスを含み得るパーソナルコンピュータおよびラップトップなどのような他のデバイスに適用され得ることが理解されるべきである。電子デバイスは、インターネットブラウザ、テキストメッセンジャ、エクスペリエンス管理、および、さまざまな他のアプリケーションといったさまざまなアプリケーションをサポートし得る。電子デバイス上で実行され得るさまざまなアプリケーションは、少なくとも1つの共通の物理的ユーザインターフェイスデバイスを使用し得る。さらに、電子デバイスの共通の物理的アーキテクチャが、直観的でトランスピアレントなユーザインターフェイスを有するさまざまなアプリケーションをサポートし得る。
【0039】
再び
図1を参照すると、実施形態は、プログレッシブウェブアプリケーション機能を提供するコマースクラウドクライアント102およびコマースクラウド104を含む。たとえば、コマースクラウドクライアント102は、プログレッシブウェブアプリケーションエクスペリエンスを提供するために電子デバイス上で実行されるサービスワーカまたはスクリプトを含み得る。たとえば、コマースクラウドクライアント102は、グーグル(登録商標)クロームのようなウェブブラウザとともに実行され得る。コマースクライアント102および/またはウェブブラウザは、ユーザがコマースクラウドによってホストされるウェブサイトをナビゲートすることを可能にするために、コマースクラウド104と通信し得る。ユーザは、ウェブサイトをナビゲートしながら、ウェブブラウザおよびコマースクライアント102を利用して、異なるウェブページ(たとえば、製品ウェブページなど)といったウェブサイトのさまざまな部分を閲覧し、ウェブサイトを検索するなどし得る。いくつかの実施形態では、PWAは、コマースクラウドクライアント102上にレイヤー化され得る。たとえば、プログレッシブウェブアプリケーションは、コマースクラウド104によって実現されるウェブサイト(たとえば、ユーザ/電子デバイスが当該ウェブサイトを最初に訪問する場合)からインストールまたはロードされ得、その後、ウェブブラウザとともに実行され得る。
【0040】
いくつかの実施形態では、コマースクラウド104は、イベントハブ106と通信し得(またはイベントハブ106を含み得)、イベントハブは、ウェブページ上でのユーザのアクションからのイベントのストリームを構築(消費およびパイプライン化)し得る。たとえば、イベントハブ106は、クラウドベースであり管理されたアパッチ(登録商標)カフカエコシステムを実現し得る。たとえば、カフカシステムは、プロデューサ要素およびコンシューマ要素を含み得、プロデューサ要素はイベントのストリームを生成し得、コンシューマ要素はこれらのイベントストリームをサブスクライブおよび消費し得る。カフカエコシステムはさらに、変換、再パッケージングおよび分析(たとえば、パターン認識)といった処理のためのイベントのストリームを受信し得るストリーム処理要素を含み得る。カフカプロデューサ要素、コンシューマ要素、および、ストリーム処理要素の各々は、要素固有のアプリケーションプログラミングインターフェイス(「API: application programming interface」)に基づいて互いに通信し得る。
【0041】
いくつかの実現例では、カフカプロデューサ要素は、イベントストリームをオーガナイズするために使用され得るトピックを実現し得、これらのイベントストリームをさらにオーガナイズ/構造化するために使用され得るパーティションをさらに実現し得る。カフカコンシューマおよびストリーム処理要素は、あるトピックおよび/またはパーティションをサブスクライブし得る。
【0042】
実施形態は、(たとえば、オラクル(登録商標)イベントハブクラウドサービス内の)カフカメッセージキュー/コンジット(conduit)、オラクル(登録商標)ストリームアナリティックスを使用するパターン認識、および、プログレッシブウェブ技術を使用するビジター/ユーザ通信を使用してインジェスト(ingest)が管理され得るリアルタイムストリーミングデータパイプラインを実現する。買い物客のコンテキストへのインサイトは、オラクル(登録商標)ビッグデータクラウドサービスおよびその関連付けられるビッグデータコネクタ(たとえば、ゴールデンゲートビッグデータカフカハンドラ(Golden Gate Big Data Kafka Handler)など)とともに、オラクル(登録商標)コヒーレンスデータキャッシュのようなセッションスコープのある永続レイヤー(persistence layer)によってサポートされ得る。
【0043】
図3は、例示的な実施形態に従った、パターン認識を使用してイベントストリームを処理するためのシステムを示す。当該システムは、イベントハブ106、データベース116、ストリームアナリティックス108、コヒーレンスデータ110/データレーク112、コマースクラウド104、および/または、プッシュメッセージングサーバ114の機能を含み得る。たとえば、システム300は、イベントプロデューサ要素、インジェスチョン要素、ストリーム処理要素、および、以前のカフカ要素の機能に基づいてアクションを行ない得る要素を含むカフカエコシステムを表し得る。カフカエコシステムの実施形態は、低レイテンシー、高スループット、スケーラブル、かつ、分離されたメッセージブローカーを含み得る。
【0044】
デバイスおよびゲートウェイ302は、電子デバイス、ゲートウェイのようなネットワークコンポーネント、および、任意の他の適切なデバイスを含み得る。アプリケーション304は、イベントストリームへの発行のためにイベントを受信/生成し得るソフトウェアアプリケーションを含み得、かつ、マイクロサービスをさらに含み得る。リアルタイムトランザクション306は、リアルタイムトランザクションをストリームとして発行し得る、データベースのようなソフトウェア要素を含み得る。これらの要素の各々は、カフカプロデューサのための入力として機能し得る。たとえば、データベーストランザクションログ、センサデータ、ソーシャルメディアデータ、(たとえば、電子デバイスのユーザについての)クリックストリームもしくはウェブアクティビティ、または、ジオロケーションデータのうちの1つ以上は、イベントのストリームを生成するよう使用され得る。
【0045】
イベントハブ308は、イベントのストリームを構築するために、プロデューサからデータをインジェスチョンするように使用され得る。たとえば、イベントハブ308は、プロデューサからのデータをフィルタリング、集約、変換、相関、および/または、ジオフェンスを行ない、イベントのストリームを構築(消費およびパイプライン化)し得る。いくつかの実施形態では、イベントハブ308は、デバイスおよびゲートウェイ302、アプリケーション304、および、リアルタイムトランザクション306のうちの1つ以上から入力を受信し、かつ、カフカエコシステムにおいてイベントストリームを構築するために使用されるカフカトピックおよびパーティションを構築する。たとえば、デバイスおよびゲートウェイ302、アプリケーション304、および、リアルタイムトランザクション306のうちの1つ以上は、オラクル(登録商標)クラウドコマースクライアント生成要素であり得る。
【0046】
いくつかの実施形態では、対象のイベント(ページビューおよび検索など)を生成するクライアントは、標準またはプロトコル(たとえば、(アパッチ)アブロスキーマ((Apache) Avro schema))に準拠するデータを生成し得る。たとえば、アブロスキーマはJSONを使用して定義され得、Jackson(Java(登録商標)オブジェクトに対する読込および書込(パーシング/生成)ならびにデータバインドのようなタスクを扱うためのJavaライブラリ)は、JSONオブジェクトを生成されたアブロスキーマクラスに変換し得る。次いで、これらの生成されたアブロスキーマは、バイトアレイへとシリアル化され、カフカメッセージのペイロードとして送信され得る。任意の他の好適なデータフォーマットおよび機能要素(たとえば、Jackson代替物)が実現され得る。
【0047】
いくつかの実施形態では、データは、(たとえば、OCCSおよびEHCSのようなカフカ要素間で共有される)カフカトピック上に配置され得る。たとえば、データは、EHCSにおいて定義および構成されるカフカトピックを介してOCCSからEHCSに流れ得る。OCC RESTエンドポイントは、そのトピックに配置されるべきメッセージにデータをシリアル化するコード内にコールし得る。いくつかの実施形態では、データは、消費時点において非シリアル化(逆のプロセス)され得る。
【0048】
いくつかの実施形態では、ビジターIDは、(たとえば、識別サービスを介して)特定のユーザ/ビジター/電子デバイスに関連付けられ得る。たとえば、ユーザには、OCCSビジターIDサービスによってビジターID値が割り当てられ得る。いくつかの実施形態では、ビジターIDは、イベントハブ308または他のカフカエコシステムコンポーネントに(たとえば、カフカメッセージングを介して)渡され得る。たとえば、ビジターIDは、ユーザ/ビジター/電子デバイスに関するデータ(たとえば、コンテキストデータ)を抽出するためにデータストア(たとえば、データレーク)にアクセスするために使用され得る。この抽出されたデータに基づいて、異なるアクションが行われ得る。たとえばデータが、ある期間にわたってユーザ/ビジター/電子デバイスによって費やされる額が第1のしきい値を満たす(たとえば、100ドルより多い)ことを示す場合、第1のプロモーションがプッシュメッセージに含まれ得(たとえば、10%オフ)、データが、その期間にわたって費やされる額が第2のしきい値を満たす(たとえば、200ドルより多い)と、第2のプロモーションがプッシュメッセージに含まれ得る(たとえば、20%オフ)。他の実施形態は、行われるアクション(たとえば、生成されるプッシュメッセージ)がこの抽出されたデータに基づき得る他の例を含み得る。
【0049】
いくつかの実施形態では、1つ以上のイベントプロデューサは、オラクル(登録商標)ゴールデンゲートビッグデータハンドラ・フォー・カフカ(Oracle GoldenGate Big Data Handler for Kafka)を含み得、データベースレコード(たとえば注文およびユーザプロファイル)へのアップデートが、イベントハブ308のようなカフカコンポーネントにリアルタイムで複製され得る。カフカのコンテキストでは、オラクル(登録商標)ゴールデンゲートは、テーブル(またはテーブルのセット)に対して行われる変更をストリーミングし、パイプラインにおいて他のコンポーネント/プロセスに利用可能にするためのメカニズムを提供する。いくつかの実施形態では、イベントハブ308は、オラクル(登録商標)イベントハブおよび/またはオラクル(登録商標)ストリームアナリティックスサービス、または、カフカエンタープライズシステムの任意の他の好適なコンポーネントであり得る。
【0050】
ストリームアナリティックス310は、追加の処理を実行するためにイベントの構築されたストリームを分析するために使用され得る。たとえば、ストリームアナリティックス310は、カフカストリーム処理要素であり得る。いくつかの実施形態では、ストリームアナリティックス310は、オラクル(登録商標)イベントハブおよび/またはオラクル(登録商標)ストリームアナリティックスを使用して実現される。実施形態は、ストリームアナリティックス310を使用して、イベントの構築されたストリーム内でパターン認識を実行することを含む。たとえば、ある数の所定のパターンが定義され得、ストリームアナリティックス310は、ストリーム内の所定のパターンを認識するよう、イベントの構築されたストリームを分析し得る。
【0051】
意図を決定するために使用され得る例示的な所定のパターンは、あらかじめ定義された関連付けまたはイベント関係を含み得る。たとえば、所定のパターンは、「A」の後に「B」が続く(‘A’ followed by ‘B’)、「A」の後に「B」が続かない(‘A’ not followed by ‘B’)、ミッシングイベントの検出(Detect Missing Event)、ジオコードまたはリバースジオコード:ニアバイ(Geo Code or Reverse Geo Code: Near by)、ジオフェンスプロキシミティ(Geo Fence Proximity)、ジオフィルタ(Geo Filter)、複製検出(Detect Duplicates)、および、他の適切なパターンといったイベント関連付けを含み得る。「A」の後に「B」が続く関連付けを有する所定のパターンは、製品をカートに追加する「A」イベントと、製品をカートから除去する「B」イベントといったような、「A」イベントおよび「B」イベントについてのイベント定義を含み得る。他の「A」の後に「B」が続く例は、製品またはカテゴリを検索し、次いで、製品固有のウェブページを閲覧することと、製品を検索し、次いで、その製品の特定の変形例を検索することと、発送遅延が通知された後、注文をキャンセルすることと、製品をカートに追加し、そのアイテムが近くの店に在庫があると決定する在庫チェックをトリガすることとなどを含み得る。
【0052】
「A」の後に「B」が続かない関連付けを有する所定のパターンも、製品をカートに追加する「A」イベントと、カートのチェックアウト(たとえば、注文を確定すること)を含まない「B」イベントといった、「A」イベントおよび「B」イベントについてのイベント定義を含み得る。他の「A」の後に「B」が続かない例は、特定の製品またはカテゴリを検索し、次いで、如何なる特定の製品詳細ページも閲覧しないことと、最小レベルの製品カテゴリにナビゲートするが、如何なる特定の製品詳細ページも閲覧しないことと、ユーザが以前に購入した製品を検索するが、カートに当該製品を追加しないことと、アイテムがカートにあるがチェックアウトしないことと、注文をチェックアウトするが、注文の総量に基づいて無料発送に適格でないことと、注文をチェックアウトするが、プロモーションに適格ではないこととなどを含み得る。
【0053】
所定のミッシングイベントパターンは、一連のイベントを定義し得、当該ミッシングイベントパターンは、製品またはカテゴリを検索し、製品をカートに追加するが、チェックアウト(たとえば、注文を確定)しないことといったような、定義されたイベントのうちの1つが欠けている場合に認識され得る。他のミッシングイベントパターンは、製品をカートに追加し、チェックアウトするが、注文が提出/処理されない支払認定障害(または何らかの他の障害)に遭遇することと、製品がカートに追加されることなく、製品固有ページを繰り返し閲覧することとなどを含み得る。
【0054】
ジオコードまたはリバースジオコード:ニアバイ、ジオフェンスプロキシミティおよび/またはジオフィルタパターンは、実店舗のジオフェンス内で製品固有ページを閲覧することといったような、位置情報を含むイベント関連付けを定義し得る。他の位置情報に関係するパターンは、実店舗のジオフェンス内で製品またはカテゴリを検索し、カートに製品を追加し、その製品は、近くの実店舗に在庫があることなどを含み得る。
【0055】
変化検出器パターン、アップトレンドパターン、および/または、ダウントレンドパターンは、変化が検出され得る、アップトレンドが検出され得る、またはダウントレンドが検出され得るデータポイントの値の変化に関するイベント関連付けを定義し得る。例示的なイベントは、実行される検索回数の増加または減少、ユーザの訪問(たとえば、ある期間にわたる所与のウェブサイトへの訪問)回数の増加または減少、および、ユーザによってウェブサイトで費やされる金額の増加または減少(たとえば、ある期間にわたって費やされるドルの額)などを含み得る。変化またはトレンドが検出され得る他の例示的なデータポイントは、トランザクションタイプ(たとえば、オンライン注文店舗受け取りのトランザクションまたは顧客への直接発送のトランザクションの数に対する変更)、および、返品の数などである。
【0056】
いくつかの実施形態では、これらのパターンは、定義されたパターンが、上述のパターンの任意の組み合わせを含み得るように(たとえば、パイプラインにおいて)組み合わせられ得る。当該組み合わせは、「A」の後に「B」が続くパターンに位置に基づくパターンが組み合わされたものと、複数の「A」の後に「B」が続くパターン(または、当該パターンのいずれかの複数の反復)と、ミッシングイベントパターンに位置に基づくパターンが組み合わされたものとなどを含むがこれらに限定されない。
【0057】
いくつかの実施形態では、ある数のイベントが、たとえば、「A」の後に「B」が続くイベントのパターンの間に発生し得る。それでも、所定のパターンは、イベントストリーム内において認識され得る。たとえば、製品をカートに追加して除去する「A」および「B」のイベントを含むパターンの場合、介在するイベントは、異なる製品ページを閲覧することと、カートに他の製品を追加および/または除去することと、検索を行うこととなどを含み得る。この例では、「A」の後に「B」が続くパターンは、介在するイベントのうちイベントストリーム内において認識される。他のパターンも同様に、介在するイベントの存在下で認識され得る。
【0058】
いくつかの実施形態では、認識されたパターンは、関連する情報を内部システム/エンティティに提供するよう使用され得る。たとえば、リアルタイム情報が、最後の訪問(またはX回の訪問)において閲覧または検索されたがユーザ/ビジターによって購入されなかった製品に関するさまざまなチーム(たとえば、顧客エクスペリエンス、顧客エンゲージメントおよびマーケティングなど)に提供され得る。
【0059】
いくつかの実施形態では、電子デバイスまたは電子デバイスのユーザに関するコンテキストデータを使用して意図が決定され得る。たとえば、このコンテキストデータは、過去のオンラインショッピング挙動(たとえば、過去の製品購入、購入の頻度、および、プロモーションを利用する頻度など)、(たとえば、30日のウィンドウにわたって)閲覧された過去の製品、過去の検索、ジオロケーション履歴、デバイスタイプ(たとえば、モバイルデバイス、ラップトップ、デスクトップ)、週/月の日および/または日の時刻の挙動(たとえば、ユーザが典型的に閲覧またはブラウジングする週/月の日および/または日の時刻に対するユーザが典型的にオンライン購入を提出する週/月の日および/または日の時刻)、天候履歴(たとえば、現在または予想/予測される天候)、ならびに、ユーザの人口統計情報などを含み得る。
【0060】
いくつかの実施形態では、認識された所定のパターンに加えてコンテキスト基準が使用され得る。たとえば、イベントのストリームにおいてパターンが認識されると、対応するユーザについてのコンテキストデータがコンテキスト基準と比較され得る。コンテキスト基準は、認識されたパターンに基づき得る。たとえば、パターンが製品の閲覧の繰り返しを示す場合、コンテキスト基準は、対応するユーザがプロモーションを利用する(たとえばプロモーションを用いて製品を購入する)頻度に関し得る。頻度がコンテキスト基準を満たす場合(たとえば、ユーザがプロモーションを用いて製品を定期的に購入する場合)、対応するアクションが行われ得る(たとえば、繰り返し閲覧された製品のプロモーションを有するウェブプッシュメッセージ/通知がユーザに提供され得る)。
【0061】
同様のパターンを有する例では、コンテキスト基準は、ユーザの位置と、製品の在庫を有する実店舗が近くにあるか否かとに関し得る。製品の在庫を有する店舗が近くにある場合(たとえば、コンテキストデータが基準を満たす場合)、対応するアクションが行われ得る(たとえば、当該店舗での製品の在庫の利用を指示するウェブプッシュメッセージ/通知がユーザに提供され得る)。
【0062】
製品が取り除かれたカートをパターンが表す例では、コンテキスト基準は、当該製品とのユーザの過去のトランザクション履歴を含み得る。たとえば、ユーザが当該製品を以前に購入していた場合(たとえば、コンテキストデータが基準を満たす場合)、対応するアクションが行われ得る(たとえば、製品を購入するためのウェブリンクを含むウェブプッシュメッセージ/通知がユーザに提供され得る)。別の例では、ユーザが当該製品を以前に購入していない場合(たとえば、コンテキストデータが第2の基準を満たす場合)、第2の対応するアクションが行われ得る(たとえば、当該製品を購入するためのウェブリンクと、初回購入に基づく割引とを含むウェブプッシュメッセージ/通知がユーザに提供され得る)。
【0063】
いくつかの実施形態では、コンテキストデータは、所定のパターンを定義するよう、使用され得る。たとえば、定義されたパターンは、製品の繰り返し購入を示す注文履歴と、製品の閲覧を含むイベントストリームとを含む所定のパターンのような、ユーザ/電子デバイスのコンテキスト情報を含み得る。別の例では、所定のパターンは、ユーザにとって関心のある製品を含み得、当該関心のある製品は、プロモーションの対象となる。この例では、製品について、ユーザのコンテキストオンラインショッピング挙動に基づいて(たとえば、ユーザの以前の注文、検索、製品の閲覧、および、決定された関心などに基づいて)、ユーザの関心があるものと決定され得る。
【0064】
ストリームアナリティックス310によって実行される処理および分析に基づいて、1つ以上のアクションが実行され得る。たとえば、モジュール314は、リアルタイムビジネスインテリジェンス機能を実行し得るか、または、関連する/洞察のあるデータをデータレークに格納し得る。さらに、モジュール316は、電子デバイス/ユーザとのインタラクションを実行し得る。たとえば、モジュール316は、電子デバイスに関連付けられるイベントのストリーム内の認識されたパターン、および/または、コンテキスト基準を満たす電子デバイスのユーザに関連付けられるコンテキストデータに基づいて、電子デバイスにウェブプッシュメッセージを送信する。
【0065】
実施形態は、多くの技術、フレームワーク、規格、および、実現例を使用して、開示された機能を達成し得る。たとえば、ストリーム処理のために、アパッチカフカストリームAPI(Apache Kafka Streams API)が活用され得る。さらに、高スループット低レイテンシーモードでのストリーミングおよびバッチ処理のために、アパッチフリンク(Apache Flink)が使用され得る。カフカストリームを分析/処理するために、アパッチカフカに対するリアルタイムデータ処理を可能にするストリーミングSQLエンジンであるコンフルーエント(Confluent)のKSQLが使用され得る。(データブリックス(Databricks))のアパッチスパークストリーミング(Apache Spark streaming)は、バッチワークロードおよびストリーミングワークロードの両方をネイティブにサポートするスケーラブルなフォールトトレラントストリーミング処理システムである。
【0066】
オラクル(登録商標)ビッグデータSQL(「BDSQL: BigData SQL」)は、(たとえば、フライトデータ(flight data)における)カフカトピックおよび永続データ(たとえば、オラクル(登録商標)リレーショナルデータベースでは、NoSQLデータストア、および、Hadoopデータレークなど)にわたってクエリ送信し得る。さらに、オラクル(登録商標)ストリーミングアナリティックスパターンマッチングを強化するために、または、オラクル(登録商標)ストリーミングアナリティックスパターンマッチングの代わりに、オラクル(登録商標)12cデータベースにおけるSQLパターンマッチング機能が使用され得る。実施形態はさらに、たとえば、シーケンスを行のストリームとして扱い、イベントを表すようストリームにおける行を使用することによって、SQLを使用してイベントのシーケンスにおけるパターンを認識し得る。オラクル12cデータベースの実施形態は、SQLからのパターンマッチングを向上するために、MATCH_RECOGNIZE句を解析関数シンタックスに組み込む。さらに、データレークビジネスインテリジェンスとともに/データレークビジネスインテリジェンスの代わりにオラクル(登録商標)スパークライン(Sparkline)が使用され得る(たとえば、大規模で)。
【0067】
いくつかの実施形態では、ウェブプッシュメッセージ/通知のためのコンテンツは、認識されたパターンおよび/またはコンテキストデータに基づいて生成され得る。たとえば、ウェブプッシュ通知は、特定の製品に対するプロモーションと、カート上の無料発送またはカートによってあるしきい値が到達される場合の無料発送と、カートのチェックアウト(たとえば、今日のチェックアウト)のタイミングに基づく無料発送となどを含み得る。別の例では、認識されたパターンおよび/またはコンテキストデータは、ユーザ/電子デバイスについての位置に関し得、したがって、ウェブプッシュ通知は、ユーザ近くにおいて特定の製品の在庫があるという指示と、オンライン購入店舗受け取りのトランザクションに対するプロモーションと、位置に基づく他のプロモーションとを含み得る。ウェブプッシュ通知についての他のコンテンツは、ユーザが回収すべきロイヤリティポイントを有するという指示と、カートから廃棄された製品のような製品を購入するために使用され得るウェブリンクとなどを含み得る。
【0068】
いくつかの実施形態では、認識されたパターンは、(たとえば、ユーザの最後の訪問または最後のX回の訪問において)検索/閲覧/滞在されたが購入されなかった製品を示し得る。この例では、これらの示された製品のうちの1つに対する肯定的な製品レビューがウェブプッシュ通知に含まれ得る。別の例では、パターンは、戻ってきている高価値の買い物客を示し得、当該ウェブプッシュ通知のためのコンテンツは、「おかえりなさい!私たちはあなたとの取引を大事にしています!この割引オファーXXXをお受け取りください」を含み得る。別の例では、認識されたパターンは、ユーザ(たとえば、匿名ユーザ)が製品カテゴリを閲覧するが、典型的には(たとえば、履歴分析に基づいて)その製品を注文しないことを示し得る。この例において、匿名ユーザは「ウィンドウショッパー」としてプロファイルされ得、ウェブプッシュ通知のためのコンテンツは、販売中の製品ページ(たとえば、ウェブリンク)を含み得る。いくつかの実施形態では、ウェブプッシュメッセージを送信するためのタイミング(またはスケジューリングされたタイミング)は、認識されたパターンおよび/またはコンテキストデータに基づいて決定され得る。
【0069】
実施形態は、ウェブサイトのような販売者のeコマースウェブの存在のために実現され得る。販売者のウェブサイト(たとえば、OCCSクライアントがプログレッシブウェブアプリケーションとして構成される状態でOCCSを使用する)へのビジターを考える。サイトからプッシュ通知を受信することについてのビジターの同意およびオプトインは、ビジターの電子デバイスへのメッセージに基づいて抽出され得る。たとえば、オプトインは、最初にメッセージングに基づいて確保され得、その後、この初期オプトインに基づいて、ウェブプッシュメッセージがユーザ/電子デバイスに送信され得る。いくつかの実施形態では、オプトインは、ビジターの電子デバイスがプッシュメッセージを受信し得る前に確保されなければならない。その後、ビジターの挙動イベント(たとえば、意図)の所定の検出パターンと、ビジターのコンテキスト(たとえば、過去の挙動、ジオロケーション、デバイス、オーディエンス、一日の時刻、天候、人口統計など)とに基づいて、1つ以上の関連するマーケティング/再ターゲティング/サービス指向のウェブプッシュメッセージがビジターの電子デバイスに送信され得る。ビジターの電子デバイスはそのような通知を(たとえば、リアルタイムでモバイルウェブブラウザにおいて)表示するように構成され得る。そのような機能は、販売者が機会を逃すことを回避し、ショッピングエクスペリエンスとの摩擦を低減し、挙動分析によってビジターの意図をより良く理解することに由来する他の有形の利益を提供し得る。
【0070】
たとえば、機会損失は、ビジターが製品またはカテゴリをサイト上で検索し、製品をカートに追加した後、製品をカートから除去するというコンテキストストリームパターンであり得る。これは、顧客が製品を物理的にピックアップし、確認し、元に戻す実店舗におけるフローと同様であり得る(いくつかの場合では、このインタラクションは、カメラなどの感知機器によってキャプチャされ得る)。この例では、(プッシュ通知による)介入アクションは、ネイティブモバイルアプリケーションを必要とせずに、たとえば、プログレッシブウェブアプリケーションが販売者/クラウドサービスプロバイダによって実現される場合に、実行され得る。実施形態は、オフラインウェブページ、ウェブプッシュ通知、およびロード時間の改善を含む、ネイティブにインストールされる従来のアプリケーションに類似するユーティリティを提供するプログレッシブウェブアプリケーションを含む。しかしながら、プログレッシブウェブアプリケーションは、デバイス自体にダウンロード/インストールされる必要はないので、ユーザ/ビジターによって採用される可能性がより高いオンラインエクスペリエンスの向上が提供される。
【0071】
ウェブプッシュメッセージ/通知は、選択可能(クリック可能)なメッセージであり得、ユーザ/ビジター/サブスクライバーのブラウザに送信され得、タスクバーの隣(またはモバイルデバイスのディスプレイ内)に現れ得る。これらのメッセージ/通知は、「ブラウザベース」であり得、これは、異なるプラットフォームおよびデバイスにわたってアクセス可能であることを意味する。さらに、ユーザがモバイルデバイス、タブレット、またはデスクトップを通じて接続されるか否かにかかわらず、ウェブプッシュメッセージ/通知は、リアルタイムでそれらのデバイスに到達し得る。さらに、ウェブプッシュ通知は、ウェブブラウザが任意のウェブサイトを閲覧している際に表示され得る。いくつかの実施形態では、ウェブプッシュ通知は、ハイパーリンクおよびリッチメディアのような選択可能なアクションを含み得る。ウェブプッシュメッセージ/通知は、たとえば、ユーザエンゲージメントおよび顧客維持を向上するために、簡潔かつリアルタイムで送達され得るので、特に有効であり得る。
【0072】
いくつかの実施形態では、プログレッシブウェブアプリケーションは、
図1のコマースクラウドクライアント102のようなクライアントとともに実行され得る。ユーザ/ビジターがOCCSサイトを訪問すると、彼らは、ウェブプッシュメッセージ/通知を受信することにオプトインし得る。サービスワーカは、(マニフェストファイルとともに)ユーザ/ビジターの電子デバイスがウェブサイトを訪問すると、ユーザ/ビジターの電子デバイス上にインストールされ得る(または、サービスワーカは、以前に、電子デバイスがウェブサイトを最初に訪問した際に、ロードされている場合もある)。その後、オプトインおよびサービスワーカを使用することに基づいて、ウェブプッシュメッセージ/通知が受信および表示され得る。
図4は、例示的な実施形態に従った、ユーザのアクティビティストリームに基づいてウェブプッシュメッセージを生成するためのフロー図を示す。一実施形態では、
図4(ならびに以下の
図5および
図6)の機能は、メモリまたは他のコンピュータ読取可能もしくは有形媒体に格納されるソフトウェアによって実現され、プロセッサによって実行される。他の実施形態では、各機能は、ハードウェア(たとえば、特定用途向け集積回路(「ASIC: application specific integrated circuit」)、プログラマブルゲートアレイ(「PGA: programmable gate array」)、フィールドプログラマブルゲートアレイ(「FPGA: field programmable gate array」など)、または、ハードウェアおよびソフトウェアの任意の組み合わせの使用を通じて実行され得る。実施形態では、
図4~
図6の機能は、
図1のシステム100または
図2のシステム210の1つ以上の要素によって実行され得る。
【0073】
オプトイン通知402は、たとえば、ユーザがウェブブラウザを使用してウェブサイトをロードすると、ユーザ電子デバイス上に表示され得る。ユーザは、ウェブプッシュメッセージのような通知を受信することについてオプトインするオプションを選択し得る。さらに、オプトイン表示のタイミングは、たとえば、ユーザがウェブサイトにおいて何らかの関心を示した時(たとえば、いくつかのウェブページにナビゲートした後、または、しきい値量の時間の間、ウェブサイトを閲覧した後など)に構成され得る。いくつかの実施形態では、サービスワーカは、ユーザ/電子デバイスがウェブサイトを訪問すると、(たとえば、コマースクラウドクライアント102一緒に/とともに構成される)ユーザの電子デバイス上にダウンロード/インストール/構成され得る(または、サービスワーカは、以前に、ユーザ/電子デバイスがウェブサイトを最初に訪問した際に、ロードされている場合がある)。電子デバイス上で、ユーザはウェブサイトをブラウジングし続け得、いくつかの実施形態では、ウェブサイトはクラウドサービス(たとえば、
図1のコマースクラウドサービス104)によってホスティングされ得る。
【0074】
ユーザは、ウェブブラウザを使用して、製品(たとえば、ジュエリー)の検索のような検索404を実行し得る。検索結果を閲覧した後、ユーザは、閲覧のためにリングのような製品を選択し得、ウェブブラウザは、その後、製品ページ406をロードし得る。示される例では、ユーザは、その後、対応する製品をカートまたはバスケットに追加し、中身の入ったカート408を生成し得る。その後、示される例では、ユーザは、対応する製品をカートまたはバスケットから除去し、空のカート410に到達し得る。
【0075】
いくつかの実施形態において、ユーザのウェブサイトとのインタラクションは、ユーザのウェブアクティビティを表す。本明細書において記載されるように、このウェブアクティビティは、さらに処理および分析され得るイベントのストリームを構築するために使用され得る。たとえば、ユーザのイベントストリーム内において、複数の所定のパターンのうちの1つが認識され得る。所定のパターン112は、Aの後にBが続くパターンとして定義され得、Aは、カートに製品を追加するアクションを表し、Bは、カートから製品を除去するアクションを表す。この例では、中身の入ったカート408を生成する製品の追加と、空のカート410につながる製品のその後の除去とは、所定のパターン412の定義にマッチングし得、したがって、そのような所定のパターン412は、ユーザのイベントストリームにおいて認識され得る。
【0076】
結果として、追加された後にカートから除去された製品に関連するコンテンツを含むウェブプッシュメッセージがユーザのデバイスに送信され得る。たとえば、関連する製品に対するプロモーションを含むウェブプッシュ通知414は、受信されたウェブプッシュメッセージに基づいてユーザのデバイス上に表示され得る。
【0077】
いくつかの実施形態では、送信についてのタイミングは、認識されたパターンおよび/またはユーザに関するコンテキストデータに基づき得る。たとえば、ユーザに関するコンテキストデータ(たとえば、オンライン挙動)の分析は、一日のある時間(たとえば、通常の平日の労働時間の間)に製品を閲覧し、一日の別の時間(たとえば、平日のランチの間、または、通常の労働時間の後)に製品を購入する傾向を示し得る。結果として、ウェブプッシュメッセージは、製品を購入するユーザの傾向に対応する時間に送信され得る。いくつかの実施形態では、ユーザ/電子デバイスがある位置にある際に、パターンが認識されるか、または、コンテキスト基準が満たされるので、ウェブプッシュメッセージについてのタイミングは、ユーザの位置に基づく。
【0078】
図5は、例示的な実施形態に従ったブラウザにウェブプッシュメッセージを送信するためのフロー図を示す。たとえば、
図5の機能は、
図4のウェブプッシュ通知414に対応するウェブプッシュメッセージを送信するよう使用され得る。
【0079】
ユーザの電子デバイスは、ソフトウェアクライアント(たとえば、クラウドクライアント)とともに実行され得、かつ、プログレッシブウェブアプリケーションとインタラクションし得るブラウザ502を含み得る。たとえばユーザがサービスに対してオプトインした後、ブラウザ502を使用して、プッシュメッセージングサーバ504によりサブスクリプションが作成され得る。サブスクリプションの詳細は、公開鍵、認証秘密、および、エンドポイント(たとえば、メッセージを送信するURL)を含み得る。いくつかの実施形態では、プッシュメッセージングサーバ504は、ファイヤーベースクラウドメッセージングサービス(Firebase Cloud Messaging Service)、または、任意の他の適切なメッセージングサービスであり得る。サブスクリプション情報は、プッシュメッセージングサーバ504からブラウザ502に通信され得、ブラウザ502は次いで、このサブスクリプション情報をクラウドサービスプロバイダ506に通信し得る。ウェブサイト/PWAを訪問した後、サービスワーカがさらに、ブラウザ502とインタラクションするようにロードされ得る。たとえば、ユーザについてのパターンおよび/またはコンテキスト基準を満たすコンテキスト情報を認識すると、クラウドサービスプロバイダ506は、プッシュメッセージングサーバ504を介してブラウザ502にウェブプッシュメッセージを送信し得る。たとえば、ウェブプッシュメッセージに対応するウェブプッシュ通知は、ユーザの電子デバイスのディスプレイ508によって表示され得る。
【0080】
いくつかの実施形態では、通知は、ブラウザのようなアプリケーションの通常のユーザインターフェイスの外側でユーザに表示されるメッセージであり得る。プッシュメッセージは、サーバからクライアントに送信されるメッセージであり得る。ウェブプッシュ通知は、プッシュメッセージに応答して生成される通知であり得る。通知APIは、ユーザへの通知を(たとえば、ユーザの電子デバイス上で)構成および表示するために使用されるインターフェイスであり得る。プッシュAPIは、PWAのようなアプリケーションをプッシュサービスにサブスクライブするために使用されるインターフェイスであって、サービスワーカにおいてプッシュメッセージを受信するために使用されるインターフェイスであり得る。ウェブプッシュ(またはウェブプッシュメッセージ送信)は、サーバからウェブ上のクライアントにメッセージをプッシュするプロセスに関与する1つ以上のプロセスまたはコンポーネントを指す非公式の用語(informal term)であり得る。プッシュサービスは、プッシュメッセージをサーバからクライアントにルーティングするためのシステムであり得る。たとえば、各ブラウザは、それ自体のプッシュサービスを実現し得る。ウェブプッシュプロトコルは、アプリケーションサーバまたはユーザエージェントがプッシュサービスとどのようにインタラクションするかを記述する。いくつかの実施形態では、ウェブプッシュ通知に関係する機能は、(たとえば、メッセージサービスプッシュAPIを使用して)送信されるウェブプッシュメッセージと、(たとえば、通知APIを使用して)表示される対応する通知とを含み得る。
【0081】
さまざまな実施形態の機能は、多くのドメインにおいて有益である。当該ドメインの例としては、モバイルアプリケーションのダウンロード率が低くあり得るドメイン、初回ビジター率が高くあり得るドメイン、もしくは、小売のようなウェブサイトへの不定期のビジターとエンゲージすることが有益であり得る場合のドメイン、および/または、多くの他のドメインが挙げられる。さらに、これらのソフトウェア技術は、ビジターが登録されている場合、または、ビジターが匿名/不明である場合に達成され得る。いくつかの実施形態では、ウェブプッシュメッセージは、ビジターが既にサイトを去っている(ビジターのウェブブラウザが実際に閉じられている)場合に送信/受信され得る。さらに、ビジターのデバイスタイプは、デスクトップ、タブレット、または、スマートフォンであり得、複数のオペレーティングシステムが実現され得る。
【0082】
図6は、例示的な実施形態に従った、プログレッシブウェブアプリケーションと通信するためにパターン認識を使用してイベントストリームを処理するためのフロー図である。602において、ユーザのウェブアクティビティに基づいてイベントのストリームが構築され得る。たとえば、ユーザは、ユーザの電子デバイス上で実行されるブラウザおよびプログレッシブウェブアプリケーションとインタラクションし得る。実施形態では、ユーザの電子デバイスは、ユーザがサービスに対してオプトインした後、サービスワーカにより構成されている。イベントのストリームを構築するために、ブラウザを介したユーザのプログレッシブウェブアプリケーションとのインタラクションが使用され得る。たとえば、アパッチカフカプロデューサ/エコシステムが、ユーザインタラクションを受信し、イベントのストリームを生成/構築(またはパイプライン化)し得る。イベントのストリームを生成/構築するための他の好適な技術も同様に実現され得る。
【0083】
604において、ウェブブラウザおよびプログレッシブウェブアプリケーションとのユーザのインタラクションを表すイベントのストリームが受信され得る。たとえば、イベントのこのストリームは、アパッチカフカ処理要素のような処理要素によって受信され得る。イベントのストリームを処理するための他の好適な技術も同様に実現され得る。
【0084】
606において、イベントのストリームは、コンテキストデータと組み合わせて処理され得る。たとえば、ユーザ/ユーザの電子デバイスに関するコンテキストデータは、イベントの受信されたストリームとともにアクセスおよび処理され得る。イベントのストリームを処理するための他の好適な技術も同様に実現され得る。
【0085】
608において、複数の所定のパターンのうちの1つが、アクションのストリーム内で認識され得る。たとえば、所定のパターンは、1つ以上のイベントおよび/またはコンテキストデータもしくはコンテキスト基準によって定義され得る。アクションのストリーム内における1つのパターンおよびコンテキストデータを認識することは、当該イベントのストリームからの1つ以上のイベントを上記1つの認識されたパターンについて定義されたイベントにマッチングすることと、ユーザに関するコンテキストデータを上記1つの認識されたパターンについて定義されたコンテキストデータとマッチングすることとを含み得る。いくつかの実施形態では、マッチングされるイベントは、少なくとも2つのイベントを含み得、マッチングされるコンテキストデータは、少なくともユーザについてのトランザクション履歴を含み得る。
【0086】
610において、ユーザの電子デバイスへの送信についてのタイミングが決定され得る。たとえば、ユーザの電子デバイスへのウェブプッシュメッセージの送信についてのタイミングは、1つの認識されたパターンまたはコンテキストデータに基づく。612において、ユーザの電子デバイスへの送信が実行され得る。たとえば、ウェブプッシュメッセージは、たとえば決定されたタイミングにおいて、ユーザの電子デバイスに送信され得る。いくつかの実施形態では、構成されたサービスワーカおよび/またはブラウザを使用して、対応するウェブプッシュ通知がユーザの電子デバイス上に表示され得る。
【0087】
実施形態は、プログレッシブウェブアプリケーションと通信するために、パターン認識を使用してイベントストリームを処理する。たとえば、ユーザは、電子デバイスを使用してウェブサイトとインタラクションし得、そのインタラクションは、電子デバイス上で実行されているプログレッシブウェブアプリケーションを通じて達成され得る。プログレッシブウェブアプリケーションは、ネイティブアプリケーションをダウンロードおよび格納する必要なしに、そのようなネイティブアプリケーションと同様のエクスペリエンスを生成するために使用され得る。いくつかの実施形態では、プログレッシブウェブアプリケーションは、プログレッシブウェブアプリケーションともに実行されるサービスワーカまたはスクリプトを含み得る。
【0088】
ユーザがウェブサイトをナビゲートしている間、イベントのストリームは、ユーザのアクションに基づいて生成され得る。たとえば、(たとえば、製品およびカテゴリなどへの)検索、製品固有ページの閲覧、カートへのアイテムの追加、および、任意の他の適切なアクションが、イベントのストリームに追加され得る。イベントのストリームは、パターンを認識するために受信および処理され得る。たとえば、1つ以上のイベントによって定義される複数のパターンは、あらかじめ定められ得る。複数のパターンのうちの1つは、パターンを定義する1つ以上のイベントがイベントのストリームとマッチングすると、イベントのストリーム内において認識され得る。
【0089】
いくつかの実施形態では、システムは、電子デバイスのユーザに関するデータ、電子デバイスに関するデータ、および、地理的領域に関連付けられるデータなどといったコンテキストデータを含み得、コンテキスト基準が定義され得る。たとえば、複数のパターンのうちの1つは、パターンを定義する1つ以上のイベントがイベントのストリームとマッチングすると、イベントのストリーム内において認識され得、コンテキスト基準は、基準を定義するコンテキストデータが、ユーザ、電子デバイス、地理的領域、または、関連するエンティティ/状況(たとえば、コンテキストデータが関係するエンティティ/状況、または、状況の同様のセット)からのコンテキストデータとマッチングすると、満たされ得る。別の例では、所定のパターンのうちの1つ以上は、1つ以上の定義されたイベントに加えてコンテキスト基準を含み得る。この例では、これらのパターンは、ユーザのインタラクションによって生成されるイベントおよび関連するコンテキスト情報にマッチングされる。
【0090】
いくつかの実施形態では、認識されたパターンに基づいて、ウェブプッシュメッセージが電子デバイスに送信され得る。たとえば、認識されたパターンは、電子デバイスのユーザとエンゲージする機会を示し得る。eコマースウェブサイトに関係する例示的な認識されたパターンは、廃棄されたカートまたはアイテムが除去されたカートであり得る。この例では、ウェブプッシュメッセージは、カートから除去された製品もしくはサービスまたは放棄された製品もしくはサービスに関するプロモーション資料またはマーケティング資料といった、放棄されたカートに関するコンテンツにより生成され得る。他の認識されたパターンは、他のユーザ/ビジターの意図を示し得、他のアクションは、認識された特定のパターンに基づいて行なわれ得る。
【0091】
所定のパターンは、ユーザ/ビジターの意図を示し得、したがって、特定のユーザのイベントストリーム内の所定のパターンのうちの1つの認識を使用して、所定のパターンに関連付けられる意図を特定のユーザに相関し得る。たとえば、廃棄されたカートに類似する所定のパターンは、中断またはそうでなければ変更された、製品を購入する意図に関連付けられ得る。この例では、この初期意図を回復するために特定のユーザとエンゲージする機会が存在する。たとえば、ユーザの意図は価格によって影響され得るので、プロモーションによってユーザは製品を購入するよう説得され得る。他のアクションも同様にユーザに影響を及ぼし得る。したがって、ユーザのイベントストリーム内の所定のパターンの認識は、意図(たとえば、認識された所定のパターンに関連付けられる意図)をユーザに相関するように使用され得、したがって、本明細書においてさらに記載されるように、この意図に基づいてアクションが行われ得る。
【0092】
いくつかの実施形態では、認識されたパターンおよび/またはコンテキスト情報はさらに、たとえば、後の時点(たとえば、リアルタイムではない)でウェブプッシュメッセージを送信するのがより好適である場合、ウェブプッシュメッセージを送信するタイミングを示し得る。たとえば、ユーザのオンライン挙動の分析は、一日のある時間(たとえば、通常の平日の労働時間の間)に製品を閲覧し、一日の別の時間(たとえば、平日のランチの間または通常の労働時間の後)に製品を購入する傾向を示し得る。その結果、ウェブプッシュメッセージは、ユーザが製品を購入する傾向に対応する時間で送信され得る(そして、ユーザは、ウェブプッシュ通知が受信/表示されるために販売者のウェブサイト上にいる必要はない)。
【0093】
実施形態は、ブラウザ/サービスワーカ/プログレッシブウェブアプリケーションを使用して、ウェブプッシュメッセージに対応するウェブプッシュ通知をユーザの電子デバイスのディスプレイ上に表示し得る。たとえば、サービスワーカ(たとえばスクリプト)は、プログレッシブウェブアプリケーションとともに実行され得、サービスワーカは、ウェブプッシュ通知を表示するために使用され得る。いくつかの実施形態では、ウェブプッシュ通知のためのコンテンツは、ユーザとエンゲージするためのインターフェイスを含み得る。たとえば、廃棄されたカートの例では、廃棄された製品を購入するために使用され得るウェブリンク(たとえば、ユニフォームリソースロケータ)が、ウェブプッシュ通知とともに含まれ得る。他の例では、認識されたパターンは、ユーザとエンゲージするための他のコンテンツまたは技術を示し得、これらの項目は、関連するウェブプッシュ通知に含まれ得る。
【0094】
本明細書全体にわたって記載される本開示の特徴、構造、または特徴は、1つ以上の実施形態において任意の好適な態様で組み合わされ得る。たとえば、本明細書全体を通して、「一実施形態」、「いくつかの実施形態」、「ある実施形態」、「ある複数の実施形態」、または、他の同様の言語の使用は、実施形態に関連して記載される特定の特徴、構造、または、特性が、本開示の少なくとも1つの実施形態に含まれ得るという事実を指す。したがって、本明細書全体を通して、「一実施形態」、「いくつかの実施形態」、「ある実施形態」、「ある複数の実施形態」、または、他の同様の言語の出現は、必ずしもすべてが実施形態の同じ群を指すのではなく、記載された特徴、構造、または特徴は、1つ以上の実施形態において任意の適切な態様で組み合わされてもよい。
【0095】
当業者は、上で論じた実施形態が、異なる順序のステップで実施され得ること、および/または、開示される構成とは異なる構成の要素により実施され得ることを容易に理解するであろう。したがって、本開示は概説した実施形態を考慮するが、本開示の精神および範囲にとどまりながら、ある修正例、変形例、および代替的な構造が明らかであることが当業者には明白であろう。したがって、本開示の範囲および境界を決定するために、添付の請求の範囲に対して参照がなされるべきである。