Chartbeatを実行するための実装ガイド
高度なChartbeatタグ実装
概要
このページでは高度なChartbeatタグ実装の方法について解説します。
ログインユーザーや定期購読ユーザーに提供するコンテンツがある場合、そのログイン情報をChartbeatで計測することにより、ログイン状態別のコンテンツエンゲージメントを分析できるようになります。
無限スクロール(Infinite Scroll)やシングルページ・アプリケーション(Single Page Applicaion=SPA)など、JavaScriptで動的にページを生成するサイトでの計測方法についても紹介します。
ログイン情報取得
ログイン情報を取得するには、1. _cbqグローバル変数を宣言、2.ユーザーのログイン状態を_cbqグローバル変数にPushする、という実装になります。
_cbqグローバル変数を以下のJavaScriptコードで宣言します。
var _cbq = window._cbq = (window._cbq || []);
次のJavaScriptコードのように、現在アクセスしているユーザーのログイン状態をKey-Valueペア形式で_cbqグローバル変数にPushします。
_cbq.push(['_acct', 'user_type']);
Keyの「_acct」は固定値、Valueの「user_type」は次の3つの規定値のいずれかをセットします。
ログイン状態 | user_type |
---|---|
ゲスト | anon |
登録者 | lgdin |
購読者 | paid |
一般的な実装としては、通常のChartbeatタグの _sf_async_config設定
の直後で_cbqグローバル変数を宣言し、_cbq.push()
を実行することをお薦めします。例えば、以下のようなコードになります。
<script type='text/javascript'>
(function() {
var _sf_async_config = window._sf_async_config = (window._sf_async_config || {});
/** CONFIGURATION START **/
_sf_async_config.uid = #####; //CHANGE THIS
_sf_async_config.domain = 'YourDomain.com'; //CHANGE THIS
_sf_async_config.useCanonical = true;
_sf_async_config.useCanonicalDomain = true;
_sf_async_config.sections = ''; //CHANGE THIS TO YOUR SECTION NAME(s)
_sf_async_config.authors = ''; //CHANGE THIS TO YOUR AUTHOR NAME(s)
var _cbq = window._cbq = (window._cbq || []);
_cbq.push(['_acct', 'paid']);
/** CONFIGURATION END **/
function loadChartbeat() {
var e = document.createElement('script');
var n = document.getElementsByTagName('script')[0];
e.type = 'text/javascript';
e.async = true;
e.src = '//static.chartbeat.com/js/chartbeat.js';
n.parentNode.insertBefore(e, n);
}
loadChartbeat();
})();
</script>
動的生成ページの計測
無限スクロール(Infinite Scroll)やシングルページ・アプリケーション(Single Page Applicaion=SPA)でサイトを構築している場合、追加で実装が必要です。
新たなコンテンツに切り替わるごとに、virtualPage
関数を呼び出します。この関数はクリックやスワイプのイベント、コンテンツが変化するトリガーとなるピクセル数に紐づけて、計測情報を更新するよう特別に設計しています。virtualPage
関数は次のような数行のコードで、コンテンツの切り替え時に実行してください。
pSUPERFLY.virtualPage({
sections: "新たなセクション1, 新たなセクション2",
authors: "新たな著者名",
path: "/新たなパス",
title: "新たなタイトル"
}):
virtualPageでは、特に引数を指定しない場合、直前の計測に使用したセクション名や著者名を記録します。もし、新しいページでセクション名や著者名がない場合は、次のように空文字列を引数に指定してください。
authors:"",
コンテンツが切り替わったときは、その新しいコンテンツをユーザーが閲覧したことを反映するため、新たなパスとタイトルをvirtualPage
の引数で渡してください。
重要なポイント
virtualPage
関数は最初に外部流入したときには実行できません。初期コンテンツの表示時は通常のchartbeat.jsタグを実行し、動的に次のコンテンツを表示したときのみvirtualPage
関数を実行してください。