Docs
Dokumentation durchsuchen...⌘K

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:

Token erstellen

Fahre nun mit dem Ablauf Benutzerdefiniertes Token erstellen fort:

Benutzerdefiniertes Token erstellen

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:

Token-Konfiguration

Klicke nun auf die Schaltfläche Continue to summary; die Zusammenfassung sollte so aussehen:

Token-Zusammenfassung

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

  1. Gehe in Ahrefs zu Projekteinstellungen → Bot Analytics.
  2. Wähle Cloudflare Worker als Methode aus.
  3. Füge deinen Cloudflare-API-Token ein und klicke auf Verbinden.

Ahrefs verwendet deinen Token, um:

  1. Die Zone zu finden, die zur Domain deines Projekts passt.
  2. Den Ahrefs-Analytics-Worker bereitstellen.
  3. 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

  1. Gehe zu deinem Cloudflare-Dashboard und wähle die Domain deiner Website aus.

  2. Finde deine $ACCOUNT_ID und $ZONE_ID im Dashboard.

  3. 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.