AdSense Management API を使って PHP で収益レポートのデータを取得する方法(事前準備編)

AdSense Management API

Google が公開している AdSense Management API を使用すると、収益レポートのデータ取得をプログラムから自動化でき、収益確認のために AdSense 管理画面やアプリを都度確認する必要がなくなります。

実際に AdSense Management API を使用して PHP で収益レポートのデータを取得することができたため、本エントリでは API 使用のための設定・認証情報の取得方法をメモします。

AdSense Management API の使用開始

AdSense Management API にはスタートガイドがありますが、この情報だけでは API の使用を開始するのは非常に困難です。

その理由は下記の 4 の手順「新しく作成したプロジェクトで [AdSense Management API] の下の [有効にする] ボタンをクリックします。」がどこから実施できるのか非常にわかりづらいためです。

1.API コンソールに移動します。
2.Google アカウントにログインするか、アカウントを作成します。
3.新規プロジェクトを作成します。
4.新しく作成したプロジェクトで [AdSense Management API] の下の [有効にする] ボタンをクリックします。

本エントリでは「新規プロジェクトを作成します。」でプロジェクトの作成までは完了した前提で、API を使用するための以降の設定・認証情報の取得のための手順を記載します。

プロジェクトで AdSense Management API を有効化

API コンソールで、新規作成したプロジェクトを選択します。
AdSense Management API プロジェクトを選択

左上の三本線のボタン(ハンバーガーアイコン)を選択すると表示されるメニューから、「APIとサービス」を選択します。
AdSense Management API APIとサービス

「APIとサービスを有効化」を選択します。
AdSense Management API APIとサービスを有効化

API検索用の画面が表示されます。検索用のボックスに「AdSense」と入力すると検索結果に「AdSense Management API」が表示されるので、これを選択します。
AdSense Management API を選択

「AdSense Management API」を「有効にする」を選択します。
AdSense Management API 有効にする

これでプロジェクトで「AdSense Management API」が有効になりました。

認証情報の作成

次に「AdSense Management API」を使用するための認証情報を作成します。

「認証情報を作成」を選択します。
AdSense Management API 認証情報を作成

AdSense Management API を使うのに必要な認証情報の種類

「プロジェクトへの認証情報の追加」ウィザードになりますが、このウィザードは使わず「クライアントID」を選択します。
AdSense Management API クライアントID

この理由は後に PHP から認証情報を使用する際に APIキーやサービスアカウントを使用した場合、認証情報を正しく指定しているはずなのに以下のエラーとなったためです。

  • APIキーを使用するとInvalid Credentialsの 401 エラーとなる
  • サービスアカウントを使用するとUser does not have an AdSense account.の 403 エラーとなる

APIキーについては明示的に使えないという記述は見つけられませんでしたが、サービスアカウントについてはスタートガイドに下記の記載があることから、AdSense Management API ではサポートされていないものと考えられます。

注: 保護されたデータにアクセスするときにはサービス アカウントはサポートされません。

このため「クライアントID」(OAuth認証用)を選択します。

同意画面の設定

「クライアントID」を選択すると「OAuthクライアントIDの作成」画面に遷移します。「同意画面を設定」を選択します。
AdSense Management API 同意画面を設定

「アプリケーション名」に任意のアプリケーション名を入力します。このアプリケーション名はAdSense公式であるような名称は使用できません。「MyAdSenseApp」は使用可能でした。次に「スコープを追加」を選択します。
AdSense Management API スコープを追加

スコープで「AdSense Management API」を選択し、「追加」します。その後、「保存」します。
AdSense Management API スコープを追加

認証画面の作成後に元の画面に戻れなくなった場合、「https://console.developers.google.com/apis/credentials/oauthclient」で戻れます。

OAuthクライアントIDの作成

今回は PHP からリクエストするため、「アプリケーションの種類」では「ウェブアプリケーション」を選択します。「承認済みのリダイレクトURI」には、のちに API 使用前に OAuth 認証した後に戻ってくる URI を入力します。ここは必須ですが、localhost などの公開されていないアドレスでも設定・動作できます。設定した後、「作成」を選択します。
AdSense Management API OAuthクライアントIDの作成

OAuth クライアントIDが作成されます。クライアントIDとクライアントシークレットが表示されますが、後述の json ファイルのほうが使い勝手がいいのでここでは情報をメモせず OK で閉じます。
AdSense Management API OAuthクライアントの作成完了

作成されたクライアントIDの右側の「↓」アイコンを選択すると、クライアントIDやクライアントシークレットが記載された認証情報の json ファイルがダウンロードできるので保存します。
AdSense Management API OAuthクライアントID認証情報jsonのダウンロード

これで AdSense Management API を使うための設定・認証情報の用意が完了しました。

おわりに

用意した認証情報を使用して、「AdSense Management API を使って PHP で収益レポートのデータを取得する方法(データ取得編)」に続きます。