# นโยบายการใช้คุกกี้และพื้นที่จัดเก็บในอุปกรณ์ (Cookie & Local Storage Policy)

> เวอร์ชัน 2026-09-03

นโยบายนี้อธิบายการใช้คุกกี้ localStorage, sessionStorage, IndexedDB, Service Worker/Cache Storage permission ของอุปกรณ์ และเทคโนโลยีที่คล้ายกันเมื่อท่านใช้ Maakrop (มาครบ) ผ่าน maakrop.com หรือเว็บแอป/PWA

นโยบายนี้เป็นส่วนหนึ่งของนโยบายความเป็นส่วนตัวที่ https://maakrop.com/legal/privacy ปัจจุบันเราไม่มีคุกกี้โฆษณา ไม่มีการทำ profiling เพื่อการตลาด และไม่มีคุกกี้ติดตามข้ามเว็บไซต์ของเรา

## 1. คุกกี้และพื้นที่จัดเก็บในอุปกรณ์คืออะไร

คุกกี้คือข้อมูลขนาดเล็กที่เบราว์เซอร์จัดเก็บและส่งกลับไปยังเว็บไซต์ตามขอบเขตที่กำหนด ส่วน localStorage และ sessionStorage เก็บข้อมูลในเบราว์เซอร์โดยไม่ถูกส่งไปกับทุกคำขอ IndexedDB ใช้เก็บข้อมูลที่มีโครงสร้างและข้อมูลออฟไลน์ และ Service Worker/Cache Storage อาจเก็บหน้าและทรัพยากรเพื่อให้เว็บทำงานเร็วขึ้นหรือใช้งานบางส่วนแบบออฟไลน์

ข้อมูลเหล่านี้อาจเป็นข้อมูลส่วนบุคคลเมื่อเชื่อมโยงกับบัญชี session อุปกรณ์ หรือข้อมูลนักเรียน จึงต้องได้รับการจัดการตามนโยบายนี้และนโยบายความเป็นส่วนตัว

กล้อง ไมโครโฟน และตำแหน่งเป็น permission ของเบราว์เซอร์/ระบบปฏิบัติการ ไม่ใช่คุกกี้ แต่เราอธิบายในนโยบายนี้ด้วยเพราะเป็นข้อมูลและสิทธิที่เกิดบนอุปกรณ์ของผู้ใช้และเกี่ยวข้องกับบางฟีเจอร์

## 2. เหตุผลและฐานทางกฎหมายที่เราใช้

เราใช้คุกกี้และพื้นที่จัดเก็บที่จำเป็นหรือเป็น functional preference เพื่อให้ผู้ใช้เข้าสู่ระบบ รักษาความปลอดภัย ดำเนิน OAuth จดจำภาษา/หน้าตา/สถานะเมนู จดจำการตั้งค่าเครื่องมือ ทำ flow ชั่วคราวให้ต่อเนื่อง และใช้งานฟีเจอร์ออฟไลน์ตามที่ร้องขอ โดยอาศัยฐานการปฏิบัติตามสัญญาและประโยชน์โดยชอบด้วยกฎหมายด้านความปลอดภัยและการทำงานของบริการ

เนื่องจากปัจจุบันเราไม่มีคุกกี้โฆษณาหรือคุกกี้ analytics ที่ไม่จำเป็น จึงยังไม่มีแถบเลือกยอมรับ/ปฏิเสธคุกกี้สำหรับการตลาด หากภายหลังมีการเพิ่มเทคโนโลยีที่กฎหมายกำหนดให้ต้องขอความยินยอม เราจะขอความยินยอมก่อนเปิดใช้งานและจัดให้ถอนความยินยอมได้

## 3. รายการคุกกี้และพื้นที่จัดเก็บที่ใช้

ชื่อคุกกี้ทางเทคนิคบางรายการอาจแตกต่างกันตาม environment ไลบรารี authentication และการตั้งค่าความปลอดภัย ตาราง/รายการด้านล่างจึงอธิบายทั้งชื่อที่เรากำหนดเองและหน้าที่ของกลุ่มคุกกี้ที่ระบบสร้าง

### 3.1 คุกกี้ session และความปลอดภัยของระบบยืนยันตัวตน

ใช้รักษาสถานะการเข้าสู่ระบบ ป้องกันการปลอมคำขอ และผูก session กับบัญชีที่ถูกต้อง คุกกี้ session อาจมีอายุสูงสุดประมาณ 90 วัน โดยระบบอาจต่ออายุเมื่อมีการใช้งานหรือเพิกถอนก่อนกำหนดได้ ข้อมูล cache ของ session บางส่วนอาจมีอายุสั้นกว่านั้นเพื่อช่วยลดการอ่านฐานข้อมูล

คุกกี้กลุ่มนี้เป็นคุกกี้ที่จำเป็น หากบล็อกหรือลบ ผู้ใช้อาจถูกออกจากระบบหรือไม่สามารถใช้หน้าที่ต้องยืนยันตัวตนได้

### 3.2 คุกกี้ชั่วคราวสำหรับ OAuth และการเชื่อมบัญชี

เมื่อสมัคร/เข้าสู่ระบบด้วย Google เชื่อมบัญชี Google หรืออนุญาตแอปภายนอก ระบบอาจตั้งคุกกี้ชั่วคราวเพื่อเก็บ state, PKCE verifier, nonce, callback destination หรือข้อมูลป้องกัน CSRF คุกกี้เหล่านี้มีไว้ตรวจสอบว่าคำขอและ callback เป็น flow เดียวกัน และจะถูกใช้เพียงช่วงสั้น ๆ จนกระบวนการสำเร็จ ล้มเหลว หรือหมดอายุ

### 3.3 NEXT_LOCALE

ใช้จดจำภาษาที่เลือก เช่น ไทย/อังกฤษ เป็นคุกกี้การตั้งค่าของ maakrop.com และคงอยู่จนกว่าจะหมดอายุ ผู้ใช้เปลี่ยนภาษา หรือล้างข้อมูลเว็บไซต์ การลบคุกกี้นี้ไม่ลบบัญชี แต่ภาษาจะกลับไปใช้ค่าที่ระบบตรวจพบหรือค่าเริ่มต้น

### 3.4 `cf_sidebar` และ `cf_ai_rail`

- `cf_sidebar` ใช้จดจำว่าผู้ใช้ยุบหรือขยายแถบเมนูหลักของแอป
- `cf_ai_rail` ใช้จดจำว่าผู้ใช้ยุบหรือขยายแถบรายการบทสนทนาในหน้าผู้ช่วย AI

คุกกี้สองรายการนี้เป็น functional preference, path `/`, SameSite=Lax และตามการทำงานปัจจุบันมีอายุสูงสุดประมาณ 1 ปี การลบคุกกี้จะทำให้ UI กลับไปใช้ค่าเริ่มต้น แต่ไม่ลบบัญชีหรือข้อมูลการสอน

### 3.5 localStorage สำหรับการตั้งค่าและเครื่องมือบนอุปกรณ์

Maakrop ใช้ localStorage เพื่อจดจำค่าที่ไม่จำเป็นต้องส่งไปกับทุก request และช่วยให้ประสบการณ์ใช้งานคงเดิมบนอุปกรณ์นั้น ตัวอย่างอาจรวมถึง:

- โหมดสว่าง/มืด ธีม สี ฟอนต์ หรือการตั้งค่าหน้าตาที่รองรับ
- จำนวนแถวต่อหน้าของรายชื่อนักเรียน
- แท็บหรือมุมมองล่าสุดของเครื่องมือสแกน
- เวลาที่ผู้ใช้ปิดคำแนะนำติดตั้ง PWA เพื่อไม่แสดงซ้ำทันที
- ค่าตัวจับเวลา เสียง กระดานคะแนน ป้ายกำหนดเอง วงล้อสุ่ม หรือเครื่องมือในห้องเรียนอื่น
- สถานะ client ที่ช่วยให้ UI รู้ว่าได้เห็น/ดำเนินการกับเวอร์ชันนโยบายใดแล้ว โดยหลักฐานที่มีผลจริงยังบันทึกฝั่งเซิร์ฟเวอร์

ข้อมูล localStorage โดยทั่วไปอยู่จนผู้ใช้เปลี่ยนค่า ล้าง site data เบราว์เซอร์ล้างข้อมูล หรือโค้ดของฟีเจอร์นั้นลบออก ค่าเหล่านี้เป็นการตั้งค่า/ข้อมูลของเครื่องมือ ไม่ใช้เพื่อโฆษณาหรือติดตามข้ามเว็บไซต์

### 3.6 sessionStorage สำหรับ flow ชั่วคราวในแท็บ

sessionStorage ใช้เก็บสถานะชั่วคราวที่ควรอยู่เฉพาะแท็บหรือ session ของหน้าเว็บ เช่น:

- marker/token ที่ช่วยกลับเข้าสู่ขั้นตอน enrollment หลัง redirect
- สถานะ tour/คู่มือที่กำลังเปิดและ step ที่จะกลับมาทำต่อ
- การปิดแบนเนอร์ยืนยันอีเมลชั่วคราวในแท็บ
- รายการรหัสนักเรียนที่ผู้ใช้เลือกชั่วคราวเพื่อส่งต่อไปยัง flow ภายใน เช่นหน้ารายชื่อนักเรียน

sessionStorage โดยปกติถูกล้างเมื่อปิดแท็บหรือหน้าต่างตามพฤติกรรมของเบราว์เซอร์ การล้างระหว่าง flow อาจทำให้ต้องเริ่มขั้นตอนนั้นใหม่ แต่ไม่ลบบัญชีหรือข้อมูลหลักในฐานข้อมูล

### 3.7 IndexedDB สำหรับการเช็กชื่อออฟไลน์

ฐานข้อมูลฝั่งเบราว์เซอร์ เช่น `maakrop-offline` อาจเก็บ snapshot รายชื่อและ session การเช็กชื่อ รวมถึงรายการ mark หรือการแก้ไขที่ยังไม่ sync ในคิวออฟไลน์ ข้อมูลนี้อาจมีข้อมูลนักเรียนและผลการเข้าเรียน จึงควรใช้อุปกรณ์ที่ล็อกหน้าจอและไม่แชร์กับบุคคลที่ไม่ได้รับอนุญาต

ระบบพยายามล้างข้อมูลออฟไลน์เมื่อ logout หรือสลับบัญชี และล้างหลัง sync ตาม flow ที่เกี่ยวข้อง แต่ผู้ใช้ยังควรล้าง site data ด้วยตนเองเมื่อเลิกใช้อุปกรณ์สาธารณะหรืออุปกรณ์ร่วม

### 3.8 Service Worker และ Cache Storage

PWA อาจเก็บหน้าและทรัพยากรของ Maakrop เพื่อรองรับการโหลดเร็วและออฟไลน์ หน้าเช็กชื่อหรือทรัพยากรที่ถูก cache อาจมีข้อมูลที่แสดงบนอุปกรณ์ ระบบจะพยายามล้าง cache ที่เกี่ยวข้องเมื่อ logout/สลับบัญชีตาม flow ที่รองรับ แต่การล้างข้อมูลเว็บไซต์ในเบราว์เซอร์เป็นวิธีที่แน่นอนที่สุดบนอุปกรณ์ที่ไม่ได้ใช้งานต่อ

### 3.9 Umami analytics แบบไม่ใช้คุกกี้

เราอาจโหลด tracker จาก analytics.maakrop.com ซึ่งเป็น Umami ที่โฮสต์เอง เพื่อวัดสถิติแบบรวม เช่น หน้า referrer ประเภทอุปกรณ์ เบราว์เซอร์ ระบบปฏิบัติการ และประเทศโดยประมาณ Tracker นี้ไม่ตั้งคุกกี้ analytics ตามการทำงานปัจจุบัน และไม่สร้างตัวระบุถาวรเพื่อการโฆษณาหรือติดตามพฤติกรรมข้ามเว็บไซต์

### 3.10 กล้อง ไมโครโฟน และ permission ของเบราว์เซอร์

บางฟีเจอร์ เช่น พิมพ์ด้วยเสียง สื่อการสอน AR/เกม หรือสื่อ HTML ที่ผู้ดูแลเปิดสิทธิ์ อาจขอใช้กล้องหรือไมโครโฟนผ่าน permission API ของเบราว์เซอร์ Permission ไม่ใช่คุกกี้และไม่ได้หมายความว่า Maakrop สามารถเข้าถึงกล้อง/ไมโครโฟนได้ตลอดเวลา ผู้ใช้เป็นผู้อนุญาตหรือปฏิเสธ และสามารถถอนสิทธิ์จากการตั้งค่าของเบราว์เซอร์/ระบบปฏิบัติการ

สื่อ HTML ที่ได้รับอนุญาตกล้อง/ไมโครโฟนอาจถูกโหลดผ่าน sandbox origin แยกจากแอปหลักเพื่อให้สื่อไม่สามารถใช้ cookie/session ของแอปหลักโดยตรงตามการออกแบบความปลอดภัย อย่างไรก็ตาม เบราว์เซอร์อาจบันทึกสถานะ permission แยกต่างหากตามนโยบายของเบราว์เซอร์ ซึ่งผู้ใช้จัดการได้จากการตั้งค่า site permissions

## 4. คุกกี้และเทคโนโลยีของบุคคลภายนอก

เมื่อท่านออกจาก Maakrop ไปยังเว็บไซต์หรือหน้าที่ผู้ให้บริการภายนอกควบคุม หรือเมื่อฟีเจอร์ใช้ทรัพยากรภายนอก ผู้ให้บริการนั้นอาจใช้คุกกี้ พื้นที่จัดเก็บ หรือเทคโนโลยีของตนตามนโยบายของตน เราไม่สามารถกำหนดอายุหรือการทำงานของข้อมูลบนโดเมนภายนอกได้

- Google: เมื่อท่านถูกส่งไปยัง accounts.google.com เพื่อเข้าสู่ระบบหรือเชื่อมบัญชี Google อาจใช้คุกกี้เพื่อยืนยันตัวตน ความปลอดภัย การป้องกันการฉ้อโกง และการจดจำบัญชีที่เลือก คุกกี้เหล่านั้นอยู่ภายใต้นโยบายของ Google และไม่ได้ถูกตั้งโดย maakrop.com
- Stripe/ผู้ให้บริการชำระเงิน: เมื่อท่านเข้าสู่ checkout หรือหน้าที่ผู้ให้บริการควบคุม ผู้ให้บริการอาจใช้คุกกี้เพื่อดำเนินการชำระเงิน ความปลอดภัย และการป้องกันการฉ้อโกง
- แอปภายนอกที่เชื่อมผ่าน OAuth/MCP: หากผู้ใช้ถูกส่งไปยังเว็บไซต์ของแอปนั้น แอปอาจใช้คุกกี้ตามนโยบายของผู้ให้บริการ
- OpenStreetMap/ผู้ให้บริการแผนที่: เมื่อแผนที่โหลดทรัพยากรจากภายนอก ผู้ให้บริการอาจได้รับ IP address และ request headers มาตรฐาน แม้เราไม่แนบชื่อหรือรหัสนักเรียนไปในคำขอเมื่อไม่จำเป็น
- Speech Recognition ของเบราว์เซอร์: การถอดเสียงบางโหมดใช้บริการที่เบราว์เซอร์หรือระบบปฏิบัติการจัดให้ ผู้ผลิตอาจใช้ storage หรือนโยบายการประมวลผลของตนเอง และอาจประมวลผลเสียงผ่านบริการ cloud ตามผลิตภัณฑ์/การตั้งค่า
- สื่อการสอนหรือเว็บไซต์ภายนอก: สื่อ HTML หรือลิงก์ที่ผู้ใช้สร้างอาจร้องขอทรัพยากรจากโดเมนอื่นภายใต้ข้อจำกัดของระบบ ผู้ให้บริการปลายทางอาจได้รับข้อมูลเครือข่ายมาตรฐานและใช้เทคโนโลยีของตนเอง

บริการฝั่งเซิร์ฟเวอร์ เช่น Vercel AI Gateway, Workflows/Queues, Sandbox, Neon, AWS S3 หรือผู้ให้บริการโมเดล AI อาจประมวลผลข้อมูลจากคำขอ แต่โดยตัวมันเองไม่ใช่คุกกี้ที่ตั้งในเบราว์เซอร์ของผู้ใช้ผ่านหน้า Maakrop เว้นแต่ผู้ใช้ถูกนำไปยังหน้า/โดเมนของผู้ให้บริการนั้นหรือ implementation เปลี่ยนในอนาคต

## 5. วิธีจัดการ ลบ หรือปฏิเสธ

ท่านสามารถดู ลบ หรือบล็อกคุกกี้และ site data จากการตั้งค่าความเป็นส่วนตัวของเบราว์เซอร์ การล้าง site data ของ maakrop.com โดยทั่วไปจะลบคุกกี้ localStorage, sessionStorage, IndexedDB และ Cache Storage ในขอบเขตที่เบราว์เซอร์รองรับ

การปิดคุกกี้ที่จำเป็นหรือการล้างข้อมูลระหว่างใช้งานอาจทำให้ session สิ้นสุด OAuth ล้มเหลว การตั้งค่าหน้าจอรีเซ็ต tour/enrollment ที่กำลังทำอยู่เริ่มใหม่ ข้อมูลออฟไลน์ที่ยังไม่ sync สูญหาย หรือฟีเจอร์บางส่วนทำงานไม่ได้ โปรด sync ข้อมูลสำคัญก่อนล้างข้อมูลออฟไลน์

การล้างข้อมูลจาก maakrop.com ไม่ได้ลบคุกกี้ permission grant หรือข้อมูลที่อยู่ในบัญชี Google/Stripe/ผู้ผลิตเบราว์เซอร์/แอปภายนอก ผู้ใช้ต้องจัดการจากหน้าบัญชีหรือการตั้งค่าของผู้ให้บริการนั้นเพิ่มเติม

ผู้ใช้สามารถจัดการ permission กล้อง ไมโครโฟน และตำแหน่งจาก site settings ของเบราว์เซอร์หรือการตั้งค่าระบบปฏิบัติการ การถอน permission อาจทำให้เฉพาะฟีเจอร์นั้นใช้ไม่ได้

## 6. ข้อมูลของผู้เยาว์และอุปกรณ์ร่วม

บัญชีนักเรียนอาจเป็นบัญชีของผู้เยาว์และฟีเจอร์ออฟไลน์อาจเก็บข้อมูลนักเรียนบนอุปกรณ์ ครู โรงเรียน ผู้ปกครอง และผู้ดูแลอุปกรณ์ควรกำหนดการล็อกหน้าจอ แยกบัญชีผู้ใช้ของอุปกรณ์ หลีกเลี่ยงการบันทึกรหัสผ่านในเครื่องสาธารณะ และล้าง site data หลังใช้งาน

ไม่ควรอนุญาตกล้อง/ไมโครโฟนให้สื่อหรือเว็บไซต์ที่ไม่ทราบแหล่งที่มา และควรตรวจสอบสื่อก่อนนำไปใช้กับผู้เยาว์

คุกกี้และ storage ของเราไม่ได้ใช้เพื่อโฆษณาหรือ profiling เด็ก

## 7. การเปลี่ยนแปลงนโยบายและการขอความยินยอมในอนาคต

เราจะอัปเดต version และวันที่มีผลเมื่อมีการเปลี่ยนแปลงคุกกี้ พื้นที่จัดเก็บ ผู้ให้บริการ หรือวัตถุประสงค์ที่ควรแจ้งให้ผู้ใช้ทราบ

การเพิ่ม functional cookie หรือ storage ที่จำเป็นต่อบริการอาจไม่ทำให้ต้องมี consent banner หากกฎหมายไม่กำหนด แต่เราจะปรับรายการให้ตรงกับ runtime ตามสมควร

หากเพิ่ม advertising cookie, cross-site tracking, non-essential analytics หรือเทคโนโลยีอื่นที่ต้องอาศัยความยินยอม เราจะจัดทำกลไก Cookie Preferences/CMP ให้ผู้ใช้เลือกเปิด/ปิดและถอนความยินยอมได้ก่อนใช้งานเทคโนโลยีนั้นตามที่กฎหมายกำหนด การรับทราบ Cookie Policy เพียงอย่างเดียวไม่ถือเป็นความยินยอมแทนกลไกดังกล่าว

## 8. ติดต่อ

คำถามเกี่ยวกับคุกกี้ พื้นที่จัดเก็บ permission หรือการล้างข้อมูลในอุปกรณ์ส่งได้ที่ support@maakrop.com รายละเอียดการประมวลผลข้อมูลและสิทธิของท่านอยู่ที่ https://maakrop.com/legal/privacy
