Google Analytics
gtag.js JavaScriptトラッキングコードを各ページに自動的に追加することで、Google AnalyticsトラッキングをDrupalに統合します。
google_analytics
インストール
composer require 'drupal/google_analytics:^4.0'
概要
Google Analyticsモジュールは、Google Analytics(GA4およびUniversal Analytics)と統合することで、DrupalウェブサイトにWeb統計トラッキング機能を追加します。必要なJavaScriptトラッキングコードをすべてのページに自動的に追加し、詳細なトラフィック分析、ユーザー行動追跡、マーケティング効果測定を可能にします。
このモジュールは、複数のGoogle Analyticsアカウント(GA4 G-プロパティ、Universal Analytics UA-、Google Ads AW-、DoubleClick DC-タグ)をサポートし、ページ、ユーザーロール、個人ユーザー設定に基づく可視性設定が可能です。外部リンク、mailto/telリンク、ファイルダウンロード、URLフラグメント、内部サイト検索、Drupalステータスメッセージなど、広範なトラッキングオプションを提供します。
高度な機能として、Token統合によるカスタムディメンションとメトリクスのサポート、クロスドメイントラッキング、パフォーマンス向上のためのローカルJavaScriptキャッシュ、プライバシー準拠のハッシュ化によるユーザーIDトラッキング、他のモジュールがトラッキング機能を拡張できるイベント駆動アーキテクチャが含まれます。
Features
- 複数のGoogle Analyticsアカウントサポート(GA4 G-、Universal Analytics UA-、Google Ads AW-、DoubleClick DC-)とドラッグ&ドロップによる順序変更
- パスパターンとワイルドカードを使用した特定ページの包含・除外によるページベースのトラッキング可視性設定
- 特定のユーザーロールをトラッキングまたは除外するロールベースのトラッキング制御
- アカウントページでのユーザーごとのオプトイン/オプトアウトトラッキング設定
- 外部ウェブサイトへの外部リンククリックトラッキング
- Mailtoおよび電話(tel:)リンククリックトラッキング
- 設定可能なファイル拡張子(50以上のデフォルト拡張子)によるファイルダウンロードトラッキング
- シングルページアプリケーション向けの個別ページビューとしてのURLフラグメントトラッキング
- Colorboxモーダルダイアログコンテンツトラッキング統合
- ページ内分析のための拡張リンクアトリビューションサポート
- 結果件数レポートを含む内部サイト検索トラッキング
- イベントとしてのDrupalステータス、警告、エラーメッセージトラッキング
- Drupal Tokenサポート付きカスタムディメンションとメトリクス
- カスタムJavaScriptコードスニペット(gtag config前後)
- 複数のトップレベルドメイン用クロスドメイントラッキング
- プライバシー準拠のIP匿名化(Universal Analytics用)
- 毎日自動更新されるローカルJavaScriptキャッシュ
- プライバシー準拠のための暗号化ハッシュによるユーザーIDトラッキング
- AdSense広告トラッキング統合
- ディスプレイ広告機能(リマーケティング、デモグラフィック、興味関心レポート)
- 翻訳セットの単一ユニットとしてのトラッキング
- 詳細なコンソールログ出力によるデバッグモード
- Drupal 6および7からの移行サポート
- 他のモジュールによる拡張のためのイベント駆動アーキテクチャ
Use Cases
基本的なウェブサイトトラフィック分析
モジュールをインストールし、GA4プロパティID(G-xxxxxxxx)を入力すると、すぐに訪問者データの収集が開始されます。デフォルト設定では、プライバシー準拠のためIP匿名化が有効で、管理パスを除くすべてのページをトラッキングします。Google Analyticsでトラフィックソース、ユーザー行動、ページの人気度を確認できます。
Eコマースダウンロードトラッキング
ファイルダウンロードトラッキングを有効にして、ユーザーがダウンロードするドキュメント、PDF、ソフトウェア、メディアファイルを監視します。広範なデフォルトのファイル拡張子リストは、ほとんどの一般的なファイルタイプをカバーしています。特定のニーズに合わせて拡張子リストをカスタマイズできます。ダウンロードはGoogle Analyticsにイベントとして表示され、ファイル拡張子がイベントアクションとなります。
マルチサイトまたはマルチブランドトラッキング
複数のGoogle AnalyticsプロパティIDを追加して、同じサイトを異なるGAアカウントでトラッキングします。クライアントサイトを管理する代理店、複数の部門を持つ組織、またはGA4とUniversal Analyticsの両方で同時にトラッキングする場合に便利です。ドラッグ&ドロップでアカウントの順序を変更できます。
マーケティングキャンペーン分析
外部リンククリックをトラッキングして、ユーザーが訪問する外部リソースを確認します。mailto:およびtel:クリックを監視して、お問い合わせフォームの代替手段を測定します。リマーケティングキャンペーンやデモグラフィック/興味関心レポート用にディスプレイ広告機能を有効にします。
カスタムディメンションによるユーザーセグメンテーション
Google Analyticsでカスタムディメンションを作成し、[current-user:role-names]などのトークン値でDrupalで設定してロール別に訪問者をセグメント化したり、Nodeトークンを使用してコンテンツ属性別にセグメント化したりします。プライバシー準拠のトークン検証により、意図しない個人情報の漏洩を防ぎます。
シングルページアプリケーショントラッキング
ハッシュベースのルーティングを使用するサイト向けにURLフラグメントトラッキングを有効にします。各ハッシュ変更が個別のページビューとして登録され、JavaScript多用のアプリケーションやアンカーベースのナビゲーションに正確なページレベルの分析を提供します。
フォームユーザビリティ分析
メッセージトラッキングを有効にして、Drupalのステータス、警告、エラーメッセージをGAイベントとしてキャプチャします。どのフォームがバリデーションエラーを生成するか、どのプロセスが警告を表示するか、分析ダッシュボードで全体的なユーザーエクスペリエンスの問題を特定します。
クロスドメイントラッキング
複数の関連ドメイン(example.com、shop.example.com、app.example.com)を持つ組織向けに、クロスドメイントラッキングを設定して、すべてのプロパティで訪問者を単一ユーザーとして扱います。クロスドメインリストにすべてのドメインを入力し、「複数のトップレベルドメイン」モードを選択します。
GDPR/プライバシー準拠トラッキング
このモジュールはプライバシーフレンドリーなデフォルトでインストールされます: IP匿名化が有効、認証済みユーザーにオプトアウト権限が付与、個人情報を含むトークンがカスタムディメンションからブロックされます。ユーザーはプロファイルページでトラッキング設定を制御できます。
ローカルキャッシュによるパフォーマンス最適化
トラッキングが正しく機能することを確認した後、ローカルJavaScriptキャッシュを有効にして、GoogleのCDNではなく自分のサーバーからgtag.jsを提供します。ファイルはcronで毎日自動更新され、外部リクエストを減らしてページ読み込み時間を改善します。
Tips
- 本番環境に移行する前に、Google Analyticsリアルタイムレポートを使用してトラッキング設定をテストしてください
- 開発中はデバッグモードを使用して、ブラウザコンソールで詳細なトラッキング情報を確認してください
- デフォルトの除外パス(/admin/*、/batchなど)は、分析を歪める可能性のある管理アクティビティのトラッキングを防ぎます
- カスタムディメンションを使用する場合は、常にGoogle Analyticsでディメンションを最初に設定し、次にDrupalで設定してください
- GDPR準拠のため、ディスプレイ広告機能を有効にする際はプライバシーポリシーを更新してください
- ローカルJavaScriptキャッシュはパフォーマンスを向上させますが、トラッキングが機能することを確認してから有効にしてください
- ユーザーIDトラッキングは一方向ハッシュを使用します - 実際のDrupalユーザーIDがGoogleに送信されることはありません
- 複数のGAアカウントを使用して、移行中にGA4とUniversal Analyticsの両方でトラッキングできます
- このモジュールは可視性設定に関係なく、エラー監視のために403および404エラーページを自動的にトラッキングします
Technical Details
Admin Pages 1
/admin/config/services/google-analytics
アカウントID、可視性設定、リンクトラッキング、カスタムディメンション/メトリクス、高度なJavaScriptオプションを含むすべてのGoogle Analyticsトラッキング動作を設定します。
権限 4
Hooks 6
hook_page_attachments
すべてのページにGoogle Analyticsトラッキングコードを追加するメインフック。可視性をチェックし、アカウントを読み込み、イベントをディスパッチし、JavaScriptをアタッチします。
hook_form_user_form_alter
ユーザーが適切な権限を持っている場合、ユーザープロファイルフォームにGoogle Analyticsオプトイン/オプトアウトチェックボックスを追加します。
hook_cron
キャッシュが有効な場合、ローカルにキャッシュされたトラッキングコードファイルを毎日再生成します。
hook_preprocess_item_list__search_results
サイト検索トラッキング用に検索結果の数を収集してページに追加します。
hook_entity_extra_field_info
ユーザーエンティティフォームにGoogle Analytics設定の疑似フィールドを定義します。
hook_help
モジュールのヘルプテキストとドキュメントリンクを提供します。
Troubleshooting 10
有効なウェブプロパティIDが設定されていることを確認してください。ページ可視性設定を確認してください - デフォルトでは管理ページは除外されています。現在のユーザーのロールが除外されていないことを確認してください。設定変更後はDrupalキャッシュをクリアしてください。
/admin/config/services/google-analyticsに移動し、UA-xxxxx-yyまたはG-xxxxxxxx形式の有効なGoogle AnalyticsウェブプロパティIDを入力してください。
デバッグモードはより大きなJavaScriptファイルを読み込むため、開発中のみ使用してください。本番環境に移行する前に、詳細設定の/admin/config/services/google-analyticsで無効にしてください。
カスタムディメンションは、Drupalで使用する前にGoogle Analytics管理インターフェースで最初に作成する必要があります。GAとDrupal設定のインデックス番号が一致していることを確認してください。
ファイル拡張子がファイル拡張子リストに含まれていることを確認してください。拡張子は大文字小文字を区別せず、正規表現をサポートしています。ファイルダウンロードトラッキングが有効になっていることを確認してください。
この機能を使用するには、Colorboxモジュールをインストールして有効にする必要があります。Colorboxが利用できない場合、チェックボックスは無効になります。
Searchモジュールを有効にする必要があります。さらに、Google AnalyticsプロパティのView設定でクエリパラメータとして「search」を使用するように設定してください。
ドメインモードとして「複数のトップレベルドメイン」を選択し、すべてのドメインがクロスドメインテキストエリアに1行に1つずつリストされていることを確認してください。すべてのドメインは同じGAプロパティIDを使用する必要があります。
ユーザーが「トラッキングのオプトイン/オプトアウト」権限を持っていて、ユーザーアカウントモードが「カスタマイズ不可」に設定されていないことを確認してください。ユーザーはアカウント編集ページでこのオプションを見つけることができます。
個人を特定できる情報(ユーザー名、メールアドレス、UID)を含む特定のトークンは、Google Analytics利用規約第7条に準拠するためにブロックされています。個人情報を公開しない代替トークンを使用してください。
Security Notes 7
- カスタムJavaScriptスニペットフィールドは、権限のないユーザーからのXSS攻撃を防ぐために、別の権限(「JavaScriptスニペットの追加」)で保護されています
- 個人を特定できる情報(ユーザー名、メールアドレス、ユーザーID)を含むトークンは、Google Analytics利用規約に準拠するためにカスタムディメンションで自動的にブロックされます
- ユーザーIDトラッキングはサイトの秘密鍵を使用したHMACベースの暗号化ハッシュを使用し、実際のユーザーIDがGoogleに送信されることはありません
- 「トラッキング可視性にPHPを使用」権限は制限付きとしてマークされ、この機能は非推奨です - 可視性ルールにPHPコードを使用することは避けてください
- IP匿名化はプライバシー準拠のためにデフォルトで有効になっていますが、GA4はこの設定に関係なく自動的にIPを匿名化します
- ローカルキャッシュが有効な場合、JavaScriptファイルはパブリックファイルディレクトリに保存されます - サーバーが安全に設定されていることを確認してください
- トラッキングすべきでない機密文書タイプがある場合は、ファイル拡張子リストを確認してください