【コピペ可】Vimeoの視聴者の行動をGoogleTagManager (GTM) 経由でGoogleAnalytics(GA4)で計測する方法

VimeoはYoutubeと並んで動画共有ツールとしてよく使われますが、GoogleAnalytics(GA4)ではデフォルトではYoutubeの計測しか設定されていません。

この記事では、Google Tag Manager (GTM) を使って、Vimeoの動画視聴の行動をYoutubeと同じようなデータ構造に変換してGA4で計測する方法について詳しく説明します。

(修正:2024/02/27)

一部変数のパターン表記の「\」が抜けていたため追記しました。

目次

Google Tag Managerのセットアップ

まだセットアップが完了していなければ、Google Tag Managerのアカウントを作成し、新しいタグを作成します。

これは簡単なプロセスなので設定画面やGoogleのガイドラインに従えばすぐに設定できます。

あわせて読みたい
1. アカウントとコンテナを作成する - タグ マネージャー ヘルプ Google タグ マネージャーを使用すると、Google の各種サービスと第三者サービスからタグを設定および実装できます。この記事は、Google タグ マネージャーを初めてセット...

Vimeo動画の埋め込み

Vimeo動画を動画の下にある共有ボタンをクリックして表示されるコードをコピーして、ウェブサイトに埋め込みます。

Vimeoの埋め込みオプションを使用することで、動画の視聴に関する情報を収集することができるため、このページから実際にデータ取得ができるかを確認することができます。

Vimeo Videoタグの取得

公式ドキュメントを参考にVimeoタグを取得します。

ヘルプセンター
VimeoプレーヤーをGoogle AnalyticsおよびGoogleタグマネージャーと統合する この機能には、Business、Premium、Advanced、または Enterpriseメンバーシップが必要です。 Vimeoユーザーは、Google Analyticsを使用して、サイトに埋め込まれたVimeo Li...

タグを取得できたら、GTMのダッシュボードから、新しいタグを作成します。タグのタイプとしてカスタムHTMLを選択し、以下のようなJavaScriptコードを挿入します。

// サンプル
<script type="text/javascript" defer="defer" src="https://extend.vimeocdn.com/ga/xxx.js"></script>

このコードは、Vimeo動画が再生、一時停止、または終了したときに、変数・トリガーでそれぞれプッシュします。ただこの状態だとYoutubeで取得したデータと加工方法が違うため、分析するときに大変になるのでGTMでそれぞれ加工してGA4に送るように設定します。

Vimeoの変数設定

VimeのActionをデータレイヤーに格納した後、GA4に送って解析しやすいように「EventName」「Percent」「Event Label」を加工します。

Vimeo Video Action

event_action

EventName

Vimeo Event Name GA4

正規表現の表

パターン出力
playvideo_start
progress \- (25|50|75)%video_progress
progress \- 100%video_complete

Percent

Vimeo Video Percent GA4

正規表現の表

パターン出力
play0
progress \- (25|50|75)%$1

Event Label

Vimeo Video Label

データレイヤーの変数

event_label

Vimeoのトリガー設定

Vimeoタグを配信するタイミングのトリガーを設定します。

動画が再生されたタイミングでタグ配信をしたいため、「load」を値に設定します。

Vimeo

vimeo

GA4のタグ設定

ここまで変数・トリガーの設定をしたらGA4のタグを設定します。

「イベント」のタグを選択して、パラメータ・値を設定して送ります。

パターン出力
video_providervimeo
video_percent{{Vimeo Video Percent GA4}}
video_title{{Vimeo Video Label}}

ここまでできたら先程Vimeoを埋め込んだページをプレビューモードで確認して、動画再生をしてみて下記のようなイベントパラメータが取得できていれば問題ありません。

念のため動画を最後まで閲覧してそれぞれ計測されるかを確認したがタグの本番公開をしてください。これでGA4にデータが蓄積されていきます。

おまけ:Bigqueryの前処理SQL

GA4のデータをBigqueryに送っている場合、そこからlookerなどでデータを引っ張ることも多いと思います。その際、前処理などをSQLですることもあると思うので、参考までによく使うパターンのSQLも載せておきます。

FROM句の該当テーブルや、WHERE句の絞り込みについてはそれぞれで値を設定してください。

SELECT
  -- date
  PARSE_DATE("%Y%m%d", event_date) AS event_date
  ,TIMESTAMP_TRUNC(timestamp_micros(event_timestamp), SECOND, "Asia/Tokyo") AS event_timestamp

  -- event_name = "video_start"
  ,event_name
  ,(SELECT value.string_value FROM UNNEST(event_params) AS params WHERE params.key = 'video_provider') AS video_provider
  ,(SELECT value.string_value FROM UNNEST(event_params) AS params WHERE params.key = 'video_title') AS video_title
  ,(SELECT value.string_value FROM UNNEST(event_params) AS params WHERE params.key = 'video_url') AS video_url
  ,(SELECT value.int_value FROM UNNEST(event_params) AS params WHERE params.key = 'video_current_time') AS video_current_time
  ,(SELECT value.int_value FROM UNNEST(event_params) AS params WHERE params.key = 'video_duration') AS video_duration
  ,(SELECT value.int_value FROM UNNEST(event_params) AS params WHERE params.key = 'video_percent') AS video_percent
  ,(SELECT value.string_value FROM UNNEST(event_params) AS params WHERE params.key = 'page_title') AS page_title
  ,(SELECT value.string_value FROM UNNEST(event_params) AS params WHERE params.key = 'page_location') AS page_location
  ,(SELECT value.string_value FROM UNNEST(event_params) AS params WHERE params.key = 'page_referrer') AS page_referrer
  ,(SELECT value.string_value FROM UNNEST(event_params) AS params WHERE params.key = 'source') AS source
  ,(SELECT value.string_value FROM UNNEST(event_params) AS params WHERE params.key = 'medium') AS medium
  ,(SELECT value.string_value FROM UNNEST(event_params) AS params WHERE params.key = 'campaign') AS campaign

  -- 共通データ
  ,user_id
  ,TIMESTAMP_TRUNC(timestamp_micros(user_first_touch_timestamp), SECOND, "Asia/Tokyo") AS user_first_touch_timestamp
  ,device.category AS device_category
  ,device.operating_system AS device_operating_system
  ,device.operating_system_version AS device_operating_system_version
  ,device.language AS device_language
  ,device.web_info.browser AS device_web_info_browser
  ,device.web_info.browser_version AS device_web_info_browser_version
  ,device.web_info.hostname AS device_web_info_hostname
  ,geo.continent AS geo_continent
  ,geo.country AS geo_country
  ,geo.region AS geo_region
  ,geo.city AS geo_city
  ,geo.sub_continent AS geo_sub_continent
  ,traffic_source.name AS traffic_source_name
  ,traffic_source.medium AS traffic_source_medium
  ,traffic_source.source AS traffic_source_source
  ,stream_id
  ,platform

FROM
  `{project}.analytics_xxx.events_*`

WHERE
  -- 日単位で対象のテーブルを絞り込み
  _table_suffix BETWEEN '20230501' AND '20230620'
  AND event_name IN ("video_start","video_progress","video_complete") -- 動画だけに絞り込み
  AND (
    (SELECT value.string_value FROM UNNEST(event_params) AS params WHERE params.key = 'page_location') LIKE "{Vimeo埋め込みページのURL}"
  )

まとめ

これで設定は完了です。これらの手順に従うことで、Vimeo動画の視聴者行動を追跡し、これらのデータを使用してサイトのエンゲージメントとコンバージョンを向上させることができます。

GTMを使うことで様々なデータを加工して各種タグに送ることができるので、ぜひ使いこなして見てください!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次