DSPレポートを作成する
このチュートリアルでは、DSPキャンペーンのレポートを非同期でリクエストしてダウンロードする方法の概要を説明します。
レポートを生成するには:
ヒント:Postmanで試してみましょう
このチュートリアルに従って、Amazon Ads API Postmanコレクションのレポートフォルダーを使用してください。セットアップ手順については、Postmanのチュートリアルをご覧ください。
ヘッダー
このチュートリアルで説明する各リクエストには、以下の4つのヘッダーパラメーターが必要です。
パラメーター | 説明 |
---|---|
Amazon-Advertising-API-ClientId |
Login with Amazonアプリケーションに関連付けられているクライアントID。認証に使用されます。 |
Authorization |
アクセストークン。認証に使用されます。 |
Accept |
レスポンスとして期待されるコンテンツを指定します。リクエストエンドポイントによって異なります。 レポートをリクエストする場合は application/vnd.dspcreatereports.v3+json に設定し、レポートのステータスを確認する場合はapplication/vnd.dspgetreports.v3+json に設定します。 |
Content-Type |
application/json に設定します。 |
API認証の概要については、認可の概要をご覧ください。
accountId
を取得する
レポートの生成または取得のどちらでも、accountId
が必要です。accountId
は
認証とレポートの範囲決定に使用されます。
accountId
を取得する方法は、管理アカウントとセルフサービスアカウントのどちらを使用しているかによって異なります。詳細については、アカウントタイプ別のレポートをご覧ください。
レポートを生成する
レポートをリクエストする
DSPレポートは、さまざまなレポートタイプと指標をサポートしています。サポートされている構成の詳細については、レポートタイプをご覧ください。
すべてのレポートリクエストは単一のエンドポイントを使用します: POST /accounts/{accountId}/dsp/reports
。パラメーターの詳細については、APIリファレンスをご覧ください。
timeUnit
timeUnit
はDAILY
またはSUMMARY
に設定できます。DAILY
は期間内の各日のデータを集計し、SUMMARY
は期間全体のデータを集計します。DAILY
timeUnit
はAUDIENCE
レポートタイプではサポートされていません。startDate
からendDate
までの最大期間は31日です。endDate
は本日の90日前まで指定できます。
サンプルリクエストボディ(timeUnit
をDAILY
に設定)
{
"dimensions" ["ORDER", "LINE_ITEM"],
"timeUnit": "DAILY",
"startDate": "2022-12-05",
"endDate": "2022-12-19"
}
サンプルリクエストボディ(timeUnit
をSUMMARY
に設定)
{
"dimensions" ["ORDER", "LINE_ITEM"],
"timeUnit": "SUMMARY",
"startDate": "2022-12-05",
"endDate": "2022-12-19"
}
dimensions
ディメンションによってレポートの集計レベルが決まります。ディメンションを追加すると、そのディメンションの指標がレポートに自動的に追加されます。複数のディメンションを追加すると、DSPレポーティングAPIはデータ集計に最下位レベルのディメンションを使用し、追加されたすべてのディメンションのディメンション指標をレポートに含めます。詳細については、ディメンションをご覧ください。
advertiserIds
セルフサービスDSPエンティティの所有者は、advertiserIds
フィールドを使用して特定の広告主のデータをリクエストできます。詳細については、アカウントタイプ別のレポートをご覧ください。
注
レポートごとにリクエストできる広告主は最大100個です。100個を超える広告主についてレポートする必要がある場合は、複数のレポートをリクエストしてください。
デフォルト値
デフォルトでは、POST /accounts/{accountId}/dsp/reports
リクエストボディでは以下のようになります。
- レポートタイプは
CAMPAIGN
に設定されています - 形式は
JSON
に設定されています timeUnit
はSUMMARY
に設定され、指定された期間(startDate
からendDate
)について集計されます- ディメンションは
ORDER
に設定されています
リクエストにはstartDate
とendDate
を指定する必要があります。
サンプルリクエスト
このサンプルは、accountIdがID123456789
の広告主について、2022年12月5日から2022年12月19日までのDSPキャンペーンの概要レポートをリクエストしたものです。
注
このチュートリアルのサンプル呼び出しでは、北米APIエンドポイント(
https://advertising-api.amazon.com
)を使用しています。マーケットプレイスに応じてどの地域のエンドポイントを使用するかについては、APIの概要をご覧ください。
curl --location --request POST 'https://advertising-api.amazon.com/accounts/ID123456789/dsp/reports' \
--header 'Amazon-Advertising-API-ClientId: amzn1.application-oa2-client.xxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer Atza|xxxxxxxxxxx' \
--header 'Accept: application/vnd.dspcreatereports.v3+json' \
--data-raw '{
"metrics": ["totalFee", "totalCost", "clickThroughs", "purchasesClicks14d", "eCPM", "impressions", "ROAS14d"],
"dimensions": ["ORDER", "LINE_ITEM"],
"startDate": "2022-12-05",
"endDate": "2022-12-19"
}'
サンプルレスポンス
成功したリクエストレスポンスには、reportId
フィールドとstatus
フィールドが含まれます。
{
"reportId": "b2230738-5b81-2423-a3a6-380d5522ba78",
"type": "CAMPAIGN",
"format": "JSON",
"status": "IN_PROGRESS",
"statusDetails": "In progress",
"location": "",
"expiration": "2023-02-01T20:25:13.356Z"
}
レポートが生成されるのを待つ
POST呼び出しが成功すると、レポートの生成には最大3時間かかる場合があります。
レポート生成ステータスを確認するには、最初のリクエストで返されたreportId
を使用して、GET reportsエンドポイントを呼び出します: GET /accounts/{accountId}/dsp/reports/{report-id}。
サンプルリクエスト
curl --location --request GET /accounts/{accountId}/dsp/reports/{report-id} \
--header 'Content-Type: application/vnd.dspgetreports.v3+json' \
--header 'Amazon-Advertising-API-ClientId: amzn1.application-oa2-client.xxxxxxxxxx' \
--header 'Authorization: Bearer Atza|xxxxxxxxxxx' \
GET statusエンドポイントの呼び出しが成功すると、200ステータスコードが返されます。レポートの生成が完了したかどうかを確認するには、レスポンスボディのstatus
パラメーターを確認します。レポートがまだ生成中の場合、status
はPENDING
またはPROCESSING
に設定されます。
レポートをダウンロードできる状態になると、status
がSUCCESS
として返され、location
フィールドにアドレスが表示されます。
サンプルレスポンス(レポート生成中)
{
"reportId": "TEST123",
"type": "CAMPAIGN",
"format": "JSON",
"status": "IN_PROGRESS",
"statusDetails": "In progress",
"location": "",
"expiration": "2022-12-28T19:30:25.632Z"
}
サンプルレスポンス(レポート生成完了)
{
"reportId": "TEST123",
"type": "INVENTORY",
"format": "JSON",
"status": "SUCCESS",
"statusDetails": "Success",
"location": "https://corvo-reports.s3.amazonaws.com/DSP_API/2023-02-13/TEST123/inventory-report-TEST123.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230213T231410Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Credential=TEST123%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=TEST123",
"expiration": "2023-02-14T00:14:10.562Z"
}
レポートをダウンロードする
レポートの準備が整うと、GET /accounts/{accountId}/dsp/reports/{report-id}
のlocationフィールドに、レポートをダウンロードできるS3バケットへのリンクが含まれます。cURLを使用してGET呼び出しを行うか、ブラウザにURLを入力できます。
レポートを確認する
レポートの未加工のJSONファイルを表示します。レポート内のデータの集計レベルは、指定したディメンションによって異なります。サンプルのJSON、ORDER
レベルのレポートは以下のようになります。
[
{
"orderExternalId": "6677889900",
"orderEndDate": 1690862340000,
"orderId": 123042566401569500,
"orderStartDate": 1633562280000,
"orderCurrency": "USD",
"intervalEnd": 1674432000000,
"orderBudget": 10000,
"entityId": "TEST123",
"intervalStart": 1674345600000,
"advertiserName": "Test Account One",
"advertiserId": 123123123,
"orderName": "One Test Order"
},
{
"orderExternalId": null,
"orderEndDate": 1702627140000,
"orderId": 123582641277101200,
"orderStartDate": 1650265200000,
"orderCurrency": "USD",
"intervalEnd": 1674432000000,
"orderBudget": 50000,
"entityId": "TEST123",
"intervalStart": 1674345600000,
"advertiserName": "Test - Audio",
"advertiserId": 123456789,
"orderName": "Audio test order"
}
]