@amazon-devices/kepler-aps-client
Vega APS客户端API是连接适用于Vega的React Native应用和亚马逊出版商服务 (APS) 的原生代码实现之间的桥梁。该API提供了getDeviceParams() 方法来获取您的竞价请求所需的参数。您可以通过C2S(客户端到服务器)或S2S(服务器到服务器)集成将这些参数发送到APS以完成请求。
本用户指南解释了APS客户端库的安装和API的使用。有关亚马逊出版商服务的介绍,请参阅亚马逊出版商服务。
先决条件
在开始之前,请确保您已经安装了Vega SDK并创建了自己的JavaScript应用。您还必须遵循C2S或S2S集成指南来完成云端入门培训,并且您应该了解创建有效负载的工作原理。
以下是使用APS设备端API的方式。
开始使用APSClientLibrary
步骤1.在应用中包含程序包依赖项
将该库作为依赖项添加到程序包的package.json文件中。
"dependencies": {
"@amazon-devices/react-native-kepler": "~2.0.0",
"react": "18.2.0",
"react-native": "0.83.0",
"@amazon-devices/kepler-aps-client": "~1.0.11"
}
步骤2:更新您的清单文件
更新您的manifest.toml文件以包含必需依赖项。
components.interactive必须包含适用于您的React Native版本的相应runtime-module。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"
[package]
title = "APS示例应用"
[components]
[[components.interactive]]
...
runtime-module = "/com.amazon.kepler.runtime.react_native_kepler_4@IReactNativeKepler_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,并将其作为请求有效负载的一部分。有关更多信息,请参阅必需参数表。
必需参数
| 参数 | 描述 | 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)。 |
步骤5.完成有效负载
完成HeaderBidding请求的JSON有效负载创建,并在剩余的云交互之后使用C2S或S2S集成指南提出HTTPS请求。
构建并安装您的应用
构建您的应用
此示例使用名为mykeplerapp的应用。
步骤1.安装应用依赖项。
npm install
步骤2:生成.vpkg文件。
npx react-native build-vega
安装您的程序包
安装您的程序包并运行它。
vda push ./kepler-build/vpkg/mykeplerapp_armv7.vpkg /tmp
安装并启动应用
vda shell
vpm install /tmp/mykeplerapp.vpkg
vmsgr send pkg://com.amazondeveloper.mykeplerapp.main
API参考
类
- ApsClientLibraryAPI
- ApsError — 一般APS错误
- InternalError — 不可恢复/未知的任意系统错误
- NotFoundError — 检索到的参数为null的错误
- UnsupportedError — 传递不支持的集成类型的错误
接口
枚举
- ApsIntegrationType — 亚马逊为发布者提供的用于APS集成的类型。
类型别名
函数
变量
- DNT_DEVICE_PARAM
- IFA_DEVICE_PARAM
- LANGUAGE_DEVICE_PARAM
- MAKE_DEVICE_PARAM
- MODEL_DEVICE_PARAM
- OS_DEVICE_PARAM
- OSV_DEVICE_PARAM
- SCREEN_HEIGHT_DEVICE_PARAM — 返回的设备参数的密钥。
- SCREEN_WIDTH_DEVICE_PARAM
- UA_DEVICE_PARAM
Last updated: 2026年7月22日

