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

パートナーとして、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="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" icon="memo-circle-info" %}
**推奨：** 規制コンプライアンス監視やボットアクセスに関する技術的な調整や質問については、 [サポートにお問い合わせください](https://app.impact.com/secure/advertiser/support/customer-support-portal-flow.ihtml).
{% endhint %}
