APIでサイト内のアクセスランキングを実装する方法をご紹介しましたが、その実装を発展させてCMSと連携する方法をご紹介します。Analyticsのカスタムディメンションに保存していましたが、その方法ではページの公開後にタイトルやURLなどを変更すると別ページのアクセスとしてカウントされたランキングとなる問題がありました(APIのdata_ga->get()メソッドで複数のカスタムディメンションを指定した際にand検索となっているため)。今回の実装方法ではその問題を解消し、さらにより多くの情報を取得可能になります。CMSと連携する仕組み今回のCMSと連携する方法では、CMSでページを生成した際にCMSが持つページ固有のIDをカスタムディメンションに保存します。することでカスタムディメンションにタイトルなどの情報を保存する必要がなく、タイトルなどの情報を取り出す際はそのIDを利用してPHPから動的にCMSに保存した情報を取り出すことで実現します。ページIDはユニークな値であり、作成後に変更されることがありませんのでページ公開後にタイトルを変更した場合でもランキングに影響が出ず、さらに最新のタイトルを反映することが可能になります。Typeの記事として作成したページの情報を取り出す方法をご紹介します。引数の「$entry_id」はカスタムディメンションに保存したIDを取り出して渡します。Typeの記事からタイトル、公開ステータス、公開日時、パーマリンクを取得しています。$entry_obj_value;}カスタムフィールドの情報を取り出すカスタムフィールドの情報を取り出す場合は$entry->{'entry_field.カスタムフィールドのベースネーム'}で取り出すことが可能です。Typeの記事から情報を取得してランキングのJSONを返すPHPを実装します。Typeから記事の情報を動的に取得するように変更したことで記事ステータスが公開中のもののみ表示することが可能です。これによりランキング入りしたページが削除や非公開となった場合にランキングに表示しない(表示が残る場合はリンク切れとなります)ことが出来ます。'パラメータが指定されていません。start/endを指定してください。'パラメータの指定が正しくありません。start/endをYYYY-mm-ddの形式で指定してください。'指定期間内のランキングがありません。'指定期間内のランキングがありません。Typeの記事の情報を取り出す方法をご紹介しましたが、DBから情報を取得する手段があれば他CMSにも応用可能です。ランキングに記事のサムネイルや概要文を表示する場合など、より多くの情報を取り出すことが出来ますのでCMSを利用している場合には前回ご紹介した方法よりも良いと言えるでしょう。