2018年4月27日金曜日

Google Tag Manager を使って Audio タグで再生したクリック数を調べる

概要

Audio タグは HTML5 で実装されたタグで mp3 などのオーディオファイルをブラウザ上で再生することができるタグです
そのタグの再生ボタンがどれくらい押されたかという情報は取りたくなると思います
今回は Google Tag Mangaer を使ってその Audio タグのクリック情報を取得する方法を紹介します

環境

  • macOS 10.13.4
  • Google Tag Manager 2018/04/23 時点
  • Google Analytics 2018/04/23 時点

事前準備

Google Analytics でプロパティを作成しておいてください
UA からはじまるトラッキング ID が取得できていれば OK です
また Google Tag Manager のアカウント作成とアカウントに紐づくコンテナ作成を行っておいてください

カスタム HTML タグの作成

gtm1_1.png

スクリプトの部分は以下の通りです

<script>
$(function() {
  $('audio').on('play', function(e) {
    var AudioText = $(this).find("source").attr("src");
    dataLayer.push({
      "event" : "Audio Click Event",
      "eventCategory" : "Audio Click",
      "eventAction" : AudioText,
      "eventLabel" : null,
      "eventValue" : null
    });
  });
});
</script>

audio タグの再生ボタンが押された時にイベント情報を送信します
今回はすべてのページで監視する設定ですが特定のページだけの場合はトリガーを変更してください

変数の作成

左メニューから変数を選択し新規作成します
先ほどのスクリプト内で使った変数を定義します
gtm2.png

変数は「データレイヤー変数」を選択してください
gtm3.png

トリガーの作成

左メニューからトリガーを選択し新規作成します
gtm4.png

トリガーの種類は「カスタムイベント」を選択しましょう
名前はスクリプト内で定義した「Audio Click Event」にしました

トラッキングするタグを追加

あとは作成したトリガーと変数を使って Google Analytics のタグを新規で作成するだけです
gtm6.png

カテゴリ、アクション、ラベル、値は作成した変数を選択します
直接入力しないでもテキストボックスの横にボタンがあるはずなのでそこから変数を選択できます
トリガーも先ほど作成したカスタムイベントのトリガーを選択しましょう

公開する

サマリー画面から「公開」すれば OK です
バージョンや説明は適当に設定してください
プレビュー機能を使って設定したタグが 2 つあることを確認してください
※自分はもう一つ Google Analytics のタグを追加しているので 3 つありますが今回とは関係ないので 2 つあれば OK です
gtm7.png

また Google Analytics 側でリアルタイム集計を確認するとちゃんと再生したイベントが送信されていることも確認できます
gtm8.png

応用 audio.js に対応してみる

audio.js の場合 source タグを使いません
また、自動的に audio タグが div タグで囲われてしまうため audio タグを直接クリックすることができません
なので、カスタム HTML を以下のように修正します

<script>
$(function() {
  $(document).on("click", 'div[class="play-pause"]', function(e) {
    var AudioText = $("audio").attr("src");
    dataLayer.push({
      "event" : "Audio Click Event",
      "eventCategory" : "Audio Click",
      "eventAction" : AudioText,
      "eventLabel" : null,
      "eventValue" : null
    });
  });
});
</script>

これで audio.js にも対応することできるようになります

最後に

Google Tag Manager を使って audio タグのクリック数を集計する方法を紹介しました
これを応用すれば audio タグの他のイベント情報も集計することができると思います

ただ、前提として Google Tag Manager のサービス概念を理解していないと厳しいかもしれません
Google Analytics よりも一つ上位のレイヤーのサービスになるので実際は Google Analytics 側にデータを溜め込んでいます

Google Analytics の機能を Google Tag Manager を使うことで一括して管理、公開することができるようになります
要するに Google Analytics の機能を使う場合も Google Analytics の画面からではなく Google Tag Manager からやりましょうということになります

参考サイト

2 件のコメント:

  1. 参考になりました。ありがとうございます!
    ちなみに、同一ページにaudioタグが複数あり(違うmp3ファイルを再生)、それぞれの曲の再生を別イベントとしてトラックしたい場合はどのようにすればいいのでしょうか?何かオーディオファイルまたはidなどに基づいてトリガーをつければいいのかなと思いますが…わかりません。
    HTML触らない方向でタグマネージャーだけで見る方法がありましたら、ご教授お願いいたします。

    返信削除
  2. id があるなら id で audio タグを判断してそれぞれの play イベントを拾ろえば同じことができると思います (すいません、試してはいません)

    $('audio').on('play', function(e) {

    ここを

    $('#my_audio').on('play', function(e) {

    とかにして audio タグに id="my_audio" 属性を付与すればそれだけでいけるかなと思います
    HTML 触らない方向でということですが、id タグなどがなくかつ audio タグが一意に識別することが難しい場合は修正するしかないと思います

    返信削除