亚马逊广告接口官方说明:https://advertising.amazon.com/API/docs/en-us/setting-up/account-setup
一:注册aws开发者账号
注册地址:https://developer.amazon.com
二:填写注册资料
三:进入控制台,生成安全配置文件
进入 Login with Amazon 菜单:
创建配置文件:
四:申请广告接入权限
申请地址:https://advertising.amazon.com/zh-cn/about-api
填写右侧的内容,并提交,提交后亚马逊会回复邮件,申请通过后,回复的邮件中会有带一个链接,用来关联你刚刚上面注册的开发者账号和配置文件。
五:接口调试
接口调试前需要先进行店铺授权,并获取bearer token,可参考文档;https://advertising.amazon.com/API/docs/en-us/setting-up/generate-api-tokens
店铺授权过后还需要获取每个店铺的profiles,参考
https://advertising.amazon.com/API/docs/en-us/reference/2/profiles#/Profiles
后续的每次接口调用都需要在请求带上bearer token、clientId和profileId三者。
坑点:获取报告的接口,获取的其实是一个gz格式压缩的json文件,官方文档说明的不是很详细,如果你是一个一个接口去阅读的,你会在品牌推广的接口里面看到说明https://advertising.amazon.com/API/docs/en-us/reference/sponsored-brands/2/reports,如果你跳过了这个接口,后面的获取报告的接口是没有这个说明的,获取报告时会返回一个location地址,这个地址时没法直接下载的,也需要带上上面的请求头,这个时候你在调用download接口下载时,其实是被重定向到了另一个链接的,如果你是用OKHTTP是会自动帮你重定向的,如果是用其他的方式,就可能需要自己获取重定向的地址,再请求一遍了;
GZ解压json文件示例:
ResponseBody body = response.body();
InputStream inputStream = body.byteStream();
// 返回的是gz压缩文件
GZIPInputStream gzipInputStream = new GZIPInputStream(inputStream);
BufferedReader reader = new BufferedReader(new InputStreamReader(gzipInputStream));
StringBuilder json = new StringBuilder();
String lineStr = "";
while ((lineStr = reader.readLine()) != null) {
json.append(lineStr);
}