Docs
ドキュメントを検索...⌘K

Cloudflare Worker

Cloudflare Worker は、Ahrefs にデータを送信するスクリプトを各リクエストで実行します。 この方法は、Free を含む すべての Cloudflare プランで利用できます。

前提条件

  • ウェブサイトのドメインがゾーンとして追加されている Cloudflare アカウント。
  • 次の権限を持つ Cloudflare API トークン:
    • アカウント → ワーカースクリプト → 編集
    • ゾーン → ワーカールート → 編集
    • ゾーン → ゾーン → 読み取り

Cloudflare APIトークンの取得

正しいアカウントでCloudflareダッシュボードにログインしていることを確認してください。 次に https://dash.cloudflare.com/profile/api-tokens ページに移動し、右上にある Create Token ボタンを見つけてクリックしてください:

トークンを作成

続いて、カスタムトークンの作成フローに進みます:

カスタムトークンを作成

以下の情報を入力してください:

  • APIトークン名:ahrefs-bot-analytics
  • 以下の権限を付与してください:
    • ボットのアクセスをトラッキングする worker スクリプトをアップロードできるように、Account / Workers Script / Edit を付与します
    • リクエスト時に worker スクリプトを実行するよう割り当てられるように、Zone / Workers Routes / Edit を付与します
    • 設定対象のゾーンを特定できるように、Zone / Zone / Read を付与します
  • Account Resources は Include / All Accounts に設定できます。もしくは、ウェブサイトをホストしているアカウントのみにスコープを絞ってください。
  • Zone Resources は Include / All Zones に設定できます。もしくは、ウェブサイトのドメインに対応するゾーンを選択してください。

入力後のフォームは次のようになります:

トークンの設定

次に Continue to summary ボタンをクリックします。サマリーは次のようになります:

トークンのサマリー

Create Token ボタンをクリックし、生成されたトークンをクリップボードにコピーして、次の手順で使用してください。

詳しくは、Cloudflare のドキュメント「API トークンの作成方法」をご覧ください。

自動セットアップ

  1. Ahrefs で プロジェクト設定 → Bot Analytics に移動します。
  2. 方法として Cloudflare Worker を選択してください。
  3. Cloudflare API トークンを貼り付け、接続 をクリックします。

Ahrefs はトークンを使用して次を行います:

  1. プロジェクトのドメインに一致するゾーンを特定します。
  2. Ahrefs アナリティクス Worker をデプロイ.
  3. すべてのリクエストで実行されるルートをセットアップします.

info

お客様のトークンは一度使用され、保存されません。

手動セットアップ

API トークンを提供したくない場合は、Cloudflare API を使用して worker を手動でデプロイできます。

ステップ 1 — アカウント ID、ゾーン ID、API トークンを取得する

  1. Cloudflare ダッシュボード に移動し、ウェブサイトのドメインを選択してください。

  2. ダッシュボードで $ACCOUNT_ID$ZONE_ID を見つけてください。

  3. 「API トークンを取得」をクリックし、以下の権限で新しいトークンを作成してください。

    • アカウント → ワーカースクリプト → 編集
    • ゾーン → ワーカールート → 編集
    • ゾーン → ゾーン → 読み取り

    詳しい手順は、API トークンの取得 を参照してください。

ステップ 2 — worker をデプロイする

プロジェクトの詳細が事前入力された正確なコマンドは、プロジェクト設定 → ボット分析 → 手動で設定で確認できます。

Step 1: Upload the worker script

curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/workers/scripts/ahrefs--bot-analytics" \
  -X PUT \
  -H "Authorization: Bearer $CF_TOKEN" \
  -H "Content-Type: application/javascript" \
  --data-binary '
const WA_ENDPOINT = "https://analytics.ahrefs.com/api/cf_worker";
const WA_SCRIPT = "https://analytics.ahrefs.com/analytics.js";
const WA_CF_DATA_KEY = "YOUR_DATA_KEY";
const WA_DATA_KEY = "";
async function handleBotAnalytics(event, response) {
  let request = event.request;
  event.waitUntil(sendAnalytics(request, response));
  return response;
}

async function sendAnalytics(request, response) {
  try {
    let referer = request.headers.get("referer") || "";
    let userAgent = request.headers.get("user-agent") || "";
    let ip = request.headers.get("cf-connecting-ip") || "";
    let contentType = response.headers.get("content-type") || "";
    let payload = {
      n: "serverpageview",
      u: request.url,
      ip: ip,
      ua: userAgent,
      ct: contentType,
      m: request.method,
      s: response.status,
      k: WA_CF_DATA_KEY,
      r: referer,
    }
    let analyticsResponse = await fetch(WA_ENDPOINT, {
      method: "POST",
      body: JSON.stringify(payload)
    })
    if (!analyticsResponse.ok) {
      console.error("ahrefs bot analytics error:", analyticsResponse.status, analyticsResponse.statusText)
    }
  } catch (error) {
    console.error("ahrefs bot analytics error:", error.message)
  }
}
addEventListener("fetch", event => {
  event.respondWith((async () => {
    let response = await fetch(event.request);
    response = await handleBotAnalytics(event, response);
    return response;
  })());
});
'

Step 2: Create the route

curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/workers/routes" \
  -X POST \
  -H "Authorization: Bearer $CF_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary '{"pattern":"*youwebsite.com/*","script":"ahrefs--bot-analytics"}'

yourwebsite.com を自分のドメインに置き換えてください。

warning

WA_CF_DATA_KEY とルートパターンはプロジェクトごとに固有です。 正しい値を確実に使用するために、プロジェクト設定 → ボット分析ページから正確なコマンドをコピーしてください。

ステップ 3 — 接続を確認

worker をデプロイしてルートを作成したら、Ahrefs の プロジェクト設定 → ボット分析 に戻り、ステータスを確認をクリックして、データが受信されていることを確認してください。