2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Next.jsでGA4・GTMを設定したら驚くほど簡単になっていた

2
Last updated at Posted at 2026-05-28

GA4 や GTM の設定は、マーケティング施策やプロダクト改善のために必要になることが多いです。

ただ、エンジニア視点だと「あとでやろう」と後回しになりがちなタスクでもあります。

実際、以前 GA4 を設定したときは、素の JavaScript を直接埋め込む必要がありました。

  • script の読み込み位置を考える
  • hydration を壊さないようにする
  • イベント送信関数を自前で作る
  • dataLayer を意識する

など、地味に面倒だった記憶があります。

ところが、Next.js の @next/third-parties を使ったところ、かなり簡単に設定できて驚きました。

検証込みでも数時間ほどで実装できたので、備忘録としてまとめます。


1. GTMでタグを発行する

まずは Google Tag Manager でコンテナを作成します。

作成後、GTM 用のタグが発行されるので、GTM-XXXXXXX の ID を控えておきます。


2. @next/third-parties をインストールする

Next.js 公式が、Google 系サービス向けのラッパーコンポーネントを提供しています。

これを使うことで、公式ドキュメントにある複雑な script タグを自前で書かなくて済みます。

インストールは以下だけです。

npm install @next/third-parties

3. layoutにGTMタグを設置する

GTM 用コンポーネントを作成します。

import { GoogleTagManager } from "@next/third-parties/google";

export function GtmTag() {
  if (process.env.NEXT_PUBLIC_ENV !== "prod") return null;

  return (
    <GoogleTagManager
      gtmId={process.env.NEXT_PUBLIC_GTM_ID!}
    />
  );
}

あとは layout.tsx に配置するだけです。

<body>
  <GtmTag />
  {children}
</body>

これだけで GTM の script 読み込みが完了します。

以前のように、

  • script の読み込み順
  • dangerouslySetInnerHTML
  • noscript

などを意識しなくていいのがかなり楽でした。


4. イベント送信関数を作る

イベント送信も @next/third-parties 側で用意されています。

import { sendGTMEvent } from "@next/third-parties/google";

export function sendGtmEvent(event: string, params?: object) {
  sendGTMEvent({
    event,
    ...params,
  });
}

ボタンクリック時に呼ぶだけです。

<Button
  onClick={() =>
    sendGtmEvent("cta_click", {
      location: "hero",
    })
  }
>
  無料登録
</Button>

dataLayer を直接触る必要もなく、かなりシンプルでした。


5. GTM側でイベント登録する

Next.js 側から送信したイベントは、そのままでは GA4 に保存されません。
まず GTM 側でカスタムイベントとして登録し、そのイベントをトリガーにして GA4 へ送信する設定を行います。

今回は CTA ボタンのクリックや会員登録完了を計測したかったため、

cta_click
signup_submit

image.png

などのイベントを送信しました。

イベント名を統一しておくと、後から分析やダッシュボード作成もしやすくなります。

6. GA4のプレビューで検証する

最後にタグマネージャーのプレビュー機能で動作確認します。
https://tagmanager.google.com/

スクリーンショット 2026-05-29 8.33.35.png

image.png

イベントが飛んでいることを確認できれば完了です。

ここまで含めても、かなり短時間で導入できました。


まとめ

正直、以前の GA4 導入体験を知っているとかなり感動しました。

特に良かったのは、

  • Next.js 公式がラップしてくれている
  • script 周りを意識しなくていい
  • イベント送信も簡潔
  • App Router でも自然に導入できる

このあたりです。

マーケティング施策や PDCA を回すうえで、GA4 は避けて通れないことが多いですが、以前よりかなり敷居は下がったと感じました。

こういう「かゆいところに手が届く」ライブラリが増えているのも、Next.js の普及率の高さを感じます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?