นโยบายการใช้คุกกี้และพื้นที่จัดเก็บในอุปกรณ์ (Cookie & Local Storage Policy)
นโยบายนี้อธิบายการใช้คุกกี้ 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