技術情報

カスタム変数のケーススタディ:Divezone.net

2012年10月09日 導入ガイド

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

Divezone.net use case: Scuba Diving Content Website

ケーススタディ: Divezone.Net

前回の投稿では、カスタム変数についてお話し、会員制のウェブサイトとワードプレスのロールのアクティビティをトラッキングするのにMatomo(Piwik)のコードへカスタム変数を追加するためのいくつかの簡単な方法を示しました。 カスタム変数を使用する事が出来るもう一つの方法は、コンテンツサイトをトラッキングしたい場合です。 コンテンツを少し深く掘り下げるために、 DiveZone.netというダイビングに関するウェブサイトを用います。 これは、リッチコンテンツサイトをトラッキングするためにカスタム変数の使用方法を示した完璧な実例です

なぜコンテンツにカスタム変数を使うのか?

Matomo(Piwik)は個々のコンテンツに関する情報をとても素晴らしく解析してくれるので、沢山のカテゴリーやサブカテゴリーがあるブログやウェブサイトがある時、これらがどの様に実行するかを知りたい場合があります。 このための唯一の方法(および最良の方法)は、カスタム変数によって行われます。 今回のケースでは、カスタム変数のレポートに、訪問者に最も人気のあるエリアや、潜在的にはサイトのどこにもっと多くのコンテンツを作成した方がよいを表示します。 各々のカスタム変数レポートでは、どれが人気かを評価できるよう、ページビュー、ページ滞在時間、直帰率を知ることができます。

カテゴリとサブカテゴリの情報を取得するようMatomo(Piwik)に設定するのは、本当に簡単です。 WordPressでこの情報を取得する方法をお見せしますが、それは他のCMSでも同じように簡単です。 実際にDivezoneでは、標準のWordPressのカテゴリを使用していませんが、”カスタムタイプ”は、Matomo(Piwik)にデータを取り入れるには多くの方法があることを示しています。 たとえば、Divezoneで通常のページのロード時に、次の内容が出力されます:

[...]
_paq.push(['setCustomVariable', '1','type','divesite']);
_paq.push(['setCustomVariable', '2','location','Tulamben']);
_paq.push(['setCustomVariable', '4','fishes','Big Potato Grouper, Black Tip Shark, Garden Eel, Jack Fish, Surgeonfish']);
_paq.push(['setCustomVariable', '5','divesite-rating','5']);
[...]

これらは、 非同期のMatomo(Piwik)のコードを使用します。 以下の例では、標準のMatomo(Piwik)のコードを使用し、そして、WordPressの内部機能を使って動作させる方法を紹介します。 WordPressを使用しない場合でも、ほとんどのCMSプログラムがいくつかの階層構造を使っていれば、カテゴリ情報を取得するのは比較的簡単です。 それらのCMSがカテゴリ、サブカテゴリ、あるいはMatomo(Piwik)にトラッキング情報を伝えるためのある種の属性情報を、なんと呼(ぶのか)んでいるのか見つけて使用するだけです。

いくつかのデータをキャプチャしてみよう!

それでは、お楽しみ。シンプルにいきましょう。 この記事が対象とする範囲としては、カテゴリとサブカテゴリを捉えることだけに取り組みますが、ご自分が好きなようにクリエイティブに取得できます。 たとえば、Divezoneでは(上記の例で見たように)、ユーザーの評価もキャプチャしています。 ですので今回の目的のためには、DiveZoneに来た訪問者が、紅海でのダイビングについてのページ: divezone.net/diving/red-seaを訪問した場合, 出力したいコード(標準コードで)は次のようになります。:

[...]
piwikTracker.setCustomVariable(1, "Type", "diving", "page");
piwikTracker.setCustomVariable(2, "Location", "Red Sea", "page");
piwikTracker.trackPageView();
[...]

これをじっくり見てみましょう。 カスタム変数は、1ビジットにつき5つまで、あるいは1ページビューあたり5つまでトラックできることを思い出してください。 このケースでは、ページのスコープ(インデックス1と2)で2つの引数を使用しています。 これは、ユーザーが別のページに行くにしたがって、彼らが訪問するカテゴリ/サブカテゴリをキャプチャすることができることを意味しています。 もし、ビジットのスコープを使用した場合は、以前のページビューについてのカスタム変数の記録を失うことになります。 それは最後の1つだけを捉えるからです。

インデックス番号を与え、ページのスコープを選択したら、それに挟まれたデータはNAME変数とVALUE変数です。 ページの “タイプ”を知りたいことを示し、VALUE変数を用いて、そのページのカテゴリを取得します。 2番目のカスタム変数では、NAME変数を使って”ロケーション”を示し、そして、どのサブカテゴリーをユーザーが見ているか(この場合は “紅海”で)を取得するのにVALUE変数を使用しています。

どのようにデータはキャプチャされますか?

前に述べたように、どのようななCMSでもカテゴリをキャプチャする方法はあります。 DivezoneはWordPressを使用しているので、ビルトインのWordPressの機能で行う方法を紹介します。 カテゴリを取得するためには、 get_the_category ファンクションを使います。 ですから、これが “ダイビング”のページであるかどうか、を知るためのコードは次のようになります:

[...]
<?php  $category = get_the_category(); if (!empty($category&#91;0&#93;)) {    echo 'piwikTracker.setCustomVariable(1, "Type", "'.$category&#91;0&#93;--->cat_name.'", "page");';
}
?>
[...]

次に、このケースではサブカテゴリーであるロケーションを取得する必要があります。 やらなければならないのは、category[0]をcategory[1]へ増やすことです。そして次の引数のためにコードを変更します。 言い換えれば、 “ロケーション”は、以下のコードによって取得できます:

[...]
<?php  $category = get_the_category(); if (!empty($category&#91;1&#93;)) {     echo 'piwikTracker.setCustomVariable(2, "Location", "'.$category&#91;1&#93;--->cat_name.'", "page");';
}
?>
[...]

以上、全部まとめると、piwikTracker.enableLinkTracking の上に書くべきコードは以下の通りです。:

[...]
<?php  $category = get_the_category(); if (!empty($category&#91;0&#93;)) {     echo 'piwikTracker.setCustomVariable(1, "Type", "'.$category&#91;0&#93;--->cat_name.'", "page");';
}
if (!empty($category[1])) {
echo 'piwikTracker.setCustomVariable(2, "Location", "'.$category[1]-&gt;cat_name.'", "page");';
}
?>
piwikTracker.trackPageView();
[...]

データの出番です

カスタム変数を設定した後は、上に見るようなテーブルを取得できます。 このデータを使えば、どのカテゴリーと、どのサブカテゴリーが最も見られているか分かります。 これによって、どのエリアがビジターに人気があり、どこでより多くの時間を費やしているか判定できます。 それだけではありません、何のコンテンツをプロモーションのために使うべきか、より良い露出を得るための特色とすべきなのはどのコンテンツか、を決定するのに役立てられます。

また、Matomo(Piwik)のカスタム変数メニューの下部に、さらにもっと詳しい内容を取得するための、プラス記号を付きのテーブルのアイコン をクリックできます。 今回のケースでは、たとえば、どのカテゴリで最も多くの時間を過ごしたか、ユーザーを惹きつけたか、ユーザーのアクションに導いたか、をみることができます。

簡単でしたね。 今度はあなたの番です。 あなたはどんなカスタム変数をトラッキングしますか? どのようにあなたがより良い洞察を得るための役に立っているでしょうか? もし将来の記事投稿のためのアイデアがありましたら、遠慮無く メール でおしらせください。