> For the complete documentation index, see [llms.txt](https://help.impact.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.impact.com/partner/zh/ni-xiang-liao-jie-shen-me/platform-features/tracking/website-crawling-requirements-for-partners.md).

# 合作伙伴网站抓取要求

作为合作伙伴，您可能需要采取某些步骤，例如配置 User-Agent 标识，以确保 impact.com 受监管合规爬虫能够在不中断且获得适当授权的情况下，以程序化方式访问并从您的网站检索数据。本指南主要面向负责管理网站访问和安全设置的开发人员、IT 管理员和技术团队。

## 如何允许 impact.com 的受监管合规机器人

作为合作伙伴，您的网站可能会受到 impact.com 的受监管合规机器人的监控，以确保特定内容与您和品牌方的协议一致。每个受监控项目都需要单独访问您的站点，因此，受监控内容量较高的网站将按比例收到更多请求。

如果 impact.com 的受监管合规机器人受到限制（例如，返回 HTTP 429 – 请求过多或 HTTP 403 – 禁止访问），我们可能无法审查并验证您的内容，这可能会影响合规可见性。

### **为确保监控不中断：**

* 使用提供的 User-Agent 将 impact.com 受监管合规机器人加入允许列表。
* 避免阻止或限流来自 impact.com 受监管合规机器人的合法请求。
* 使用请求头中包含的签名验证 impact.com 受监管合规机器人，以确认真实性并防止伪造。
* 通过允许并验证 impact.com 受监管合规机器人，您有助于确保您的内容在 impact.com 系统中得到准确审查和反映。

## User-Agent 标识

我们的爬虫使用自定义 `User-Agent` 在网页请求中进行自我标识。这使您作为合作伙伴能够将 impact.com 合规流量与其他机器人和爬虫区分开来。

用于允许列表的 User-Agent 字符串（请按所示原样使用）：

```programlisting
Mozilla/5.0 (compatible;Impact.com Agent) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36
```

### **验证 impact.com 爬虫请求**

为了确认传入流量来自 impact.com 爬虫，每个请求都包含一个自定义 HMAC 签名请求头：

```programlisting
X-Impact-Crawler-Signature: <hmac signature>
```

该签名允许您使用已知密钥和共享算法对请求进行身份验证。它可确保请求源自 impact.com，且未被篡改。

<details>

<summary>签名构建</summary>

**签名构建**

我们使用以下流程计算签名：

* **密钥**: `/impact/crawler/signature/`
* **待签名数据**: `User-Agent`
* **HMAC 算法：** `HMAC-SHA256`
* **签名输出**: `十六进制字符串`

</details>

<details>

<summary>如何验证（伪代码）</summary>

```programlisting
const crypto = require('crypto');

// 从传入请求中提取请求头
const userAgent = req.headers['user-agent'];
const signature = req.headers['x-impact-crawler-signature'];

const secret = '/impact/crawler/signature/';

// 重新计算签名
const expectedSignature = crypto
  .createHmac('sha256', secret)
  .update(userAgent)
  .digest('hex');

// 比较签名
if (signature === expectedSignature) {
  // ✅ 已验证
} else {
  // ❌ 拒绝或记录以供审查
}
```

{% hint style="danger" %}
**警告：** 请务必使用请求中收到的精确 `User-Agent` 值。任何修改，例如截断、解码或重新格式化，都会导致签名不匹配。
{% endhint %}

</details>

## 用于受监管合规监控的 IP 允许列表

为支持持续的受监管合规监控，请将以下 IP 地址段加入允许列表。这可确保来自 impact.com 的流量不会被意外阻止，并使站点监控能够不中断地继续进行。

### **允许以下 IP 段：**

* 163.116.128.0/17
* 162.10.0.0/17
* 31.186.239.0/24
* 8.39.144.0/24
* 8.36.116.0/24
* 34.145.188.137
* 35.245.212.57
* 34.21.56.213
* 34.48.90.233
* 35.245.229.167
* 34.150.151.151
* 35.245.185.65
* 35.188.242.212
* 34.86.33.122
* 34.145.224.193
* 35.245.135.218
* 35.221.1.178
* 34.150.217.77
* 107.175.80.80
* 162.212.175.22
* 107.172.69.119

我们建议更新您的防火墙或访问控制列表，以允许来自以下 impact.com IP 地址段的传入流量。

{% hint style="success" %}
**推荐：** 如需技术协调或有关受监管合规监控和机器人访问的问题， [请联系支持团队](https://app.impact.com/secure/advertiser/support/customer-support-portal-flow.ihtml).
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.impact.com/partner/zh/ni-xiang-liao-jie-shen-me/platform-features/tracking/website-crawling-requirements-for-partners.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
