Cloudflare-Worker
Ein Cloudflare Worker führt bei jeder Anfrage ein Skript aus, das Daten an Ahrefs sendet. Diese Methode funktioniert mit jedem Cloudflare-Tarif, auch mit dem Free-Tarif.
Voraussetzungen
- Ein Cloudflare-Konto, in dem die Domain deiner Website als Zone hinzugefügt ist.
- Ein Cloudflare-API-Token mit den folgenden Berechtigungen:
- Konto → Workers-Skripte → Bearbeiten
- Zone → Workers-Routen → Bearbeiten
- Zone → Zone → Lesen
Cloudflare-API-Token abrufen
Stellen Sie sicher, dass Sie mit dem richtigen Konto im Cloudflare-Dashboard angemeldet sind. Navigieren Sie dann zur Seite https://dash.cloudflare.com/profile/api-tokens, suchen Sie oben rechts die Schaltfläche Token erstellen und klicken Sie darauf:
Fahre nun mit dem Ablauf Benutzerdefiniertes Token erstellen fort:
Fülle die folgenden Informationen aus:
- Name des API-Tokens: ahrefs-bot-analytics
- Erteile die folgenden Berechtigungen:
- Account / Workers Script / Edit, damit wir das Worker-Skript hochladen können, um Bot-Besuche zu erfassen
- Zone / Workers Routes / Edit, damit wir das Worker-Skript zuweisen können, damit es bei Anfragen ausgeführt wird
- Zone / Zone / Read, damit wir die zu konfigurierende Zone finden können
- Account Resources können auf Include / All Accounts gesetzt werden; alternativ kannst du den Umfang auf den Account einschränken, der die Website hostet.
- Zone Resources können auf Include / All Zones gesetzt werden; alternativ wähle die Zone aus, die der Domain deiner Website entspricht.
Das ausgefüllte Formular sollte so aussehen:
Klicke nun auf die Schaltfläche Continue to summary; die Zusammenfassung sollte so aussehen:
Klicke nun auf die Schaltfläche Create Token und kopiere das generierte Token in die Zwischenablage, um es in den nächsten Schritten zu verwenden.
Weitere Informationen findest du in der Cloudflare-Dokumentation unter So erstellst du einen API-Token.
Automatische Einrichtung
- Gehe in Ahrefs zu Projekteinstellungen → Bot Analytics.
- Wähle Cloudflare Worker als Methode aus.
- Füge deinen Cloudflare-API-Token ein und klicke auf Verbinden.
Ahrefs verwendet deinen Token, um:
- Die Zone zu finden, die zur Domain deines Projekts passt.
- Den Ahrefs-Analytics-Worker bereitstellen.
- Richte eine Route ein, die bei allen Anfragen ausgeführt wird.
info
Dein Token wird einmalig verwendet und nicht gespeichert.
Manuelle Einrichtung
Wenn du lieber kein API-Token bereitstellen möchtest, kannst du den Worker manuell über die Cloudflare-API bereitstellen.
Schritt 1 — Account-ID, Zone-ID und API-Token abrufen
-
Gehe zu deinem Cloudflare-Dashboard und wähle die Domain deiner Website aus.
-
Finde deine
$ACCOUNT_IDund$ZONE_IDim Dashboard. -
Klicke auf „API-Token abrufen“ und erstelle einen neuen Token mit den folgenden Berechtigungen:
- Konto → Workers-Skripte → Bearbeiten
- Zone → Workers-Routen → Bearbeiten
- Zone → Zone → Lesen
Detaillierte Anweisungen findest du unter Obtaining API token.
Schritt 2 — Den Worker bereitstellen
Du findest die genauen Befehle, bereits mit den Details deines Projekts vorausgefüllt, unter Projekteinstellungen → Bot Analytics → Manuell einrichten.
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"}'
Ersetze yourwebsite.com durch deine Domain.
warning
Der WA_CF_DATA_KEY und das Routenmuster sind für dein Projekt eindeutig. Kopiere die genauen Befehle von deiner Seite Projekteinstellungen → Bot Analytics, um sicherzustellen, dass die Werte korrekt sind.
Schritt 3 — Verbindung überprüfen
Nachdem du den Worker bereitgestellt und die Route erstellt hast, gehe in Ahrefs zurück zu Projekteinstellungen → Bot Analytics und klicke auf Status prüfen, um zu überprüfen, dass Daten empfangen werden.