GAのイベントトラッキングの標準化

イベントトラッキングは、「イベントカテゴリ」「イベントアクション」「イベントラベル」「イベントの値」の4つの項目で構成されています。analytics.js以前のバージョンでは、「それぞれの項目に何を設定するべきか」については、何も定義していない状態でした。最近ではGoogleアナリティクスヘルプの「イベントについて」において、推奨値の指針が記載されるようになりましたが、ヘルプ記事のごく一部にのみしか記載されておらず、一般に浸透させる仕組みにはなっていません。

一方で、gtag.jsでは、「ログイン」「カート追加」「サイト内検索」「シェア」など特定のユーザーアクションについては、「イベントカテゴリ」「イベントアクション」「イベントラベル」に"このような値を設定してください"という指針が示されており、その指針に従うための仕組みがソースコード・レベルで実装されています。

gtag.jsのイベントトラッキングの実装の場合、例えば、

gtag('event', 'login', { method: 'Google' });

のようなJavaScriptコードを実行すれば、「イベントカテゴリ = engagement」「イベントアクション = login」「イベントラベル = Google」のようなイベントヒットが送信されます。同様に、全部で19個のイベントにおける推奨値が定義・実装されています。19個のイベントの詳細は、開発者向けヘルプ「Googleアナリティクスのイベントを測定する」をご覧ください。

公式ヘルプの記述によると、

通常は、デフォルトの Google アナリティクス イベントを使用することをおすすめします。デフォルトのイベントには、デフォルトのカテゴリやラベルがあらかじめ設定されています。これらのイベントを使用することで、レポートの一貫性や将来実装される機能との相互運用性を確保しやすくなります。

のような記載があり、今後実装される機能を活用するために、これらの命名規則に従って実装するのが良さそうです。

別プロダクトへの拡張の容易性

よくあるケースでは、既にGoogleアナリティクスを実装している状態で、Google広告を新しく始めたい、という状況です。通常であれば、Google広告のためにいくつかのタグの実装が必要です。特にECサイトにおける動的リマーケティング広告を行おうと思うと、実装の手間は大きくなります。

しかしながらgtag.jsは、標準化されたイベントトラッキングを利用しているのであれば、そのような課題を解決できる仕組みが用意されています。

具体的には、拡張eコマース機能を実装する際に、「view_item」「add_to_cart」「checkout_progress」などの標準化されたイベントトラッキングを利用していた場合に、Google広告をアクティベーション(有効化)するためのコマンドを1行追記するのみで、動的リマーケティングのためのタグが完成します。

動的リマーケティングを前提としなくても、「search」や「share」「sign_up」に対して、それぞれのアクションを属性として追加されたGoogle広告のリマーケティングタグが送信されるため、媒体側でのリマーケティング・シグナルに使われているものと思われます。

また、gtag.jsのソースコードを読む限りでは、GoogleアナリティクスとGoogle広告だけでなく、FloodlightやGoogle系の他プラットフォームのタグにも対応しているようなので、それらのプラットフォームをよりシンプルに導入できるようになるものと思われます。

その一方でこれらの仕組みは、gtag.jsが推奨する標準的なイベントトラッキングを前提としているため、Googleアナリティクスの実装者は標準的なイベントトラッキングを利用していくことが必要となります。

なお、2019年5月時点のgtag.jsのソースコードを確認する限りでは、「Googleアナリティクス」「Google広告」の他に、「Floodlight」「Google Flight」「Google Hotel Ads」のタグもgtagに対応しているようでした。

具体的な別プロダクトへの拡張方法

まず、拡張eコマースが既にgtag.jsによって実装済みの状態を想定します。例えば、商品詳細ページが閲覧された時は、

<script async src="https://www.googletagmanager.com/gtag/js?id=GA_TRACKING_ID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'GA_TRACKING_ID');
  gtag('event', 'view_item', {
    "items": [{
      "id": "P12345",
      "name": "Android Warhol T-Shirt",
      "list_name": "Search Results",
      "brand": "Google",
      "category": "Apparel/T-Shirts",
      "variant": "Black",
      "list_position": 1,
      "price": 2400
    }]
  });
</script>

のようなコードが実装されます。ここまでが実装されている状態において、Google Adsの動的リマーケティング広告をアクティベーションするために、リマーケティングタグを実装します。通常であれば、Google Adsの動的リマーケティングタグでも再び商品情報を設定して実装する必要があります。しかしながら、gtag.jsの場合は、

<script async src="https://www.googletagmanager.com/gtag/js?id=GA_TRACKING_ID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'GA_TRACKING_ID');
  gtag('config', 'ADS_ID');
  gtag('event', 'view_item', {
    "items": [{
      "id": "P12345",
      "name": "Android Warhol T-Shirt",
      "list_name": "Search Results",
      "brand": "Google",
      "category": "Apparel/T-Shirts",
      "variant": "Black",
      "list_position": 1,
      "price": 2400
    }]
  });
</script>

のように、たった1行

gtag('config', 'ADS_ID');

を追加するだけでOKです。

元々のgtag('event', 'view_item', {...})というコマンドは、Googleアナリティクスのためのコマンドではなく、gtagのためのコマンドであり、このコマンドをトリガーとして、Googleアナリティクスを始めとしてGoogle Adsなどアクティベートされたプロダクトのタグが動作するイメージです。このGoogleアナリティクスのためのコマンドではないというところがポイントとなります。

今後のgtag.jsはどうなっていくか

ここからは筆者の完全な想像になってしまいますが、gtag.jsにはプラグイン機能が導入され、そのプラグインを使って、Google系プロダクト以外のタグもgtagの世界に取り込むことを想定しているのではないかと考えています。というのも、gtag.jsにおいて推奨している標準化されたイベントトラッキングは、実はFacebookでも全く同様の内容のイベントが定義されており、Facebookの方が早くからそのような仕様を公開しています。つまり、gtagの標準化されたイベントトラッキングは、Facebookの仕様に追従したと言えます。

そのようになれば、gtag.jsに1行コードを追加するだけで、Facebookのトラッキングコードの実装が完結する世界になると思います。Facebookに限らず、Yahooプロモーション広告やTwitter広告などのタグも同様にプラグイン化されれば、実装の手間が大きく減るでしょう。

まとめ

今回は、ローンチ後1年ほどが経過しているにも関わらず、あまり実装しているという話を聞かないgtag.jsについて、どのようなメリットがあるのかをまとめてみました。

gtag.jsを実装することにはいくつかのメリットがあることは分かったものの、現時点ではGoogleタグマネージャには対応していないということもあり、gtag.jsを正式導入するタイミングはまだ先だと感じました。

ただ、gtag.jsのポテンシャルは非常に高く感じています。このポテンシャルが発揮された時に一気に活用できるように、新規で実装するGoogleアナリティクスのイベントトラッキングについては、標準化された命名規則のイベントを(analytics.jsで)実装するようにし、今から慣れておくのが良いと感じました。