実装には、クライアント ライブラリとサンプルを使用することをおすすめします。ただし、API との統合に、サポートされていない言語の使用など、特別なニーズがある場合は、以下で説明するように直接リクエストを行うことができます。
呼び出しのスタイル
REST は、データをリクエストして変更するための便利で一貫したアプローチを提供するソフトウェア アーキテクチャのスタイルです。
REST という用語は「Representational State Transfer」の省略形です。Google API のコンテキストでは、HTTP 動詞を使用して、Google が保存しているデータ表現を取得および変更することを表しています。
RESTful システムでは、リソースはデータストアに保存されています。クライアントはサーバーに対して特定のアクション(リソースの作成、取得、更新、削除など)を実行するようリクエストを送信し、サーバーはそのアクションを実行して、レスポンスを送信します。多くの場合、レスポンスは指定されたリソースの表現形式を取ります。
Google の RESTful API では、クライアントは POST、GET、PUT、DELETE などの HTTP 動詞を使用してアクションを指定します。また、次の形式のグローバルに一意な URI でリソースを指定します。
https://www.googleapis.com/apiName/apiVersion/resourcePath?parameters
すべての API リソースは HTTP でアクセス可能な一意の URI を持っているため、REST はデータ キャッシュを有効にし、ウェブの分散インフラストラクチャで動作するように最適化されています。
HTTP 1.1 標準のドキュメントのメソッド定義をご覧ください。GET、POST、PUT、DELETE の仕様が記載されています。
AdSense Management API の REST
サポートされているオペレーションは、REST の HTTP 動詞に直接マッピングされます。
AdSense Management API の URI の形式は次のとおりです。
https://adsense.googleapis.com/v2/resourceID?parameters
ここで、resourceID は広告クライアント、広告ユニット、URL チャネル、カスタム チャネル、レポート コレクションの識別子です。parameters はクエリに適用するパラメータです。
resourceID パス拡張機能の形式を使用すると、現在操作しているリソースを特定できます。次に例を示します。
https://adsense.googleapis.com/v2/accounts/account_id/adclients https://adsense.googleapis.com/v2/accounts/account_id/adclients/adClientId https://adsense.googleapis.com/v2/accounts/account_id/adclients/adClientId/adunits https://adsense.googleapis.com/v2/accounts/account_id/adclients/adClientId/adunits/adUnitId https://adsense.googleapis.com/v2/accounts/account_id/adclients/adClientId/urlchannels ...
この API で対応している各オペレーションのすべての URI については、AdSense Management API リファレンスに要約されています。
以下に、AdSense Management API での動作を示す例をいくつか示します。
広告クライアントを一覧表示します。
GET https://adsense.googleapis.com/v2/accounts/account_id/adclients/広告クライアント ca-pub-1234567890123456 の広告ユニットを一覧表示します。
GET https://adsense.googleapis.com/v2/accounts/account_id/adclients/ca-pub-1234567890123456/adunits
データ形式
JSON(JavaScript Object Notation)は言語に依存しない一般的なデータ フォーマットであり、任意のデータ構造を単純なテキスト形式で表示します。詳しくは json.org をご覧ください。
リクエストの承認
AdSense はサービス アカウントをサポートしていません。代わりに、インストール済みアプリケーション フローを使用する必要があります。
アプリケーションから AdSense Management API に送信するリクエストには、必ず承認トークンが含まれている必要があります。このトークンは Google でアプリケーションを識別するためにも使用されます。
認証プロトコルについて
リクエストを承認するために、アプリケーションは OAuth 2.0 を使用する必要があります。これ以外の認証プロトコルには対応していません。アプリケーションで「Google でログイン」を使用している場合、承認手続きの一部が自動化されます。
OAuth 2.0 を使用したリクエストの承認
AdSense Management API へのリクエストはすべて、認証されたユーザーによって承認される必要があります。
このプロセスは、OAuth クライアント ID によって行われます。
OAuth クライアント ID を取得するまたは、認証情報ページでキーを作成することもできます。
OAuth 2.0 の承認プロセス(「フロー」)の詳細は開発するアプリケーションの種類によって若干異なりますが、次の一般的なプロセスはすべての種類のアプリケーションに当てはまります。
- アプリケーションでユーザーデータにアクセスする必要がある場合は、特定のアクセスのスコープを Google にリクエストします。
- データをリクエストするアプリケーションの承認を求める Google の同意画面がユーザーに表示されます。
- ユーザーが承認すると、有効期間の短いアクセス トークンがアプリケーションに付与されます。
- アプリケーションは、リクエストにそのアクセス トークンを付与してユーザーデータをリクエストします。
- Google がそのリクエストとトークンが有効であると判断すると、リクエストされたデータが返されます。
プロセスによっては、更新トークンを使用して新しいアクセス トークンを取得するなど、追加の手順が必要になる場合もあります。各種アプリケーションのフローについて詳しくは、Google の OAuth 2.0 ドキュメントをご覧ください。
以下は、AdSense Management API の OAuth 2.0 のスコープに関する情報です。
| 範囲 | 意味 |
|---|---|
https://www.googleapis.com/auth/adsense |
AdSense データに対する読み取り/書き込みアクセス権。 |
https://www.googleapis.com/auth/adsense.readonly |
AdSense データに対する読み取り専用アクセス権。 |
OAuth 2.0 を使用してアクセスをリクエストする場合、アプリケーションを登録したときに Google から提供された情報(クライアント ID やクライアント シークレットなど)に加えて、スコープ情報が必要になります。
ヒント: Google API クライアント ライブラリで一部の承認プロセスを処理することもできます。これらのライブラリはさまざまなプログラミング言語で用意されています。詳細については、ライブラリとサンプルのページをご覧ください。
リクエストの実行
最後の手順は、API リクエストを行うことです。詳細については、リファレンス ドキュメントをご覧ください。