GTM4WP – A Google Tag Manager (GTM) plugin for WordPress

説明

Google タグ マネージャー (GTM) は、直感的な Web UI で、どなたでもアナリティクスやマーケティングのタグ、その他のコードスニペットの管理とデプロイができる Google の無料ツールです。このツールの詳細は公式ウェブサイトをご覧ください。

プラグインが GTM コンテナのコードスニペットを WordPress サイトに設置するので、もう手動で追加する必要はありません。
複数コンテナにも対応しています !

このプラグインは、ページのメタデータとユーザー情報を「データレイヤー」にプッシュすることで、GTM 設定を補完します。
Google の公式ヘルプページにデータレイヤーの詳細があります。

本プラグインの利用には PHP 7.4 以上が必要です。

GTM コンテナコードの配置

オリジナルの GTM コンテナコードは2つのパートに分かれます:

前半は、サイト全ページの <head> セクションに追加される JavaScript コードスニペットです。
これは GTM のすべての機能を有効化する重要な部分です。本プラグインは、この部分をサイトに正しく設置するのに役立ちます。

後半は、ユーザーの JavaScript が無効な場合にフォールバックとして機能する iframe スニペットです。
Google は最高のパフォーマンスを得るために、このコードスニペットを各ページの <body> タグの直後に設置することを推奨しています。

理想的ではありませんが、これはコードのより下のほうに設置しても機能します。本プラグインは2番目のコードスニペットのコード配置オプションを提供します。

使用中の WordPress テーマが WordPress 5.2の追加機能と互換性がある場合、本プラグインはこの2番目のコードを適切な場所に配置します。
Genisis テーマ、GeneratePress テーマ、Elementor、Oxygen Builder および Beaver Builder テーマのユーザーも、これを正しく配置できます。
これを利用するには、プラグインオプションの互換モードをオフに設定してください。

その他のサイトでは、カスタム PHP コード (「手動コード」オプション) を使用してこの2番目のコードスニペットを設置するか、いわゆる「フッター」オプションを選択して、コードの下部にコードを追加できます (これは推奨される方法ではありませんが、機能します)

基本データに含まれるもの

  • 投稿 / 固定ページのタイトル
  • 投稿 / 固定ページの日付
  • 投稿 / 固定ページのカテゴリー名
  • 投稿 / 固定ページのタグ名
  • 投稿 / 固定ページの投稿者 ID と名前
  • 投稿 / 固定ページの ID
  • 投稿タイプ
  • 投稿フォーマット
  • 現在のページを含む、現在のカテゴリー / タグ / タクソノミー内の投稿数
  • 任意の投稿タイプに紐づくカスタムターム
  • ログイン状態
  • ログイン中ユーザーの権限グループ
  • ログイン中ユーザー ID (Google アナリティクスでクロスデバイス行動を追跡するため)
  • ログイン中ユーザーのメールアドレス (ハッシュなしおよび SHA256 ハッシュ値、追跡用)
  • ログイン中ユーザーの作成日
  • サイト検索データ
  • サイト名と ID (WordPress マルチサイトインスタンス向け)
  • 訪問者の IP アドレス (使用する際は、訪問者の明示的な同意を得てください)

ブラウザー / OS / 端末データ

  • ブラウザーデータ (名前、バージョン、エンジン)
  • OS データ (名前、バージョン)
  • 端末データ (種類、製造元、モデル)

WhichBrowser ライブラリの提供データを使用します: http://whichbrowser.net/

気象データ

(ベータ)

ユーザーの現在の天気情報を dataLayer にプッシュします。広告プラットフォームで天気関連のオーディエンス / リマーケティングリストを作成したり、ウェブ解析でユーザー セグメンテーションに活用したりできます:

  • 気象カテゴリー (曇り、雨、晴れなど)
  • 気象の説明: より詳細なデータ
  • 摂氏または華氏の温度
  • 気圧
  • 風速と風向き

気象データは Open Weather Map からクエリされます。サイトのトラフィックによっては、追加料金が適用される場合があります。
http://openweathermap.org/price

機能を利用するには、OpenWeatherMap の (無料の) API キーが必要です。

ipstack.com を使用して、サイト訪問者の位置を特定します。この機能を動作させるには、IPStack.com の (無料の) API キーが必要です。
https://ipstack.com/product

メディア再生イベント

(試験中)

あらゆる埋め込みメディアのユーザーインタラクションを追跡します。

  • YouTube
  • Vimeo
  • Soundcloud

DataLayer イベントは、メディアプレイヤーの読み込み、メディアの再生中、一時停止 / 停止、およびオプションでユーザーがメディア再生時間の10、20、30、…、90、100% に達したときに発火するよう選択できます。

埋め込みメディアの追跡は、WordPress 組み込みの oEmbed 機能はもちろん、他のほとんどのメディアプラグインやコピー & ペーストコードで設置するものに対応しています。ページ読み込み後にサイトに挿入されるプレイヤーには、現在非対応です。

スクロールトラッキング

訪問者がページトップから下までを、どのようにスクロールしたかを基準にタグを発火します。
例えば、「読者」(一定時間ページで過ごす) と「スクロールだけする人」(数秒以内にスクロールする人) を分けることが考えられます。これらのイベントを使用して、アナリティクスタグやリマーケティング / コンバージョンタグ (マイクロ コンバージョン用) を発火できます。

スクロールトラッキングは、以下の方々が開発したものを元にしています。

  • Nick Mihailovski
  • Thomas Baekdal
  • Avinash Kaushik
  • Joost de Valk
  • Eivind Savio
  • Justin Cutroni

オリジナルスクリプト:
http://cutroni.com/blog/2012/02/21/advanced-content-tracking-with-google-analytics-part-1/

タグ マネージャーのタグ、トリガー、変数のブラックリストとホワイトリスト

サイトのセキュリティ強化のため、タグ / トリガー / 変数をホワイトリストおよびブラックリスト登録するオプションがあります。
GTM の設定に関係なく、特定タグの発火や、特定の種類の変数の使用を防止できます。

GTM アカウントに関連付けられた Google アカウントがハッキングされると、攻撃者はホスティング サーバー上のコードにアクセスしなくても、サイト上でマルウェアを簡単に実行できてしまいます。カスタム HTML タグやカスタム JavaScript 変数をブラックリストに登録することで、タグ マネージャーコンテナを保護できます。

機能連携

複数の人気プラグインとの機能連携があります。今後さらに追加予定です !

  • Contact Form 7: フォームが何らかの結果 (メール送信、メール失敗、スパム検出、無効な入力)での送信時にイベントを発火
  • WooCommerce:
    • GA4 eコマースの実装
    • プロモーションは非対応 (WooCommerce 本体にその機能がまだないため)
    • 返金は非対応
    • High Performance Order Storage (HPOS) との互換性
  • AMP: ページの AMP バージョンに AMP コンテナを読み込む
  • Cookiebot: 必要に応じて自動 Cookie ブロックモードを使用
  • Google Consent Mode v2: 認定外の CMP やプラグイン向けに、同意フラグ付きの「default」コマンドを送信します。

サーバーコンテナ

サーバーコンテナを使用している場合、カスタムドメイン名とカスタムパスを入力し、そこから gtm.js を読み込むことができます。

特定の権限グループを追跡対象外にする

ロールごとに、該当ロールでログイン中のユーザーがフロントエンドへアクセスした際に追跡から除外するかを設定できます。対象ユーザーでは GTM コンテナコードは一切出力されません。

スクリーンショット

インストール

  1. duracelltomi-google-tag-manager-for-wordpress/wp-content/plugins/ にアップロードします。
  2. WordPress の「プラグイン」メニューからプラグインを有効化してください
  3. 設定 Google タグ マネージャーでコンテナ ID を入力し、その他のオプションを設定します。

FAQ

○○ するには、どうすればいいですか ?

さまざまな Google タグ マネージャーの設定と実装のチュートリアルは、プラグインのウェブサイトで確認できます:
https://gtm4wp.com/setup-gtm4wp-features

WooCommerce で、PayPal やサードパーティの決済サービスのトランザクションが Google アナリティクスで追跡できません

PayPal やその他サードパーティの決済代行サービスは、デフォルトで決済が成功してもユーザーをサイトにリダイレクトしません。
お客様をサイトに戻すようにしても、サンキューページに到達する前にブラウザを閉じる場合があります。これは、Google アナリティクスやその他のタグが呼び出されない可能性があることを意味します。

決済代行サービスの設定で、サイトへ戻る設定を有効化してください。これにより、お支払い後に簡単な情報ページを表示し、ユーザーをサイトにリダイレクトするようになり、トランザクション追跡の精度と頻度が向上します。

WooCommerce で購入イベントが追跡されない

WooCommerce の標準的な注文完了ページをカスタマイズするサードパーティ製のプラグインを利用しており、そのプラグインが WooCommerce の標準的な統合フックを使用していない場合、このような問題が発生することがあります。
この場合は、該当するプラグインの使用を停止するか、プラグインの開発元に対して、woocommerce_is_order_received_page や woocommerce_thankyou といったアクションやフィルターをサポートし、標準的な注文完了ページの挙動を正しく再現するように開発元に依頼してください。

タグ / 変数クラスをブラックリスト登録するオプションがないのはなぜですか ?

Google はクラス単位でのタグ・変数のブラックリスト指定を推奨していますが、どのタグ・変数が影響を受けるか分かりにくいため、本プラグインではブラックリストタブではクラスではなく個別のタグ・変数を指定する方式にしています。

変数については、重要なタグの一部に含まれていないことを確認してください。そうした変数をブラックリストにすると、該当タグが無効になります。

Google タグ マネージャーでスクロールイベントを追跡するには ?

Google タグ マネージャーは、パーセンテージまたはピクセルに基づく基本的なスクロール深度の追跡を標準でサポートしています。本プラグインでは、スクロールトラッキングイベントを追加し、ユーザーの意図やエンゲージメントを捉えることにより重点を置いています。

ルール定義で使用できるデータレイヤーイベントは5種類あります。

  • gtm4wp.reading.articleLoaded: コンテンツが読み込まれました
  • gtm4wp.reading.startReading: 訪問者がスクロールを開始したとき。timeToScroll dataLayer 変数には、記事ロードからの経過時間 (秒) が入ります。
  • gtm4wp.reading.contentBottom: 訪問者はコンテンツの最後 (ページではありません!) に到達しました。timeToScroll dataLayer 変数を更新
  • gtm4wp.reading.pagebottom: 訪問者がページの最後に到達しました。timeToScroll dataLayer 変数を更新
  • gtm4wp.reading.readerType: 記事が読み込まれてからの経過時間に基づいて、ユーザーが「scanner (流し読み)」か「reader (ちゃんと読んでいる)」かを判定し、readerType dataLayer 変数に格納します。

使用例: これらのイベントをトリガーにすると、Google Universal Analytics や Google Ads のリマーケティング / コンバージョンタグを発火させ、マイクロ コンバージョンの計測や、コンテンツを長く読んだ訪問者にだけ広告を配信することができます。

評価

2025年10月29日
We’ve been using GTM4WP for all of our clients websites and it’s been super reliable. The eCommerce tracking integration has been a huge time saver for us. Huge thank you for this plugin Thomas Geiger!
2025年8月13日 1 reply
I am writing this review to save other developers and site owners the immense amount of time I have just lost. I needed to implement standard GA4 e-commerce tracking on a professional WordPress/WooCommerce site. Based on its popularity and countless recommendations, I chose GTM4WP as the solution to generate the required dataLayer. Unfortunately, after days of intensive, professional-level debugging, I discovered that the plugin was completely non-functional in my specific—yet very common—environment. The plugin failed at its two most essential tasks: GTM Snippet Injection: The plugin’s most basic feature—injecting the GTM container script into the website’s <head> and <body>—did not work at all. The script was simply not present. I had to bypass this functionality entirely and inject the code manually using another method (Code Snippets) just to get our GTM container to load. E-commerce dataLayer Generation (The Deal-Breaker): This is the primary reason anyone uses this plugin. After successfully loading our GTM container manually, I ran a full test purchase. By analyzing the GTM debug mode and the site’s dataLayer object, I can confirm that GTM4WP completely failed to generate the purchase event and its corresponding ecommerce object on the WooCommerce order confirmation page. It produced absolutely nothing. My Technical Environment (Please read this before you install):To help others, here is the stack where the plugin failed. This is likely the source of the conflict: CMS: WordPress E-commerce: WooCommerce Theme: Hello Elementor (using a child theme) Page Builder: Elementor Pro Key Detail: I am using Elementor Pro to customize the WooCommerce page templates, including the “Thank You” / “Order Received” page. Conclusion: My conclusion is that GTM4WP is fundamentally incompatible with themes or page builders that override default WooCommerce templates—a standard practice for virtually any custom-designed website today. Because it cannot handle this common scenario, the plugin proved to be entirely useless for my project. While it may work on simple sites with basic, unmodified themes, it is not a reliable solution for professional, customized builds. The time and effort wasted diagnosing this incompatibility were substantial. I cannot recommend this plugin and strongly advise users with a similar tech stack to seek a manual implementation from the start.
2025年3月10日
Em vários sites que o plugin está instalado, após alguma atualização, o menu mobile de alguns sites não abre.
2024年12月2日
I’m disappointed with the support for this plugin. I submitted a question over a week ago, but I have yet to receive any response from the support team. While the plugin itself may work fine, having reliable support is critical, especially when issues arise. Unfortunately, the lack of responsiveness has made it difficult to trust this plugin for long-term use. I hope the team improves their support response time in the future.
154件のレビューをすべて表示

貢献者と開発者

GTM4WP – A Google Tag Manager (GTM) plugin for WordPress はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“GTM4WP – A Google Tag Manager (GTM) plugin for WordPress” は12ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“GTM4WP – A Google Tag Manager (GTM) plugin for WordPress” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログRSS で購読してみてください。

変更履歴

1.22.3

  • 修正: WooCommerce の select_item イベントのタイムアウトが 0 のとき、ブラウザの商品ページ読み込みを妨げないよう変更。
  • 修正: select_item の eventCallback のタイムアウトが正しく読み取れなかった問題。

1.22.2

  • 修正: テンプレートで is_order_received_page() が使えずフォールバックが動いた場合に purchase イベントが発火しなかった問題。

1.22.1

  • 修正: 購入追跡に関する追加の修正。Khnaz35 に感謝。

1.22

  • 追加: select_item イベントのタイムアウトを変更する WooCommerce オプション。アドブロック利用時の UX 改善に役立つ場合があります。
  • 追加: default コマンドの Consent Mode フラグを上書きする WordPress フィルター GTM4WP_WPFILTER_OVERWRITE_COMO_FLAG / gtm4wp_overwrite_consent_mode_flag。同意バナープラグインのサポート負担軽減に利用可能。
  • 修正: コンテナ配置をオフにし gtm4wp_the_gtm_tag() を手動呼び出しした際にフロントに不要な出力が出る問題。Michael Bourne に感謝。
  • 修正: Bricks テンプレートと WooCommerce 併用時にカート追加の追跡が壊れていた問題。
  • 更新: 同梱の WhichBrowser ライブラリを最新版に。PHP エラー対応の暫定措置で、長期的には Matomo Device Detector への移行を予定。
  • 更新: GTM コンテナパスに / 文字を許可 (same tag gateway 対応)。
  • 更新 / 修正: WooCommerce の購入追跡を v1.20 以前のロジックに戻しました (新方式の方が問題を増やしたため)。影響を受けた方にはお詫びします。

1.21.1

  • 修正: product_qty 未定義により add_to_cart が阻害される場合がある問題。diegoarda に感謝。
  • 修正: WebToffee 連携がレガシー 2.x 製品ラインにのみ必要である旨を明記。
  • 修正: サイト内検索の追跡での反射型 XSS。godzeo に感謝 !

1.21

!!! 警告 !!!
WooCommerce 連携に大きな変更があります。
テーマが必須フック woocommerce_thankyou をサポートしているか確認してください。

  • 追加: 可変商品のページ読み込み時に親商品データで view_item を発火する WooCommerce オプション。
  • 追加: WooCommerce の可変商品で item_group_id に親商品 ID を含める。
  • 追加: CSP 用に script に nonce を付与する GTM4WP_WPFILTER_GET_CSP_NONCE (定数) / gtm4wp_get_csp_nonce フィルター。
  • 更新: purchase イベントを woocommerce_thankyou で発火するよう変更。実行タイミングが同意状態チェックの後になるため、より多くの環境で正しく動作します。
  • 更新: GTM4WP_WPFILTER_EEC_ORDER_DATA / gtm4wp_eec_order_data フィルターに、$order_data の後に WC_Order 全体を渡す第2引数を追加。
  • 更新: カートに商品がない場合、バックエンドから view_cart / begin_checkout を発火しないように変更。WooCommerce フック未対応テーマでの誤計測を防止。
  • 修正: 管理画面での load_plugin_textdomain() 関連の PHP 通知。

1.20.3

  • 修正: 「_load_textdomain_just_in_time was called incorrectly」通知 – WordPress 6.7 互換。

1.20.2

  • 修正: 商品バリエーションの追跡で誤った ID パラメータ (item_id ではなく id)。micmaf に感謝。
  • 修正: 商品一覧で「オプションを選択」「商品を見る」クリック時は add_to_cart を計測しないよう変更。
  • 修正: WooCommerce でカート数更新時の JavaScript 参照エラー。Sakuk3 に感謝。
  • 修正: customerBillingEmailHash を orderData.customer.billing.email_hash と同様にハッシュ (拡張コンバージョンは orderData の値を使用)。
  • 追加: GTM4WP 管理画面に必要な WooCommerce の最低バージョン (現状 5.0+) を表示。

1.20.1

  • 修正: コンテナ配置がオフかつ console.log もオフの場合に GTM を読み込まないよう変更。morvy に感謝。
  • 修正: EC データレイヤーの item_id を数値に変換していた変更を元に戻し、他連携との互換のため文字列のまま保持。
  • 修正: スクロールトラッキングで要素 ID が不正なときの JavaScript エラー。
  • 変更: WooCommerce と orderData 変数でのユーザーデータ正規化・ハッシュを改善 (拡張コンバージョン向け)。
  • 変更: PHP コードの最適化 (hans2103)。
  • 追加: WooCommerce 注文完了ページの orderData を変更するフィルター。GTM4WP_WPFILTER_EEC_ORDER_DATA 定数または gtm4wp_eec_order_data 文字列で利用。

1.20

大規模クリーンアップリリース !

非推奨機能を多数削除しました。
WooCommerce 連携のコードを整理・再構成したため、GTM4WP の内部データ構造に依存したカスタムコードがある場合は、本番の前にステージングなどで更新してください !

  • 削除: WooCommerce 向け非推奨 Universal Analytics イベント。
  • 削除: 非推奨フィルター GTM4WP_WPFILTER_AFTER_DATALAYER/gtm4wp_after_datalayer。
  • 削除: 非推奨フィルター GTM4WP_WPFILTER_ADDGLOBALVARS/gtm4wp_add_global_vars。
  • 削除: ブラウザの「追跡しない」をデータレイヤーに載せる非推奨機能 (ブラウザ機能自体が非推奨のため削除)。
  • 削除: 非推奨の Google Optimize 連携。
  • 削除: 非推奨定数 GTM4WP_OPTION_BLACKLIST_MACRO_* および GTM4WP_OPTION_BLACKLIST_。
  • 削除: 非推奨の WordPress フィルター GTM4WP_WPFILTER_GETTHEGTMTAG (v1.16 で非推奨)。
  • 変更: 内部の関数名・変数名を多数変更。依存は非推奨ですが、使っていた場合はコードを確認してください。
  • 変更: WP フィルター gtm4wp_datalayer_on_pageload を gtm4wp_woocommerce_datalayer_on_pageload に改名 (呼び出しタイミングを明確化)。
  • 変更: WooCommerce 連携の orderData データレイヤーに、拡張コンバージョン向けキーを追加:
    • orderData.customer.billing.first_name_hash
    • orderData.customer.billing.last_name_hash
    • orderData.customer.billing.phone_hash
  • 非推奨: orderData.customer.billing.emailhash。orderData.customer.billing.email_hash (アンダースコア) に更新してください。
  • 追加: 各 EC アクションの商品配列に stockstatus キー。WP_Product->get_stock_status() の値。hans2103 に感謝。
  • 追加: WebToffee GDPR Cookie Consent プラグイン連携。同意の変更時や保存済み同意の読み込み時に GTM イベントを発火できます。
  • 修正: ページ上で未発火の場合、チェックアウト送信時に add_payment_info / add_shipping_info が発火しなかった問題。
  • 修正: IP アドレスは REMOTE_ADDR のみ参照。プラグイン設定でカスタム HTTP ヘッダーを指定可能。

1.19.1

  • 修正: 商品カテゴリー判定時の追加チェックで特定ケースの PHP エラーを防止。
  • 修正: 管理画面説明文の Consent Mode フラグ名の誤り。

1.19

警告 !
Universal Analytics / GA3 の EC イベントは 非推奨 です !
次の GTM4WP イベントや旧 EC データレイヤーに依存しないよう GTM を更新してください:
* gtm4wp.productClickEEC
* gtm4wp.addProductToCartEEC
* gtm4wp.removeFromCartEEC
* gtm4wp.checkoutOptionEEC
* gtm4wp.checkoutStepEEC
* gtm4wp.changeDetailViewEEC
* gtm4wp.orderCompletedEEC

上記イベントの代わりに、新しい GA4 の EC イベント (add_to_cart、purchase など) を使えます。
Universal Analytics 用 GTM タグでは、データレイヤーの GA4 EC データを使うオプションがあります。
GA360 で EC データを引き続き収集している場合は、GA4 EC イベントで発火するよう GTM 設定を更新してください。

  • 更新: WooCommerce 連携で Yoast SEO と Rank Math SEO のプライマリカテゴリー選択に対応。
  • 更新: gtm4wp_admin_page_capability フィルターで管理画面に必要な権限を変更可能 (emreerkan に感謝)。
  • 修正: add_to_cart で整数価格に .00 が付かなかった問題。
  • 追加: 新しい GA4 イベントの push 前に EC オブジェクトをクリアするオプション。
  • 追加: 同意管理ツールが未対応の場合に備え、Google Consent Mode の default コマンドに対応。

1.18.1

  • 修正: blocking_cookie 未定義の PHP 通知。

1.18

  • 修正: 注文完了ページでの新規顧客判定エラー (morvy に感謝)。
  • 修正: WooCommerce 注文完了ページで get_meta() on null エラー (Dekadinious に感謝)。
  • 更新: WordPress / WooCommerce の互換性を更新。
  • 更新: Google Optimize は 2023 年 9 月終了のため連携を非推奨化。
  • 追加: Cookie 設定後に block_gtm4wp_geoip という Cookie を作成。値を “yes”、”true”、”on”、”1” のいずれかにすると、そのユーザーでは GeoIP (と天気 API) を無効化。