:: WordPressのアクセスランキングをGoogle Analytics APIで実装する方法

/ , / WEB制作・開発

このサイトのアクセスランキングをAnalyticsデータを参照して実装したので紹介します。

アクセスランキングはプラグインを使うと簡単に実装出来るのですが、あまりプラグインに依存したくなかったのとプラグインをインストールすることによりデータベースのテーブルが作成されるのがあまり良い方法ではないと思ったので、GoogleのAnalytics APIで実装しました。

参考までにプラグインで対応する場合は、以下を使うことで実現出来ます。

WordPress Popular PostsやWP-PostViewsを使うことで簡単に実装出来ますが、カスタマイズが難しかったりと色々とやっかいな問題が発生しそうなのでGoogle AnalyticsのAPIを使うことをお勧めします。

Google Analytics APIの参考になるドキュメント↓
https://developers.google.com/analytics/

   

 

目次

1) 実現したいこと
2) Google API Managerで登録作業
3) Google Analyticsにユーザー登録
4) ライブラリを使ってAnalyticsからデータを取得
5) functions.phpファイルで表示に必要な関数を作成
6) テンプレートで呼び出す

 

 

実現したいこと

前日から30日以内の合計PV数が多い順5件の情報を取得して、「Featured Image」、「タイトル」、「投稿日付」、「記事リンク」を取得する。

おおまかな流れは、

1) AnalyticsからURLとページビュー数を多い順に○○件取得します。(ここでは30件取得します。)
2) Analyticsから取得したURLを元に、Wordpressの記事情報を取得してセットします。
3) 2でセットした情報をテンプレートでループして表示します。

※記事が持っている情報(投稿者やコメントや本文など)は全て取得できます。

 

以下が完成イメージです。

完成イメージ | wordpress, アクセスランキング, Google Analytics, API

 

 

Google API Managerで登録作業

Google API Managaerへアクセスして、Credentialsの作成と秘密鍵(Json形式)を取得します。

Google API Managaer
https://console.developers.google.com/

以前の記事で登録方法を紹介しているので参考にしてみてください。
:: Google APIでアクセス実績を取得し、crontabでcsvファイルを自動生成する方法 php

Google API Managaerの画面が以前と変わっている部分がありますが、基本的には変わりはありません。

プロジェクト作成

以下からプロジェクトを作成してください。すでにプロジェクトを持っていればそちらを使ってもらってOKです。

プロジェクト作成 | wordpress, アクセスランキング, Google Analytics, API

 

Credentialsの作成

Create credentialsから Service account keyを作成します。

Credentialsの作成 | wordpress, アクセスランキング, Google Analytics, API

 

Service account Keyを作成

アカウント名は任意の名前でOKです。秘密鍵のタイプはJSONを選んでください。「作成」ボタンを押すと、ファイルがダウンロードされます。これは後で使用します。

Service account keyの作成 | wordpress, アクセスランキング, Google Analytics, API

 

最後に、以下の2つをメモしておきます

  • Client ID:API Manager –> Credentials –> から確認できます。(形式:***********-********************************.apps.googleusercontent.com)
  • Email address:Permissions –> Service accountsから確認できます。(形式:service-account@grooving-earth-****.iam.gserviceaccount.com)

 

Google Developers Consoleの設定は以上です。

 

もしつまずいたらGoogleのドキュメントも参考にしてみてください。
https://developers.google.com/analytics/devguides/reporting/core/v3/quickstart/service-php

 

 

Google Analyticsにユーザー登録

Google Analytics側の管理画面で先ほど作成したアカウントからのアクセスを許可します。

Google Analyticsにユーザー登録 | wordpress, アクセスランキング, Google Analytics, API

 

アカウントのアクセス許可を「表示と分析」とし、 

Google Analyticsにユーザー登録 | wordpress, アクセスランキング, Google Analytics, API

ビューID | wordpress, アクセスランキング, Google Analytics, API

以上で、Google Analyticsの設定は終了です。

 

 

ライブラリを使ってAnalyticsからデータを取得

2017年1月22日時点では、Google クライアント ライブラリ」の最新版はv2.1.1ですが、今回はv2.0.0を使用します。

以下のURLよりGoogleが提供している「Google クライアント ライブラリ」をダウンロードします。
https://github.com/google/google-api-php-client/releases/download/v2.0.0/google-api-php-client-2.0.0.zip

Google クライアント ライブラリ」のリリースヒストリーは以下から確認できます。
https://github.com/google/google-api-php-client/releases

ダウンロードしたら、wordpressのテーマフォルダに「modules」フォルダを作成、さらにその中に「gapi」フォルダを作成しました。

以下のようなディレクトリになるかと思います。

wp-content/themes/テーマ名/modules/gapi/ここにダウンロードしたファイルを格納します。

ダウンロードしたファイルを格納したフォルダは以下のようになります。

フォルダ構成 | wordpress, アクセスランキング, Google Analytics, API

composer経由でダウンロードしていない場合は、composer.jsonとcomposer.lockはありません。
get-access-ranking.phpの中身は以下になります。

$KEY_FILE_LOCATION = __DIR__ . ‘/**************.json’;はGoogle API Managerで取得したJSONファイルを読み込みます。

function getMonthlyRankingの$results変数に取得するデータや期間を指定しています。

試しにvar_dumpしてデータが正しく取れているか確認してみてください。
$ranking変数をvar_dumpすれば取得できます。

 

 

functions.phpファイルで表示に必要な関数を作成

wordpressのfunctions.php内に以下のコードを貼り付けます。
やっていることは、

  • get-access-ranking.phpを呼び出す
  • $resultsを$gapiDataに格納
  • post_typeがpostで、且つ公開済みの記事を対象に5件の情報をforeach

*if( $i == 5) break;の数字を変えると取得する件数を変えることが出来ます。

 

 

テンプレートで呼び出す

最後に、returnしていた$ranking_postsをテンプレート側で呼び込みます。
以下のソースコードです。

  • $post_id = $v->ID; <- 記事IDを取得
  • $post_url = get_permalink($post_id); <- 記事IDからページURLを取得
  • $post_title = $v->post_title; <- 記事タイトルを取得

以上で無事にGoogle Analyticsの数字を元にしたランキングを取得出来ました。
お疲れ様でした。

 

SNS SHARE

RELATED POSTS

LEAVE A REPLY