Google Analytics

Google Tag Manager上でGoogle AnalyticsのclientIDを取得する

2018/4/20追記:
この記事の内容は古いので、下記の新しい記事を見て下さい。

Google Tag Manager上でGoogle AnalyticsのclientIDを取得する:その2

こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。

今日はGoogle Tag Managerの話題です。

Google Tag Managerの中のGoogle AnalyticsでclientID(cid)をカスタムディメンションで取得しようとしてちょっと手間取ったので、そのメモ。

GAのcidが生成されるタイミングが、GAのページビュータグが発火してGTMがロード完了する直前なので、
何も考えずにページビュータグ内のカスタムJavascript変数で取得しようとしても動かなくてハマった。。
で、セッション中の最初のページビュー発火後に、ウィンドウ読み込みのタイミングでcidを計測するためのイベントトラッキングを1回動かす方法で回避。

手順は下記のとおり。

1. cidを取得するためのカスタムJavascript変数を作成する。
名前: cid
中身:

function() {
  try {
    var tracker = ga.getAll()[0];
    return tracker.get("clientId");
  } catch(e) {}
}

2. セッション中に1回だけcidを計測するためのカスタムJavascript変数を作成する。
名前: session_start
中身:

function(){
	var ret = "1";
	if (document.cookie.indexOf("ga_start") > -1) {
		ret = "0";
	}
	return ret;
}

3. cidをイベントトラッキングで送信後に、送信済みフラグのクッキーを書き込むためのカスタムJavascript変数を作成する。
名前: cid_callback
中身:

function(){
	return function(){ document.cookie = "ga_start=1; path=/;"; }
}

4. cidをイベントトラッキングで送信するためのトリガーを作成する。
トリガーの名前: gtm_load
種類: ウィンドウの読み込み
トリガーの発生場所: session_start 等しい 1

5. cid計測用のユニバーサルアナリティクスのタグを作る。
直帰率計測に影響が出ないように、「非インタラクションヒット」を「真」にします。
トラッキングタイプ: イベント
非インタラクションヒット: 真
トリガー: gtm_load

詳細設定 > 設定するフィールド
フィールドの名前: hitCallback
値: {{cid_callback}}

カスタムディメンション > 「インデックス番号」を指定して、
ディメンションの値: {{cid}}

以上を追加

これで、GAイベントトラッキングによって最初のページビュー発生直後に1度だけclientIDの値が計測されます。
非インタラクションヒットなので、直帰率計測に影響はありません。
カスタムディメンションにclientIDをセットしたあとに、コールバックで送信済みフラグのクッキーを書き込むので、2ページ目以降はこのイベントは発生しません。

で、カスタムディメンションの有効期限をユーザーにしておけばOK。
セッションでもいいんだけど、セッション跨いでも変わる事ないのでユーザーにしました。

GTMはセッションの開始を判定する機能が今のところないので、上記の通りにcookieを使って判定しました。

弊社ではAdobeAnalytics以外にもGoogleAnalyticsやMouseflowなどのWeb解析ツールの導入支援を行なっております。
お問い合わせはこちらからどうぞ。

ブログへの記事リクエストはこちらまで

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. Firebase Analytics

    GoogleAnalytics Apps+Web プロパティをBigQueryと連携したついでにフラ…

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  2. Google Analytics

    Google Analytics: ユニバーサルアナリティクスの拡張Eコマース用dataLayerを…

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  3. Google Analytics

    Google Analyticsのセグメント機能について②

    こんにちは!インターン生の宮川です。今回はGAのセグメント機能につい…

  4. GA 360 Suite

    Google Analytics 360: BigQueryを使ってアトリビューション分析で91日以…

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  5. Adobe Analytics

    【超わかる】WEB解析の全貌

    はじめにこんにちは!インターン生の與那覇(ヨナハ)です今回は時代の…

  6. Adobe Analytics

    AA + GA : SafariのITP2.1に備えてphpでクッキーを永続化する

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

最近の記事

  1. Streamlitを使った簡単なデータアプリケーション作成ガ…
  2. 生成AI機能を活かしたデータカタログ製品「Secoda」を試…
  3. 回帰分析はかく語りき Part2 重回帰分析
  4. 第14回関西DB勉強会-Snowflake Summit参加…
  5. Open Interpreter+VScode+Docker…
  1. Data Clean Room

    SnowflakeのData Clean Roomを基礎から一番詳しく解説(4回…
  2. Google Apps Script(GAS)

    GoogleスプレッドシートのデータをGASで整理する【getRange編】
  3. Tableau

    Tableauで見たい期間のみの昨年対比推移グラフを作る方法
  4. KARTE

    KARTE:簡単!アンケートの設定、アンケート結果に併せた接客配信
  5. Google Analytics 4

    【GA4/GTM】dataLayerを使ってカスタムイベントを発生させてみよう
PAGE TOP