Docs
문서 검색...⌘K

Cloudflare 워커

Cloudflare Worker는 각 요청마다 스크립트를 실행하여 데이터를 Ahrefs로 전송합니다. 이 방법은 Free를 포함한 모든 Cloudflare 요금제에서 작동합니다.

사전 준비 사항

  • 웹사이트 도메인이 영역으로 추가된 Cloudflare 계정.
  • 다음 권한이 있는 Cloudflare API 토큰:
    • 계정 → 워커 스크립트 → 편집
    • 영역 → 워커 경로 → 편집
    • 영역 → 영역 → 읽기

Cloudflare API 토큰 가져오기

올바른 계정으로 Cloudflare 대시보드에 로그인되어 있는지 확인하세요. 그런 다음 https://dash.cloudflare.com/profile/api-tokens 페이지로 이동해 오른쪽 상단의 토큰 만들기 버튼을 찾아 클릭하세요:

토큰 생성

이제 사용자 지정 토큰 생성 흐름을 진행하세요:

사용자 지정 토큰 생성

다음 정보를 입력하세요:

  • API 토큰 이름: ahrefs-bot-analytics
  • 다음 권한을 부여하세요:
    • 봇 방문을 추적하기 위한 워커 스크립트를 업로드할 수 있도록 Account / Workers Script / Edit
    • 요청 시 워커 스크립트를 실행하도록 할당할 수 있도록 Zone / Workers Routes / Edit
    • 구성할 영역을 찾을 수 있도록 Zone / Zone / Read
  • Account Resources는 Include / All Accounts로 설정할 수 있으며, 또는 웹사이트를 호스팅하는 계정으로 범위를 제한할 수도 있습니다.
  • Zone Resources는 Include / All Zones로 설정할 수 있으며, 또는 웹사이트 도메인에 해당하는 영역을 선택할 수도 있습니다.

입력을 완료한 폼은 다음과 같이 표시됩니다:

토큰 구성

이제 Continue to summary 버튼을 클릭하세요. 요약은 다음과 같이 표시됩니다:

토큰 요약

이제 Create Token 버튼을 클릭하고, 생성된 토큰을 다음 단계에서 사용할 수 있도록 클립보드에 복사하세요.

추가 정보는 Cloudflare 문서의 API 토큰 생성 방법을 참고하세요.

자동 설정

  1. Ahrefs에서 프로젝트 설정 → Bot Analytics로 이동합니다.
  2. 방법으로 Cloudflare Worker를 선택합니다.
  3. Cloudflare API 토큰을 붙여넣고 Connect를 클릭합니다.

Ahrefs는 토큰을 사용하여 다음 작업을 수행합니다:

  1. 프로젝트의 도메인과 일치하는 Zone을 찾습니다.
  2. Ahrefs 애널리틱스 워커 배포.
  3. 모든 요청에서 실행될 경로를 설정하세요.

info

토큰은 한 번만 사용되며 저장되지 않습니다.

수동 설정

API 토큰을 제공하지 않으려면 Cloudflare API를 사용해 워커를 수동으로 배포할 수 있습니다.

1단계 — Account ID, Zone ID 및 API 토큰 가져오기

  1. Cloudflare 대시보드로 이동하여 웹사이트의 도메인을 선택합니다.

  2. 대시보드에서 $ACCOUNT_ID$ZONE_ID를 찾습니다.

  3. "API 토큰 받기"를 클릭한 다음, 다음 권한으로 새 토큰을 생성합니다.

    • 계정 → 워커 스크립트 → 편집
    • 영역 → 워커 경로 → 편집
    • 영역 → 영역 → 읽기

    자세한 안내는 API 토큰 얻기를 참고하세요.

2단계 — 워커 배포

프로젝트 세부 정보가 미리 입력된 정확한 명령어는 프로젝트 설정 → Bot Analytics → 수동으로 설정에서 확인할 수 있습니다.

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와 경로 패턴은 프로젝트마다 고유합니다. 올바른 값이 적용되도록 프로젝트 설정 → Bot Analytics 페이지에서 정확한 명령어를 복사하세요.

3단계 — 연결 확인

워커를 배포하고 경로를 만든 다음 Ahrefs에서 프로젝트 설정 → Bot Analytics로 돌아가 상태 확인을 클릭하여 데이터가 수신되는지 확인하세요.