Google analytics 4 란?

어플리케이션이나 웹에서 발생하는 고객의 행동 데이터를 수집하고 분석할 수 있다. 주로 광고 캠페인이나 마케팅에서 사용하는 듯하다. 분석 결과를 토대로 리마케팅에 쓰는 듯.

🤔 추후 어떤 유저 데이터 수집이 필요하고, 어디에 사용할 지 논의가 필요함

Untitled

페이지 조회 뿐 아니라 스크롤, 이탈클릭, 사이트 검색 등 이벤트를 자동으로 집 가능함. 수집을 원하는 측정 유형은 구글 애널리틱스에서 직접 설정해야 함.

Untitled

수집 데이터

적용하기

// _app.tsx 모든 페이지에서 렌더링 되는 최상위 파일

import Script from "next/script";
import { useRouter } from "next/router";
import * as gtag from "lib/gtag";

function MyApp({ Component, pageProps }) {
const router = useRouter();

  useEffect(() => {
    const handleRouteChange = (url) => {  // **동적 라우팅을 못 잡기 때문에 함수 추가
      gtag.pageview(url);
    };
    router.events.on("routeChangeComplete", handleRouteChange);
    return () => {
      router.events.off("routeChangeComplete", handleRouteChange);
    };
  }, [router.events]);

  return (
    <>
      {/* Global Site Tag (gtag.js) - Google Analytics */}
      <Script
        strategy="afterInteractive"
        src={`https://www.googletagmanager.com/gtag/js?id=${gtag.GA_ID}`}
      />
      <Script
        strategy="afterInteractive"
        dangerouslySetInnerHTML={{
          __html: `
            window.dataLayer = window.dataLayer || [];
            function gtag(){dataLayer.push(arguments);}
            gtag('js', new Date());
            gtag('config', '${gtag.GA_ID}', {
              page_path: window.location.pathname,
            });
          `,
        }}
      />

      <Layout>
        <Component {...pageProps} />
      </Layout>
    </>
  );
}

export default MyApp;
// lib/gtag.ts

export const GA_ID = `${process.env.NEXT_PUBLIC_GOOGLE_ANALYTICS}`;

declare global {
  interface Window {
    gtag: (param1: string, param2: string, param3: object) => void;
  }
}

// <https://developers.google.com/analytics/devguides/collection/gtagjs/pages>
export const pageview = (url: any) => {
  window.gtag("config", GA_ID, {
    page_path: url,
  });
};

// <https://developers.google.com/analytics/devguides/collection/gtagjs/events>
export const event = ({ action, category, label, value }: any) => {
  window.gtag("event", action, {
    event_category: category,
    event_label: label,
    value: value,
  });
};
// .env

NEXT_PUBLIC_GA_ID = 설정

Redirecting...

Next.js에 Google Analytics, Google Optimize 설정하기

How to add GoogleAnalytics 4 to NextJs app in 4 simple steps