PowerCMS X のアクセス解析機能 AccessAnalytics を設定する
AccessAnalytics はお手軽にアクセス解析ができます。とはいえ、GAと同等の機能は当然無いですが、何時何分に、誰が、どのモデルに、どのページから、どのページにアクセスしたか、という記録をDBに保存できます。
導入手順
公式ドキュメントの通りに設定していけば迷うことは無いです。
pluginsディレクトリに AccessAnalyticsディレクトリを設置します。
システムのプラグインの管理画面で、AccessAnalyticsにチェックを入れて有効化します。
スキーマ管理画面から「activity」モデルと「searchword」モデルを選択してアップグレードします。
プラグイン設定
アプリのURL : pt-accessanalytics.phpのURLを入力します。私は以下の文字を入力しました。ルート相対パスでも動作します。
/PowerCMSX/plugins/AccessAnalytics/AccessAnalytics.php
集計期間 (日)はデフォルトが30日ですので、最初は長めにしても良いと思います。運用が始まるとアクセス数が多い場合にデータの肥大化になる可能性があるので、30日程度がよいのかもです。
ビューに以下のコードを貼り付けます。これは計測タグです。
<mt:accesstracking>
アクセス解析したいモデルだけに貼るとよいですね。計測タグを仕掛けたページにアクセスしてDBに情報を貯めておきましょう。
メニューに「アクティビティ」がありますので、アクセス解析のグラフとリストが確認できます。
最近見たページ
アマゾンなどで「最近見たページ」というコンテンツがあります。その実装方法です。
モデル「activity」の設定画面で「テンプレート・タグ」にチェックを入れて保存します。
ビューに以下のテストコードを貼ります。
URLマップは、アーカイブ種別「インデックス」、ファイル出力「ダイナミック」がよいです。
<mt:Activities>
<pre>
URL <mt:Activityurl>
Query String<mt:Activityquerystring>
Referrer<mt:Activityreferrer>
Class <mt:Activityclass>
Model <mt:Activitymodel>
Object ID <mt:Activityobjectid>
Date Created <mt:Activitycreatedon>
Member <mt:Activitymemberid>
</pre>
<hr>
</mt:Activities>
ビューから出力したページにアクセスすると、アクセス解析の情報が表示されると思います。
会員機能を利用する場合は、Member の ID が取得できているので良い感じにできると思います。以下のコードでフィルタができるはずです。
<mt:membercontext><mt:memberid setvar="menber_id"></mt:membercontext>
My Member ID <mt:Var name="menber_id"><br><br>
<mt:Activities member_id="$menber_id">
<pre>
URL <mt:ActivityUrl>
Query String<mt:Activityquerystring>
Referrer<mt:Activityreferrer>
Class <mt:Activityclass>
Model <mt:Activitymodel>
Object ID <mt:Activityobjectid>
Date Created <mt:Activitycreatedon>
Member <mt:Activitymemberid>
</pre>
<hr>
</mt:Activities>
アクセスランキング
ビューのサンプルコードです。ランキングが表示されるはずです。
<mt:rankedobjects>
<pre>
object_label <mt:Var name="object_label">
object_url <mt:Var name="object_url">
object_count <mt:Var name="object_count">
object_model <mt:Var name="object_model">
object_table <mt:Var name="object_table">
</pre>
<hr>
</mt:rankedobjects>
とても簡単ですね。動作も軽いし良い機能です。
検索ワードランキング
あらかじめ検索結果のビューに計測タグを仕込んでおきましょう。
プラグイン設定で「クエリ・パラメタ (カンマ区切り)」の欄は「query」としていますので、検索結果ページのURLパラメーターは ?query=hoge という前提になります。
ビューのサンプルコードです。検索ワードのランキングが表示されるはずです。
<mt:rankedkeywords>
<pre>
object_keyword <mt:Var name="object_keyword">
object_count <mt:Var name="object_count">
</pre>
<hr>
</mt:rankedkeywords>
注意点
ユーザーがブラウザ画面を何回もリロードすると、その回数がそのままDBに保存されます。そのため、仕組みを知っていればアクセスランキングを意図的に上位表示させることができてしまいます。PowerCMS X はそこまでケアしていないと思うので、計測コードが実行されないように自前で対策する必要があります。自前で対策できない場合は PowerCMS X サポートにカスタマイズの相談をするのがよいです。
もし製品チームの方がこの記事を読んでいるなら、タグ属性「unique」を作ってほしいです。その属性がある場合は、URL、作成日、IP が同一のオブジェクトはユニークにするという内容です。これを実現するためには、DB書き込み前に同じオブジェクトがいるか検索してヒットした場合は、DB保存時に新カラム「重複」を作っておいて、そこに「1」を付ける、そして、「unique」を付けた場合は「重複」「1」を除外してカウントさせる、という内容です。
AccessAnalytics がとても良い機能ですので、これをクリアできれば活用されるケースは多いと思います。