[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.jsIncomingMessage.- Express 또는 Fastify와 같이
node:http에 빌드된 프레임워크의 요청 개체입니다. - 많은 서버측 JavaScript 런타임 및 프레임워크가 요청 처리기에 전달하는 Fetch API
Request. 해당headers속성은Headers개체입니다.
일반 개체를 직접 만드는 경우 { headers: { "user-agent": "..." } }과 같은 소문자 머리글 이름을 사용하십시오.
전달된 헤더 forwarded-headers
request을(를) 전달하면 SDK에서 Edge Network에 보내는 각 요청에 다음 헤더를 복사합니다. 이러한 헤더가 없으면 Edge Network은 서버를 방문자로 보고 장치 및 위치 조회는 방문자 대신 서버를 설명합니다.
User-AgentAccept-LanguageSec-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-WoW64X-Forwarded-For, Forwarded, X-Real-IPSDK은 이 테이블의 헤더만 전달합니다. 방문자의 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 개체에 직접 추가합니다.