Vercelが @next/third-parties というライブラリを提供してくれているので、それを使えばGA4の導入も楽々です。
@next/third-parties はGoogle Tag Managerにも対応しているのですが、今回はGA4を直接導入します。
ソースコード(抜粋)
src/app/layout.tsx
import { GoogleTagManager } from '@next/third-parties/google'; export default async function RootLayout({ children }: { children: ReactNode; }) { return ( <html lang="ja"> <body> <div>{ children }</div> <body> {!!process.env.GOOGLE_ANALYTICS_ID && ( <GoogleTagManager gtmId={process.env.GOOGLE_ANALYTICS_ID} /> )} </html> ); }
.env
GOOGLE_ANALYTICS_ID=G-XXXXXXXXXX
ルートのlayout.tsxにGoogleTagManagerを読み込んでgtmIdにIDを渡せばOKなんですが、本番サイトのみに適用したかったので、.envから渡すようにしています。
基本的にはこれがだけでOKです。
残念ながら、Google Analytics Debugger でデバッグできなくなっている気がするのですが、本番にアップして確認したところ、問題なく動作していることを確認できました。