はじめに
過去いくつかGoogleAPIを利用して情報を取得してきました。
今回はGoogleAdSense編になります。
以下のURLにて表示される
https://www.google.com/adsense/new/u/0/<your-id>/payments
以下の画面の
- 現時点の収益
- 前回支払い日
- 前回支払い収益
をcurlコマンドで取得したいと思います。
curlコマンドですので、この部分の情報収集を自動化することも可能です。
コマンド実行環境
$ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
情報取得の流れ
最終的に発行にコマンドに必要な情報は以下の二つです。
- アカウントID
- アクセストークン
それらがあれば以下コマンドで情報取得できます。
curl 'https://www.googleapis.com/adsense/v1.4/accounts/<account-id>/payments' --header 'Authorization: Bearer <access-token>' --header 'Accept: application/json' --compressed
アカウントID
アカウントIDは支払い情報を取得するアカウントで、GoogleAdSenseのコードの中等に記載されている
pub-XXXXXXXXXXXXXXXX
という文字列です。「pub-」部分も含めてアカウントIDです。
ちなみにGoogleAdSenseをブラウザ上で見る時にもURLの中に格納されています。
https://www.google.com/adsense/new/u/0/<この部分>/home
アクセストークン
こちらは面倒です。
まずは以下のようにGoogleAPIを有効化します。Googleアカウントに紐づいている「Google AdSense Management API」です。
その後、認証情報としてclient_id.jsonというファイルを発行します。このあたりはGoogleAnalyticsと同じで一連の手順です。
ファイルの中には以下のように情報が格納されています。
{"web":{"client_id":"XX-XX.apps.googleusercontent.com","project_id":"YY","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"ZZ","redirect_uris":["http://localhost"],"javascript_origins":["http://localhost"]}}
上の情報のclient_idを用いて以下のURLをブラウザに打ち込み、認証作業を進めます。
https://accounts.google.com/o/oauth2/auth ?client_id=XX.apps.googleusercontent.com &scope=https://www.googleapis.com/auth/adsense &response_type=code &approval_prompt=force &access_type=offline
そうすると途中でブラウザ上でエラーとなりますがURLが遷移しているはずです。以下のようなURLの「code」部分の情報を抜き出しておきます。
http://localhost/?code=AA&scope=https://www.googleapis.com/auth/adsense
ここまでくれば以下をcurlコマンドで実行すると
curl -d client_id=XX.apps.googleusercontent.com -d client_secret=ZZ -d redirect_uri=http://localhost -d grant_type=authorization_code -d code=AA https://accounts.google.com/o/oauth2/token
以下の返り値が取得できます。
{ "access_token": "BB", "expires_in": 3600, "refresh_token": "CC", "scope": "https://www.googleapis.com/auth/adsense", "token_type": "Bearer" }
アクセストークンが取得できました。
実行結果
冒頭に記載した
curl 'https://www.googleapis.com/adsense/v1.4/accounts/<account-id>/payments' --header 'Authorization: Bearer <access-token>' --header 'Accept: application/json' --compressed
を発行すると以下が返り値として帰ってきます。
{ "kind": "adsense#payments", "items": [ { "kind": "adsense#payment", "id": "unpaid", "paymentAmount": "XX", "paymentAmountCurrencyCode": "JPY" }, { "kind": "adsense#payment", "id": "2019-XX-XX", "paymentDate": "2019-XX-XX", "paymentAmount": "XX", "paymentAmountCurrencyCode": "JPY" } ] }
paymentAmountには現在の未払いの収益、paymentDateは前回の支払い日、paymentAmountは前回の支払額です。
冒頭の画面上の情報が取得できました。
終わりに
今回は一番シンプルな収益を取得しました。ここは前日までの収益が表示されるので、リアルタイム性はない箇所ですが、こちらをベースに他の情報の取得を行えば「どのタイミングでよく収益が発生するのか?」といった値の取得も可能になります。
また機会があれば上記についても実装してみたいと思います。
以上、ご参考になれば幸いです。