Claude Code
2026.10.27

【開発ガイド】Claude CodeからGTM APIを叩いてタグ設定を一括自動化する方法

【開発ガイド】Claude CodeからGTM APIを叩いてタグ設定を一括自動化する方法

目次

結論:Claude CodeとGTM APIを組み合わせれば、タグ設定の99%は自動化できる

本記事の結論はシンプルです。Googleタグマネージャー(GTM)のタグ・トリガー・変数の設定は、Claude Code から Google Tag Manager API(以下、GTM API)を叩くことでテンプレ化 & 一括自動化できます。これにより、次のようなメリットが得られます。

  • 新規プロパティ・新規コンテナへの初期設定を数分で完了できる
  • 人手による設定ミス(抜け・二重登録・命名ゆれ)をほぼゼロにできる
  • 複数サイト・複数環境(本番 / ステージング)をコードで一元管理できる

この記事では、Claude Code から GTM API を実行してタグ設定を自動化する手順と、実務で使える設計パターンを、開発者向けに解説します。

GTM API自動化の全体像

GTM API自動化とは何か

GTM API 自動化とは、Google が提供する公式 API を利用して、GTM コンテナ内の下記要素をプログラムから操作することです。

  • タグ(Tags)
  • トリガー(Triggers)
  • 変数(Variables)
  • バージョン(Container Versions)
  • ワークスペース(Workspaces)

これを手作業ではなく、Claude Code 上のスクリプトから API 経由で一括生成・更新することで、「タグ設定をインフラコードの一部」として管理できるようになります。

なぜClaude Codeを使うのか

一般的には、GTM API のクライアントとしてローカル環境の Node.js や、GCP 上の Cloud Functions などを利用することが多いです。しかし、Claude Code を使うと次のような利点があります。

  • ブラウザ上でコードを対話的に生成・修正・実行できる
  • 既存のGTMエクスポート(JSON)を読み込ませ、Claude に変換ロジックを自動生成させられる
  • 自然言語で「このサイト用のイベント計測タグを一括で作って」と指示できる

実質的に、「AIにタグ実装を丸投げし、GTM API が実行役になる」構成を組めるのが、Claude Code を使う最大のポイントです。

事前準備:GTM APIを叩くためのセットアップ

ステップ一覧

まず、GTM API を利用するための最低限の準備を整理します。

  • 1. Google Cloud プロジェクトを作成する
  • 2. GTM API を有効化する
  • 3. 認証情報(OAuth 2.0 / サービスアカウント)を作成する
  • 4. 必要なスコープと権限を確認する
  • 5. API クライアントライブラリ(Node.js など)を準備する

GTM APIとは何か(定義)

GTM API とは、Googleタグマネージャーのコンテナ設定をプログラムから読み書きするための REST API 群です。エンドポイント例は以下の通りです。

  • accounts:アカウント一覧取得
  • containers:コンテナ(Web / App など)一覧取得
  • workspaces:ワークスペース管理
  • tags:タグの作成・更新・削除
  • triggers:トリガーの作成・更新・削除

GTM 管理画面で行っているクリック操作を、HTTP リクエストで再現できるイメージです。

代表的なエンドポイント一覧(例)

用途 HTTPメソッド エンドポイント例
アカウント一覧取得 GET https://www.googleapis.com/tagmanager/v2/accounts
コンテナ一覧取得 GET https://www.googleapis.com/tagmanager/v2/accounts/{accountId}/containers
タグ作成 POST https://www.googleapis.com/tagmanager/v2/accounts/{accountId}/containers/{containerId}/workspaces/{workspaceId}/tags
トリガー作成 POST .../triggers
変数作成 POST .../variables

Claude CodeからGTM APIを叩くための基本実装

開発環境の考え方

Claude Code 上では、一般的に以下のような構成を取ります。

  • Node.js + TypeScript または JavaScript を採用
  • googleapis ライブラリを利用して認証〜API呼び出しを実装
  • .env で認証情報やアカウントIDを管理
  • タグ・トリガー・変数の定義を JSON / YAML で外部ファイル化

認証処理の基本(例:サービスアカウント)

もっとも扱いやすいのはサービスアカウントによる認証です。以下は、Node.js で GTM API クライアントを初期化する例です。

import { google } from 'googleapis';

async function createGtmClient() {
  const auth = new google.auth.GoogleAuth({
    keyFile: process.env.GOOGLE_APPLICATION_CREDENTIALS,
    scopes: ['https://www.googleapis.com/auth/tagmanager.edit.containers'],
  });

  const authClient = await auth.getClient();
  const tagmanager = google.tagmanager({ version: 'v2', auth: authClient });
  return tagmanager;
}

サービスアカウントには、対象の GTM アカウントに対して ユーザーとして招待し、権限(編集権限以上)を付与しておく必要があります。

アカウント・コンテナ・ワークスペースIDの取得

GTM API は、accounts > containers > workspaces の階層構造になっています。まずは ID を取得するコードを書きます。

async function getWorkspacePath(tagmanager: any, accountName: string, containerName: string) {
  const accountsRes = await tagmanager.accounts.list();
  const account = accountsRes.data.account?.find(a => a.name?.includes(accountName));
  if (!account) throw new Error('Account not found');

  const containersRes = await tagmanager.accounts.containers.list({ parent: account.path! });
  const container = containersRes.data.container?.find(c => c.name === containerName);
  if (!container) throw new Error('Container not found');

  const workspacesRes = await tagmanager.accounts.containers.workspaces.list({ parent: container.path! });
  const workspace = workspacesRes.data.workspace?.[0]; // デフォルトを利用
  if (!workspace) throw new Error('Workspace not found');

  return workspace.path; // 以降のAPI呼び出しのparentとして利用
}

このように、Claude に「GTM API の階層構造をなめてワークスペースパスを返す関数を書いて」と指示すれば、上記のようなコードを自動生成させることができます。

タグ設定の一括自動化パターン

タグ自動生成ロジックの基本方針

タグ設定の自動化では、以下の 2 レイヤーを分離しておくと保守しやすくなります。

  • 定義レイヤー:「何を実装したいか」を JSON / YAML で宣言的に記述
  • 適用レイヤー: 定義をパースして GTM API に変換し実行するスクリプト

Claude Code は特に「定義レイヤーのスキーマ設計」と「スキーマ → API ペイロード変換関数」の生成に相性が良く、自然言語で方針を伝えながらスキーマを洗練させていく使い方が有効です。

設定定義の例(YAML)

tags:
  - name: GA4 - Page View
    type: ga4_config
    measurementId: G-XXXXXXX
    trigger: All Pages

  - name: GA4 - Purchase Event
    type: ga4_event
    eventName: purchase
    params:
      - name: value
        type: dataLayer
        key: ecommerce.value
    trigger: Purchase Completion

triggers:
  - name: All Pages
    type: page_view

  - name: Purchase Completion
    type: page_path
    operator: equals
    value: /thank-you

上記のような定義ファイルを複数環境(本番 / ステージング)で使い回すことで、サイト横断の共通タグセットを一元管理できます。

定義ファイルからタグを生成するスクリプト例

async function applyTagsFromConfig(tagmanager: any, workspacePath: string, config: Config) {
  // 1. トリガーを先に作成
  for (const triggerDef of config.triggers) {
    await tagmanager.accounts.containers.workspaces.triggers.create({
      parent: workspacePath,
      requestBody: buildTriggerPayload(triggerDef),
    });
  }

  // 2. タグを作成
  for (const tagDef of config.tags) {
    await tagmanager.accounts.containers.workspaces.tags.create({
      parent: workspacePath,
      requestBody: buildTagPayload(tagDef),
    });
  }
}

buildTriggerPayload や buildTagPayload の中身は、Claude に 「GTM API v2 のスキーマに沿ってこのYAMLをペイロードに変換して」と指示することで大部分を自動生成できます。

Claude Codeを活用した開発フロー

開発フロー全体

Claude Code を活用した GTM 自動化の典型的なフローは以下の通りです。

  1. 既存GTMコンテナをエクスポート(JSON)し、Claude に読み込ませる
  2. 「この構成を再現できる設定スキーマを設計して」と指示する
  3. Claude が提案したスキーマを微調整し、最終版を決める
  4. スキーマを入力として GTM API ペイロードを生成するコードを作成してもらう
  5. Claude Code のターミナルから実際にスクリプトを実行し、テストコンテナに反映
  6. 動作確認後、本番コンテナに適用する

Claude Codeに任せると効率が上がるポイント

  • GTM APIの型定義やレスポンス構造の推論
  • 繰り返し出てくるボイラープレートコードの生成
  • タグ・トリガーの命名規則に沿った自動リネーム
  • 複数コンテナ間の差分比較レポートの生成

特に、既存GTMの構成を「コード化」するフェーズは人手だと煩雑になりやすいため、Claude に「このJSONを読み込んで、構成のサマリと改善提案を出して」と振るのがおすすめです。

エラー・制約への対処とベストプラクティス

よくあるエラーと対処法

症状 原因 対処
401 / 403 エラー 認証情報の権限不足 / スコープ不足 サービスアカウントをGTMに招待し、tagmanager.edit.containers 以上の権限を付与
404 エラー IDやパスの指定ミス accounts > containers > workspaces の path をログに出して確認
400 エラー ペイロードの必須項目不足 / 型不整合 公式ドキュメントとレスポンスサンプルを突き合わせ、Claude に修正を依頼

本番運用でのベストプラクティス

  • 必ずテスト用コンテナまたはテスト用ワークスペースで検証してから本番に適用する
  • 生成したタグは、GTM のプレビュー機能で目視確認する
  • 設定ファイルは Git 管理し、Pull Request ベースでレビューする
  • 本番適用用スクリプトには 「dry-run モード」を実装しておく

実務での具体的な活用シナリオ

シナリオ1:新規サイト立ち上げ時の初期タグ一括投入

新規サイトを複数立ち上げる際、毎回 GA4、広告タグ、コンバージョンイベントなどを手打ちするのは非効率です。
GTM API 自動化を導入すると、次のような流れで標準タグセットを展開できます。

  1. 標準タグセットを YAML で定義しておく
  2. サイトごとの差分(GA4測定ID、広告アカウントIDなど)だけを環境変数またはオーバーライドファイルで指定
  3. Claude Code から「サイトA用設定を適用するスクリプト」を生成&実行

これにより、サイト追加 = 設定ファイル1枚追加 という状態を作れます。

シナリオ2:既存GTM構成のリファクタリングと標準化

長期間運用された GTM コンテナは、タグとトリガーがスプロールしがちです。Claude Code と GTM API を組み合わせると、

  • 既存コンテナのタグ・トリガー・変数を API で一括取得
  • Claude に構成の分析と「整理方針」を提案してもらう
  • 命名規則やイベント設計ポリシーに沿った新コンテナ定義を自動生成する

といったフローで、混沌としたコンテナを「ほぼ自動」で再設計できます。

シナリオ3:複数ブランド・複数言語サイトの一元管理

グローバルサイトやマルチブランドサイトでは、国・言語・ブランドごとに GTM コンテナや GA4 プロパティが分かれているケースが多いです。
GTM API 自動化と設定ファイルのパラメータ化により、

  • 共通イベントスキーマは1つ
  • 計測IDや一部のイベントだけをブランド別に切り替え
  • 全サイトへ一括で新イベントをロールアウト

といった運用が、コードベースで実現できます。

よくある質問(FAQ)

Q1. Claude CodeからGTM APIを叩くときの認証方式は何を選ぶべき?

A. サーバーサイドで自動実行する用途が多い場合は、サービスアカウントがおすすめです。ブラウザ経由でユーザーごとに操作する用途なら OAuth 2.0 でも構いませんが、タグ設定の一括自動化という文脈ではサービスアカウントが扱いやすく、権限管理もしやすいです。

Q2. GTMのGUIとAPIでできることに差はある?

A. 細かい UI 特有の挙動(プレビュー画面や一部のテンプレート管理など)を除けば、主要なコンテナ設定はほぼ API から操作可能です。タグ・トリガー・変数・フォルダ・バージョン管理など、日常的な運用に必要な要素は API でカバーできます。

Q3. 一括自動化は危なくない?誤設定で大事故にならない?

A. テスト用コンテナやワークスペースでの検証と、dry-run モードの実装を徹底すればリスクはかなり低減できます。実際の本番反映は、GTM のバージョン作成と公開フロー(承認プロセス)を組み合わせることで、手動レビューを維持しつつ自動化の恩恵を受けられます。

Q4. 最初からすべてを自動化しないと意味がない?

A. いいえ。まずは 「新規 GA4 設定だけ」や「特定イベントタグ群だけ」といったスコープで始めるのがおすすめです。部分的にでも自動化すれば、タグ実装フロー全体のボトルネックが見えやすくなります。

Q5. 開発チーム内での分業はどうすればいい?

A. 典型的には、マーケ側(計測要件定義)と開発側(GTM API 実装)で役割を分けます。マーケ側は「どんなイベントを計測したいか」をスプレッドシートや YAML で定義し、開発側はそれをもとに Claude Code に変換ロジックを生成させる、という形が実務では回しやすいです。

まとめ:GTM設定を「AI + API」でコード化しよう

Claude Code から GTM API を叩くことで、

  • タグ・トリガー・変数の設定をテンプレート化し、一括自動生成できる
  • 複数サイト・複数環境の設定をコードで一元管理できる
  • 既存のカオスなGTMコンテナを、AIの力を借りて再設計できる

という、従来は手作業では難しかった運用が現実的になります。
まずは小さなスコープから、GTM API 自動化 + Claude Code の組み合わせを試してみてください。

本記事の内容を動画で確認したい方は、以下のYouTubeもあわせてご覧ください。
https://youtu.be/MDKJA5lqELo?si=bX5t8NNeb_ErYWPN

ブログ一覧へ戻る

おすすめ記事

CONTACT US

公式LINEで
無料相談受付中!

専門スタッフがLINEで無料相談を承ります。
初めての方も安心してご利用ください。