TouchLinerDomainLogger
각 도메인별 세션 추적을 위한 로거 클래스입니다. 세션당 한 번만 이벤트를 로깅합니다. defaultEventName에 도메인별 이벤트 이름을 지정하여 사용합니다.
touch_app_liner_domain— Apptouch_scholar_liner_domain— Scholartouch_write_liner_domain— Write
Import
ts
import { TouchLinerDomainLogger } from '@liner-engineering/orbit-app/analytics';초기화
ts
const domainLogger = new TouchLinerDomainLogger({
logEvent: ampLogEvent,
defaultEventName: 'touch_app_liner_domain',
});생성자 파라미터
| 파라미터 | 타입 | 설명 |
|---|---|---|
logEvent | (eventName: string, properties: object) => void | 이벤트 로깅 함수 |
defaultEventName | string | 기본 이벤트 이름 |
사용 예시
tsx
import { TouchLinerDomainLogger } from '@liner-engineering/orbit-app/analytics';
const domainLogger = new TouchLinerDomainLogger({
logEvent: ampLogEvent,
defaultEventName: 'touch_app_liner_domain',
});
function App() {
useLinerTouchLog({
domainLogger,
});
return <YourApp />;
}페이지별 추가 속성 (TouchLinerDomainProperties)
특정 페이지에서 domain 이벤트에 추가 속성을 포함해야 할 때 사용합니다. 추가 속성은 비동기 데이터(API 응답 등)에 의존할 수 있습니다.
Import
ts
import {
TouchLinerDomainPropertiesProvider,
useTouchLinerDomainProperties,
} from '@liner-engineering/orbit-app/analytics';설정
app.tsx에서 TouchLinerDomainPropertiesProvider로 감쌉니다. useLinerTouchLog의 시그니처는 변경 없이 그대로 사용합니다.
tsx
function AppRoot() {
return (
<TouchLinerDomainPropertiesProvider>
<App />
</TouchLinerDomainPropertiesProvider>
);
}
function App() {
useLinerTouchLog({ gatewayLogger, landingLogger, domainLogger });
return <Routes />;
}특정 페이지에서 추가 속성 전달
useTouchLinerDomainProperties()가 반환하는 logDomain 함수를 호출합니다. 비동기 데이터가 준비된 시점에 호출하면 됩니다.
tsx
function SomePage() {
const logDomain = useTouchLinerDomainProperties();
const { data: pageInfo } = usePageInfo();
useEffect(() => {
if (pageInfo) {
logDomain({ page: 'home', source: pageInfo.source });
}
}, [pageInfo]);
return <div>...</div>;
}TouchLinerDomainPropertiesProvider없이도useLinerTouchLog는 기존과 동일하게 동작합니다. Provider는 페이지별 추가 속성이 필요할 때만 감싸면 됩니다.useTouchLinerDomainProperties는 반드시TouchLinerDomainPropertiesProvider하위에서 호출해야 합니다. Provider 없이 호출하면 에러가 발생합니다.useTouchLinerDomainProperties()를 호출하는 하위 컴포넌트는useLinerTouchLog와 동일한 render cycle에 동기적으로 렌더링되어야 합니다.React.lazy, 조건부 렌더링 등으로 하위 컴포넌트가 늦게 마운트되면 추가 속성이{}로 로깅됩니다.logDomain()은 Provider 마운트당 첫 호출만 유효합니다. 두 번째 이후 호출은 무시됩니다.- 쿠키 이름은
TOUCH_LINER_DOMAIN_SESSION이며, 브라우저 session cookie로 동작합니다.
Methods
setSessionCookie
세션 쿠키를 설정합니다 (브라우저 세션 동안 유효).
ts
domainLogger.setSessionCookie();hasSessionCookie
세션 쿠키 존재 여부를 확인합니다.
ts
const hasSession = domainLogger.hasSessionCookie();
// true | falseremoveSessionCookie
세션 쿠키를 삭제합니다.
ts
domainLogger.removeSessionCookie();logAndSetSessionCookie
이벤트를 로깅하고 세션 쿠키를 설정합니다.
ts
// 기본 이벤트 이름 사용
domainLogger.logAndSetSessionCookie();
// 커스텀 이벤트 이름과 속성 사용
domainLogger.logAndSetSessionCookie({
eventName: 'custom_domain_touch',
properties: {
page: 'home',
source: 'direct',
},
});logAndSetSessionCookie 옵션
| 옵션 | 타입 | 설명 |
|---|---|---|
eventName | string | 커스텀 이벤트 이름 (선택) |
properties | Record<string, unknown> | 추가 속성 (선택) |