ข้ามไปยังเนื้อหา
อัปเดตล่าสุด 8 กันยายน 2569

นโยบายความเป็นส่วนตัว

PDPA consent · ข้อมูลที่เก็บ · ผู้ให้บริการ · สิทธิ์ของคุณ

PDPA policy เวอร์ชัน: 2026-05-30

ความยินยอม (PDPA Consent)

เข้าใช้งานครั้งแรก KhumMai จะแสดง banner ตาม พ.ร.บ. คุ้มครองข้อมูลส่วนบุคคล (PDPA) เลือกได้ 3 แบบ: ยอมรับทั้งหมด / เฉพาะที่จำเป็น / จัดการตามชอบ — เปลี่ยนใจได้ทุกเมื่อที่ หน้าตั้งค่าความเป็นส่วนตัว

คุกกี้แบ่งเป็น 4 หมวด:

  • จำเป็น (เปิดถาวร) — เก็บความยินยอมของคุณเท่านั้น
  • สถิติการใช้งาน (opt-in, default off) — วัด traffic + performance
  • แจ้งเตือนทางอีเมล (opt-in, default off) — ใช้เมื่อสมัคร waitlist
  • การตลาด/Affiliate (opt-in, default off) — ติดตามคลิกการ์ด offer และโหลด Meta Pixel เพื่อวัดผลโฆษณา/รีมาร์เก็ตติ้งบน Facebook/Instagram (ดูรายละเอียด §4)

ข้อมูลที่เราเก็บ

ในเครื่องของคุณ (localStorage / Service Worker)

  • khummai-data — ประวัติคำนวณ, presets, calcCount, alertThreshold, onboarding flags, seller profile (ประเภท + VAT boolean), monthly goal, overhead, tier, ราคาคู่แข่งที่คุณกรอกเอง (เก็บเป็นตัวเลขต่อหมวด ไม่มีชื่อร้านคู่แข่ง และไม่ถูกส่งออกจากเครื่อง) (ไม่มีอีเมล/ชื่อร้าน)
  • khummai-sub — อีเมล + ชื่อร้านที่ cached สำหรับ waitlist (แยก namespace จากข้อมูลคำนวณ)
  • khummai_consent_v1 — สถานะความยินยอม + เวอร์ชัน policy + timestamp
  • Service Worker cache (PWA) — static assets เพื่อ offline performance (ไม่มี personal data)
  • sessionStorage — scroll position + accordion state (key prefix khummai:scroll:) — ลบเมื่อปิด tab, ไม่มี PII

ข้อมูลทั้งหมดข้างต้น ไม่ส่งกลับเซิร์ฟเวอร์ ลบได้ด้วยฟังก์ชันในเว็บ หรือ clear browser storage

คุกกี้ของเราเอง (ส่งไปเซิร์ฟเวอร์ทุก request)

  • km_consent_mkt — สำเนา เฉพาะค่าเปิด/ปิด ของหมวดการตลาด (จัดเป็นคุกกี้หมวดจำเป็น) มีค่าเดียวคือ 1 เมื่อคุณเปิด และถูกลบทิ้งเมื่อคุณปิด — ไม่มีรหัสผู้ใช้ ไม่มี timestamp · จำเป็นเพราะ khummai_consent_v1 อยู่ใน localStorage ซึ่งเซิร์ฟเวอร์อ่านไม่ได้ ทำให้ตัว redirect ไม่รู้ว่าจะเก็บ Click ID ได้หรือไม่ (ดู §4)

นี่คือคุกกี้เดียวที่โค้ดของ KhumMai ตั้งเอง · คุกกี้อื่นที่คุณอาจเห็นบนโดเมนนี้ มาจากสคริปต์/บริการภายนอก — analytics เมื่อคุณ opt-in (§3), _fbp ของ Meta Pixel เมื่อคุณเปิดหมวดการตลาด (§4), และคุกกี้ของ Cloudflare ที่ระดับ edge/Turnstile (§2 หัวข้อ Anti-bot)

บนเซิร์ฟเวอร์ (เฉพาะเมื่อใช้ฟีเจอร์ที่ระบุ)

  • Waitlist: email + shop_name (optional) → เก็บใน Supabase
  • IP rate-limit: sliding window 60 วินาที — ไม่บันทึกถาวร
  • Email dedup map: normalized email (plus-address ถูกตัด) เก็บ in-memory 60 นาที ต่อ instance เพื่อกัน burst submission — ไม่บันทึกถาวร
  • Anti-bot — Cloudflare Turnstile: โหลด script จาก challenges.cloudflare.com เมื่อเปิด waitlist modal, ส่ง browser fingerprint + behavioral signals + IP ไปยัง Cloudflare เพื่อ verify ว่าเป็นมนุษย์ (ตามนโยบาย Cloudflare Turnstile)
  • Anti-bot — honeypot + timing: honeypot field website + form-open timestamp t_open — server ตรวจแล้วทิ้งทันที
  • CSP violation reports: timestamp + document URL + violated directive + blocked URI + source file + line number + UA → edge KV storage 30 วัน (debugging only, ไม่มี personal data)
  • Web Vitals beacon (เมื่อ opt-in analytics): batched LCP/INP/CLS/FCP/TTFB → POST /api/vitals → Cloudflare Workers Logs (selectors ถูก strip เหลือ tag-name, source URL ถูก hash, ไม่มี user identifier)

การวิเคราะห์ traffic

ทำงาน เฉพาะเมื่อ opt-in ใน banner หรือหน้าตั้งค่า (default: ปิด):

  • Cookieless analytics — ไม่ใช้ cookie, ไม่ระบุตัวบุคคล
  • First-party cookie analytics — anonymize IP เป็น default, first-party cookie เก็บ session id (ไม่มี PII)
  • Web Vitals — LCP/INP/CLS/FCP/TTFB ผ่าน event web_vitals
  • User events — navigation, calculate (price_range เป็นช่วง ไม่ใช่ราคาเจาะจง), compare, share, history actions, payment/campaign selection, dashboard views, tax-guide reads, calculation errors, low-margin / below-benchmark / reverse-unreachable warnings, waitlist register — ทั้งหมดไม่มี personal identifier
  • Consent decision — event consent_decision บันทึกเฉพาะ ทางเลือก (accept-all / necessary-only / custom) + boolean toggle ของแต่ละหมวด + แหล่งที่กด (banner / preferences) ไม่มี identifier ใดๆ — ใช้เพื่อปรับ banner UX. เช่นเดียวกับ event อื่นในหัวข้อนี้ มันถูกส่งออกก็ต่อเมื่อคุณอนุญาตหมวด วิเคราะห์ เท่านั้น: ถ้าคุณเลือก เฉพาะที่จำเป็น เราไม่โหลด gtag.js เลย จึงไม่มีข้อมูลใดออกจากเบราว์เซอร์ของคุณ

affiliate_* events ผูกกับ consent การตลาด แยกต่างหาก — ดูหัวข้อ §4 ด้านล่าง

Google Consent Mode v2: ก่อน gtag.js โหลด, default state ของทุก ad/analytics signal ตั้งเป็น denied — เมื่อคุณกดยอมรับ จึงปลด deny เฉพาะหมวดที่อนุญาต (ระบบ GA4 modeled-conversions ของ Google ใช้ข้อมูลนี้ในการประเมินสถิติแบบไม่ระบุตัวตน)

ข้อมูลเพื่อการตลาด / Affiliate

ทำงาน เฉพาะเมื่อยอมรับทั้งหมด หรือเปิดสวิตช์ การตลาด/Affiliate ในหน้าตั้งค่า (default: ปิด):

  • Click ID — เซ็นด้วย cryptographic signature ฝั่ง server, บันทึก ≤ 3 เดือน ใน edge analytics (ไม่มีอีเมล/ชื่อร้าน/IP เก็บคู่) · ถ้าคุณไม่เปิดหมวดนี้ ช่องนี้จะถูกบันทึกเป็นค่าว่าง — เซิร์ฟเวอร์อ่าน คุกกี้ km_consent_mkt (§2) ก่อนเขียนทุกครั้ง
  • Affiliate events — impression / click / coupon_copy / share — ส่งแค่ offer_id + program + surface
  • Meta Pixel (Facebook/Instagram): เมื่อคุณเปิดหมวดนี้ เราโหลด สคริปต์จาก connect.facebook.net ซึ่งตั้งคุกกี้ _fbp และส่งเหตุการณ์ PageView (URL หน้าที่เปิด + IP + User-Agent) ไปยัง Meta Platforms, Inc. (US) เพื่อวัดผลโฆษณาและทำรีมาร์เก็ตติ้ง — ไม่ส่งอีเมล/ชื่อร้าน และไม่เปิด Advanced Matching
  • เลขประจำตัวผู้เสียภาษีของคุณไม่ถูกใช้ — เก็บแค่ flag boolean (true/false) ไม่ใช่เลข 13 หลัก

สองอย่างที่ทำงานเสมอ แม้คุณปิดหมวดนี้

  • Sub-ID + URL params forwarding — เมื่อ redirect ไปพาร์ตเนอร์ (Shopee/TikTok/Lazada/อื่นๆ) เราแนบ cid (click_id), utm_source/medium/campaign/content, และ utm_term (category bucket ที่คุณเปิดอยู่) เป็น query params ใน destination URL — เป็นส่วนหนึ่งของลิงก์ที่คุณกดเอง จึงไม่ผูกกับสวิตช์นี้ · พาร์ตเนอร์เห็นข้อมูลเหล่านี้ แต่ไม่ได้รับ PII (อีเมล/ชื่อร้าน/IP) จากเราโดยตรง
  • บันทึกกันคลิกปลอมแบบไม่ระบุตัวตน — ทุกครั้งที่มีการเรียก /go/* เราเก็บ 1 แถวใน edge analytics (≤ 3 เดือน) ประกอบด้วย offer/สินค้า, surface + ตำแหน่งการ์ดที่กด, และผลตรวจบอท (verdict + คะแนน + digest ของสัญญาณ) — ไม่มี Click ID เมื่อคุณไม่ได้เปิดหมวดนี้ ไม่มี IP และไม่เก็บ User-Agent ดิบ · ใช้เพื่อกันบอทปั่นคลิกที่ทำให้ยอดค่าคอมเพี้ยนเท่านั้น (ฐานทางกฎหมาย: ประโยชน์อันชอบธรรมด้านความปลอดภัย ไม่ใช่ความยินยอมทางการตลาด)

ระยะเวลาเก็บข้อมูล

  • Waitlist (Supabase): จนกว่าผู้ใช้จะขอลบ
  • localStorage: จนกว่าผู้ใช้จะลบเอง / clear browser storage
  • sessionStorage: ลบเมื่อปิด tab (session-scoped)
  • IP rate-limit: 60 วินาที (sliding window)
  • Waitlist email dedup map: 60 นาที (in-memory, normalized address)
  • Consent state: จนกว่าจะลบ หรือ PDPA policy version เปลี่ยน
  • CSP violation reports (KV): 30 วัน
  • Web Vitals beacon (Workers Logs): ตาม retention ของ Cloudflare Workers Logs (default ~7 วัน)
  • Analytics provider logs (Google): 14 เดือน (default ของผู้ให้บริการ)
  • Affiliate click logs (Workers Analytics Engine): 3 เดือน

ผู้ให้บริการ (Data Processors)

  • Cloudflare (US, edge ทั่วโลก) — sub-services ที่ใช้:
    • โฮสติ้ง production (Workers) + edge cache (KV)
    • Rate Limiting API (waitlist + vitals + csp-report)
    • Turnstile (CAPTCHA) — เฉพาะเมื่อเปิด waitlist modal
    • Workers Analytics Engine — affiliate click logging
    • Workers Logs — Web Vitals + CSP reports
    • Cookieless Web Analytics — เฉพาะเมื่อ opt-in
  • Supabase (US/EU regions) — เก็บ waitlist (email + ชื่อร้าน)
  • Google (US) — Google Analytics 4 (gtag.js, opt-in) + Web Vitals events + server-side Measurement Protocol สำหรับ affiliate_redirect_error (ไม่ผูกกับ session ผู้ใช้)
  • Meta Platforms, Inc. (US) — Meta Pixel (เฉพาะเมื่อ opt-in การตลาด): PageView + IP + UA เพื่อวัดผลโฆษณา/รีมาร์เก็ตติ้งบน Facebook/Instagram — นโยบายข้อมูลของ Meta

ข้อมูลอาจไหลผ่านโครงสร้างพื้นฐาน cross-border (ส่วนใหญ่ US) ตาม service agreement + privacy policy ของแต่ละราย

ผู้ควบคุมข้อมูล & ติดต่อ

KhumMai · ดำเนินการในประเทศไทย · คำถามเรื่องความเป็นส่วนตัว / ขอลบข้อมูล / ร้องเรียน → อีเมล: info@khummai.com

สิ่งที่เราไม่ทำ

  • ไม่ขายหรือเช่าข้อมูลผู้ใช้ให้บุคคลที่สาม
  • ไม่ใช้คุกกี้โฆษณา/cross-site tracking โดยอัตโนมัติ — Meta Pixel ทำงานเฉพาะเมื่อคุณกดยินยอมหมวดการตลาด (ปิดเป็นค่าเริ่มต้น เปลี่ยนใจได้ทุกเมื่อ)
  • ไม่เชื่อมต่อบัญชี Shopee/TikTok/Lazada ของผู้ใช้
  • ไม่เก็บข้อมูลคำนวณบนเซิร์ฟเวอร์ — คำนวณ client-side ทั้งหมด

สิทธิ์ของคุณ

  • ลบประวัติคำนวณ:ปุ่ม “ลบประวัติทั้งหมด” ในแท็บประวัติ หรือล้างข้อมูลเบราว์เซอร์
  • จัดการความยินยอม PDPA: หน้าตั้งค่าความเป็นส่วนตัว
  • ยกเลิก waitlist / ขอสำเนา / แก้ไข: อีเมลด้านบน — ตอบกลับภายใน 7 วัน
  • ร้องเรียนต่อ PDPC: สำนักงานคณะกรรมการคุ้มครองข้อมูลส่วนบุคคล — www.pdpc.or.th

การเปลี่ยนแปลงนโยบายจะแสดงในวันที่อัปเดตและ PDPA policy version ด้านบน