Cloudflare Worker
Cloudflare Worker запускає скрипт для кожного запиту, який надсилає дані до Ahrefs. Цей метод працює з будь-яким планом Cloudflare, зокрема Free.
Передумови
- Обліковий запис Cloudflare, у якому домен вашого сайту додано як зону.
- Токен Cloudflare API з такими дозволами:
- Обліковий запис → Workers Scripts → Edit
- Зона → Workers Routes → Edit
- Зона → Zone → Read
Отримання API-токена Cloudflare
Переконайтеся, що ви ввійшли до Cloudflare Dashboard з правильним обліковим записом. Потім перейдіть на сторінку https://dash.cloudflare.com/profile/api-tokens, знайдіть і натисніть кнопку Create Token у верхньому правому куті:
Тепер перейдіть до процесу Створення власного токена:
Заповніть таку інформацію:
- Назва API-токена: ahrefs-bot-analytics
- Надайте такі дозволи:
- Account / Workers Script / Edit — щоб ми могли завантажити скрипт worker для відстеження відвідувань ботів
- Zone / Workers Routes / Edit — щоб ми могли призначити скрипт worker для виконання запитів
- Zone / Zone / Read — щоб ми могли знайти зону для налаштування
- Account Resources можна встановити як Include / All Accounts або обмежити до облікового запису, на якому розміщено сайт.
- Zone Resources можна встановити як Include / All Zones або вибрати Zone, що відповідає домену вашого сайту.
Заповнена форма має виглядати так:
Тепер натисніть кнопку Continue to summary, підсумок має виглядати так:
Тепер натисніть кнопку Create Token і скопіюйте згенерований токен у буфер обміну, щоб використати його на наступних кроках.
Додаткову інформацію дивіться в документації Cloudflare: як створити API-токен.
Автоматичне налаштування
- В Ahrefs перейдіть до Налаштування проєкту → Bot Analytics.
- Виберіть Cloudflare Worker як метод.
- Вставте свій токен Cloudflare API і натисніть Підключити.
Ahrefs використає ваш токен, щоб:
- Знайти зону, що відповідає домену вашого проєкту.
- Розгорнути Worker для аналітики Ahrefs.
- Налаштуйте маршрут для виконання для всіх запитів.
info
Токен використовується один раз і не зберігається.
Ручне налаштування
Якщо ви не хочете надавати API-токен, можете розгорнути воркер вручну через Cloudflare API.
Крок 1 — Отримайте свій Account ID, Zone ID та API-токен
-
Перейдіть до Cloudflare Dashboard і виберіть домен вашого вебсайту.
-
Знайдіть
$ACCOUNT_IDі$ZONE_IDу Dashboard. -
Клацніть на «Отримати API-токен» і створіть токен із такими дозволами:
- Обліковий запис → Workers Scripts → Edit
- Зона → Workers Routes → Edit
- Зона → Zone → Read
Детальні інструкції див. у розділі Отримання API-токена.
Крок 2 — Розгорніть воркер
Точні команди, уже заповнені даними вашого проєкту, можна знайти в розділі Налаштування проєкту → Аналітика ботів → Налаштувати вручну.
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 — Перевірте підключення
Після розгортання воркера та створення маршруту поверніться до Налаштування проєкту → Аналітика ботів в Ahrefs і натисніть Перевірити статус, щоб підтвердити, що дані надходять.