[Alpha]{class="badge informative"}

forRequest (Server SDK)

forRequest メソッドは、1つの受信リクエストに対してスコープが設定されたハンドルを返します。 サーバーが処理するリクエストごとに1回呼び出してから、ハンドルのsendEventなどのメソッドを呼び出します。 この方法は、Web SDKには存在しません。各ブラウザーページは、既に1人の訪問者に対してサービスを提供しているからです。

ハンドルは、独自のSDK インスタンスによってサポートされ、configureに渡したのと同じオプションで設定されます。 これにより、ある訪問者のIDと同意が、他の訪問者のリクエストに反映されることはありません。 各ハンドルが上位レベルのインスタンスと共有する内容については、​ インスタンスとリクエスト ​を参照してください。

const visitor = alloy.forRequest({
  request: req
});

await visitor.sendEvent({
  xdm: {
    eventType: "web.webpagedetails.pageViews",
    identityMap: {
      Email: [{ id: "visitor@example.com", primary: true }]
    }
  }
});

オプション options

forRequest メソッドは、次のプロパティを持つオプションのオブジェクトを受け入れます。

プロパティ
タイプ
説明
request
オブジェクト
受信リクエスト: Node.js IncomingMessage、Express リクエスト、Fetch API Requestなど、headers プロパティを持つオブジェクトはすべて機能します。 SDKは、訪問者のヘッダーの一部をEdge Networkに転送し、Referer ヘッダーを読み取ります。 ​ コンテキストと転送ヘッダーを参照してください。
cookie
オブジェクト
この訪問者のCookie サービス。 SDKは、訪問者のIDと同意を読み取り、書き込みます。 これを省略すると、ハンドルは空のメモリ内ストアを使用し、訪問者はリクエストごとに新しいECIDを取得します。 Platform サービス ​を参照してください。
storage
オブジェクト
この訪問者のストレージサービスです。 これを省略すると、ハンドルは空のメモリ内ストアを使用します。 Platform サービス ​を参照してください。
network, runtime, legacy, globals
オブジェクトまたは関数
このハンドルに対してのみ、createInstanceに渡したサービスの置き換え。 networkをネットワークサービスを返す関数として渡し、その他をオブジェクトとして渡します。 Platform サービス ​を参照してください。

createInstanceに渡されたcookieまたはstorage サービスは訪問者データを保持しているため、ハンドルは再利用しません。 代わりに、リクエストごとにforRequestに渡してください。

戻り値 return

他のメソッドとは異なり、forRequestはプロミスを返しません。 すぐにハンドルを返します。 ハンドルには次のメソッドがあり、トップレベルインスタンスと同じように機能します。

ハンドルにはconfigureまたはforRequest個のメソッドがありません。既に設定されています。

リクエストごとに新しいハンドルを作成します。 リクエストをまたいでハンドルを再利用したり、訪問者の間で共有したりしないでください。

エラー errors

forRequestは、configureが解決する前に呼び出した場合、またはconfigureが拒否した場合にエラーをスローします。

forRequest() can only be called after configure() has resolved.

このエラーを回避するには、サーバーがリクエストの受け入れを開始する前に、configureが解決するのを待ちます。

recommendation-more-help
experience-platform-help-collection