トラッキング
HubSpotのトラッキングは、コンタクトが「いつ、どのページを閲覧したか」という粒度のデータを取得することができます。ページを軸に全体を把握する特性の強いGoogle Analyticsに対し、個々人を軸にウェブ上の行動まで把握できるのがHubSpotのトラッキングの強みです。
もちろんHubSpotのトラッキングコードで提供されるデータ・機能はこれだけではありませんが、本ページでは主にコンタクトのウェブ上の行動のトラッキングに絞って解説します。
目次
コンタクト・Cookie・ブラウザ・トラッキングの関係
ユーザーのライフサイクルを考えると、まずは匿名ユーザーとしてウェブサイトに訪問するでしょう。HubSpotのトラッキングコードが埋め込まれたウェブサイトでは、この時点で既にトラッキングが開始されます。ここで「いつ、どのページを閲覧したか」などの行動データを保持しているのがCookie(クッキー)です。これはユーザーのブラウザごとに生成されます。ただし、まだHubSpot上にコンタクトが存在しないため、HubSpotオーナー(HubSpotを契約して利用している人)がデータを確認することはできません。
そしてユーザーがフォームなどからEメールをHubSpotに送信すると、HubSpotのCRMにコンタクトが生成され、同時にコンタクトに対しCookieのデータも紐付けられます。フォームデータと同時にウェブ上の行動データが送信され、コンタクト画面にて行動履歴を閲覧できるようになります。コンタクト化の有無に関わらずCookieによる行動データの蓄積は行われているため、当然フォーム送信以前の行動データも確認できます(Cookieの有効期限内において)。
Cookieがコンタクトに紐付くタイミング
「既に存在しているコンタクトにCookieを紐付けたい」という状況は多々あります。Cookieがコンタクトに紐付くタイミングは、そこまで多くありません。基本的にはユーザーが自らEメールを送信するか、一意のデータを持ってウェブサイトを開くかのどちらかです。
- Eメールの送信
- フォームなど(他にもチャットフローなどがあります)からEメールを送信する
- メンバーシップ機能のログインを行う
- 一意のデータを持ってウェブサイトを開く
- マーケティングEメール内のリンクをクリックしてサイトに訪問する(ただしEメール内のリンククリックでCookieの紐付けが行われるのは、1回目のクリックのみです。2回目以降のクリックはCookieに一時的なIDが割り当てられ、元々のコンタクトとの紐付けは行われません。出典)
- 一意のデータを利用し Tracking code API にて明示的に紐付けを行う
ブラウザとCookieは1対1であり、CookieとコンタクトはN対1である
ここで注意すべきは、 “Cookieはブラウザごとに固有である” という点です。例えばAユーザーは普段Google Chromeを使っており、Chromeでフォーム送信を行うと、Chromeを利用した行動のトラッキングは行えます。ただし気まぐれでFirefoxを利用した場合は、Firefoxでの行動はトラッキングできません。FirefoxのCookieとコンタクトが紐付いていないからです。
Firefoxにて、先に挙げたCookieとコンタクト紐付けのいずれかのアクションを行うと、FirefoxのCookieがコンタクトと紐付くので以後Firefoxの行動もトラッキングできるようになります。
現実的に “気まぐれ” でブラウザを変えることはあまりありませんが、実際にトラッキングができないケースは珍しくありません。これが起こるのは次のような状況です
- 複数のパソコンを利用している
- パソコンのブラウザだけでなく、スマホのブラウザを利用することも多い
- マーケティングEメール内のリンクを開く際、メーラーのアプリ内ブラウザで開くかスマホのデフォルトブラウザで開くかまちまちである
また、パソコン・ブラウザを複数人で使い回された場合も、トラッキングは期待通りのデータとなりません。これがよく起こるケースは例えば「リビングにあるパソコンで、○○ウェブサービス(HubSpotの会員機能使用)に自分がログインすることもあれば、別の家族がログインすることもある」という状況です。こうなると、ログインの度にCookieは別のコンタクトに紐付け直されます。「結局行動データがどちらのコンタクトのものか?」の信頼性が一気に低下するため、データの利用は難しくなります。
なお、1つのCookieが複数のコンタクトに紐付くことはありません(そのため、ログインの度にCookieが別のコンタクトに紐付けられる)。
コンタクトの一意性をCookieに頼っている限り、残念ながらこれらの状況の解決は難しいでしょう。
トラッキングができない場合のトラブルシューティング
ユーザーによるブラウザの変更はさておき、単一のブラウザでもトラッキングが上手くできない場合、大きく次の3つの軸で原因を分けて考えられます。
- ブラウザ側に問題がある
- HubSpot側に問題がある
- ページ側に問題がある
ブラウザ側に問題がある
ひとことで言えば “ブラウザ環境・設定によりCookieがセットできない” という状態です。主に下記のような理由が挙げられます。
- AdBlock や Ghostery など広告ブロッカーの拡張機能がインストールされている
- ブラウザの設定そのもので、Cookieをブロックしている
- ウェブサイトのCookie同意ポップアップで拒否を押した
いずれもテストとしては、ブラウザのCookie設定自体を見直したうえで、シークレットモードでページを開き、フォーム送信などを行ってシークレットモードのブラウザのCookieとコンタクトを紐付けましょう。ブラウザ以外に問題がないのであれば、期待通りにCookieが生成され、トラッキングが記録されるはずです。
なおCookieが生成されているかどうかは、Google ChromeではURLの左側のアイコンから確認できます。
ここに表示されるCookieのうち、トラッキングに用いられる次のCookieが生成されていれば、期待通りにトラッキングがされるはずです。
__hstc
hubspotutk
__hssc
__hssrc
なおこれらのCookieの詳細や、その他のCookieについて深く知りたい場合は公式のナレッジベース「HubSpotによって訪問者のブラウザーに設定されるCookie」をご確認ください。
また仮にブラウザの環境・設定は問題なくとも、HubSpot側の設定に不備がある場合はCookieが生成されません。続くセクションをご確認ください。
HubSpot側に問題がある
ひとことで言えば “HubSpotの設定不備” という状態です。主に下記のような理由が挙げられます。
- トラッキング対象のドメインとして追加されていない
- クロスドメインのトラッキングが有効になっていない(複数のブランドドメインの計測を連続的に行いたい場合)
- 自分が使用しているIPアドレスが除外IPに設定されている
- CookiebotなどサードパーティーのツールをHubSpotと連携させており、サードパーティー側の設定に不備がある
最後のサードパーティーの連携以外は、いずれも同一のページに設定があります。[設定(1)] → [トラッキングとアナリティクス(2)] → [トラッキングコード(3)] → [高度なトラッキング(4)] 内の
- 追加のサイトドメイン(5)
- 自動クロスドメインリンク(6)
- トラフィックを除外(7)
からそれぞれ設定します。
なお “追加のサイトドメイン” に関しては、トップレベルドメインを追加した場合とサブドメインを追加した場合とで挙動が異なります。
- トップレベルドメイン(例:100inc.co.jp)を追加した場合 → www.100inc.co.jp や、example.100inc.co.jp など、全てのサブドメインがトラッキング対象となる
- サブドメイン(例:www.100inc.co.jp)を追加した場合 → :www.100inc.co.jp のみがトラッキング対象となる
その他の設定に関しては、公式のナレッジベースを確認してください(「HubSpotでサイトトラッキングをセットアップする」)。
クロスドメインのトラッキングに関して
“自動クロスドメインリンク” の設定が有効になっていても、クロスドメインでのトラッキングを行うには条件があります。Cookieがコンタクトに紐付いている方のウェブサイト内のリンクから、一度他方のウェブサイトへ遷移しなければなりません。
どういうことかと言うと、まずAユーザーがHubSpotにコンタクトとして存在しており、サイトが
- www.100inc.co.jp(以降100サイトとします。100サイトのCookieは既にAユーザーコンタクトに紐付いている)
- www.pensees.co.jp(以降パンセサイトとします。パンセサイトのCookieは紐付いていない、または生成されていない)
の2つが存在しているとしましょう。この状況で、仮にAユーザーが100サイト以外の導線からパンセサイトを開いても、この時点ではAユーザーはパンセサイトの行動がトラッキングされません。パンセサイト側で生成されるCookieと、コンタクトが紐付いていないからです。
ではなぜ100サイトからパンセサイトへの遷移でクロスドメインのトラッキングが可能になるかというと、“自動クロスドメインリンク” の設定を有効にしたことにより、100サイトからパンセサイトのa要素のhref属性値に ?__hstc=50582646…&__hssc=50582646…&__hsfp=190350…
のようなクエリ文字列(100サイトのCookieのキーと値)が付けられるからです。このクエリ文字列を持ってパンセサイトに流入することにより、HubSpotは「Aコンタクトに紐付いている100サイトのCookieを持って、パンセサイトに来た人がいる → この人はAユーザーだ」と判断し、クロスドメインのトラッキングが実現します。つまり冒頭では「Cookieはブラウザごとに固有」と説明しましたが、より厳密には「ブラウザごと、かつウェブサイトごとに固有」となります。
一度このCookieの紐付けが行えれば、以後はCookieの有効期限が切れない限りAユーザーが直接パンセサイトに訪問しても、トラッキングが可能です。
ページ側に問題がある
ひとことで言えば “トラッキングコードの設置の仕方がよくない” という状態です。主に下記のような理由が挙げられます。
- そもそもトラッキングコードが埋め込まれていない
- トラッキングコードを上手く読み込めていない
- SPA(Single Page Application)である
1つ目に関しては言うまでもないでしょう。2つ目に関しては、主に通信エラーのような状況を指しています。これに関しては公式のナレッジベースで確認方法が用意されていますので、そちらを確認してください(「HubSpot トラッキングコードをトラブルシューティングする」)。
3つ目のSPAの場合に関しては、解決策として別途 Tracking code API が用意されています。HubSpotのトラッキングコードが生成する_hsqオブジェクト内に幾つかメソッドが用意されており、そのうちの trackPageView メソッド(必然的に setPath メソッドも使うことになると思いますが)をルーティングの度に実行することにより、SPAでもトラッキングが可能となります。
参考
https://knowledge.hubspot.com/ja/account-and-setup/topics#tracking-code