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 トークンの作成方法」をご覧ください。
自動セットアップ
- Ahrefs で プロジェクト設定 → Bot Analytics に移動します。
- 方法として Cloudflare Worker を選択してください。
- Cloudflare API トークンを貼り付け、接続 をクリックします。
Ahrefs はトークンを使用して次を行います:
- プロジェクトのドメインに一致するゾーンを特定します。
- Ahrefs アナリティクス Worker をデプロイ.
- すべてのリクエストで実行されるルートをセットアップします.
info
お客様のトークンは一度使用され、保存されません。
手動セットアップ
API トークンを提供したくない場合は、Cloudflare API を使用して worker を手動でデプロイできます。
ステップ 1 — アカウント ID、ゾーン ID、API トークンを取得する
-
Cloudflare ダッシュボード に移動し、ウェブサイトのドメインを選択してください。
-
ダッシュボードで
$ACCOUNT_IDと$ZONE_IDを見つけてください。 -
「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 の プロジェクト設定 → ボット分析 に戻り、ステータスを確認をクリックして、データが受信されていることを確認してください。