diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index f45c06a..d61474a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -4,6 +4,9 @@ env: VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} on: + push: + branches: + - main pull_request: types: - closed diff --git a/.pnp.cjs b/.pnp.cjs index 1870cd5..e8984ef 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -48,7 +48,6 @@ const RAW_RUNTIME_STATE = ["@types/node", "npm:22.10.7"],\ ["@types/react", "npm:18.3.18"],\ ["@types/react-dom", "virtual:bf4b7fdd92a9723d0b8b3c0ad1d9b3bf177b06bda2d8d90eee6bb9b559bcf7f6a4e86d3e1e4088168d00f3b758fa58c40c57bffe4a3e68627cd86f7a3c1c2191#npm:18.3.5"],\ - ["@types/react-gtm-module", "npm:2.0.4"],\ ["@typescript-eslint/eslint-plugin", "virtual:bf4b7fdd92a9723d0b8b3c0ad1d9b3bf177b06bda2d8d90eee6bb9b559bcf7f6a4e86d3e1e4088168d00f3b758fa58c40c57bffe4a3e68627cd86f7a3c1c2191#npm:8.20.0"],\ ["@typescript-eslint/parser", "virtual:bf4b7fdd92a9723d0b8b3c0ad1d9b3bf177b06bda2d8d90eee6bb9b559bcf7f6a4e86d3e1e4088168d00f3b758fa58c40c57bffe4a3e68627cd86f7a3c1c2191#npm:8.20.0"],\ ["@vitejs/plugin-react", "virtual:bf4b7fdd92a9723d0b8b3c0ad1d9b3bf177b06bda2d8d90eee6bb9b559bcf7f6a4e86d3e1e4088168d00f3b758fa58c40c57bffe4a3e68627cd86f7a3c1c2191#npm:4.3.4"],\ @@ -69,7 +68,6 @@ const RAW_RUNTIME_STATE = ["prettier", "npm:3.4.2"],\ ["react", "npm:18.3.1"],\ ["react-dom", "virtual:bf4b7fdd92a9723d0b8b3c0ad1d9b3bf177b06bda2d8d90eee6bb9b559bcf7f6a4e86d3e1e4088168d00f3b758fa58c40c57bffe4a3e68627cd86f7a3c1c2191#npm:18.3.1"],\ - ["react-gtm-module", "npm:2.0.11"],\ ["react-router-dom", "virtual:bf4b7fdd92a9723d0b8b3c0ad1d9b3bf177b06bda2d8d90eee6bb9b559bcf7f6a4e86d3e1e4088168d00f3b758fa58c40c57bffe4a3e68627cd86f7a3c1c2191#npm:7.1.3"],\ ["sass", "npm:1.83.4"],\ ["sass-loader", "virtual:bf4b7fdd92a9723d0b8b3c0ad1d9b3bf177b06bda2d8d90eee6bb9b559bcf7f6a4e86d3e1e4088168d00f3b758fa58c40c57bffe4a3e68627cd86f7a3c1c2191#npm:16.0.4"],\ @@ -4693,15 +4691,6 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ - ["@types/react-gtm-module", [\ - ["npm:2.0.4", {\ - "packageLocation": "./.yarn/cache/@types-react-gtm-module-npm-2.0.4-ba9b45b661-0bba7b8416.zip/node_modules/@types/react-gtm-module/",\ - "packageDependencies": [\ - ["@types/react-gtm-module", "npm:2.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["@types/resolve", [\ ["npm:1.20.6", {\ "packageLocation": "./.yarn/cache/@types-resolve-npm-1.20.6-6ab126a04b-a9b0549d81.zip/node_modules/@types/resolve/",\ @@ -10803,7 +10792,6 @@ const RAW_RUNTIME_STATE = ["@types/node", "npm:22.10.7"],\ ["@types/react", "npm:18.3.18"],\ ["@types/react-dom", "virtual:bf4b7fdd92a9723d0b8b3c0ad1d9b3bf177b06bda2d8d90eee6bb9b559bcf7f6a4e86d3e1e4088168d00f3b758fa58c40c57bffe4a3e68627cd86f7a3c1c2191#npm:18.3.5"],\ - ["@types/react-gtm-module", "npm:2.0.4"],\ ["@typescript-eslint/eslint-plugin", "virtual:bf4b7fdd92a9723d0b8b3c0ad1d9b3bf177b06bda2d8d90eee6bb9b559bcf7f6a4e86d3e1e4088168d00f3b758fa58c40c57bffe4a3e68627cd86f7a3c1c2191#npm:8.20.0"],\ ["@typescript-eslint/parser", "virtual:bf4b7fdd92a9723d0b8b3c0ad1d9b3bf177b06bda2d8d90eee6bb9b559bcf7f6a4e86d3e1e4088168d00f3b758fa58c40c57bffe4a3e68627cd86f7a3c1c2191#npm:8.20.0"],\ ["@vitejs/plugin-react", "virtual:bf4b7fdd92a9723d0b8b3c0ad1d9b3bf177b06bda2d8d90eee6bb9b559bcf7f6a4e86d3e1e4088168d00f3b758fa58c40c57bffe4a3e68627cd86f7a3c1c2191#npm:4.3.4"],\ @@ -10824,7 +10812,6 @@ const RAW_RUNTIME_STATE = ["prettier", "npm:3.4.2"],\ ["react", "npm:18.3.1"],\ ["react-dom", "virtual:bf4b7fdd92a9723d0b8b3c0ad1d9b3bf177b06bda2d8d90eee6bb9b559bcf7f6a4e86d3e1e4088168d00f3b758fa58c40c57bffe4a3e68627cd86f7a3c1c2191#npm:18.3.1"],\ - ["react-gtm-module", "npm:2.0.11"],\ ["react-router-dom", "virtual:bf4b7fdd92a9723d0b8b3c0ad1d9b3bf177b06bda2d8d90eee6bb9b559bcf7f6a4e86d3e1e4088168d00f3b758fa58c40c57bffe4a3e68627cd86f7a3c1c2191#npm:7.1.3"],\ ["sass", "npm:1.83.4"],\ ["sass-loader", "virtual:bf4b7fdd92a9723d0b8b3c0ad1d9b3bf177b06bda2d8d90eee6bb9b559bcf7f6a4e86d3e1e4088168d00f3b758fa58c40c57bffe4a3e68627cd86f7a3c1c2191#npm:16.0.4"],\ @@ -11873,15 +11860,6 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ - ["react-gtm-module", [\ - ["npm:2.0.11", {\ - "packageLocation": "./.yarn/cache/react-gtm-module-npm-2.0.11-99adaedaa9-ceedf296a1.zip/node_modules/react-gtm-module/",\ - "packageDependencies": [\ - ["react-gtm-module", "npm:2.0.11"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["react-is", [\ ["npm:17.0.2", {\ "packageLocation": "./.yarn/cache/react-is-npm-17.0.2-091bbb8db6-2bdb6b93fb.zip/node_modules/react-is/",\ diff --git a/.yarn/cache/@types-react-gtm-module-npm-2.0.4-ba9b45b661-0bba7b8416.zip b/.yarn/cache/@types-react-gtm-module-npm-2.0.4-ba9b45b661-0bba7b8416.zip deleted file mode 100644 index 371ca56..0000000 Binary files a/.yarn/cache/@types-react-gtm-module-npm-2.0.4-ba9b45b661-0bba7b8416.zip and /dev/null differ diff --git a/.yarn/cache/react-gtm-module-npm-2.0.11-99adaedaa9-ceedf296a1.zip b/.yarn/cache/react-gtm-module-npm-2.0.11-99adaedaa9-ceedf296a1.zip deleted file mode 100644 index ebb819c..0000000 Binary files a/.yarn/cache/react-gtm-module-npm-2.0.11-99adaedaa9-ceedf296a1.zip and /dev/null differ diff --git a/package.json b/package.json index 4d5d83c..1cae871 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,6 @@ "classnames": "^2.5.1", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-gtm-module": "^2.0.11", "react-router-dom": "^7.1.3", "zustand": "^5.0.3" }, @@ -47,7 +46,6 @@ "@types/node": "^22.10.7", "@types/react": "^18.3.18", "@types/react-dom": "^18.3.5", - "@types/react-gtm-module": "^2", "@typescript-eslint/eslint-plugin": "^8.20.0", "@typescript-eslint/parser": "^8.20.0", "@vitejs/plugin-react": "^4.3.4", diff --git a/src/hooks/common/useChannelTalk.ts b/src/hooks/common/useChannelTalk.ts index 6d64833..796028f 100644 --- a/src/hooks/common/useChannelTalk.ts +++ b/src/hooks/common/useChannelTalk.ts @@ -11,7 +11,7 @@ export const useChannelTalk = () => { ChannelService.loadScript(); ChannelService.boot({ - pluginKey: import.meta.env.VITE_CHANNEL_TALK_KEY || "", + pluginKey: import.meta.env.VITE_CHANNEL_TALK || "", hideChannelButtonOnBoot: true, }); }, []); diff --git a/src/main.tsx b/src/main.tsx index ca223cf..30dba31 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,7 +1,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { StrictMode } from "react"; import ReactDom from "react-dom/client"; -import TagManager from "react-gtm-module"; import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; @@ -17,33 +16,28 @@ import { ToastProvider } from "@/hooks/common/useToast"; import "@/styles/reset.scss"; import "@/styles/global.scss"; -const gtmTag = { - gtmId: import.meta.env.VITE_GTM_ID, -}; - -const initializeGA4 = () => { - const ga4Id = import.meta.env.VITE_GA4_ID; - - const script = document.createElement("script"); - script.async = true; - script.src = `https://www.googletagmanager.com/gtag/js?id=${ga4Id}`; - document.head.appendChild(script); +const GA4_ID = import.meta.env.VITE_GA4_ID; - script.onload = () => { - (window as any).dataLayer = (window as any).dataLayer || []; +const addGtagScript = () => { + if (!GA4_ID) return; - (window as any).gtag = function (...args: any[]) { - (window as any).dataLayer.push(args); - }; + const script1 = document.createElement("script"); + script1.src = `https://www.googletagmanager.com/gtag/js?id=${GA4_ID}`; + script1.async = true; + document.head.appendChild(script1); - (window as any).gtag("js", new Date()); - (window as any).gtag("config", ga4Id); - }; + const script2 = document.createElement("script"); + script2.innerHTML = ` + window.dataLayer = window.dataLayer || []; + function gtag(){ dataLayer.push(arguments); } + gtag('js', new Date()); + gtag('config', '${GA4_ID}'); + `; + document.head.appendChild(script2); }; if (import.meta.env.MODE === "production") { - TagManager.initialize(gtmTag); - initializeGA4(); + addGtagScript(); } ReactDom.createRoot(document.getElementById("root")!).render( diff --git a/src/pages/CreateReviewFailPage/CreateReviewFailPage.tsx b/src/pages/CreateReviewFailPage/CreateReviewFailPage.tsx index 32c56cb..bc3951f 100644 --- a/src/pages/CreateReviewFailPage/CreateReviewFailPage.tsx +++ b/src/pages/CreateReviewFailPage/CreateReviewFailPage.tsx @@ -19,7 +19,10 @@ const CreateReviewFailPage = () => { const { resetScanData } = useScanDataStore(); const handleNavigateHome = () => { - gTagLogEvent("create_review_fail_home_button"); + gTagLogEvent("create_review_fail_home_button_click", { + category: "Button", + label: "create_review_fail_home_button", + }); resetGenerateReviewData(); resetCreateReviewData(); resetScanData(); diff --git a/src/pages/HomePage/HomePage.tsx b/src/pages/HomePage/HomePage.tsx index c3f7f4d..15273d9 100644 --- a/src/pages/HomePage/HomePage.tsx +++ b/src/pages/HomePage/HomePage.tsx @@ -60,7 +60,10 @@ const HomePage = () => {