次に以下に、デジタルアクション実行のためのインターフェースおよびモード選択の方法、装置、およびシステムに関係する様々な概念、およびその実装形態のより詳細な説明を行う。たとえば、方法、装置、およびシステムは、デジタルアクションの実行を調整することができる。上で導入され、以下でより詳しく説明される様々な概念は、多数の方法のうちのどれかで実装され得る。
この技術的解決策は、一般的に、デジタルアクションのインターフェースまたは実行モードを選択することを対象とする。技術的解決策のシステムおよび方法は、デジタルアクションに対するインターフェースのタイプまたは実行モードを選択することによってデジタルアクションの実行を調整することができる。
アクションは、音声ベースのデジタルアシスタントによる実行のためにリンクされ得る。アクション(もしくは機能)は、1つまたは複数のアプリケーション、コンピューティングデバイス、サーバ、または電子リソースによって実行することができる任意のタイプのデジタルアクションを参照するか、または含むことができる。デジタルアシスタントとインターフェースできるサードパーティ製(「3P」)アプリケーションまたは電子リソースにとって、デジタルアシスタントがアプリケーション上で実行できる機能の通知を効率的に提供することは、困難であるか、または可能でない場合がある。デジタルアシスタントが実行できるアクションのタイプの数は絶えず増えてゆくので、所与のコンテキストにおいて最適な時間または方法で機能を適切に実行することは言うまでもなく、そのような機能を発見することすら、次第に難しく、非効率になる可能性がある。
たとえば、通知は、デジタルアシスタントが実行できる機能またはアクションのタイプを示す表示を行うこと、またはオーディオを再生することを含むことができる。しかしながら、3Pアプリケーションに関して利用可能なすべてのデジタルアシスタント機能のリスティングを表示するか、またはオーディオリスティングを再生することは、それらの機能の多くが現在のコンピューティング環境またはコンテキストにおいて関連性がない場合があるので多大な時間を要し、効率が悪く、遅延をもたらし、基準以下の、または無駄なユーザインターフェースを提供する可能性がある。デジタルアシスタントが3Pアプリケーションまたは電子リソース上で実行できる関連する機能の認識を欠くシステムでは、結果として、デジタルアシスタントまたはアプリケーションは、そうでなければより効率的なデジタルアシスタント機能によって実行され得る、不要なもしくは複数のアクションを実行することで十分に利用されないか、または効率的に利用されない可能性がある。したがって、本発明の技術的解決策のシステムおよび方法は、アクションが実行され得る効率を改善することができるインターフェースまたは実行モードを選択し得る(たとえば、デジタルアシスタント機能またはアクションを選択することによって)。
本発明の技術的解決策は、音声ベースのインターフェースを伴うデジタルアシスタントが3Pアプリケーション上で実行できる利用可能な関連する機能を識別し選択することを円滑にし、関連する機能の実行を円滑にし得る。たとえば、システムは、デジタルアシスタントが特定のアプリケーション上で実行することができる利用可能なアクションまたは機能をキャプチャすることができる。システムは、どのアクションがコンピューティング環境コンテキストに関連しているかを識別することができる。システムは、ユーザインターフェースを介して、それらの関連するアクションの指示(たとえば、コールトゥアクション)を提供することができる。システムは、アプリケーション内からそれらの関連するアクションを即座に実行し、コールトゥアクションをデジタルアシスタント上の関連するアクションに直接リンクすることができる(たとえば、アクションリンキング)。
たとえば、ユーザは、電子金融商品取引ウェブサイトなどのウェブサイトにナビゲートすることができる。システムは、コンテキストコンピューティング情報(たとえば、現在のポートフォリオ値、取引状況を決定する、または取引もしくは資金移動を実行するためにアカウントにログインする、認証するなどの、ウェブサイトに関連付けられているアクション)をキャプチャするか、または検出することができる。システムは、音声ベースのデジタルアシスタントが実行するように構成されている、現在のコンピューティング環境に関連する利用可能なアクションを識別することができる。システムは、現在のコンピューティング環境に関連する利用可能なデジタルアシスタントアクションの通知を提供するウェブサイト内で直接的にユーザインターフェースを介して指示(たとえば、コールトゥアクション)を提供することができる。システムは、通知を介して提示されるデジタルアシスタントアクションのうちの1つに対する命令、コマンド、またはインタラクションを受け取るかまたは検出することができる。システムは、デジタルアシスタントインターフェースを提供することができ、選択されたアクションの実行または呼び出しを円滑にすることができる。したがって、この技術的解決策は、デジタルアシスタントが、デジタルアシスタントなしで3Pアプリケーションまたは電子リソースによってアクションが直接的に実行されることに関してより効率的に実行できるサードパーティアプリケーションまたは電子リソース上で関連するアクションを識別し、選択する。システムは、デジタルアシスタントが、アプリケーションが呼び出されたときにアプリケーションまたは電子リソース(たとえば、ウェブサイト)に関連付けられている1つまたは複数のアクションを実行し、どのアクションが現在のコンピューティング環境に関連しているかを識別し、関連するアクションの通知を提供するコールトゥアクションを表示し、次いで関連するアクションを実行するように構成されていることを発見することができる。
システムは、コールトゥアクションの発見のための動的インターフェース調整を提供することができる。音声インターフェースを通じて機能を提供する3Pアプリケーションまたは電子リソースについて、アプリケーションまたはリソースが提供する機能の通知を、アプリケーションまたはリソースとの現在の非音声コンピューティングインタラクションを中断しない方式で効率的に提供することは、困難であるか、または可能でないこともあり得る。システムは、音声ベースのデジタルアシスタントに対するプラットフォーム特有のアクションリンキング機構を提供することができる。音声インターフェースを通じて機能を提供する3Pアプリケーションまたは電子リソースについて、ユーザが機能に関して通知される非音声コンテキストから3P提供音声インターフェース機能の効率的な呼び出しを可能にすることは、困難であるか、または可能でないことがあり得る。
たとえば、現在のコンピューティング環境コンテキストに関連する利用可能なアクションを発見した後、システムは、どのようなタイプのコールトゥアクション(利用可能なアクションの通知)をユーザに提供するかを決定することができる。システムは、どのコールトゥアクションを表示するか、さらにはコールトゥアクションの形式またはタイプを決定するために、アプリケーションもしくは電子リソースへのエンゲージメントのレベルを動的に(たとえば、現在のコンピューティング環境に関連付けられているパラメータ、プロパティ、または機能に基づき)決定することができる動的通知機能コンポーネントを含むことができる。たとえば、クライアントデバイスがいくつかのデジタルアクションを実行するためにウェブサイトと能動的にインタラクティブにやり取りしている場合、デバイス(またはそのユーザ)が対応するアクションを実行するためにデジタルアシスタントにエンゲージする(engage with)可能性が高いので、本発明の技術的解決策の動的通知機能は、発見されたコールトゥアクションを伴うポップアップウィンドウを提供することができる。より目立つ通知(たとえば、埋め込まれた通知またはバナー通知またはウェブサイトの隅に配置された小さなアイコンに関して)を提供することによって、動的通知機能は、アクションを実行するためにデジタルアシスタントにエンゲージする可能性を高めることができ、それによって、追加のコンピューティングリソースを消費するか、または無駄な時間を費やし得るアプリケーションとの非音声ベースのインターフェースを介して機能を直接的に実行することを防ぐことができる。
システムは、クライアントデバイスの使用で、アプリケーションまたは電子リソースを受動的に閲覧していると決定することができる。電子リソースを受動的に閲覧することは、非インタラクティブ状態を指すか、または電子リソースとインタラクティブにやり取りすることなく電子リソースを閲覧することを指すことができる。電子リソースとインタラクティブにやり取りしないことは、クライアントデバイスが、ある持続時間中に、電子リソースに向けられた入力を受信しないことを指すものとしてよい。受動的に閲覧され得るアプリケーションまたは電子リソースの例は、音楽、ビデオ、ストリーミング音楽、ストリーミングビデオ、または持続時間においてインタラクションなしで閲覧されるか、もしくは消費され得る他のタイプのオーディオもしくはビデオコンテンツを含むことができる。電子リソースが受動的に閲覧されていることを検出した後、動的通知機能は、能動的に消費されているアプリケーションまたは電子リソースに対して選択され得る通知のタイプと比較して目立ち難い異なる形式またはタイプの通知を選択することができる。目立ち難い通知の例は、オーディオもしくは音声オーバーレイ、または表示画面もしくはアプリケーショングラフィカルユーザインターフェースの隅に位置決めされた小さなアイコンを含むことができる。
システムがサードパーティ製のアプリケーションまたは電子リソース上のコールトゥアクションとのインタラクションを受け取ると、システムは、音声ベースのデジタルアシスタントに対してプラットフォーム特有のアクションリンキングを実行することができる。プラットフォーム特有のアクションリンキングは、システムが、ユーザをデジタルアシスタント内の選択されたアクションへ誘導するか、またはナビゲートするために適切なプラットフォーム特有の技術を決定することを指すことができる。システムは、デジタルアクションを実行するために使用するデバイスを動的に選択することができるデジタルアシスタントセレクタコンポーネント(たとえば、動的デバイスセレクタ)を備えることができる。システムは、デジタルアクションを実行することを目的として互いにリンクされている複数のデバイスを識別することができる。通知を表示し、コールトゥアクション(たとえば、デジタルアクション)を実行する命令を受け取ったデバイスは、複数のデバイスと関連付けられるか、またはリンクされ得るアカウントにリンクされ得る。アカウントにリンクされているデバイスのうちの1つまたは複数は、デジタルアクションを遂行するか、または実行するように構成され得るか、または遂行するか、または実行することができる。アカウントにリンクされたデバイスは、デジタルアシスタントにより構成され得る。それらのデバイスの1つまたは複数は、命令に応答して、またはいくつかの他の所望の時間間隔の間にアクションを実行するために利用可能であり得る。システムは、選択ポリシーを使用して、デジタルアクションを実行するためのデバイスを識別するか、または選択することができる。選択ポリシーは、現在のコンピューティング環境またはコンテキストに基づきデバイスを選択することができる。
プラットフォーム特有のアクションリンキングの例は、ディープリンクを使用して、クライアントデバイス上で実行するネイティブデジタルアシスタントを起動またはトリガーしアクションを実行することを含むことができる。別の例では、システムは、ユニバーサルアプリケーションリンクまたはカスタムURLを生成して、クライアントデバイス上で非ネイティブデジタルアシスタントアプリケーションを起動してアクションを実行することができる。さらに別の例では、システムは、アクションを実行するためにデジタルアシスタントにより異なるデバイスを選択することができる。プラットフォーム特有のアクションリンキングは、たとえば、オペレーティングシステムのタイプ、デバイスのタイプ、デバイスのプロパティ、デバイスの構成、またはデバイスの能力に基づきアクションを実行することを指すか、または実行することを含むことができる。
したがって、またいくつかの場合において、システムは、構成、デバイスのタイプ、デバイスにインストールされたアプリケーション、ネットワーク接続、またはコンピューティング環境に関連付けられている他のプロパティに基づき、実行モードを動的に決定することができる。たとえば、デジタルアシスタントアプリケーションがインストールされている場合、システムは、デジタルアシスタントアプリケーションにナビゲートし、コールトゥアクションに応答してデジタルアクションを実行するためのコマンドを入力することができる。その一方で、デジタルアシスタントアプリケーションがデバイスにインストールされていない場合、システムは、デジタルアクションの実行の前に、デジタルアシスタントアプリケーションのインストールを要求する通知を提供することができる。通知は、デバイスによってダウンロードされインストールされ得るアプリケーション実行可能ファイルのクラウドベースリポジトリへのリンク、パス、またはポインタを含むことができる。
システムは、デジタルアクションを実行するために異なるデバイス上でデジタルアシスタントを起動することができる。たとえば、電子リソースは、ウェブブラウザなどのアプリケーションでレンダリングされるウェブページを含むことができる。コールトゥアクションは、ウェブブラウザを介して提示され得る。コールトゥアクションは、バナー、ポップアップ、インタースティシャル、または他の何らかの方式で、電子リソース上にオーバーレイされ得る。システムは、コールトゥアクションとのインタラクションまたはコールトゥアクションに対応するデジタルアクションを実行するための他の指示を検出することができる。システムは、ウェブブラウザのタイプ、デバイス、ネットワーク接続性、アプリケーションを実行するデバイスに関連付けられているアカウント情報、またはアカウントにリンクされている追加のデバイスなどの、現在のコンピューティング環境情報を決定することができる。システムは、動的デバイスセレクタコンポーネントまたは機能性を介して、コールトゥアクションを提供したデバイスと同じアカウントにリンクされたデバイスのリストを含むウェブページを表示することができる。システムは、提示されるデバイスがコールトゥアクションに対応するデジタルアクションを実行する互換性を有するか、または実行することができるデバイスのみであるようにデバイスのリストを前処理するか、またはフィルタリングすることができる。いくつかの場合において、システムは、関連性、能力、互換性、パフォーマンス、または他のファクターに基づきデバイスを重み付けするように、デバイスのこのリストをランク付けすることができる。たとえば、システムは、デジタルアクションとの関連性に基づきデバイスをランク付けするか、またはフィルタリングすることができる(たとえば、グラフィック出力を提供し得るアクションに対する画面を有するデバイスのみを表示する)。本発明の技術的解決策の動的デバイスセレクタは、現在のコンピューティングコンテキストとの関連性が最も高いデバイスが、現在のコンピューティングコンテキストとの関連性が低いデバイスよりも高くランク付けされるようにデバイスのリストをランク付けすることができる(たとえば、最近使われたデバイスを、最近使われていないデバイスよりも高くランク付けする、頻繁に使われるデバイスを頻繁に使われないデバイスよりも高くランク付けする)。
図1は、デジタルアクションの実行のためのインターフェースおよびモードを選択する例示的なシステム100を例示している。システム100は、デジタルアクションの実行を調整することができる。システム100は、コンテンツ選択基盤を含むことができる。システム100は、データ処理システム102を備え得る。データ処理システム102は、コンピューティングデバイス122を含むか、またはコンピューティングデバイス122上で実行することができる。データ処理システム102は、ネットワーク105を介して、3Pデジタルコンテンツプロバイダデバイス134、リモートデータ処理システム136、または3P電子リソースサーバ142、148のうちの1つまたは複数と通信することができる。ネットワーク105は、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、メトロエリアネットワーク、または他のエリアネットワーク、イントラネット、衛星ネットワーク、および音声もしくはデータ携帯電話ネットワークなどの他の通信ネットワークなどのコンピュータネットワークを含み得る。ネットワーク105は、ラップトップ、デスクトップ、タブレット、携帯情報端末、スマートフォン、ポータブルコンピュータ、またはスピーカーなどの、少なくとも1つのコンピューティングデバイス122上に提示されるか、出力されるか、レンダリングされるか、または表示されるものとしてよいウェブページ、ウェブサイト、ドメイン名、またはユニフォームリソースロケータなどの情報リソースにアクセスするために使用され得る。たとえば、ネットワーク105を介して、コンピューティングデバイス122のユーザは、3Pデジタルコンテンツプロバイダデバイス134によって提供される情報またはデータにアクセスすることができる。コンピューティングデバイス122は、ディスプレイを備えていても備えていなくてもよく、たとえば、コンピューティングデバイスは、マイクロフォンおよびスピーカーなどの、限られた種類のユーザインターフェースを備え得る。いくつかの場合において、コンピューティングデバイス122の主たるユーザインターフェースは、マイクロフォンおよびスピーカーであるものとしてよい。コンピューティングデバイス122は、音声ベースコンピューティング環境とインターフェースすることができるか、または
音声ベースコンピューティング環境に含まれ得る。
ネットワーク105は、クライアントコンピューティングデバイス122によって提示されるか、出力されるか、レンダリングされるか、または表示され得るアプリケーション、ウェブページ、ウェブサイト、ドメイン名、またはユニフォームリソースロケータなどの情報リソースにアクセスするためにデータ処理システム102によって使用され得る。たとえば、ネットワーク105を介して、クライアントコンピューティングデバイス122のユーザは、3Pデジタルコンテンツプロバイダデバイス134によって提供される情報またはデータにアクセスすることができる。ネットワーク105は、コンテンツ配置または検索エンジン結果システムに関連付けられているか、またはデジタルコンポーネント配置キャンペーンの一部としてサードパーティ製デジタルコンポーネントを含む資格のあるインターネット上で利用可能な情報リソースのサブネットワークを含むか、またはそれらの構成要素となり得る。
ネットワーク105は、任意の種類または形態のネットワークであってよく、2地点間ネットワーク、放送網、ワイドエリアネットワーク、ローカルエリアネットワーク、電気通信網、データ通信ネットワーク、コンピュータネットワーク、ATM(非同期転送モード)ネットワーク、SONET(同期光ネットワーク)ネットワーク、SDH(同期デジタルハイアラーキ)ネットワーク、ワイヤレスネットワーク、および有線ネットワークのうちのどれかを含み得る。ネットワーク105は、赤外線チャネルまたは衛星帯域などのワイヤレスリンクを含み得る。ネットワーク105のトポロジーは、バス型、スター型、またはリング型ネットワークトポロジーを含み得る。ネットワークは、高度携帯電話プロトコル(「AMPS」)、時分割多元接続(「TDMA」)、符号分割多元接続(「CDMA」)、グローバルシステムフォーモバイルコミュニケーションズ(「GSM」)、汎用パケット無線サービス(「GPRS」)、またはユニバーサルモバイル通信システム(「UMTS」)を含む、モバイルデバイス間の通信に使用される1つまたは複数の任意のプロトコルを使用する携帯電話ネットワークを含み得る。異なる種類のデータは、異なるプロトコルを介して伝送され得るか、または同じ種類のデータは、異なるプロトコルを介して伝送され得る。
システム100は、3P電子リソースサーバ142を含むか、または3P電子リソースサーバ142とインターフェースするか、3P電子リソースサーバ142と通信するか、またはさもなければ3P電子リソースサーバ142にアクセスすることができる。データ処理システム102は、ネットワーク105を介して3P電子リソースサーバ142と通信することができる。3P電子リソースサーバ142は、データ処理システム102、リモートデータ処理システム136、3Pデジタルコンテンツプロバイダデバイス134、およびコンピューティングデバイス122から遠隔にあり、これらとは異なり得る。3P電子リソースサーバ142は、電子リソース112の開発者に関連付けられ得る。3P電子リソースサーバ142は、電子リソース112の実行を円滑にすることができる。たとえば、3P電子リソースサーバ142は、アプリケーション110によって実行される電子リソース112に対するバックエンド処理を実行することができる。コンピューティングデバイス122上で実行するアプリケーション110は、アプリケーション110のフロントエンドコンポーネントを実行することができ、3P電子リソースサーバ142は、アプリケーション110のバックエンドコンポーネントを実行することができる。コンピューティングデバイス122上で実行するアプリケーション110は、リモートプロシージャコールまたは他の要求またはデータを3P電子リソースサーバ142に伝送することができる。3P電子リソースサーバ142は、データ、情報、または要求をアプリケーション110に伝送して、機能を実行するか、またはアクションを実行することができる。3P電子リソースサーバ142は、アプリケーション110、またはコンピューティングデバイス122上で実行するアプリケーション110を介して実行されるか、もしくは提供される電子リソース112の状態を修正するか、または変更することができる。
システム100は、少なくとも1つのリモートデータ処理システム136を備えることができる。リモートデータ処理システム136は、たとえばデータ処理システム102、3Pデジタルコンテンツプロバイダデバイス134(たとえば、コンテンツプロバイダ)と、ネットワーク105を介して、通信するためのプロセッサを有するコンピューティングデバイスなどの少なくとも1つの論理デバイスを含むことができる。リモートデータ処理システム136は、少なくとも1つの計算リソース、サーバ、プロセッサ、またはメモリを備え得る。たとえば、リモートデータ処理システム136は、少なくとも1つのデータセンター内に配置されている複数の計算リソースまたはサーバを備え得る。リモートデータ処理システム136は、複数の論理的にグループ化されたサーバを含むものとしてよく、分散コンピューティング技術を利用しやすくすることができる。サーバの論理グループは、データセンター、サーバファーム、またはマシンファームと称され得る。サーバは、また、地理的に分散されていてもよい。データセンターまたはマシンファームは、単一のエンティティとして管理され得るか、またはマシンファームは、複数のマシンファームを含むことができる。各マシンファーム内のサーバは、異機種であってもよく、サーバまたはマシンのうちの1つまたは複数が1つまたは複数の種類のオペレーティングシステムプラットフォームに従って動作することができる。
マシンファーム内のサーバは、関連付けられているストレージシステムとともに高密度ラックシステム内に格納され、エンタープライズデータセンター内に配置され得る。たとえば、このようにしてサーバを一元管理することで、サーバおよび高性能ストレージシステムをローカライズされた高性能ネットワーク上に配置することによってシステム管理性、データセキュリティ、システムの物理的セキュリティ、およびシステムパフォーマンスを改善し得る。サーバおよびストレージシステムを含む、リモートデータ処理システム136のコンポーネントの全部または一部を中央集中化し、それらを高度なシステム管理ツールに結合することにより、サーバリソースをより効率的に使用することができ、それにより、必要な電力および処理の節約をはかり、帯域幅使用を減らす。
リモートデータ処理システム136は、デジタルアシスタントサーバ138とコンテンツセレクタコンポーネント140を含むことができる。デジタルアシスタントサーバ138は、コンピューティングデバイス122のデジタルアシスタントコンポーネント106と通信して1つまたは複数の機能を実行するように設計され、構築され、動作可能であり得る。コンテンツセレクタコンポーネント140は、3Pデジタルコンテンツプロバイダデバイス134によって提供されるデジタルコンポーネントアイテム(たとえば、コンテンツアイテム)を選択するように設計され、構築され、動作可能であり得る。コンテンツセレクタコンポーネント140は、コンピューティングデバイス122からのコンテンツに対する要求に応答してコンテンツアイテムを選択することができる。コンテンツセレクタコンポーネント140は、提示(たとえば、オーディオ出力、ビジュアル出力、またはオーディオビジュアル出力)のために選択されたコンテンツアイテムをコンピューティングデバイス122に伝送することができる。
システム100は、少なくとも1つの3Pデジタルコンテンツプロバイダデバイス134を備えるか、アクセスするか、または他の何らかの形でインタラクティブにやり取りすることができる。3Pデジタルコンテンツプロバイダデバイス134は、ネットワーク105を介して、たとえば、コンピューティングデバイス122、データ処理システム102、またはリモートデータ処理システム136と通信するためのプロセッサを有するコンピューティングデバイスなどの少なくとも1つの論理デバイスを備えることができる。3Pデジタルコンテンツプロバイダデバイス134は、少なくとも1つの計算リソース、サーバ、プロセッサ、またはメモリを備えることができる。たとえば、3Pデジタルコンテンツプロバイダデバイス134は、少なくとも1つのデータセンター内に配置されている複数の計算リソースまたはサーバを備えることができる。3Pデジタルコンテンツプロバイダデバイス134は、サービスプロバイダデバイス、または商品プロバイダデバイスを含むか、または参照することができる。
3Pデジタルコンテンツプロバイダデバイス134は、オーディオ出力デジタルコンポーネントとしてコンピューティングデバイス122により提示するためにオーディオベースのデジタルコンポーネントを提供することができる。デジタルコンポーネントは、検索クエリまたは要求に対する応答を含むことができる。デジタルコンポーネントは、データベース、検索エンジン、またはネットワーク化されたリソースからの情報を含むことができる。たとえば、デジタルコンポーネントは、ニュース情報、天気情報、スポーツ情報、百科事典の項目、辞書の項目、またはデジタル教科書からの情報を含むことができる。デジタルコンポーネントは、「Would you like me to order you a taxi? (タクシーをお呼びしましょうか)」と述べる音声ベースのメッセージなどの商品もしくはサービスのオファーを含むことができる。3Pデジタルコンテンツプロバイダデバイス134は、音声ベースの問い合わせに応答して提供され得る一連のオーディオデジタルコンポーネントを記憶するためのメモリを備えることができる。3Pデジタルコンテンツプロバイダデバイス134は、オーディオベースのデジタルコンポーネント(または他のデジタルコンポーネント)を、それらがコンテンツセレクタコンポーネント140によって選択のために記憶され得るリモートデータ処理システム136に提供することもできる。リモートデータ処理システム136は、オーディオデジタルコンポーネントを選択し、オーディオデジタルコンポーネントをクライアントコンピューティングデバイス122に提供する(かまたは提供するようにコンテンツプロバイダコンピューティングデバイス140に命令する)ことができる。オーディオベースデジタルコンポーネントはもっぱらオーディオであるか、またはテキスト、画像、またはビデオデータと組み合わせたものとすることができる。デジタルコンポーネントまたはコンテンツアイテムは、画像、テキスト、ビデオ、マルチメディア、または1つもしくは複数の形式の他のタイプのコンテンツを含むことができる。
リモートデータ処理システム136は、少なくとも1つの計算リソースまたはサーバを有するコンテンツ配置システムを備え得る。リモートデータ処理システム136は、少なくとも1つのコンテンツセレクタコンポーネント140を備えるか、インターフェースするか、または他の何らかの形で通信することができる。リモートデータ処理システム136は、少なくとも1つのデジタルアシスタントサーバ138を備えるか、インターフェースするか、または他の何らかの形で通信することができる。
コンテンツセレクタコンポーネント140およびデジタルアシスタントサーバ138は、各々、少なくとも1つの処理ユニットまたはプログラマブルロジックアレイエンジンなどの他の論理デバイス、または互いに、もしくは他のリソースもしくはデータベースと通信するように構成されているモジュールを含むことができる。コンテンツセレクタコンポーネント140およびデジタルアシスタントサーバ138は、別個のコンポーネント、単一のコンポーネント、またはリモートデータ処理システム136の一部であってもよい。リモートデータ処理システム136などの、システム100およびそのコンポーネントは、1つまたは複数のプロセッサ、論理デバイス、または回路などの、ハードウェア要素を備えることができる。
リモートデータ処理システム136は、複数のコンピューティングデバイス122に関連付けられている匿名コンピュータネットワーク活動情報を取得することができる。コンピューティングデバイス122のユーザは、リモートデータ処理システム136がユーザのコンピューティングデバイス122に対応するネットワーク活動情報を取得することを肯定的に許可することができる。たとえば、リモートデータ処理システム136は、1つまたは複数の種類のネットワーク活動情報を取得するために同意を求めるプロンプトをコンピューティングデバイス122のユーザに出すことができる。コンピューティングデバイス122のユーザの識別情報は匿名のままであってよく、コンピューティングデバイス122は一意的識別子(たとえば、データ処理システムまたはコンピューティングデバイスのユーザによって提供されるユーザまたはコンピューティングデバイスに対する一意的識別子)に関連付けられ得る。リモートデータ処理システム136は、各観察を対応する一意的識別子に関連付けることができる。
3Pデジタルコンテンツプロバイダデバイス134は、電子コンテンツキャンペーンを確立することができる。電子コンテンツキャンペーンは、コンテンツセレクタコンポーネント140のデータリポジトリ内にコンテンツデータとして記憶され得る。電子コンテンツキャンペーンは、共通テーマに対応する1つまたは複数のコンテンツグループを指すものとしてよい。コンテンツキャンペーンは、コンテンツグループ、デジタルコンポーネントデータオブジェクト、およびコンテンツ選択基準を含む階層データ構造体を含むことができる。コンテンツキャンペーンを作成するために、3Pデジタルコンテンツプロバイダデバイス134は、コンテンツキャンペーンのキャンペーンレベルパラメータに対する値を指定することができる。キャンペーンレベルパラメータは、たとえば、キャンペーン名、デジタルコンポーネントオブジェクトを配置するための好ましいコンテンツネットワーク、コンテンツキャンペーンに使用されるべきリソースの値、コンテンツキャンペーンに対する開始日および終了日、コンテンツキャンペーンに対する持続時間、デジタルコンポーネントオブジェクト配置のスケジュール、言語、地理的位置、デジタルコンポーネントオブジェクトを提供する際のコンピューティングデバイスの種類を含むことができる。いくつかの場合において、印象は、デジタルコンポーネントオブジェクトがそのソース(たとえば、リモートデータ処理システム136または3Pデジタルコンテンツプロバイダデバイス134)からいつフェッチされるかを指すものとしてよく、カウント可能である。いくつかの場合において、ワンクリック詐欺の可能性があるため、ロボット活動は、印象として、フィルタリングされ、除外され得る。したがって、いくつかの場合において、印象はブラウザからのページ要求に対するウェブサーバからの応答の測定を指すものとしてよく、これはロボット活動およびエラーコードからフィルタリングされ、デジタルコンポーネントオブジェクトをレンダリングしてコンピューティングデバイス122上に表示する機会にできる限り近い時点において記録される。いくつかの場合において、印象は、表示できるまたは聴き取れる印象を指すものとしてよく、たとえば、デジタルコンポーネントオブジェクトは、クライアントコンピューティングデバイス122の表示デバイス上に少なくとも部分的に(たとえば、20%、30%、30%、40%、50%、60%、70%、またはそれ以上)表示可能であるか、またはコンピューティングデバイス122のスピーカーを介して聴き取れる。クリックまたは選択は、聴き取れる印象への音声応答、マウスクリック、タッチインタラクション、ジェスチャー、シェイク、オーディオインタラクション、またはキーボードクリックなどの、デジタルコンポーネントオブジェクトとのユーザインタラクションを指すものとしてよい。変換は、ユーザがデジタルコンポーネントオブジェクトに関して所望のアクションを実行すること、たとえば、製品もしくはサービスを購入すること、調査を完遂すること、デジタルコンポーネントに対応する実店舗を訪問すること、または電子取引を完遂することを指すものとしてよい。
3Pデジタルコンテンツプロバイダデバイス134は、コンテンツキャンペーンに対する1つまたは複数のコンテンツグループをさらに確立することができる。コンテンツグループは、キーワード、単語、検索語、フレーズ、地理的位置、コンピューティングデバイスの種類、時刻、関心、話題、または垂直などの、1つまたは複数のデジタルコンポーネントオブジェクトおよび対応するコンテンツ選択基準を含む。同じコンテンツキャンペーンの下にあるコンテンツグループは、同じキャンペーンレベルパラメータを共有することができるが、キーワード、否定的キーワード(たとえば、主コンテンツ上の否定的キーワードの存在下でのデジタルコンポーネントの配置をブロックする)、キーワードに対する入札、または入札もしくはコンテンツキャンペーンに関連付けられているパラメータなどの、特定のコンテンツグループレベルパラメータに対する指定を修正している場合もある。
新規コンテンツグループを作成するために、3Pデジタルコンテンツプロバイダデバイス134は、コンテンツグループのコンテンツグループレベルパラメータに対する値を提供することができる。コンテンツグループレベルパラメータは、たとえば、コンテンツグループ名またはコンテンツグループテーマ、および異なるコンテンツ配置機会(たとえば、自動配置もしくは管理された配置)または成果(たとえば、クリック、印象、または変換)に対する入札を含む。コンテンツグループ名またはコンテンツグループテーマは、3Pデジタルコンテンツプロバイダデバイス134がコンテンツグループのデジタルコンポーネントオブジェクトが表示のために選択されるべきである話題または主題を捕らえるために使用できる1つまたは複数の検索語であってよい。たとえば、自動車の販売代理店は、保有している車両の各ブランドに対して異なるコンテンツグループを作成することができ、保有している車両の各モデルに対する異なるコンテンツグループをさらに作成し得る。自動車の販売代理店が使用することができるコンテンツグループテーマの例は、たとえば、「Make A sports car」、「Make B sports car」、「Make C sedan」、「Make C truck」、「Make C hybrid」、「Make D hybrid」を含む。たとえば、例示的なコンテンツキャンペーンテーマが「hybrid」であり、「Make C hybrid」および「Make D hybrid」の両方に対するコンテンツグループを含み得る。
3Pデジタルコンテンツプロバイダデバイス134は、各コンテンツグループに1つまたは複数のキーワードおよびデジタルコンポーネントオブジェクトを提供することができる。キーワードは、デジタルコンポーネントオブジェクトに関連付けられるか、または識別される製品もしくはサービスに関連する検索語を含むことができる。キーワードは、1つまたは複数の検索語もしくはフレーズを含むことができる。たとえば、自動車の販売代理店は、コンテンツグループまたはコンテンツキャンペーンに対するキーワードとして、「sports car」、「V-6 engine」、「four-wheel drive」、「fuel efficiency」を含むことができる。いくつかの場合において、否定的キーワードは、いくつかの検索語またはキーワードに関してコンテンツ配置を回避するか、防止するか、ブロックするか、または無効にするためにコンテンツプロバイダによって指定され得る。コンテンツプロバイダは、デジタルコンポーネントオブジェクトを選択するために使用される、完全一致、フレーズ一致、またはあいまい一致などのマッチングの種類を指定することができる。
3Pデジタルコンテンツプロバイダデバイス134は、3Pデジタルコンテンツプロバイダデバイス134によって提供されるデジタルコンポーネントオブジェクトを選択するためにリモートデータ処理システム136によって使用されるべき1つまたは複数のキーワードを提供することができる。3Pデジタルコンテンツプロバイダデバイス134は、値付けする1つまたは複数のキーワードを識別し、様々なキーワードに対する入札額を提示することができる。3Pデジタルコンテンツプロバイダデバイス134は、デジタルコンポーネントオブジェクトを選択するためにリモートデータ処理システム136によって使用されるべき追加のコンテンツ選択基準を提供することができる。複数の3Pデジタルコンテンツプロバイダデバイス134は、同じまたは異なるキーワードに値付けすることができ、リモートデータ処理システム136は、電子メッセージのキーワードの指示を受信したことに応答してコンテンツ選択プロセスまたは広告オークションを実行することができる。
3Pデジタルコンテンツプロバイダデバイス134は、リモートデータ処理システム136によって選択される1つまたは複数のデジタルコンポーネントオブジェクトを提供することができる。リモートデータ処理システム136は、(たとえば、コンテンツセレクタコンポーネント140を介して)、コンテンツグループに対して指定されたリソース割り振り、コンテンツスケジュール、最高入札、キーワード、および他の選択基準と一致するコンテンツ配置機会が利用可能になったときにデジタルコンポーネントオブジェクトを選択することができる。音声デジタルコンポーネント、オーディオデジタルコンポーネント、テキストデジタルコンポーネント、画像デジタルコンポーネント、ビデオデジタルコンポーネント、マルチメディアデジタルコンポーネント、またはデジタルコンポーネントリンクなどの、異なるタイプのデジタルコンポーネントオブジェクトがコンテンツグループに含まれ得る。デジタルコンポーネントを選択した後、データ処理システム102は、デジタルコンポーネントオブジェクトを伝送して、コンピューティングデバイス122を介して提示し、コンピューティングデバイス122またはコンピューティングデバイス122の表示デバイス上にレンダリングすることができる。レンダリングすることは、表示デバイス上にデジタルコンポーネントを表示すること、またはコンピューティングデバイス122のスピーカーを介してデジタルコンポーネントを再生することを含み得る。リモートデータ処理システム136は、デジタルコンポーネントオブジェクトをレンダリングする命令をコンピューティングデバイス122に送ることができる。リモートデータ処理システム136は、コンピューティングデバイス122のデジタルアシスタントコンポーネント106、またはコンピューティングデバイス122のオーディオドライバ132に、オーディオ信号または音響波を発生するように命令することができる。リモートデータ処理システム136は、選択されたデジタルコンポーネントオブジェクトを提示するように、コンピューティングデバイス122によって実行されるアプリケーション110に命令することができる。たとえば、アプリケーション110は、デジタルコンポーネントオブジェクトが提示され得るスロット(たとえば、コンテンツスロット)(たとえば、オー
ディオスロットもしくはビジュアルスロット)を含むことができる。
データ処理システム102は、コンテンツセレクタコンポーネント140を備えるか、実行するか、または他の何らかの形で通信して、自然言語プロセッサによって識別されたクエリ、キーワード、またはトリガーキーワードを受信し、トリガーキーワードに基づき、デジタルコンポーネントを選択することができる。コンテンツセレクタコンポーネント140は、リアルタイムコンテンツ選択プロセスを介してデジタルコンポーネントを選択することができる。コンテンツ選択プロセスは、たとえば、検索エンジンを介して検索を実行すること、または3Pデジタルコンテンツプロバイダデバイス134などのリモートサーバもしくはデバイスに記憶されているデータベースにアクセスすることを含むことができる。コンテンツ選択プロセスは、サードパーティコンテンツプロバイダ134によって提供されるスポンサー付きデジタルコンポーネントオブジェクトを選択するステップを指すか、または含むことができる。リアルタイムコンテンツ選択プロセスは、複数のコンテンツプロバイダによって提供されるデジタルコンポーネントがコンピューティングデバイス122に提供する1つまたは複数のデジタルコンポーネントを選択するために解析されるか、処理されるか、重み付けされるか、またはマッチングが行われるサービスを含むことができる。コンテンツセレクタコンポーネント140は、コンテンツ選択プロセスをリアルタイムで実行することができる。コンテンツ選択プロセスをリアルタイムで実行するステップは、クライアントコンピューティングデバイス122を介して受信されるコンテンツに対する要求に応答してコンテンツ選択プロセスを実行するステップを指すものとしてよい。リアルタイムコンテンツ選択プロセスは、要求を受信する時間間隔(たとえば、1秒、2秒、5秒、10秒、20秒、30秒、1分、2分、3分、5分、10分、または20分)の範囲内で実行され(たとえば、開始されるか、または完了し)得る。リアルタイムコンテンツ選択プロセスは、クライアントコンピューティングデバイス122との通信セッションにおいて、または通信セッションが終了した後の時間間隔内で実行され得る。データ処理システム102は、デジタルコンポーネント選択プロセスまたは他のデジタルタスクの完了に続いて提供するオーディオチャイムを選択することができる。
たとえば、データ処理システム102は、デジタルコンポーネントオブジェクトを選択するように設計されるか、構築されるか、構成されるか、または動作可能であるコンテンツセレクタコンポーネント140を備えることができる。音声ベース環境において表示するデジタルコンポーネントを選択するために、データ処理システム102は(たとえば、デジタルアシスタントコンポーネント106のNLPコンポーネントを介して)、入力オーディオ信号を解析し、クエリ、キーワード(たとえば、トリガーキーワード)を識別し、それらのキーワードを使用して、一致するデジタルコンポーネントを選択することができる。データ処理システム102は、あいまい一致、完全一致、またはフレーズ一致に基づき、一致するデジタルコンポーネントを選択することができる。たとえば、コンテンツセレクタコンポーネント140は、候補デジタルコンポーネントの主題を分析するか、解析するか、または他の何らかの形で処理して、候補デジタルコンポーネントの主題がクライアントコンピューティングデバイス122のマイクロフォンによって検出された入力オーディオ信号のキーワードまたはフレーズの主題に対応するかどうかを決定することができる。コンテンツセレクタコンポーネント140は、画像処理技術、文字認識技術、自然言語処理技術、またはデータベース探索を使用して候補デジタルコンポーネントの音声、オーディオ、検索語、文字、テキスト、シンボル、または画像を識別するか、分析するか、または認識し得る。候補デジタルコンポーネントは、候補デジタルコンポーネントの主題を示すメタデータを含むものとしてよく、その場合、コンテンツセレクタコンポーネント140はメタデータを処理して、候補デジタルコンポーネントの主題が入力オーディオ信号に対応しているかどうかを決定し得る。
3Pデジタルコンテンツプロバイダ134は、デジタルコンポーネントを含むコンテンツキャンペーンをセットアップするときに追加のインジケータを提供し得る。コンテンツプロバイダは、コンテンツセレクタコンポーネント140が候補デジタルコンポーネントに関する情報を使用して探索を実行することによって識別し得るコンテンツキャンペーンまたはコンテンツグループレベルの情報を提供し得る。たとえば、候補デジタルコンポーネントは、コンテンツグループ、コンテンツキャンペーン、またはコンテンツプロバイダにマッピングし得る、一意的識別子を含み得る。コンテンツセレクタコンポーネント140は、データリポジトリ108内のコンテンツキャンペーンデータ構造体に記憶されている情報に基づき、3Pデジタルコンテンツプロバイダデバイス134に関する情報を決定し得る。
リモートデータ処理システム136は、コンピュータネットワークを介して、コンピューティングデバイス122上に提示するコンテンツの要求を受信することができる。データ処理システム102は、クライアントコンピューティングデバイス122のマイクロフォンによって検出された入力オーディオ信号を処理することによって要求を識別することができる。要求は、デバイスの種類、場所、および要求に関連付けられているキーワードなどの、要求の選択基準を含むことができる。
この要求に応答して、リモートデータ処理システム136は、データリポジトリ、または1つもしくは複数の3Pデジタルコンテンツプロバイダデバイス134によって提供されるコンテンツを含むことができるデータベースからデジタルコンポーネントオブジェクトを選択し、ネットワーク105を介してコンピューティングデバイス122経由で提示するデジタルコンポーネントを提供することができる。コンピューティングデバイス122は、デジタルコンポーネントオブジェクトとインタラクティブにやり取りすることができる。コンピューティングデバイス122は、デジタルコンポーネントへのオーディオ応答を受信することができる。コンピューティングデバイス122は、サービスプロバイダを識別することをコンピューティングデバイス122に行わせるか、もしくは行うことを可能にするデジタルコンポーネントオブジェクトに関連付けられているハイパーリンクまたは他のボタンを選択するか、サービスプロバイダにサービスを要求するか、サービスを実行するようサービスプロバイダに命令するか、情報をサービスプロバイダに伝送するか、または他の何らかの形でサービスプロバイダデバイスに問い合わせる指示を受け取ることができる。
コンピューティングデバイス122(またはクライアントコンピューティングデバイスまたはクライアントデバイス)は、データ処理システム102を含むか、または実行することができる。データ処理システム102は、少なくとも1つのインターフェース104を備えるか、インターフェースするか、または他の何らかの形で通信することができる。データ処理システム102は、少なくとも1つのローカルデジタルアシスタントコンポーネント106(またはデジタルアシスタントコンポーネント106)を備えるか、インターフェースするか、または他の何らかの形で通信することができる。ローカルデジタルアシスタントコンポーネント106は、自然言語処理能力または機能性を備えることができる。ローカルデジタルアシスタントコンポーネント106は、自然言語プロセッサ(「NLP」)コンポーネントを備えることができる。データ処理システム102は、少なくとも1つのデータリポジトリ108を備えるか、インターフェースするか、または他の何らかの形で通信することができる。データ処理システム102は、少なくとも1つのアプリケーション110を備えるか、または実行することができる。データ処理システム102は、少なくとも1つのアプリケーション110を少なくとも部分的に実行することができる(たとえば、アプリケーションは、クライアントコンポーネントおよびサーバコンポーネントを含むことができる)。アプリケーション110は、電子リソース112を実行するか、または提供することができる。電子リソース112は、スクリプトライブラリ114を含むことができる。スクリプトライブラリ114は、動的通知機能コンポーネント116、またはデジタルアシスタントセレクタコンポーネント120を含むか、アクセスする、提供する、または他の何らかの形で利用することができる。
データリポジトリ108は、1つまたは複数のローカルデータベースまたは分散型データベースを含むことができ、データベース管理システムを含み得る。データリポジトリ108は、コンピュータデータストレージまたはメモリを含むことができ、またデータは他にもあるがとりわけ、アプリケーション110、アプリケーションデータ、プロファイル、インデックス、デバイス構成情報、アカウント情報、プリファレンス、電子リソースに関連するデータを記憶することができる。アプリケーション110は、実行可能ファイル、アプリケーションパッケージファイル、構成ファイル、またはアプリケーションの実行を円滑にする他のデータを含むことができる。
データ処理システム102のインターフェース104、デジタルアシスタントコンポーネント106、アプリケーション110、または他のコンポーネントは、各々、少なくとも1つの処理ユニットもしくはプログラマブルロジックアレイエンジンなどの他の論理デバイス、または互いにもしくは他のリソースもしくはデータベースと通信するように構成されているモジュールを含むか、または利用することができる。データ処理システム102のインターフェース104、デジタルアシスタントコンポーネント106、アプリケーション110、または他のコンポーネントは、別個のコンポーネント、単一のコンポーネント、またはデータ処理システム102の一部であってよい。データ処理システム102などの、システム100およびそのコンポーネントは、1つまたは複数のプロセッサ、論理デバイス、または回路などの、ハードウェア要素を含むことができる。データ処理システム102のコンポーネント、システム、またはモジュールは、リモートデータ処理システム136によって少なくとも部分的に実行され得る。
コンピューティングデバイス122は、少なくとも1つのセンサー130、トランスデューサ126、オーディオドライバ132、プリプロセッサ124、または表示デバイス128を備えるか、インターフェースするか、または他の何らかの形で通信することができる。センサー130は、たとえば、周辺光センサー、近接センサー、温度センサー、加速度計、ジャイロスコープ、動き検出器、GPSセンサー、位置センサー、マイクロフォン、またはタッチセンサーを含み得る。トランスデューサ126は、スピーカーまたはマイクロフォンを備えることができる。オーディオドライバ132は、ハードウェアトランスデューサ126にソフトウェアインターフェースを提供することができる。オーディオドライバは、データ処理システム102によって提供されるオーディオファイルまたは他の命令を実行して、対応する音響波または音波を生成するようにトランスデューサ126を制御することができる。表示デバイス128は、図7に描かれているディスプレイ735の1つもしくは複数のコンポーネントまたは機能を備えることができる。プリプロセッサ124は、トリガーキーワード、事前に決定されているホットワード、開始キーワード、またはアクティベーションキーワードを検出するように構成され得る。いくつかの場合において、トリガーキーワードは、アクションを実行する要求を含むことができる。いくつかの場合において、トリガーキーワードは、コンピューティングデバイス122を有効化するか、またはアクティベートするための事前に決定されたアクションキーワードを含むことができ、トリガーキーワードまたはホットワードの後に要求キーワードが続くことができる。プリプロセッサ124は、キーワードを検出し、そのキーワードに基づきアクションを実行するように構成され得る。プリプロセッサ124は、ウェイクアップワードまたは他のキーワードまたはホットワードを検出し、その検出に応答して、コンピューティングデバイス122によって実行されるデータ処理システム102のデジタルアシスタントコンポーネント106を呼び出すことができる。いくつかの場合において、プリプロセッサ124は、さらなる処理のために、1つまたは複数の検索語をフィルタリングで除去するかまたは検索語を修正することを、検索語をリモートデータ処理システム136に
伝送する前に行うことができる。プリプロセッサ124は、マイクロフォンによって検出されたアナログオーディオ信号をデジタルオーディオ信号に変換し、ネットワーク105を介して、デジタルオーディオ信号を搬送する1つもしくは複数のデータパケットをデータ処理システム102またはリモートデータ処理システム136に伝送するか、または提供することができる。いくつかの場合において、プリプロセッサ124は、デジタルアシスタントコンポーネント106またはリモートデータ処理システム136に、そのような送信を実行する命令を検出したことに応答して、入力オーディオ信号の一部または全部を搬送するデータパケットを提供することができる。命令は、たとえば、入力オーディオ信号を含むデータパケットをデータ処理システム102またはリモートデータ処理システム136に伝送するためのトリガーキーワードまたは他のキーワードまたは承認を含むことができる。
クライアントコンピューティングデバイス122は、音声問い合わせをクライアントコンピューティングデバイス122へのオーディオ入力として(センサー130を介して)入力し、データ処理システム102(または3Pデジタルコンテンツプロバイダデバイス134)からクライアントコンピューティングデバイス122に提供され、トランスデューサ126(たとえば、スピーカー)から出力され得るコンピュータ生成音声の形態のオーディオ出力を受け取るエンドユーザに関連付けられ得る。コンピュータ生成音声は、実際の人またはコンピュータによって生成される言語からの記録を含むことができる。
データ処理システム102は、たとえば、データパケットを使用して情報を送受信するように設計されるか、構成されるか、構築されるか、または動作可能であるインターフェース104を備えることができる。インターフェース104は、ネットワークプロトコルなどの、1つまたは複数のプロトコルを使用して情報を送受信することができる。インターフェース104は、ハードウェアインターフェース、ソフトウェアインターフェース、有線インターフェース、またはワイヤレスインターフェースを含むことができる。インターフェース104は、一方のフォーマットから別のフォーマットに変換するか、またはフォーマットすることを円滑にすることができる。たとえば、インターフェース104は、ソフトウェアコンポーネントなどの、様々なコンポーネントの間の通信に対する定義を含むアプリケーションプログラミングインターフェースを含むことができる。インターフェース104は、デジタルアシスタントコンポーネント106、アプリケーション110、およびデータリポジトリ108の間など、システム100の1つまたは複数のコンポーネントの間の通信を円滑にすることができる。
データ処理システム102は、ローカルデジタルアシスタントコンポーネント106を備えることができる。ローカルデジタルアシスタントコンポーネント106は、クライアントコンピューティングデバイス122にインストールされているアプリケーション、スクリプト、またはプログラムを含むことができる。ローカルデジタルアシスタントコンポーネント106は、入力信号、データパケット、または他の情報を受信することができる。ローカルデジタルアシスタントコンポーネント106は、インターフェース104を介してデータパケットまたは他の入力を受信することができる。ローカルデジタルアシスタント106は、データ処理システム102のインターフェース104から入力オーディオ信号を受信し、クライアントコンピューティングデバイスのコンポーネントを、出力オーディオ信号をレンダリングするように駆動するためのアプリケーションを含むことができる。データ処理システム102は、データパケットまたはオーディオ入力信号を含むか、もしくは識別する他の信号を受信することができる。たとえば、ローカルデジタルアシスタントコンポーネント106は、オーディオ信号を受信するか、または取得し、オーディオ信号を解析することができるNLP技術、機能性、またはコンポーネントとともに構成され得る。デジタルアシスタントコンポーネント106は、人間とコンピュータとの間のインタラクションを取り持つことができる。デジタルアシスタントコンポーネント106は、自然言語を理解し、人間または自然言語入力から意味を導出することをデータ処理システム102に行わせるための技術とともに構成され得る。デジタルアシスタントコンポーネント106は、統計的機械学習などの、機械学習に基づく技術を含むか、またはその技術とともに構成され得る。デジタルアシスタントコンポーネント106は、決定木、統計モデル、または確率的モデルを利用して、入力オーディオ信号を解析することができる。デジタルアシスタントコンポーネント106は、たとえば、名前付きエンティティ認識(たとえば、テキストのストリームが与えられた場合に、人々または場所などのテキスト内のどのアイテムが適切な名前にマッピングされるか、および人、場所、または組織などの、そのような各名前の種類がどのようなものであるかを決定する)、自然言語生成(た
とえば、コンピュータデータベースからの情報または意味論的意図を理解可能な人間言語に変換する)、自然言語理解(たとえば、テキストをコンピュータモジュールが操作することができる一階論理構造などのより形式的な言語に変換する)、機械翻訳(たとえば、テキストを一方の人間言語から他方の人間言語に自動的に翻訳する)、形態論的分割(たとえば、単語を個別の形態素に分離し、形態素のクラスを識別するが、これは考察されている言語の単語の形態または構造の複雑度に基づき困難な場合があり得る)、質問回答(たとえば、人間言語質問への回答を決定する、これは限定的である場合も限定的でない場合もある)、意味処理(たとえば、単語を識別し、その意味を符号化し、識別された単語を類似の意味を有する他の単語に関係付けた後に行われ得る処理)などの機能を実行することができる。
デジタルアシスタントコンポーネント106は、(たとえば、NLP技術、機能性、またはコンポーネントを利用して)入力信号を記憶されている、代表的な一組のオーディオ波形と比較し、最近一致を選択することによってオーディオ入力信号を認識されたテキストに変換することができる。一組のオーディオ波形は、データ処理システム102にアクセス可能なデータリポジトリ108または他のデータベースに記憶され得る。代表的な波形は、大きいユーザ群について生成されるものとしてよく、次いで、ユーザの話し声サンプルで強化され得る。オーディオ信号が認識されたテキストに変換された後に、デジタルアシスタントコンポーネント106は、テキストを、たとえば、ユーザ間で訓練済みのデータリポジトリ108に記憶されているモデルを使用することを介して、または手動指定を通じて、データ処理システム102が果たすことができるアクションと関連付けられている単語にマッチングすることができる。
オーディオ入力信号は、クライアントコンピューティングデバイス122のセンサー130またはトランスデューサ126(たとえば、マイクロフォン)によって検出され得る。トランスデューサ126、オーディオドライバ132、または他のコンポーネントを介して、クライアントコンピューティングデバイス122は、オーディオ入力信号をデータ処理システム102に送ることができ、これは(たとえば、インターフェース104によって)受信され、ローカルデジタルアシスタント106に送られるか、またはデータリポジトリ108内に記憶され得る。
デジタルアシスタントコンポーネント106は、入力オーディオ信号を取得することができる。デジタルアシスタントコンポーネント106は、入力オーディオ信号から、少なくとも1つの要求または要求に対応する少なくとも1つのトリガーキーワードを識別することができる。要求は、入力オーディオ信号の意図または主題を指示することができる。トリガーキーワードは、行われる可能性の高いアクションの種類を指示することができる。たとえば、デジタルアシスタントコンポーネント106は、入力オーディオ信号を解析して、アプリケーションを呼び出す少なくとも1つの要求を識別することができる。デジタルアシスタントコンポーネント106は、入力オーディオ信号を解析して、ディナーおよび映画に出席するため夕方に家を出る要求などの、少なくとも1つの要求を識別することができる。キーワードは、少なくとも1つの単語、フレーズ、語幹もしくは部分単語、または行われるべきアクションを指示する派生語を含み得る。たとえば、入力オーディオ信号からのキーワード「go」または「to go to」は、輸送の必要性を指示し得る。この例では、入力オーディオ信号(または識別された要求)は、輸送の意図を直接表すことはないが、キーワードは、輸送が、要求によって指示される少なくとも1つの他のアクションの補助アクションであることを指示する。
デジタルアシスタントコンポーネント106は、入力オーディオ信号を解析して、要求およびキーワードを識別するか、決定するか、取り出すか、または他の何らかの形で取得することができる。たとえば、デジタルアシスタントコンポーネント106は、意味処理技術を入力オーディオ信号に適用して、キーワードまたは要求を識別することができる。デジタルアシスタントコンポーネント106は、意味処理技術を入力オーディオ信号に適用して、1つまたは複数のキーワードを識別することができる。キーワードは、1つもしくは複数の検索語またはフレーズを含むことができる。デジタルアシスタントコンポーネント106は、意味処理技術を適用して、デジタルアクションを実行する意図を識別することができる。
たとえば、コンピューティングデバイス122は、クライアントコンピューティングデバイス122のセンサー130(たとえば、マイクロフォン)によって検出された入力オーディオ信号を受信することができる。入力オーディオ信号は、「Digital assistant, I need someone to do my laundry and my dry cleaning (デジタルアシスタント、誰かに洗濯とドライクリーニングを頼みたい)」とすることができる。クライアントコンピューティングデバイス122のプリプロセッサ124は、「Digital assistant」などの、入力オーディオ信号中のウェイクアップワード、ホットワード、またはトリガーキーワードを検出することができる。プリプロセッサ124は、入力オーディオ信号中のオーディオシグネチャまたは波形を、トリガーキーワードに対応するモデルオーディオシグネチャまたは波形と比較することによってウェイクアップワード、ホットワード、またはトリガーキーワードを検出することができる。プリプロセッサ124は、入力オーディオ信号が、入力オーディオ信号がデジタルアシスタントコンポーネント106によって処理されるべきであることを示すウェイクアップワード、ホットワード、またはトリガーキーワードを含むと決定することができる。ホットワード、ウェイクアップワード、またはトリガーキーワードを検出したことに応答して、プリプロセッサ124は、デジタルアシスタントコンポーネント106による処理のために、検出された入力オーディオ信号を決定するか、認可するか、データ処理システム102に対して経路指定するか、データ処理システム102に転送するか、またはデータ処理システム102に他の何らかの形で提供することができる。
デジタルアシスタントコンポーネント106は、入力オーディオ信号を受け取り、意味処理技術、または他の自然言語処理技術を、文を含む入力オーディオ信号に適用して、「do my laundry」および「do my dry cleaning」というトリガーフレーズを識別することができる。いくつかの場合において、デジタルアシスタントコンポーネント106は、入力オーディオ信号に対応するデータパケットをリモートデータ処理システム136に提供して、デジタルアシスタントサーバ138に入力オーディオ信号を処理させることができる。デジタルアシスタントコンポーネント106は、デジタルアシスタントサーバ138と連動して、またはデジタルアシスタントサーバ138を介して、入力オーディオ信号を処理することができる。デジタルアシスタントコンポーネント106は、laundryおよびdry cleaningなどの、複数のキーワードをさらに識別することができる。
デジタルアシスタントコンポーネント106は、情報に対する検索または他の要求を実行することに対応する検索クエリ、キーワード、意図、またはフレーズを識別することができる。デジタルアシスタントコンポーネント106は、入力オーディオ信号が、トピック、イベント、現在のイベント、ニュースイベント、辞書定義、歴史的イベント、人、場所、または物に関する情報に対する要求に対応していると決定することができる。たとえば、デジタルアシスタントコンポーネント106は、入力オーディオ信号が、旅行の手配、乗り物の予約、情報の取得、ウェブ検索の実行、株価のチェック、アプリケーションの起動、ニュースの確認、食品の注文、または他の製品、商品もしくはサービスに対するショッピングを行うための問い合わせ、要求、意図、またはアクションに対応していると決定することができる。
デジタルアシスタントコンポーネント106は、1つまたは複数の技術を使用して、入力オーディオ信号を解析するか、または処理することができる。技術は、ルールベースの技術または統計的技術を含むことができる。技術は、機械学習またはディープラーニングを利用することができる。例示的な技術は、名前付きエンティティ認識、センチメント分析、テキスト要約、アスペクトマイニング、またはトピックマイニングを含むことができる。技術は、テキスト埋め込み(たとえば、文字列の実数値ベクトル表現)、機械翻訳(たとえば、言語分析および言語生成)、または対話および会話(たとえば、人工知能によって使用されるモデル)を含むか、またはそれらに基づくことができる。技術は、レンマ化、形態学的セグメンテーション、分かち書き、品詞タグ付け、構文解析、短文分割、語幹抽出などの、構文解析技術(たとえば、文法に基づく文中の単語の配置構成)を含むか、決定するか、または活用することができる。技術は、名前付きエンティティ認識(たとえば、アプリケーション110、人、または場所の名前などの存在するグループに識別され、分類され得るテキストの部分を決定すること)、多義性解消、または自然言語生成などの意味論的技術を含むか、決定するか、または活用することができる。
いくつかの場合において、デジタルアシスタントコンポーネント106は、アプリケーション110を起動することができる。いくつかの場合において、アプリケーション110は、デジタルアシスタントコンポーネント106が入力オーディオ信号を受信する前にすでに起動されていてもよい。たとえば、入力オーディオ信号を処理することまたは解析することに基づき、デジタルアシスタントコンポーネント106は、呼び出すか、起動するか、開くか、または他の何らかの形でアクティベートするアプリケーション110を識別することができる。デジタルアシスタントコンポーネント106は、検索語、キーワード、トリガーキーワード、またはフレーズを識別するために入力オーディオ信号を解析することに基づきアプリケーション110を識別することができる。デジタルアシスタントコンポーネント106は、識別された検索語、キーワード、トリガーキーワード、またはフレーズを使用して、データリポジトリ108においてルックアップを実行し、アプリケーション110を識別することができる。いくつかの場合において、キーワードは、「Application_Name_A」または「Application_Name_B」などのアプリケーション110の識別子を含むことができる。いくつかの場合において、キーワードは、ライドシェアアプリケーション、レストラン予約アプリケーション、映画チケットアプリケーション、ニュースアプリケーション、天気アプリケーション、ナビゲーションアプリケーション、ストリーミング音楽アプリケーション、ストリーミングビデオアプリケーション、レストランレビューアプリケーション、またはアプリケーション110の他のタイプもしくはカテゴリなどの、アプリケーション110のタイプまたはカテゴリを示すことができる。アプリケーション110が入力オーディオ信号を受信する前にすでに起動され実行されている可能性がある場合、デジタルアシスタントコンポーネント106は、入力オーディオ信号を処理して、アプリケーション110において、またはアプリケーション110によってレンダリングされる電子リソース112を介して提示されるコールトゥアクションに応答して、実行すべきアクションを決定することができる。
クライアントコンピューティングデバイス122は、アプリケーション110を実行することができる。データ処理システム102は、アプリケーション110を実行することができる。データ処理システム102は、クライアントコンピューティングデバイス122がアプリケーション110を実行する際に介在し得るオペレーティングシステムを含むか、または実行することができる。アプリケーション110は、クライアントコンピューティングデバイス122が実行するか、稼動させるか、起動するか、または他の何らかの形で提供するように構成される任意のタイプのアプリケーションを含むことができる。アプリケーション110は、マルチメディアアプリケーション、音楽プレーヤー、ビデオプレーヤー、ウェブブラウザ、ワードプロセッサ、モバイルアプリケーション、デスクトップアプリケーション、タブレットアプリケーション、電子ゲーム、電子商取引アプリケーション、または他のタイプのアプリケーション110を含むことができる。アプリケーション110は、電子リソース112に対応するデータを実行するか、レンダリングするか、ロードするか、解析するか、処理するか、提示するか、または他の何らかの形で出力することができる。電子リソース112は、たとえば、ウェブサイト、ウェブページ、マルチメディアウェブコンテンツ、ビデオコンテンツ、オーディオコンテンツ、旅行コンテンツ、娯楽コンテンツ、商品もしくはサービスのショッピングに関係するコンテンツ、または他のコンテンツを含むことができる。
アプリケーション110は、サードパーティ(「3P」)電子リソースサーバ142から電子リソース112に関連付けられているデータを受け取ることができる。3P電子リソースサーバ142は、アプリケーション110による実行のために電子リソース112を提供することができる。3P電子リソースサーバ142は、ファイルサーバ、ウェブサーバ、ゲームサーバ、マルチメディアサーバ、クラウドコンピューティング環境、またはコンピューティングデバイス122を介して電子リソース112を提示するか、または提供することをアプリケーション110に行わせるためのデータを提供するように構成されている他のバックエンドコンピューティングシステムを含むことができる。コンピューティングデバイス122は、ネットワーク105を介して3P電子リソースサーバ142にアクセスすることができる。
3P電子リソースサーバ142の管理者は、電子リソース112を開発するか、確立するか、保守するか、または提供することができる。3P電子リソースサーバ142は、電子リソース112に対する要求に応答して電子リソース112をコンピューティングデバイス122に伝送することができる。電子リソース112は、ユニフォームリソースロケータ(「URL」)、ユニフォームリソース識別子、ウェブアドレス、もしくはファイル名、またはファイルパスなどの識別子に関連付けられ得る。3P電子リソースサーバ142は、アプリケーション110から電子リソース112に対する要求を受け取ることができる。電子リソース112は、電子ドキュメント、ウェブページ、マルチメディアコンテンツ、ストリーミングコンテンツ、オーディオ、ビデオ、テキスト、画像、ビデオゲーム、または他のデジタルもしくは電子コンテンツを含むことができる。
3P電子リソースサーバ142の管理者は、スクリプトライブラリ114を提供することができる。3P電子リソースサーバ142は、スクリプトライブラリ114を電子リソース112内に埋め込むことができる。スクリプトライブラリ114は、JavaScriptライブラリを含むことができる。スクリプトライブラリ114は、リモートデータ処理システム136と通信して、電子リソース112にデジタルアシスタントベースの機能性を提供するように構成され得る。スクリプトライブラリ114は、電子リソース112上のユーザインターフェース要素(たとえば、ボタン、フォーム、オートコンプリート提案)を提供することができる。
データ処理システム102は、電子リソースのプロバイダによって確立された電子リソース112上の配置でスクリプトライブラリ114に対応するグラフィカルユーザインターフェース要素をロードすることができる。スクリプトライブラリ114は、電子リソース112上のインラインフレーム(「iframe」)内で起動され得る。電子リソース112上のiframeで起動するかまたは実行することによって、データ処理システム102は、スクリプトライブラリ114、または対応するユーザインターフェース要素を、セキュアコンピューティング環境においてホストすることができる。コンピューティング環境は、電子リソースまたは3P電子リソースサーバ142に関して安全であり得る。たとえば、スクリプトライブラリ114が実行されるiframeは、iframeのコンテンツまたはデータへのアクセスを制御するか、または妨げることができる。iframeは、電子リソース112または3P電子リソースサーバ142が、スクリプトライブラリ114に関連付けられているコンテンツまたはデータにアクセスすることを防ぐことができる。iframe内で実行されるスクリプトライブラリ114は、電子リソース112(または3P電子リソースサーバ142)がデータへのアクセスを取得することなくデジタルアシスタントサーバ138と通信してデータを伝送することができる。スクリプトライブラリ114は、データ処理システム102、データ処理システム102にログインしたアカウント、コンピューティングデバイス122、または他の情報に関連付けられているデータもしくは情報を取得することができる。
電子リソース112の管理者は、ハイパーテキストマークアップ言語(「HTML」)マークアップを電子リソース112に配置することができる。電子リソース112は、HTMLマークアップを含むことができる。電子リソース112上のHTMLマークアップは、スクリプトライブラリが電子リソース112上にユーザインターフェース要素を表示する方式に対する記述または構成設定を含むことができる。次の段には、電子リソース112のHTMLマークアップの一例を例示する。
<digital-assistant-action-link-group>
<digital-assistant-action-link
title = "Market updates"
href = "https://assistant.digital.com/services/invoke/uid/000000d139bbc4d4" >
</digital-assistant-action-link>
<digital-assistant-action-link
title = "What's my balance?"
href = "https://assistant.digital.com/services/invoke/uid/000000d139bbc4d4" >
</digital-assistant-action-link>
</digital-assistant-action-link-group>
カスタマイズされたウェブ要素<digital-assistant-action-link-group>は、3P電子リソースサーバ142が電子リソース112上に表示できるようにするコールトゥアクションを保持する、コンテナとして動作し得る。コンテナ内の各<digital-assistant-action-link>は、電子リソース112上に表示されるべき単一のコールトゥアクションを表すことができる。3Pは、アイコン、プロジェクト識別子、または属性など、ページ上のコールトゥアクションのための追加の構成を指定することができる。たとえば、属性は、ハイパーテキスト参照(「href」)であり、タイプ「string」を有することができる。href属性は、ネイティブデジタルアシスタントエクスペリエンスにリンクするためのアクションリンクユニフォームリソースロケータ「URL」を含むことができる。URLは、選択されたアクションユーザインターフェースをレンダリングする前に検証され得る。データ処理システム102は、無効なアクションリンクをブロックすることができるか、またはレンダリングできない。アクションリンクを検証するために、データ処理システム102またはリモートデータ処理システム136は、1)ロードされたスクリプトライブラリ114のサフィックスがアクションリンクのURLサフィックスと一致するかどうかを決定し、2)ロードされたスクリプトライブラリ114がアクションリンクの意図に対するアクションを有することを決定し、3)ロードされたスクリプトライブラリ114がアクションリンクの意図に対して有効化されたリンクを有しているかどうかを決定することができる。
別の例示的な属性は、「title」を含むことができ、タイプ「string」を有することができる。title属性は、タイトルを表示するか、または提供することができる。タイトルは、アクションリンクのintent_titleと同じであり得るか、または電子リソース112の管理者によって設定された異なるタイトルであってもよい。
ウェブブラウザなどのアプリケーション110は、電子リソース112をロードすることができる。電子リソース112をロードすることは、3P電子リソースサーバ142または他のファイルサーバまたはウェブサーバまたはホストサーバから電子リソース112のデータもしくはコンテンツをダウンロードすることを含むことができる。電子リソース112をロードすることは、アプリケーション110が電子リソース112をレンダリングするかまたは実行することを含むことができる。電子リソース112をロードすることは、アプリケーション110が、電子リソース112とともに埋め込まれているスクリプトライブラリ114をロードすることを含むことができる。スクリプトライブラリは、1つまたは複数のデジタルアシスタントによる実行のために構成された電子リソース112に対する複数のコールトゥアクションを含むことができる。コールトゥアクションは、ローカルデジタルアシスタントコンポーネント106またはデジタルアシスタントサーバ138によって実行されるように構成され得る。コールトゥアクションは、ローカルデジタルアシスタントコンポーネント106およびデジタルアシスタントサーバ138の両方によって実行され得る。たとえば、ローカルデジタルアシスタントコンポーネント106およびデジタルアシスタントサーバ138は互いに通信して、コールトゥアクションを実行するか、またはコールトゥアクションの異なる部分を実行することができる。
コンピューティングデバイス122、またはデータ処理システム102は、複数のコンピューティングデバイス122によって実行される複数のデジタルアシスタントに関連付けられるか、またはリンクされ得る。デジタルアシスタントは、同じアカウント識別子に関連付けられるか、またはリンクされ得る。たとえば、ユーザは、ユーザ名およびパスワード、または他の資格情報でデータ処理システム102にログインすることができる。データ処理システム102は、デジタルアシスタントコンポーネントを利用するユーザを認証し、認可することができる。アカウントは、スマートフォン、ラップトップコンピュータ、タブレットコンピュータ、スマートウォッチ、およびデスクトップコンピュータなどの複数のコンピューティングデバイス122と関連付けることができる。コンピューティングデバイス122の各々は、デジタルアシスタントサーバ138とインターフェースすることができるローカルデジタルアシスタントコンポーネント106を備えることができる。したがって、スクリプトライブラリは、コンピューティングデバイス122のユーザの同じアカウント識別子にリンクされるか、または関連付けられている1つまたは複数のコンピューティングデバイス122によって実行される1つまたは複数のローカルデジタルアシスタントコンポーネント106に対応する1つまたは複数のデジタルアシスタントによって実行され得るコールトゥアクションとともに構成され得る。
電子リソース112をロードした後、アプリケーション110は、スクリプトライブラリ114を電子リソース112のセキュアiframe内にロードさせることができる。スクリプトライブラリ114は、動的通知機能コンポーネント116、およびデジタルアシスタントセレクタコンポーネント120などの、1つまたは複数のコンポーネントを起動するか、呼び出すか、開始するか、実行するか、呼ぶか、または他の何らかの形で提供することができる。スクリプトライブラリ114のコンポーネントは、データ処理システム102またはリモートデータ処理システム136の1つまたは複数のコンポーネントまたは要素と、3P電子リソースサーバ142が通信で伝達されたデータを取得しないなどの、安全な方式で通信することができる。スクリプトライブラリは、サードパーティサービスプロバイダ(たとえば、3P電子リソースサーバ142)によって、サードパーティサービスプロバイダによって選択されたコールトゥアクションの所定のセットを含むコールトゥアクションで確立され得る。3P電子リソースサーバ142の管理者は、電子リソース112のコールトゥアクションを確立し、コールトゥアクションをスクリプトライブラリ114に埋め込むことができる。各コールトゥアクションは、コールトゥアクションがどのようなタスクであるか、またはいつ、もしくはどのような条件でコールトゥアクションを呼び出すか、または提示するかを示す属性またはメタデータと関連付けることができる。スクリプトライブラリ114は、プロセス200および300などの図2および図3に描かれている1つもしくは複数の機能、プロセス、または方法を実行するように設計され、構成され、および動作可能であるものとしてよい。
動的通知機能コンポーネント116は、コンピューティングデバイス122と1つまたは複数のデジタルアシスタントとの間のエンゲージメントの過去のレベルを決定するためにデジタルアシスタントコンポーネント106に問い合わせるように設計され、構築され、および動作可能であり得る。動的通知機能コンポーネント116は、デジタルアシスタントと、コンピューティングデバイス122に関連付けられているアカウントとの間のエンゲージメントの過去のレベルを決定することができる。アカウントは、複数のコンピューティングデバイスと関連付けられ得る。いくつかの場合において、エンゲージメントの過去のレベルは、同じアカウントに関連付けられているすべてのコンピューティングデバイス122上のデジタルアシスタントとのエンゲージメントに基づくことができる。いくつかの場合において、エンゲージメントの過去のレベルは、スクリプトライブラリ114をロードしたコンピューティングデバイス122に関連付けられているデジタルアシスタントとのエンゲージメントに基づくことができる。
動的通知機能コンポーネント116は、提示すべきコールトゥアクションを決定し、次いで、コールトゥアクションを提示すべきデジタルインターフェースのタイプを選択することができる。コールトゥアクションを選択するために、動的通知機能コンポーネント116は、電子リソース112の現在のコンテキストまたは状態を決定することができる。たとえば、状態またはコンテキストは、検索状態、購入状態、チェックアウトフロー、または情報収集フローを指すか、または含み得る。コンテキストは、たとえば、ユーザがフライトを検索していること、または所望の価格、時間、もしくは持続時間を有するフライトを識別することができなかったことを示すことができる。電子リソース112は、コンテキスト情報を取得するためのサーベイまたはプロンプトを提示することができる。動的通知機能コンポーネント116は、電子リソース112の現在のコンテキストまたは状態に関連付けられているコールトゥアクションを識別することができる。
生成すべきインターフェースのタイプを選択するために、動的通知機能コンポーネント116は、エンゲージメントの過去のレベルを決定することができる。過去のレベルのエンゲージメントは、エンゲージメントの以前のレベルを指すことができる。エンゲージメントの過去のレベルは、現在の時刻より前のエンゲージメントのレベルを指すものとしてよい。エンゲージメントの過去のレベルは、最近24時間、48時間、72時間、1週間、2週間、3週間、4週間、30日、60日、90日、6カ月、またはそれ以上の期間におけるエンゲージメントのレベルを指すことができる。
データ処理システム102は(たとえば、動的通知機能コンポーネント116を介して)、データ処理システム102から遠隔にあるデジタルアシスタントサーバ138からネットワーク105を介して、エンゲージメントの過去のレベルに関する情報を受け取ることができる。動的通知機能コンポーネント116は、デジタルアシスタントの使用量に基づきエンゲージメントのレベルを決定することができる。エンゲージメントのレベルは、デジタルアシスタントの使用回数、デジタルアシスタントとのインタラクション回数、またはデジタルアシスタントが起動されるか、または呼び出された回数に基づくことができる。エンゲージメントのレベルは、デジタルアシスタントとのインタラクションのタイプに基づくことができる。インタラクションのタイプは、たとえば、デジタルアシスタントによって実行されるタスクのカテゴリもしくはタイプ、問い合わせのタイプ、要求のタイプ、またはコールトゥアクションのタイプを含むことができる。タスクまたはコールトゥアクションのタイプの例は、アプリケーションを起動すること、オンライン検索を実行すること、購入を行うこと、サービスを発注すること、ライドシェアの要求、天気をチェックすること、またはタスクの他のタイプを含むことができる。タスクまたはコールトゥアクションのカテゴリは、たとえば、情報の要求、娯楽タスク、購入、商取引、ライドシェア要求、またはマルチメディア要求を含むことができる。動的通知機能コンポーネント116は、一定の時間間隔(たとえば、最近24時間、48時間、7日、または30日)における複数のクライアントコンピューティングデバイス間の以前のインタラクションの数に基づきエンゲージメントの過去のレベルを決定することができる。
動的通知機能コンポーネント116は、特定のカテゴリまたはタスクに対するエンゲージメントのレベルを決定することができる。エンゲージメントのレベルは、特定の電子リソース112またはアプリケーション110について決定され得る。エンゲージメントのレベルは、特定の時刻、曜日、またはコンピューティングデバイス122の配置について決定され得る。エンゲージメントのレベルは、コンピューティングデバイス122にログインしている特定のアカウントについて決定され得る。エンゲージメントのレベルは、コンピューティングデバイス122の特定のユーザについて決定され得る。
動的通知機能コンポーネント116は、エンゲージメントのレベルをスコア、値、パーセンテージ、または他のラベルとして決定することができる。たとえば、動的通知機能コンポーネント116は、エンゲージメントのレベルを低、中、または高のうちの1つとして決定することができる。動的通知機能コンポーネント116は、スコアのレベルを表すために数値またはスコアを決定することができる。たとえば、動的通知機能コンポーネント116は、エンゲージメントのレベルを表すために1から10までの尺度を使用することができ、1がエンゲージメントの最も低いレベルであり、10がエンゲージメントの最も高いレベルである。別の例では、動的通知機能コンポーネント116は、A、B、C、D、またはFなどのグレードとしてエンゲージメントのレベルを表すことができ、Aはエンゲージメントの最高レベルであり、Fはエンゲージメントの最低レベルである。動的通知機能コンポーネント116は、エンゲージメントのレベルを表すために2進値を使用することができ、1は以前の時間間隔(たとえば、最近1週間)の間にアカウントとデジタルアシスタントとの間の過去のエンゲージメントがあったことを示し、0はアカウントとデジタルアシスタントとの間のエンゲージメントがなかったこと、またはアカウントが最近作成されたことを示す。
エンゲージメントのレベルは、複数のファクターに基づくことができる。複数のファクターは、エンゲージメントの全体的なレベルを決定するために組み合わされ得る。ファクターは、たとえば、エンゲージメントのタイプ、エンゲージメントのカテゴリ、または過去のエンゲージメントの他の態様を含むことができる。たとえば、動的通知機能コンポーネント116は、複数のエンゲージメントファクターに対する値を割り当て、次いで、値を組み合わせて(たとえば、合計、積、平均、または加重平均)総合スコアを決定することができる。たとえば、過去1週間のエンゲージメントの数+同じ電子リソース112とのエンゲージメントの数+同じカテゴリの電子リソース112とのエンゲージメントの数+同じコンピューティングデバイス122上のエンゲージメント数である。動的通知機能コンポーネント116は、これらのファクターに基づき総合スコアを決定することができる。動的通知機能コンポーネント116は、スコアを閾値と比較して、エンゲージメントのレベルが低いかもしくは高いかを決定するか、またはスコアをエンゲージメントの低レベル、中低レベル、中レベル、中高レベル、もしくは高レベルなどの粒度のより細かいレベルにマッピングすることができる。閾値は、リモートデータ処理システム136の管理者によって予め決定され得るか、または構成され得る。閾値は、他のアカウントのエンゲージメントの総計されたレベルに基づき動的に決定され得る。
たとえば、電子リソース112は、航空券の購入を対象とするウェブサイトとすることができる。動的通知機能コンポーネント116は、過去30日以内にこの電子リソース112で航空券を購入することを円滑にするためにデジタルアシスタントが使用されたと決定することができる。したがって、動的通知機能コンポーネント116は、このアカウントおよびこの電子リソース112に対するエンゲージメントのレベルが高いと決定することができる。
エンゲージメントの過去のレベルを決定するために、動的通知機能コンポーネント116は、ネットワーク105を介してデジタルアシスタントサーバ138と通信することができる。動的通知機能コンポーネント116は、コンピューティングデバイス122にログインしたアカウントとデジタルアシスタントとの間のエンゲージメントの過去のレベルに関する情報をデジタルアシスタントサーバ138から取得する要求または問い合わせをデジタルアシスタントサーバ138に伝送することができる。いくつかの場合において、動的通知機能コンポーネント116は、ローカルデジタルアシスタントコンポーネント106からその情報を取得することができる。たとえば、動的通知機能コンポーネント116は、エンゲージメントのレベルを決定するために、ローカルデジタルアシスタントコンポーネント106に問い合わせるか、または他の何らかの形で通信することができる。ローカルデジタルアシスタントコンポーネント106は、デジタルアシスタントコンポーネント106または同じアカウントに関連付けられている他のコンピューティングデバイス上のデジタルアシスタント106の過去の、または以前の、エンゲージメント、インタラクション、使用、呼び出し、または使用に関係する情報を記憶することができる。
動的通知機能コンポーネント116は、セキュアな方式でエンゲージメントの過去のレベルに関係する情報にアクセスすることができる。たとえば、スクリプトライブラリ114は、電子リソース112が動的通知機能コンポーネント116によって取得または使用されるデータにアクセスすることを防止するセキュアコンピューティング環境またはサンドボックスコンピューティング環境となり得るiframe内で起動され得る。したがって、動的通知機能コンポーネント116は、電子リソース112が情報を取得することなくこのアカウントに対するエンゲージメントの過去のレベルを決定することができる。
動的通知機能コンポーネント116は、コンピューティングデバイス122(たとえば、クライアントコンピューティングデバイス)のプロパティを決定することができる。コンピューティングデバイス122のプロパティは、コンピューティングデバイスのタイプ、コンピューティングデバイスの配置、コンピューティングデバイスの構成、コンピューティングデバイス上にインストールされたアプリケーション、コンピューティングデバイスのオペレーティングシステム、バッテリ残量、実行能力、または利用可能なインターフェースを指すか、または含むことができる。たとえば、デバイスのタイプに関係するプロパティは、モバイルデバイスまたはデスクトップデバイス、スマートフォン、タブレット、デスクトップ、スマートウォッチ、ウェアラブルデバイス、スマートスピーカー、スマートテレビ、または家電製品を含むことができる。コンピューティングデバイス122のプロパティは、コンピューティングデバイス122がネイティブデジタルアシスタント、マイクロフォン、またはスピーカーを有するかどうかを示すことができる。ネイティブデジタルアシスタントは、コンピューティングデバイス122上にインストールされるか、または実行されるオペレーティングシステムに統合されているか、または一部であるローカルデジタルアシスタントコンポーネント106を指すものとしてよい。ネイティブデジタルアシスタントを有しないコンピューティングデバイス122は、コンピューティングデバイス122上にサードパーティアプリケーションとしてインストールされているデジタルアシスタントコンポーネントを有することができる。いくつかの場合において、コンピューティングデバイス122は、いかなるデジタルアシスタントもインストールされていない可能性があり、その場合、プロパティ値は、いかなるデジタルアシスタントもインストールされていないか、または利用可能でないことを示すことができる。プロパティは、電子リソースに関連付けられているアカウントがログインしたかどうかの情報を含むことができる。
動的通知機能コンポーネント116は、デバイスプロパティを決定することができる。動的通知機能コンポーネント116は、リモートデータ処理システム136からデバイスプロパティを取得することができる。たとえば、リモートデータ処理システム136は、デバイスプロパティをデータ処理システム102に伝送することができる。いくつかの場合において、データ処理システム102は、コンピューティングデバイス122から直接的にデバイスプロパティを取得することができる。プロパティは、たとえば、アカウント識別子、デバイスオペレーティングシステムタイプ、デバイスオペレーティングシステムバージョン、またはデバイス配置を含むことができる。
動的通知機能コンポーネント116は、スクリプトライブラリ114に含まれるコールトゥアクションのコールトゥアクションを提示するデジタルインターフェースのタイプを選択することができる。動的通知機能コンポーネント116は、コンピューティングデバイス122のプロパティおよびエンゲージメントの過去のレベルに基づき、デジタルインターフェースのタイプを選択することができる。コールトゥアクションは、デジタルアシスタントが実行することができる電子リソース112に関連付けられているタスクに対応することができる。例示的なタスクは、たとえば、ライドシェアアプリケーションからの乗車をオーダーすること、旅行電子リソースでフライトを予約すること、商取引電子リソースから商品もしくはサービスを購入すること、電子リソース上のフォローオンまたは反復タスク、または金融取引を実施することを含むことができる。
コールトゥアクションを提示するデジタルインターフェースのタイプは、コンピューティングデバイス122の電子リソースまたは表示デバイスの隅に配置されるアイコン、バナー、ポップアップウィンドウ、オーバーレイ、アニメーションアイコン、スクロールテキスト、点滅アイコン、インラインテキストもしくは画像、またはオーディオ出力を含むことができる。デジタルインターフェースのタイプは、目立つデジタルインターフェース(たとえば、電子リソース112全体または電子リソース112の領域の大部分を覆うオーバーレイ)、または微妙なもしくは目立たないデジタルインターフェース(たとえば、電子リソース112の右上隅にあり、電子リソースの残りの部分を難読化することのないアイコン)であるものとしてよい。
動的通知機能コンポーネント116は、クライアントコンピューティングデバイス122のプロパティおよびエンゲージメントの過去のレベルに基づきデジタルインターフェースのタイプを選択することができる。動的通知機能コンポーネント116は、様々な技術を使用して、1つまたは複数のプロパティおよびエンゲージメントの過去のレベルに基づきデジタルインターフェースを選択することができる。たとえば、動的通知機能コンポーネント116によって使用される選択技術は、アカウントプリファレンス、所定の構成、マッピング、デジタルインターフェースの過去のパフォーマンス、または機械学習のうちの1つまたは複数を使用するか、または含むことができる。
動的通知機能コンポーネント116は、デジタルインターフェースを選択するためにアカウントプレファレンスを使用することができる。アカウントプリファレンスは、コンピューティングデバイスのタイプに応じてデジタルインターフェースのプリファレンスを示すことができる。たとえば、コンピューティングデバイス122のユーザは、アカウントプリファレンスを確立することができる。アカウントプリファレンスは、コンピューティングデバイス122のタイプに対するデジタルインターフェースのタイプのプリファレンスのランキングを含むことができる。たとえば、スマートフォンのためのデジタルインターフェースのランキングは、1)画面の隅のアイコン、2)バナー、および3)電子リソース上のオーバーレイにあってよく、1は最高ランク(または最も好ましいタイプのデジタルインターフェース)を表し、3は最低ランク(または最も好ましくないタイプのデジタルインターフェース)を表す。動的通知機能コンポーネント116は、デジタルインターフェースのタイプを選択するために、このランキングをスマートフォンに関連付けられているエンゲージメントの過去のレベルで高くすることができる。たとえば、エンゲージメントの過去のレベルが高かった場合、動的通知機能コンポーネント116は、デジタルインターフェースの最高ランクのタイプを選択することができる。エンゲージメントの過去のレベルが低かった場合、動的通知機能コンポーネント116は、デジタルアシスタントとのエンゲージメントの可能性を高めるために異なるタイプのデジタルインターフェースを選択することを決定することができる。別の例では、デジタルアシスタントとのエンゲージメントの過去のレベルが高い場合、動的通知機能コンポーネント116は、デジタルアシスタントとのエンゲージメントの可能性を高めるようにより目立つデジタルインターフェースのタイプを選択するためにランキングを上書きすることができる。デジタルアシスタントとのエンゲージメントの可能性を高めることで、デジタルアシスタントがコンピューティングタスクのパフォーマンスの効率を高めることができるので、コンピューティングリソースの使用量を減らすことができる。
動的通知機能コンポーネント116は、所定のマッピングを利用してデジタルインターフェースのタイプを選択することができる。例示的なマッピングは、Table 1(表1)に例示されている。
動的通知機能コンポーネント116は、デジタルアシスタントサーバ138または3P電子リソースサーバ142の管理者によって提供されるマッピングを利用することができる。マッピングは、選択技術、ポリシー、またはロジックと称されることもある。動的通知機能コンポーネント116は、選択すべきデジタルインターフェースのタイプを識別するプロパティおよび過去のエンゲージメントのレベルを決定することができる。動的通知機能コンポーネント116は、そのプロパティおよびレベルを使用してマップ内のルックアップを実行して、デジタルインターフェースの対応するタイプを識別することができる。
動的通知機能コンポーネント116は、デジタルインターフェースの過去のパフォーマンスを使用して、選択すべきデジタルインターフェースを決定することができる。動的通知機能コンポーネント116は、デジタルインターフェースのパフォーマンスに関連付けられているプロパティおよび過去のエンゲージメントのレベルを取得することができる。デジタルインターフェースのパフォーマンスは、インターフェースが結果としてコールトゥアクションのインタラクションまたは実行を引き起こしたかどうかを指すものとしてよい。正のパフォーマンスは、デジタルアシスタントとのエンゲージメントを引き起こすためにコールトゥアクションを実行することを指すが、負のパフォーマンスは、コールトゥアクションを閉じるか、終了するか、もしくは他の何らかの形で実行しない、またはタスクを実行するためにデジタルアシスタントを呼び出さない、もしくは使用しないことを指すものとしてよい。動的通知機能コンポーネント116は、モデルの特徴が、1つまたは複数のプロパティ、エンゲージメントの過去のレベル、デジタルインターフェースのタイプ、およびデジタルインターフェースのパフォーマンス(たとえば、コールトゥアクションの実行もしくはコールトゥアクションの実行がないこと示す2進値)を含み得る機械学習技術によって訓練されたモデルを利用することができる。
動的通知機能コンポーネント116は、機械学習技術を使用して、デジタルインターフェースのタイプを選択することができる。1つもしくは複数のコンポーネントまたはシステムは、機械学習技術を使用してモデルを生成することができる。たとえば、リモートデータ処理システム136(たとえば、デジタルアシスタントサーバ138を介して)は、モデルを生成することができるか、ローカルデジタルアシスタントコンポーネント106は、モデルを生成することができるか、または動的通知機能コンポーネント116は、モデルを生成することができる。モデルを訓練するために使用されるデータは特定のアカウントに対するデータを使用する機械学習によって使用される。動的通知機能コンポーネント116は、アカウントに関連付けられているデータを使用して特定のアカウントに対するモデルを生成するか、または使用することができる。場合によっては、動的通知機能コンポーネント116は、複数のアカウントに関連付けられている非識別化データまたは匿名化データを集約して、モデルを訓練することができる。
動的通知機能コンポーネント116は、スコアを決定するためにエンゲージメントのプロパティまた過去のレベルに関連付けられているスコアもしくは値に重みを適用することができる。動的通知機能コンポーネント116は、スコアを使用して、デジタルインターフェースのタイプを選択することができる。たとえば、プロパティの有無は、数値として表すことができる。エンゲージメントの過去のレベルは、数値として表すことができる。動的通知機能コンポーネント116は、スコアに重み付けをすることができる(たとえば、スコアに乗数を適用する)。動的通知機能コンポーネント116は、スコア(または重み付けされたスコア)を組み合わせて、デジタルインターフェースを選択するために使用される全体的スコアを決定することができる。動的通知機能コンポーネント116は、スコアをデジタルインターフェースのタイプにマッピングすることができる。例示的なスコアベースのマッピングは、Table 2(表2)に例示されている。
したがって、動的通知機能コンポーネント116は、コンピューティングデバイス122、3P電子リソースサーバ142、またはリモートデータ処理システム136が電子リソース112に関連付けられているタスクまたは機能を実行できる計算効率を改善するために、コンピューティングデバイス122のプロパティおよびデジタルアシスタントとのエンゲージメントの過去のレベルに関連付けられているリアルタイム情報に基づき、デジタルインターフェースのタイプのカスタマイズされた動的選択を行うことができる。たとえば、データ処理システム102は(たとえば、動的通知機能コンポーネント116を介して)、クライアントコンピューティングデバイス122がマイクロフォンおよびスピーカーを備えることを示すクライアントコンピューティングデバイス122のプロパティ、および同じアカウントに関連付けられているクライアントコンピューティングデバイス122と1つまたは複数のデジタルアシスタントとの間のインタラクションの数が閾値(たとえば、7)よりも大きいことを示すエンゲージメントの過去のレベルに基づき、デジタルインターフェースのタイプを音声ベースのインターフェースとして選択することができる。
動的通知機能コンポーネント116は、コールトゥアクションでデジタルインターフェースを生成することができる。動的通知機能コンポーネント116は、クライアントコンピューティングデバイス122の第1のプロパティおよびエンゲージメントの過去のレベルに基づき選択されたデジタルインターフェースのタイプに基づきデジタルインターフェースを生成することができる。動的通知機能コンポーネント116は、この選択に応答してデジタルインターフェースを生成することができる。動的通知機能コンポーネント116は、テンプレート、画像、テキスト、スクリプト、関数、ユーザインターフェース要素、オーディオ、マルチメディア、または他のコンポーネントを使用するか、呼び出すか、書き込むか、または他の何らかの形で利用して、デジタルインターフェースを生成することができる。たとえば、動的通知機能コンポーネント116は、デジタルインターフェース用のテンプレートにアクセスし、電子リソース112に対して3P電子リソースサーバ142によって確立されたコールトゥアクションに基づきテンプレート内のフィールドにデータを書き込むことができる。別の例では、スクリプトライブラリ114は、デジタルインターフェースの各タイプについて事前構築された、または構成されたデジタルインターフェースを含むことができる。動的通知機能コンポーネント116は、コールトゥアクションに対するデジタルインターフェースの選択されたタイプに対応する事前構築された、または事前構成されたデジタルインターフェースをレンダリングすることができる。別の例では、動的通知機能コンポーネント116は、クライアントコンピューティングデバイス122にマイクロフォンがない(または1つもしくは複数のデジタルアシスタントによるクライアントコンピューティングデバイス122のマイクロフォンもしくはスピーカーへのアクセスが無効化されている)ことを示すクライアントコンピューティングデバイス122の第1のプロパティに基づきデジタルインターフェースのタイプをグラフィカルユーザインターフェースとして選択することができる。マイクロフォンへのアクセスが無効化されている場合、動的通知機能コンポーネント116は、タッチ入力、またはキーボードもしくはマウス入力などの非音声ベースの入力を受け取ることができるデジタルイン
ターフェースのタイプを選択することができる。
データ処理システム102は、コールトゥアクションを実行するための命令を検出することができる。命令は、クライアントコンピューティングデバイス122の入力デバイスを介して検出され得る。コンピューティングデバイス122は、タッチインターフェース、マウス入力、キーボード入力、音声入力、ジェスチャーベースの入力、または他のタイプの入力を介して、入力を受け取ることができる。入力は、インターフェースを介して提示されるボタンの選択、リンク、または他のインタラクティブウィジェットなどの、デジタルインターフェースとのインタラクションであり得る。したがって、データ処理システム102は、デジタルインターフェースを介して、コールトゥアクションを実行するための命令を検出することができる。
データ処理システム102またはスクリプトライブラリ114は、コールトゥアクションに対する実行モードを決定し、コールトゥアクションを実行するデジタルアシスタントを選択し、コールトゥアクションを伝送するように設計され、構築され、動作可能であるデジタルアシスタントセレクタコンポーネント120を含むか、または実行することができる。デジタルアシスタントセレクタコンポーネント120は、コールトゥアクションを実行する命令に応答して、クライアントコンピューティングデバイス122の1つまたは複数のプロパティおよびエンゲージメントの過去のレベルに基づきコールトゥアクションに対する実行モードを決定することができる。実行モードは、コンピューティングデバイス122上でネイティブデジタルアシスタントを実行すること、またはコンピューティングデバイス122上で非ネイティブデジタルアシスタントを実行することを指すか、または含むことができる。非ネイティブデジタルアシスタントは、オペレーティングシステムとともにプリインストールされていないデジタルアシスタントを指すか、または含むことができる。非ネイティブデジタルアシスタントは、コンピューティングデバイス122上でサードパーティアプリケーションとしてインストールされているデジタルアシスタントを指すことができる。
実行モードは、たとえば、コンピューティングデバイス122上にインストールされている非ネイティブデジタルアシスタントアプリケーションにナビゲートすることと、デジタルアシスタントをダウンロードし、インストールすることに対するプロンプトまたは指示で電子リソースにリダイレクトすることと、コンピューティングデバイス122上にインストールされているネイティブデジタルアシスタントにナビゲートすることと、ネイティブデジタルアシスタントにナビゲートしてコールトゥアクションを直ちに実行することと、コールトゥアクションを実行する方法を示すプロンプトでデジタルアシスタント電子リソースにナビゲートすることと、データ処理システム102を実行するコンピューティングデバイス122と同じアカウントにリンクされているデジタルアシスタントを有する他のコンピューティングデバイス122のリストを含むプロンプトを提供することと、他のコンピューティングデバイス122の1つを選択してデジタルアシスタントを起動し、コールトゥアクションを実行するプロンプトを提供することとを含むことができる。
データ処理システム102は、クライアントコンピューティングデバイスのオペレーティングシステムのタイプを示すクライアントコンピューティングデバイスの1つまたは複数のプロパティに基づきコールトゥアクションの実行モードを選択することができる。実行モードを選択するためにデータ処理システム102によって使用されるプロパティは、第2のプロパティまたは第2の1つまたは複数のプロパティと称され得るが、デジタルインターフェースを選択するために使用するプロパティは、第1のプロパティまたは第1の1つまたは複数のプロパティと称され得る。第1のプロパティは、第2のプロパティと同じであってよい。第1の1つまたは複数のプロパティは、第2の1つまたは複数のプロパティと重なり得る。第1のプロパティは、第2のプロパティとは異なっていてもよい。第1の1つまたは複数のプロパティは、第2の1つまたは複数のプロパティと相互に排他的であり得る。
実行モードを選択するために、デジタルアシスタントセレクタコンポーネント120は、動的通知機能コンポーネント116に類似する1つまたは複数の機能または技術を使用することができる。たとえば、デジタルアシスタントセレクタコンポーネント120は、マッピング技術、インデックス、機械学習技術、ロジックベースの技術、ルール、またはポリシーを利用することができる。
デジタルアシスタントセレクタコンポーネント120は、第2のプロパティおよびエンゲージメントの過去のレベルに基づき実行モードを選択することができる。デジタルアシスタントセレクタコンポーネント120は、第2のプロパティおよびエンゲージメントの過去のレベルによりマップまたはインデックスにおいてルックアップを実行し、実行モードの対応するものを識別することができる。デジタルアシスタントセレクタコンポーネント120は、機械学習モデルまたは機械学習技術により訓練されたモデルを使用して実行モードを決定することができる。モデルは、プロパティ、エンゲージメントの過去のレベル、異なる実行モード、およびデジタルアシスタントの過去のパフォーマンスまたは対応する実行モードによるアクションの実行などの特徴を含むことができる。
デジタルアシスタントセレクタコンポーネント120は、アカウントに関連付けられているプリファレンス、または3P電子リソースサーバ142、もしくはデジタルアシスタントサーバ138によって提供される構成に基づき実行モードを選択することができる。
デジタルアシスタントセレクタコンポーネント120は、実行モードに基づき、1つまたは複数のデジタルアシスタント、および複数のクライアントコンピューティングデバイスのうちの第2のクライアントデバイスから、コールトゥアクションを実行するデジタルアシスタントを選択することができる。たとえば、実行モードは、第2のコンピューティングデバイス122(たとえば、電子リソース112およびスクリプトライブラリ114を最初にロードしたコンピューティングデバイス122とは異なるコンピューティングデバイス122)上でデジタルアシスタントを起動すること、呼び出すこと、実行すること、または他の何らかの形で利用することを含むことができる。デジタルアシスタントセレクタコンポーネント120は、利用可能なコンピューティングデバイス122のリストを提供し、コンピューティングデバイスの選択を受け取ることができる。デジタルアシスタントセレクタコンポーネント120は、同じアカウントにリンクされ、コールトゥアクションを実行するためにデジタルアシスタントを起動するように構成されるか、または動作可能であるコンピューティングデバイス122のリストをランク付けすることができる。デジタルアシスタントセレクタコンポーネント120は、最高ランクのコンピューティングデバイス122を自動的に選択するか、またはコンピューティングデバイスの選択の指示を受け取ることができる。
たとえば、コールトゥアクションを実行するように構成されているデジタルアシスタントを有するコンピューティングデバイス122のリストは、コンピューティングデバイス122がデジタルアシスタントを起動してコールトゥアクションを実行するためにどれだけ頻繁に使用されたか、コンピューティングデバイス122が最後に使用されたのがどれだけ最近のことであったか、スクリプトライブラリ114を最初にロードしたコンピューティングデバイス122が他のコンピューティングデバイス122にどれだけ近いか(配置/近接度)、またはコンピューティングデバイス122がコールトゥアクションにどれだけ関連しているか、のうちの1つもしくは複数に基づきランク付けされ得る。たとえば、デジタルアシスタント対応スマートスピーカーコンピューティングデバイス122は、音楽を再生するためのコールトゥアクションに対して高い関連性を有するが、スマートウォッチコンピューティングデバイス122は、そのようなコールトゥアクションに対して低い関連性を有する。別の例では、デジタルアシスタント対応スマートテレビは、ビデオを再生するためのコールトゥアクションに対して高い関連性を有するが、スマートウォッチコンピューティングデバイス122は、そのようなコールトゥアクションに対して低い関連性を有する。
デジタルアシスタントセレクタコンポーネント120は、コールトゥアクションを実行するために、第1のコンピューティングデバイス(たとえば、スクリプトライブラリ114を最初にロードしたコンピューティングデバイス)とは異なる第2のコンピューティングデバイス122を選択することができる。デジタルアシスタントセレクタコンポーネント120は、コールトゥアクションを第2のクライアントコンピューティングデバイス122に伝送して、第2のクライアントコンピューティングデバイス122に、デジタルアシスタントを呼び出してコールトゥアクションを実行することを行わせることができる。デジタルアシスタントセレクタコンポーネント120は、電子リソース112に関連付けられている情報、または電子リソース112に関連付けられているアカウントなどの、コールトゥアクションを実行することを円滑にする情報を伝送することができる。情報は、第2のコンピューティングデバイス122のデジタルアシスタントによるコールトゥアクションの実行を円滑にする参照、ポインタ、メタデータ、位置情報、または他のデータを含むことができる。
いくつかの場合において、システム100は、提供するデジタルコンポーネントを選択することができる。システムは、3Pデジタルコンテンツプロバイダデバイス134からコンテンツアイテムまたはデジタルコンポーネントを選択することができる。システム100は、コンピューティングデバイス122を介して、電子リソース112上で、デジタルインターフェースを用いて、またはコールトゥアクションを実行する第2のコンピューティングデバイス122上で提示するために、選択されたデジタルコンポーネントを提供することができる。コンテンツアイテムまたはデジタルコンポーネントは、電子リソース112、プロパティ、エンゲージメントの過去のレベル、コールトゥアクション、または他の情報に基づき選択され得る。
たとえば、リモートデータ処理システム136は、コンテンツセレクタコンポーネント140を含むことができる。リモートデータ処理システム136のコンテンツセレクタコンポーネント140は、コンテンツアイテム(たとえば、デジタルコンポーネントオブジェクト)を選択することができる。コンテンツセレクタコンポーネント140は、コンテンツに対する要求、デジタルインターフェースを選択する動的通知機能コンポーネント116に基づくこと、実行モードまたはコンピューティングデバイス122を選択するデジタルアシスタントセレクタコンポーネント120に基づくこと、コールトゥアクションに基づくこと、または要求に基づくかもしくは要求に応答して行うコールトゥアクションの伝送に基づくことのうちの1つまたは複数のことに基づくか、または応答してコンテンツアイテムを選択することができる。コンテンツセレクタコンポーネント140は、関連するか、またはコールトゥアクションに関連付けられている情報に他の何らかの形で一致するコンテンツアイテムを選択することができる。たとえば、アプリケーションが靴を販売する電子商取引アプリケーションである場合、コンテンツセレクタコンポーネント140は、スニーカーのタイプについてコンテンツアイテムを選択することができる。別の例では、コールトゥアクションがフライトの予約に関係する場合、リモートデータ処理システム136は、旅行に関係するコンテンツアイテム(たとえば、フライトクーポン)を選択することができる。
いくつかの場合において、リモートデータ処理システム136のコンテンツセレクタコンポーネント140は、データ処理システム102の動的通知機能コンポーネント116がデジタルインターフェースのタイプを選択したことに続いて3Pデジタルコンテンツプロバイダデバイス134によって提供されるコンテンツアイテム(たとえば、デジタルコンポーネントオブジェクト)を選択することを決定することができる。動的通知機能コンポーネント116がデジタルインターフェースのタイプを選択するのに続いて、動的通知機能コンポーネント116は、選択されたデジタルインターフェースのタイプの指示をリモートデータ処理システム136に提供することができる。動的通知機能コンポーネント116は、デジタルアシスタントサーバ138に指示を提供することができる。デジタルアシスタントサーバ138は、コンテンツアイテムに対する要求を生成し、その要求をコンテンツセレクタコンポーネント140に転送することができる。デジタルアシスタントサーバ138は、デジタルインターフェースのタイプの選択の指示を受け取ったことに応答して、コンテンツに対する要求を生成することができる。いくつかの場合において、デジタルアシスタントサーバ138は、動的通知機能コンポーネント116が生成したデジタルインターフェースのタイプに基づきコンテンツに対する要求を生成することを決定することができる。たとえば、動的通知機能コンポーネント116が、より多くの画面領域を占有する派手な、または目立つインターフェースを選択した場合に、デジタルアシスタントサーバ138は、コンテンツアイテムを入れるのに十分な余地があり得ると決定することができる。したがって、デジタルアシスタントサーバ138は、補足コンテンツアイテムに対する十分なスクリーン空間があると決定したことに応答して、コンテンツに対する要求を生成することができる。しかしながら、選択されたタイプのデジタルインターフェースが、画面の隅にある小さなアイコンなどの、より目立たないものである場合、デジタルアシスタントサーバ138は、コンテンツの要求を生成しないことを決定することができ、それによって、無駄なコンピューティングリソースの利用を低減することができる。
コンテンツに対する要求を生成した後、デジタルアシスタントサーバ138は、コンテンツに対する要求をコンテンツセレクタコンポーネント140に転送することができる。コンテンツセレクタコンポーネント140は、リアルタイムのコンテンツ選択プロセスを実行してコンテンツアイテムを選択することができる。コンテンツセレクタコンポーネント140は、1つまたは複数のパラメータまたは選択基準を使用して、コンテンツアイテムを選択することができる。たとえば、コンテンツセレクタコンポーネント140によって受け取られた要求は、電子リソース112に関する情報(たとえば、キーワード、トピック、コンセプト、または他のコンテキスト情報)、デジタルインターフェースにおいて提供されるべきコールトゥアクション、デジタルインターフェースの選択されたタイプ、または電子アカウントに関連付けられている情報を含むことができる。コンテンツセレクタコンポーネント140は、この情報を使用して関連するコンテンツアイテムを選択することができる。
リモートデータ処理システム136は、選択されたコンテンツアイテムをデータ処理システム102に提供して提示させることができる。リモートデータ処理システム136は、スクリプトライブラリ114にコンテンツアイテムを提供して、スクリプトライブラリ114に、動的通知機能コンポーネント116によって選択されたデジタルインターフェースを介してコンテンツアイテムを表示するか、または提示することを行わせることができる。動的通知機能コンポーネント116は、デジタルインターフェースを介して提示されるコールトゥアクションとともにコンテンツアイテムを表示することができる。したがって、リアルタイムコンテンツ選択プロセスは、デジタルインターフェースのタイプを選択した後、および表示のためにデジタルインターフェースを提示する前に実行され得る。
いくつかの場合において、データ処理システム102は、デジタルアシスタントコンポーネント106を介してコンテンツアイテムを提示することができる。リモートデータ処理システム136は、選択されたコンテンツアイテムをアプリケーション110に提供して提示させることができる。リモートデータ処理システム136は、選択されたコンテンツアイテムをデジタルアシスタントコンポーネント106に提供し、アプリケーション110に提供して、提示させることができる。コンテンツアイテムは、ビジュアルコンテンツスロットまたはオーディオ出力など、アプリケーション110のユーザインターフェースを介して提示され得る。動的通知機能コンポーネント116は、選択されたデジタルインターフェースとともに、コンテンツアイテムを提供するか、または提示することができる。デジタルアシスタントセレクタコンポーネント120は、コールトゥアクションを実行するために選択された第2のコンピューティングデバイス122にコンテンツアイテムを提供し、第2のコンピューティングデバイス122に、コンテンツアイテムを提示させることができる。
デジタルアシスタントコンポーネント106は、アプリケーション110とは別に、または独立して、コンテンツアイテムを提示することができる。たとえば、デジタルアシスタントコンポーネント106は、ポップアップウィンドウまたはバナーコンテンツなどの、別のユーザインターフェースを呼び出して、コンピューティングデバイス122の表示デバイス128を介して表示することができる。いくつかの場合において、デジタルアシスタントコンポーネント106は、コンテンツアイテムをオーディオ出力として提供することができる。オーディオ出力は、アプリケーション110のオーディオ出力の前に、オーディオ出力の間に、またはオーディオ出力の後に提示され得る。アプリケーション110が音声出力を提供していない場合、デジタルアシスタントコンポーネント106は、アプリケーションによって使用されるインターフェースとは無関係にオーディオ出力を介してコンテンツアイテムを提供することができる。したがって、データ処理システム102は、デジタルアシスタントコンポーネント106のユーザインターフェース(たとえば、オーディオインターフェース)またはアプリケーション110(たとえば、グラフィカルユーザインターフェース)を介してコンテンツアイテムを提示することができる。
いくつかの場合において、リモートデータ処理システム136は、選択されたコンテンツアイテムを、電子リソース112を最初にロードしたコンピューティングデバイス122とは異なる第2のコンピューティングデバイス122に伝送することができる。たとえば、リモートデータ処理システム136は、デジタルアシスタントセレクタコンポーネント120から、第2のコンピューティングデバイス122を識別する指示を受け取ることができる。デジタルアシスタントセレクタコンポーネント120は、デジタルインターフェースを介して提供されるコールトゥアクションを実行するために第2のコンピューティングデバイス122を選択することができる。したがって、コンピューティングデバイス122を介して選択されたコンテンツアイテムを提示するのではなく、システム100は、コールトゥアクションを実行する第2のコンピューティングデバイス122を介してコンテンツアイテムを提示することができる。
そうするために、またいくつかの場合において、リモートデータ処理システム136は、コンテンツアイテムをデータ処理システム102に伝送することができ、データ処理システム102は、デジタルアシスタントセレクタコンポーネント120がコールトゥアクションを実行する第2のコンピューティングデバイス122のデジタルアシスタントを選択するまでコンテンツアイテムの提示を遅延するように決定することができる。第2のコンピューティングデバイス122のデジタルアシスタントを選択した後、データ処理システム102は、選択されたコンテンツアイテムを、実行するコールトゥアクションとともに対応する第2のコンピューティングデバイス122に転送することができる。
いくつかの場合において、データ処理システム102は、デジタルインターフェースとともにコンテンツアイテムを提示し、次いで、コンテンツアイテムを第2のコンピューティングデバイス122の選択されたデジタルアシスタントに伝送して、第2のコンピューティングデバイス122に、選択されたコンテンツアイテムまたは関係するコンテンツアイテムを再表示させることができる。
図2は、一実装形態による、デジタルアクションの実行を調整するためのプロセスの説明図である。プロセス200は、たとえば、データ処理システム、リモートデータ処理システム、ローカルデジタルアシスタント、スクリプトライブラリ、動的通知機能コンポーネント、またはデジタルセレクタコンポーネントを含む、図1または図7に描かれている1つもしくは複数のシステムまたはコンポーネントによって実行され得る。方法200は、アカウントがセッションに対してアクティベートされているかどうかを検査することによって開始することができる。アカウントがアクティベートされていない場合、データ処理システムは、エンゲージメントの過去のレベルを決定することが可能でない場合があるので、デジタルインターフェースを動的に選択することが可能でない場合があると決定することができる。したがって、データ処理システムは、アカウントがアクティブでない場合、またはそのセッションについてログインしていない場合に、既定のデジタルインターフェースを選択することができる。既定のデジタルインターフェースは、選択されたときに、アカウントログイン資格情報を要求するプロンプトを生成することができる。
アカウントにログインしている場合、スクリプトライブラリは、(1)デジタルアシスタントサーバと通信して、アカウントに関連付けられているアシスタント対応デバイスがあるかどうか、または(2)アカウントが過去にデジタルアシスタントオンボーディングエクスペリエンスを完了したかどうかを確認することによってアカウントがデジタルアシスタントにエンゲージしているかどうか検査することができる。アカウントがアシスタントユーザでない場合、スクリプトライブラリは、より目立つデジタルインターフェースを動的に選択するために使用され得るエンゲージメントの過去のレベルに関する信号がないので、アカウントにログインしていない場合と同じ既定のカスタマイズされていないデジタルインターフェースボタンを選択することができる。しかしながら、アカウントにログインしており、アカウントがデジタルアシスタントに過去にエンゲージしていた場合、ライブラリは、アカウントに関連付けられているデジタルアシスタントを介してユーザとサードパーティ電子リソースプロバイダとの間の過去のインタラクションが存在するか/しないかを検査することができる。スクリプトライブラリは、デジタルアシスタントサーバに問い合わせることによって電子リソースに対するアクションを実行するデジタルアシスタントとのエンゲージメントの過去のレベルを決定することができる。
アカウントが過去にデジタルアシスタントを使用して電子リソースとインタラクティブにやり取りしていない場合(たとえば、電子リソースとアカウントに関連付けられているデジタルアシスタントとの間のログに記録されたインタラクションが過去に存在しない場合)、スクリプトライブラリは、デジタルアシスタント音声機能に対してより目立つコールトゥアクションから利益を得られるかどうかについて(ポジティブまたはネガティブのいずれかの)信号がないので同じ非個人化された既定のデジタルインターフェースボタンを選択することができる。
アカウントにサインインし、アカウントがデジタルアシスタントにエンゲージし、アカウントがデジタルアシスタントにエンゲージして電子リソース上でアクションをインタラクティブにやり取りし、またはアクションを実行した場合、スクリプトライブラリは、電子リソース上でデジタルアシスタント音声機能のより目立つコールトゥアクションを表示することを決定することができる。
たとえば、ACT202において、スクリプトライブラリを実行するデータ処理システムは、利用可能なアシスタントプロバイダとのアカウントがあるかどうかを決定することができる。アカウントが利用可能でない(たとえば、サインインしていない)と、スクリプトライブラリは、ACT218に進んで、インラインボタンエントリポイントに対してカスタマイズされていない既定のデジタルインターフェースを表示し、次いでACT220に進み、デジタルアシスタントに関する情報を有するリンクなどのウェブ探索ベースのアクションリンクを提供し、さらにACT210に進み、プロアクティブボトムシートエントリポイント(proactive bottom sheet entry point)を提供することができる。しかしながら、ACT202において、スクリプトライブラリが、デジタルアシスタントに関連付けられているアカウントがセッションのためにログインされていると決定した場合(たとえば、コンピューティングデバイス、アプリケーション、または電子リソースのオペレーティングシステムを介して)、スクリプトライブラリ(またはスクリプトライブラリを実行するシステム)は、ACT204に進んで、アカウントがデジタルアシスタントとエンゲージしているかどうかを決定することができる。ACT204において、スクリプトライブラリは、アカウントとのエンゲージメントの過去のレベルを決定することができる。スクリプトライブラリは、アカウントが過去にデジタルアシスタントを使用したかどうかを決定することができる。
ACT204で、スクリプトライブラリが、アカウントが過去にデジタルアシスタントを使用していないと決定した場合、スクリプトライブラリは、ACT218に進み、インラインボタンエントリポイントに対する既定のデジタルインターフェースを選択することができる。スクリプトライブラリが、ACT204において、アカウントがデジタルアシスタントにエンゲージしたことがあると決定した場合、スクリプトライブラリは、ACT206に進み、アカウント(またはアカウントにログインする際のコンピューティングデバイス122)が、コールトゥアクションを実行するために電子リソースのデジタルアシスタントを使用したかどうかを決定することができる。ACT206で、スクリプトライブラリが、ユーザが電子リソースに対するアクションを実行するためにデジタルアシスタントを以前に使用したことがあると決定した場合、スクリプトライブラリは、ACT208に進み、エンゲージメントのこのレベルに対応する、デバイスのプロパティに基づく、デジタルインターフェースを選択し、次いで、ACT210に進むことができる。ACT206で、スクリプトライブラリが、アカウントが電子リソースに対するアクションを実行するためにデジタルアシスタントを使用したことがないと決定した場合、スクリプトライブラリは、ACT210に進み、プロアクティブボトムシートエントリポイントを提供することができる。
ACT210で、スクリプトライブラリは、デジタルアシスタントに対する実行モードを決定することを含むことができる、プロアクティブボトムシートエントリポイントを提供することができる。スクリプトライブラリは、より目立つデジタルインターフェースを提供することを決定することができる。スクリプトライブラリは、ACT212に進み、電子リソースへのアカウントリンクが必要であるかどうかを決定することができる。アカウントリンクは、デジタルアシスタントを電子リソースにリンクして、デジタルアシスタントが電子リソースに関連付けられているアクションを実行することを円滑にすることができる。スクリプトライブラリは、実行されるべきアクションのタイプ(または、購入)に基づきアカウントリンクが必要かどうかを決定することができる。ACT212で、スクリプトライブラリが、アカウントリンクが必要であると決定した場合、スクリプトライブラリは、ACT214に進み、アカウント資格情報に対するプロンプトまたは電子リソースのアカウントをデジタルアシスタントにリンクする要求を含むことができる、アカウントリンクフローを実行し、次いで、ACT216に進むことができる。スクリプトライブラリは、ACT212でアカウントリンクが必要でないと決定した場合、ACT216に進み、デバイスセレクタを有するアクションリンクユーザインターフェースを提供することができる。スクリプトライブラリは、アクションを実行するためにデジタルアシスタントとともに構成される利用可能なデバイスをランク付けし、アクションを実行するために使用するデバイスの選択を受け取ることができる。いくつかの場合において、スクリプトライブラリは、アクションを実行する最高ランクのデバイスを自動的に選択することができる。
図3は、一実装形態による、デジタルアクションの実行を調整するためのプロセスの説明図である。プロセス300は、たとえば、データ処理システム、リモートデータ処理システム、ローカルデジタルアシスタント、スクリプトライブラリ、動的通知機能コンポーネント、またはデジタルセレクタコンポーネントを含む、図1または図7に描かれている1つもしくは複数のシステムまたはコンポーネントによって実行され得る。プロセス300は、すでにリンクされているアカウントを有するデバイスに対して使用され得る。たとえば、ACT302において、スクリプトライブラリは、デジタルアシスタントプロバイダのアカウントが利用可能であるかどうかを決定することができる。スクリプトライブラリは、アプリケーション、オペレーティングシステム、またはデバイスなどにおいて、デジタルアシスタントアカウントがセッションに対してアクティベートされているか、またはログインされているかを決定することができる。ACT302において、スクリプトライブラリが、デジタルアシスタントのアカウントにログインされていないか、または利用可能でないと決定した場合、スクリプトライブラリは、ACT306に進み、インラインボタンエントリポイントを選択し、提供することができる。スクリプトライブラリは、カスタマイズされていないコールトゥアクションに対する既定のデジタルインターフェースを提供することができる。スクリプトライブラリは、ACT308に進み、電子リソースへのリンクを指すか、または電子リソースへのリンクを含むことができる、ウェブ探索ベースのアクションリンクを提供することができる。
しかしながら、ACT302で、スクリプトライブラリが、デジタルアシスタントアカウントにログインしていると決定した場合、スクリプトライブラリは、ACT304に進み、デジタルアシスタントとのエンゲージメントの過去のレベルを決定することができる。アカウントがデジタルアシスタントに過去にエンゲージしていない場合、またはデジタルアシスタントとのエンゲージメントのレベルが低く、閾値を下回っている場合(たとえば、アカウントがデジタルアシスタントにエンゲージしてから3カ月以上経過している)、スクリプトライブラリは、ACT306に進み、既定のカスタマイズされていないデジタルインターフェースを提供することができる。
ACT304で、スクリプトライブラリが、アカウントがデジタルアシスタントにエンゲージしているか、または閾値を超えてエンゲージしていると決定した場合、スクリプトライブラリは、ACT310に進み、電子リソースのアカウントがデジタルアシスタントのアカウントとすでにリンクされているかどうかを決定することができる。スクリプトライブラリは、デジタルアシスタントアカウントが、3P電子リソースまたは3P電子リソースサーバのアカウントにリンクされているかどうかを決定することができる。デジタルアシスタントアカウントが電子リソースのアカウントにリンクされていない場合、スクリプトライブラリは、ACT318に進み、アカウントリンクフローを実行することができる。
しかしながら、ACT310において、スクリプトライブラリが、デジタルアシスタントアカウントが電子リソースのアカウント(たとえば、旅行ウェブサイト、音楽サービス、またはオンラインマーケットプレイスのアカウント)にリンクされていると決定した場合、スクリプトライブラリは、ACT312に進み、デバイスまたはアカウントが、電子リソースに対するコールトゥアクションを実行するためにデジタルアシスタントをすでに使用しているかどうかを決定することができる。スクリプトライブラリは、312において、デバイスが電子リソースに対するアクションを実行するためにデジタルアシスタントを使用していないと決定した場合、スクリプトライブラリは、ACT316に進み、デバイスセレクタを有するアクションリンクユーザインターフェース(「UI」)を返すことができる。しかしながら、スクリプトライブラリが、電子リソースに対するアクションを実行するためにデジタルアシスタントが使用されたと決定した場合、スクリプトライブラリは、ACT314に進み、デジタルアシスタントに対するコールトゥアクションで目立つように表示されるカスタマイズされるか、または個人化されたデジタルインターフェースであり得る、インラインボタンエントリポイントを選択することができる。スクリプトライブラリは、リンクされているアカウント、および電子リソースに対するアクションを実行するために以前に使用された、アカウントに基づきより目立つデジタルインターフェースを選択することができる。次いで、スクリプトライブラリは、ACT318に進み、デバイスセレクタを有するアクションリンクUIを提供することができる。スクリプトライブラリは、選択に利用可能なデバイスをランク付けるか、または最高ランクのデバイスを自動的に選択することができる。
図4は、一実装形態による、デジタルアクションの実行のためのグラフィカルユーザインターフェースの説明図である。グラフィカルユーザインターフェース400は、たとえば、データ処理システム、リモートデータ処理システム、ローカルデジタルアシスタント、スクリプトライブラリ、動的通知機能コンポーネント、デジタルセレクタコンポーネント、または表示デバイスを含む、図1または図7に描かれている1つもしくは複数のシステムまたはコンポーネントによって提供され得る。グラフィカルユーザインターフェース400は、電子リソース112と、主コンテンツ402と、アイコンまたはインラインエントリポイントボタン404とを備えることができる。主コンテンツ402は、電子リソース112のプロバイダによって提供されるテキスト、画像、マルチメディアコンテンツ、または他のコンテンツを含むか、または指すものとしてよい。アイコン404は、デジタルインターフェースタイプの一例であってよく、これは「try it with digital assistant」などの、プロンプトを有するインラインボタンエントリポイントを含むことができる。スクリプトライブラリは、デジタルアシスタントアカウントにログインされていないことを検出することに基づき(たとえば、プロセス200または300を介して)、ボタン404を選択することができる。スクリプトライブラリは、主コンテンツ402を難読化するか、または他の何らかの形でブロックすることのないように主コンテンツ402の下にアイコン404を表示することができる。
図5は、一実装形態による、デジタルアクションの実行のためのグラフィカルユーザインターフェースの説明図である。グラフィカルユーザインターフェース500は、たとえば、データ処理システム、リモートデータ処理システム、ローカルデジタルアシスタント、スクリプトライブラリ、動的通知機能コンポーネント、デジタルセレクタコンポーネント、または表示デバイスを含む、図1または図7に描かれている1つもしくは複数のシステムまたはコンポーネントによって提供され得る。グラフィカルユーザインターフェース500は、電子リソース112、主コンテンツ402、ポップアップウィンドウ502の表示を含むものとしてよく、アカウント504をリンクするか、またはアカウントをリンクしないボタン506がある。グラフィカルユーザインターフェース500は、プロセス300または400を介して提供され得る。
ポップアップウィンドウは、デジタルインターフェースであってよく、プロパティおよびエンゲージメントの過去のレベルに基づきスクリプトライブラリによって選択されたデジタルインターフェースのタイプに対応するものとしてよい。スクリプトライブラリは、デジタルアシスタントアカウントがログインされており、そのアカウントが以前にデジタルアシスタントにエンゲージしていたが、電子リソースプロバイダのアカウントはデジタルアシスタントプロバイダとリンクされていないと決定したことに応答して、ポップアップウィンドウ502を選択し、生成し、提供することができる。たとえば、スクリプトライブラリは、エンゲージメントの過去のレベルおよびデバイスのプロパティに基づきより目立つコールトゥアクションを有するデジタルインターフェースタイプを選択することを決定することができる。たとえば、第1のプロパティが、クライアントコンピューティングデバイスがデジタルアシスタントで有効化されているスマートフォンであることを示し、エンゲージメントの過去のレベルが、電子リソースに対してデータ処理システムによってロードされたスクリプトライブラリの前の時間間隔においてコンピューティングデバイスが1つまたは複数のデジタルアシスタントとインタラクティブにやり取りしたことを示す場合に、スクリプトライブラリは、電子リソース112上にオーバーレイされたポップアップアイコン502を有するデジタルインターフェースを選択することができる。ポップアップウィンドウ502は、ポップアップウィンドウ502が電子リソース112の主コンテンツ402の一部(たとえば、主コンテンツ402の半分)をブロックするので、図4に描かれているアイコン404よりも目立つ。スクリプトライブラリは、より目立つデジタルインターフェースタイプを提供することを決定することができる。リンクアカウントボタン504は、プロセス200および300に描かれているように、アカウントリンクフローを実行することができる。
図6は、一実装形態による、デジタルアクションの実行を調整する方法の説明図である。方法600は、たとえば、データ処理システム、リモートデータ処理システム、ローカルデジタルアシスタント、スクリプトライブラリ、動的通知機能コンポーネント、またはデジタルセレクタコンポーネントを含む、図1または図7に描かれている1つもしくは複数のシステムまたはコンポーネントによって実行され得る。
602において、方法600は、コンピューティングデバイスまたはデータ処理システムが、電子リソースのスクリプトライブラリまたは電子リソース内に埋め込まれたスクリプトライブラリをロードすることを含むことができる。スクリプトライブラリは、ウェブサーバによって提供されるウェブページに埋め込まれてもよい。データ処理システムまたはデバイスは、電子リソースのインラインフレーム内でスクリプトライブラリを実行することができる。スクリプトライブラリは、1つまたは複数のコールトゥアクション、コンポーネント、またはモジュールを含むことができる。データ処理システムは、デジタルアシスタントの電子アカウントにリンクされたクライアントコンピューティングデバイスを介して、電子リソース内に埋め込まれているスクリプトライブラリをロードすることができる。スクリプトライブラリは、クライアントコンピューティングデバイスで提供される1つまたは複数のデジタルアシスタントによる実行のために構成されている電子リソースに対する複数のコールトゥアクションを含むことができる。
604で、スクリプトライブラリは、セッションのためにデジタルアシスタントアカウントがログインされているかどうか(たとえば、デバイス上で現在ログインされているかどうか)を決定することができる。スクリプトライブラリは、デバイスのアプリケーションまたはオペレーティングシステムに問い合わせて、デジタルアシスタントアカウントがアクティブであるか、アクティベートされているか、または他の何らかの形でログインされているかを決定することができる。スクリプトライブラリが、デジタルアシスタントアカウントがアクティブでないか、またはログインされていないと決定した場合、スクリプトライブラリは、ACT606に進み、デジタルアシスタントが実行するようにカスタマイズされるか、または構成されている、ということがないコールトゥアクションに対する既定のデジタルインターフェースを提供することができる。
しかしながら、ACT604で、スクリプトライブラリが、デジタルアシスタントアカウントがアクティブであると決定した場合に、スクリプトライブラリは、ACT608に進むことができる。ACT608において、スクリプトライブラリは、エンゲージメントの過去のレベルを決定することができる。スクリプトライブラリは、デジタルアシスタントサーバに問い合わせて、アカウントとデジタルアシスタントとの間のエンゲージメントの過去のレベルを決定することができる。スクリプトライブラリは、デジタルアシスタントサーバに問い合わせて、電子アカウントにリンクされているクライアントコンピューティングデバイスと1つまたは複数のデジタルアシスタントとの間のエンゲージメントの過去のレベルを決定することができる。
610において、スクリプトライブラリは、アカウントとデジタルアシスタントとの間のエンゲージメントの過去のレベルに基づきデジタルインターフェースを選択し、生成することができる。スクリプトライブラリは、クライアントコンピューティングデバイスの第1のプロパティおよびエンゲージメントの過去のレベルに基づきデジタルインターフェースを選択することができる。スクリプトライブラリは、デジタルインターフェースを介してコールトゥアクションを提供することができる。
612において、スクリプトライブラリは、コールトゥアクションを実行するための命令を検出し、コールトゥアクションの実行モードを決定することができる。スクリプトライブラリは、コールトゥアクションを実行する命令に応答して、クライアントコンピューティングデバイスの第2のプロパティおよびエンゲージメントの過去のレベルに基づき、コールトゥアクションの実行モードを決定することができる。実行モードは、たとえば、ネイティブデジタルアシスタントまたは3P提供デジタルアシスタントを起動することであってよい。
ACT614において、スクリプトライブラリは、利用可能な任意の互換性のあるデバイスがあるかどうかを判断することができる。スクリプトライブラリは、利用可能なデジタルアシスタント対応デバイスを識別することができる。スクリプトライブラリが、現在利用可能なデジタルアシスタント対応デバイスを識別できない場合、スクリプトライブラリは、ACT606に進み、既定のデジタルインターフェースを提供することができる。たとえば、実行モードは、ネイティブデジタルアシスタントを使用することであってよいが、クライアントデバイスは、ネイティブデジタルアシスタントをインストールされていない可能性がある。別の例では、実行モードは、サードパーティ提供デジタルアシスタントを使用することであってよいが、現在のクライアントデバイスは、サードパーティデジタルアシスタントをインストールされていない場合があり、第2のリンクデバイスは、オフラインであるか、または第1のコンピューティングデバイスに近接して配置されていない場合がある。
しかしながら、スクリプトライブラリは、選択された実行モードを介してコールトゥアクションを実行できる利用可能なデジタルアシスタント対応デバイスを識別する場合、スクリプトライブラリは、ACT616に進むことができる。ACT616において、スクリプトライブラリは、コールトゥアクションを実行するデジタルアシスタントを選択することができる。スクリプトライブラリは、1つまたは複数のプロパティおよびエンゲージメントの過去のレベルに基づき第2のコンピューティングデバイスを選択することができる。たとえば、スクリプトライブラリは、類似のコールトゥアクションを実行するために最近使用され、第1のコンピューティングデバイスとして(たとえば、同じWIFIネットワーク上で)近くに配置されていた第2のコンピューティングデバイス上に構成されているデジタルアシスタントを選択することができる。ACT618において、スクリプトライブラリは、コールトゥアクションを選択された第2のコンピューティングデバイスに伝送して、第2のコンピューティングデバイスのデジタルアシスタントにコールトゥアクションを実行させることができる。
図7は、例示的なコンピュータシステム700のブロック図である。コンピュータシステムまたはコンピューティングデバイス700は、システム100、またはデータ処理システム102などのそのコンポーネントを含むか、または実装するために使用され得る。コンピューティングシステム700は、情報を伝達するためのバス705または他の通信コンポーネントと、情報を処理するためにバス705に結合されているプロセッサ710または処理回路とを備える。コンピューティングシステム700は、情報を処理するためにバスに結合されている1つまたは複数のプロセッサ710もしくは処理回路も備え得る。コンピューティングシステム700は、情報、およびプロセッサ710によって実行されるべき命令を記憶するためにバス705に結合されるランダムアクセスメモリ(RAM)または他の動的ストレージデバイスなどのメインメモリ715も備える。メインメモリ715は、データリポジトリであり得るか、または含み得る。メインメモリ715は、プロセッサ710による命令の実行時に位置情報、一時変数、または他の中間情報を記憶するためにも使用できる。コンピュータシステム700は、静的情報とプロセッサ710に対する命令とを記憶するためにバス705に結合されているリードオンリーメモリ(ROM)720または他の静的ストレージデバイスをさらに備え得る。ソリッドステートデバイス、磁気ディスク、または光ディスクなどのストレージデバイス725はバス705に結合され、情報および命令を永続的に記憶することができる。ストレージデバイス725は、データリポジトリを含み得るか、またはその一部であってよい。
コンピューティングシステム700は、情報をユーザに対し表示するために、バス705を介して液晶ディスプレイ、またはアクティブマトリックスディスプレイなどのディスプレイ735に結合され得る。英数字および他のキーを備えるキーボードなどの入力デバイス730はバス705に結合され、情報およびコマンド選択をプロセッサ710に伝達することができる。入力デバイス730は、タッチスクリーンディスプレイ735を含み得る。入力デバイス730は、マウス、トラックボール、またはカーソル方向キーなどのカーソルコントロールも備え、それにより、方向情報およびコマンド選択をプロセッサ710に伝達し、ディスプレイ735上のカーソル移動を制御することができる。ディスプレイ735は、たとえば、データ処理システム102、クライアントコンピューティングデバイス122、または図1の他のコンポーネントの一部であってもよい。
本明細書で説明されているプロセス、システム、および方法は、メインメモリ715に収められている命令の配置構成をプロセッサ710が実行することに応答してコンピューティングシステム700によって実装され得る。そのような命令は、ストレージデバイス725などの別のコンピュータ可読媒体からメインメモリ715内に読み込まれ得る。メインメモリ715に収められている命令の配置構成が実行されると、コンピューティングシステム700は本明細書で説明されている例示的なプロセスを実行する。マルチプロセッシング配置構成の1つまたは複数のプロセッサも、メインメモリ715に収められている命令を実行するために採用され得る。ハード配線された回路は、本明細書で説明されているシステムおよび方法と一緒にソフトウェア命令の代わりに、またはそれと組み合わせて使用され得る。本明細書で説明されているシステムおよび方法は、ハードウェア回路とソフトウェアとの特定の組合せに限定されない。
例示的なコンピューティングシステムが図7において説明されているが、本明細書で説明されているオペレーションを含む主題は、他の種類のデジタル電子回路で、または本明細書およびその構造的等価物において開示されている構造を含む、コンピュータソフトウェア、ファームウェア、またはハードウェアで、またはそれらのうちの1つまたは複数の組合せで実装され得る。
本明細書において説明されているシステムが、ユーザまたはユーザデバイス上にインストールされたアプリケーションに関する個人情報を収集するか、または個人情報を利用する状況において、ユーザは、プログラムまたは機能がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクション、または活動、職業、ユーザの好み、またはユーザの現在の配置に関する情報)を収集するかどうかを制御する機会を提供される。それに加えて、または代替的に、特定データが、それが記憶されるか、または使用される前に1つまたは複数の方法で処理されるものとしてよく、したがって個人情報は取り除かれる。
本明細書で説明されている主題およびオペレーションは、デジタル電子回路で、または本明細書およびその構造的等価物において開示されている構造を含む、コンピュータソフトウェア、ファームウェア、またはハードウェアで、またはそれらのうちの1つまたは複数の組合せで実装され得る。本明細書において説明されている主題は、1つまたは複数のコンピュータプログラム、たとえば、データ処理装置によって実行できるようにまたはデータ処理装置の動作を制御するために1つまたは複数のコンピュータ記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数の回路として実現されてよい。代替的に、またはそれに加えて、プログラム命令は、データ処理装置による実行のため好適な受信機装置に伝送する情報が符号化されるように生成される、人工的に生成された伝搬信号、たとえば、機械で生成された電気、光、または電磁信号上で符号化されることが可能である。コンピュータ記憶媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであり得るか、または含まれ得る。コンピュータ記憶媒体は、伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成される伝搬信号内に符号化されているコンピュータプログラム命令の送信元または送信先とすることができる。コンピュータ記憶媒体は、また、1つまたは複数の独立したコンポーネントまたは媒体(たとえば、複数のCD、ディスク、または他のストレージデバイス)であり得るか、または含まれ得る。本明細書において説明されているオペレーションは、1つまたは複数のコンピュータ可読ストレージデバイス上に記憶されるか、または他のソースから受信されたデータに対してデータ処理装置によって実行されるオペレーションとして実装され得る。
「データ処理システム」、「コンピューティングデバイス」、「コンポーネント」、または「データ処理装置」という用語は、たとえばプログラム可能プロセッサ、コンピュータ、1つまたは複数のシステムオンチップ、または前述のものの組合せを含む、データを処理するための様々な装置、デバイス、およびマシンを包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)を含むことができる。装置は、また、ハードウェアに加えて、注目しているコンピュータプログラム用の実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォーム実行時環境、仮想マシン、またはこれらのうちの1つまたは複数のものの組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービス、分散型コンピューティング、およびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。デジタルアシスタントコンポーネント106、および他のデータ処理システム102またはリモートデータ処理システム136コンポーネントは、1つまたは複数のデータ処理装置、システム、コンピューティングデバイス、もしくはプロセッサを含むか、または共有することができる。デジタルアシスタントサーバ138およびコンテンツセレクタコンポーネント140は、1つまたは複数のデータ処理装置、システム、コンピューティングデバイス、またはプロセッサを含むか、または共有することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、スクリプト、またはコードとも称される)は、コンパイル言語またはインタプリタ言語、宣言型もしくは手続き型言語を含む、任意の形態のプログラミング言語で書かれ、スタンドアロンプログラム、またはモジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境において使用するのに適している他のユニットを含む、任意の形態でデプロイされ得る。コンピュータプログラムは、ファイルシステム内のファイルに対応するものとしてよい。コンピュータプログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語ドキュメントに記憶される1つまたは複数のスクリプト)を保持するファイルの一部に、注目しているプログラム専用の単一ファイルに、または複数の協調ファイル(たとえば、1つまたは複数のモジュール、副プログラム、またはコードの一部分を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに配置されるか、または複数のサイトにまたがって分散され、通信ネットワークによって相互接続されている複数のコンピュータ上で実行されるようにデプロイされ得る。
本明細書で説明されているプロセスおよび論理の流れは、入力データを操作し、出力を生成することによってアクションを実行するように1つまたは複数のコンピュータプログラム(たとえば、データ処理システム102のコンポーネント)を実行する1つまたは複数のプログラム可能なプロセッサによって実行され得る。これらのプロセスおよび論理の流れは、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)によっても実行され、また装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)としても実装され得る。コンピュータプログラムの命令およびデータを記憶するのに適したデバイスは、たとえば、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補助されるか、または専用論理回路に組み込まれ得る。
本明細書で説明されている主題は、バックエンドコンポーネントを、たとえば、データサーバとして備えるか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを備えるか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書で説明されている主題の実装をインタラクティブに操作することを可能にするグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータを備えるコンピューティングシステムで、または1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せで実装され得る。システムのコンポーネントは、デジタルデータ通信の任意の形態または媒体、たとえば、通信ネットワーク、によって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、およびピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
システム100またはシステム700などのコンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般に、互いに隔てられており、典型的には、通信ネットワーク(たとえば、ネットワーク105)を通じてインタラクティブな操作を行う。クライアントとサーバとの関係は、コンピュータプログラムが各コンピュータ上で実行され、互いとの間にクライアント-サーバ関係を有することによって発生する。いくつかの実装において、サーバはデータ(たとえば、デジタルコンポーネントを表すデータパケット)をクライアントデバイスに(たとえば、クライアントデバイスをインタラクティブに操作するユーザにデータを表示し、ユーザ入力を受け取ることを目的して)伝送する。クライアントデバイスで(たとえば、ユーザインタラクションの結果として)生成されたデータは、サーバにおいてクライアントデバイスから受信され(たとえば、コンピューティングデバイス122または3Pデジタルコンテンツプロバイダデバイス134のデジタルアシスタントコンポーネント106からデジタルアシスタントサーバ138によって受信され)得る。
オペレーションは特定の順序で図面に示されているが、そのようなオペレーションは、示される特定の順序でもしくは順番に実行される必要がなく、例示されているすべてのオペレーションが実行される必要があるとは限らない。本明細書で説明されているアクションは、異なる順序で実行できる。
様々なシステムコンポーネントを分離するといってもすべての実装で分離する必要はなく、説明されているプログラムコンポーネントは単一のハードウェアまたはソフトウェア製品に含まれ得る。たとえば、動的通知機能コンポーネント116およびデジタルアシスタントセレクタコンポーネント120は、単一のコンポーネント、アプリ、もしくはプログラム、または1つもしくは複数の処理回路を有する論理デバイスであるか、またはデータ処理システム102の1つまたは複数のプロセッサによって実行され得る。
いくつかの例示的な実装が説明されているが、前述の内容は例示的であり、限定する意図はなく、例として提示されていることは明らかである。特に、本明細書に提示されている例の多くは、方法動作またはシステム要素の特定の組合せを伴い、それらの動作およびそれらの要素は、同じ目的を遂行するために他の方法で組み合わされてもよい。一実装に関連して説明されている動作、要素、および特徴では、他の実装における類似の役割または実装から除外されることは意図されていない。
本明細書で使用されている語法および術語は、説明を目的とするものであり、限定するものとしてみなされるべきでない。「含む、備える(including)」、「からなる、備える、含む(comprising)」、「有する(having)」、「収容する、含む(containing)」、「伴う(involving)」、「特徴付けられる(characterized by)」、「特徴とする(characterized in that)」、および本明細書におけるそれらの変形の使用は、それ以降に記載される項目、同等の項目、および追加項目、さらにはこれ以降排他的に記載されている項目からなる代替的実装形態を包含することが意図されている。一実装形態において、本明細書で説明されているシステムおよび方法は、説明されている要素、動作、またはコンポーネントのうちの1つ、複数の各組合せ、またはすべてからなる。
本明細書において単数形で参照されているシステムおよび方法の実装形態または要素または動作への参照は、また、これらの複数の要素を含む実装も包含するものとしてよく、本明細書における実装形態または要素または動作への複数の参照は、また、単一の要素のみを含む実装形態も包含し得る。単数形または複数形による参照は、本開示のシステムまたは方法、そのコンポーネント、動作、または要素を単一または複数の構成に限定することを意図していない。情報、動作、または要素に基づいている動作または要素への参照は、動作または要素が少なくとも一部は情報、動作、または要素に基づく実装を含み得る。
本明細書で開示されている実装は、他の実装または実施形態と組み合わされるものとしてよく、「実装」、「いくつかの実装」、「一実装」、または同様の言い回しへの参照は、必ずしも相互排他的でなく、実装に関連して説明されている特定の特徴、構造、またはプロパティが少なくとも1つの実装または実施形態に含まれ得ることを指示することが意図されている。本明細書で使用されるそのような術語は、必ずしもすべて同じ実装形態を指しているわけではない。実装形態は、本明細書で開示されている態様および実装形態に一致する方式で、包含的にまたは排他的に他の実装形態と組み合わされてもよい。
「または」への参照は、「または」を使用して説明されている術語が、説明されている術語の1つ、複数、およびすべてのどれかを指示し得るように包含的に解釈され得る。術語の接続リストの少なくとも1つへの参照は、説明されている術語のうちの単一の術語、複数の術語、およびすべての術語のいずれかを示すために、包含的ORとして解釈され得る。たとえば、「AおよびBのうちの少なくとも一方」の参照は、Aのみ、Bのみ、さらにはAとBの両方を含み得る。「含む」または他のオープンターミノロジーと併せて使用されるそのような参照は、追加項目を含むことができる。
図面、詳細な説明、または請求項における技術的特徴の後に引用符号が続く場合、引用符号は、図面、詳細な説明、および請求項の明瞭さを高めるために含まれている。したがって、引用符号があることもないことも、請求要素の範囲に対する限定的効果を有しない。
本明細書で説明されているシステムをおよび方法は、その特徴から逸脱することなく他の特定の形式で具現化され得る。たとえば、3Pデジタルコンテンツプロバイダデバイス134などの3Pもしくはサードパーティとして説明されているデバイス、製品、またはサービスは、部分的もしくは全体的に、ファーストパーティデバイス、製品、またはサービスであるか、もしくはそれを含んでもよく、データ処理システム102、デジタルアシスタントサーバ138、または他のコンポーネントに関連付けられているエンティティによって共通所有され得る。前述の実装形態は、説明されているシステムおよび方法を限定するものではなく、例示するものである。したがって、本明細書で説明されているシステムおよび方法の範囲は、前述の説明ではなく、付属の請求項によって指示され、請求項の等価性の意味および範囲に入る変更は、そこに包含される。