@adzerk/decision-sdk

中文文档
1.0.0-beta.30发布于 2026/06/17Apache-2.0TypeScriptCommonJS构建来源已验证近 30 天下载 3.7万

与 Adzerk 决定 API 互动的 SDK

中文使用文档
文档目录16 节
  1. 安装
  2. 通过国家预防机制的服务器
  3. 通过 CDN 客户端
  4. 实例
  5. API 证书和必要的ID
  6. 获取临时决定
  7. 记录印象并点击
  8. 用户DB: 读取用户记录
  9. 用户DB: 设置自定义属性
  10. 用户DB:忘记用户记录
  11. 决定解释者
  12. 日志
  13. 文档
  14. 捐款
  15. 报告问题
  16. 构建/ 运行测试

Adzerk JavaScript/ Typescript 决定 SDK

用于 Adzerk 决定和用户DB API 的 JavaScript 软件开发工具

可使用的客户端或服务器侧为 TypeScript 或 JavaScript !

安装

国家防范机制一揽子计划

通过国家预防机制的服务器

要求数 节点.js v20 或更高级.

npm install --save @adzerk/decision-sdk

通过 CDN 客户端

总是获取最新版本 :

<script src="https://unpkg.com/@adzerk/decision-sdk/dist/adzerk-decision-sdk.js"></script>

使用固定版本 :

<script src="https://unpkg.com/@adzerk/[email protected]/dist/adzerk-decision-sdk.js"></script>

实例

API 证书和必要的ID

获取临时决定

import { Client } from "@adzerk/decision-sdk";

// Demo network, site, and ad type IDs; find your own via the Adzerk UI!
let client = new Client({ networkId: 23, siteId: 667480 });

let request = {
  placements: [{ adTypes: [5] }],
  user: { key: "abc" },
  keywords: ["keyword1", "keyword2"]
};

client.decisions.get(request).then(response => {
  console.dir(response, { depth: null });
});

记录印象并点击

与上面的获取示例一起使用 .

// Impression pixel; fire when user sees the ad
client.pixels.fire({ url: decision.impressionUrl });

// Click pixel; fire when user clicks on the ad
// status: HTTP status code
// location: click target URL
client.pixels.fire({ url: decision.clickUrl }).then(r => {
  console.log(`status ${r["status"]}; location: ${r["location"]}`);
});

用户DB: 读取用户记录

import { Client } from "@adzerk/decision-sdk";

// Demo network ID; find your own via the Adzerk UI!
let client = new Client({ networkId: 23 });
client.userDb.read("abc").then(response => console.log(response));

用户DB: 设置自定义属性

import { Client } from "@adzerk/decision-sdk";

// Demo network ID; find your own via the Adzerk UI!
let client = new Client({ networkId: 23 });

let props = {
  favoriteColor: "blue",
  favoriteNumber: 42,
  favoriteFoods: ["strawberries", "chocolate"]
};

client.userDb.setCustomProperties("abc", props);

用户DB:忘记用户记录

import { Client } from "@adzerk/decision-sdk";

const apiKey = process.env.ADZERK_API_KEY;

// Demo network ID and API key; find your own via the Adzerk UI!
let client = new Client({ networkId: 23, apiKey });
client.userDb.forget("abc");

决定解释者

" 决定解释者 " 回复了关于 " 决定API " 请求的信息,解释为什么每个候选人的广告被选中或未被选中.

import { Client } from "@adzerk/decision-sdk";

const apiKey = process.env.ADZERK_API_KEY;

// Demo network, site, and ad type IDs; find your own via the Adzerk UI!
let client = new Client({ networkId: 23, siteId: 667480 });

let request = {
  placements: [{ adTypes: [5] }],
  user: { key: "abc" },
  keywords: ["keyword1", "keyword2"]
};

const options = {
  includeExplanation: true,
  apiKey
};

client.decisions.get(request, options).then(response => {
  console.dir(response, { depth: null });
});

响应返回一个带有放置,桶,rtb日志以及结果信息的决定对象.

{
  "div0": {
    "placement": {},
    "buckets": [],
    "rtb_log": [],
    "results": []
  }
}

"放置"对象代表可以送达广告的决定. 解释者请求可以在请求中有多个位置. "buckets"阵列包含频道和优先级信息. "rtb logs"阵列包含实时竞价信息. "结果"阵列中包含了曾经和没有服役的候选广告列表,并附有简短的解释. |

日志

我们的伐木实施要足够灵活,以适应任何共同的节点JS伐木框架.

构建客户端实例时,登录器作为匿名函数传递,包含三个参数:

  • level: 任意之一 debug, (中文(简体) ), info, (中文(简体) ), warn,或 error
  • message: 要日志的信件
  • metadata: 与日志调用相关的任何额外元数据

若无 logger 作为论据提供 调试 库将默认使用.

最简单的整合方式是写出一个函数,处理从Adzerk SDK Logger中将数据转换成您在其余应用程序中使用的任何日志框架:

import { Client } from "@adzerk/decision-sdk";

const logger = (lvl, msg, meta) =>
  console.log(`[${lvl}] ${msg} [${JSON.stringify(meta)}]\n`);

let client = new Client({ logger });

文档

捐款

报告问题

构建/ 运行测试

要安装依赖关系并运行与此 SDK 相关的架构, 请使用 :

npm install
npm run build
npm run test

版本与发布记录

@adzerk/decision-sdk 共发布 30 个版本,首次发布于 2020/04/29;过去 12 个月发布了 2 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.0.0-beta.30latest2026/06/174 个月前
1.0.0-beta.292026/03/177 个月前
1.0.0-beta.282025/10/181.1 年前
1.0.0-beta.272025/04/101.6 年前
1.0.0-beta.262025/01/311.8 年前
1.0.0-beta.252023/10/043 年前

关于 @adzerk/decision-sdk 的常见问题

@adzerk/decision-sdk 是什么?

与 Adzerk 决定 API 互动的 SDK

如何安装 @adzerk/decision-sdk?

在项目目录运行 npm install @adzerk/decision-sdk,或使用 pnpm add / yarn add / bun add。

@adzerk/decision-sdk 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@adzerk/decision-sdk 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@adzerk/decision-sdk 可以商用吗?

@adzerk/decision-sdk 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@adzerk/decision-sdk 的下载量有多少?

根据 npm 官方下载统计,@adzerk/decision-sdk 在 2026/10/05 – 2026/11/03 这 30 天内被下载 36,699 次,日均约 1,223 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@adzerk/decision-sdk 还在维护吗?

最新版本 1.0.0-beta.30 发布于 2026/06/17(4 个月前);至今共发布 30 个版本,其中过去 12 个月发布了 2 个;首次发布于 2020/04/29。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。