計測したいものに合わせてイベントトラッキングをする方法

最近またpokemon goをやり始めた kataigi です。

プレイドで開発しているKARTEはユーザーのアクセス情報を分析するサービスの一種です。KARTE以外にも、Google AnalyticsやAdobe SiteCatalystなどユーザーのアクセス情報を分析するサービスは多くあり、使ったことある人も多いでしょう。ただ、そんなサービスでもどんな方法でデータを取得・トラッキングしているか知らないと、データの正しい意味がわからず、使いこなすことは難しいかと思います。ここではそんな分析の前提となるデータのトラッキングの方法をざっくりまとめてみました。

トラッキングの方法には様々な種類があります。どんな状況でも正確にデータが取れる方法というのはないため、それぞれの方法の特徴を知った上で、環境とデータに合わせて使い分けるのが大事です。今回は、ページやコンテンツの表示回数を測るインプレッショントラッキングと、クリック回数を測るトラッキングについて詳しくみてみたいと思います。

インプレッショントラッキング

一つ目は表示回数のトラッキングです。ページが表示される時はページビューですが、例えば商品レコメンドなどでは、同じページでも表示される商品情報が変わるなど、ページ閲覧回数とコンテンツ表示回数は異なってくるため、コンテンツの表示回数も計測したい場合は、より一般的にインプレッション(露出回数)という用語が使われます。トラッキング技術としてはページビューはインプレッションに含まれるので、ここでは合わせてインプレッショントラッキングとします。

基本的にはページ/コンテンツが表示された回数を測ることになります。コンテンツが自分の管理下にあるか、計測タイミングがコンテンツ表示前か後か、というあたりで使う技術が変わってきます。

アクセスログ

image1

一番シンプルな方法は、サーバ自体のアクセスログを使う方法です。コンテンツを表示する時のブラウザからのアクセスをサーバ上でログに残しておく方式になります。原理的に、コンテンツ配信サーバ自体を自社で管理していないと計測できません。

メリット

概ねどのサーバでもアクセスログは出力されるため、準備不要で計測でき、最も手軽。

デメリット

アクセスログを計測するため、自社管理対象のサーバしかカウントできない。
アクセスがあった ≠ 表示されたではない(ブラウザで描画される前に離脱してるかも)ので、計測値は真の値より多くなる。

ピクセル(ビーコン)

image2

2つ目はピクセルトラッキングとかビーコントラッキングと呼ばれる方法です。この方法は、ページやコンテンツと一緒に極小の画像(ピクセル)を読み込ませ、その画像へのアクセスを計測する方法になります。読み込ませる画像は自社のサーバ外に置いても良いため、多くのアクセス解析システムで用いられている方法です。

メリット

自社管理外のサーバでもカウント可能。
HTMLメールなど、配信されるコンテンツでも計測可能。

デメリット

コンテンツが表示されても即離脱するとカウントされないため、滞在時間が短いなど一部指標の計測が難しい。
メーラーなどのJavaScriptが使えない環境だと、ピクセルが描画されてしまい、コンテンツが崩れる可能性がある。

スクリプト

image3

ピクセルトラッキングでは画像にアクセスしていましたが、実際は画像ではなくても特定のURLにアクセスさえしてくれれば同じことが実現できます。そのためページやコンテンツの表示に合わせてJavaScriptで計測用のURLへアクセスする方法も取られます。
JavaScriptを使用できるため、好きなタイミングで計測できるようになります。例えば、滞在10秒後・20秒後・30秒後…にトラッキングして滞在時間を計測したり、ページのスクロール率100%のタイミングでトラッキングして、ページの読了率を計測したりもできます。
IAB( https://www.iab.com/guidelines/iab-measurement-guidelines/ )が提示しているような、厳密な計測(コンテンツが50%以上表示されていること、など)を行う場合は、JavaScriptによるタイミングの制御が必須となってくるため、必然的にこの方法が用いられます。

メリット

ページの50%以上読み込んだらなど、集計タイミングを柔軟に作れる。

デメリット

JavaScriptが必須なため、メーラーなどJavaScriptの実行を制限された環境だと使えない。

クリックトラッキング

続いてはクリックトラッキングについてです。ページやコンテンツの効果を測りたい場合、インプレッション数に加えて、実際にコンテンツをクリックした回数を計測することが必要になります。その時のクリックの計測方法も複数あります。

リダイレクタ

image4

クリックした時に目的のページへすぐに遷移せず、一旦別のサーバを挟む計測方法です。httpのstatus code 302を活用します。リンクをクリックした時に一旦リダイレクトサーバにアクセスし、そのクリック情報を記録したのち、ブラウザのstaus code 302のリダイレクト機能を使って目的のサーバへ遷移させる方法です。
短縮URLと呼ばれる機能とほぼ同じ動きをするため、合わせて実装されていることが多い印象です。

メリット

一般的なWebの仕組みに乗っているので、だいたいどこでも動く。

デメリット

余計な遷移を挟むため、ページ遷移が少し遅くなる。

イベントハンドラ

image5

2つ目はリンクのclickのイベントハンドラを使う方法です。JavaScriptを使うことで、リンククリック時の処理(onclickなど)に介入して、ページ遷移をする前にアクセス情報を記録用のサーバへ飛ばす方法になります。クリック情報記録用のアクセスとページ遷移を非同期に行えるようになるので、前述のリダイレクトのような不要なページ遷移をせずに実行できます。

メリット

余計なページ遷移を発生させないで済む。

デメリット

別途clickハンドラが設定されているとかち合うことがある。
JavaScriptが使えない環境では動かない。

まとめ

アクセス情報やクリック情報を計測するための技術を駆け足で見てきました。複数の計測の仕組みを作るのは大変ですが、正確な計測を行うためには環境に応じて技術を使い分ける必要があります。環境と計測内容から適切な計測方法を探し出してみてください。

CX(顧客体験)プラットフォーム「KARTE」を運営するプレイドでは、KARTEを使ってこんなアプリケーションが作りたい! KARTE自体の開発に興味がある!というエンジニア(インターンも!)を募集しています。
詳しくは弊社採用ページまたはWantedlyをご覧ください。 もしくはお気軽に、下記の「話を聞きに行きたい」ボタンを押してください!