埋込動画の再生をGA4で追う:実装とトラブル対応
2025年10月24日
自社サイトや記事ページに埋め込んだ動画の再生状況を把握したい—— そんなとき、GA4を使えば追加ツールなしでも再生イベントを取得できます。 この記事では、YouTube埋込動画をGA4で計測する方法と、よくあるトラブル対応をまとめます。
GA4の「拡張計測機能」でYouTube再生を自動取得
GA4には標準で「拡張計測機能」があり、これを有効にするとページ内のYouTube埋込動画を自動検出してイベントを送信します。 設定は以下の手順で確認できます。
- 管理 > データ ストリーム を開く。
- 対象ウェブデータストリームを選択。
- 「拡張計測機能」がオンになっていることを確認。
- 「動画のエンゲージメント」項目(英語UIでは "Video engagement")が有効になっていることをチェック。
これにより、自動的に以下のイベントが計測されます:
video_start:再生開始video_progress:進捗(10%、25%、50%、75%)video_complete:再生完了
対象動画の条件
この自動計測が機能するのは、以下の条件を満たすYouTube埋込タグのみです。
- YouTubeの公式iframe埋込コード(
<iframe ... src="https://www.youtube.com/embed/...">)であること。 - ブラウザがJavaScript実行を許可していること。
- iframeが非同期ロードや遅延読み込みでブロックされていないこと。
Vimeoなど他サービスの動画は対象外のため、次章で紹介する手動イベント送信が必要です。
他サービスやカスタム動画の計測方法
YouTube以外の動画(Vimeo、HTML5 videoタグなど)を計測するには、 再生イベントを手動で送信するスクリプトを追加します。
<video id="myVideo" src="sample.mp4"></video>
<script>
const v = document.getElementById('myVideo');
v.addEventListener('play', () => {
gtag('event', 'video_play', {
video_title: v.currentSrc,
video_position: 'start'
});
});
v.addEventListener('ended', () => {
gtag('event', 'video_complete', {
video_title: v.currentSrc
});
});
</script>
上記コードでは、GA4のタグを経由して video_play / video_complete イベントを直接送信しています。 Google タグ マネージャー(GTM)を利用する場合も、同様にトリガーを 「HTML5動画の再生」または「カスタムイベント」 に設定します。
よくあるトラブルと確認ポイント
- イベントがDebugViewに出ない: 拡張計測機能がオフになっている/iframeを遅延読み込みしている/動画が外部ドメインにある可能性。
- 再生が途中で止まってもprogressが出ない: 動画が短すぎる場合(10秒未満など)は進捗イベントが発火しません。
- 複数動画を同ページで埋め込んでいる:
video_titleやvideo_urlパラメータを送ることで識別可能。 - GTM経由の手動タグが二重発火: 自動計測と競合する場合、手動タグは除外するかイベント名を変更しましょう。
実務での確認ステップ
- 管理 > データ ストリーム で「動画のエンゲージメント」が有効か確認。
- テスト環境でページを開き、「管理 > データの表示 > DebugView」でイベント
video_startを確認。 - 進捗率(10%, 25%, 50%, 75%)で
video_progressイベントが順に届くか確認。 - GTM利用時はプレビューモードで、同名イベントが二重送信されていないか確認。
まとめ
GA4の「拡張計測機能」を使えば、YouTube埋込動画の再生・進捗・完了を自動で取得できます。 他サービスの動画も、gtag またはGTMでカスタムイベントを送信すれば同様に分析可能です。 DebugViewを活用して動作を確認し、正しいイベント設計で動画のエンゲージメントを可視化しましょう。