Amazon Ads APIの認可の概要
Amazon Ads APIへのアクセス
Amazon Ads APIを使用すると、Amazon Adsのデータやサービスにプログラマティックにアクセスできます。すべてのAmazonユーザーと同様に、Amazon Adsのお客様は自分のデータへのアクセスを自分で制御します。このことから、Amazon Ads APIへのアクセスには慎重な認証プロセスが必要です。
データおよびサービスへのアクセス
Webベースのユーザーインターフェイスと同様に、Amazon Adsの広告主様は、AmazonのログインIDを使用して自社のデータやサービスに対するアクセスを制御しています。ログインIDは、Eメールアドレスとパスワードです。APIを介した広告主様のアカウントへのアクセスに関しては、その広告主様が明示的に認可を与える必要があります。
APIへのアクセス
Amazon Adsでは、Login with Amazon(LwA)によって管理されるクライアントアプリケーションがAPIへの呼び出しを行うことができます。クライアントがアクセス権を得るには、Amazon Adsによってアクセスを承認される必要があります。また、すべてのAPI呼び出しに、認証情報として承認済みのクライアント識別子が必要です。
- APIへのアクセスを申請する具体的な方法については、オンボーディングの説明をご覧ください。
- Login with Amazonに関する一般的な情報については、Login with Amazonのドキュメントをご覧ください。
広告主様とクライアント
Amazon Ads APIへの呼び出しを正常に行うには、前述のエンティティの両方(広告主様とクライアントアプリケーション)の関与が必要です。まず、広告主様がクライアントアプリケーションに認可を付与する必要があります。続けて、クライアントアプリケーションが生成された認証情報をAPIに渡して、認可を付与した広告主様のデータとサービスにアクセスします。
アカウントとID
Amazonのお客様のアカウントはそれぞれ、Eメールアドレスを一意のキーとして使用します。1つのユーザーアカウントで、Amazon AdsやAmazon DeveloperといったさまざまなAmazonサービスにアクセスできます。ここで説明する「広告主様」が、クライアントアプリケーションを管理するAmazon Developerアカウントとログイン認証情報を共有することは可能ですが、通常はおすすめしません。
共有する場合であっても、広告主様は、以下で説明するプロセスを使用して、広告主様の代わりにAPIにアクセスすることをクライアントに明示的に許可する必要があります。
認可フロー
広告主様がクライアントアプリケーションに認可を付与する方法、およびクライアントアプリケーションがその認可をAPIに提示する方法を理解するには、OAuth 2.0フローに従ったAmazon Ads APIでの認証および認可をご覧ください。
OAuth 2.0
OAuth 2.0は、サードパーティに対し、リソース所有者に紐づけられているリソースやサービスへの限定的なアクセスを許可するためのものです。
例:
この図で、クライアントはリソース所有者の代わりに操作を行うサードパーティを表します。クライアントは、リソース所有者にリソース共有への同意を求めるリクエストを作成します。このリクエストには通常、所有者がアクセスを許可するリソースと権限を決定するスコープが含まれます。
クライアントは、リソース所有者の同意を表す認可グラントを取得します。クライアントが取得した認可グラントを認可サーバーに送信すると、サーバーからアクセストークンが返されます。アクセストークンは認証情報で、通常は短期間のみ有効です。
クライアントがアクセストークンをリソースサーバーに渡すと、そのアクセストークンが有効な間だけ、スコープによって規定されたリソース所有者のデータとサービスにアクセスできる権限を取得します。
Amazon Ads APIでのOAuth 2.0
Amazon Ads APIでの認可も、概念的にこれと似たフローに従っています。以下の図は、これを具体的に示したものです。
Amazon Ads APIでは、認可サーバーがLogin with Amazonによって提供されます。
クライアントはLogin with Amazonアプリケーションで、関連するクライアント識別子とクライアントシークレットを持っています。
リソース所有者はAmazonの広告主様です。広告主様は、クライアント識別子に紐づけられているURLにアクセスすることで、Login with Amazonユーザーインターフェイスを使用して、同意を確定できます。
Login with Amazonは、広告主様とクライアントの両方に紐づけられている、1回限りの認可コードを作成します。クライアントはこの認可コードをクライアント識別子およびクライアントシークレットとともにLogin with Amazonに渡して、アクセストークンを取得します。また、クライアントはリフレッシュトークンも取得します。これを使用すると、上記の手順を繰り返さずに新しいアクセストークンを生成できます。
クライアントはアクセストークンをAmazon Ads APIに渡して、同意を与えた広告主様に紐づけられているプロファイル識別子を取得できます。Amazon Ads APIのプロファイルは、特定のマーケットプレイスにおける広告主様のアカウントを表します。
クライアント識別子、アクセストークン、プロファイル識別子は、Amazon Ads APIを使用して広告主様のデータとサービスにアクセスするために使用されます。
必要な認可ヘッダー
Amazon Ads APIへの各リクエストには、前述のパターンに基づく、以下のヘッダーが必要です。
Amazon-Advertising-API-ClientId
: APIへのアクセスを許可されたLwAアプリケーションのクライアント識別子。Authorization
: 特定のAmazonユーザーのデータおよびサービスに対するアプリケーションのアクセス権限を表すアクセストークンの前に付加されるBearer
文字列。
Amazon Ads APIを介して利用できるほぼすべてのリソースでも、追加のヘッダーが必要です。
Amazon-Advertising-API-Scope
: アクセストークンに紐づけられているAmazonユーザーに属するAmazon Adsアカウントを表すプロファイル識別子。
認可ヘッダーが含まれていないか、正しくない場合は、401 Unauthorized
レスポンスが返されます。必要な場合にAmazon-Advertising-API-Scope
ヘッダーが含まれていないか、正しくない場合は、401 Unauthorized
または400 Bad Request
レスポンスが返されます。
認可の重要な概念
- Amazon Adsの広告主様のデータやサービスへのアクセスは、広告主様が制御します。
- Amazon Ads APIの呼び出し元は、Login with Amazonによって管理され、AmazonによってAPIアクセスを承認される、クライアントアプリケーションです。
- 広告主様は、OAuth 2.0のフローを使用して、自社のデータやサービスへのアクセスを承認済みのクライアントアプリケーションに委任することができます。
- 広告主様から認可グラントを取得したAPIの呼び出し元は、Login with Amazonを介してその広告主様のアクセストークンを取得できます。
- APIの呼び出し元は、リクエストヘッダーで以下のものを指定することで、Amazon Ads APIにアクセスできます。
- 呼び出し元のクライアント識別子。
- 特定の広告主様からの許可を表すアクセストークン。
- 特定のマーケットプレイスにおける広告主様のアカウントを表すプロファイル識別子。
詳細はこちら
次のドキュメントで概念の詳細をご確認ください。
Amazon Ads APIで認可を行う方法に関する詳細なガイドは、オンボーディングウォークスルーをご覧ください。