毎月投稿している記事に「Access Report」というものがあるんですが、この記事を生成するに当たっては、

  • 前月の「ページビュー」「訪問者」を集計して取得しDBに保存
  • 前月の「アクセスTOP10」などのデータを集計して記事にしてMovableTypeに下書き記事として投稿

という2つのプログラムが動いています。今まで特に問題なく動いていたのですが、今月から突然動かなくなってしまいました。調べてみると、今までの僕のプログラムはGoogle APIの古いバージョンで動いていたようで、廃止予告が出てからいつ止まってもおかしくない状況で、それが5月下旬だったということのようです。全然しらなんだ。


というわけでこれを現行の仕様に合わせて改修する必要があります。

最初は、利用しているライブ来で対応してくれていないかなと思ったのですが、どうやら対応してくれていない様子。対応のためにはGoogleの公式ライブラリを利用するのが一番簡単そうだったので、その通りにしてみました。

詳しい設定方法は、こちらの記事を参考にしました。

avantの忘備録: Google Analytics API を v2.3 から v3.0 に変更
avantの忘備録: Google Analytics API v3.0 からPHPでアクセス数を取得する

OAuthの設定、ライブラリのダウンロード、導入などが必要です。
ライブラリはこちらから。

google/google-api-php-client · GitHub

後はそれに従って設定をすればOKです。
プログラムの流れは、こちらに従えばわかりやすい。

Hello Analytics API: PHP quickstart for service accounts | Analytics Core Reporting API | Google Developers

例えばこんな感じ。




特定のサイトの前月のページビューが取得出来ます。



「User does not have any Google Analytics Account」エラーが出ているときは

Google Analyticsの方で、サービスアカウントに読み出し許可が与えられていません。
こちらを参考に設定してください。

GoogleAnalytics - Google Analytics APIのエラー「User does not have any Google Analytics Account」 - Qiita


以上、簡単ですがまとめでした。