先日入社したばかりの山田(仮)です。

インターネットの開発をしておりますと、2年に一度くらいGoogle APIを使って、データをむりやりなんとかしたい、という案件が出てくることがございます。

先日admobのデータをごにょごにょすることになったのですが、admobがGoogleに買収されたことによりadsenseのAPI経由でデータを取得するようになっておりました。

同じことではまっていらいらする日本に3人くらいいる方のお役に立てば幸いです。

adsenseとadmobのGoogle APIではまったポイント

大きなはまりポイントは3つです。

  1. admobの古い管理画面からダウンロードできるadmob APIは旧管理画面で設定されたデータにしか使えない
  2. サーバサイド用にkeyファイルを作成できるがadsense APIでは使えない
  3. oauthのコールバック作るのが面倒

1.admobのAPIデータ取得はGoogle adsense API に移行

admobの旧管理画面にあるAPIはトラップですのでスルーしてください。
私、実装したところで気づきましたが、新管理画面のデータはadsense API で取得します。

まあちゃんとドキュメントに書いてあるので、ちゃんと読めよということでした。

https://developers.google.com/mobile-ads-sdk/docs/admob/reporting

2.adsenseのAPIは認証キーファイルで認証できない

https://groups.google.com/forum/#!topic/adsense-api/j-gQsp_fE94

ぐぐってたら、analytics用のサンプルをみつけ、大体同じだろうと思っていたですが
adsenseのAPIはなぜかoauth認証以外許可されていません。

https://developers.google.com/adsense/management/standard_params?hl=ja

3.callback用のファイルをおくのが面倒

通常のwebサイトなどですと、ログイン認証などでcallbackで戻る感じの実装というのは
大変便利なんですが、サーバサイドで完結する場合だと非常にうっとうしいです。

ので、はじめからtokenを作成しておきます。

続きを読む

探すのが大変だった公式マニュアル
https://developers.google.com/adsense/tutorials/oauth-generic?hl=ja

実際の手順

・デベロッパーコンソールでプロジェクト作成

https://console.developers.google.com

英語を読むとじんましんが出る方はaccountからコンソールを日本語化できます。

Google_Developers_Console

・APIと認証>API からadsense APIを許可

Google_Developers_Console2

・APIと認証>認証情報 からweb用のクライアントIDを作ります

デバッグ用のcode.google.comと後述のplaygroundのリダイレクトURIを追加

Google_Developers_Console3

・マニュアルにそってプレイグラウンドからtokenを発行する

https://developers.google.com/adsense/tutorials/oauth-generic?hl=ja

OAuth_2_0_Playground発行されたtokenはjsonごとコピっておく

・php用のclientライブラリを環境にあわせて配置

https://developers.google.com/api-client-library/php/

これで下準備は完了です。

実際のコード

上記で完了です。

項目などはAPIドキュメントで項目を確認してdimension,metricの部分で指定できます。

https://developers.google.com/adsense/management/v1.4/reference/accounts/reports/generate?hl=ja

クライアントIDの作成過程でdebug用の指定をしていると、この画面で実際のデータを確認できるので便利です。

googleのAPIは便利なんですがドキュメントが読みづらいですね。

あわせて読みたい記事