コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

GoogleTagManager(GTM)を介してGoogleAnalytics(GA)のイベントを直接記述するときは気をつける

GTMを使いながら、GTMを利用せずイベント発火をさせずに手動でGAのイベントを発火させようとするとおかしなことになるので気をつける。

TL;DR

  • GoogleAnalyticsのタグをGTMでセットし、純粋に ga('send') でイベントを送ろうとしてもうまく行かない場合がある。
  • トラッカー名が指定されていないため送れない現象が考えられるので、トラッカー名をつけたトラッカーを作るなどの方法を検討すること。

どういうことか

GoogleAnalytics(以下GA)でイベントを送るときなどの記述では以下のような文法が紹介されている

ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');

引用元: サイトに analytics.js を追加する  |  ウェブ向けアナリティクス(analytics.js)

アナリティクスを識別する固有のID(上記の UA-XXXXX-Y 部分)を指定してcreateを行う、あとはsendを行うとイベントが発火してデータが送られる。

ただしこれは純粋に単体でGAを使うときのみで、GoogleTagManager(以下GTM)を利用する場合は様相が変わる。

GoogleTagManagerを使うときの注意点

GTMを利用する場合は、GAのタグを読み込ませるようにGTM上で設定することができる。そこで行われているのも ga('create') 相当の処理ではあるが、先程とは違い、トラッカー名が設定されている。

トラッカーとは

トラッカー名が設定されていると何が問題かと言う前に、トラッカーがどういうものかをざっくり説明します。

まずはヘルプの説明から引用です。

トラッカー オブジェクト(「トラッカー」とも呼ばれます)は、データを収集および保存して、Google アナリティクスに送信できるオブジェクトのことです。新しいトラッカーを作成する場合は、トラッキング ID(Google アナリティクス プロパティの 1 つに対応するプロパティ ID と同じ)と、Cookie の保存方法を指定する Cookie ドメインを指定してください(推奨値の 'auto' を使用すると、Cookie ドメインの自動設定が指定されます)。。 - トラッカーを作成する  |  ウェブ向けアナリティクス(analytics.js)  |  Google Developers

このようにGoogleAnalyticsの一意のIDであるトラッキングIDを指定して作成を行います。

トラッカーを作成する方法として create が紹介されている。この際に先程には紹介のなかった「トラッカー名をつける」という方法が紹介されている。

下記はトラッカー名に myTracker という名前をつける記述の例

ga('create', 'UA-XXXXX-Y', 'auto', 'myTracker');

このトラッカー名、設定しないとデフォルトのトラッカー名が付きます。

name フィールドを設定せずにトラッカーを作成すると、「デフォルト」のトラッカーが作成されます。デフォルトのトラッカーは内部的に「t0」という名前が付いています。 - トラッカーを作成する  |  ウェブ向けアナリティクス(analytics.js)  |  Google Developers

そしてこのトラッカーでイベントを送信したい場合は以下のように記述する

ga('myTracker.send', 'pageview');

GTMがトラッカー名を指定する弊害

トラッカー名が指定されたトラッカーを利用したい場合はトラッカー名を指定しないと利用できない。そのためGTMで作られたトラッカー名を把握する必要があるが、ランダムで設定されるため規則性があるものではない。

そのためGTMが作ったトラッカーを利用する場合は何かしらの方法で生成したトラッカーを特定するか、別途自身で使うトラッカーを用意する必要がある。

参考リンク