[Alpha]{class="badge informative"}

컨텍스트 및 전달된 헤더

브라우저에서 웹 SDK은 페이지의 페이지 URL, 화면 크기, 시간대 및 기타 세부 정보를 읽고 각 이벤트에 추가합니다. 서버에는 읽을 페이지가 없으므로 서버 SDK은 더 작은 컨텍스트 데이터 세트를 추가합니다. 또한 Edge Network에서 사용할 수 있도록 방문자의 요청에서 세부 정보를 전달합니다.

구현 세부 사항 implementation-details

SDK은 모든 이벤트에 xdm.implementationDetails 개체를 추가합니다. 이 개체는 이벤트를 보낸 라이브러리를 식별합니다.

{
  "implementationDetails": {
    "name": "https://ns.adobe.com/experience/alloy-node",
    "version": "0.2.1",
    "environment": "server"
  }
}

version 값이 설치된 @adobe/alloy-node 패키지 버전과 일치합니다. 이 데이터를 끌 수 없습니다.

수신 요청 전달 request

방문자에 대한 컨텍스트를 추가하려면 들어오는 요청을 request 속성으로 forRequest에 전달합니다.

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

request 값은 다음을 포함하여 headers 속성이 있는 모든 개체일 수 있습니다.

  • node:http 모듈의 Node.js IncomingMessage.
  • Express 또는 Fastify와 같이 node:http에 빌드된 프레임워크의 요청 개체입니다.
  • 많은 서버측 JavaScript 런타임 및 프레임워크가 요청 처리기에 전달하는 Fetch API Request. 해당 headers 속성은 Headers 개체입니다.

일반 개체를 직접 만드는 경우 { headers: { "user-agent": "..." } }과 같은 소문자 머리글 이름을 사용하십시오.

전달된 헤더 forwarded-headers

request을(를) 전달하면 SDK에서 Edge Network에 보내는 각 요청에 다음 헤더를 복사합니다. 이러한 헤더가 없으면 Edge Network은 서버를 방문자로 보고 장치 및 위치 조회는 방문자 대신 서버를 설명합니다.

Header
용도
User-Agent
방문자의 브라우저 및 장치를 식별합니다.
Accept-Language
방문자의 기본 언어를 식별합니다.
Sec-CH-UA, Sec-CH-UA-Mobile, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version, Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64
방문자의 브라우저 및 디바이스를 자세히 설명하는 사용자 에이전트 클라이언트 힌트입니다. 사용자 에이전트 클라이언트 힌트를 참조하십시오.
X-Forwarded-For, Forwarded, X-Real-IP
프록시 또는 로드 밸런서가 서버 앞에 있을 때 방문자의 IP 주소를 식별합니다.

SDK은 이 테이블의 헤더만 전달합니다. 방문자의 Cookie, Authorization 또는 Referer 헤더를 전달하지 않습니다.

데이터 스트림에서 지리적 위치 및 장치 조회와 같은 기능이 활성화되어 있으면 Edge Network에서 이러한 헤더를 사용합니다. 서버가 프록시 또는 로드 밸런서 뒤에서 실행되는 경우 X-Forwarded-For 또는 Forwarded을(를) 방문자의 실제 IP 주소로 설정해야 합니다.

브라우저에서는 기본적으로 몇 가지 낮은 엔트로피 클라이언트 힌트만 보냅니다. 다른 파일을 받으려면 서버에서 Accept-CH 응답 헤더로 해당 파일을 검색해야 합니다.

Referer 헤더의 페이지 URL page-url

들어오는 요청에 Referer 헤더가 있는 경우 SDK은 해당 값을 xdm.web.webPageDetails.URL(으)로 사용합니다. Referer 헤더에는 요청을 수행한 페이지의 주소가 포함되어 있으므로 경우에 따라 정확합니다.

  • 브라우저가 페이지에서 서버를 호출합니다(예: fetch: Referer에 해당 페이지의 URL이 포함되어 있습니다. 이 URL은 일반적으로 원하는 값입니다.
  • 브라우저가 서버가 렌더링하는 페이지로 이동합니다: Referer에는 방문자가 현재 보고 있는 페이지가 아닌 이전 페이지가 포함되어 있습니다. 대신 페이지 URL을 직접 설정합니다.
  • 요청이 원본을 넘습니다: 브라우저는 일반적으로 페이지의 Referrer-Policy에 따라 Referer을(를) 원본(예: https://www.example.com/)으로 트리밍합니다.

xdm 개체에 설정한 값은 Referer 값보다 우선합니다. 페이지 URL을 명시적으로 설정하려면 다음을 수행합니다.

await visitor.sendEvent({
  xdm: {
    eventType: "web.webpagedetails.pageViews",
    web: {
      webPageDetails: {
        URL: `https://www.example.com${req.url}`
      }
    },
    identityMap: {
      Email: [{ id: "visitor@example.com", primary: true }]
    }
  }
});

SDK에서 수집하지 않는 데이터 not-collected

웹 SDK이 브라우저에서 수집할 수 있는 다음 데이터는 서버에 신뢰할 수 있는 소스가 없으므로 서버 SDK에서 추가하지 않습니다.

  • 페이지 제목, 참조 페이지 및 화면 방향
  • 화면 크기, 뷰포트 크기 및 스크롤 위치
  • 현지 시간 및 시간대
  • 브라우저가 요청에서 보내지 않았다는 높은 엔트로피 사용자 에이전트 클라이언트 힌트

브라우저에서 이러한 값을 서버로 보냈기 때문에 응용 프로그램에서 이러한 값을 알고 있는 경우 xdm 개체에 직접 추가합니다.

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