次の図は、Interact API の単純な実装を示しています。訪問者は Web サイトにログインすると、オファーが表示されるページに移動します。訪問者はオファーを選択して、ログアウトします。対話は単純ですが、タッチポイントとランタイム・サーバーの両方でいくつかのイベントが発生します。
この例では、startSession メソッドは 4 つのことを行います。最初に、新しいランタイム・セッションを作成します。2 番目に、顧客のプロファイル・データをセッションにロードするように求める要求を送信します。3 番目に、そのプロファイル・データを使用して対話式フローチャートを開始し、その顧客をセグメントに配置するように求める要求を送信します。このフローチャートの実行は非同期です。4 番目に、ランタイムは、オファー非表示、およびグローバル・オファーと個々のオファーの処理に関する情報を、そのセッションにロードします。セッション・データは、そのセッションが存続する間、メモリー内に保持されます。
executeBatch メソッドを使用することで、複数のメソッドを単一の呼び出しでランタイム・サーバーに呼び出すことができます。この特定の executeBatch は、他の 2 つのメソッド (
getOffers および
postEvent) を呼び出します。
getOffers メソッドは、オファーのリストを要求します。ランタイムは、セグメンテーション・データ、オファー非表示リスト、処理ルール、および学習モジュールを使用して、オファーのセットを提案します。ランタイムによって返されたオファーのセットは、コンテンツ・ページに表示されます。
postEvent メソッドは、設計環境で定義されたイベントの 1 つをトリガーします。この特定の事例では、イベントは、表示されたオファーのログをコンタクト履歴に記録するように求める要求を送信します。
オファーの選択に関連付けられるボタンは、別の postEvent メソッドを送信するように構成されます。このイベントは、オファー承認のログをレスポンス履歴に記録するように求める要求を送信します。
endSession メソッドはセッションをクローズします。訪問者がログアウトするのを忘れた場合に、確実にすべてのセッションが最終的には終了されるようにするために、構成可能なセッション・タイムアウトがあります。セッションに渡された任意のデータ (例えば、
startSession メソッドまたは
setAudience メソッドのパラメーターに含まれる情報など) を保持する場合は、対話式フローチャートを作成した人物と協力します。対話式フローチャートを作成した人物は、セッションが終了してそのデータが失われる前に、スナップショット・プロセスを使用してそのデータをデータベースに書き込むことができます。スナップショット・プロセスに含まれる対話式フローチャートは、
postEvent メソッドを使用して呼び出すことができます。