Docs
Rechercher dans la documentation...⌘K

Cloudflare Workers

Un Cloudflare Worker exécute un script à chaque requête qui envoie des données à Ahrefs. Cette méthode fonctionne avec tout forfait Cloudflare, y compris Free.

Prérequis

  • Un compte Cloudflare avec le domaine de votre site web ajouté en tant que zone.
  • Un jeton d'API Cloudflare avec les autorisations suivantes :
    • Compte → Scripts des Workers → Modifier
    • Zone → Routes des Workers → Modifier
    • Zone → Zone → Lire

Obtention du jeton d’API Cloudflare

Assurez-vous d’être connecté au Dashboard Cloudflare avec le bon compte. Accédez ensuite à la page https://dash.cloudflare.com/profile/api-tokens, repérez et cliquez sur le bouton Create Token en haut à droite :

Créer un jeton

Passez maintenant au flux Créer un jeton personnalisé :

Créer un jeton personnalisé

Renseignez les informations suivantes :

  • Nom du jeton API : ahrefs-bot-analytics
  • Accordez les autorisations suivantes :
    • Compte / Script Workers / Modifier afin que nous puissions importer le script Worker pour le suivi des visites de bots
    • Zone / Routes Workers / Modifier afin que nous puissions attribuer le script Worker pour qu’il s’exécute sur les requêtes
    • Zone / Zone / Lire afin que nous puissions localiser la zone à configurer
  • Les ressources de compte peuvent être définies sur Inclure / Tous les comptes ; sinon, limitez la portée à celui qui héberge le site web.
  • Les ressources de zone peuvent être définies sur Inclure / Toutes les zones ; sinon, sélectionnez la zone qui correspond au domaine de votre site web.

Le formulaire renseigné devrait ressembler à ceci :

Configuration du jeton

Cliquez maintenant sur le bouton Continuer vers le récapitulatif ; le récapitulatif devrait ressembler à ceci :

Récapitulatif du jeton

Cliquez maintenant sur le bouton Créer un jeton et copiez le jeton généré dans le presse-papiers pour l’utiliser lors des étapes suivantes.

Consultez la documentation Cloudflare sur la création d’un jeton API pour plus d’informations.

Configuration automatique

  1. Dans Ahrefs, allez dans Paramètres du projet → Bot Analytics.
  2. Sélectionnez Cloudflare Worker comme méthode.
  3. Collez votre jeton d'API Cloudflare et cliquez sur Connecter.

Ahrefs utilisera votre jeton pour :

  1. Trouver la zone correspondant au domaine de votre projet.
  2. Déployer le worker d’analyse Ahrefs.
  3. Configurer un chemin qui s’exécute pour toutes les requêtes.

info

Votre jeton est utilisé une seule fois et n’est pas stocké.

Configuration manuelle

Si vous préférez ne pas fournir de jeton d'API, vous pouvez déployer le worker manuellement à l'aide de l'API Cloudflare.

Étape 1 — Obtenir votre ID de compte, ID de zone et jeton d'API

  1. Accédez à votre Dashboard Cloudflare et sélectionnez le domaine de votre site web.

  2. Trouvez vos identifiants $ACCOUNT_ID et $ZONE_ID dans le Dashboard.

  3. Cliquez sur « Obtenir votre jeton API » et créez un jeton avec les autorisations suivantes :

    • Compte → Scripts des Workers → Modifier
    • Zone → Routes des Workers → Modifier
    • Zone → Zone → Lire

    Voir Obtention d'un jeton API pour obtenir des instructions détaillées.

Étape 2 — Déployer le worker

Vous pouvez trouver les commandes exactes, préremplies avec les détails de votre projet, dans Paramètres du projet → Bot Analytics → Configurer manuellement.

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"}'

Remplacez yourwebsite.com par votre domaine.

warning

La clé WA_CF_DATA_KEY et le modèle de route sont propres à votre projet. Copiez les commandes exactes depuis votre page Paramètres du projet → Bot Analytics pour vous assurer d'utiliser les bonnes valeurs.

Étape 3 — Vérifier la connexion

Après avoir déployé le worker et créé la route, retournez dans Paramètres du projet → Bot Analytics dans Ahrefs et cliquez sur Vérifier l'état pour vérifier que les données sont bien reçues.