# @adzerk/decision-sdk 中文文档

规范地址：https://npmcn.com/package/%40adzerk/decision-sdk/

版本：1\.0\.0-beta\.30
npm 元数据更新时间：2026-10-12T15:58:07.728Z
中文译文更新时间：2026-11-05T19:29:47.725Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40adzerk/decision-sdk
原文对照：https://npmcn.com/package/%40adzerk/decision-sdk/?lang=original
项目主页：https://github.com/adzerk/adzerk-decision-sdk-js#readme
源码仓库：https://github.com/adzerk/adzerk-decision-sdk-js

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：511 kB，18 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：4 个
- 首次发布：2020-04-29T13:37:19.290Z
- 最新版本发布：2026-06-16T16:28:50.811Z
- 近 30 天下载量：36699（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：30（近 12 个月 2 个）

## 中文简介

与 Adzerk 决定 API 互动的 SDK

## 安装

```sh
npm install @adzerk/decision-sdk
```

也可以使用：`pnpm add @adzerk/decision-sdk`、`yarn add @adzerk/decision-sdk`、`bun add @adzerk/decision-sdk`

## README

# Adzerk JavaScript/ Typescript 决定 SDK

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

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

## 安装

[国家防范机制一揽子计划](https://www.npmjs.com/package/@adzerk/decision-sdk)

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

要求数 [节点.js v20](https://nodejs.org/en/about/releases/) 或更高级.

```shell
npm install --save @adzerk/decision-sdk
```

### 通过 CDN 客户端

总是获取最新版本 :

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

使用固定版本 :

```html
<script src="https://unpkg.com/@adzerk/decision-sdk@1.0.0-beta.2/dist/adzerk-decision-sdk.js"></script>
```

## 实例

### API 证书和必要的ID

-   网络ID: 登录到 [Adzerk 用户界面](https://app.adzerk.com/) 使用右上角的"circle-i"帮助菜单查找网络ID( C) 。 所有 SDK 操作都需要.
-   站点代号: 去 [管理网站页面](https://app.adzerk.com/#!/sites/) 寻找现场身份 获取广告决定时需要 .
-   代理类型 ID: 转到 [Ad大小页面](https://app.adzerk.com/#!/ad-sizes/) 查找 Ad Type 标识。 获取广告决定时需要 .
-   API 密钥: 跳转到 [API 密钥页面](https://app.adzerk.com/#!/api-keys/) 找到活动的 API 密钥 。 写入 UserDB 时需要 .
-   用户密钥: 用户 DB ID 是 [为每个用户指定或生成](https://dev.adzerk.com/reference/userdb#passing-the-userkey)。 。 。 .

### 获取临时决定

```javascript
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 });
});
```

### 记录印象并点击

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

```javascript
// 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: 读取用户记录

```javascript
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: 设置自定义属性

```javascript
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:忘记用户记录

```javascript
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 " 请求的信息,解释为什么每个候选人的广告被选中或未被选中.

```javascript
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日志以及结果信息的决定对象.

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

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

### 日志

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

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

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

若无 `logger` 作为论据提供 [调试](https://github.com/visionmedia/debug#readme) 库将默认使用.

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

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

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

let client = new Client({ logger });
```

## 文档

-   [Adzerk API 文档](https://dev.adzerk.com/reference)
-   [Adzerk 用户和开发者文档](https://dev.adzerk.com/docs)

## 捐款

### 报告问题

-   对于此 SDK 的错误修正和改进, 请使用 Github [打开一个问题](https://github.com/adzerk/adzerk-decision-sdk-js/issues) 或者送我们一个 [拉动请求](https://github.com/adzerk/adzerk-decision-sdk-js/pulls)。 。 。 .
-   有关Adzerk功能的问题或问题,请 [联系人 Adzerk 支持](https://adzerk.com/help/)。 。 。 .

### 构建/ 运行测试

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

```
npm install
npm run build
npm run test
```

## 常见问题

### @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 和提交记录判断。

