技術情報

Matomo(Piwik)でカスタム変数を使う(チュートリアル)

2012年10月04日 導入ガイド

※注 この記事は Piwik1.8~2.17のアーカイブ情報です

今回からシリーズでお届けする新しいタイプのブログ記事へようこそ。 これらの記事は、一般的な分析に関連するトピックと同様に、あなたが知らないかもしれないMatomo(Piwik)の機能/変更点にフォーカスを当てることを目標としています。 将来の記事投稿のためのアイデアもオープンにしていますので、遠慮無く、件名 “Blog Topic”を使って私達に連絡下さい

最初の記事では、「カスタム変数」の世界に取り組みたいと思います。

なぜカスタム変数?

カスタム変数は、分析パッケージそれ自体を正しく呼び出せるプログラムと、ビジットを収集するだけのシンプルなプログラムとの違いを明らかにするものです。 カスタム変数でベストといえるのは、フレキシビリティと、一工夫した統計データ得るための驚くほどクールな方法です。 要はあなたの想像力に制限がないということです。コードにJavaScriptをコピー&ペーストして、いくつかのシンプルなプログラミングをするだけでよいのです。 それではMatomo(Piwik)でカスタム変数を使用する方法を見てみましょう。

カスタム変数:始めましょう

カスタム変数を使用するための最初のステップは、正しくセットアップすることです。 一回のビジットあたり5つまでのカスタム変数、かつ/または、1ページビューごとに5つまでのカスタム変数をトラックできることを覚えておいてください。 これまでにGoogle Analyticsを使用したことがあれば、セットアップ方法はおなじみだと思います。 最初に、トラックして何を行いたいのか考えましょう。例えば、あなたはサイトの会員ユーザーをトラックしたいと思います。 どのようにそれを行えばよいでしょうか。
標準のMatomo(Piwik)のコード中のシンプルな一行を置き換えて以下のように追加します。

piwikTracker.trackPageView();

以下に置き換え:

 [...] 
piwikTracker.setCustomVariable(1, "VisitorType", "Member", "visit"); 
piwikTracker.trackPageView(); 
[...] 

カスタム変数の基本

先に進む前に、もう少しカスタム変数を掘り下げて理解するために回り道をしましょう。 このコードの各部分は何を意味するのでしょうか? 明らかにsetCustomVariableは、これがカスタム変数であることを宣言するものですが、他の引数についてはどうでしょうか?

最初のパラメータは、ビジットのために使用される5つのカスタム変数の一つ目であることを示しています。 それはINDEXと呼ばれています。 もしデータを上書きするのでなければ、唯一のユニークなインデックス番号を使わなければなりません。 言い換えると、別のカスタム変数を作成し、それにINDEX 1を割り当てた場合、それは新しい変数としてトラックを開始します。

文字列の2番目のパラメータは NAME と呼ばれています。 この例では、”VisitorType”となっています。 これは変数の全体的な分類として使われるものです。

3番目は “VALUE” です。 今回の例では、”Member” または “Non Member” となります。

最後の引数は、SCOPE(対象範囲)を決めるものです。これは、情報がどのように格納されるかを決定します。 “visit”のスコープでは、カスタム変数は、現在のセッションをフォローすることを意味します。 他のオプションは、 “page”です。 これはサイトにカテゴリがある場合に便利ですし、あなたは特定のカテゴリのランディングページがどう機能するか追跡したいと思うでしょう。カスタム変数およびコンポーネントの詳細については、こちらのドキュメントをチェックしてください。

ログインステータスを使用するカスタム変数のWordPressの例

素晴らしいサンプルに戻りましょう。 ユーザーが会員であるかどうかを知る場合には、少しコードを書く必要があります。 しかし、そんなに難しくはありません。 PHPのスキルが限られていたり、CMSや構築したWebサイトに依存していたとしても、必要なことは簡単に見つかります。 例えば、ワードプレスで、会員がログインしているかどうかを判定するには “is_user_logged_in“関数を使用します。

ですから、以下に示すPHPコードでは、 “Member” vs “Not Member” をMatomo(Piwik)に表示させます:

 
[...] 
piwikTracker.setCustomVariable(1, "VisitorType", "<?php if ( is_user_logged_in() ) {echo 'Member';} else {echo 'Not Member';} ?>", "visit");
piwikTracker.trackPageView();
[...] 

WordPressのロールを使用したカスタム変数の例

今、あなたは会員と会員でない人々の行動をトラックすることができます。 あなたが望むなら、さらに、ロールレベルに基づいてトラックすることができます。 再びWordPressを使用して、編集者 vs 投稿者 vs 購読者の間のトラフィックの違いを知りたいと思った場合、WordPressの関数は “get_current_user“です。これを行うには、コードに以下を追加することになります。

 
[...]
<?php  
$current_user = wp_get_current_user();
if ( !empty($current_user->roles[0]) ) {
 echo 'piwikTracker.setCustomVariable(2, "RoleType", "'.$current_user->roles[0].'", "visit");'; 
}
?>;
[...] 

まとめると、コードは次のようになります。:

 
[...] 
piwikTracker.setCustomVariable(1, "VisitorType", "<?php if ( is_user_logged_in() ) {echo 'Member';} else {echo 'Not Member';} ?>", "visit");
<?php  
$current_user = wp_get_current_user(); 
if ( !empty($current_user->roles[0]) ) { 
  echo 'piwikTracker.setCustomVariable(2, "RoleType", "'.$current_user->roles[0].'", "visit");';
} 
?> 
piwikTracker.trackPageView(); 
[...] 

ここで、INDEX 1の会員種別を上書きしてしまわないように、インデックス番号2を設定したことに注意してください。これで、会員と非会員のトラフィックの違いを見ることが出来ます。 同様に、タイプ別のロールがどのようにふるまうかも分かります。 データを見るにはビジターのタブをクリックしますが、ダッシュボードに表示するためにウィジェットを追加することもできます。 以下に示すのはカスタム変数レポートのスクリーンショットです。:

custom-variables-piwik
 

今度はあなたの番です。 あなたの好きなカスタム変数は何ですか? 過去にカスタム変数で追跡したクリエイティブなことは何ですか?