亚马逊出版商服务
亚马逊出版商服务 (APS) 提供HeaderBidding解决方案,帮助发布者通过实时投标进行交易,以获取有关其内容的广告。
APSClientLibrary是一个库,它为亚马逊发布者应用提供单一API,用于检索设备参数。您可以编译投标请求,并通过客户端到服务器 (C2S) 或服务器到服务器 (S2S) 集成,将其发送到APS。
本文档介绍了APSClientLibrary的安装和API的用法。
先决条件
在开始之前,请确保您已经安装了Vega SDK并创建了自己的JavaScript应用。您还必须遵循C2S或S2S集成指南来完成云端入门培训,并且您应该了解创建有效负载的工作原理。
以下是使用APS设备端API的方式。
开始使用APSClientLibrary
使用APS客户端库"@amazon-devices/kepler-aps-client": "^1.0.0"进行React Native API集成。
步骤1.在应用中包含程序包依赖项
将该库作为依赖项添加到程序包的package.json文件中。
"dependencies": {
"@amazon-devices/react-native-kepler": "~2.0.0",
"react": "18.2.0",
"react-native": "0.72.0",
"@amazon-devices/kepler-aps-client": "^1.0.0"
}
步骤2:更新您的清单文件
更新您的manifest.toml文件以包含必需依赖项。
components.interactive必须包括runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0"。wants.module必须包含id = "/com.amazon.kepler.apslib@IApsDeviceParametersMap"。
以下是示例应用的示例。manifest.toml
[package]
title = "APS示例应用"
[components]
[[components.interactive]]
...
runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0"
...
[wants]
[[wants.module]]
id = "/com.amazon.kepler.apslib@IApsDeviceParametersMap"
步骤3:将API导入您的应用
导入JavaScript应用的必需设备参数。
import {
ApsDeviceParametersMap,
ApsClientLibraryAPI,
ApsIntegrationType,
SCREEN_HEIGHT_DEVICE_PARAM,
SCREEN_WIDTH_DEVICE_PARAM,
DNT_DEVICE_PARAM,
IFA_DEVICE_PARAM,
UA_DEVICE_PARAM,
MAKE_DEVICE_PARAM,
LANGUAGE_DEVICE_PARAM,
MODEL_DEVICE_PARAM,
OS_DEVICE_PARAM,
OSV_DEVICE_PARAM,
} from '@amazon-devices/kepler-aps-client';
ApsClientLibraryAPI.getDeviceParams是异步的,它返回一个Promise,可以和await或then() 构造一起使用。成功后,Promise的有效负载是ApsDeviceParametersMap(其中包含来自必需参数的键)到其相应值的映射。如果发生错误,Promise会被拒绝并显示错误消息。
使用该函数的建议方法是在应用加载时调用该函数,然后缓存返回值。以下代码示例演示如何使用then() 构造处理成功和错误的情况。
此示例假设传递ApsIntegrationType.c2s的服务器到服务器 (S2S) 集成,而不是客户端到服务器 (C2S) 集成。
以下代码示例演示如何使用then()结构处理成功和错误的情况:
const apsGetS2SWait = async (key: string) => {
console.debug(`[APS][${key}] executing apsGetS2SWait`);
ApsClientLibraryAPI.getDeviceParams(ApsIntegrationType.S2S).then((deviceParams: ApsDeviceParametersMap) => {
console.debug(`[APS][${key}] s2s aps device config: ${SCREEN_HEIGHT_DEVICE_PARAM}, val: ${deviceParams.height}`);
console.debug(`[APS][${key}] s2s aps device config: ${SCREEN_WIDTH_DEVICE_PARAM}, val: ${deviceParams.width}`);
console.debug(`[APS][${key}] s2s aps device config: ${DNT_DEVICE_PARAM}, val: ${deviceParams.dnt}`);
console.debug(`[APS][${key}] s2s aps device config: ${IFA_DEVICE_PARAM}, val: ${deviceParams.ifa}`);
console.debug(`[APS][${key}] s2s aps device config: ${UA_DEVICE_PARAM}, val: ${deviceParams.ua}`);
console.debug(`[APS][${key}] s2s aps device config: ${MAKE_DEVICE_PARAM}, val: ${deviceParams.make}`);
console.debug(`[APS][${key}] s2s aps device config: ${LANGUAGE_DEVICE_PARAM}, val: ${deviceParams.language}`);
console.debug(`[APS][${key}] s2s aps device config: ${MODEL_DEVICE_PARAM}, val: ${deviceParams.model}`);
console.debug(`[APS][${key}] s2s aps device config: ${OS_DEVICE_PARAM}, val: ${deviceParams.os}`);
console.debug(`[APS][${key}] s2s aps device config: ${OSV_DEVICE_PARAM}, val: ${deviceParams.osv}`);
},
function (error: Error) {
console.error(`[APS][${key}] FAIL 无法获取配置:${error["message"]}`);
}
);
}
步骤4:检查必需参数
除了设备参数外,还从发送到服务器的HTTP请求中捕获IP,并将其作为请求有效负载的一部分。有关更多信息,请参阅必需参数表。
步骤5:完成有效负载
完成HeaderBidding请求的JSON有效负载创建,并在剩余的云交互之后使用C2S或S2S集成指南提出HTTPS请求。
必需参数
| 参数 | 描述 | IntegrationType: S2S | IntegrationType: C2S | 由此API提供 |
|---|---|---|---|---|
h |
屏幕的物理高度(以像素为单位) | 是 | 是 | 是 |
w |
屏幕的物理宽度(以像素为单位) | 是 | 是 | 是 |
dnt |
浏览器在标题中设置的标准“不要追踪”标记,其中0 = 跟踪不受限制,1 = 不要追踪。 | 是 | 是 | 是 |
ifa |
您设备的广告ID | 是 | 是 | 是 |
ua |
设备用户代理(一个字符串)。 | 是 | 是 | 是 |
make |
设备制造商(例如,亚马逊)。 | 是 | 是 | 是 |
language |
使用ISO-639-1-alpha-2的设备语言。 | 是 | 是 | 是 |
model |
设备型号(例如,AFTT)。 | 是 | 是 | 是 |
os |
设备操作系统(例如,Android)。 | 是 | 否 | 是 |
osv |
设备操作系统版本(例如,5.1.1)。 | 是 | 否 | 是 |
ip |
离设备最近的IPv4地址(公共IP)(例如,204.78.58.34)。 | 是 | 否 | 否(注意,仅适用于S2S: 从发送到服务器的HTTPS请求中捕获IP)。 |
安装和设置
构建您的应用
此示例使用名为mykeplerapp的应用。
步骤1.对Vega SDK环境执行source命令。
source <Kepler SDK的路径>/environment-setup-sdk.sh
步骤2:安装应用依赖项。
npm install
步骤3:生成.vpkg文件。
npx react-native build-kepler
安装您的程序包
安装您的程序包并运行它。
vda push ./kepler-build/vpkg/mykeplerapp_armv7.vpkg /tmp
安装并启动应用
vda shell
vpm install /tmp/mykeplerapp.vpkg
vlcm launch-app pkg://com.amazondeveloper.mykeplerapp.main
APS流媒体电视集成
亚马逊出版商服务为发布者提供了两种不同的Vega TV平台集成路径。这些集成允许发布者提交投标请求以填充其广告间隙清单。
C2S集成
发布者使用C2S调用,以自定义键值的形式将投标信息返回至发布者广告服务器。您只能从您的应用调用我们的服务器,因为对于该集成,我们不支持服务器端调用。
- API协议: HTTPS
- 终端节点:https://aax-ott-c2s.amazon-adsystem.com/e/c2s/ads
- 建议的超时时间: 1000 ms
有关更多信息,请参阅C2S集成指南。
S2S集成
发布者使用S2S后端调用检索APS键值对,该调用将投标信息返回给发布者广告服务器。您只能从您的服务器调用我们的服务器,因为我们不支持客户端调用。
- API协议: HTTPS
- 终端节点:https://aax-ott.amazon-adsystem.com/e/mdtb/ads
- 建议的超时时间: 500 ms.
有关更多信息,请参阅S2S集成指南。
Last updated: 2025年9月30日

