42 lines
1.4 KiB
TypeScript
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)
|
|
})
|