ブランドセーフティ開発者ガイド
スポンサーディスプレイ広告のブランドセーフティAPI は、米国、カナダ、英国、ドイツ、スペイン、フランス、イタリア、オランダ、ブラジル、メキシコ、アラブ首長国連邦のAmazonブランド登録に登録されているお取引会社様と出品者様がご利用可能です。スポンサーディスプレイ広告では、サードパーティのサイトやモバイルアプリのオンサイトとオフサイトで広告を掲載できます。ブランドセーフティ機能を使用することで、ブランド保護に向けて広告の配信場所を細かく制御し、ブランドに合わないサードパーティサイトへの広告の配信をブロックできます。スポンサーディスプレイ広告キャンペーンで、広告を表示させたくないドメインやモバイルアプリの一覧をアップロードすることができます。この機能は広告主様のレベルで提供されるので、各広告主様がAmazon外での広告の表示場所を管理できるようになります。
注
Amazon Adsでは、グローバルなブランドセーフティポリシーとして、センシティブなコンテンツ、商品、サービスを含むウェブページやアプリに皆様の広告が表示されないようにする多様な対策を講じています。
具体的には、当社は次のコンテンツカテゴリーの広告を許可しません。
- 事故および災害
- アルコール
- 過度な冒涜的表現およびわいせつ行為
- 極度の暴力
- ヘイトスピーチ
- 違法なコンテンツ
- 違法薬物
- オンラインギャンブル
- ポルノまたは露骨なアダルトコンテンツ
- 銃器および弾薬の販売
- テロリズム
- タバコ
Amazonのリストは、これらのカテゴリーのコンテンツを除外するために、独立したブランドセーフティプロバイダーによって継続的に更新されています。ほかにも、Amazonの制限対象商品に関する規約およびコミュニティガイドラインに従って、許可されない商品や、追加の要件が適用される商品があります。制限対象商品に関する規約で許可されている商品であっても、広告を表示しない商品もあります。たとえば、アダルト関連商品やセンシティブな歴史的記念品などが挙げられます。
Amazonのブランドセーフティによって上記のカテゴリーが保護されるため、ブランドセーフティリストを作成するときに、考えられるすべてのWebサイトを列挙する必要はありません。ブランドやその他のビジネス上の理由と一致しないサイトをリストに含める必要があります。
広告主様ごとに1つのブランドセーフティリストを設定します。ブランドセーフティリストには、リクエストごとに10,000件ずつ項目をアップロードできます。項目としては、Webサイトまたはモバイルアプリケーションを指定できます。
拒否リストの作成と管理に使用できる主なAPIは/sd/brandSafety/deny
です。これには以下の操作が含まれます。
- 項目を取得する:
GET /sd/brandSafety/deny
- リストに項目を追加する:
POST /sd/brandSafety/deny
- リストを削除する:
DELETE /sd/brandSafety/deny
注
POST操作とDELETE操作は非同期ですが、GET操作は同期的です。
現時点では、リストの更新はサポートされていません。リストの項目を変更または削除する必要がある場合は、リストを削除してから再びアップロードする必要があります。リストのローカルコピーがない場合は、GET /sd/brandSafety/deny
エンドポイントを使用してリストをダウンロードできます。
上記の操作を実行すると、リクエストが処理されたことの確認応答としてRequestId
が返されます。
{
"requestId": "<string>"
}
その後、GET /sd/brandSafety/:requestId/status
APIを使用してrequestId
を渡すことで、APIのステータスを取得できます。このAPIからCOMPLETED
が返されたら、操作は終了しています。ただし、このAPIでは実際の操作の結果は通知されません。
{
"status": "COMPLETED",
"statusDetails": "some details"
}
実際の操作の結果を取得するには、GET /sd/brandSafety/:requestId/results
APIを使用する必要があります。リストを削除する場合、この操作は使用できません。削除したリストの検証方法の詳細については、後程、このドキュメントの中で説明します。個々のドメインエントリを調べて、特定のドメインが正常に更新されたかどうかを確認できます。
{
"results": [
{
"status": "SUCCESS",
"details": "<string>",
"domainId": "<long>",
"name": "<string>"
},
{
"status": "SUCCESS",
"details": "<string>",
"domainId": "<long>",
"name": "<string>"
}
]
}
ブランドセーフティリストの作成
以下を拒否するブランドセーフティリストを作成できます。
- ウェブサイト全体(例:
example.com
)をブロックする - ウェブサイト(
api.example.com
やdocs.example.com
など)のサブドメインをブロックする
注
index.htmlなどの個々のWebページをブロックすることはできません。
www.example.com/someURI
などのように、ウェブページが含まれていないウェブサイトの場合、通常、実際のリンクはwww.example.com/someURI/index.html
であると見なされます。
ウェブサイトの形式はexample.com
または example.net
です。こちらのドメインの命名規則に従う必要があります。また、ASCII文字のみ使用可能となります。このリストは、ASCII文字セット以外の文字表現をサポートしていません。
ブランドセーフティリストは、リクエストに次のペイロードを含めることにより、POST /sd/brandSafety/deny
操作を使用して作成されます。
{
"domains": [
{
"name": "example.com",
"type": "WEBSITE"
},
{
"name": "com.example.myapp",
"type": "APP"
},
{
"name": "1234567890",
"type": "APP"
}
]
}
example.com
は、example.comに加えて、すべてのサブドメインを拒否リストに追加します。- com.example.myappは、Android IDがcom.example.myappのAndroidモバイルアプリケーションを拒否リストに追加します。
- 1234567890は、IOS IDが1234567890のIOSアプリケーションを拒否リストに追加します。
APIを使用すると、最大10,000件のエントリをリストに追加できます。10,000件を超えて送信する必要がある場合は、別のリクエストで項目を送信する必要があります。
手順
前提条件:
- Postmanは、こちらからダウンロードする必要があります。
- ブランドセーフティコレクションと環境ファイルをワークスペースにインポートする必要があります。
このセクションでは、APIリクエストを実行してブランドセーフティリストを管理します。事前設定されたリクエストを含むPostmanコレクションが提供されています。リクエストを実行すると、その後のリクエストで使用できるように、レスポンス情報が変数としてキャプチャされます。これらのリクエストを実行する前に、OAuth Refresh Tokenリクエストを使用してリフレッシュトークンを取得するか、Postmanスクリプトに手動でリフレッシュトークンを追加する必要があります。
環境のセットアップの詳細については、こちらをご覧ください。
例1: ドメイン/モバイルアプリをブランドセーフティリストに追加する
POST /sd/brandSafety/deny
操作を使用して、ブランドセーフティリストに項目を追加します。
注
CSVファイル形式の既存のドメインリストをJSONに変換する必要がある場合、形式変換に即時使用できる無料ツールが複数あります。
{
"domains": [
{
"name": "foo.com",
"type": "WEBSITE"
},
{
"name": "api.example.com",
"type": "WEBSITE"
},
{
"name": "com.example.app",
"type": "APP"
},
{
"name": "1234567890",
"type": "APP"
}
]
}
レスポンスでは以下が返されます。
{
"requestId": "a2fd14cb81c72cb32ac071e13b105f14"
}
すぐにGET /sd/brandSafety/:requestId/status
操作でステータスを確認すると、次のような内容が表示される場合があります。
{
"status": "IN_PROGRESS",
"statusDetails": "Your request is still in progress.Please check again later."
}
数分後にリクエストを再試行すると(リストのサイズによって異なります)、次のように表示されます。
{
"status": "COMPLETED",
"statusDetails": "Your request has been completed.For POST requests, you can check your request results at /sd/brandSafety/a2fd14cb81c72cb32ac071e13b105f14/results to check the status of each domain in the request.For DELETE requests you can call GET /sd/brandSafety/deny to verify that your Brand Safety Deny List is now empty."
}
requestId
の詳しいレスポンスを調べるには、 GET /sd/brandSafety/:requestId/results
操作を使用します。
{
"results": [
{
"status": "SUCCESS",
"details": "Domain successfully added",
"domainId": 5750546536593170213,
"name": "foo.com"
},
{
"status": "SUCCESS",
"details": "Domain successfully added",
"domainId": 6337651429473114930,
"name": "api.example.com"
},
{
"status": "SUCCESS",
"details": "Domain successfully added",
"domainId": 8394201756681458405,
"name": "com.example.app"
},
{
"status": "SUCCESS",
"details": "Domain successfully added",
"domainId": 8662947689235204460,
"name": "1234567890"
}
]
}
ドメインリスト全体を確認する場合: GET /sd/brandSafety/deny
{
"domains": [
{
"domainId": 5750546536593170213,
"name": "foo",
"type": "WEBSITE",
"state": "ENABLED",
"createdAt": "2021-04-27T18:48:20.253Z",
"lastModified": "2021-04-27T18:48:20.253Z"
},
{
"domainId": 6337651429473114930,
"name": "api.example.com",
"type": "WEBSITE",
"state": "ENABLED",
"createdAt": "2021-04-27T18:48:20.253Z",
"lastModified": "2021-04-27T18:48:20.253Z"
},
{
"domainId": 8394201756681458405,
"name": "com.example.app",
"type": "APP",
"state": "ENABLED",
"createdAt": "2021-04-27T18:48:20.253Z",
"lastModified": "2021-04-27T18:48:20.253Z"
},
{
"domainId": 8662947689235204460,
"name": "1234567890",
"type": "APP",
"state": "ENABLED",
"createdAt": "2021-04-27T18:48:20.253Z",
"lastModified": "2021-04-27T18:48:20.253Z"
}
]
}
例2: ブランドセーフティリストを削除する
ブランドセーフティリストを削除する場合は、DELETE /sd/brandSafety/deny
操作を呼び出します。
レスポンスでは以下が返されます。
{
"requestId": "011686d6c372870e46e598894b7ce832"
}
数分後にGET /sd/brandSafety/:requestId/status
操作を使用してステータスを確認すると(リストのサイズによって異なります)、次のように表示されます。
{
"status": "COMPLETED",
"statusDetails": "Your request has been completed.For POST requests, you can check your request results at /sd/brandSafety/a2fd14cb81c72cb32ac071e13b105f14/results to check the status of each domain in the request.For DELETE requests you can call GET /sd/brandSafety/deny to verify that your Brand Safety Deny List is now empty."
}
操作: DELETE操作には、GET /sd/brandSafety/:requestId/results
は使用できません。ただし、GET /sd/brandSafety/deny
操作を呼び出して、ドメインリストが空であることを確認することはできます。
{
"domains": []
}
例3: ブランドセーフティリストを更新する
リストの項目を更新する必要がある場合は、DELETE /sd/brandSafety/deny
操作を使用してリストを削除してから、POST /sd/brandSafety/deny
操作を使用して項目を作成する必要があります。 「例2」の手順に沿って削除のうえ、「例1」の手順に沿ってブランドセーフティリストの項目を作成します。
付録:
- ユーザーがブランドセーフティ拒否リストにドメインを追加するときには、リクエストが非同期で処理され、requestIdがユーザーに渡されます。
- リクエストが送信されてから最大90日間の間、このrequestIdを使用することで、リクエストの結果を表示できます。結果には、指定したリクエストの各ドメインのステータスが表示されます。
- リクエスト結果には複数のページが含まれる場合があります。このエンドポイントは、リクエストの処理が完了した後に初めて使用できます。
- リクエストのステータスを確認するには、GET /sd/brandSafety/{requestId}/statusを呼び出します。注 このエンドポイントは、GET /sd/brandSafety/denyへのPOSTリクエストの結果のみを表示します。
DELETE
リクエストの結果は反映されません。 - 現在、Unicodeドメインには対応していません。Punycodeドメインには対応しています。
ユーザーがブランドセーフティ拒否リストを変更するときには、リクエストが非同期で処理され、requestIdがユーザーに渡されます。リクエストが送信されてから最大90日間の間、このrequestIdを使用することで、リクエストのステータスを確認できます。