Googleアナリティクス


2017.6.22

AMP Analyticsのソースコードを読んで分かった最新事情

AMP Analyticsのソースコードを読んで分かった事情


AMP(Acceralated Mobile Pages)とは?

AMP(Accelerated Mobile Pages)とは、モバイル端末を中心にWebページを高速表示させるためのプロジェクト(またはそのフレームワーク)を指します。AMPを使って実装されたページは、高速に画面表示が行える反面、ページ内で自由にJavaScriptを使うことができなかったり、HTMLとして利用できるタグの種類が限られている、などの制限があります。

一方で、AMPのユーザー・インターフェースとなる仕様は、GitHub上の公開された場で開発が行われています。そのため、AMPに取り入れて欲しい機能については、GitHubのIssueを立てて議論することで、プロダクトに反映される可能性があります。また場合によっては、自身が要望する機能を自分自身で開発することも可能です(開発した結果、その機能が製品に取り込まれることもあれば、却下されることもあります)。実際、自分自身も機能要望をいくつか出したり、サンプルサイトのバグフィックスを行なったりしています。

 

AMP Analyticsの現在

AMP Analyticsで設置可能なタグ

AMPにおいては、自由にJavaScriptの実行を行うことができないものの、<amp-analytics>というタグを用いて、Googleアナリティクスを始めとするWebマーケティング・ツールの解析タグを実行することが可能です。例えば、Google AdWordsのリマーケティングタグやコンバージョンタグ、Facebook Pixel、百度アナリティクス、Adobe Analyticsのタグも配信可能です(残念ながら、Yahooプロモーション広告のタグは現時点では<amp-analytics>タグに対応しておりません)。

<amp-analytics>では、JSONファイルを用いて、ビーコンの送信タイミングや送信データを指定します。また、送信データの中には予めAMPが定義している各種変数を利用することが可能です。

AMP版Googleアナリティクス

AMP版Googleアナリティクスは、下記のようなコードを使って、ビーコンの送信を行います(下記は、ページの表示時に標準のページビューを送信する例)。


<amp-analytics type="googleanalytics" id="analytics1">
  <script type="application/json">
    {
      "vars": {
        "account": "UA-XXXXX-Y"
      },
      "triggers": {
        "trackPageview": {
          "on": "visible",
          "request": "pageview"
        }
      }
    }
  </script>
</amp-analytics>

このようにAMPでは、JavaScriptではなくJSONデータを用いてトラッキングコードを定義し、AMPのライブラリがJSONデータを読み取って最終的なビーコンを送信します。
上記のページビューを送信する例の他にも、開発者向け公式Googleアナリティクスヘルプには、イベントトラッキング(クリック計測)を行う例や、カスタムディメンションを使って送信するデータを拡張する例が掲載されています。

AMP版Googleタグマネージャ

AMPに対応したGoogleタグマネージャが2016年10月にローンチされました。AMP版Googleタグマネージャを使えば、トラッキングコードをタグマネージャを用いて配信することができます。これにより、JSONコードを書くことなくGoogleアナリティクスのトラッキングコードを設定することができるようになります(タグマネージャが、設定データをJSONコードに変換してくれます)。

Googleタグマネージャ版と標準版の違い

通常のWebサイトであれば、タグマネージャを使った方が

  • タグ管理が行いやすい
  • サイト制作者の力を借りずに、マーケティング担当者のみでタグの管理が行える

といったメリットがあるため、タグマネージャの利用を推奨しています。

しかし、AMPにおいては上記のメリット以外にデメリットも存在するため、一概にタグマネージャの利用を推奨することはできません。AMPにおけるタグマネージャ利用の最大のデメリットは、「AMP Analyticsのアップデートの頻度にタグマネージャのアップデートが追いついていないため、利用できる機能に差がある」ことです。そのため、Googleタグマネージャが対応していないAMP Analyticsの機能を利用したい、となった時はタグマネージャではなく、AMP Analyticsのトラッキング用JSONコードを用いる必要があります。AMP Analyticsの進化は早いので、AMP版サイトにおいてもしっかり解析を行いたい場合は、現時点ではタグマネージャの利用を諦めるのが懸命です。

 

ヘルプに載っていないAMP Analyticsの計測事例

AMP Analyticsの進化は早く、Googleアナリティクスの公式ヘルプやAMPのドキュメントにも掲載されていない情報が多く存在します。
本記事では、そのような「ヘルプに載っていないAMP Analyticsの計測」について6つ紹介します。

1)社内IPアドレスからの流入を正しく除外する

標準のAMP版Googleアナリティクスでは、「anonymizeIp」(IPアドレスの匿名化)が、有効になった状態でタグが実行されています。IPアドレスの匿名化が行われているため、社内IPアドレスをビューフィルタで除外するときに、通常版Googleアナリティクスと同じようにビューフィルタを作成すると、除外されません。なお、GoogleタグマネージャからGoogleアナリティクスを設置しているケースでは、anonymizeIpの変更には対応していません。

IPアドレスの匿名化が行われている場合、IPv4の4ブロックのうち最後のブロックが「0」として記録されるため、ビューフィルタで指定するIPアドレスも最後のブロックを「0」にして作成する必要があります。ただし、その場合は末尾ブロックのみ異なるその他のIPアドレスも同時にフィルタで除外されてしまいます。これを回避するためには、トラッキングコードに変更を行い、「anonymizeIp」(IPアドレスの匿名化)設定をオフにする必要があります。

「anonymizeIp」設定の変更は、https://github.com/ampproject/amphtml/issues/7983にて議論・修正が行われました。「anonymizeIp」設定をオフにする際は、上記のIssueを参考にしてください(このIssueは筆者が提起したもので、無事修正が行われました)。

続きは資料ダウンロードにて

プリンシプルでは本ブログで紹介したAMPの概要から、続きを含めてまとめた資料をご用意しております。ご興味ある方は以下から資料(PDF)をぜひダウンロードしてください。

内容:
・動画の再生開始や再生完了を計測する
・クライアントIDとタイムスタンプをカスタムディメンションに設定する
・<amp-form>の送信(成功時、失敗時それぞれも可)を計測する
・カルーセルで表示されたスライドを計測する
・共有トラッキング(仕様策定中)

もし、AMP版Googleアナリティクスの計測にお困りの方がいらっしゃいましたら、是非プリンシプルまでお問い合わせ下さい。


山田良太

山田良太

10年以上のプログラミング経験を活かして、現在は「Googleアナリティクス」「Googleタグマネージャ」を中心とするWebマーケティングのテクノロジー領域(APIを使ったシステム開発や、タグ実装など)を中心に取り組む。

・個人ブログ「SEM Technology」
・Google広告主公式コミュニティ
  ・Googleアナリティクス:トップコントリビューター
  ・Google AdWords:注目ユーザー
・電子書籍「Webマーケターのためのテクノロジー入門」


> の記事一覧

160610
2016.6.10

良質なコンテンツって?Google アナリティクスを使ったコンテンツ評価の方法

著者:
1600121_img3
2015.12.24

Kissmetricsとは?Googleアナリティクスとの違いを徹底検証!

著者:
BIツールって何?
2016.3.4

BIツールって何?-Tableauによるデータのビジュアライズ

著者:
01
2016.9.15

【速報】Google アナリティクスが知見を導く! Assistant機能を使ってみた

著者:
RaspberryPi
2015.12.27

メジャメントプロトコルによるIoT事始め

著者: