[Alpha]{class="badge informative"}
Server SDKのインストール
Server SDKは、npmの@adobe/alloy-node パッケージとして利用できます。 npmまたはランタイムで使用するパッケージマネージャーを使用して、サーバープロジェクトにインストールします。
npm install @adobe/alloy-node
パッケージはECMAScript モジュールとして公開され、要件を満たすサーバーサイドのJavaScript ランタイムで実行されます。 importで読み込む:
import { createInstance } from "@adobe/alloy-node";
process.envやnode:http モジュールなどのNode.js固有のコードを、ランタイムの同等のコードに置き換えます。 ランタイムサポート を参照してください。インスタンスの作成 create-instance
createInstance関数は、使用可能なすべてのオプションコンポーネント(同意とPersonalization)を含むSDKのインスタンスを返します。 ほとんどの実装では、この関数を使用します。
import { createInstance } from "@adobe/alloy-node";
const alloy = createInstance({ name: "alloy" });
createInstance関数は、次のプロパティを持つオプションのオブジェクトを受け入れます。
name[alloy]など)に追加するプレフィックス。 デフォルト値は "alloy" です。 同じプロセスで複数のインスタンスを実行し、それらのログを区別する場合は、別の名前を設定します。monitorsonInstanceCreated、onInstanceConfigured、onBeforeCommandなど、SDKが実行時に呼び出す関数を含めることができます。 これらのフックは、Web SDK モニタリングフック と同じように機能します。platformServices返されたインスタンスは、configure、forRequest、sendEventなど、 メソッド を公開します。 Web SDKとは異なり、コマンド名を文字列として渡す代わりに、インスタンス上でメソッドを直接呼び出します(例:alloy.sendEvent({ ... }))。
カスタムインスタンスの作成 custom-instance
すべてのオプション コンポーネントが必要ない場合は、createCustomInstanceを使用して、必要なコンポーネントのみを渡します。 components書き出しには、各オプションコンポーネントが含まれています。
components.consentsetConsent メソッドとdefaultConsent設定オプション。components.personalizationpersonalization オプションのsendEventを使用してパーソナライゼーションをリクエストする機能。import { createCustomInstance, components } from "@adobe/alloy-node";
// Includes consent, but not personalization
const alloy = createCustomInstance({
components: [components.consent]
});
コンテキスト、データ収集、ID、ライブラリ情報の各コンポーネントが常に含まれます。 オプションのコンポーネントを省略した場合:
- コンポーネントが提供するメソッドは引き続きインスタンス上に存在しますが、呼び出されると拒否されます。 例えば、
setConsentは、メッセージにThe setConsent command does not existが含まれるエラーで拒否します。 - コンポーネントが提供する設定オプションは、
configureによって拒否されます。 例えば、defaultConsentはUnknown fieldエラーでconfigureを拒否します。 - コンポーネントが他のメソッドで読み取るオプションは無視されます。 例えば、
personalizationオプションを設定しても、sendEventはパーソナライゼーションをリクエストしません。
createCustomInstanceは、createInstanceと同じname、monitors、platformServicesのプロパティを受け入れます。
テストイベントの送信 test-event
認証を設定した後、インスタンスを設定して1つのイベントを送信することで、インストールが機能することを確認できます。 資格情報をソースコードではなく環境変数に保存します。
import { createInstance } from "@adobe/alloy-node";
const alloy = createInstance();
await alloy.configure({
datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg",
edgeCredentials: {
clientId: process.env.ADOBE_CLIENT_ID,
clientSecret: process.env.ADOBE_CLIENT_SECRET,
scopes: process.env.ADOBE_SCOPES.split(",")
}
});
const result = await alloy.sendEvent({
xdm: {
eventType: "web.webpagedetails.pageViews",
identityMap: {
Email: [{ id: "test-visitor@example.com", primary: true }]
}
}
});
console.log("Event sent", result);
イベントが成功すると、プロミスは解決します。 失敗した場合、プロミスは、無効な資格情報やプライマリ IDの欠落など、問題を説明するエラーで拒否されます。 各ステップをコンソールに記録するには、debugEnabledをtrueに設定します。
forRequest ハンドルの呼び出しメソッドを使用します。 インスタンスとリクエスト を参照してください。