開示された技術の多くの他の特徴、適用例、実施形態、および/または変形例が、添付の図面および下記の詳細な説明から明らかになることが、認識される。本明細書において説明されている構造、システム、非一時的なコンピュータ読取可能な媒体、および方法の付加的および/または代替的な実装例は、開示された技術の原理から逸脱することなく、採用され得る。
図は、開示された技術の様々な実施形態を例示の目的のために図示しているに過ぎず、図において、同様の参照符号は同様の要素を識別するために使用されている。当業者は、下記の説明から、図に示される構造および方法の代替的な実施形態が、本明細書において説明されている開示された技術の原理から逸脱することなく採用され得ることを、容易に認識し得る。
[ソーシャルネットワーキングシステムリソースに対するコール・トゥ・アクションの作成]
人々は、多種多様な目的のためにコンピューティングデバイス(またはシステム)を使用する。コンピューティングデバイスは、様々な種類の機能を提供することができる。ユーザは、自身のコンピューティングデバイスを利用して、情報を生成し、情報にアクセスし、情報を共有することができる。いくつかの場合において、人々は、自身のコンピューティングデバイスを利用して、オンライン(またはウェブ)リソースをブラウズしたり、ビジネスに関連付けられている詳細を閲覧したり、オンラインで購入を行ったり、レストランの予約を行ったり、および/または他の情報にアクセスしたりすることができる。
一例において、ユーザは、自身のコンピューティングデバイスを利用して、様々なオンラインリソースを通じてブラウジングを行うことができる。従来のアプローチの下では、ブラウジング中に、ユーザには、コール・トゥ・アクションなどの1つまたは複数の形式の広告またはマーケティングが提示され得る。コール・トゥ・アクションは、ユーザが一定のアクションを行うように働きかけようと試みることができる。例えば、1つのタイプのコール・トゥ・アクションは、ユーザが購入を行うように、例えば、電子商取引(eコマース)のストアフロントから製品またはサービスを買うように働きかけることができる。しかしながら、従来のアプローチの下では、コール・トゥ・アクションおよび他の同様の広告材料またはマーケティング材料は、ユーザにとって興味が湧かない、または無関係であることがある。さらに、従来のアプローチに従って、ユーザがコール・トゥ・アクションをクリックし、タップし、または、別の方法で関与した場合、ユーザは、そのオリジナルのコール・トゥ・アクションを求めて、多数のタスクを負担させられることがある。例えば、ユーザが、あるアイテムを購入するためにコール・トゥ・アクションを選択した場合、ユーザは、eコマース・ストアフロントの特定のリンクへ誘導され得るが、その購入を完了させるためには、依然としてかなりの数の付加的なアクションを行う必要があり得る。そのため、コール・トゥ・アクションに関連してオンライン体験を提供することへの従来のアプローチは、興味が湧かず、無関係であり、非効率であることがある。
別の例において、ユーザは、コンピューティングデバイスを使用して、ソーシャルネットワーキングシステム(またはサービス)に関与することができる。この例でが、ユーザは、ソーシャルネットワーキングシステム内のエンティティに関連付けられているページリソース(例えば、ページ)などの1つまたは複数のリソースを、その1つまたは複数のページを介して利用可能になる様々なタイプのコンテンツとともに、閲覧したり、アクセスしたり、または対話したりすることができる。しかしながら、従来のアプローチの下では、制限された量および種類のコンテンツおよび対話機能のみが、1つまたは複数のページを介して提示されることがある。結果として、ユーザとエンティティとに関わる対話が著しく制限され、ユーザとエンティティとの間の関係の十分な発展を潜在的に妨げることがある。これらの懸念事項および他の同様の懸念事項は、ソーシャルネットワーキングシステムに関連付けられている全体的なユーザ体験を低下させることがある。
したがって、改善されたアプローチは、従来のアプローチに関連付けられている様々な懸念事項に対処し、または緩和するために有益となり得る。開示された技術は、より興味が湧き、より関係があり、より対話的で、より効率的なアプローチを提示することができる。開示された技術は、本明細書においてより詳細に説明されているように、コール・トゥ・アクション(CTA)を作成し、選択し、提示し、実行することを促進させることができる。例えば、開示された技術は、ページなどのソーシャルネットワーキングシステムリソースに対するコール・トゥ・アクションを作成することを可能にする。本開示の種々の実施形態は、ソーシャルネットワーキングシステム内のページに対するコール・トゥ・アクションを作成するための要求を受信することができる。ページに関連付けられた情報はソーシャルネットワーキングシステムから取得することができる。このページに関連付けられた情報に基づいて、ページに対するコール・トゥ・アクションを作成するための1つまたは複数のオプションを提供することができる。多くの変形および/または他の可能性も存在し得ることが想定される。
図1は、本開示の一実施形態に係る、コール・トゥ・アクションを作成し、選択し、提示し、実行することを促進するように構成された例示的なソーシャルネットワーキング・コール・トゥ・アクション(CTA)モジュール102を含む、例示的なシステム100を示す。図1の例で示されるように、例示的なソーシャルネットワーキングCTAモジュール102は、コール・トゥ・アクション(CTA)作成モジュール104と、コール・トゥ・アクション(CTA)選択モジュール106と、コール・トゥ・アクション(CTA)提示モジュール108と、コール・トゥ・アクション(CTA)実行モジュール110とを含み得る。いくつかの例において、例示的なシステム100は、少なくとも1つのデータストア120を含み得る。本明細書における、この図および全ての図において示されるコンポーネント(例えば、モジュール、要素等)は、例示に過ぎず、他の実装例は、付加的なコンポーネント、より少ないコンポーネント、統合されたコンポーネント、または異なるコンポーネントを含み得る。いくつかのコンポーネントは、関連する詳細を曖昧にしないように、図示されていないことがある。
いくつかの実施形態において、ソーシャルネットワーキングCTAモジュール102は、部分的にまたは全体的に、ソフトウェア、ハードウェア、または、これらの任意の組み合わせとして実装され得る。概して、本明細書で説明されるモジュールは、ソフトウェア、ハードウェア、または、これらの任意の組み合わせに関連付けられ得る。いくつかの実装例において、モジュールの1つまたは複数の機能、タスク、および/または動作は、ソフトウェアルーチン、ソフトウェアプロセス、ハードウェア、および/またはこれらの任意の組み合わせによって実行されるか、または行われ得る。いくつかの場合において、ソーシャルネットワーキングCTAモジュール102は、ユーザコンピューティングデバイスまたはクライアントコンピューティングデバイス上などの、1つまたは複数のコンピューティングデバイスまたはシステム上で実行されるソフトウェアとして、部分的にまたは全体的に実装され得る。例えば、ソーシャルネットワーキングCTAモジュール102またはその少なくとも一部は、図7のユーザデバイス710などの、ユーザコンピューティングデバイスまたはクライアントコンピューティングシステム上で実行されるアプリケーション(例えば、アプリ)、プログラム、またはアプレット等として、または、これらの内部において、実装され得る。別の例において、ソーシャルネットワーキングCTAモジュール102または少なくともその一部は、ネットワークサーバまたはクラウドサーバなどの、1つまたは複数のサーバを含む、1つまたは複数のコンピューティングデバイスまたはシステムを使用して実装され得る。いくつかの例において、ソーシャルネットワーキングCTAモジュール102は、部分的にまたは全体的に、図7のソーシャルネットワーキングシステム730などの、ソーシャルネットワーキングシステム(もしくはサービス)内で実施され得るか、またはそのソーシャルネットワーキングシステム(もしくはサービス)と共に動作するように構成され得る。多くの変形または他の可能性も存在し得ることが理解される。
CTA作成モジュール104は、ソーシャルネットワーキングシステムによってサポートされる、ページなどの1つまたは複数の面に対する1つまたは複数のコール・トゥ・アクションを作成することを促進するように構成され得る。いくつかの例において、CTA作成モジュール104は、ページとそのページを訪れるユーザとの間のより潜在的な対話を促進するために、1つのページに対する1つまたは複数のコール・トゥ・アクションの作成を可能とし得る。1つまたは複数のコール・トゥ・アクションの作成は、ページに合わせてカスタマイズされ得る(例えば、ページに関する情報および/またはページを閲覧もしくはアクセスするユーザに関する情報に基づいて、カスタマイズされ得る)。いくつかの場合において、CTA作成モジュール104は、ページに関連付けられているエンティティ(すなわち、ページエンティティ)、例えば、ページ管理者、ページ代表者、ページによって表わされるビジネスまたはブランドが、他のページのコール・トゥ・アクションとは異なり得る1つまたは複数のコール・トゥ・アクションを作成することによってページをカスタマイズすることを可能とし得る。1つまたは複数のコール・トゥ・アクションは、ページおよび/またはページエンティティの1つまたは複数の目的(例えば、マーケティング目標、ビジネスニーズ等)を満たそうとして作成されることもあり得る。例えば、ページが、特定の製品またはサービスを売ることを望む場合、コール・トゥ・アクションがそのページ上で作成されて、そのページを閲覧またはアクセスしているユーザが、そのコール・トゥ・アクションをクリックし、タップし、選択し、または、別の方法で対話することなどによって、その特定の製品またはサービスをより簡単に購入することを可能とし得る。
いくつかの実施形態において、CTA作成モジュール104は、予め定義されたコール・トゥ・アクションのセットまたはデフォルトのコール・トゥ・アクションのセットを使用して、コール・トゥ・アクションを作成することができる。例えば、予め定義されたコール・トゥ・アクションのセットまたはデフォルトのコール・トゥ・アクションのセットは、「いま買う」コール・トゥ・アクション(例えば、製品について)、「いま買物する」コール・トゥ・アクション、「いま支払う」コール・トゥ・アクション(例えば、金融取引について)、「いま予約する」コール・トゥ・アクション(例えば、チケットについて)、「いま予約を入れる」コール・トゥ・アクション(例えば、レストランについて)、「サインアップする」コール・トゥ・アクション(例えば、サービスについて)、「ログインする」コール・トゥ・アクション(例えば、認証後に情報を提供するために)、「いま観る」コール・トゥ・アクション(例えば、メディアコンテンツアイテムについて)、「いま閲覧する」コール・トゥ・アクション(例えば、情報を見るために)、「連絡をする」コール・トゥ・アクション(例えば、さらなるコミュニケーションに招くために)、「いまインストールする」コール・トゥ・アクション(例えば、ソフトウェアについて)、「アプリへ行く」コール・トゥ・アクション(例えば、付加的な機能のために)、「いまプレイする」コール・トゥ・アクション(例えば、ゲームについて)、「これ『いいね!』を表明する」コール・トゥ・アクション(例えば、満足感を他者と共有するために)、「もっと見る」コール・トゥ・アクション(例えば、より多くの情報にアクセスするために)、および「より多くの情報」コール・トゥ・アクション(例えば、より多くの情報へアクセスするために)等を含み得るが、これらに限定されない。概して、CTA作成モジュール104は、ユーザ、ページ、またはソーシャルネットワーキングシステムによって望まれるような、ユーザによって行われ得る任意のアクションに関係するその他のコール・トゥ・アクションを作成することができる。多くの変形および他の可能性も存在し得ることが想定される。CTA作成モジュール104に関するさらなる詳細は、図2Aを参照して後述する。
また、CTA選択モジュール106は、ソーシャルネットワーキングシステムによってサポートされるページなどの面に対する1つまたは複数のコール・トゥ・アクションなどを選択することを促進するように構成され得る。いくつかの実装例において、例えば、CTA選択モジュール106は、ページにアクセスしているユーザに関連付けられた情報を取得し、このユーザに関連付けられた情報に少なくとも部分的に基づいてコール・トゥ・アクションのセットの中から少なくとも1つのコール・トゥ・アクションを選択することによって、コール・トゥ・アクションの選択を促進することができる。ページは、ページエンティティに関連付けることが可能であり、少なくとも1つのコール・トゥ・アクションは、ページエンティティに関連付けることが可能である。CTA選択モジュール106については、図2Bを参照して以下でより詳細に説明する。
また、CTA提示モジュール108は、ソーシャルネットワーキングシステムによってサポートされるページなどの面に対する1つまたは複数のコール・トゥ・アクションなどを提示することを促進するように構成され得る。例えば、CTA提示モジュール108は、CTA選択モジュール106によって選択された少なくとも1つのコール・トゥ・アクションをソーシャルネットワーキングシステム内のページを介してユーザに対して提示することを促進することができる。CTA提示モジュール108に関するさらなる詳細は、図2Cを参照して後述する。
また、CTA実行モジュール110は、ソーシャルネットワーキングシステム内のページに対する1つまたは複数のコール・トゥ・アクションなどを実行することを促進するように構成され得る。例えば、CTA実行モジュール110は、CTA提示モジュール108によって提示される少なくとも1つのコール・トゥ・アクションに関連付けられている、1つまたは複数のアクション、タスク、または動作を実行することを促進することができる。CTA実行モジュール110については、図2Dを参照して以下でより詳細に説明する。
さらに、いくつかの実施形態において、ソーシャルネットワーキングCTAモジュール102は、例示的なシステム100において示されるように、少なくとも1つのデータストア120と通信するおよび/または動作するように構成され得る。少なくとも1つのデータストア120は、様々なタイプのデータを記憶し、維持するように構成され得る。いくつかの実装例において、少なくとも1つのデータストア120は、ソーシャルネットワーキングシステム(例えば、図7のソーシャルネットワーキングシステム730)に関連付けられている情報を記憶することができる。ソーシャルネットワーキングシステムに関連付けられている情報は、ユーザ、ソーシャルつながり、ソーシャル対話、ロケーション、ジオフェンスで囲まれた領域、地図、場所、イベント、ページ、グループ、投稿、コミュニケーション、コンテンツ、フィード、アカウント設定、プライバシー設定、ソーシャルグラフ、および様々な他のタイプのデータに関するデータを含むことができる。いくつかの実装例において、少なくとも1つのデータストア120は、ユーザに関連付けられている情報、例えば、ユーザ識別子、ユーザ情報、ユーザに指定された設定、ユーザによって生成されたコンテンツ、および様々な他のタイプのユーザデータなどを記憶することができる。いくつかの実施形態において、少なくとも1つのデータストア120は、コール・トゥ・アクションに関係する情報、ページに関係する情報、および/またはユーザに関係する情報等を記憶することができ、これらは、ソーシャルネットワーキングCTAモジュール102によって利用され得る。多くの変形および他の可能性もあり得ることが認識される。
図2Aは、本開示の一実施形態に係る、ソーシャルネットワーキングシステムリソースに対するコール・トゥ・アクションを作成することを促進するように構成された例示的なコール・トゥ・アクション(CTA)作成モジュール202を示す。いくつかの実施形態において、図1のコール・トゥ・アクション(CTA)作成モジュール104は、コール・トゥ・アクション(CTA)作成モジュール202として実装され得る。図2Aに示されるように、コール・トゥ・アクション(CTA)作成モジュール202は、コール・トゥ・アクション(CTA)要求モジュール204と、リソース情報モジュール206と、コール・トゥ・アクション(CTA)オプション208とを含み得る。
前述のように、CTA作成モジュール104は、ソーシャルネットワーキングシステムによってサポートされるページなどの1つまたは複数の面に対するコール・トゥ・アクションを作成することを促進するように構成され得る。いくつかの例において、ソーシャルネットワーキングシステムによってサポートされる1つまたは複数の面は、ソーシャルネットワーキングシステム内の1つまたは複数のリソースに対応し得る。従って、CTA作成モジュール104は、ソーシャルネットワーキングシステムに関連付けられたページリソース(例えば、ページ)などの1つまたは複数の面またはリソースに対するコール・トゥ・アクションの作成を促進することができる。
いくつかの実施形態において、CTA作成モジュール202は、CTA要求モジュール204を利用して、ソーシャルネットワーキングシステム内のページに対するコール・トゥ・アクションを作成するための要求を受信することを促進することができる。いくつかの場合においては、ページに関連付けられた管理者、代表者、または他のエンティティが、そのページに対するコール・トゥ・アクションを作成することを決定または選択することができる。一例において、ページに関連付けられた管理者、代表者、または他のエンティティは、そのページにアクセスまたはそのページを閲覧することができる。CTA作成モジュール104は、ページが、例えばコール・トゥ・アクションを作成するための対話要素(例えば、ボタン)を提供することを可能にする。この例においては、ページに関連付けられた管理者、代表者、または他のエンティティが、コール・トゥ・アクションを作成するための対話要素をクリックする、対話要素をタップする、対話要素と対話する、または対話要素をアクティブにすると、そのページに対してコール・トゥ・アクションを作成するための要求が、管理者、代表者、または他のエンティティによって作られ得る。そして、その要求が、CTA要求モジュール204によって受信され得る。多くの変形も可能であることが理解される。
また、いくつかの実装例において、CTA作成モジュール202は、リソース情報モジュール206を利用して、ページ(例えば、ページリソース)などのリソースに関連付けられた情報をソーシャルネットワーキングシステムから取得することを促進することができる。ページに関連付けられた情報は、メタデータ、特徴、特性、テキスト、メディア、コンテンツ、投稿メッセージ、および、ページまたはページのエンティティによって提供される、提示される、アクセス可能である、および/または関連する他のデータを含み得るが、これらに限定されない。
さらに、いくつかの実施形態において、CTA作成モジュール202は、CTAオプションモジュール208を利用して、ページに対するコール・トゥ・アクションを作成するための1つまたは複数のオプションを提供することを促進することができる。1つまたは複数のオプションは、コール・トゥ・アクションをどのように作成するか、および/またはコール・トゥ・アクションがどの機能を提供するかを決定するために選択または利用され得る。いくつかの場合において、コール・トゥ・アクションを作成するための1つまたは複数のオプションは、ページに関連付けられた情報に基づいて、識別され、決定され、選択され、および/または提供され得る。例えば、CTAオプションモジュール208は、ページに関連付けられた情報を分析して、1つまたは複数の予め選択されたオプションのセットをそのページに対するコール・トゥ・アクションを作成するための1つまたは複数のオプションとして提供することを決定することによって、コール・トゥ・アクションを作成するための1つまたは複数のオプションを識別し、選択し、および/または提供することができる。一例において、CTAオプションモジュール208は、ページに関連付けられた情報に基づいて、コール・トゥ・アクションを作成するための1つまたは複数のデフォルトオプションを提供することを決定することができる。
1つまたは複数のオプションの例は、購入オプション、予約オプション、連絡オプション、訪問オプション、アプリケーションオプション、ゲームオプション、登録オプション、および/またはメディアオプションなどを含み得るが、これらに限定されない。このため、購入オプションは、「いま買物する」コール・トゥ・アクションおよび/または「いま買う」コール・トゥ・アクションなどを作成するために選択または利用することができる。予約オプションは、「いま予約を入れる」コール・トゥ・アクション、「返信ください(RSVP)」コール・トゥ・アクション、「アポイントメントを取る」コール・トゥ・アクション、および/または「いま予約する」コール・トゥ・アクションなどを作成するために選択または利用することができる。連絡オプションは、「連絡をする」コール・トゥ・アクション、「電話をする」コール・トゥ・アクション、および/または「メッセージを送る」コール・トゥ・アクションなどを作成するために選択または利用することができる。訪問オプションは、「訪問する」コール・トゥ・アクション、「行き方を取得する」コール・トゥ・アクション、および/または「地図を表示する」コール・トゥ・アクションなどを作成するために選択または利用することができる。アプリケーションオプションは、「アプリケーションを起動する」コール・トゥ・アクションおよび/または「アプリをダウンロードする」コール・トゥ・アクションなどを作成するために選択または利用することができる。ゲームオプションは、「ゲームをプレイする」コール・トゥ・アクションおよび/または「ゲームをインストールする」コール・トゥ・アクションなどを作成するために選択または利用することができる。メディアオプションは、「メディアを閲覧する」コール・トゥ・アクションおよび/または「動画を見る」コール・トゥ・アクションなどを作成するために選択または利用することができる。ここで挙げた全ての例は、例示の目的のために提供されるものであり、多くの変形が可能であることが想定される。
また、いくつかの例において、リソース情報モジュール206とCTAオプションモジュール208は、ページに対するコール・トゥ・アクションを作成するための1つまたは複数のオプションを提供することを促進するために協働することができる。リソース情報モジュール206は、ページに関連付けられた情報を分析することにより、そのページに関する少なくとも類似性閾値レベルを各々有する1つまたは複数の他のページを識別するように構成され得る。例えば、リソース情報モジュール206は、ページに関連付けられた情報を分析することにより、そのページに対する少なくとも1つのページカテゴリ(またはページタイプ)を認識することができる。そして、リソース情報モジュール206は、その少なくとも1つのページカテゴリとの関連性に基づいて1つまたは複数の他のページを識別することができる。さらに、CTAオプションモジュール208は、その1つまたは複数の他のページのうちの少なくともいくつかによって利用されるオプションのセットを識別することができる。そして、CTAオプションモジュール208は、そのオプションのセットの中から、少なくとも1つのオプションのサブセットを、ページに対するコール・トゥ・アクションを作成するために提供される1つまたは複数のオプション内に含めるまたは組み込むことができる。
一例において、リソース情報モジュール206は、特定のページに関連付けられた情報を分析することにより、その特定のページがローカルビジネスページタイプまたはローカルビジネスページカテゴリに関連付けられていると判定し得る。これにより、この例において、リソース情報モジュール206は、同じくローカルビジネスページタイプ/カテゴリである1つまたは複数の他のページを識別することができる。従って、特定のページに対してコール・トゥ・アクションを作成するための1つまたは複数のオプションは、そのローカルビジネスページタイプ/カテゴリの他のページによって利用される様々なオプションに基づいて、CTAオプションモジュール208により識別され、選択され、および/または提供され得る。この例において、ローカルビジネスページタイプ/カテゴリの1つまたは複数の他のページのうちの少なくともいくつかは、「訪問する」オプションを利用することができる。これにより、「訪問する」オプションを、特定のページに対しても提供することができる。前述のように、ここで挙げた全ての例は、例示の目的のために提供されるものであり、多くの変形や他の可能性も存在し得ることが理解される。
また、いくつかの実装例において、CTAオプションモジュール208は、コール・トゥ・アクションが有効とされたときに実行されるべき動作を特定するための動作入力オプションを提供することができる。動作入力オプションは、例えば、フルバージョンウェブアドレス、簡易バージョンウェブアドレス、およびアプリケーションディープリンクのうちの少なくとも1つの入力を可能とし得る。いくつかの場合において、動作入力オプションは、サードパーティサービスのインスタンスの選択を可能とし得る。サードパーティサービスのインスタンスは、例えば、ソーシャルネットワーキングシステムのために固有に開発することができる。実行されるべき動作は、サードパーティサービスのインスタンスに基づくものとすることができる。さらに、いくつかの場合において、CTAオプションモジュール208は、コール・トゥ・アクションに連動して、テキスト入力フィールドを生成するためのテキスト入力オプションを提供することができる。テキスト入力フィールドを介して受信されたテキストは、コール・トゥ・アクションが有効とされたときの動作を実行する際に利用することができる。前述のように、多くの変形や他の可能性も存在し得ることが想定される。
図2Bは、本開示の一実施形態に係る、コール・トゥ・アクションを選択することを促進するように構成された例示的なコール・トゥ・アクション(CTA)選択モジュール222を示す。いくつかの実施形態において、図1のコール・トゥ・アクション(CTA)選択モジュール106は、コール・トゥ・アクション(CTA)選択モジュール222として実装され得る。図2Bに示されるように、コール・トゥ・アクション(CTA)選択モジュール222は、情報取得モジュール224と、コール・トゥ・アクション(CTA)収集モジュール226と、ユーザ関連確率モジュール228とを含み得る。
いくつかの実施形態において、CTA選択モジュール222は、情報取得モジュール224を利用して、ソーシャルネットワーキングシステムにサポートされるページなど表面にアクセスしている(または、閲覧している、訪れている等)ユーザに関連付けられている情報を取得することを促進することができる。ユーザに関連付けられている情報は、分析することが可能であり、どのコール・トゥ・アクションがユーザに対する提示について潜在的に関係があり、興味が湧き、および/または適当であり得るかを決定するために、CTA選択モジュール222によって利用される信号としての役割を果たすことができる。CTA選択モジュール222は、ユーザに関連付けられている情報に少なくとも部分的に基づいて、コール・トゥ・アクションのセットから、少なくとも1つのコール・トゥ・アクションを選択することを促進することができる。そのため、コール・トゥ・アクションは、ページのページ管理者によってカスタマイズすることが可能であるだけでなく、そのページを閲覧またはアクセスするユーザに合わせて、カスタマイズし、パーソナライズし、またはターゲティングすることが可能である。
いくつかの例において、ユーザに関連付けられた情報は、ユーザに関する識別データ、人口統計学的データ、ステータスデータ、または同様のデータを含むことができる。このような情報は、例えば、ユーザの識別情報、ユーザのジェンダー、ユーザの年齢、ユーザに関連付けられたロケーション、ユーザに関連付けられた教育機関、ユーザに関連付けられた専門機関、ユーザに関連付けられた言語、ユーザの関係ステータス、または、ユーザの1つまたは複数のソーシャルつながりのうちの少なくとも1つを示すことができる。例えば、ユーザの識別情報は、ソーシャルネットワーキングシステム内のユーザの識別子(例えば、名前、ユーザ名、ユーザ識別番号等)を含むことができる。ユーザに関連付けられたロケーションは、例えば、ユーザの住居、出身地、ロケーションへのチェックイン、または、現在のジオロケーション等を含むことができる。教育機関は、例えば、ユーザが通った学校、カレッジ、または大学を含むことができる。専門機関は、例えば、ユーザが勤務した会社または職場、ユーザがメンバーであった組織またはグループ等を含むことができる。例えば、関係ステータスは、ユーザが独身か、交際中か、婚約しているか、結婚しているかどうか等を示すことができる。ユーザの1つまたは複数のソーシャルつながりは、例えば、ソーシャルネットワーキングシステム内のユーザの1人または複数の「友達」に対応し得る。多くの変形も存在し得る。
いくつかの場合において、ユーザに関連付けられた情報は、ユーザに関連付けられた履歴データを含むことができる。履歴データは、ユーザのブラウジング履歴、ユーザのアプリケーション使用履歴、またはユーザのソーシャルネットワーキングシステム使用履歴のうちの少なくとも1つに関連付けられ得る。ブラウジング履歴は、例えば、どのオンラインリソースがユーザによって閲覧またはアクセスされたか、および、どれくらい長い間であったかを示すことができる。ユーザのアプリケーション使用履歴は、どのアプリケーションがユーザによってインストールされたか、どのアプリケーションがユーザによってアクセスまたは利用されたか、どのように各アプリケーションがアクセスまたは利用されたか、および、どのくらい長い間であったかを示すことができる。ここでも、多くの変形が可能である。
いくつかの実施形態において、ユーザのソーシャルネットワーキングシステム使用履歴は、ソーシャルネットワーキングシステムを介して投稿された少なくとも1つのコンテンツアイテムに関して、ユーザによって行われた1つまたは複数のソーシャル対話を示すことができる。例えば、1つまたは複数のソーシャル対話は、賛成票、「いいね!」、コメント、共有、または保存のうちの少なくとも1つを含むことができる。
いくつかの例において、ユーザに関連付けられた情報は、ユーザが特定の定義されたオーディエンスの一部であることを示すことができる。ソーシャルネットワーキングシステムは、1つまたは複数の共通属性、履歴データ、または他の検討事項を共有し得るユーザに関する情報に基づいて、カスタムオーディエンスを定義することができる。一例において、特定のカスタムオーディエンスは、動画などの特定のコンテンツアイテムを閲覧し、プレイし、対話し(例えば、いいね!を表明し)、または、別の方法でアクセスしたユーザに対応するものとして定義され得る。少なくとも1つのコール・トゥ・アクションの選択は、選択基準に少なくとも部分的にさらに基づくことが可能である。選択基準は、どのコール・トゥ・アクションが特定のオーディエンスのために選択されるかを管理するための、1つまたは複数の命令、規則、および/またはポリシーを提供することができる。選択基準は、少なくとも1つのコール・トゥ・アクションが、ユーザがその一部である特定の定義されたオーディエンスのために選択されることを指定することができる。選択基準は、ユーザが特定のカスタムオーディエンスの一部である場合、ユーザがページを訪れたときに、ユーザが関係する活動(アクティビティ)を行うことを可能にする1つまたは複数のコール・トゥ・アクションが、ユーザと特定のカスタムオーディエンスとの関連付けに基づいて、ユーザへの提示用に選択され得ることを指定することができる。この例を続けると、ユーザと特定のカスタムオーディエンスとの関連付けに基づいて、特定の動画に関係する映画のチケットをユーザが予約することを可能にする1つまたは複数のコール・トゥ・アクションが、ページを介してユーザに提示するために選択され得る。ここでも、多くの変形が可能である。
さらに、いくつかの実装例において、ユーザに関連付けられた情報は、動的に取得され得る。ユーザに関連付けられた情報は、1つまたは複数の最新情報、例えば、ソーシャルネットワーキングシステム内および/またはソーシャルネットワーキングシステム外でのユーザのアクションまたは挙動に関する最新情報などを含むことができる。少なくとも1つのコール・トゥ・アクションの選択は、1つまたは複数の更新情報に基づいて、動的に行われ得る。
また、いくつかの実施形態において、少なくとも1つのコール・トゥ・アクションを選択することは、以下でより詳細に説明されるように、コール・トゥ・アクションのセットの中の各コール・トゥ・アクションのそれぞれのユーザ関連確率メトリックを決定すること、1つまたは複数のコール・トゥ・アクションが、指定されたユーザ関連確率閾値を少なくとも満たす1つまたは複数のそれぞれのユーザ関連確率メトリックに関連付けられていると決定すること、および、1つまたは複数のコール・トゥ・アクションを含むように少なくとも1つのコール・トゥ・アクションを識別することをさらに含み得る。
CTA収集モジュール226は、コール・トゥ・アクションのセットを記憶し、維持し、識別し、認識し、または収集等するように構成され得る。CTA収集モジュール226は、セット内のコール・トゥ・アクションに関する情報を記憶し、維持することもできる。コール・トゥ・アクションのセットは、ページにアクセスするユーザに対して潜在的に提示可能となり得る複数のコール・トゥ・アクションを含むことができる。いくつかの場合において、ページまたはページエンティティ(例えば、ページ管理者、ページ代表者等)は、セットにおけるコール・トゥ・アクションを選択し、定義し、カスタマイズし、および/または作成することができる。いくつかの例において、セットは、予め定義されたコール・トゥ・アクションまたはデフォルトのコール・トゥ・アクションを含むことができる。いくつかの実施形態において、CTA収集モジュール226は、図1の少なくとも1つのデータストア120に対応し、データストア120内に常駐し、データストア120と通信し、および/またはデータストア120と共に動作することができる。
さらに、ユーザ関連確率モジュール228は、ユーザに関連付けられた情報に少なくとも部分的に基づいて、コール・トゥ・アクションのセットの中の各コール・トゥ・アクションのそれぞれのユーザ関連確率メトリックを決定することを促進するように構成され得る。いくつかの場合において、特定のコール・トゥ・アクションのユーザ関連確率メトリックは、ページにアクセスしているユーザにとって特定のコールが関係し、もしくは興味が湧くこと、または、特定のコール・トゥ・アクションがユーザに対して提示された場合に、ユーザがその特定のコール・トゥ・アクションを実行することを選ぶことの可能性を示すことができる。いくつかの実装例において、ユーザ関連確率モジュール228は、CTA収集モジュール226と通信し、またはCTA収集モジュール226と共に動作して、コール・トゥ・アクションに関する情報だけでなく、ユーザに関する情報にもアクセスすることができる。このような情報に(少なくとも部分的に)基づいて、ユーザ関連確率モジュール228は、セットの中の各コール・トゥ・アクションのそれぞれのユーザ関連確率メトリックを決定し、計算し、予測し、および/または近似等することができる。いくつかの場合において、ユーザ関連確率モジュール228は、1つまたは複数の機械学習プロセスを使用して、(少なくとも部分的に)コール・トゥ・アクションについてのユーザ関連確率メトリックを決定することができる。多くの変形および他の可能性が存在し得ることが認識される。
ユーザ関連確率モジュール228は、1つまたは複数のコール・トゥ・アクションが、指定されたユーザ関連確率閾値を少なくとも満たす1つまたは複数のそれぞれのユーザ関連確率メトリックに関連付けられていると決定する工程を促進するようにさらに構成され得る。ユーザ関連確率閾値は、コール・トゥ・アクションについて選択され得る。いくつかの実施形態において、ユーザ関連確率閾値は、ソーシャルネットワーキングシステムまたはページエンティティによって選択され得る。例えば、1つまたは複数のコール・トゥ・アクションは、そのそれぞれのコール・トゥ・アクションがユーザに関係し、興味が湧き、または、そうでなければ適当であるという少なくとも70%の可能性を各々が示す、1つまたは複数のそれぞれのユーザ関連確率メトリック(例えば、スコア)に関連付けられ得る。この例において、ユーザ関連確率閾値は、少なくとも65%の可能性を要求し得る。様々な閾値が適切となり得ることが理解される。いくつかの場合において、ユーザ関連確率モジュール228は、1つまたは複数の機械学習プロセスを(少なくとも部分的に)利用して、ユーザ関連確率閾値を決定し、設定し、または指定することができる。ここでも、多くの変形が可能である。
いくつかの実施形態において、CTA選択モジュール222は、次いで、指定されたユーザ関連確率閾値を少なくとも満たす1つまたは複数のそれぞれのユーザ関連確率メトリックに関連付けられた1つまたは複数のコール・トゥ・アクションを含むように少なくとも1つのコール・トゥ・アクションを識別することができる。1つまたは複数のコール・トゥ・アクションのユーザ関連確率メトリックが、関連付けられたユーザ関連確率閾値を満足する場合、1つまたは複数のコール・トゥ・アクションが識別され、提示され得る。例えば、その後、少なくとも1つのコール・トゥ・アクションが、ページを介してユーザに対して提示され得る。
さらに、いくつかの実装例において、少なくとも1つのコール・トゥ・アクションがページエンティティに関連付けられるように、少なくとも1つのコール・トゥ・アクションが、CTA選択モジュール222によって選択され得る。いくつかの場合において、ページエンティティは、ページに対応するビジネスまたはブランドであってもよい。いくつかの例において、ページエンティティは、ビジネスまたはブランドを代表してページを管理する代表者または管理者であってもよい。一例において、少なくとも1つのコール・トゥ・アクションは、その少なくとも1つのコール・トゥ・アクションがページエンティティによって作成され、または選ばれるという点において、ページエンティティに関連付けられ得る。別の例において、少なくとも1つのコール・トゥ・アクションは、その少なくとも1つのコール・トゥ・アクションがページエンティティとの対話をもたらすという点において(例えば、コール・トゥ・アクションをクリックすることは、ページエンティティのストアフロントで購入を行うことをもたらす)、ページエンティティに関連付けられ得る。さらなる例において、少なくとも1つのコール・トゥ・アクションは、その少なくとも1つのコール・トゥ・アクションがページエンティティのパートナ(例えば、ビジネスパートナ、譲受人、譲渡人、スポンサー等)と関連付けられるという点において、ページエンティティに関連付けられ得る。多くの変形が可能である。
図2Cは、本開示の一実施形態に係る、コール・トゥ・アクションを提示することを促進するように構成された例示的なコール・トゥ・アクション(CTA)提示モジュール242を示す。いくつかの実施形態において、図1のコール・トゥ・アクション(CTA)提示モジュール108は、コール・トゥ・アクション(CTA)提示モジュール242として実装され得る。図2Cに示されるように、コール・トゥ・アクション(CTA)提示モジュール242は、ページカバー写真モジュール244と、ページ投稿モジュール246と、ページカードモジュール248とを含み得る。
前述のように、CTA提示モジュール242は、図2BのCTA選択モジュール222によって選択される少なくとも1つのコール・トゥ・アクションを、ソーシャルネットワーキングシステムによってサポートされるページなどの面を介してユーザに提示することを促進することができる。図2CのCTA提示モジュール242は、例えば、少なくとも1つのコール・トゥ・アクションを、少なくとも1つの対話要素、例えば、ユーザによってクリックされ、タップされ、または、別の方法で対話され得る少なくとも1つのボタンなどと関連付けて表示することによって、少なくとも1つのコール・トゥ・アクションを提示することができる。
いくつかの実施形態において、CTA提示モジュール242は、ページカバー写真モジュール244を利用して、ページのカバー写真内の少なくとも1つの対話要素を提示または表示することができる。例えば、ページは特定のカバー写真に関連付けられてもよい。少なくとも1つの対話要素(例えば、ボタン)は、特定のカバー写真をオーバーレイするものとして表示され得る。
いくつかの実装例において、CTA提示モジュール242は、ページ投稿モジュール246を利用して、ページ上で公開される投稿内に少なくとも1つの対話要素を表示することができる。例えば、ページは、ページエンティティによって公開されるおよび/またはページにアクセスする1人または複数のユーザによって公開されるコンテンツアイテムの1つまたは複数の投稿を提示することができる。少なくとも1つの対話要素は、投稿に対して添えられたものとして、投稿に隣接するものとして、または投稿内にあるものとして表示され得る。
いくつかの実装例において、CTA提示モジュール242は、ページカードモジュール248を利用して、ページに関連付けられたホバー要素、ページに関連付けられた検索バー要素、および/またはページに関連付けられた検索結果要素内に少なくとも1つの対話要素を表示することができる。一例において、ユーザがページへのリンク上でマウスホバーを行う場合、ソーシャルネットワーキングシステムはそのページのホバーカードを提示することができ、コール・トゥ・アクションに関連付けられた少なくとも1つの対話要素がそのホバーカード内に提示され得る。別の例において、ユーザがソーシャルネットワーキングシステムの検索バー内に文字をタイプし、ページの検索バーカードを動的に含む潜在的な検索結果が提示された場合、少なくとも1つの対話要素がその検索バーカード内に提示され得る。さらなる例において、ユーザが検索を行い、ページの検索結果カードを含む検索結果が提示された後、少なくとも1つの対話要素がその検索結果カード内に提示され得る。
多くの変形が可能であることが想定される。一例において、少なくとも1つの対話要素は、ページの情報セクション(例えば、「詳細」セクション)内に存在するものとして表示されてもよい。別の例において、CTA提示モジュール242は、ソーシャルネットワーキングシステムと通信するように構成されたウェブサイト(例えば、ソーシャルネットワーキングシステムのウェブサイト、ソーシャルネットワーキングシステムと共に動作可能であるが、ソーシャルネットワーキングシステムと別個のウェブサイト等)、またはソーシャルネットワーキングシステムと通信するように構成されたアプリケーション(例えば、ソーシャルネットワーキングシステムのアプリケーション、ソーシャルネットワーキングシステムと共に動作可能であるが、ソーシャルネットワーキングシステムと別個のアプリケーション等)のうちの少なくとも1つを使用して、少なくとも1つのコール・トゥ・アクションの提示を行わせることができる。いくつかの場合において、アプリケーションは、ソーシャルネットワーキングシステムと情報を交換し、ソーシャルネットワーキングシステムと共に動作するように構成されるとともに、交換されたメッセージに関連して少なくとも1つのコール・トゥ・アクションを提示するように構成されたメッセージングアプリケーションに対応し得る。
図2Dは、本開示の一実施形態に係る、コール・トゥ・アクションを実行することを促進するように構成された例示的なコール・トゥ・アクション(CTA)実行モジュール262を示す。いくつかの実施形態において、図1のコール・トゥ・アクション(CTA)実行モジュール110は、コール・トゥ・アクション(CTA)実行モジュール262として実装され得る。図2Dに示されるように、コール・トゥ・アクション(CTA)実行モジュール262は、リンク動作モジュール264と、ネイティブ動作モジュール266と、サードパーティ動作モジュール268とを含み得る。
本明細書において説明されるように、少なくとも1つのコール・トゥ・アクションは、ソーシャルネットワーキングシステムにサポートされるページなどの面を介して、ページにアクセスしているユーザに提示され得る。CTA実行モジュール262は、少なくとも1つのコール・トゥ・アクションに関して行われるユーザ対話を検出することを促進するように構成され得る。いくつかの例において、ユーザ対話の検出は、少なくとも1つのコール・トゥ・アクションに関連付けられた対話要素(例えば、入力要素、ボタン等)に関して、クリック、タップ、押下等が発生したと決定することを含むことができる。CTA実行モジュール262は、少なくとも1つのコール・トゥ・アクションに関連付けられた動作を実行することを促進するようにさらに構成され得る。この動作は、少なくとも1つのコール・トゥ・アクションについて実行可能な複数の動作のうちの1つに対応し得る。
いくつかの実装例において、CTA実行モジュール262は、ページに関連付けられたページエンティティから、1つまたは複数の命令を取得することを促進するように構成され得る。この動作は、ページエンティティからの1つまたは複数の命令に少なくとも部分的に基づいて、CTA実行モジュール262によって、複数の動作から選択され得る。いくつかの実施形態において、複数の動作は、リンクナビゲーション動作、ソーシャルネットワーキングシステムにインテグレートされたネイティブ動作、またはソーシャルネットワーキングシステムと共に動作可能なサードパーティによって実装されるサードパーティ動作のうちの少なくとも1つを含むことができるが、これらに限定されない。さらに、CTA実行モジュール262は、少なくとも1つのコール・トゥ・アクションに関して行われたユーザ対話の検出に応答して、動作を実行させ得る。
いくつかの例において、実行された動作が、リンクナビゲーションに対応する場合、リンク動作モジュール264は、リンクナビゲーション動作に関連付けられている指定されたリンクへナビゲーションすることによって、その動作の実行を促進することができる。例えば、ユーザ対話が、少なくとも1つのコール・トゥ・アクション(に関連付けられている対話型のボタン)に関して行われたことが検出される場合、リンク動作モジュール264は、その少なくとも1つのコール・トゥ・アクションに関連付けられたユニフォームリソースロケータ(URL)を取得し、このURLを、ページにアクセスするために使用されるブラウザ、アプリケーション、または別のサービスにおいて開かせ得る。
いくつかの場合において、実行された動作が、ソーシャルネットワーキングシステムにインテグレートされたネイティブ動作に対応する場合、ネイティブ動作モジュール266は、ソーシャルネットワーキングシステムにインテグレートされたアプリケーションまたはサービスのうちの少なくとも1つへのアクセスを提供することによって、その動作の実行を促進することができる。アプリケーションまたはサービスは、ユーザによって求められる任意のタイプの機能またはコンテンツを提供することができる。一例において、ユーザ対話が検出される場合、ネイティブ動作モジュール266は、ソーシャルネットワーキングシステムにおいて実行されるゲームアプリケーションを開き、または実行することができる。別の例において、ユーザ対話が検出される場合、ネイティブ動作モジュール266は、ソーシャルネットワーキングシステムにおいて実行されるストリーミングサービスへ、例えばページエンティティに関連付けられてソーシャルネットワーキングシステムによって実装されるメディアストリーミングサービスなどへ、ナビゲーションし、提示することができる。そのため、ソーシャルネットワーキングシステムとより深く統合されたユーザ体験を提供することが可能である。
いくつかの実施形態において、実行された動作が、ソーシャルネットワーキングシステムと共に動作可能なサードパーティによって実装されるサードパーティ動作に対応する場合、サードパーティ動作モジュール268は、サードパーティアプリケーションまたはサードパーティサービスのうちの少なくとも1つへのアクセスを提供することによって、その動作の実行を促進することができる。任意のタイプのサードパーティアプリケーションまたはサードパーティサービスが実装され得る。例えば、ユーザ対話が検出される場合、サードパーティ動作モジュール268は、サードパーティ(例えば、ページエンティティ、ページエンティティに関連付けられたエンティティまたはパートナ、ページエンティティと別個のエンティティ等)によって実装され、開発され、管理され、または、別の方法で利用されるライドシェアリングアプリケーションへナビゲーションし、提示することができる。別の例において、ユーザ対話が検出される場合、サードパーティ動作モジュール268は、例えば、ソーシャルネットワーキングシステム内のページなどを介して、買物サービスを提供することができる。この例において、買物サービスは、サードパーティによって実装され、開発され、管理され、または、別の方法で利用されるが、ソーシャルネットワーキングシステム内のページからアクセス可能であるeコマースのストアフロントに対応し得る。そのため、例えば、サードパーティなどによって、よりカスタマイズされたユーザ体験を提供することが可能である。
いくつかの実施形態において、ユーザに関連付けられた情報が取得され得る。一例において、ユーザに関連付けられた情報の少なくとも一部に少なくとも部分的に基づいて、CTA実行モジュール262は、複数の動作から動作を選択することができる。別の例において、CTA実行モジュール262は、例えば、動作の実行中に、情報の少なくとも一部をフォームに予め記入し、または予め投入することなどによって、動作の実行時に、ユーザに関連付けられた情報の少なくとも一部を利用することができる。このフォームは、例えば、ユーザ情報を入力とみなすリード生成フォームに対応し得る。さらなる例において、CTA実行モジュール262は、ライドシェアリングアプリケーション(またはサービス)を実行し、ライドシェアリングアプリケーションに対してユーザのロケーション情報を提供することによって、動作の実行時に、ユーザに関連付けられているロケーション(例えば、GPS)情報を利用することができる。多くの変形が可能である。
いくつかの場合において、ユーザの識別子が、取得され得る。ユーザによる同意の表明に基づいて、CTA実行モジュール262は、識別子に少なくとも部分的に基づいて、少なくとも1つのコール・トゥ・アクションに関連付けられた1つまたは複数のアプリケーションまたはサービスのユーザのアカウントへ、ユーザをサインインさせることができる。例えば、ユーザは、ソーシャルネットワーキングシステムに既に確証され、サインイン(またはログイン)済みであるので、ユーザは、アプリケーションまたはサービスの自身のユーザアカウントに自動的にサインインすることができる。CTA実行モジュール262によって自動的に行われる認証は、そうでなければ、コール・トゥ・アクションの実行に関与するアプリケーションまたはサービスのユーザのあらゆるアカウントへ手動でサインインしなければならないという、ユーザに対する負担を除去することができる。さらに、いくつかの実装例において、ユーザのアカウントに関連付けられた情報は、ページを介してユーザに提供され得る。一例において、ソーシャルネットワーキングシステムへのサインインに続いて、ユーザがそのように同意した場合には、開示された技術は、ユーザを自身の航空会社アカウントに自動的にサインインさせることができる。この例において、ユーザには、頻繁利用客ポイント/マイルまたは旅程を含む、自身の航空会社情報が、ソーシャルネットワーキングシステム内のページを介して、自動的に提示され得る。別の例において、開示された技術は、ユーザを自身の電子商取引アカウントに自動的にサインインさせることができる。ユーザには、この例において、注文の詳細または発送/追跡情報を含む、自身の電子商取引情報が、ソーシャルネットワーキングシステム内のページを介して自動的に提示され得る。ここでも、多くの変形が可能であることが想定される。
図3Aは、本開示の一実施形態に係る、ソーシャルネットワーキングシステムリソースに対するコール・トゥ・アクションを作成することに関連付けられた例示的なシナリオ300を示す。例示的なシナリオ300は、ソーシャルネットワーキングシステム(例えば、図7のソーシャルネットワーキングシステム730)内の例示的なページ302を示す。この例示的なシナリオ300において、開示された技術は、例示的なページ302により、コール・トゥ・アクションを作成するための対話要素(例えば、ボタン)304を提供することができる。例えば、ページ302についてコール・トゥ・アクションを依然として作成する必要がある場合に、管理者、代表者、またはページ302に関連付けられた他のエンティティが、ページ302を訪問し、閲覧し、アクセスするとき、対話要素304が提供され得る。次いで、管理者、代表者、またはページ302に関連付けられた他のエンティティが、コール・トゥ・アクションを作成するためにその対話要素304をクリックし、タップし、または対話すると、そのページ302に対するコール・トゥ・アクションを作成するための要求が管理者、代表者、または他のエンティティによって作られ得る。
いくつかの実施形態において、管理者、代表者、またはページ302に関連付けられた他のエンティティが、対話要素304に対してマウスホバーまたはボタンホールド(例えば、タップや押下)などを行うと、説明または記述306が提供され得る。図示されるように、説明または記述306は、管理者、代表者、または他のエンティティに対し、対話要素304の目的を示すことができる。
さらに、いくつかの実装例において、対話要素304および/またはコール・トゥ・アクションは、ページ302に関連付けられた少なくとも1つのカバー写真308を介して提示可能とされ得る。少なくとも1つのカバー写真308は、ユーザ対話を受信するように構成され得る。ユーザ対話は、例えば、クリック、タップジェスチャ、スクロールコマンド、および/またはスワイプジェスチャなどを含み得る。一例において、ページ302に対する複数のカバー写真は複数の製品またはサービスを提示することができる。複数のカバー写真は、複数の製品またはサービスの各々を閲覧またはアクセスするために、仮想カルーセルと同様にスクロールまたはナビゲートされ得る。1つ以上のコール・トゥ・アクションは、ページ302の複数のカバー写真を介してアクセス可能な複数の製品またはサービスの各々について作成され得る。多くの変形が可能であることが理解される。
図3Bは、本開示の一実施形態に係る、ソーシャルネットワーキングシステムリソースに対するコール・トゥ・アクションを作成することに関連付けられた例示的なシナリオ320を示す。例示的なシナリオ320は、ページに対するコール・トゥ・アクションを作成することを促進するように構成された例示的なインターフェース322を示す。例示的なインターフェース322は、ページに対するコール・トゥ・アクションを作成するための1つまたは複数のオプション324を提供することができる。いくつかの実施形態において、1つ以上のオプション324は、そのページに関連付けられた情報に基づいて推奨され、提案され、および/または提供され得る。
図3Bの例において、ページに関連付けられた情報はローカルビジネスに関連付けられている。このため、開示された技術は、ローカルビジネスに関連する、またはローカルビジネスに適した少なくともいくつかのオプションを推奨し、提案し、および/または提供することができる。従って、図示されるように、1つまたは複数の提供されたオプション324は、「訪問する」コール・トゥ・アクションを作成するための訪問オプションを含むことができる。
さらに、いくつかの実装例において、例示的なインターフェース322は、コール・トゥ・アクションが選択されたとき、ページのプレビュー326を提供することができる。この例示的なシナリオ320において、管理者、代表者、またはページに関連付けられた他のエンティティは、「いま購入する」コール・トゥ・アクション328を作成するために、1つまたは複数の提供されたオプション324の中から購入オプションを選択または利用することができる。上記と同様、ここで挙げた例は、例示目的のためであり、多くの変形または他の可能性が存在し得る。
図3Cは、本開示の一実施形態に係る、ソーシャルネットワーキングシステムリソースに対するコール・トゥ・アクションを作成することに関連付けられた例示的なシナリオ340を示す。例示的なシナリオ340は、ページに対するコール・トゥ・アクションを作成することを促進するように構成された、図3Bの例示的なインターフェース322などのような例示的なインターフェース342を示す。いくつかの実施形態において、開示された技術は、例示的なインターフェース342により、コール・トゥ・アクションが有効とされたときに実行されるべき動作を特定するための動作入力オプションを提供することができる。図3Cの例に示されるように、動作入力オプションは、フルバージョンウェブアドレス344または簡易バージョンウェブアドレス346の入力を可能とし得る。従って、この例において、管理者、代表者、またはページに関連付けられた他のエンティティは、デスクトップバージョンウェブサイトアドレスおよび/またはモバイルバージョンウェブサイトアドレスを入力することができる。このため、ページの閲覧者または訪問者がそのページに対するコール・トゥ・アクション348をクリックしたとき、閲覧者または訪問者は、デスクトップコンピューティングシステムを用いていた場合にはウェブサイトのフルバージョンに対応する宛先(例えば、ランディングページ)へと導かれ、モバイルコンピューティングシステムを用いていた場合にはウェブサイトの簡易バージョンに対応する宛先(例えば、ランディングページ)へと導かれる。
さらに、図3Cには明示的には示されていないが、動作入力オプションは、いくつかの場合において、アプリケーションディープリンクの入力も可能とし得る。例えば、ページの閲覧者または訪問者がそのページに対するコール・トゥ・アクション348をクリックまたは有効としたとき、その閲覧者または訪問者のコンピューティングシステムにおいて特定のアプリケーションが開かれるまたは起動される。いくつかの例では、閲覧者または訪問者がコール・トゥ・アクション348をクリックまたは有効としたとき、特定のアプリケーションの特定の部分、特定のインターフェース、および/または特定の特徴がナビゲートまたはアクセスされ得る。この例において、特定のアプリケーションがコンピューティングシステムにインストールされていない場合には、その特定のアプリケーションへのアクセスを提供するアプリケーションマーケットプレイスまたはストアが、その閲覧者または訪問者のコンピューティングシステムに提供され得る。
さらに、いくつかの実装例において、動作入力オプションは、サードパーティサービス(またはアプリケーション)のインスタンスの選択を可能とし得る。サードパーティサービスのインスタンスは、例えば、ソーシャルネットワーキングシステムのために固有に開発され得る。実行されるべき動作は、サードパーティサービス(例えば、予約サービス、地図サービス、ビジネスレビューサービス、運送サービスなど)のインスタンスに基づくものとすることができる。従って、いくつかの場合では、コール・トゥ・アクションに連動してテキスト入力フィールドを生成するためのテキスト入力オプションが提供され得る。テキスト入力フィールドを介して受信されたテキストは、コール・トゥ・アクションが有効とされたときの動作を実行する際に利用することができる。例えば、テキスト入力フィールドは、ページの閲覧者または訪問者が、「加入者」または「フォロー」コール・トゥ・アクションをクリックしたとき、タップしたとき、対話したとき、または有効としたときに、自身のeメールアドレスを入力することを可能とし得る。上述のように、多くの変形または他の可能性が存在し得ることが想定される。
図4は、本開示の一実施形態に係る、コール・トゥ・アクションを利用することに関連付けられた例示的なシナリオ400を示す。例示的なシナリオ400は、ソーシャルネットワーキングシステム(例えば、図7のソーシャルネットワーキングシステム730)内の例示的なページ402を示す。ページ402は、例示的なページエンティティ404に関連付けられ得る。例示的なシナリオ400において、ページエンティティ404は、ローカルビジネスであるジェーンのスポーツ用品店に対応し得る。さらに、ページ402は、ページ管理者、ページ「所有者」、および/または、ローカルビジネスの代表者である例えばジェーン・ドウによって管理され得る。
図4に示されるように、ページ402は、カバー写真406を含むことができる。この例示的なシナリオ400において、開示された技術は、例えば、カバー写真406の上にコール・トゥ・アクション408をオーバーレイすることなどによって、カバー写真406内にコール・トゥ・アクション408を提示することができる。コール・トゥ・アクション408は、ボタンなどの対話要素を含むことができ、または関連付けることが可能である。ページ402にアクセスし、または閲覧しているユーザが、コール・トゥ・アクション408をクリックし、タップし、対話し、または有効とする(すなわち、コール・トゥ・アクション408に関連付けられている対話要素と対話する)場合、開示された技術は、前述のように、コール・トゥ・アクション408に関連付けられた動作を実行することができる。
さらに、この例示的なシナリオ400において、ページエンティティ404(または、ページ管理者、ページ「所有者」、代表者等)は、「いま買物する」に対応するようにコール・トゥ・アクション408をカスタマイズすることができる。また、この特定のコール・トゥ・アクション408は、特定のユーザに向けてターゲティングされてもよい。特定のコール・トゥ・アクション408は、ページ402にアクセスし、または閲覧している特定のユーザに関する情報に基づいて、提示用に選択され得る。この例示的なシナリオ400において、開示された技術は、ユーザに関連付けられた情報(の少なくとも一部)に基づいて、ユーザがスポーツ(例えば、バスケットボール)と関係する製品の買物に恐らく興味を持つであろうことを決定すること、または予測することができる。
さらに、この例において、ユーザが、コール・トゥ・アクション「いま買物する」408と対話し、またはコール・トゥ・アクション「いま買物する」408を有効とした(すなわち、コール・トゥ・アクション408に関連付けられている対話要素と対話し、または対話要素を有効とした)ことが検出される場合、開示された技術は、コール・トゥ・アクション408に関連付けられた動作を実行することができる。動作は、例えば、ページ402を介して提供される、eコマース・ストアフロント410などの買物サービスへナビゲーションすること、または買物サービスを開く(オープンする)ことに対応し得る。そのため、ユーザは、より簡単に、または、より便利に、バスケットボール製品の買物をすることができる。ここでも、この例示的なシナリオ400は説明の目的のために提供されており、多くの変形および他の可能性が存在し得ることが理解される。
図5は、本開示の一実施形態に係る、コール・トゥ・アクションを利用することに関連付けられた例示的なシナリオ500を示す。例示的なシナリオ500は、ソーシャルネットワーキングシステム(例えば、図7のソーシャルネットワーキングシステム730)内の例示的なページ502を示す。例示的なページ502は、コンピューティングデバイス(またはシステム)、例えば、スマートフォンまたはタブレット型コンピュータなどにおいて提示され得る。ページ502は、例示的なページエンティティ504に関連付けられ得る。例示的なシナリオ500において、ページエンティティ504は、ローカルビジネスであるジョンのピザ店に対応し得る。さらに、ページ502は、ページ管理者、ページ「所有者」、および/またはローカルビジネスの代表者である例えばジョン・ドウによって管理され得る。
図5に示されるように、ページ502は、情報セクション506を含み得る。この例示的なシナリオ500において、開示された技術は、ページ502の情報セクション506内にコール・トゥ・アクション「いま注文する」508を提示することができる。ページ502にアクセスし、または閲覧しているユーザが、コール・トゥ・アクション508をクリックし、タップし、または対話する(すなわち、コール・トゥ・アクション508に関連付けられた対話要素と対話する)場合、開示された技術は、上述のように、コール・トゥ・アクション508に関連付けられた動作を実行することができる。この例において、動作は、ジョーのピザ店において注文することに関連付けられ得る。
いくつかの例において、本開示の様々な実施形態は、プラットフォーム(例えば、デスクトップウェブサイト、デスクトップアプリケーション、モバイルウェブサイト、モバイルアプリケーション、オペレーティングシステム等)とは無関係に、提供または利用され得る。いくつかの場合において、本開示の様々な実施形態は、各プラットフォームに合わせてカスタマイズまたは修正されてもよい。多くの変形が可能である。
図6Aは、本開示の一実施形態に係る、コール・トゥ・アクションを利用することに関連付けられた例示的な方法600を示す。特に明記しない限り、様々な実施形態の範囲内において、同様の順序もしくは代替的な順序でまたは並行して行われる、付加的なステップ、より少ないステップ、または代替的なステップが存在してもよいことが認識される。
ブロック602において、例示的な方法600は、ソーシャルネットワーキングシステム内のページに対するコール・トゥ・アクションを作成するための要求を受信し得る。ブロック604において、例示的な方法600は、ソーシャルネットワーキングシステムからページに関連付けられた情報を取得し得る。ブロック606において、例示的な方法600は、ページに関連付けられた情報に基づいて、そのページに対するコール・トゥ・アクションを作成するための1つまたは複数のオプションを提供し得る。
図6Bは、本開示の一実施形態に係る、コール・トゥ・アクションを利用することに関連付けられた例示的な方法650を示す。上述したように、特に明記しない限り、様々な実施形態の範囲内において、同様の順序もしくは代替的な順序でまたは並行して行われる、付加的なステップ、より少ないステップ、または代替的なステップが存在してもよいことが理解される。
ブロック652において、例示的な方法650は、ページに関連付けられた情報を分析することにより、そのページに関する少なくとも類似性閾値レベルを各々有する1つまたは複数の他のページを識別し得る。ブロック654において、例示的な方法650は、1つまたは複数の他のページのうちの少なくともいくつかによって利用されるオプションのセットを識別し得る。ブロック656において、例示的な方法650は、そのオプションのセットの中から、少なくとも1つのオプションのサブセットを、ページに対するコール・トゥ・アクションを作成するための1つまたは複数のオプション内に含め得る。
いくつかの実施形態において、ページは、ソーシャルネットワーキングシステム外のオンラインリソースに関連付けられ得る。コール・トゥ・アクションは、ソーシャルネットワーキングシステム外のオンラインリソースに対するプラグインとして提示可能とすることができる。例えば、ソーシャルネットワーキングシステム外のウェブサイトは、リンク付けのためのソーシャルプラグイン、共有化のためのソーシャルプラグイン、コメントするためのソーシャルプラグインなどを提供することができる。また、コール・トゥ・アクションは、ウェブサイト上で別のプラグインとして提示することができる。いくつかの実装例において、コール・トゥ・アクションは、ページに関する情報および/またはソーシャルネットワーキングシステム外のオンラインリソースにアクセスしているユーザに関する情報などの、ソーシャルネットワーキングシステムから取得された情報に基づいて、プラグインとして作成され、生成され、および/または提供され得る。いくつかの実施形態において、コール・トゥ・アクションは、ソーシャルネットワーキングシステム外のオンラインリソースによって提供される製品やサービスに関する情報などのソーシャルネットワーキングシステムから取得された情報に基づいて、プラグインとして作成され、生成され、および/または提供され得る。
一例において、ソーシャルネットワーキングシステム内のページはブランドと関連付けられ得る。ページは、コール・トゥ・アクションを提供し得る。この例において、ブランドは、オフィシャルウェブサイトも有することができる。ブランドのオフィシャルウェブサイトは、そのオフィシャルウェブサイトを通じて投稿されたコンテンツをリンク付けする、共有化する、および/またはそのコンテンツにコメントするなどのソーシャルプラグインのセットを提示することができる。ソーシャルプラグインのセットは、コール・トゥ・アクションに対するプラグインも含むことができる。この例を続けると、オフィシャルウェブサイトの閲覧者(または訪問者)は、ソーシャルネットワーキングシステムのユーザとすることもできる。このため、閲覧者に関する情報は、その閲覧者に関する情報に基づいてコール・トゥ・アクションがその閲覧者に対してパーソナライズされ、ページおよび/またはオフィシャルウェブサイトにおいてプラグインとして提供されるように、ソーシャルネットワーキングシステムから取得され得る。さらに、この例において、オフィシャルウェブサイトは、販売用のブランド商品を提示することができ、このためブランド商品に関する情報を提供し得る。これにより、ブランド商品に対する「いま買う」コール・トゥ・アクションを生成することなどによってコール・トゥ・アクションを作成し、生成し、および/または提供する際に、そのブランド商品に関する情報を利用することができる。
いくつかの例において、開示された技術は、ページ管理者、代表者、またはエンティティが、入力された/選択された動詞、名詞、および/または修飾語を承認することなどによって、コール・トゥ・アクションをカスタマイズすることを可能とし得る。さらに、いくつかの実施形態において、ページ(またはそのページ上のコンテンツ)は、ソーシャルネットワーキングシステムに関連付けられたソーシャルグラフ内における第1のノードとして提示することが可能であり、ユーザは、そのソーシャルグラフ内における第2のノードとして提示することが可能である。ユーザが、ページを介して提示された少なくとも1つのコール・トゥ・アクションと対話するとき、ソーシャルグラフ内における第1および第2のノード間にエッジが作成され得る。
本開示の様々な実施形態に関連付けられた多くの他のユーザ、アプリケーション、および/または変形が存在し得ることが想定される。例えば、いくつかの場合において、ユーザは、開示された技術を利用するためにオプトインするか否かを選択することができる。また、開示された技術は、様々なプライバシー設定や好みの傾向が管理され、個人情報が開示されないようにすることを保証し得る。他の例において、本開示の様々な実施形態が、時間をかけて学習、改善、および/または改良され得る。
[ソーシャルネットワーキングシステム−実装例]
図7には、本開示の一実施形態による、種々のシナリオにおいて利用可能な一例のシステム700のネットワーク図を示す。このシステム700は、1つまたは複数のユーザデバイス710と、1つまたは複数の外部システム720と、ソーシャルネットワーキングシステム(またはサービス)730と、ネットワーク750とを含む。一実施形態では、上述の実施形態に関連して説明したソーシャルネットワーキングサービス、プロバイダ、および/またはシステムは、ソーシャルネットワーキングシステム730として実装されてもよい。例示の目的のために、図7によって示される、システム700の実施形態は、単一の外部システム720と、単一のユーザデバイス710とを含む。ただし、他の実施形態において、システム700は、より多くのユーザデバイス710、および/またはより多くの外部システム720を含んでもよい。特定の実施形態において、ソーシャルネットワーキングシステム730は、ソーシャルネットワークプロバイダによって運営されるのに対して、外部システム720は、異なるエンティティによって運営され得るという点で、ソーシャルネットワーキングシステム730とは別個のものである。しかしながら、様々な実施形態において、ソーシャルネットワーキングシステム730および外部システム720は、共に動作して、ソーシャルネットワーキングシステム730のユーザ(またはメンバー)に対してソーシャルネットワーキングサービスを提供する。この意味において、ソーシャルネットワーキングシステム730は、外部システム720などの他のシステムがインターネット上のユーザに対してソーシャルネットワーキングサービスおよび機能性を提供するために使用し得るプラットフォームまたはバックボーンを提供する。
ユーザデバイス710は、ユーザから入力を受け取り、ネットワーク750を通じてデータを送受信することができる1つまたは複数のコンピューティングデバイス(またはシステム)を備える。一実施形態において、ユーザデバイス710は、例えば、マイクロソフトウィンドウズ(登録商標)と互換性のあるオペレーティングシステム(OS)、Apple_OS_X、および/またはLinux(登録商標)ディストリビューションを実行する従来のコンピュータシステムである。別の実施形態において、ユーザデバイス710は、スマートフォン、タブレット、携帯情報端末(PDA)、携帯電話、ラップトップコンピュータ、ウェアラブルデバイス(例えば、メガネ、腕時計、ブレスレットなど)、カメラ、電気製品など、コンピューティングデバイスまたはコンピュータ機能性を有するデバイスであってよい。ユーザデバイス710は、ネットワーク750を通じて通信するように構成される。ユーザデバイス710は、アプリケーション、例えば、ユーザデバイス710のユーザがソーシャルネットワーキングシステム730と相互作用することを可能にするブラウザアプリケーションを実行することができる。別の実施形態において、ユーザデバイス710は、iOSおよびANDROID(登録商標)などの、ユーザデバイス710のネイティブオペレーティングシステムによって提供されるアプリケーションプログラミングインタフェース(API)を通じてソーシャルネットワーキングシステム730を相互作用する。ユーザデバイス710は、ネットワーク750を通じて外部システム720およびソーシャルネットワーキングシステム730と通信するように構成される。ネットワーク750は、有線通信システムおよび/または無線通信システムを使用する、ローカルエリアネットワークおよび/または広域ネットワークの任意の組み合わせを備え得る。
1つの実施形態において、ネットワーク750は、標準的な通信技術およびプロトコルを使用する。したがって、ネットワーク750は、イーサネット(登録商標)、802.11、WiMAX(登録商標)、3G、4G、CDMA、GSM(登録商標)、LTE、デジタル加入者線(DSL)等などの技術を使用するリンクを含み得る。同様に、ネットワーク750上で使用されるネットワーキングプロトコルは、マルチプロトコル・ラベル・スイッチング(MPLS)、送信制御プロトコル/インターネットプロトコル(TCP/IP)、ユーザ・データグラム・プロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)、簡易メール転送プロトコル(SMTP)、ファイル転送プロトコル(FTP)などを含み得る。ネットワーク750上で交換されるデータは、ハイパーテキストマークアップ言語(HTML)および拡張マークアップ言語(XML)を含む技術および/またはフォーマットを使用して表現され得る。また、全部または一部のリンクは、セキュアソケットレイヤ(SSL)、トランスポートレイヤセキュリティ(TLS)、およびインターネットプロトコルセキュリティ(IPsec)などの従来の暗号化技術を使用して暗号化され得る。
1つの実施形態において、ユーザデバイス710は、外部システム720から、およびソーシャルネットワーキングシステム730から受信されるマークアップ言語文書714を、ブラウザアプリケーション712を使用して処理することによって、外部システム720からのコンテンツおよび/またはソーシャルネットワーキングシステム730からのコンテンツを表示し得る。マークアップ言語文書714は、コンテンツと、そのコンテンツのフォーマッティングまたは表示方法を記述する1つまたは複数の命令とを識別する。マークアップ言語文書714内に含まれる命令を実行することによって、ブラウザアプリケーション712は、マークアップ言語文書714によって記述されたフォーマットまたは表示方法を使用して、識別されたコンテンツを表示する。例えば、マークアップ言語文書714は、外部システム720およびソーシャルネットワーキングシステム730から得られたテキストおよび/または画像データを含む複数のフレームを有するウェブページを生成および表示するための命令を含む。様々な実施形態において、マークアップ言語文書714は、拡張マークアップ言語(XML)データ、拡張ハイパーテキストマークアップ言語(XHTML)データ、または、他のマークアップ言語データを含むデータファイルを備える。また、マークアップ言語文書714は、外部システム720とユーザデバイス710との間のデータ交換を容易にするためのジャバスクリプト(登録商標)・オブジェクト・ノーテーション(JSON)データ、パディング付きのJSON(JSONP)データ、およびジャバスクリプトデータを含み得る。ユーザデバイス710上のブラウザアプリケーション712は、ジャバスクリプトコンパイラを使用して、マークアップ言語文書714を復号し得る。
マークアップ言語文書714は、FLASH(商標)アプリケーションまたはUnity(商標)アプリケーション、Silverlight(商標)アプリケーションフレームワーク等などの、アプリケーションまたはアプリケーションフレームワークも含み、または、これらに対してもリンクし得る。
1つの実施形態において、ユーザデバイス710は、ユーザデバイス710のユーザがソーシャルネットワーキングシステム730へログインしたかを示すデータを含む、1つまたは複数のクッキー716も含む。クッキー716は、ソーシャルネットワーキングシステム730からユーザデバイス710へ通信されるデータの修正を可能とし得る。
外部システム720は、1つまたは複数のウェブページ722a、722bを含む、1つまたは複数のウェブサーバを含む。1つまたは複数のウェブページ722a、722bは、ネットワーク750を使用して、ユーザデバイス710へ通信される。外部システム720は、ソーシャルネットワーキングシステム730とは別個である。例えば、外部システム720は、第1のドメインに対して関連付けられるが、ソーシャルネットワーキングシステム730は、別個のソーシャルネットワーキングドメインに対して関連付けられる。外部システム720に含まれるウェブページ722a、722bは、コンテンツを識別し、識別されたコンテンツのフォーマッティングおよび表示方法を特定する命令を含むマークアップ言語文書714を備える。
ソーシャルネットワーキングシステム730は、複数のユーザを含み、ソーシャルネットワークのユーザに対して、ソーシャルネットワークの他のユーザと通信および相互作用するための能力を提供する、ソーシャルネットワークのための1つまたは複数のコンピューティングデバイスを含む。幾つかの例では、ソーシャルネットワークは、グラフ、すなわち、エッジとノードとを含むデータ構造によって表現され得る。データベース、オブジェクト、クラス、メタ要素、ファイル、または任意の他のデータ構造を含むが、これらに限定されない、他のデータ構造も、ソーシャルネットワークを表現するために使用され得る。ソーシャルネットワーキングシステム730は、オペレータによって処理、管理、または制御されてもよい。ソーシャルネットワーキングシステム730のオペレータは、人間、自動化されたアプリケーション、またはコンテンツを管理し、ポリシーを規制し、ソーシャルネットワーキングシステム730内の使用メトリックを収集するための一連のアプリケーションであってよい。任意の種類のオペレータが用いられてもよい。
ユーザは、ソーシャルネットワーキングシステム730に加入し、次いで、そのユーザがつなげられることを望む、ソーシャルネットワーキングシステム730の任意の数の他のユーザへのつながりを追加し得る。本明細書において、「友達」という用語は、ユーザがソーシャルネットワーキングシステム730を通じてつながり、関連、または関係を形成した、ソーシャルネットワーキングシステム730の任意の他のユーザに及ぶ。例えば、一実施形態において、ソーシャルネットワーキングシステム730内のユーザが、ソーシャルグラフ内のノードとして表現される場合、「友達」という用語は、2つのユーザノード間に形成され、かつ、2つのユーザノードを直接的に接続するエッジを指し得る。
つながりは、ユーザによって明示的に追加されても、または、ユーザの共通の特性(例えば、同じ教育機関の卒業生であるユーザ)に基づいて、ソーシャルネットワーキングシステム730によって自動的に作成されてもよい。例えば、第1のユーザは、友達になりたい特定の他のユーザを具体的に選択する。ソーシャルネットワーキングシステム730におけるつながりは、通常は双方向であるが、双方向である必要はなく、そのため、「ユーザ」および「友達」という用語は、枠組みに依存する。ソーシャルネットワーキングシステム730のユーザ間のつながりは、通常は、双務的(「二方向」)または「相互的」であるが、つながりは、片務的、または「一方向」であってもよい。例えば、ボブおよびジョーの両者が、ソーシャルネットワーキングシステム730のユーザであり、互いにつながっている場合、ボブおよびジョーは、互いのつながりである。他方で、ボブは、ジョーによってソーシャルネットワーキングシステム730へ通信されたデータを見るためにジョーとつながることを欲するが、ジョーは、相互的なつながりを形成することを欲しない場合、片務的なつながりが確立され得る。ユーザ間のつながりは、直接的なつながりであり得る。ただし、ソーシャルネットワーキングシステム730のいくつかの実施形態は、つながりが、1つまたは複数のつながりのレベルまたは分離度を通じた間接的なものとなることを可能にする。
ユーザ間のつながりを確立および維持し、ユーザ間の相互作用を可能にすることに加えて、ソーシャルネットワーキングシステム730は、ソーシャルネットワーキングシステム730によってサポートされる様々なタイプのアイテムに対してアクションを行うための能力をユーザに対して提供する。こうしたアイテムは、ソーシャルネットワーキングシステム730のユーザが所属し得るグループまたはネットワーク(すなわち、人々、エンティティ、およびコンセプトのソーシャルネットワーク)、ユーザが興味を持ち得るイベントまたはカレンダー入力、ユーザがソーシャルネットワーキングシステム730を通じて使用し得るコンピュータベースのアプリケーション、ソーシャルネットワーキングシステム730によって提供されるサービスを通じてまたはソーシャルネットワーキングシステム730を通じてユーザがアイテムを購入または販売することを可能にする取引、ならびにユーザがソーシャルネットワーキングシステム730内外で実行し得る広告との相互作用を含み得る。これらは、ユーザがソーシャルネットワーキングシステム730上で作用を与え得るアイテムのわずかな例にすぎず、多くの他の例が可能である。ユーザは、ソーシャルネットワーキングシステム730において、または、ソーシャルネットワーキングシステム730とは別個の外部システム720もしくはネットワーク750を通じてソーシャルネットワーキングシステム730に対して結合される外部システム722において表現されることが可能なありとあらゆるものと相互作用し得る。
ソーシャルネットワーキングシステム730は、多様なエンティティとリンクすることも可能である。例えば、ソーシャルネットワーキングシステム730は、ユーザが互いに相互作用すること、および、API、ウェブサービス、または他の通信チャネルを通じて外部システム720または他のエンティティと相互作用することを可能にする。ソーシャルネットワーキングシステム730は、複数のエッジによって相互に連結されている複数のノードを含む「ソーシャルグラフ」を生成し維持する。ソーシャルグラフ内の各ノードは、別のノードに対して作用を与え得るエンティティおよび/または別のノードによって作用を与えられ得るエンティティを表現し得る。ソーシャルグラフは種々の種類のノードを含んでもよい。ソーシャルグラフは、例えば、ユーザ、非人間エンティティ、コンテンツアイテム、ウェブページ、グループ、アクティビティ、メッセージ、コンセプト、およびソーシャルネットワーキングシステム730内のオブジェクトによって表現され得る任意の他のものを含む、様々なタイプのノードを含み得る。ソーシャルグラフ内の2つのノード間のエッジは、ノード関係から、またはノードのうちの一方によって他方に対して実行されたアクションから生じ得る、2つのノード間の特定の種類のつながり、または関連を表現し得る。さらに説明されるように、ノード間のエッジは重み付けされ得る。エッジの重みは、ノード間のつながりまたは関連付けの強度などの、そのエッジに対して関連付けられている属性を表現し得る。異なるタイプのエッジが、異なる重みと共に提供され得る。例えば、あるユーザが別のユーザに「いいね!」を表明するときに作成されるエッジにはある重みが与えられる一方、ユーザが別のユーザを友達とするときに作成されるエッジには別の重みが与えられてもよい。
一例として、第1のユーザが第2のユーザを友達として識別するとき、ソーシャルグラフにおいて1つのエッジが生成され、第1のユーザを表すノードと第2のユーザを表す第2のノードとを接続する。様々なノードが互いに関係するまたは対話する際、ソーシャルネットワーキングシステム730は、それらの関係や対話を反映するように、それらの種々のノードを接続するエッジを修正する。
ソーシャルネットワーキングシステム730は、ユーザによるソーシャルネットワーキングシステム730との相互作用を高める、ユーザにより生成されたコンテンツも含む。ユーザにより生成されたコンテンツは、ユーザがソーシャルネットワーキングシステム730に対して追加し、アップロードし、送信し、または「投稿し」得るあらゆるものを含み得る。例えば、ユーザは、ユーザデバイス710からソーシャルネットワーキングシステム730への投稿を通信する。投稿は、ステータスアップデートもしくは他の文字情報などのデータ、位置情報、写真などの画像、ビデオ、リンク、音楽、または、他の同様のデータおよび/もしくはメディアを含み得る。また、コンテンツは、サードパーティによってソーシャルネットワーキングシステム730に対して追加され得る。コンテンツ「アイテム」は、ソーシャルネットワーキングシステム730においてオブジェクトとして表現される。このようにして、ソーシャルネットワーキングシステム730のユーザは、様々な通信チャネルを通じて様々なタイプのテキストおよびコンテンツアイテムを投稿することによって、互いに通信することを促される。そのような通信は、ユーザ同士の相互作用を増加させ、ユーザがソーシャルネットワーキングシステム730と相互作用する頻度を増加させる。
ソーシャルネットワーキングシステム730は、ウェブサーバ732と、API要求サーバ734と、ユーザプロファイルストア736と、つながりストア738と、アクションロガー740と、アクティビティログ742と、認証サーバ744とを含む。本発明の一実施形態において、ソーシャルネットワーキングシステム730は、様々なアプリケーションのための追加的な構成要素、より少ない構成要素、または異なる構成要素を含み得る。ネットワークインタフェース、セキュリティ機構、負荷分散装置、フェイルオーバサーバ、管理およびネットワーク操作コンソールなどの他の構成要素は、本システムの詳細を曖昧にしないように、図示されていない。
ユーザプロファイルストア736は、ユーザによって申告され、またはソーシャルネットワーキングシステム730によって推測された職歴、学歴、趣味または嗜好、住所などの経歴的情報、人口学的情報、および他のタイプの記述的情報を含む、ユーザアカウントに関する情報を維持する。この情報は、各ユーザが一意に識別されるように、ユーザプロファイルストア736内に記憶される。ソーシャルネットワーキングシステム730は、異なるユーザ間の1つまたは複数のつながりを記述するデータも、つながりストア738内に記憶する。つながり情報は、同様または共通の職歴、グループメンバーシップ、趣味、または学歴を有するユーザを示し得る。また、ソーシャルネットワーキングシステム730は、ユーザの他のユーザとの関係をユーザが特定することを可能にする、異なるユーザ間におけるユーザによって定義されたつながりを含む。例えば、ユーザによって定義されたつながりは、友達、同僚、パートナ等などの、ユーザの実生活の関係と並行する、他のユーザとの関係をユーザが生成することを可能にする。ユーザは、予め定義されたタイプのつながりから選択しても、またはユーザ自身のつながりタイプを必要に応じて定義してもよい。非人間エンティティ、バケット、クラスタセンタ、画像、興味、ページ、外部システム、コンセプト等などの、ソーシャルネットワーキングシステム730内の他のノードとのつながりも、つながりストア738内に記憶される。
ソーシャルネットワーキングシステム730は、ユーザが相互作用し得るオブジェクトに関するデータを維持する。このデータを維持するために、ユーザプロファイルストア736およびつながりストア738は、ソーシャルネットワーキングシステム730によって維持されるオブジェクトの対応するタイプのインスタンスを記憶する。各オブジェクトタイプは、オブジェクトのタイプに適した情報を記憶するのに適した情報フィールドを有する。例えば、ユーザプロファイルストア736は、ユーザのアカウントおよびユーザのアカウントに関連した情報を記述するのに適したフィールドを有するデータ構造を含む。特定のタイプの新たなオブジェクトが作成される場合、ソーシャルネットワーキングシステム730は、対応するタイプの新たなデータ構造を初期化し、その新たなデータ構造に対して一意のオブジェクト識別子を割り当て、必要に応じて、そのオブジェクトに対してデータを追加することを開始する。これは、例えば、ユーザがソーシャルネットワーキングシステム730のユーザになった場合に発生し、ソーシャルネットワーキングシステム730は、ユーザプロファイルストア736内にユーザプロファイルの新たなインスタンスを生成し、ユーザアカウントに対して一意の識別子を割り当て、ユーザによって提供される情報をユーザアカウントのフィールドへ投入し始める。
つながりストア738は、他のユーザに対するユーザのつながり、外部システム720に対するつながり、または他のエンティティに対するつながりを記述するのに適したデータ構造を含む。つながりストア738は、つながりタイプもユーザのつながりと関連付け得る。つながりタイプは、ユーザのプライバシー設定と共に使用されて、ユーザに関する情報に対するアクセスを規制し得る。本発明の一実施形態において、ユーザプロファイルストア736およびつながりストア738は、連合データベースとして実装され得る。
つながりストア738、ユーザプロファイルストア736、およびアクティビティログ742内に記憶されるデータは、ノードを使用して、ノードを接続する様々なオブジェクトおよびエッジを識別して、異なるオブジェクト間の関係を識別するソーシャルグラフをソーシャルネットワーキングシステム730が生成することを可能にする。例えば、第1のユーザが、ソーシャルネットワーキングシステム730内で第2のユーザとのつながりを確立する場合、ユーザプロファイルストア736からの第1のユーザおよび第2のユーザのユーザアカウントは、ソーシャルグラフ内のノードとして動作し得る。つながりストア738によって記憶される、第1のユーザと第2のユーザとの間のつながりは、第1のユーザおよび第2のユーザに対して関連付けられるノード間のエッジである。この例を続けると、第2のユーザは、次いで、第1のユーザに対して、ソーシャルネットワーキングシステム730内でメッセージを送信し得る。メッセージを送信するアクションは、第1のユーザおよび第2のユーザを表現する、ソーシャルグラフ内の2つのノード間の別のエッジであり、メッセージを送信するアクションは、記憶され得る。また、メッセージ自体が、第1のユーザを表現するノードおよび第2のユーザを表現するノードに対して接続される別のノードとして、ソーシャルグラフにおいて識別され、ソーシャルグラフに含まれ得る。
別の例において、第1のユーザは、ソーシャルネットワーキングシステム730によって維持される画像において(または、代替的に、ソーシャルネットワーキングシステム730の外部の別のシステムによって維持される画像において)第2のユーザをタグ付けし得る。画像は、それ自体がソーシャルネットワーキングシステム730内のノードとして表現され得る。このタグ付けアクションは、ユーザの各々と画像との間にエッジを作成するだけでなく、第1のユーザと第2のユーザとの間のエッジも作成し得る。画像もソーシャルグラフ内のノードである。また別の例において、ユーザが、イベントへ参加することを確かめる場合、そのユーザおよびそのイベントは、ユーザプロファイルストア736から取得されるノードであり、そのイベントへの参加は、アクティビティログ742から得られ得るノード間のエッジである。ソーシャルグラフを生成および維持することによって、ソーシャルネットワーキングシステム730は、多くの異なるタイプのオブジェクトを記述するデータ、ならびに、それらのオブジェクト間の相互作用およびつながりを含み、社会的に関連する情報の豊富なソースを提供する。
ウェブサーバ732は、ソーシャルネットワーキングシステム730を、ネットワーク750を通じて、1つもしくは複数のユーザデバイス710および/または1つもしくは複数の外部システム720に対してリンクする。ウェブサーバ732は、ウェブページ、およびJava(登録商標)、JAVASCRIPT(登録商標)、Flash、XMLなどの他のウェブ関連コンテンツを供給する。ウェブサーバ732は、メールサーバを含み、または、ソーシャルネットワーキングシステム730と1つもしくは複数のユーザデバイス710との間のメッセージを受信およびルーティングするための他のメッセージング機能性を含み得る。メッセージは、インスタントメッセージ、キューメッセージ(例えば、電子メール)、テキストおよびSMSメッセージ、または任意の他の適切なメッセージングフォーマットであり得る。
API要求サーバ734は、1つまたは複数の外部システム720およびユーザデバイス710が、1つまたは複数のAPI関数を呼び出すことによって、ソーシャルネットワーキングシステム730からのアクセス情報を呼び出すことを可能にする。API要求サーバ734は、外部システム720が、APIを呼び出すことによって、ソーシャルネットワーキングシステム730に対して情報を送信することも可能にし得る。外部システム720は、1つの実施形態において、ネットワーク750を通じてソーシャルネットワーキングシステム730へAPI要求を送信し、API要求サーバ734は、そのAPI要求を受信する。API要求サーバ734は、API要求に対して関連付けられているAPIを呼び出すことによって要求を処理して、適当な応答を生成する。API要求サーバ734は、その適当な応答を、ネットワーク750を通じて外部システム720へ通信する。例えば、API要求に応答して、API要求サーバ734は、外部システム720に対してログインしたユーザのつながりなどの、ユーザに対して関連付けられているデータを収集し、収集されたデータを外部システム720へ通信する。別の実施形態において、ユーザデバイス710は、外部システム720と同じ手法で、APIを通じてソーシャルネットワーキングシステム730と通信する。
アクションロガー740は、ソーシャルネットワーキングシステム730内での、および/またはソーシャルネットワーキングシステム730外でのユーザアクションに関する通信をウェブサーバ732から受信することが可能である。アクションロガー740は、ユーザアクションに関する情報をアクティビティログ742へ投入し、ソーシャルネットワーキングシステム730の内部で、およびソーシャルネットワーキングシステム730の外部で、そのユーザによって行われた様々なアクションをソーシャルネットワーキングシステム730が発見することを可能にする。特定のユーザが、ソーシャルネットワーキングシステム730上の別のノードに関して行う任意のアクションは、アクティビティログ742内または同様のデータベースもしくは他のデータレポジトリ内で維持される情報を通じて、各ユーザのアカウントに対して関連付けられ得る。識別および記憶される、ソーシャルネットワーキングシステム730内でユーザによって行われるアクションの例は、例えば、別のユーザに対するつながりを追加すること、別のユーザへメッセージを送信すること、別のユーザからのメッセージを読むこと、別のユーザに対して関連付けられるコンテンツを視聴すること、別のユーザによって投稿されたイベントに参加すること、画像を投稿すること、画像を投稿しようと試行すること、または、別のユーザもしくは別のオブジェクトと相互作用する他のアクションを含み得る。ユーザが、ソーシャルネットワーキングシステム730内でアクションを行う場合、そのアクションは、アクティビティログ742内に記録される。一実施形態において、ソーシャルネットワーキングシステム730は、アクティビティログ742をエントリのデータベースとして維持する。アクションが、ソーシャルネットワーキングシステム730内で行われる場合、そのアクションについてのエントリが、アクティビティログ742に対して追加される。アクティビティログ742は、アクションログと称され得る。
また、ユーザアクションは、ソーシャルネットワーキングシステム730とは別個の外部システム720などの、ソーシャルネットワーキングシステム730の外部のエンティティ内で発生するコンセプトおよびアクションに対して関連付けられ得る。例えば、アクションロガー740は、ユーザによる外部システム720との相互作用を記述するデータを、ウェブサーバ732から受信し得る。この例において、外部システム720は、ソーシャルグラフにおける構造化されたアクションおよびオブジェクトに従って、ユーザによる相互作用を報告する。
ユーザが外部システム720と相互作用するアクションの他の例は、ユーザが外部システム720もしくは別のエンティティにおいて興味を表現すること、外部システム720もしくは外部システム720内のウェブページ722aと議論するソーシャルネットワーキングシステム730に対してユーザがコメントを投稿すること、ユーザがソーシャルネットワーキングシステム730に対してユニフォームリソースロケータ(URL)もしくは外部システム720に対して関連付けられる他の識別子を投稿すること、ユーザが外部システム720に対して関連付けられるイベントへ参加すること、または、外部システム720に関連する、ユーザによる任意の他のアクションを含む。したがって、アクティビティログ742は、ソーシャルネットワーキングシステム730のユーザと、ソーシャルネットワーキングシステム730とは別個の外部システム720との間の相互作用を記述するアクションを含み得る。
認証サーバ744は、ソーシャルネットワーキングシステム730のユーザの1つまたは複数のプライバシー設定を強化する。ユーザのプライバシー設定は、ユーザに対して関連付けられる特定の情報がどのように共有され得るかを決定する。プライバシー設定は、ユーザに対して関連付けられる特定の情報の仕様、および情報が共有され得る1つまたは複数のエンティティの仕様を備える。情報が共有され得るエンティティの例は、他のユーザ、アプリケーション、外部システム720、または、その情報に潜在的にアクセスし得る任意のエンティティを含み得る。ユーザによって共有され得る情報は、プロフィール写真などのユーザアカウント情報、ユーザに対して関連付けられる電話番号、ユーザのつながり、つながりを追加すること、ユーザプロフィール情報を変更することなどのユーザによって行われるアクション等を備える。
プライバシー設定仕様は、異なるレベルの粒度で提供され得る。例えば、プライバシー設定は、他のユーザと共有されるべき具体的な情報を識別し得る。プライバシー設定は、職場電話番号、または、プロフィール写真、自宅電話番号、およびステータスを含む個人情報などの関連情報の具体的なセットを識別する。代替的に、プライバシー設定は、ユーザに対して関連付けられる全ての情報に対して適用されてもよい。特定の情報にアクセスすることができるエンティティのセットの仕様も、様々なレベルの粒度で特定され得る。情報が共有され得るエンティティの様々なセットは、例えば、ユーザの全ての友達、友達の全ての友達、全てのアプリケーション、または全ての外部システム720を含み得る。1つの実施形態は、エンティティのセットの仕様がエンティティの一覧表を備えることを可能にする。例えば、ユーザは、一定の情報に対してアクセスすることを許可される外部システム720のリストを提供し得る。別の実施形態は、情報に対してアクセスすることを許可されない例外と共にエンティティのセットを仕様が備えることを可能にする。例えば、ユーザは、全ての外部システム720がユーザの職場情報に対してアクセスすることを許可し得るが、職場情報に対してアクセスすることを許可されない外部システム720のリストを特定し得る。一定の実施形態は、一定の情報に対してアクセスすることを許可されない例外のリストを「ブロックリスト」と呼ぶ。ユーザによって特定されるブロックリストに所属する外部システム720は、プライバシー設定において特定される情報に対してアクセスすることをブロックされる。情報の仕様の粒度と、情報が共有されるエンティティの仕様の粒度との様々な組み合わせが可能である。例えば、全ての個人情報は、友達と共有され得るのに対して、全ての職場情報は、友達の友達と共有され得る。
認証サーバ744は、ユーザに対して関連付けられる一定の情報がユーザの友達、外部システム720、ならびに/または他のアプリケーションおよびエンティティによってアクセスされ得るかを決定するためのロジックを含む。外部システム720は、ユーザの職場電話番号などの、ユーザのより個人的かつ機密的な情報に対してアクセスするために、認証サーバ744からの認証を必要とし得る。ユーザのプライバシー設定に基づいて、認証サーバ744は、別のユーザ、外部システム720、アプリケーション、または別のエンティティが、ユーザによって行われるアクションに関する情報を含む、ユーザに対して関連付けられる情報に対してアクセスすることを許可されているかを決定する。
一部の実施形態では、ソーシャルネットワーキングシステム730はソーシャルネットワーキングCTAモジュール746を含むことが可能である。ソーシャルネットワーキングCTAモジュール746は、例えば、図1のソーシャルネットワーキングCTAモジュール102として実装可能である。前述のように、多くの変形または他の可能性が存在し得ることが理解される。例えば、いくつかの例において、ソーシャルネットワーキングCTAモジュール746(または少なくともその一部)は、ユーザデバイス710内に含まれ得る。ソーシャルネットワーキングCTAモジュール746の他の特徴は、本明細書ではソーシャルネットワーキングCTAモジュール102に関して説明されている。
[ハードウェア実装]
前述のプロセスおよび特徴は、多種多様なマシンおよびコンピュータシステムアーキテクチャによって、ならびに、多種多様なネットワークおよびコンピューティング環境において実装され得る。図8には、本発明の一実施形態により本明細書に記載の実施形態のうちの1つまたは複数を実装するために使用され得るコンピュータシステム800の一例を示す。コンピュータシステム800は、コンピュータシステム800に対して、本明細書において議論されるプロセスおよび特徴を実行させるための命令のセットを含む。コンピュータシステム800は、他のマシンへ接続され(例えば、ネットワーク化され)得る。ネットワーク化された配置において、コンピュータシステム800は、クライアント/サーバネットワーク環境内のサーバマシンもしくはクライアントマシンの資格において動作し、または、ピアツーピア(もしくは分散)ネットワーク環境内のピアマシンとして動作し得る。本発明の一実施形態では、コンピュータシステム800は、ソーシャルネットワーキングシステム730、ユーザデバイス710、および外部システム820、またはそれらの一構成要素であってもよい。本発明の一実施形態では、コンピュータシステム800は、ソーシャルネットワーキングシステム730の一部または全部を構成する多数の中の1つのサーバであってもよい。
コンピュータシステム800は、プロセッサ802と、キャッシュ804と、コンピュータ読取可能な媒体上に記憶され、本明細書において説明されるプロセスおよび特徴へ向けられた、1つまたは複数の実行可能なモジュールおよびドライバとを含む。また、コンピュータシステム800は、高性能入出力(I/O)バス806と、標準I/Oバス808とを含む。ホストブリッジ810は、プロセッサ802を高性能I/Oバス806に対して結合する一方で、I/Oバスブリッジ812は、2つのバス806および808を互いに結合する。システムメモリ814および1つまたは複数のネットワークインタフェース816は、高性能I/Oバス806へ結合される。コンピュータシステム800は、ビデオメモリと、ビデオメモリに対して結合される表示デバイスとをさらに含んでもよい(図示せず)。マスストレージ818およびI/Oポート820は、標準I/Oバス808へ結合される。コンピュータシステム800は、標準I/Oバス808に対して結合される、キーボードおよびポインティングデバイス、表示デバイス、または他の入出力デバイス(図示せず)を随意的に含んでもよい。全体的に、これらの要素は、カリフォルニア州サンタクララのインテルコーポレーション社(Intel Corporation)によって製造されるx86互換性のあるプロセッサ、カリフォルニア州サニーベルのアドバンストマイクロデバイス社(AMD:Advanced Micro Devices, Inc.)によって製造されるx86互換性のあるプロセッサ、および任意の他の適切なプロセッサを含むが、これらに限定されない、広範なカテゴリのコンピュータハードウェアシステムを表現することが意図される。
オペレーティングシステムは、ソフトウェアアプリケーション(図示せず)へのデータの入力およびソフトウェアアプリケーションからのデータの出力を含む、コンピュータシステム800の動作を管理および制御する。オペレーティングシステムは、システム上で実行されているソフトウェアアプリケーションと、システムのハードウェア構成要素との間のインターフェースを提供する。任意の適切なオペレーティングシステム、例えば、LINUX(登録商標)オペレーティングシステム、カリフォルニア州クパチーノのアップルコンピュータ社(Apple Computer, Inc.)から市販されているアップルマッキントッシュオペレーティングシステム、UNIX(登録商標)オペレーティングシステム、マイクロソフト(登録商標)ウィンドウズ(登録商標)オペレーティングシステム、BSDオペレーティングシステム等などが使用され得る。他の実装も可能である。
コンピュータシステム800の要素は、下記においてより詳細に説明される。具体的には、ネットワークインタフェース816は、コンピュータシステム800と、幅広いネットワークのうちの任意のもの、例えば、イーサネット(登録商標)(例えば、IEEE802.3)ネットワーク、バックプレーン等などとの間の通信を提供する。マスストレージ818は、上記に識別されたそれぞれのコンピューティングシステムによって実装される上述されたプロセスおよび特徴を実行するためのデータおよびプログラミング命令のための永続的なストレージを提供するのに対して、システムメモリ814(例えば、DRAM)は、プロセッサ802によって実行される場合のデータおよびプログラミング命令のための一時的なストレージを提供する。I/Oポート820は、コンピュータシステム800へ結合され得る付加的な周辺デバイス間の通信を提供する、1つまたは複数のシリアル通信ポートおよび/またはパラレル通信ポートであり得る。
コンピュータシステム800は、多様なシステムアーキテクチャを含むことができ、コンピュータシステム800の様々な構成要素は、再配置されてもよい。例えば、キャッシュ804は、プロセッサ802と共にチップ上に実装されてもよい。代替的に、キャッシュ804およびプロセッサ802は、「プロセッサモジュール」としてまとめられて、プロセッサ802が「プロセッサコア」と称されてもよい。さらに、本発明の一定の実施形態は、上記構成要素の全部を必要としなくても、または、含まなくてもよい。例えば、標準I/Oバス808へ結合される周辺デバイスは、高性能I/Oバス806へ結合されてもよい。また、いくつかの実施形態において、単一のバスのみが存在して、コンピュータシステム800の構成要素が、その単一のバスへ結合されてもよい。さらに、コンピュータシステム800は、付加的なプロセッサ、記憶デバイス、またはメモリなどの付加的な構成要素を含んでもよい。
概して、本明細書において説明されるプロセスおよび特徴は、オペレーティングシステムの一部もしくは特定のアプリケーション、構成要素、プログラム、オブジェクト、モジュール、または「プログラム」と称される一連の命令として実装され得る。例えば、1つまたは複数のプログラムは、本明細書において説明される具体的なプロセスを実行するために使用され得る。プログラムは、典型的には、1つまたは複数のプロセッサによって読み出され、実行される場合に、コンピュータシステム800に対して、本明細書において説明されるプロセスおよび特徴を実行するための動作を実行させる、1つまたは複数の命令を、コンピュータシステム800内の様々なメモリおよび記憶デバイスにおいて備える。本明細書において説明されるプロセスおよび特徴は、ソフトウェア、ファームウェア、ハードウェア(例えば、特定用途向け集積回路)、または、これらの任意の組み合わせにおいて実装され得る。
1つの実装において、本明細書において説明されるプロセスおよび特徴は、分散コンピューティング環境において個々にまたはまとめて、コンピュータシステム800によって実行される一連の実行可能なモジュールとして実装される。前述のモジュールは、ハードウェア、コンピュータ読取可能な媒体(もしくはマシン読取可能な媒体)上に記憶される実行可能なモジュール、または、両者の組み合わせによって実現され得る。例えば、モジュールは、プロセッサ802などの、ハードウェアシステム内のプロセッサによって実行されるべき複数の命令または一連の命令を備え得る。まず、一連の命令は、マスストレージ818などの記憶デバイス上に記憶され得る。ただし、一連の命令は、任意の適切なコンピュータ読取可能な記憶媒体上に記憶されてもよい。さらに、一連の命令は、局所的に記憶される必要はなく、ネットワーク上のサーバなどの遠隔記憶デバイスからネットワークインタフェース816を通じて受信されてもよい。命令は、マスストレージ818などの記憶デバイスからシステムメモリ814内へコピーされ、次いで、プロセッサ802によってアクセスされ、実行される。様々な実施形態において、1つまたは複数のモジュールは、並列処理環境内の複数のサーバなどの、1つまたは複数の位置における、1つまたは複数のプロセッサによって実行され得る。
コンピュータ読取可能な媒体の例は、揮発性メモリデバイスおよび不揮発性メモリデバイスなどの記録可能なタイプの媒体、ソリッドステートメモリ、フロッピー(登録商標)ディスクおよび他の取り外し可能なディスク、ハードディスクドライブ、磁気媒体、光ディスク(例えば、コンパクトディスク読取専用メモリ(CD ROM)、デジタル多用途ディスク(DVD))、他の同様の非一時的で(もしくは一時的で)、有形の(もしくは無形の)記憶媒体、または、本明細書において説明されるプロセスおよび特徴のうちの任意の1つもしくは複数を実行すべく、コンピュータシステム800による実行のために一連の命令を記憶し、符号化し、もしくは担持するのに適切な任意のタイプの媒体を含むが、これらに限定されない。
説明の目的のために、多くの具体的な詳細が、本説明の完全な理解を提供するために述べられている。しかしながら、こうした具体的な詳細なしに本開示の実施形態が実施され得ることは、当業者には明らかであろう。いくつかの例において、モジュール、構造、プロセス、特徴、およびデバイスは、本説明を曖昧にすることを回避するために、ブロック図の形式で示される。他の例において、機能ブロック図およびフロー図は、データおよび論理フローを表現するために示される。ブロック図およびフロー図の構成要素(例えば、モジュール、ブロック、構造、デバイス、特徴等)は、本明細書において明示的に説明および図示されたような手法以外の手法で、様々に組み合わされ、分離され、除去され、順序を並べ替えられ、置換されてもよい。
この明細書における、「1つの実施形態」、「一実施形態」、「他の実施形態」、「一連の実施形態」、「いくつかの実施形態」、「様々な実施形態」等への言及は、実施形態に関連して説明される特定の特徴、設計、構造、または特性が本開示の少なくとも1つの実施形態に含まれることを意味する。本明細書内の様々な部分における「1つの実施形態において」、または「一実施形態において」という句の出現は、必ずしも全て同じ実施形態に言及するものとは限らず、別個の実施形態または代替的な実施形態は、他の実施形態と相互排他的ではない。さらに、「実施形態」等への明示的な言及が存在しても存在しなくても、様々な特徴が説明され、様々な特徴は、いくつかの実施形態において様々に組み合わされ、含まれ得るが、他の実施形態においては様々に省略され得る。同様に、いくつかの実施形態にとっては選好事項または要件であり得るが、他の実施形態にとっては選好事項または要件ではない、様々な特徴が説明される。
本明細書において使用される文言は、主に、読みやすさと教育的目的のために選択されており、発明の主題の輪郭を描くため、または境界線を描くために選択されたものではない。従って、本発明の範囲は、この詳細な説明によってではなく、本明細書に基づく出願に関して生じる特許請求の範囲によって限定されることが意図される。従って、本発明の実施形態の開示は、添付の特許請求の範囲に記載される本発明の範囲を例示することを意図しており、限定することは意図していない。