Cloudflare Worker
Cloudflare Worker uruchamia przy każdym żądaniu skrypt, który wysyła dane do Ahrefs. Ta metoda działa w każdym planie Cloudflare, w tym Free.
Wymagania wstępne
- Konto Cloudflare z domeną Twojej witryny dodaną jako strefa.
- Token API Cloudflare z następującymi uprawnieniami:
- Konto → Skrypty Worker → Edytuj
- Strefa → Trasy skryptów Worker → Edytuj
- Strefa → Strefa → Odczyt
Uzyskiwanie tokenu API Cloudflare
Upewnij się, że jesteś zalogowany(-a) do panelu Cloudflare Dashboard na właściwym koncie. Następnie przejdź na stronę https://dash.cloudflare.com/profile/api-tokens, znajdź i kliknij przycisk Utwórz token w prawym górnym rogu:
Teraz przejdź do procesu Create Custom Token:
Wypełnij poniższe informacje:
- Nazwa tokena API: ahrefs-bot-analytics
- Przyznaj następujące uprawnienia:
- Account / Workers Script / Edit — abyśmy mogli przesłać skrypt workera do śledzenia wizyt botów
- Zone / Workers Routes / Edit — abyśmy mogli przypisać skrypt workera do uruchamiania dla żądań
- Zone / Zone / Read — abyśmy mogli odnaleźć strefę do skonfigurowania
- W polu Account Resources możesz ustawić Include / All Accounts; ewentualnie zawęź zakres do konta, na którym hostowana jest witryna.
- W polu Zone Resources możesz ustawić Include / All Zones; ewentualnie wybierz strefę odpowiadającą domenie Twojej witryny.
Wypełniony formularz powinien wyglądać tak:
Teraz kliknij przycisk Continue to summary; podsumowanie powinno wyglądać tak:
Teraz kliknij przycisk Create Token i skopiuj wygenerowany token do schowka, aby użyć go w kolejnych krokach.
Więcej informacji znajdziesz w dokumentacji Cloudflare: jak utworzyć token API.
Automatyczna konfiguracja
- W Ahrefs przejdź do Ustawienia Projektu → Analiza botów.
- Wybierz Cloudflare Worker jako metodę.
- Wklej Token API Cloudflare i kliknij Połącz.
Ahrefs użyje Tokena, aby:
- Znaleźć strefę pasującą do domeny Twojego projektu.
- Wdróż skrypt Worker w ramach analityki Ahrefs.
- Skonfiguruj trasę, aby uruchamiała się przy każdym żądaniu.
info
Twój token zostanie użyty tylko raz i nie będzie przechowywany.
Konfiguracja ręczna
Jeśli wolisz nie podawać tokenu API, możesz wdrożyć workera ręcznie za pomocą Cloudflare API.
Krok 1 — Uzyskaj Account ID, Zone ID i Token API
-
Przejdź do swojego Dashboard w Cloudflare i wybierz domenę swojej witryny.
-
Znajdź swoje
$ACCOUNT_IDi$ZONE_IDw Dashboard. -
Kliknij opcję „Uzyskaj swój token API” i utwórz nowy token z następującymi uprawnieniami:
- Konto → Skrypty Worker → Edytuj
- Strefa → Trasy skryptów Worker → Edytuj
- Strefa → Strefa → Odczyt
Szczegółowe instrukcje znajdziesz w sekcji Obtaining API token.
Krok 2 — Wdróż workera
Dokładne polecenia, wstępnie uzupełnione danymi Twojego projektu, znajdziesz w Ustawienia projektu → Bot Analytics → Skonfiguruj ręcznie.
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"}'
Zastąp yourwebsite.com swoją domeną.
warning
WA_CF_DATA_KEY i wzorzec trasy są unikalne dla Twojego projektu. Aby mieć pewność, że wartości są poprawne, skopiuj dokładne polecenia ze strony Ustawienia projektu → Bot Analytics.
Krok 3 — Sprawdź połączenie
Po wdrożeniu workera i utworzeniu trasy wróć do Ustawienia projektu → Bot Analytics w Ahrefs i kliknij Sprawdź status, aby potwierdzić, że dane są odbierane.