【PHP】Google Analytics Reporting APIの始め方

数年前にアナリティクスのデータ(csv)を用いて、エクセルで諸々集計して、レポートを作るツールを作ったことがあります。

ですが、エクセルで対応したこともあり、現在はツールを利用されている方の環境に依存してしまっている状況です…。そこで今回「Google Analytics Reporting API」を使って改修してみることにしました。

PHPでデータを取得して、レポートを作成できるようにしようと思っています。そうすれば、誰でも作業できる状況になりますし、アナリティクスのデータをダウンロードする手間も省けます。

ということで、それに際して「Google Analytics Reporting API」が使えるようになるまで(PHPでデータが読み込めるまで)をメモしておきたいと思います。

スポンサーリンク

1.Googleにログイン

googleにログインします。

引用:google

2.「Google Cloud Platform」を開いて、プロジェクトの選択を開く

ログインしたら、「Google Cloud Platform」のダッシュボードを開きます。

そして、ページ上部の「Google Cloud Platform」と検索窓の間をクリックします(※1つもプロジェクトが無い場合は、「プロジェクトの選択」と書かれているかと思います)。

引用:Google Cloud Platform

3.新しいプロジェクト

ポップアップ画面が開くので、「新しいプロジェクト」をクリックします。

引用:Google Cloud Platform

プロジェクト名を入れて、「作成」をクリックします。

引用:Google Cloud Platform

これで新しいプロジェクトが作成できました。

作成したプロジェクトが選択されているかチェック

下記のところに作成したプロジェクト名が表示されていればOKです。

引用:Google Cloud Platform

4.「Google Analytics Reporting API」を探す

ページ上部の検索窓に「Google Analytics Reporting API」と入力すると、該当するAPIが表示されるのでクリックします。

引用:Google Cloud Platform

5.APIを有効にする

有効にする」をクリックして、「Google Analytics Reporting API」を有効にします。

引用:Google Cloud Platform

6.認証情報>サービスアカウント作成

下記画面が開かれたら「認証情報」をクリックします。

引用:Google Cloud Platform

下記画面が開かれたら「認証情報を作成」をクリックし、「サービスアカウント」をクリックします。

引用:Google Cloud Platform

下記画面が開かれたら「サービスアカウント名」「サービスアカウントID」を入力し「作成して続行」をクリックします。

引用:Google Cloud Platform

次に「ロールを選択」で「閲覧者」を選択し、③の「完了」をクリックします。

引用:Google Cloud Platform

サービスアカウントが作成できると、一覧に表示されるので、「メールアドレス」をコピーして置いておきます。※後で使用します

引用:Google Cloud Platform

7.秘密鍵を作る

「6.認証情報>サービスアカウント作成」で作成した「サービスアカウント」をクリックします。

引用:Google Cloud Platform

下記画面が開かれたら「キー」をクリックします。

引用:Google Cloud Platform

下記画面が開かれたら「鍵を追加」をクリックします。

引用:Google Cloud Platform

新しい下記を作成」をクリックします。

引用:Google Cloud Platform

下記画面が開かれたら「JSON」を選択し、「作成」をクリックします。

引用:Google Cloud Platform

下記画面が開かれたら「ファイルを保存する」を選択し、「OK」をクリックします。(※ブラウザによって多少異なりますが、ファイルを保存できればOKです

引用:firefox

下記画面が開かれたら「閉じる」をクリックしたら秘密鍵の作成完了です。

引用:Google Cloud Platform

8.秘密鍵ファイルをAPIを使いたいサーバにアップ

「7.秘密鍵を作る」で取得した秘密鍵のファイルを(何となく)リネイムして、このAPIを使うサーバにアップロードしました。(※僕の場合はベーシック認証を掛けているので、PHPファイルと同じ階層に入れました

ちなみに、ファイル数が多いのでアップロードに時間が掛かります。

引用:filezilla

9.アナリティクスにユーザーを追加

アナリティクスを開きます。情報を取得したいビューを選択してください。

そうしたら、「管理」をクリックします。

引用:Analytics

アカウントのアクセス管理」をクリックします。

引用:Analytics

右上の「」をクリックします。

引用:Analytics

右上の「ユーザーを追加」をクリックします。

引用:Analytics

先ほど「6.認証情報>サービスアカウント作成」でコピーしておいた「メールアドレス」を入力し、「アナリスト」を選択し、「追加」をクリックします。

引用:Analytics

これで、ユーザー追加は完了です。

10.ビューIDの確認

引き続きアナリティクスの「管理」から、次は「ビューの設定」をクリックします。

引用:Analytics

ビューID」をコピーしてメモしておきます。※後で使用します

引用:Analytics

11.ライブラリを取得

下記ページにアクセスします。
https://github.com/googleapis/google-api-php-client/releases

引用:Releases · googleapis/google-api-php-client · GitHub

APIを使う環境のzipファイルをダウンロードし、解凍します。そして、それをそのまま、APIを使用するphpファイルと同じ階層にアップロードします。

引用:filezilla

これで一通り準備は整いました。

12.phpについて

今回取得した情報を実際に使う箇所をピックアップして書いています。

その他の処理に関しては、これからレポートづくりを進める上で勉強して、それをまとめられそうであれば、別途記事にしたいと思いますm(__)m

ライブラリを使う箇所

「APIを使うphpファイル」の最初で、「11.ライブラリを取得」で取得したライブラリを読み込みます。

<?php 
// Google API クライアントライブラリの読み込み
require_once __DIR__ .'/google-api-php-client--PHP7.4/vendor/autoload.php';
?>

鍵ファイルを使う箇所

認証処理で鍵ファイルを指定します。

// 認証処理
$client = new Google_Client();
$client->setAuthConfig(__DIR_.’/sample.json’);

ビューIDを使う箇所

リクエストを作成する際にビューIDを指定します。

// リクエストの作成
$request = new Google_Service_AnalyticsReporting_ReportRequest();
$request->setViewId('00000000');

アナリティクスのデータを取得できました

一応データの取得には成功しました。ご報告までに。

引用:chrome

まとめ

意外とここまででも時間がそれなりに掛かってしまいました。初めてでしたので当たり前ですが、1か所少しだけハマった箇所がありました。

「9.アナリティクスにユーザーを追加」で「認証情報>サービスアカウント作成」で作成したサービスアカウントのメールアドレスを指定するとは思っておらず、関係ないメールアドレスを設定してしまい、下記のようなエラーになっていました。

引用:apiエラー(Google Cloud Platform)

 

User does not have sufficient permissions for this profile

引用:Google Analytics Reporting APIのエラー

ただ、エラー内容を読んでみると上記のように「ユーザーには権限がない」といった内容でしたので、アナリティクスに追加したアカウントが微妙なのかなーと思い、運よく解決できました…。

もし、同じようなエラーが出ている方は上記「9.アナリティクスにユーザーを追加」をチェックしてみてください!

それでは、最後までお読みいただきありがとうございました!

スポンサーリンク