[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";
NOTE
このガイドの例では、Node.jsを使用しています。 別のランタイムを使用する場合は、process.envやnode:http モジュールなどのNode.js固有のコードを、ランタイムの同等のコードに置き換えます。 ​ ランタイムサポート ​を参照してください。

インスタンスの作成 create-instance

createInstance関数は、使用可能なすべてのオプションコンポーネント(同意とPersonalization)を含むSDKのインスタンスを返します。 ほとんどの実装では、この関数を使用します。

import { createInstance } from "@adobe/alloy-node";

const alloy = createInstance({ name: "alloy" });

createInstance関数は、次のプロパティを持つオプションのオブジェクトを受け入れます。

プロパティ
タイプ
説明
name
文字列
SDKがログメッセージ([alloy]など)に追加するプレフィックス。 デフォルト値は "alloy" です。 同じプロセスで複数のインスタンスを実行し、それらのログを区別する場合は、別の名前を設定します。
monitors
配列
監視フックオブジェクトの配列。 各オブジェクトには、onInstanceCreated、onInstanceConfigured、onBeforeCommandなど、SDKが実行時に呼び出す関数を含めることができます。 これらのフックは、Web SDK モニタリングフック ​と同じように機能します。
platformServices
オブジェクト
SDKがネットワーク、ストレージ、およびCookieに使用する組み込みサービスの1つ以上を置き換えます。 ほとんどの実装では、このプロパティは必要ありません。 Platform サービス ​を参照してください。

返されたインスタンスは、configure、forRequest、sendEventなど、​ メソッド ​を公開します。 Web SDKとは異なり、コマンド名を文字列として渡す代わりに、インスタンス上でメソッドを直接呼び出します(例:alloy.sendEvent({ ... }))。

カスタムインスタンスの作成 custom-instance

すべてのオプション コンポーネントが必要ない場合は、createCustomInstanceを使用して、必要なコンポーネントのみを渡します。 components書き出しには、各オプションコンポーネントが含まれています。

コンポーネント
追加
components.consent
setConsent メソッドとdefaultConsent設定オプション。
components.personalization
personalization オプションの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に設定します。

IMPORTANT
このテストは、プロセスの有効期間にわたって単一のIDを保持するトップレベルインスタンスからイベントを送信します。 アプリケーションでは、代わりに各訪問者のリクエストに対するforRequest ハンドルの呼び出しメソッドを使用します。 ​ インスタンスとリクエスト ​を参照してください。

次の手順 next-steps

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