forked from earthkingman/42Swim
-
Notifications
You must be signed in to change notification settings - Fork 1
analytics
Yenowme edited this page Dec 18, 2021
·
1 revision
-
๊ตฌ๊ธ ์ ๋๋ฆฌํฑ์ค ๊ณ์ ์์ฑ
- ๊ตฌ๊ธ ์ ๋๋ฆฌํฑ์ค ์ฌ์ดํธ ์์ ๊ณ์ ์ค์ ์งํ
- ์์ฑ์ ์ต์ ๋ฒ์ ์ด ์๋ ์ ๋๋ฒ์
๋ฒ์ ์ผ๋ก ์งํํด์ผ
react-ga
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. - ์ต์ ๋ฒ์ ์ ์ง์ ์ค์ ํด์ค์ผํจ
-
App.js ์ react-ga ์ ์ฉ
import { Switch, Route, useLocation } from "react-router-dom";
import ReactGA from "react-ga";
ReactGA.event({
category: "User",
action: "Created an Account",
});
ReactGA.exception({
description: "An error ocurred",
fatal: true,
});
const App: React.FC = () => {
const location = useLocation();
useEffect(() => {
if (import.meta.env.MODE !== "development") {
ReactGA.initialize(import.meta.env.VITE_GA_ID);
ReactGA.set({ page: location.pathname }); // Update the user's current page
ReactGA.pageview(location.pathname); // Record a pageview for the given page
}
}, [location]);
return (
-
๊ฐ์ข ์์ฑ ๋ฐ ์ถ์ ID๋ฅผ ์ฌ์ด ์ด๊ธฐํ ์งํ
-
useEffect
๋ก ํ๋ฒ๋ง ์งํ -
์ถ์ ID ๋ envํ์ผ๋ก ๊ด๋ฆฌ
-
์ค์ ๋ฐฐํฌ๋ชจ๋์ผ๋๋ง GA๋ฅผ ํ์ฑํํ๋ค. ๊ฐ๋ฐ๋ชจ๋์์ ๋ณด๊ธฐ ์ํด์๋
ReactGA.initialize("",{debug: true})
๋ก ์งํํ๋ฉด ์ฝ์์์ ๋ฐ์ดํฐ๋ฅผ ๋ณผ ์ ์์.
- ๋ฆฌ์กํธ๋ ํ์ด์ง๋ค์ด์
์ด ์น์ฑ ๊ธฐ๋ฐ. ์ฆ
window
๋ก ํ์ด์ง๋ค์ด์ ์ด ๊ฐ์ง๋์ง ์์์ react-router๊ฐ ์ ๊ณตํ๋ ํ์ด์ง๋ค์ด์ ๊ฐ์ฒด์ธlocation
์ ์ฌ์ฉํด์ผํจ. -
location
๊ฐ์ฒด๋.useLocation()
ํ ์react-router-dom
์ผ๋ก๋ถํฐ ๊ฐ์ ธ์์ ์ฌ์ฉํด์ผํ๋ค. -
useLocation
์ ๊ฐ์ ธ์ค๊ธฐ ์ํด์๋App.tsx
์ ์์ ๊ฐ์ฒด์ธMain.tsx
์์App์ Router
๋ก ๊ฐ์ธ์ค์ผ ์ฌ์ฉํ ์ ์์