[GA4] BigQuery Export

Exporting Data from Google Analytics 4 Properties to BigQuery

สําหรับคําบรรยายในภาษาของคุณ ให้เปิดคำบรรยายวิดีโอใน YouTube เลือกไอคอนการตั้งค่า รูปภาพไอคอนการตั้งค่า YouTube ที่ด้านล่างของวิดีโอเพลเยอร์ จากนั้นเลือก "คําบรรยาย" แล้วเลือกภาษา


BigQuery คือคลังข้อมูลในระบบคลาวด์ที่ช่วยให้คุณค้นหาข้อมูลจากชุดข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพในระดับสูง

คุณสามารถส่งออกเหตุการณ์ซึ่งเป็นข้อมูลดิบทั้งหมดจากพร็อพเพอร์ตี้ Google Analytics 4 (รวมถึงพร็อพเพอร์ตี้ย่อยและพร็อพเพอร์ตี้ภาพรวม) ไปยัง BigQuery จากนั้นใช้ไวยากรณ์ที่คล้ายกับ SQL เพื่อค้นหาข้อมูลนั้นได้ คุณจะเลือกส่งออกข้อมูลใน BigQuery ไปยังที่จัดเก็บข้อมูลภายนอก หรือนำเข้าข้อมูลภายนอกเพื่อนำมารวมกับข้อมูล Analytics ได้

เมื่อส่งออกข้อมูลไปยัง BigQuery คุณจะเป็นเจ้าของข้อมูลนั้น และใช้ BigQuery ACL เพื่อจัดการสิทธิ์ในโปรเจ็กต์และชุดข้อมูลได้

หมายเหตุ: เมื่อส่งออกข้อมูลจาก Analytics ไปยัง BigQuery แล้ว คุณจะส่งออกข้อมูลดังกล่าวอีกครั้งไม่ได้

การส่งออกข้อมูลอย่างเต็มรูปแบบจะเกิดขึ้นวันละครั้ง แต่ระบบจะส่งออกข้อมูลอย่างต่อเนื่องตลอดทั้งวันด้วยเช่นกัน (ดูการส่งออกแบบสตรีมด้านล่าง)

คุณสามารถส่งออกไปยังอินสแตนซ์ฟรีของ BigQuery (แซนด์บ็อกซ์ของ BigQuery) ได้ แต่การส่งออกที่เกินขีดจำกัดแซนด์บ็อกซ์จะมีค่าใช้จ่าย

พร็อพเพอร์ตี้มาตรฐานมี BigQuery Export รายวันอยู่ที่ 1 ล้านเหตุการณ์ ดูข้อมูลเพิ่มเติมเกี่ยวกับขีดจํากัดอื่นๆ ของ BigQuery Export

ประเภท BigQuery Export

Google Analytics มีตัวเลือกการส่งออกของ BigQuery ต่อไปนี้ ซึ่งแต่ละตัวเลือกจะมีความพร้อมใช้งานของข้อมูลในแต่ละวันแตกต่างกันไป และควรเลือกตามความต้องการด้านข้อมูลและงบประมาณ

ประเภทการส่งออก เหมาะอย่างยิ่งเมื่อคุณต้องการ... รายละเอียดการส่งออก จำกัดสูงสุด คำเตือน

การส่งออกรายวัน

(มาตรฐาน, 360)

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

ส่งออกข้อมูลเหตุการณ์ดิบที่ไม่ได้สุ่มตัวอย่างทั้งหมดวันละครั้งจากวันก่อนหน้า

ไม่รับประกันเวลาที่เจาะจง

โดยปกติจะส่งออกข้อมูลในช่วงบ่ายในเขตเวลาของพร็อพเพอร์ตี้ แต่อาจล่าช้าจนถึงช่วงเย็นหรือวันถัดไป

คลิกสุดท้ายที่สังเกตได้ ไม่ต้องใช้การประมาณ

พร็อพเพอร์ตี้มาตรฐาน: สูงสุด 1 ล้านเหตุการณ์ต่อวัน พร้อมตัวเลือกการกรองเพื่อไม่ให้เกินขีดจํากัด

พร็อพเพอร์ตี้ 360: เหตุการณ์สูงสุด 20,000 ล้านรายการต่อวัน

ข้อมูลบางอย่าง เช่น การระบุแหล่งที่มาของผู้ใช้ อาจล่าช้าสูงสุดถึง 24 ชั่วโมง เราจึงขอแนะนำให้ใช้การส่งออกรายวันแทนการสตรีมสำหรับข้อมูลการระบุแหล่งที่มาของผู้ใช้

ข้อมูลใหม่รายวัน

(360)

ข้อมูลเร็วขึ้นและสมบูรณ์มากขึ้นตลอดทั้งวัน

โดยปกติข้อมูลจะมาถึงภายในเวลา 05.00 น.

การอัปเดตเป็นกลุ่มตลอดทั้งวัน โดยปกติจะใช้เวลาไม่เกิน 60 นาที

สคีมาเดียวกับการส่งออกรายวัน

การส่งออกจะเริ่มขึ้นตามเขตเวลาของพร็อพเพอร์ตี้

คลิกสุดท้ายที่สังเกตได้ ไม่ต้องใช้การประมาณ

เร็วกว่าการส่งออกรายวันมาก

SLA ไม่พร้อมใช้งานสำหรับพร็อพเพอร์ตี้ขนาด XL บางรายการ ใช้ได้กับพร็อพเพอร์ตี้ 360 "ปกติ" และ "ขนาดใหญ่" เท่านั้น

สตรีมมิง

(มาตรฐาน, 360)

ข้อมูลแบบเกือบเรียลไทม์ (ภายในไม่กี่นาที)

การส่งออกแบบเรียลไทม์ของข้อมูลในวันปัจจุบัน

บริการอย่างเต็มที่: ทำงานโดยไม่มี SLO ที่รับประกันความสมบูรณ์และอาจมีช่องว่างของข้อมูล

ไม่จำกัดปริมาณ ระบบจะไม่รวมข้อมูลแหล่งที่มาของการเข้าชมของผู้ใช้ใหม่และเซสชันใหม่ในการส่งออก

หมายเหตุ: การส่งออกแต่ละครั้งจะมีค่าใช้จ่ายเกี่ยวกับพื้นที่เก็บข้อมูลและการประมวลผลใน BigQuery คุณจะต้องเสียค่าใช้จ่าย BigQuery เพิ่มเติมเมื่อใช้การส่งออกแบบสตรีมในอัตรา $0.05 ต่อข้อมูล 1 กิกะไบต์ ซึ่งเท่ากับเหตุการณ์ของ Google Analytics ประมาณ 600,000 รายการ ทั้งนี้จํานวนดังกล่าวจะแตกต่างกันไปตามขนาดเหตุการณ์ ดูข้อมูลเพิ่มเติมเกี่ยวกับราคาของ BigQuery

ความแตกต่างระหว่างอินเทอร์เฟซ Google Analytics กับ BigQuery Export

การส่งออกเหตุการณ์ BigQuery ให้สิทธิ์เข้าถึงเหตุการณ์ซึ่งเป็นข้อมูลดิบและข้อมูลระดับผู้ใช้ ยกเว้นการใส่ค่าเพิ่มเติมใดๆ ที่ Google Analytics สร้างขึ้นสำหรับข้อมูลที่พบในรายงานและการสํารวจมาตรฐาน ด้วยเหตุนี้ ข้อมูลจากการส่งออกเหตุการณ์ BigQuery จึงอาจแตกต่างจากข้อมูลในอินเทอร์เฟซ Google Analytics

หากต้องการทําความเข้าใจความแตกต่างระหว่างการส่งออกเหตุการณ์ BigQuery กับอินเทอร์เฟซ Google Analytics และสํารวจวิธีลดความแตกต่างเหล่านี้เมื่อเป็นไปได้ โปรดดูการลดช่องว่างระหว่าง UI ของ Google Analytics กับ BigQuery Exportry

การส่งออกแบบสตรีม

คุณเลือกตัวเลือกการส่งออกแบบสตรีมได้เมื่อลิงก์พร็อพเพอร์ตี้ Google Analytics 4 กับ BigQuery

การส่งออกแบบสตรีมของ BigQuery ช่วยให้คุณมีข้อมูลที่สดใหม่ของแต่ละวันพร้อมใช้ผ่าน BigQuery Export ภายในไม่กี่นาที

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

การส่งออกแบบสตรีมจะสร้างตารางใหม่ 1 ตารางทุกวัน ดังนี้

  • events_intraday_YYYYMMDD: ตารางชั่วคราวภายในที่มีบันทึกกิจกรรมของเซสชันที่เกิดขึ้นระหว่างวัน การส่งออกแบบสตรีมเป็นการดำเนินการที่น่าจะดีที่สุด แต่อาจไม่ได้รวมข้อมูลบางส่วนเนื่องจากสาเหตุต่างๆ เช่น การประมวลผลเหตุการณ์ที่ล่าช้าและ/หรือการอัปโหลดที่ล้มเหลว ระบบจะส่งออกข้อมูลอย่างต่อเนื่องตลอดทั้งวัน ตารางนี้อาจรวมบันทึกของเซสชันเมื่อเซสชันนั้นครอบคลุมการดำเนินการส่งออกหลายครั้ง ระบบจะลบตารางเมื่อ events_YYYYMMDD สมบูรณ์

หากคุณเลือกตัวเลือกรายวันเมื่อตั้งค่า BigQuery Export ระบบจะสร้างตารางต่อไปนี้ขึ้นในแต่ละวันด้วย

  • events_YYYYMMDD: การส่งออกเหตุการณ์รายวันอย่างเต็มรูปแบบ

คุณควรค้นหา events_YYYYMMDD แทน events_intraday_YYYYMMDD เพื่อที่คุณจะได้ค้นหาชุดข้อมูลที่เสถียรของวันนั้น

ดูข้อมูลเพิ่มเติมเกี่ยวกับตาราง events_YYYYMMDD และ events_intraday_YYYYMMDD ได้ที่สคีมา BigQuery Export

การส่งออกแบบสตรีมของ BigQuery จะไม่รวมข้อมูลการระบุแหล่งที่มาของผู้ใช้ใหม่ต่อไปนี้

  • traffic_source.name (มิติข้อมูลการรายงาน: แคมเปญผู้ใช้)
  • traffic_source.source (มิติข้อมูลการรายงาน: แหล่งที่มาของผู้ใช้)
  • traffic_source.medium (มิติข้อมูลการรายงาน: สื่อของผู้ใช้)

ระบบจะรวมข้อมูลการระบุแหล่งที่มาของผู้ใช้ที่มีอยู่ไว้ด้วย แต่ข้อมูลนั้นต้องใช้เวลาประมาณ 24 ชั่วโมงในการประมวลผลอย่างเต็มรูปแบบ เราจึงไม่แนะนําให้อาศัยข้อมูลดังกล่าวจากการส่งออกแบบสตรีม และให้รับข้อมูลการระบุแหล่งที่มาของผู้ใช้จากการส่งออกรายวันแบบเต็มรูปแบบแทน

คุณจะต้องเสียค่าใช้จ่าย BigQuery เพิ่มเติมเมื่อใช้การส่งออกแบบสตรีมในอัตรา $0.05 ต่อข้อมูล 1 กิกะไบต์ ซึ่งเท่ากับเหตุการณ์ของ Google Analytics ประมาณ 600,000 รายการ ทั้งนี้จํานวนดังกล่าวจะแตกต่างกันไปตามขนาดเหตุการณ์ ดูข้อมูลเพิ่มเติมเกี่ยวกับราคาของ BigQuery

การส่งออกข้อมูลใหม่รายวัน

ตอนนี้คุณสามารถเลือก "การส่งออกข้อมูลใหม่รายวัน" นอกเหนือจากตัวเลือก "การส่งออกรายวัน" และ "การส่งออกแบบสตรีม" ปัจจุบันการส่งออกข้อมูลใหม่รายวันใช้ได้กับพร็อพเพอร์ตี้ Analytics 360 และคุณเปิดใช้ตัวเลือกการส่งออก 3 รายการนี้แยกกันได้

หากต้องการกำหนดค่าการส่งออกข้อมูลใหม่รายวัน คุณต้องตั้งค่าการเรียกเก็บเงินใน Google Cloud Platform ดูเพิ่มเติมเกี่ยวกับการส่งออกข้อมูลใหม่รายวันของ BigQuery (GA360)

สัญญาณความสมบูรณ์

สําหรับลูกค้า GA360 ที่ใช้การส่งออกข้อมูลใหม่รายวัน สัญญาณความสมบูรณ์จะแจ้งให้คุณทราบเมื่อส่งออกข้อมูลของวันก่อนหน้าทั้งหมดแล้ว

วิธีเข้าถึงสัญญาณความสมบูรณ์

  1. ลงชื่อเข้าใช้ Cloud Logging แล้วไปที่ส่วน "Logs Explorer"
  2. ค้นหา "การส่งออกเสร็จสมบูรณ์"

Logs Explorer อาจต้องเพิ่มช่วงการประทับเวลา เนื่องจากข้อความมักจะเกิดขึ้นประมาณ 05:00 น. ในเขตเวลาของพร็อพเพอร์ตี้

คุณดูสัญญาณความสมบูรณ์ได้ในส่วน Log Router ของ Cloud Logging ซึ่งสามารถพุชไปยังหัวข้อ Cloud Pub/Sub

กําหนดเวลาการอัปเดตตาราง

การอัปเดตตารางที่สร้างขึ้นอันเป็นส่วนหนึ่งของ BigQuery Export อยู่ในเขตเวลาของพร็อพเพอร์ตี้ Analytics ที่กําลังส่งออกข้อมูล หากมีการเปลี่ยนแปลงเขตเวลาของพร็อพเพอร์ตี้ การเปลี่ยนแปลงดังกล่าวจะส่งผลต่อ BigQuery Export ซึ่งอาจทําให้ข้อมูลคลาดเคลื่อนหรือระบบข้ามการส่งออกรายวัน

ตารางการส่งออกแบบสตรีม (events_intraday_YYYYMMDD) ได้รับการอัปเดตอย่างต่อเนื่องตลอดทั้งวัน (เช่น ตั้งแต่ 00.00.00 น. จนถึง 23.59.59 น. ในเขตเวลาของพร็อพเพอร์ตี้) เมื่อเริ่มต้นวันใหม่ในเขตเวลาของพร็อพเพอร์ตี้ ระบบจะเขียนเหตุการณ์ลงในตารางระหว่างวันใหม่

ระบบจะสร้างตารางการส่งออกรายวัน (events_YYYYMMDD) หลังจากที่ Analytics รวบรวมเหตุการณ์ทั้งหมดของวัน Analytics จะอัปเดตตารางรายวันโดยเพิ่มเวลาไปอีกสูงสุด 72 ชั่วโมงนับจากวันที่ของตาราง เพื่อให้รวมข้อมูลเหตุการณ์ที่ประทับเวลาในวันที่ของตาราง เช่น กลุ่มเหตุการณ์ที่ได้ข้อมูลมาช้าจาก Measurement Protocol หรือ Firebase SDK ตัวอย่างเช่น หากวันที่ในตารางคือ 20220101 Analytics ก็จะอัปเดตตารางจนถึง 20220104 พร้อมด้วยเหตุการณ์ที่มีการประทับเวลาวันที่ 20220101

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

คําสั่ง ping ที่ไม่มีคุกกี้และข้อมูลที่ลูกค้าให้ไว้

เมื่อมีการใช้โหมดความยินยอม คำสั่ง ping ที่ไม่มีคุกกี้ที่ Analytics รวบรวมไว้จะปรากฏใน BigQuery Export ควบคู่ไปกับข้อมูลที่ลูกค้าให้ไว้ เช่น user_id และมิติข้อมูลที่กําหนดเอง

โฆษณาทดแทนมิติข้อมูลแหล่งที่มาของการเข้าชมที่ "ไม่พร้อมใช้งาน"

คุณใช้แหล่งข้อมูลต่อไปนี้เพื่อค้นหามิติข้อมูลแหล่งที่มาของการเข้าชมที่มีการระบุแหล่งที่มาสําหรับ GCLID หนึ่งๆ ได้ โปรดทราบว่าตัวระบุ wBRAID และ gBRAID จะไม่รวมอยู่ใน BigQuery Export

  • Google Ads API
  • สคริปต์ Google Ads
  • บริการโอนข้อมูล BigQuery สำหรับ Google Ads

หากต้องการค้นหา GCLID สำหรับบันทึกที่ "ไม่พร้อมใช้งาน" ในคอลัมน์ "traffic_source" ให้ค้นหาฟิลด์ GCLID ในคอลัมน์ "collected_traffic_source" ดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีค้นหาข้อมูลแคมเปญใน Google Ads จาก GCLID หนึ่งๆ ได้ที่ข้อตกลงระดับการให้บริการสําหรับ BigQuery Export

GA4 - การผสานรวม Firebase กับ BigQuery

หากมีการผสานรวมพร็อพเพอร์ตี้ GA4 กับโปรเจ็กต์ Firebase คุณจะลิงก์กับโปรเจ็กต์ BigQuery แยกต่างหากไม่ได้

เปรียบเทียบ BigQuery Export ใน Google Analytics 4 กับ Universal Analytics

Google Analytics 4 Universal Analytics

มีให้บริการสําหรับแบบมาตรฐาน (ฟรี) และ 360 (มีค่าใช้จ่าย)

ขีดจํากัดมาตรฐาน: 1 ล้านกิจกรรมต่อวัน

ขีดจํากัด 360: หลายพันล้านเหตุการณ์ต่อวัน

พร้อมใช้งานสําหรับ 360 (มีค่าใช้จ่าย)

ค่าใช้จ่าย

ส่งออกฟรีไปยังแซนด์บ็อกซ์ของ BigQuery ภายในขีดจํากัดแซนด์บ็อกซ์

ข้อมูลที่ส่งออกซึ่งเกินขีดจํากัดแซนด์บ็อกซ์จะมีการเรียกเก็บเงินตามข้อกําหนดของสัญญา

ค่าใช้จ่าย

ส่งออกฟรีไปยังแซนด์บ็อกซ์ของ BigQuery ภายในขีดจํากัดแซนด์บ็อกซ์

ข้อมูลที่ส่งออกซึ่งเกินขีดจํากัดแซนด์บ็อกซ์จะมีการเรียกเก็บเงินตามข้อกําหนดของสัญญา

ตั้งค่า

รวมสตรีมข้อมูลที่เฉพาะเจาะจงและยกเว้นเหตุการณ์ที่เฉพาะเจาะจงสําหรับพร็อพเพอร์ตี้แต่ละรายการได้

(ให้คุณควบคุมปริมาณการส่งออกและค่าใช้จ่าย)

ตั้งค่า

ลิงก์ข้อมูลพร็อพเพอร์ตี้ 1 รายการต่อพร็อพเพอร์ตี้ได

(ส่งออกข้อมูลทั้งหมดในข้อมูลพร็อพเพอร์ตี้นั้น)

การส่งออกแบบสตรีม

$0.05 ต่อ GB (ดูข้อมูลราคาของ BigQuery เพิ่มเติม)

สร้างตารางเมื่อ:

events_intraday_YYYYMMDD

ตารางจะลบในแต่ละวันดังนี้

  • หากคุณใช้ตัวเลือกการส่งออกรายวันเพิ่มเติมจากสตรีมมิง
  • เมื่อตารางรายวันสมบูรณ์

ไม่รวมข้อมูลแคมเปญผู้ใช้ แหล่งที่มาของผู้ใช้ หรือสื่อของผู้ใช้สําหรับผู้ใช้ใหม่

การส่งออกแบบสตรีม

$0.05 ต่อ GB (ดูข้อมูลราคาของ BigQuery เพิ่มเติม)

สร้างตารางเมื่อ:

ga_realtime_sessions_YYYYMMDD

สร้างมุมมอง BigQuery แล้ว:

ga_realtime_sessions_view_YYYYMMDD

การส่งออกประจำวัน

สร้างตารางเมื่อ:

events_YYYYMMDD

การส่งออกประจำวัน

ตารางที่สร้าง

ga_sessions_intraday_YYYYMMDD

  • อัปเดตอย่างน้อยวันละ 3 ครั้ง
  • การอัปเดตแต่ละครั้งเขียนทับข้อมูลก่อนหน้า
  • ลบเมื่อการนําเข้าแบบเต็มจากวันถัดไปเสร็จสมบูรณ์

ga_sessions_YYYYMMDD

  • การนําเข้ารายวันแบบเต็ม

การส่งออกข้อมูลใหม่รายวัน

ใช้ได้กับพร็อพเพอร์ตี้ 360 "ปกติ" และ "ขนาดใหญ่"

ดูเพิ่มเติมเกี่ยวกับความแตกต่างของการประมวลผลสำหรับการส่งออกข้อมูลรายวันกับข้อมูลใหม่รายวัน

ไม่เกี่ยวข้อง

ส่งออก ทั่วไป

โฆษณาทดแทน: ไม่มีโฆษณาทดแทน

ชุดข้อมูล: สําหรับพร็อพเพอร์ตี้ที่ลิงก์แต่ละรายการ ชุดข้อมูล 1 รายการที่ชื่อ analytics_<รหัสพร็อพเพอร์ตี้>

หากใช้โหมดคํายินยอม การส่งออกจะประกอบไปด้วยสิ่งต่อไปนี้

  • การใช้คําสั่ง ping ที่ไม่มีคุกกี้
  • ข้อมูลที่ลูกค้าให้ไว้ (user_id, มิติข้อมูลที่กําหนดเอง)

ส่งออก ทั่วไป

โฆษณาทดแทน: เมื่อลิงก์แล้ว โฆษณาทดแทนจะเป็นข้อมูล 13 เดือนหรือ Hit 10B แล้วแต่ว่าจํานวนใดจะน้อยกว่า

(โฆษณาทดแทนไปยัง BigQuery Sandbox อาจล้มเหลวได้)

ชุดข้อมูล: ข้อมูลพร็อพเพอร์ตี้ที่ลิงก์แต่ละรายการจะมีชุดข้อมูล 1 รายการที่เหมือนกับข้อมูลพร็อพเพอร์ตี้

ส่งออกสคีมา

GA4 ส่งออกเฉพาะแหล่งที่มาของการเข้าชมที่ได้ผู้ใช้ก่อน

ไม่รองรับข้อมูล UA ที่ส่งออกไปยัง BigQuery

แต่ละแถวในตาราง BigQuery แสดงถึงเหตุการณ์ 1 รายการ

ข้อมูลเหตุการณ์ที่ไม่ซ้ํากันของ Google Analytics 4

แม้จะมีฟิลด์ Google Analytics 4 บางฟิลด์ที่เหมือนกับฟิลด์ Universal Analytics (เช่น device.category และ device.deviceCategory) แต่ข้อมูลเหตุการณ์ของ GA4 กับข้อมูล Hit ของ UA มีความแตกต่างกันมากกว่า

ส่งออกสคีมา

การระบุแหล่งที่มาระดับเซสชันในหลายทัชพอยต์

แต่ละแถวในตาราง BigQuery จะแสดงเซสชัน

ข้อมูล Hit ที่ไม่ซ้ํากับ Universal Analytics

แม้จะมีฟิลด์ Universal Analytics บางฟิลด์ที่เหมือนกับฟิลด์ Google Analytics 4 (เช่น device.deviceCategory และ device.category) แต่ข้อมูล Hit ของ UA กับข้อมูลเหตุการณ์ของ GA4 มีความแตกต่างกันมากกว่า

แหล่งข้อมูลที่เกี่ยวข้อง

ไปที่คู่มือนักพัฒนาซอฟต์แวร์ BigQuery เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ

ข้อมูลนี้มีประโยชน์ไหม

เราจะปรับปรุงได้อย่างไร
ค้นหา
ล้างการค้นหา
ปิดการค้นหา
แอป Google
เมนูหลัก