동그라미 프로젝트에 구글 애널리틱스를 적용시킨다.
구글 애널리틱스(이하 GA)는 구글에서 제공하는 무료 웹 분석 툴로, 구글의 고유한 통계 및 머신러닝 기술로 사이트 및 모바일 애플리케이션 방문자들의 행동 데이터를 분석하고, 마케팅의실적이나 웹 사이트의 경험을 개선할 수 있도록 도와주는 도구!
GA를 적용시키면 현재 우리 서비스에 몇명이나 접속해있고 어떤 페이지에 접속해있는지 로깅이 실시간으로 가능하다. (넘나 편하다)
NEXT_PUBLIC_TRACKING_ID="code"
파일 위치 src/lib/gtag.js
// lib/gtag.js
export const GA_TRACKING_ID = "xxxxxxxx";
// https://developers.google.com/analytics/devguides/collection/gtagjs/pages
export const pageview = (url) => {
window.gtag("config", GA_TRACKING_ID, {
page_path: url,
});
};
// https://developers.google.com/analytics/devguides/collection/gtagjs/events
export const event = ({ action, category, label, value }) => {
window.gtag("event", action, {
event_category: category,
event_label: label,
value: value,
});
};
스크립트는 _document.js 파일의 Head 태그 아래에 추가한다.
<Head>
<script
dangerouslySetInnerHTML={{
__html: `
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', `TRACKING ID 입력`, {
page_path: window.location.pathname,
});
`
}}
/>
</Head>
pages
폴더 app.js
파일에 다음과 같은 useEffect hook을 추가해주면 페이지 조회수를 측정할 수 있다.
useEffect(() => {
const handleRouteChange = (url) => {
gtag.pageview(url)
}
router.events.on('routeChangeComplete', handleRouteChange)
return () => {
router.events.off('routeChangeComplete', handleRouteChange)
}
}, [router.events])
다음과 같이 적용이 잘 된것을 확인할 수 있다!