直接リクエストを行う

実装にはクライアント ライブラリとサンプルを使用することをおすすめします。ただし、サポートされていない言語を使用するなど、API との統合で特別なニーズがある場合は、以下で説明するように直接リクエストを行うことができます。

通話スタイル

REST は、データをリクエストして変更するための便利で一貫したアプローチを提供するソフトウェア アーキテクチャのスタイルです。

REST という用語は「Representational State Transfer」の省略形です。Google API のコンテキストでは、HTTP 動詞を使用して、Google が保存しているデータ表現を取得および変更することを表しています。

RESTful システムでは、リソースはデータストアに保存されており、クライアントはサーバーが特定のアクション(リソースの作成、取得、更新、削除など)を実行するようにリクエストを送信します。サーバーはそのアクションを実行し、多くの場合、指定されたリソースの表現形式でレスポンスを送信します。

Google の RESTful API では、クライアントは POSTGETPUTDELETE などの HTTP 動詞を使用してアクションを指定します。次の形式のグローバルに一意な URI でリソースを指定します。

https://www.googleapis.com/apiName/apiVersion/resourcePath?parameters

すべての API リソースは HTTP でアクセス可能な一意の URI を持っているため、REST はデータ キャッシュを有効にし、ウェブの分散インフラストラクチャで動作するように最適化されています。

HTTP 1.1 標準のドキュメントのメソッド定義をご覧ください。GETPOSTPUTDELETE の仕様が記載されています。

AdSense Management API の REST

AdSense Management API のオペレーションで説明しているように、サポートされているオペレーションは 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 の承認プロセス(「フロー」)の詳細は開発するアプリケーションの種類によって若干異なりますが、次の一般的なプロセスはすべての種類のアプリケーションに当てはまります。

  1. アプリケーションでユーザーデータにアクセスする必要がある場合は、特定のアクセスのスコープを Google にリクエストします。
  2. データをリクエストするアプリケーションの承認を求める Google の同意画面がユーザーに表示されます。
  3. ユーザーが承認すると、有効期間の短いアクセス トークンがアプリケーションに付与されます。
  4. アプリケーションは、リクエストにそのアクセス トークンを付与してユーザーデータをリクエストします。
  5. 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 リクエストの実行です。具体的な情報については、リファレンス ドキュメントをご覧ください。