開発者ガイドの概要

Amazon Ads APIの概要

Amazon Adsスポンサーディスプレイ広告のオーディエンスAPI

オーディエンスは、従来のオンサイトおよびオフサイトのリマーケティングによって、オーガニックまたは有料の取り組みによって創出された以前の商品詳細ページのビジターをコンバージョンするための柔軟な管理、および商品詳細ページのみを訪問するビジター以外の買い物客にも幅広くリーチするカテゴリーを含む、完全一致の商品および類似商品からのオーディエンス検出を提供します。

Amazonのショッピングシグナルを利用して、直感的で柔軟なターゲティング管理によりリマーケティング(閲覧リマーケティング)を行う、カスタムビルドのオーディエンスの補完として、Amazonオーディエンスもご利用いただけます。これにより広告主様は、すぐに利用できる、使いやすいオーディエンスセグメントの大規模なカタログにアクセスできます。Amazonオーディエンスは、新規のお客様にはたらきかけたり、広告主様がAmazon内でブランドについてよりよく理解したりするために役立つ方法です。スポンサー広告ユーザーは、ブランドの中核となるお客様(「アウトドア愛好家」や「環境に配慮した購入者」など)を説明するのと同様の方法でオーディエンスを選択できるようになり、これらのセルフサービス広告主様は、ブランドマーケティング戦略全体で使用されている表現をスポンサーディスプレイ広告に直接結びつけることができるようになりました。

オーディエンスキャンペーンは、標準のAmazon Ads API構造に従ってキャンペーンを作成および管理します。これらのキャンペーンは、スポンサーディスプレイ広告のコンテキストターゲティングキャンペーンやスポンサープロダクト広告キャンペーンとよく似ています。このようなキャンペーンを作成したことがあれば、概念が非常によく似ていることをご理解いただけると思います。

スポンサーディスプレイ広告のオーディエンスキャンペーンの作成

以下の手順に従って、スポンサーディスプレイ広告のオーディエンスキャンペーンを作成します。

手順1: キャンペーンの作成

この例では、tacticフィールドのT00030という値でオーディエンスキャンペーンを指定しています。

POST /sd/campaigns/ HTTP/1.1
[{
  "name": "My Audiences campaign",
  "tactic": "T00030",
  "budgetType": "daily",
  "costType": "cpc",
  "portfolioId": 1234567,
  "budget": 200.00,
  "startDate": "20200810",
  "endDate": "20301201",
  "state": "enabled"
}]
HTTP/1.1 207 Multi-Status
[{
  "campaignId": "1234567890",
  "code" : "SUCCESS"
}]

成功すると、レスポンスでキャンペーン識別子が返されます。この識別子は、次の手順で広告グループを作成するために使用されます。

「vcpm」という新しいcostTypeがサポートされるようになりました。これは、より多くのオーディエンスにリーチすることが目標である場合に、認知度向上キャンペーンのビューアブルインプレッションに合わせて入札額を最適化するためのものです。「vcpm」入札は「cpc」入札とは根本的に異なることに注意してください。「vcpm」では、1,000回のビューアブルインプレッションに対して入札し、「cpc」では、1回のクリックに対して入札します。以下に例を示します。

POST /sd/campaigns/ HTTP/1.1
[{
  "name": "My Audiences campaign",
  "tactic": "T00030",
  "budgetType": "daily",
  "costType": "vcpm",
  "portfolioId": 1234567,
  "budget": 200.00,
  "startDate": "20200810",
  "endDate": "20301201",
  "state": "enabled"
}]
HTTP/1.1 207 Multi-Status
[{
  "campaignId": "1234567890",
  "code" : "SUCCESS"
}]

手順2: 広告グループの作成

この例では、広告グループを作成します。bidOptimizationを使用し、キャンペーン目標に基づいて入札額を最適化するためのコントロール機能を導入しました。キャンペーンを作成する際、広告主様はより高い検討目標またはコンバージョン目標のいずれかを選択できます。「clicks」を選択すると、広告主様の広告がクリックされる可能性が高いオーディエンスに広告が配信されます。「conversions」を選択すると、コンバージョン率が高くなるように入札額が最適化され、商品を購入する可能性のより高い買い物客に広告が表示されるようになります。「reach」を選択すると、入札額はビューアブルインプレッションに合わせて最適化されるので、より多くの買い物客に広告を表示できます。costTypeとして「cpc」を選択した場合、bidOptimizationは「clicks」または「conversions」のいずれかになります。

POST /sd/adGroups HTTP/1.1
[{
  "campaignId": "1234567890",
  "name": "My AdGroup for Campaign 1234567890",
  "state": "enabled",
  "bidOptimization": "conversions",
  "defaultBid": "1.20"
}]
HTTP/1.1 207 Multi-Status
[{
  "adGroupId": "1234567891",
  "code" : "SUCCESS"
}]

キャンペーンのcostTypeが「vcpm」に設定されている場合にadGroupを作成する例を以下に示します。costTypeとして「vcpm」を選択した場合、bidOptimizationは「reach」に設定する必要があります。

POST /sd/adGroups HTTP/1.1
[{
  "campaignId": "1234567890",
  "name": "My AdGroup for Campaign 1234567890",
  "state": "enabled",
  "bidOptimization": "reach",
  "defaultBid": "5.0"
}]
HTTP/1.1 207 Multi-Status
[{
  "adGroupId": "1234567891",
  "code" : "SUCCESS"
}]

成功すると、レスポンスで広告グループ識別子が返されます。この識別子は、次の手順でプロダクト広告とターゲットエクスプレッションを作成するために使用します。

手順3: プロダクト広告の作成

POST /sd/productAds HTTP/1.1
[{
  "adGroupId": "1234567891",
  "campaignId": "1234567890",
  "sku": "TestSKU",
  "state": "enabled"
}]
HTTP/1.1 207 Multi-Status
[{
  "adId": "1234567892",
  "code" : "SUCCESS"
}]

成功すると、レスポンスで広告識別子が返されます。

リクエストで、お取引企業様はasinフィールドを使用し、出品者様はskuフィールドを使用します。どちらのフィールドにもASINを入力できます。

手順4: ターゲット条項の作成

閲覧数の使用例

POST /sd/targets HTTP /1.1
[{
  "expression": [{
    "type": "views",
    "value": [
      {
      "type": "similarProduct"
      },
      {
        "type": "lookback",
        "value": "30"
      }
    ]
  }],
  "bid": "1.25",
  "adGroupId": 209426065354910,
  "expressionType": "manual",
  "state": "enabled"
}]
HTTP/1.1 207 Multi-Status
[{
  "targetId": "12345678921",
  "code" : "SUCCESS"
}]

オーディエンスの使用例

POST /sd/targets HTTP /1.1
[{
  "expression": [{
    "type": "audiences",
    "value": [
      {
      "type": "audienceSameAs",
      "value": "111122223333344441"
      }
    ]
  }],
  "bid": "1.25",
  "adGroupId": 209426065354910,
  "expressionType": "manual",
  "state": "enabled"
}]
HTTP/1.1 207 Multi-Status
[{
  "targetId": "12345678923",
  "code" : "SUCCESS"
}]

ターゲット条項を作成すると、キャンペーンが有効になり、広告が配信されます。

上記の各手順では、それぞれのコンポーネント(キャンペーン、広告グループ、プロダクト広告、ターゲットエクスプレッション)の読み取り、更新、削除を行うための追加操作を使用できます。OpenAPI仕様に各リクエストの形式が説明されています。次のセクションでは、オーディエンス検出ツールについて説明します。

ターゲティングが可能なすべてのAmazonオーディエンスの検出

分類API

広告主様は分類APIを使用して、Amazonオーディエンスのカタログ階層をレベル別に「閲覧」して、ターゲットに設定するオーディエンスを検出できます。このAPIでは、各レベルに1つ以上のカテゴリーが含まれるツリー形式の構造を利用して、オーディエンスを検出できます。ツリーの最下層に達すると、APIはそれ以上カテゴリーを返しません(つまり、"categories": []の場合)。このAPIはオーディエンスセグメントを返しません。代わりに、このAPIからカテゴリーパスを使用してオーディエンス検出APIを呼び出し、オーディエンスを検出します。

カテゴリーパスを作成するには、まず次のリクエストを使用して最上位ノードを作成し、各レスポンスからカテゴリーパスを作成します。

POST audiences/taxonomy/list HTTP /1.1
{
    "adType": "SD",
    "categoryPath": []
}
HTTP/1.1 200 
{
    "categoryPath": [],
    "categories": [
        {
            "category": "In-market",
            "audienceCount": 8542
        },
        {
            "category": "Interest",
            "audienceCount": 664
        },
        {
            "category": "Lifestyle",
            "audienceCount": 510
        },
        {
            "category": "Life event",
            "audienceCount": 12
        }
    ],
    "nextToken": null
}

後続のリクエストは以下のようになります。

POST audiences/taxonomy/list HTTP /1.1
{
    "adType": "SD",
    "categoryPath": ["In-market"]
}

最後に、ツリーの最下層に達すると、以下が返されます。

HTTP/1.1 200 
{
    "categoryPath": [
        "In-market",
        "Sporting Goods",
        "Sports",
        "Basketball",
        "Backboards"
    ],
    "categories": [],
    "nextToken": null
}

次の手順では、categoryPathの結果を使用し、検出APIを使用してオーディエンスを検出します。

検出API

検出APIには、category、categoryPath、audienceName、audienceIdなどの多数のフィルターが含まれています。categoryPathやaudienceNameなどの複数のフィルターを併用することで、両方の条件を満たすオーディエンスを検出できます。

POST /audiences/list HTTP /1.1
{
    "adType": "SD",
    "filters": [
        {
            "field": "categoryPath",
            "values": [
                "In-market",
                "Sporting Goods",
                "Sports",
                "Basketball",
                "Backboards"
            ]
        },
        {
            "field": "audienceName",
            "values": [
                "*"
            ]
        }
    ]
}
HTTP/1.1 200 
{
    "audiences": [
        {
            "audienceId": "365445316056904705",
            "audienceName": "IM - Basketball Hoops & Goals",
            "description": "People whose shopping activities indicate they are likely to purchase Basketball Hoops & Goals",
            "category": "In-market",
            "createDate": "2017-11-29T17:16:20.108Z",
            "updateDate": "2021-01-21T11:31:52Z",
            "status": "Active",
            "forecasts": {
                "inventoryForecasts": {
                    "all": {
                        "dailyReach": {
                            "lowerBoundInclusive": 500000,
                            "upperBoundExclusive": 600000
                        }
                    }
                }
            }
        }
    ],
    "matchCount": 1
}

「categoryPath」に対してオーディエンス検出を使用する場合は、指定されたパスの直下にあるオーディエンスセグメントにパスを制限します。この検索では、Amazonオーディエンスカタログの階層構造に基づいて、返されるオーディエンスの数が制限されます。

各フィルターのvaluesフィールド内で複数の検索条件を指定することもできます。各条件は「OR」条件として扱われるので、basketballsoccerの両方を含むオーディエンス名を検索する場合は、これらのオーディエンス名をvaluesフィールド内で指定します。

このフィルターでは「categoryPat」ではなく「category」が使用されるため、オーディエンスはカテゴリー直下のオーディエンスに制限されることはなく、1つ以上のサブカテゴリー(サブツリー)のオーディエンスが返されます。

以下のリクエストでは、使用可能なsoccerとbasketball両方のオーディエンスを含むin-marketのカテゴリーが返されます。

POST /audiences/list HTTP /1.1
{
    "adType": "SD",
    "filters": [
        {
            "field": "category",
            "values": [
                "In-market"
            ]
        },
        {
            "field": "audienceName",
            "values": [
                "basketball", "soccer"
            ]
        }
    ]
}

重複するオーディエンス

オーディエンスインサイトAPIは、選択したオーディエンスと似ており、キャンペーンのターゲットに設定することが推奨される他のオーディエンスを見つけるのに役立ちます。検出APIから返されたオーディエンスを入力として使用して、重複するオーディエンスを生成できます。

たとえば、IDが1234567890のオーディエンスの重複するオーディエンスを取得するには、次のようにします。

GET /insights/audiences/1234567890/overlappingAudiences?adType=SD

APIは、選択したオーディエンスと重複しており、指定された条件を満たす上位30のオーディエンスを返します。以下に、選択したオーディエンスと、上位3の重複するオーディエンスのみを含むサンプルを示します。

HTTP/1.1 200 
{
  "requestedAudienceMetadata": {
     "audienceId": "0000000000",
     "name": "Example 1",
     "size": 0,
     "category": "Example Category 1",
     "impressionForecastRange": {
       "lowerBound": 000000000
    }
   },
   "overlappingAudiences": [
     {
       "audienceMetadata": {
         "audienceId": "0000000000",
         "name": "Example 2",
         "size": 0,
         "category": "Example Category 2",
         "impressionForecastRange": {
          "lowerBound": 00000000,
          "upperBound": 00000000        }
       },
       "affinity": 00.00
    },
     {
       "audienceMetadata": {
         "audienceId": "0000000000",
         "name": "Example 3",
         "size": 0,
         "category": "Example Category 3",
         "impressionForecastRange": { 
          "lowerBound": 000000000,
          "upperBound": 000000000
        }
       },
       "affinity": 00.00
    },
     {
       "audienceMetadata": {
         "audienceId": "0000000000",
         "name": "Example 4",
         "size": 0,
         "category": "Example Category 4",
         "impressionForecastRange": {
          "lowerBound": 000000000
        }
       },
       "affinity": 00.00
    }

1つ以上のフィルターを使用して結果を絞り込むことができます。APIには、audienceCategory、minimumAudienceSize、maximumAudienceSize、minimumOverlapAffinity、maximumOverlapAffinityのフィルターが用意されています。

たとえば、次のリクエストは、in-market audienceCategoryに属し、minimumOverlapAffinityが2である、上位30の重複するオーディエンスを返します。

GET /insights/audiences/1234567890/overlappingAudiences?adType=SD&audienceCategory=In-market&minimumOverlapAffinity=2

その他のキャンペーン管理の例

取得操作では、HTTPリクエストボディなしのHTTP GETメソッドを使用して、単一のキャンペーンまたはすべてのキャンペーンを取得します。

たとえば、識別子が1234567890の単一のキャンペーンを取得するには、以下のようにします。

GET /sd/campaigns/1234567890 HTTP/1.1

広告主様のすべてのキャンペーンを取得します。

GET /sd/campaigns/ HTTP/1.1

キャンペーン設定の更新

更新操作では、HTTP PUTメソッドを使用してキャンペーン値を変更します。campaignIdフィールドが必要な点を除いて、作成リクエストと同じ構造を使用します。例:

PUT /sd/campaigns/ HTTP/1/1
[{
  "campaignId": "1234567890",
  "name": "My Audiences campaign",
  "tactic": "T00030",
  "budgetType": "daily",
  "budget": 200.00,
  "startDate": "20191010"
  "endDate": "20301201",
  "state": "enabled"
}]

キャンペーンの削除

削除操作では、HTTP DELETEメソッド(HTTPボディなし)を使用して、単一のキャンペーンを削除します。たとえば、識別子が1234567890のキャンペーンを削除する場合は、以下のようにします。

DELETE /sd/campaigns/1234567890 HTTP/1.1

レポート

オーディエンスのレポーティングAPIは他の手法と似ています。違いは、レポートリクエストを作成するときに、tacticフィールドの値とオーディエンス固有の指標を使用できる点です。

{
  "reportDate": "20200801",
  "tactic": "T00030",
  "metrics": "campaignName,campaignId,impressions,clicks,cost,attributedSales14d"
}

レポートリソースリファレンスのドキュメントで、レポートを作成してダウンロードする方法をご確認ください。

リファレンス

すべてのオーディエンスターゲティング項目のリストを、以下の表とドキュメントに示します。

ターゲティング項目の例 説明
views(exactProduct lookback=30) ルックバックに応じて、過去7日間、14日間、30日間、60日間、または90日間に広告対象ASINを閲覧したオーディエンスをターゲットに設定します。
views(similarProduct lookback=14) ルックバックに応じて、過去7日間、14日間、30日間、60日間、または90日間に広告対象ASINに類似の商品を閲覧したオーディエンスをターゲットに設定します。
purchases(exactProduct lookback=7) ルックバックに応じて、過去7日間、14日間、30日間、60日間、90日間、180日間、または365日間に広告対象ASINを購入したオーディエンスをターゲットに設定します。
purchases(relatedProduct lookback=14) ルックバックに応じて、過去7日間、14日間、30日間、60日間、90日間、180日間、または365日間に広告対象ASINの関連商品を購入したオーディエンスをターゲットに設定します。
asinCategorySameAs=12345 ルックバックに応じて、特定のカテゴリーの商品を過去に閲覧または購入したオーディエンスをターゲットに設定します。
asinBrandSameAs=12345 ルックバックに応じて、特定のブランドの商品を過去に閲覧または購入したオーディエンスをターゲットに設定します。
asinPriceBetween=1-50、asinPriceGreaterThan=1、asinPriceLessThan、asinReviewRatingLessThan、asinReviewRatingGreaterThan、asinReviewRatingBetween ASIN固有の基準に基づいて商品を閲覧または購入したオーディエンスをターゲットに設定します
asinIsPrimeShippingEligible Amazonプライム配送の対象となる商品を閲覧または購入したオーディエンスをターゲットに設定します
asinAgeRangeSameAs 特定の年齢層内の商品を閲覧または購入したオーディエンスをターゲットに設定します(おもちゃやゲームなど、特定のカテゴリーにのみ適用されます)
asinGenreSameAs 特定のジャンルの商品を閲覧または購入したオーディエンスをターゲットに設定します(書籍カテゴリーにのみ適用されます)
lookback オーディエンスのルックバックウィンドウ。「views」の場合は7日間、14日間、30日間、60日間、90日間の中から、「purchases」の場合は7日間、14日間、30日間、60日間、90日間、180日間、365日間の中から選択できるようになりました。