ITP2.1の影響と対策方法、JavaScript生成cookie7日問題

iOS12.2以降で搭載されるSafari12.1からITP2.1が導入される。 「Googleアナリティクスのcookieが使えなくなるのではないか」などの漠然とした不安が先行しているようなので、その要点と影響範囲、対策方法をまとめた。 ITP2.1とは 対象の環境 ブラウザSafari12.1以降 このSafariを搭載する対象OSはiOS 12.2/mac os 10.13以降 これまでのITP(2.0以前)からの更新内容 トラッカー認定されたcookiesがすぐ無効化される トラッカー認定されたcookieは以前は通常利用できない別にところに置いておかれた(partitioned cookie)が、ITP2.1ではそのような特別扱いがなくなり、トラッカー認定されたcookiesがすぐ無効化されるようになる。つまりcookieの扱いが単純化された(一本化された)ということ。 JavaScriptが扱えるcookieが7日間までしか使えなくなる これまでcookieは半永続的に有効期限を設定することができていたが、ITP2.1ではSecure属性とHttpOnly属性のないcookieの有効期間が7日間になる。 二つの属性のうちHttpOnly属性はJavaScriptから生成することができず、サーバから(HTTP通信で)しか設定できない。つまりJavaScriptが生成できる…

Continue reading →

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タグマネージャーの使い方

この記事は連載「タグマネジメント完全マニュアル」の全 2 ページ中 2 ページ目です。

Googleタグマネージャー(GTM)とはGoogleが提供している無料のタグマネージャ。 Googleアナリティクスの管理に向いている。 設置 タグは2個あり、両方設置する。それぞれ設置個所が決まっている。 ~内 <body>開始タグの直後 ここにないとSearch Consoleなどの認証で失敗する。 タグの設定 タグ+トリガー+変数 のセット→これら設定の一式をコンテナという タグ→実行するタグ トリガー→タグの実行(発火)条件 変数 トリガーの中での条件判定に使う タグに動的に値を渡す(データレイヤー) 条件判定で使う変数は、たとえば クリックしたリンクのURL ログイン済みかどうか(フラグ) など、その値によってタグを実行するかどうかの扱いが変わるもの。 タグに動的に値を渡すというのはサーバから出力される問合せ番号や注文番号など。 サーバで処理をした結果をGoogleアナリティクスや広告のコンバージョンタグなどに送りたい場合に使う。 コンテナ 現在のタグ一式(タグ+トリガー+変数)をまとめたもの タグ(+トリガー+変数)を登録しただけでは本サイト上では有効にならず、公開(パブリッシュ)するとはじめて本番環境に反映される コンテナのバージョン管理の仕組みがある 過去のバージョンを保存しているため以前のバージョンに戻すことも容易。過去のバージョンに戻した後、最新版…

Continue reading →

タグ管理のポイント、タグマネージャーの種類と導入のメリット

この記事は連載「タグマネジメント完全マニュアル」の全 2 ページ中 1 ページ目です。

昨今Googleタグマネージャ(GTM)やYahoo!タグマネージャー(YTM)など無料で使えるタグマネージャーが現れ、タグマネジメントが一般化してきている。ではそもそもタグマネジメントとは何か。タグマネージャは変われどタグマネジメントの考え方は基本的にどのツールを使っても同じ。その基本を説明するとともに、後半では無料で最もお手軽に使えるGoogleタグマネージャの設定方法の解説をする。 タグマネジメントとは 「タグマネジメント」とはその名の通りwebサイトに設置するタグの一元管理である。 では管理すべきタグにはどんなものがあるのか。 アクセス解析ツールのタグ 広告のタグ コンバージョンタグ リマーケティングタグ 接客ツール(チャットなど)のタグ ABテストツールのタグ などがある。 ある程度web施策の程度が進んでいくと、これらのタグを複数、それぞれ異なるページに設置する必要が出てくる。どのタグをどんな条件で設置したか管理し、使わなくなったタグは削除するなどの運用を徹底しておかないと、後になって同じ目的のタグを設置したとか、ページの表示の不具合の原因が古いタグにあったとか、そういった事態が発生する。 担当者が変わった際などには当然「どこにどのタグをどんな目的で設置したか」を伝えておく必要はあるし、自分で設置した場合でも過去のタグの所在は覚えていないことが多くなる。 そのため改めて…

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 →

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

ちょっと賢いリマーケティング タグマネージャを使ってちょっと賢い、ちょっと効率的なリマーケティングをやりたい。 多くのアカウントで共通して使える、お手軽なアドバンスト・リマーケティングの実装法を紹介する。 ディスプレイ広告の世界、やれ認知だ、アトリビューションだなどといっても、所詮リマーケティング広告大全盛である。 その運用の実際はとりあえず当該サイトのどこかのページを閲覧した(無条件でリマーケティングタグを読み込んだ)だけで リマーケティングをするということが多い。 中にはリーセンシー(直近○日以内に閲覧した)や閲覧したページの種類(トップページ or 詳細ページなど)で 入札の重みを変える場合もある。これらは管理画面上の設定で可能な絞り込みの方法である。 ところが2ページ以上閲覧しただとか、120秒以上閲覧しただとか、より深くページを閲覧した特定の行動に対してリマーケティングを行うのは管理画面上の設定だけでは不可能なことが多い。それをJavascriptの機能を使って実現する。 メカニズム 今回はタグマネージャにイベントを渡し、タグマネージャ側で 特定のイベントが発生 → タグを発火 という設定(タグ発火のルール)をすることで実装するケースを想定する。 Cookieを使うことになるので、Cookieを読み書きするライブラリを使う。 さらに特定の行動が発生したらオリジナルのイベン…

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 →