trusty — Website Trust Platform
Privacy Fundamentals

เปรียบเทียบแนวทางสร้างระบบความยินยอมตาม PDPA สำหรับเว็บไซต์ SME: ทำเอง ใช้ปลั๊กอิน หรือใช้แพลตฟอร์ม

เปรียบเทียบการสร้างระบบขอความยินยอมตาม PDPA บนเว็บไซต์ด้วยตัวเอง ใช้ปลั๊กอิน หรือใช้แพลตฟอร์ม พร้อมวิธีทดสอบว่า Reject All บล็อกสคริปต์จริงหรือเป็นแค่ปุ่มตกแต่ง

📅 เผยแพร่ 12 สิงหาคม 2569อัปเดตล่าสุด 12 สิงหาคม 2569✍️ เขียนโดย trusty Editorial Team⏱ อ่าน 9 นาที
Three business colleagues engage in a productive meeting, exchanging ideas with data charts.
ภาพโดย https://kaboompics.com/ จาก Pexels

💬 สรุปสั้น ๆ

ระบบความยินยอมตาม PDPA สร้างได้ 3 แนวทาง คือทำเองด้วยทีมพัฒนา ใช้ปลั๊กอิน Cookie Banner สำเร็จรูป หรือใช้แพลตฟอร์มที่ผูก Consent กับการบล็อกสคริปต์และเก็บ Log ให้อัตโนมัติ สิ่งที่ตัดสินคุณภาพจริงไม่ใช่หน้าตา Banner แต่คือ Reject All ปิดสคริปต์ได้จริงหรือไม่ และผู้ใช้ถอนความยินยอมภายหลังได้หรือไม่

สารบัญ

Banner ที่มีปุ่ม Accept All และ Reject All สวยงามครบถ้วนไม่ได้แปลว่าระบบความยินยอมทำงานถูกต้อง ทีมจำนวนมากพบภายหลังว่ากดปุ่ม Reject All แล้วสคริปต์โฆษณาหรือ Analytics ยังส่งข้อมูลออกไปเหมือนเดิม เพราะปุ่มไม่ได้ผูกกับการบล็อกสคริปต์จริง เป็นเพียงองค์ประกอบหน้าตาที่แสดงผลเฉยๆ

บทความนี้เปรียบเทียบสามแนวทางสร้างระบบขอความยินยอมตาม PDPA บนเว็บไซต์ SME ได้แก่ ทำเองด้วยทีมพัฒนา ใช้ปลั๊กอิน Cookie Banner สำเร็จรูป และใช้แพลตฟอร์มที่ผูก Consent กับการบล็อกสคริปต์และเก็บหลักฐานให้อัตโนมัติ พร้อมวิธีทดสอบว่าระบบที่เลือกใช้งานได้จริงหรือเป็นแค่หน้าตา ดูภาพรวมกระบวนการทั้งหมดเพิ่มเติมได้ที่คู่มือความยินยอมตาม PDPA สำหรับเว็บไซต์ SME

ความยินยอมตาม PDPA ที่ใช้ได้จริงต้องมีอะไรบ้าง

ความยินยอมที่ใช้งานได้จริงต้องมีองค์ประกอบต่อไปนี้ครบ ไม่ใช่แค่มีปุ่มให้กด

  • ผู้ใช้เห็นตัวเลือก Accept All, Reject All และ Customize ชัดเจนเท่ากัน ไม่เอนเอียงให้กด Accept ง่ายกว่า Reject
  • สคริปต์ที่ไม่จำเป็นต้องไม่ทำงานก่อนผู้ใช้กดเลือก
  • เมื่อกด Reject All สคริปต์ในหมวดที่ไม่จำเป็นต้องหยุดทำงานจริง ไม่ใช่แค่ซ่อน Banner
  • ผู้ใช้เปลี่ยนใจหรือถอนความยินยอมภายหลังได้ผ่านช่องทางที่เข้าถึงง่าย
  • มีการบันทึกเวลา หมวดที่เลือก และเวอร์ชันของ Banner ที่ผู้ใช้เห็นในขณะนั้น

สามแนวทางสร้างระบบความยินยอมบนเว็บไซต์

ทำเองด้วยทีมพัฒนา

ทีมเขียนโค้ด Banner เอง ผูก Logic ให้สคริปต์แต่ละตัวตรวจสถานะ Consent ก่อนโหลด และสร้างตารางฐานข้อมูลเก็บ Log เอง ข้อดีคือควบคุมพฤติกรรมได้ละเอียดตามที่ต้องการ ข้อจำกัดคือทุกครั้งที่เพิ่มสคริปต์ใหม่ ทีมต้องแก้โค้ดผูก Consent เพิ่มเอง หากลืมจุดใดจุดหนึ่ง สคริปต์นั้นจะทำงานโดยไม่มีการควบคุมทันที

ปลั๊กอินให้ Banner พร้อมใช้และมักมีตัวเลือกบล็อกสคริปต์ที่ติดตั้งผ่านปลั๊กอินเอง Reject All ต้องทำอะไรบ้างถึงจะถือว่าใช้งานได้จริง คำตอบคือต้องหยุดการโหลดสคริปต์ทุกตัวในหมวดที่ไม่จำเป็น ไม่ใช่แค่ซ่อนแบนเนอร์ ปลั๊กอินหลายตัวควบคุมได้เฉพาะสคริปต์ที่ตั้งค่าผ่านระบบของปลั๊กอิน ส่วนสคริปต์ที่ธีมหรือปลั๊กอินอื่นฝังตรงในหน้าเว็บมักไม่ถูกควบคุม จึงต้องทดสอบเพิ่มทุกครั้งหลังติดตั้ง

แพลตฟอร์มอย่าง trusty จัดหมวดคุกกี้ที่สแกนพบ ผูกการบล็อกสคริปต์กับสถานะ Consent ของผู้ใช้ และเก็บ Consent Log พร้อมเวอร์ชันของ Banner ให้อัตโนมัติเมื่อเปิดใช้งานและตั้งค่าครบตามคู่มือ ข้อดีคือลดงานผูก Logic เองทีละสคริปต์ ข้อจำกัดคือสคริปต์ที่ฝังผ่าน Google Tag Manager หรือฝังตรงในโค้ดของธีมยังต้องให้ทีมตั้งค่าการเชื่อมต่อให้ถูกต้อง ระบบไม่สามารถควบคุมสคริปต์ที่ไม่ได้เชื่อมต่อไว้ได้เอง

ประเด็นทำเองปลั๊กอินแพลตฟอร์ม
ผูก Consent กับสคริปต์ใหม่ต้องเขียนโค้ดเพิ่มทุกครั้งเฉพาะสคริปต์ที่ตั้งค่าผ่านปลั๊กอินต้องเชื่อมต่อผ่านการตั้งค่าที่ระบบรองรับ
สคริปต์ที่ฝังตรงในธีม/หน้าเว็บควบคุมได้หากเขียนครบมักไม่ถูกควบคุมต้องตั้งค่าเชื่อมต่อเพิ่มเติม
การถอนความยินยอมต้องพัฒนาช่องทางเองบางปลั๊กอินมีปุ่มเปลี่ยนการตั้งค่ามีช่องทางเปลี่ยนการตั้งค่าให้ในระบบ
Consent Logสร้างฐานข้อมูลเองบางปลั๊กอินมีให้ รูปแบบจำกัดเก็บพร้อมเวอร์ชัน Banner อัตโนมัติ

ทดสอบว่า Reject All ทำงานจริงหรือเป็นแค่ปุ่มตกแต่ง

ไม่ว่าจะเลือกแนวทางไหน ควรทดสอบด้วยขั้นตอนเดียวกันนี้ก่อนใช้งานจริง

  • เปิดหน้าเว็บด้วยเบราว์เซอร์แบบไม่ระบุตัวตนหรือล้าง Cookie ก่อนทุกครั้ง
  • เปิด Network Tab ดูว่ามี Request ไปยัง Analytics หรือโฆษณาก่อนกดปุ่มใด ๆ หรือไม่
  • กด Reject All แล้วรีเฟรชหน้า ตรวจว่า Request เหล่านั้นหายไปจริง
  • ทดสอบซ้ำในหน้าที่ผู้ใช้เข้าถึงบ่อย เช่น หน้าสินค้า หน้าตะกร้า และหน้าชำระเงิน
  • ทดสอบอีกครั้งหลังเปลี่ยนธีม อัปเดตปลั๊กอิน หรือแก้ไข Container ของ GTM

การถอนความยินยอมทำได้จริงหรือไม่ในแต่ละแนวทาง

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

อีกคำถามที่พบบ่อยคือใช้ Google Consent Mode แล้วเท่ากับปฏิบัติตาม PDPA ครบหรือไม่ คำตอบคือไม่ใช่ Consent Mode เป็นกลไกส่งสถานะความยินยอมให้ Google Tag ปรับพฤติกรรมการเก็บข้อมูล ไม่ใช่ตัวขอความยินยอมเองและไม่ใช่ฐานทางกฎหมาย การตั้งค่า Consent Mode ต้องอ้างอิงเอกสารของ Google Tag Platform ฉบับล่าสุด และยังต้องมี Banner ที่ขอความยินยอมจริงควบคู่กันเสมอ

เกณฑ์เลือกแนวทางตามจำนวนสคริปต์ที่ใช้งาน

  • มีสคริปต์ติดตามน้อยกว่า 5 ตัวและทีมพัฒนามีเวลา — ทำเองควบคุมได้ทุกจุด
  • ใช้ WordPress หรือ Shopify และสคริปต์ส่วนใหญ่ติดผ่านปลั๊กอิน — เริ่มจากปลั๊กอินได้แต่ต้องทดสอบสคริปต์ที่ฝังตรงเพิ่ม
  • มีสคริปต์จากหลายทีมผ่าน GTM และเปลี่ยนแปลงบ่อย — แพลตฟอร์มที่เก็บ Log และแจ้งเตือนเมื่อพบสคริปต์ใหม่ช่วยลดความเสี่ยงตกหล่น

ตัวอย่างสถานการณ์: Banner ผ่านการตรวจแต่ Reject All ยังยิง Pixel อยู่

ทีมการตลาดของเว็บไซต์อีคอมเมิร์ซรายหนึ่งติดตั้ง Consent Banner ผ่านปลั๊กอินและทดสอบตอนติดตั้งว่าใช้งานได้ปกติ ทุกอย่างดูเรียบร้อยจนกระทั่งทีมพัฒนาเปลี่ยน Container ของ Google Tag Manager เพื่อรองรับแคมเปญโฆษณาช่วงเทศกาล และเพิ่ม Facebook Pixel ตัวใหม่เข้าไปโดยตั้งค่าให้ยิงทันทีที่หน้าเว็บโหลดโดยไม่ได้ผูกกับสถานะ Consent เพราะทีมที่ตั้งค่า GTM ไม่ทราบว่าต้องเชื่อมกับระบบ Consent ของปลั๊กอินที่ทีมอื่นดูแลอยู่

ผลคือผู้ใช้ที่กด Reject All ยังถูก Pixel เก็บพฤติกรรมและนำไปใช้ทำ Retargeting เหมือนเดิม ปัญหานี้ไม่ถูกพบทันทีเพราะ Banner ยังแสดงผลปกติและปุ่มยังกดได้ ทีมพบปัญหาหลังจากทดสอบ Reject All ซ้ำตามรอบตรวจสอบประจำไตรมาสด้วยการเปิด Network Tab เทียบกับผลทดสอบครั้งก่อน จึงเห็นว่ามี Request ใหม่ที่ไม่เคยมีตอนทดสอบครั้งแรกหลุดออกไปแม้กด Reject All แล้ว บทเรียนสำคัญคือการทดสอบครั้งเดียวตอนติดตั้งไม่เพียงพอ ต้องมีรอบทดสอบซ้ำทุกครั้งที่มีการแก้ไข Container ของ GTM ไม่ว่าทีมที่แก้จะเป็นทีมเดียวกับที่ดูแล Consent หรือไม่ก็ตาม

พร้อมตรวจสอบความน่าเชื่อถือของเว็บไซต์คุณหรือยัง?

ทดลองใช้งาน trusty ฟรี ไม่ต้องใช้บัตรเครดิต เริ่มสแกนได้ทันที

ทดลองใช้งานระบบฟรี

เมื่อธุรกิจใช้ Google Tag Manager ควบคุม Tag หลายตัว ความเสี่ยงที่ Tag ใหม่จะไม่ถูกผูกกับ Consent สูงกว่าสคริปต์ที่ติดตั้งตรง เพราะทีมการตลาดมักเพิ่ม Tag ได้เองผ่านหน้า GTM โดยไม่ต้องแก้โค้ดเว็บไซต์ ขั้นตอนที่ช่วยลดความเสี่ยงนี้มีดังนี้

  • กำหนด Trigger ของทุก Tag ที่ไม่จำเป็นให้ตรวจสอบสถานะ Consent ก่อนทำงาน ไม่ใช่ตั้งเป็น All Pages เฉย ๆ
  • ตั้งกฎในทีมว่า Tag ใหม่ทุกตัวต้องผ่านการตรวจสอบร่วมกับทีมที่ดูแล Consent ก่อน Publish Container จริง
  • ใช้ Environment ทดสอบของ GTM ก่อน Publish ทุกครั้ง และทดสอบ Reject All ในสภาพแวดล้อมทดสอบนั้นก่อน
  • ตั้งปฏิทินแจ้งเตือนให้ทดสอบ Reject All ซ้ำทุกไตรมาส ไม่ต้องรอให้มีคนแจ้งปัญหาเข้ามาก่อน
  • เก็บ Log การเปลี่ยนแปลง Container ไว้เทียบกับผลทดสอบ Consent เพื่อสืบย้อนได้ว่าการเปลี่ยนแปลงใดทำให้เกิดปัญหา

ความแตกต่างระหว่างการทดสอบตอนติดตั้งกับการทดสอบตามรอบ

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

ธุรกิจที่ใช้ Google Consent Mode มักไม่ทราบว่ามีสองรูปแบบที่ทำงานต่างกัน แบบพื้นฐานจะหยุดส่งข้อมูลไปยัง Google Tag ทั้งหมดเมื่อผู้ใช้ปฏิเสธ ทำให้ Tag ไม่ทำงานเลยจนกว่าจะได้รับความยินยอม ส่วนแบบขั้นสูงยังส่งสัญญาณบางอย่างแบบไม่ระบุตัวตนไปให้ Google เพื่อใช้ทำแบบจำลองข้อมูล แม้ผู้ใช้จะปฏิเสธก็ตาม ความแตกต่างนี้สำคัญเพราะธุรกิจที่ต้องการควบคุมเข้มงวดตามแนวทางที่ระบุไว้ในนโยบายของตนต้องรู้ว่ากำลังใช้โหมดใดอยู่ และควรอ้างอิงเอกสารทางการของ Google Tag Platform ฉบับล่าสุดก่อนตัดสินใจเลือกใช้โหมดใดโหมดหนึ่ง เพราะรายละเอียดทางเทคนิคอาจมีการปรับปรุงต่อเนื่อง

เมื่อทีมมีสคริปต์ติดตามจากหลายทีมพร้อมกันควรจัดระเบียบอย่างไร

ธุรกิจขนาดกลางที่มีทั้งทีมการตลาด ทีมขาย และทีมพัฒนาผลิตภัณฑ์ต่างเพิ่มสคริปต์ติดตามของตัวเองเข้าไปในเว็บไซต์โดยไม่ประสานงานกัน มักลงเอยด้วยสคริปต์ซ้ำซ้อนหรือสคริปต์ที่ไม่มีใครรู้ว่าใครเป็นเจ้าของ แนวทางที่ช่วยจัดระเบียบคือทำทะเบียนสคริปต์กลางที่ระบุชื่อสคริปต์ ทีมที่รับผิดชอบ วัตถุประสงค์ และหมวด Consent ที่ผูกไว้ แล้วให้ทุกทีมที่ต้องการเพิ่มสคริปต์ใหม่ต้องลงทะเบียนในเอกสารนี้ก่อน Publish จริงทุกครั้ง วิธีนี้ช่วยให้เมื่อเกิดปัญหา เช่น Reject All ไม่หยุดสคริปต์บางตัว ทีมสามารถสืบย้อนได้ทันทีว่าใครเป็นเจ้าของสคริปต์นั้นและควรติดต่อใครเพื่อแก้ไข

เช็กลิสต์ปฏิบัติ

  • ตรวจว่า Accept All และ Reject All มีน้ำหนักภาพเท่ากันบน Banner
  • ทดสอบว่า Reject All หยุดสคริปต์ในหมวดที่ไม่จำเป็นจริงด้วย Network Tab
  • เปิดช่องทางให้ผู้ใช้ถอนหรือเปลี่ยนความยินยอมได้ทุกเมื่อ
  • เก็บ Consent Log พร้อมเวลา หมวดที่เลือก และเวอร์ชันของ Banner
  • ทดสอบสคริปต์ที่ฝังผ่าน GTM และธีมแยกจากสคริปต์ที่ติดผ่านเครื่องมือหลัก
  • ทดสอบซ้ำทุกครั้งหลังเปลี่ยนธีม ปลั๊กอิน หรือแก้ไข Container

ข้อผิดพลาดที่พบบ่อย

  • Banner แสดงผลสวยงามแต่ Reject All ไม่ได้หยุดสคริปต์จริง เพราะไม่ได้ผูก Logic ไว้
  • ตั้งค่า Google Consent Mode แล้วเข้าใจว่าเท่ากับได้รับความยินยอมตาม PDPA ครบแล้ว
  • ไม่มีช่องทางให้ผู้ใช้ถอนความยินยอมภายหลัง ผู้ใช้ต้องล้าง Cookie เองถึงจะเปลี่ยนการตั้งค่าได้
  • ทีมการตลาดเพิ่ม Tag ใหม่ผ่าน GTM โดยไม่แจ้งทีมที่ดูแล Consent ทำให้สคริปต์ใหม่ไม่ถูกควบคุม
  • ทดสอบ Reject All แค่ครั้งเดียวตอนติดตั้ง แล้วไม่เคยทดสอบซ้ำหลังอัปเดตเว็บไซต์

สรุป

ระบบความยินยอมตาม PDPA ที่ดีตัดสินกันที่การทำงานเบื้องหลัง ไม่ใช่หน้าตา Banner ไม่ว่าจะทำเอง ใช้ปลั๊กอิน หรือใช้แพลตฟอร์ม ทีมต้องทดสอบว่า Reject All หยุดสคริปต์จริง เปิดช่องให้ถอนความยินยอมได้ และเก็บหลักฐานพร้อมเวอร์ชันของ Banner ทุกครั้งที่เปลี่ยนแปลง แพลตฟอร์มที่รวมการบล็อกสคริปต์กับ Consent Log ช่วยลดงานผูก Logic เองทีละจุด แต่ยังต้องมีทีมตั้งค่าและทดสอบให้ครบทุกสคริปต์ที่ใช้งานจริง ดูวิธีเลือกเครื่องมือสำหรับงาน PDPA ทั้งระบบเพิ่มเติมได้ที่บทความเปรียบเทียบแนวทางทำ PDPA สำหรับเว็บไซต์ SME หรือดูหัวข้ออื่นในหมวดPrivacy Fundamentals

แหล่งข้อมูลอ้างอิง

คำถามที่พบบ่อย

ความยินยอมตาม PDPA ที่ใช้ได้จริงต้องมีอะไรบ้าง

ต้องมีตัวเลือก Accept All, Reject All และ Customize ที่เห็นชัดเท่ากัน สคริปต์ที่ไม่จำเป็นต้องไม่ทำงานก่อนผู้ใช้เลือก และเมื่อกด Reject All สคริปต์ต้องหยุดจริง พร้อมเปิดช่องให้ถอนความยินยอมภายหลังและมีการบันทึกหลักฐานการเลือกไว้

Reject All ต้องทำอะไรบ้างถึงจะถือว่าใช้งานได้จริง

ต้องหยุดการโหลดสคริปต์ทุกตัวในหมวดที่ไม่จำเป็นทันทีที่ผู้ใช้กด ไม่ใช่แค่ซ่อน Banner ทดสอบได้ด้วยการเปิด Network Tab ดูว่า Request ไปยัง Analytics หรือโฆษณาหายไปหลังกด Reject All และรีเฟรชหน้า

ถอนความยินยอมภายหลังทำได้หรือไม่

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

ใช้ Google Consent Mode แล้วเท่ากับปฏิบัติตาม PDPA ครบหรือไม่

ไม่ใช่ Consent Mode เป็นกลไกส่งสถานะความยินยอมให้ Google Tag ปรับพฤติกรรมการเก็บข้อมูล ไม่ใช่ตัวขอความยินยอมเองและไม่ใช่ฐานทางกฎหมาย ยังต้องมี Banner ที่ขอความยินยอมจริงควบคู่กันเสมอ

อ่านต่อในหัวข้อเดียวกัน

Colleagues working on a business report using charts in a modern office setting.
Privacy FundamentalsFreshness Update

อัปเดต ความยินยอมตาม PDPA ปี 2026: สิ่งที่เว็บไซต์ธุรกิจทั่วไปและ SMEต้องทบทวน

หลายธุรกิจเข้าใจว่าติดตั้ง Consent Banner ครั้งเดียวตอนเปิดเว็บไซต์ก็จบเรื่องความยินยอมตลอดไป ความเข้าใจนี้ไม่ตรงกับสภาพจริง บทความนี้รวมสิ่งที่ SME ควรทบทวนเรื่องความยินยอมในปี 2026

อัปเดต 26 ก.ค. 2569· อ่าน 7 นาที
Two colleagues reviewing financial documents and graphs during an office meeting.
Privacy FundamentalsAudit Guide

วิธี Audit ความยินยอมตาม PDPA ของเว็บไซต์ธุรกิจทั่วไปและ SME พร้อม Evidence ที่ควรเก็บ

เว็บไซต์ SME ที่มี Cookie Consent banner ติดตั้งไว้แล้ว ไม่ได้แปลว่าเก็บหลักฐานความยินยอมไว้ครบ บทความนี้วางขั้นตอน Audit ความยินยอมตาม PDPA แบบเป็นรอบ พร้อม Evidence ที่ควรเก็บแต่ละจุด

อัปเดต 26 ก.ค. 2569· อ่าน 9 นาที

เนื้อหานี้จัดทำขึ้นเพื่อให้ข้อมูลทั่วไปเท่านั้น ไม่ถือเป็นคำแนะนำทางกฎหมาย กรุณาปรึกษาผู้เชี่ยวชาญด้านกฎหมายหรือ Data Protection Officer ของหน่วยงานท่านก่อนนำไปปฏิบัติจริง

พร้อมตรวจสอบความน่าเชื่อถือของเว็บไซต์คุณหรือยัง?

ทดลองใช้งาน trusty ฟรี ไม่ต้องใช้บัตรเครดิต เริ่มสแกนได้ทันที