
SPAサイトでのGoogle Analytics 4(GA4)による計測には、従来の静的サイトとは異なる実装方法が必要です。私たちは大手メディア企業のSPAサイトでGA4計測を実装する過程で、データレイヤーの制御とイベント発火のタイミングに関する課題を特定し、解決しました。本稿では、その実装手法と注意点を解説します。
SPAサイト(Single Page Application)は、React、Angular、Vue.jsなどのフレームワークで構築された動的なWebアプリケーションです。
主な特徴
単一ページ上でのコンテンツ更新
非同期によるデータ取得
クライアントサイドでのルーティング処理
これらの特性により、従来のページ読み込みベースの計測手法では正確なデータ取得が困難になります。
GA4は以下のデフォルト機能でSPAサイトの計測に対応しています:
拡張計測機能
履歴の変更に基づくページビューの自動送信
GA4管理画面から設定可能
GTMの履歴変更トリガー
URLの変更を検知
基本的なページビュー計測に対応
デフォルト機能による実装で以下の問題が発生しました。
// 問題のある実装例
window.dataLayer.push({
'articleId': '12345',
'author': 'yamada'
});
データ送信のタイミング
ページコンテンツの更新前にデータが送信される
前ページの値が誤って送信される
データの整合性
非同期更新による値の欠落
データレイヤーの更新タイミングの制御が困難
以下の実装により、問題を解決しました。
function updateDataLayer(pageData) {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'pageview',
page: {
title: pageData.title,
path: pageData.path,
articleId: pageData.articleId,
author: pageData.author
}
});
}
function onPageUpdate(newPageData) {
updateContent(newPageData);
updateDataLayer(newPageData);
}
実装のポイント
カスタムイベントの使用
データ更新の同期化
一括でのデータ送信
GTMの設定
トリガー:カスタムイベント
イベント名:'pageview'
実装の検証は以下の手順で実施します。
GA4タグの設定
・debug_mode: True の設定
・詳細ログの有効化
動作確認
・GTMプレビューモードでのタグ発火確認
・GA4 DebugViewでのデータ検証
確認項目
イベント発火のタイミング
送信データの正確性
イベントの順序性
デフォルト機能の適用範囲
・基本的なページビュー計測は可能
・カスタムデータには不適
データレイヤーの制御
・非同期更新への対応が必須
・タイミング制御が重要
カスタムイベントの有用性
・データ送信の正確なコントロール
・一貫性のあるデータ収集
検証の重要性
・定期的な動作確認
・データ整合性の継続的な監視
パフォーマンスへの配慮
・必要最小限のデータ送信
・処理の最適化
SPAサイトでのGA4計測において、カスタムイベントを活用した実装は、データの正確性と送信タイミングの制御を可能にします。実装時は、SPAの特性を理解し、適切なデバッグを行うことが重要です。また、サイトの更新に応じて継続的な検証と調整が必要です。
今回の実装方法は、多くのSPAサイトに適用可能です。ただし、各サイトの要件に応じて適切なカスタマイズを検討することを推奨します。
一覧に戻る