Files
web-temp/layers/plugins/amplitude.client.ts
2025-09-19 10:16:09 +09:00

42 lines
1.4 KiB
TypeScript

import * as amplitude from '@amplitude/analytics-browser'
// Nuxt 플러그인 정의
export default defineNuxtPlugin((nuxtApp) => {
// const { memberNo } = useAnalytics() as { memberNo: string }
const memberNo = csrGetStoveMemberNo()
// Amplitude 초기화
amplitude.init('6bfa2705264260f060e02493ecf882ad', {
// 원하는 설정을 여기에 추가하세요
defaultTracking: {
attribution: false, // 기본 추적 설정: 속성 추적 비활성화
pageViews: true, // 페이지 뷰 추적 활성화
sessions: false, // 세션 추적 비활성화
formInteractions: false, // 폼 상호작용 추적 비활성화
fileDownloads: false // 파일 다운로드 추적 비활성화
},
autocapture: {
attribution: true
}
})
// Identify 이벤트 생성 및 설정
const identifyEvent = new amplitude.Identify()
identifyEvent.set('member_no', memberNo)
// Identify 이벤트 전송 및 사용자 ID 설정
amplitude.identify(identifyEvent)
amplitude.setUserId(`${memberNo}`)
;(window as any).amplitude = amplitude // amplitude 객체 전역으로 설정(Stove GNB에서 사용)
// 페이지가 숨겨질 때 이벤트 리스너 추가
window.addEventListener('pagehide', () => {
amplitude.setTransport('beacon') // 전송 방식 설정
amplitude.flush() // Amplitude 데이터 전송
})
// Nuxt 앱에 amplitude 인스턴스 제공
nuxtApp.provide('amplitude', amplitude)
})