MovableTypeに人気記事を表示する

MovableType6に人気記事ランキングをつける。プラグイン「MoreAnalytics」

最終更新日:2016年10月25日

MovableTypeはブログCMSベースなのに人気記事ランキングがない。。
検索しても、古いプラグインは公開停止されていて、いいものがない。。

このサイトにはあまり時間をかけたくないので、サクッと適当にやりたかったのですが、少し難しいようです。 で、検索していてみつけたのが、現在鋭意開発中らしい 「MoreAnalytics」 時間がなくドキュメント等読み込んでいないので、適当で無理矢理なコードで汚いですが、一応できました。

一応、備忘録として残しておきます。 ※開発中のプラグインのため、今後能力も上がり日本語のドキュメントも出てくることと思います。 あるいは、公開が中止されるかもしれません。

手順

Analitycs連携

MobavleType6の機能を使って、MovableTypeとGoogleAnalyticsを連携します。
方法は公式ドキュメントでご確認ください。

プラグインインストール

GitHubからプラグインを落とす。

mt-more-analytics

中にある「mt-static」と「plugins」配下をMTインストールディレクトリにアップロードして、MT管理画面にアクセス。
通常のプラグインの通りにインストールされます。

プラグインの設定

インストールが終了すると、管理画面の左カラムに「Google Analitycs」というメニューが出来ています。
この中の「集計期間」をクリック
「集計期間の作成」で、どの期間のGA(Google Analitycs)データを使用するのか設定します。
複数設定できるので、「過去1週間の人気記事」「昨日の人気記事」「1年前の人気記事」などを複数つくれます。
あるいは、ひとつ作っておいて、後日集計期間を変更して再構築すれば、集計期間を簡単に変えることができます。
ここで設定した名前は後で使います。

テンプレート

後はテンプレートタグを使用して、欲しい情報を出していきます。
詳しくは、公式ドキュメント(上記GitHub、またはプラグイン内のREADME.md)や、このプラグインの講演資料をご覧ください。

備忘としてコードを残しておきます。


<mt:GAReport period="(上記の集計期間の作成で設定した名前)"
max_results="(ループ回数)"
metrics="pageviews"
dimensions="pageTitle,pagePath,pagePathLevel1,pagePathLevel2"
sort="-pageviews" filters="ga:pagePathLevel1!=/(MTディレクトリ)/;ga:pagePathLevel2=~\.html$;ga:pagePathLevel2!~^/mt-preview-|^/mt-comments|^/mt-search\.cgi|\?|#">
  <mt:GAReportHeader>
    <ul class="list-ranking">
  </mt:GAReportHeader>
      <li>
        <a href="<$mt:GAValue name="pagePath"$>">
          <$mt:GAValue name="pageTitle"$>
        </a>
      </li>
  <mt:GAReportFooter>
    </ul>
  </mt:GAReportFooter>
</mt:GAReport>

GAReportタグの「dimensions」属性に欲しい情報を列挙しています。
管理画面左カラムの「Google Analitycs」内「APIプレイグラウンド」画面で、どのような内容が取れるのかとかを見たり、このコード自体を生成できます。
プラグインファイル内の「/misc/dimensions-and-metrics/」内には、使えるdimensionsとmetricsが列挙されています。

もし、特定のブログだけの人気ランキングがほしければ、「filters」属性に

ga:pagePathLevel1==/(ブログ名)/
を追加します。
※このサイトは第1階層がブログ名となっているので(EX:https://webzin.jp/(ブログ名)/)。
上記コードの「filters」属性の中身も、このサイト専用になっています。
構造が違うサイトでも、filtersを適切に設定することで実現できると思います。

filters等GAReportのテストは、GoolgeAnalyticsのQuery Explorerが便利です(要ログイン)。
filtersを試すときには、filters リファレンスを参照すれば正規表現等も使えることがわかります。

本当はentryだけを対象とするもっと丁寧な方法がありそうな気がするのですが、filtersで代用しました。。

以上、備忘でした。
管理画面にGAの情報が出たりとても便利なプラグインなので、時間があるときにもっと読み込んでみたいと思います。
よいプラグインをありがとうございます。今後の進化に期待します!