Googleアナリティクスの計測ログをBigQueryに送る(無料版対応)

この記事は連載「アクセスログの生ログ分析」の全 5 ページ中 5 ページ目です。

Googleアナリティクスで収集しているデータ(メジャメントプロトコル)をBigQueryに送り、集計・可視化できるようにする。無料版のGAにも対応し、しかもサーバレスでシンプルに実装できる。 本来BigQueryを使ったウェブ行動の詳細分析はGA360を使うべきなのだが、限りなく低コストでこんなことができるという参考程度で紹介する。 通常無料版のGoogleアナリティクスではできないログベースの行動分析をするのに使ったり、有料版であったとしてもGAはどのようなトラフィックを除外して集計しているのか、Googlebotなどのクローラがどんな動きをしているのかなどを検証するのに使うといいかもしれない。 原理はGoogleアナリティクスのJavaScriptがGoogleの計測サーバに送っているパケットを自前のサーバに送ってログ化するというシンプルなものである。 従来はデータ収集用のサーバを構築する必要があったが、Google Cloud Storageを使うことでサーバをわざわざ立ち上げなくても不要ログ収集ができる。 Google Cloud Storageは単にストレージだけでなく、インターネットにコンテンツを配信する簡単なCDNとして使うことができるうえ、設定によってログを出力することができる。そこでGCS上にwebビーコンつまりは空のGIF画像を設置しておいて、そこにオーディエ…

Continue reading →

Googleタグマネージャーの設定をExcelにエクスポートするツール

GTMのバックアップ用のJSONファイルからExcelファイルに設定(変数、トリガー、タグ)の一覧を出力するツールを作った。 とりあえずPythonで作ったスクリプトを実行可能なexeファイルにしたものを配布する。 ダウンロード Googleタグマネージャー設定エクスポートツール Ver0.01 ダウンロード Windows(64bit)対応 使い方 GTMからコンテナのJSONを取得する GTMのコンテナの管理画面から以下の手順でJSONファイルを取得する。 1. 2. 実行 ダウンロードしたファイルを解凍すると、readGtmContainer.exeというファイルが生成される。 コマンドラインプロンプトから readGtmContainer.exe JSONファイル名 で、同じディレクトリに「コンテナID.xlsx」という名前のExcelファイルが出力される。 ※現時点でweb版のコンテナのみ対応

Continue reading →

【プロ向け】アクセス解析の設定前チェックリストとGoogleアナリティクス設定手順

Googleアナリティクスの設定を効率化するために、 管理画面を見る前に決めておくべき項目のチェックリスト Googleアナリティクスの管理画面での設定作業の手順 設定内容を一覧で出力するツール を紹介する。設定内容の出力は初期設定時に限らず、現状のアカウントの設定状況を把握する上でも役に立つだろう。 Googleアナリティクス設定前チェックリスト Googleアナリティクスの管理画面にログインする前に決めておくべき要件で、 Googleアナリティクスに限らない、アクセス解析の要件定義である。 これを決めずに管理画面を見るのは時間の無駄。 このチェックリストを完成させるのに時間を割こう。 重要度:高 工数に影響するもの (8) 計測対象 どのドメイン どのディレクトリ クロスドメイントラッキングの有無 おおよそのページ数 タグマネージャ経由でタグを設置するかどうか。その場合GTMかどうか。 タグを設置できない階層があるかどうか デバイス別のコンテンツ表示仕様 レスポンシブデザインかどうか。そうでない場合、PCとモバイルでページが1対1対応するかどうか タブレットの扱いはどうか デバイスによってタイトルが異なるか URLの変化しないページ遷移(主にコンバージョン遷移。フォームと確認画面等、同じURLでページの内容が変わる箇所があるかどうか) コンバージョンポイントの名称とURL一覧(…

Continue reading →

GA/GTMを使った際に見えなくなるトラッカーを呼び出して処理を実行する

GoogleアナリティクスとGoogleタグマネージャーのマニアックな話題。 通常GoogleアナリティクスをGoogleタグマネージャーを使って設置すると、GAのビーコンを呼び出す際のトラッカー名はGTMによってランダムな名前のものが割り当てられる。 たとえばこんな「gtm1463146770599」形式のものである。 そうなると生成したトラッカーそのものを使って何らかの処理をすることが難しい。 GTMの設定の中で固定のトラッカー名を付与すればこの問題は発生しないが、大人の事情でGTMの設定権限を与えられていない場合もある。 生成したトラッカーからさまざまな情報を取得したり、その情報に基づいて何らかの処理を行ったりしたい場合にどうすればいいか。 そのプロパティで新たにトラッカーを作り直してもいい(ga(‘create’, ‘プロパティID’, ‘auto’)する)ケースはある。たとえばイベントをsendするのは新規トラッカーでも問題はない。 ただトラッカーに(ヒット単位の)カスタムディメンションが設定されており、そのカスタムディメンションを使って何らかの処理をしたい場合などは新規のトラッカーでは無理である。 GAのトラッカーオブジェクトはどこにあるのか windowオブジェクトの中にあるwindow.gaがGAのトラッカーやメソッドを含むGAのすべてを保持したオブジェクトになる。…

Continue reading →

Googleアナリティクスで特定の要素を表示したときにイベントトラッキングする

Googleアナリティクスなどでページの精読状況をトラッキングする際、 「特定ピクセル以上スクロールする」「画面の○%以上スクロールする」ことがあるが、 同様に「特定の要素を表示したとき」という条件でトラッキングしたいときもある。 コンテンツの精読だけでなく、たとえばクーポンをページに仕込んでおいて その表示回数をカウントするなどのケースでも使える。 そのような場合にエレメントの座標を取得して、そこまでスクロールしたら発火するというアイデアがあるが、 実はスマートフォンでは機種によって画面の幅が異なるため、テキスト部分の行数が変わり、縦座標の値も変わってくるという問題がある。 単純に縦の位置を取得するだけでは使えないのである。 ここではそれを回避する方法を説明する。 element.getBoundingClientRect()というメソッド element.getBoundingClientRect()というメソッドを使う。 element.getBoundingClientRect()の戻り値はオブジェクトで、 var oRect = element.getBoundingClientRect(); oRect { bottom: 20 height: 52 left: 13 right: 993 top: -32 width: 980 }; などとなっている。 プロパティの意…

Continue reading →

Googleアナリティクスで同一URLでフォーム遷移する場合のページビュー計測

計測URLを正規化する、1ページは1URLに集約してページビュー計測することが望ましいことは https://www.marketechlabo.com/send-ga-pageview-canonicalized-url/ で取り上げたが、この「1ページで複数URL」とは逆に「複数のページで1URL」になるパターンの対応法を取り上げる。 よくあるのはフォームの遷移などで、同一URLで異なる内容のページが表示されることがある。 入力フォーム→確認画面→完了画面 これらが画面遷移はあるものの1URLで完結しているケースである。 ひどい場合は完了画面までもが同一URLになるため、コンバージョンの計測すらできない。 これをステップごとに異なる仮想URLを発行して計測する(ga(‘send’, ‘pageview’, {‘page’: ‘ステップの仮想URL’}))のだが、中にはフォームのシステム側で仮想URLを発行させ、それをGoogleアナリティクスのトラッキングコードに挿入する実装指示書もある。 そうなるとシステムの改修のコスト、手間がかかってしまうため、システムの改修は極力回避したい。 今回は純粋にHTMLの範囲だけでこの問題を解決する方法を取り上げる。通常 ステップに応じてtitleタグの内容が異なる場合と、 ステップに応じて見出しの内容が異なる場合と、 URLもtitleタグの…

Continue reading →

システム改修をせずにGoogleアナリティクスのeコマーストラッキングを実装する

eコマースのシステム(ショッピングカート)においてGoogleアナリティクスの Eコマーストラッキングを実装する場合、通常はトラッキングする要素に動的な要素を含む、 システムが絡むため、システム改修が必要ということになる。 しかしシステム改修となると開発費もかかるため、なかなか踏み出せない。 またeコマースのシステムによっては商品名や価格を動的に出すなどプログラムのかかわる部分には 一切手を加えられない場合もある。 そこでJavascriptだけで注文番号、商品名、金額などを取得する方法をここでは紹介する。 つまりタグマネージャー一つ設置されていれば、そのカスタムタグ機能で eコマーストラッキングに必要な情報をすべて取得してGoogleに送信するのである。 仮にタグマネージャーが設置されていない場合でも、 システムの動的な部分に手を加えないため最小コストで実装することができる。 またこの方法はGoogleアナリティクスに限らず、他のシステムでのEコマース用の コンバージョントラッキング(どの商品を注文した、購入金額はいくらか)でも応用できる。 なおここで紹介するのは拡張eコマースではなく従来のeコマーストラッキングの実装方法である。 eコマーストラッキングの実装方法のおさらい プラグインの読み込み トラッカーを生成した後(ga(‘create’)した後)で ga(‘require’…

Continue reading →

Googleアナリティクスで一定以上スクロールしたらイベントトラッキング(PC/スマホ別)

条件は下記。 PC、スマホで特定ピクセルを超えてスクロールしたらイベント検出 PCは800ピクセル(> 800) スマホは600ピクセル(> 600) 一度イベント検出したらそのPV中は再検出しない(その後のスクロールは無視) 対象URLは /aaa/ /aaa/sp/ /aaa/index.html /aaa/sp/index.html PCもスマホも対応、index.htmlの有無に両対応 既存のトラッキングコードとセットで設置(HTML内の別箇所ではない) 実装のポイントは、一度scrolledがtrueになったらイベント通知したうえでイベント検出関数を削除すること。 コード いずれのコードもGoogleアナリティクスのトラッキングタグとの前後関係は問わない(どこに設置してもいい)。 IE9以降のみ対応でいいなら // 処理で使った変数や関数がグローバルを汚染しないようにクロージャで (function(){ // ここから本実装 // 特定の階層のみ指定 if(/^\/aaa\/(sp\/)?(index\.html)?/.test(window.location.pathname)){ // このタイミングで実行することで、Googleアナリティクスのトラッキングタグとの前後関係は問わなくなる document.addEventListener(‘DOMCon…

Continue reading →

Googleアナリティクスで特定のドメインに対するリンクのクリックをイベントとして計測

アクセス解析で特定のリンク先ドメインに対するリンクのクリック(誘導)のみコンバージョンとして計測するため、イベントとしてカウントするケースがある。 コード いずれのコードもGoogleアナリティクスのトラッキングタグとの前後関係は問わない(どこに設置してもいい)。 IE9以降のみ対応でいいなら 以前はonclickイベントハンドラで実装していたが、イベントリスナを使ったほうが実装しやすい。 イベントハンドラと違って、もともと設定されているリンククリックアクションに対して純粋に処理を付加するだけだからである。 // 処理で使った変数や関数がグローバルを汚染しないようにクロージャで (function(){ // このタイミングで実行することで、Googleアナリティクスのトラッキングタグとの前後関係は問わなくなる window.addEventListener(‘load’, function(){ // すべての外部リンクを抽出 var a = document.getElementsByTagName(‘a’); for (var i = 0; i < a.length; i++) { // 特定のリンク先ドメインに対するリンクのみ絞り込む if(/^(www\.aaa\.com|www\.bbb\.net|www\.ccc\.jp)/.test(a[i].hostname…

Continue reading →

GoogleアナリティクスでcanonicalをページのURLとして自動で採用する

アクセス解析における計測URLの分散の問題 Webサイトのページビュー計測では、同一ページのPV計測は1つのURLのPVとして集約されることが望ましい。 ところがパラメータ付きURLや「index.html」の有無によって本来同一ページのはずなのにURLが異なり、PV数の評価が分かれてしまうことがある。 あらかじめサイト構成が「1ページ=1URL」を厳格に守ってくれていればいいのだが、必ずしもそういうわけにはいかない。1ページに複数のURLが発生してしまうのである。 SEOでは行われているURL正規化 SEOではその問題を解決するためにlinkタグのrel=”cannonical”属性を使うことでURLの正規化をすることができる。 ところがアクセス計測では「除外パラメータ」や「デフォルトページ」の設定として解析ツールの管理画面などから設定する必要がある。それでもページの表示に影響するパラメータの並び順が入れ替わる場合など対応できない。 実装方法 SEOでは簡単に出来る計測ページURLの正規化を、そのままGoogleアナリティクスの計測ページ(URL)として使う方法をここで紹介する。 canonicalのURLをGoogleアナリティクスのPVとして記録するのである。 ga(‘send’, ‘pageview’)のページとして、正規化URLがあればそれを、なければページのURLを採用…

Continue reading →