Googleアナリティクス/GTMの高度でおすすめのデフォルト設定

GTMとGoogleアナリティクスの高度な実装。 パーソナライズやエンゲージメント分析をする際には必須になるものを紹介する。 主にGoogleアナリティクス360でBigQueryを使って分析する際に役立つ。 必須のcustomTask customTaskはGoogleアナリティクスのスクリプトがデータ収集サーバにデータを送る(メジャメントプロトコル)ときに任意の処理を指定して実行するオプションである。 GTMを使ってGoogleアナリティクスとさまざまなツールを連携する際、customTaskにはデフォルトでこれを設定するといい。 function() { return function(…

続きを読む →

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

アクセス解析における計測URLの分散の問題 Webサイトのページビュー計測では、同一ページのページビュー計測は1つのURLのページビューとして集約されることが望ましい。ところがutm_sourceなどのダミーパラメータ付きURLや「index.html」の有無によって本来同一ページのはずなのにURLが異なり、ページビュー数の評価が分かれてしまうことがある。あらかじめサイト構成が「1ページ=1URL」を厳格に守ってくれていればいいのだが、必ずしもそういうわけにはいかない。実際には1ページに複数のURLが発生することも多いのである。 SEOでは行われているURL正規化 SEOではその問題を解決する…

続きを読む →

babel/webpackを使ってJavaScriptのソースをリリース用に整備する

babelは新しいESの記法で作ったJavaScriptのソースを古いブラウザでも実行可能に変換してくれるパッケージ。webpackはJavaScriptのソースコードをminifyするパッケージ。普通は組み合わせて使う プロジェクトディレクトリにnode_modulesを作成する場合 パッケージを構築するイメージ プロジェクトディレクトリの作成 mkdir mylib cd mylib package.jsonの作成 npm init パッケージのインストール npm install –save-dev @babel/core @babel/preset-env babel-loader …

続きを読む →

Javascriptで正規分布の実装まとめ(乱数、累積分布関数など)

Javascriptで正規分布の乱数発生(rnorm)、確率密度関数(dnorm)、累積分布関数(pnorm)、累積分布の逆関数(qnorm)を実装する(逆関数は参照で)。すべて標準正規分布を想定。 Javascriptに限らず使えるアルゴリズムだが、日本語でまとまっている情報があまりないのと、ブラウザ上でA/Bテストなど有意性をみる検定などできたら面白いということでJSでやってみる。 正規乱数の生成(rnorm) 1行でBox-Muller法で。 Box-Muller法とは? $$X_1, X_2 \stackrel{i.i.d.}{\sim} {\rm Unif} (0, 1) $$ とす…

続きを読む →

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

GoogleアナリティクスとGoogleタグマネージャーのマニアックな話題。 通常GoogleアナリティクスをGoogleタグマネージャーを使って設置すると、GAのビーコンを呼び出す際のトラッカー名はGTMによってランダムな名前のものが割り当てられる。 たとえばこんな「gtm1463146770599」形式のものである。 そうなると生成したトラッカーそのものを使って何らかの処理をすることが難しい。GTMの設定の中で固定のトラッカー名を付与すればこの問題は発生しないが、諸事情でGTMの設定権限を与えられていない場合もある。 生成したトラッカーからさまざまな情報を取得したり、その情報に基づいて何ら…

続きを読む →

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

Googleアナリティクスなどでページの精読状況をトラッキングする際、「特定ピクセル以上スクロールする」「画面の○%以上スクロールする」ことがあるが、同様に「特定の要素を表示したとき」という条件でトラッキングしたいときもある。コンテンツの精読だけでなく、たとえばクーポンをページに仕込んでおいてその表示回数をカウントするなどのケースでも使える。 そのような場合にエレメントの座標を取得して、そこまでスクロールしたら発火するというアイデアがあるが、実はスマートフォンでは機種によって画面の幅が異なるため、テキスト部分の行数が変わり、縦座標の値も変わってくるという問題がある。単純に縦の位置を取得するだけ…

続きを読む →

JavascriptでYahoo!などのタグマネージャに渡すためのイベントを発生させる

ちょっと賢いリマーケティング タグマネージャを使ってちょっと賢い、ちょっと効率的なリマーケティングをやりたい。 多くのアカウントで共通して使える、お手軽なアドバンスト・リマーケティングの実装法を紹介する。 ディスプレイ広告の世界、やれ認知だ、アトリビューションだなどといっても、所詮リマーケティング広告大全盛である。 その運用の実際はとりあえず当該サイトのどこかのページを閲覧した(無条件でリマーケティングタグを読み込んだ)だけで リマーケティングをするということが多い。 中にはリーセンシー(直近○日以内に閲覧した)や閲覧したページの種類(トップページ or 詳細ページなど)で 入札の重みを変える…

続きを読む →

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

計測URLを正規化する、1ページは1URLに集約してページビュー計測することが望ましいことはhttps://www.marketechlabo.com/send-ga-pageview-canonicalized-url/で取り上げたが、この「1ページで複数URL」とは逆に「複数のページで1URL」になるパターンの対応法を取り上げる。 よくあるのはフォームの遷移などで、同一URLで異なる内容のページが表示されることがある。 入力フォーム→確認画面→完了画面 これらが画面遷移はあるものの1URLで完結しているケースである。ひどい場合は完了画面までもが同一URLになるため、コンバージョンの計測すら…

続きを読む →

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

eコマースのシステム(ショッピングカート)においてGoogleアナリティクスの Eコマーストラッキングを実装する場合、通常はトラッキングする要素に動的な要素を含む、 システムが絡むため、システム改修が必要ということになる。 しかしシステム改修となると開発費もかかるため、なかなか踏み出せない。 またeコマースのシステムによっては商品名や価格を動的に出すなどプログラムのかかわる部分には 一切手を加えられない場合もある。 そこでJavascriptだけで注文番号、商品名、金額などを取得する方法をここでは紹介する。 つまりタグマネージャー一つ設置されていれば、そのカスタムタグ機能で eコマーストラッキ…

続きを読む →

JavaScriptでフラグをビットで管理する~複数の状態フラグを少ない容量で管理

状態を管理する、その状態に応じて条件分岐するやり方。 フラグをビットで管理するメリットとケース 特定の条件でのみリマーケティングタグを発火する、イベントをカウントするなど、何らかの処理をすることがある。 「3回目の訪問で、詳細ページを閲覧済みで、未購入のユーザに対して広告配信をしたい」 というケースなど、条件が複雑になると広告配信プラットフォームのタグと管理画面だけでは実現不可能で、JavaScriptとcookieを使う必要がある。 個別の条件を満たしたときにJavaScriptで条件判定をし、フラグを立てる。 その結果をcookieに保存する。 cookieに保存されたフラグの組み合わせを…

続きを読む →