API นี้ใช้ดึงข้อมูลรายงานโฆษณา (อ่านอย่างเดียว) Base URL: https://calista-ads-report.calista-thai-message.workers.dev
GET /api/report — ดึง/ดาวน์โหลดรายงาน (JSON, CSV) ไม่ต้องใช้รหัสGET /api/health — ตรวจสถานะระบบและฐานข้อมูลคืนข้อมูลตามช่วงวันที่ วันที่ทั้งหมดอิงเขตเวลาบัญชี Google Ads (เวลาไทย GMT+7) สกุลเงินบาท (THB) ไม่มีการเก็บแคชข้อมูล และเปิด CORS ให้เรียกจากเว็บอื่นได้
| ชื่อ | คำอธิบาย |
|---|---|
type | ชนิดข้อมูล (ดูตารางด้านล่าง) ค่าเริ่มต้น: JSON = all, CSV = daily |
format | json (ค่าเริ่มต้น) หรือ csv |
days | 1, 7, 14 หรือ 30 วันล่าสุด (ค่าเริ่มต้น 7) |
from, to | ช่วงวันที่ YYYY-MM-DD (เวลาไทย) ใช้แทน days สูงสุด 90 วัน |
download | download=1 ให้ JSON ดาวน์โหลดเป็นไฟล์ (CSV ดาวน์โหลดเสมอ) |
| 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"{
"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
คืน {"ok": true, "daily_rows": 12} เมื่อเชื่อมฐานข้อมูลได้