as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

亚马逊出版商服务

亚马逊出版商服务

亚马逊出版商服务 (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文件以包含必需依赖项。

  1. components.interactive必须包括runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0"
  2. 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,可以和awaitthen() 构造一起使用。成功后,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日