[Alpha]{class="badge informative"}

서버 SDK 설치

서버 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
배열
모니터링 후크 개체의 배열입니다. 각 개체에는 SDK이 실행될 때 호출하는 onInstanceCreated, onInstanceConfigured 및 onBeforeCommand과(와) 같은 함수가 포함될 수 있습니다. 이러한 후크는 Web SDK 모니터링 후크와 같은 방식으로 작동합니다.
platformServices
개체
SDK에서 네트워킹, 스토리지 및 쿠키에 사용하는 하나 이상의 기본 제공 서비스를 대체합니다. 대부분의 구현에는 이 속성이 필요하지 않습니다. 플랫폼 서비스를 참조하세요.

반환된 인스턴스가 configure, forRequest 및 sendEvent과(와) 같은 메서드을(를) 노출합니다. 웹 SDK과 달리 명령 이름을 문자열로 전달하지 않고 인스턴스(예: alloy.sendEvent({ ... }))에서 직접 메서드를 호출합니다.

사용자 지정 인스턴스 만들기 custom-instance

모든 선택적 구성 요소가 필요하지 않은 경우 createCustomInstance을(를) 사용하고 원하는 구성 요소만 전달하십시오. components 내보내기에 각 선택적 구성 요소가 포함되어 있습니다.

구성 요소
추가
components.consent
setConsent 메서드 및 defaultConsent 구성 옵션입니다.
components.personalization
sendEvent의 personalization 옵션을 사용하여 개인화를 요청하는 기능입니다.
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이(가) 거부됩니다.
  • 구성 요소가 다른 메서드에서 읽는 옵션은 무시됩니다. 예를 들어 sendEvent은(는) personalization 옵션을 설정해도 개인화를 요청하지 않습니다.

createCustomInstance이(가) createInstance과(와) 동일한 name, monitors 및 platformServices 속성을 허용합니다.

테스트 이벤트 보내기 test-event

인증을 설정한 후 인스턴스를 구성하고 이벤트를 하나 전송하여 설치가 작동하는지 확인할 수 있습니다. 자격 증명을 소스 코드가 아닌 환경 변수에 저장합니다.

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