# パートナー向けウェブサイトクロール要件

パートナーとして、impact.com の規制コンプライアンス クローラーが適切な認可のもとで中断なくプログラム的にウェブサイトにアクセスしてデータを取得できるよう、User-Agent の識別設定などの特定の手順を実行する必要がある場合があります。本ガイドは主に、ウェブサイトのアクセスおよびセキュリティ設定の管理を担当する開発者、IT 管理者、および技術チーム向けです。

#### impact.com の規制コンプライアンス ボットを許可する方法

パートナーとして、あなたのウェブサイトは impact.com の規制コンプライアンス ボットによって監視され、特定のコンテンツがブランドとの契約に合致しているかが確認される場合があります。監視対象の各項目はサイトへの個別アクセスを必要とするため、監視対象コンテンツが多いウェブサイトほど比例して多くのリクエストが発生します。

impact.com の規制コンプライアンス ボットが制限されている場合（例：HTTP 429 – Too Many Requests や HTTP 403 – Forbidden を返す）、コンテンツの確認や検証ができず、コンプライアンスの可視性に影響する可能性があります。

**監視を中断させないために:**

* 提供された 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`
* **署名の出力形式**: `16 進文字列`

</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="warning" %}
**警告:** リクエストで受信した `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

ファイアウォールやアクセス制御リストを更新して、以下の impact.com の IP アドレス範囲からの着信トラフィックを許可することをお勧めします。

{% hint style="info" %}
**推奨：** 規制コンプライアンス監視およびボットアクセスに関する技術的な調整や質問については、 [サポートに連絡](https://app.impact.com/secure/advertiser/support/customer-support-portal-flow.ihtml).
{% endhint %}
