เอกสารการใช้งาน API

Calista Ads Report

API นี้ใช้ดึงข้อมูลรายงานโฆษณา (อ่านอย่างเดียว) Base URL: https://calista-ads-report.calista-thai-message.workers.dev

GET/api/report

คืนข้อมูลตามช่วงวันที่ วันที่ทั้งหมดอิงเขตเวลาบัญชี Google Ads (เวลาไทย GMT+7) สกุลเงินบาท (THB) ไม่มีการเก็บแคชข้อมูล และเปิด CORS ให้เรียกจากเว็บอื่นได้

พารามิเตอร์ (query string)

ชื่อคำอธิบาย
typeชนิดข้อมูล (ดูตารางด้านล่าง) ค่าเริ่มต้น: JSON = all, CSV = daily
formatjson (ค่าเริ่มต้น) หรือ csv
days1, 7, 14 หรือ 30 วันล่าสุด (ค่าเริ่มต้น 7)
from, toช่วงวันที่ YYYY-MM-DD (เวลาไทย) ใช้แทน days สูงสุด 90 วัน
downloaddownload=1 ให้ JSON ดาวน์โหลดเป็นไฟล์ (CSV ดาวน์โหลดเสมอ)

ชนิดข้อมูล (type)

typeเนื้อหา
allทุกชนิดในคำตอบเดียว (JSON เท่านั้น)
summaryสรุปยอดรวมทั้งช่วง + ค่า CTR/CPC/ต้นทุนต่อการจอง + ยอดจองที่ร้านบันทึก
dailyรายวัน (วันที่ตามเวลาไทย)
hourlyรายชั่วโมง มี hour_th (เวลาไทย) และ nz_hour (เวลานิวซีแลนด์)
devicesแยกตามอุปกรณ์ (mobile / desktop / tablet / other) รวมทั้งช่วง
keywordsรายคีย์เวิร์ด รวมทั้งช่วง เรียงตามคลิก
search_termsคำที่คนค้นหาจริง รวมทั้งช่วง เรียงตามคลิก
bookingsยอดจองจริงที่ร้านบันทึกเองรายวัน

ฟิลด์ที่ได้

ฟิลด์ความหมาย
impressionsจำนวนการแสดงผล
clicksจำนวนคลิกเข้าเว็บ
costค่าใช้จ่าย (บาท)
conv_clickกดปุ่ม Book Now (สนใจ)
conv_bookingจองสำเร็จบน Fresha
ctrคลิก ÷ การแสดงผล (0–1)
cpcค่าใช้จ่าย ÷ คลิก (บาท)
cost_per_book_click / cost_per_bookingต้นทุนต่อการกดปุ่มจอง / ต่อการจองสำเร็จ (0 ถ้าหารไม่ได้)

ตัวอย่าง

# สรุป 7 วันล่าสุด (JSON)
curl "https://calista-ads-report.calista-thai-message.workers.dev/api/report?type=summary&days=7"

# ดาวน์โหลดรายวันเป็น CSV ตามช่วงวันที่
curl -o daily.csv "https://calista-ads-report.calista-thai-message.workers.dev/api/report?type=daily&format=csv&from=2026-10-01&to=2026-10-19"

# ข้อมูลทั้งหมด 30 วัน เป็นไฟล์ JSON
curl -OJ "https://calista-ads-report.calista-thai-message.workers.dev/api/report?type=all&days=30&download=1"

ตัวอย่างคำตอบ (JSON)

{
  "ok": true,
  "range": { "start": "2026-10-13", "end": "2026-10-19", "timezone": "Asia/Bangkok (GMT+7)" },
  "currency": "THB",
  "generated_at": "2026-10-19T04:00:00.000Z",
  "data": {
    "summary": [{
      "start": "2026-10-13", "end": "2026-10-19", "days": 7,
      "impressions": 420, "clicks": 31, "cost": 512.4,
      "conv_click": 6, "conv_booking": 1,
      "ctr": 0.0738, "cpc": 16.53,
      "cost_per_book_click": 85.4, "cost_per_booking": 512.4,
      "shop_recorded_bookings": 2
    }]
  }
}

ข้อผิดพลาดจะได้ {"ok": false, "error": "..."} พร้อมรหัส 400 (พารามิเตอร์ไม่ถูกต้อง) หรือ 500

GET/api/health

คืน {"ok": true, "daily_rows": 12} เมื่อเชื่อมฐานข้อมูลได้

ข้อควรรู้

Read in English →