Event Tracking ในแอปมือถือ: คืออะไร ประเภทของเหตุการณ์ และวิธีตั้งค่า

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-04-21 เวลาอ่าน: 11 นาที

Event Tracking คือการรวบรวมและวิเคราะห์เหตุการณ์เกี่ยวกับการกระทำของผู้ใช้ภายในแอปมือถือ ตั้งแต่การคลิกปุ่มไปจนถึงการซื้อสินค้า Event tracking ที่มีคุณภาพเป็นพื้นฐานของการวิเคราะห์ผลิตภัณฑ์ การทดสอบ A/B และการปรับเปลี่ยนเฉพาะบุคคล ตามข้อมูลจาก Amplitude (2024) ทีมที่มี Event Tracking อย่างเป็นระบบจะตัดสินใจเกี่ยวกับผลิตภัณฑ์ได้เร็วกว่าถึง 3 เท่าด้วยแนวทางที่ขับเคลื่อนด้วยข้อมูล หากไม่มีเหตุการณ์ การวิเคราะห์แอปก็จะไร้ประโยชน์

ประเด็นสำคัญ

  • Event Tracking — การรวบรวมข้อมูลเกี่ยวกับการกระทำของผู้ใช้ แต่ละการกระทำอธิบายด้วยชื่อเหตุการณ์และพารามิเตอร์
  • ประเภทของเหตุการณ์ — แบ่งเป็นอัตโนมัติ (SDK), กำหนดเอง (นักพัฒนา) และเหตุการณ์รายได้
  • การตั้งชื่อเหตุการณ์ — ควรปฏิบัติตามมาตรฐาน Object + Action (เช่น product_added_to_cart)
  • พารามิเตอร์ของเหตุการณ์ — ประกอบด้วยบริบท: ราคา หมวดหมู่สินค้า แหล่งที่มา
  • แพลตฟอร์ม สำหรับ Event Tracking: Firebase Analytics, Amplitude, Mixpanel, Segment

Event Tracking คืออะไร?

Event Tracking คือกระบวนการรวบรวม จัดเก็บ และวิเคราะห์การกระทำเฉพาะของผู้ใช้ในแอป แต่ละเหตุการณ์ประกอบด้วยชื่อ (event_name) และชุดพารามิเตอร์ (event_params) ตัวอย่างเช่น เหตุการณ์ purchase มีพารามิเตอร์ price, currency, product_id, quantity

แตกต่างจาก Screen View ที่บันทึกการเปิดหน้าจอ Event Tracking จะอธิบายว่าผู้ใช้กำลังทำอะไรบนหน้าจอนั้นอย่างแท้จริง: กดปุ่ม "ซื้อ", เปิดตะกร้าสินค้า, ใช้รหัสโปรโมชั่น หากไม่มีเหตุการณ์ จะไม่สามารถเข้าใจแรงจูงใจและบริบทของการกระทำของผู้ใช้ได้

โครงสร้างของเหตุการณ์

แต่ละ Analytics Event ประกอบด้วยฟิลด์ที่จำเป็นและไม่จำเป็น ที่จำเป็น: event_name, event_timestamp, user_id (หรือ device_id) ไม่จำเป็น: พารามิเตอร์, คำอธิบายบริบท

ฟิลด์จำเป็นตัวอย่าง
event_nameใช่"purchase_completed"
event_timestampใช่1719876543000
user_idใช่"user_abc123"
session_idไม่"session_456def"
revenueไม่9.99
currencyไม่"USD"

พารามิเตอร์ revenue มีความสำคัญเป็นพิเศษ — มันถูกส่งไปยังแพลตฟอร์ม MMP เพื่อคำนวณ ROAS และ LTV โดยอัตโนมัติ

ประเภทของเหตุการณ์ในการวิเคราะห์มือถือ

เหตุการณ์ ถูกจำแนกตามแหล่งที่มาและวัตถุประสงค์ การแบ่งนี้ช่วยจัดระเบียบโครงสร้างข้อมูลและกำหนดสิทธิ์การเข้าถึงสำหรับทีมต่างๆ

เหตุการณ์อัตโนมัติ (SDK)

SDK ของแพลตฟอร์มการวิเคราะห์จะรวบรวมเหตุการณ์พื้นฐานโดยอัตโนมัติ: app_install, app_remove, session_start, screen_view Firebase Analytics สร้างเหตุการณ์อัตโนมัติประมาณ 20 รายการโดยไม่ต้องเขียนโค้ดแม้แต่บรรทัดเดียว เหตุการณ์เหล่านี้ครอบคลุมเมตริกพื้นฐาน แต่ไม่ให้ความเข้าใจเกี่ยวกับตรรกะทางธุรกิจ

เหตุการณ์กำหนดเอง (Custom Events)

เหตุการณ์กำหนดเอง คือสิ่งที่ทำให้ Event Tracking มีคุณค่า พวกมันอธิบายการกระทำทางธุรกิจ: add_to_cart, start_subscription, level_complete, share_content, search_performed เหตุการณ์กำหนดเองต้องส่งอย่างชัดเจนจากโค้ดของแอปพลิเคชัน

kotlin
// การส่งเหตุการณ์กำหนดเองไปยัง Firebase
val bundle = Bundle().apply {
    putString(AnalyticsParam.ITEM_ID, "prod_789")
    putString(AnalyticsParam.ITEM_NAME, "Premium Subscription")
    putString(AnalyticsParam.CURRENCY, "USD")
    putDouble(AnalyticsParam.PRICE, 29.99)
    putString(AnalyticsParam.SOURCE, "onboarding_screen")
}
FirebaseAnalytics.getInstance(this)
    .logEvent("subscribe_premium", bundle)

ในตัวอย่าง เหตุการณ์ subscribe_premium มีพารามิเตอร์บริบทสี่ตัว พารามิเตอร์ source ช่วยให้เข้าใจว่าผู้ใช้เริ่มสมัครสมาชิกจากหน้าจอใด — การแนะนำ, การตั้งค่า หรือ paywall

User Properties และ Super Properties

นอกจากเหตุการณ์แล้ว Event Tracking ยังรวมถึง User Properties — คุณลักษณะที่ผูกกับผู้ใช้: ระดับการสมัครสมาชิก ประเทศ เวอร์ชันแอป User Property จะถูกส่งครั้งเดียวและนำไปใช้กับเหตุการณ์ที่ตามมาทั้งหมดในเซสชัน ซึ่งช่วยให้สามารถแบ่งส่วนการวิเคราะห์ได้โดยไม่ต้องเพิ่มพารามิเตอร์ให้กับทุกเหตุการณ์

Super Properties (Amplitude) หรือ Global Properties (Mixpanel) เป็นคุณลักษณะที่ผูกกับเซสชัน ไม่ใช่ผู้ใช้ ใช้สำหรับการทดสอบ A/B: variant_id ถูกเพิ่มเป็น Super Property ให้กับเหตุการณ์ทั้งหมดในเซสชัน เพื่อให้นักวิเคราะห์เห็นว่าผู้ใช้อ'yūอยู่ในกลุ่มใด

เหตุการณ์รายได้

เหตุการณ์รายได้ เป็นคลาสแยกต่างหากสำหรับบันทึกธุรกรรม ประกอบด้วยจำนวนเงิน สกุลเงิน และประเภทการซื้อ (สมัครสมาชิก, ซื้อครั้งเดียว, กู้คืน) แพลตฟอร์ม MMP (AppsFlyer, Adjust) ต้องการเหตุการณ์รายได้เพื่อคำนวณ ROAS

ตามข้อมูลของ Branch (2024) แอปที่ส่งเหตุการณ์รายได้ไปยัง MMP อย่างถูกต้องจะได้รับข้อมูลการระบุแหล่งที่มาที่แม่นยำขึ้น 25% และสามารถปรับแต่งแคมเปญตาม LTV แทน CPI ได้

วิธีตั้งค่า Event Tracking

การตั้งค่า Event Tracking ดำเนินการในสามขั้นตอน: การวางแผนสคีมาเหตุการณ์, การรวม SDK, การตรวจสอบข้อมูล

ขั้นตอนที่ 1: การออกแบบสคีมาเหตุการณ์

สร้าง Event Taxonomy — เอกสารที่อธิบายแต่ละเหตุการณ์: ชื่อ, พารามิเตอร์, ตัวกระตุ้นการส่ง, ผู้รับผิดชอบ ตัวอย่างสำหรับอีคอมเมิร์ซ: order_completed → พารามิเตอร์: order_id, total_price, items_count, payment_method, shipping_city

  • แต่ละเหตุการณ์ตอบคำถาม: ผู้ใช้ทำอะไร?
  • แต่ละพารามิเตอร์ตอบคำถาม: ในบริบทใด?
  • หลีกเลี่ยงเหตุการณ์ที่ไม่มีพารามิเตอร์ — มันไร้ประโยชน์สำหรับการวิเคราะห์

ขั้นตอนที่ 2: การรวม SDK

เชื่อมต่อ Analytics SDK เข้ากับโปรเจกต์ Firebase Analytics, Amplitude, Mixpanel — ทุก SDK ต้องการการเริ่มต้นใน Application.onCreate() ตัวอย่างสำหรับ Flutter:

dart
import 'package:firebase_analytics/firebase_analytics.dart';

class AnalyticsService {
  final _analytics = FirebaseAnalytics.instance();

  Future<void> logPurchase({
    required String productId,
    required double price,
    required String currency,
  }) async {
    await _analytics.logEvent(
      name: 'purchase_completed',
      parameters: {
        'product_id': productId,
        'price': price,
        'currency': currency,
        'timestamp': DateTime.now().millisecondsSinceEpoch,
      },
    );
  }
}

คลาส AnalyticsService รวมศูนย์การส่งเหตุการณ์ทั้งหมด แต่ละเมธอดสอดคล้องกับการกระทำทางธุรกิจ ซึ่งทำให้การค้นหาง่ายขึ้น — หากเหตุการณ์ไม่มา ให้ค้นหาตามชื่อเมธอดในโค้ด เมื่อโปรเจกต์ขยายใหญ่ขึ้น จำนวนเมธอดอาจเพิ่มเป็น 50–100 แต่โครงสร้างยังคงอ่านง่ายเนื่องจากการจัดกลุ่มตามฟีเจอร์

ขั้นตอนที่ 3: การตรวจสอบผ่าน DebugView

Firebase DebugView ช่วยให้เห็นเหตุการณ์แบบเรียลไทม์บนอุปกรณ์ของนักพัฒนา เปิดใช้งานโหมด: adb shell setprop debug.firebase.analytics.app your.package เหตุการณ์ทั้งหมดจะปรากฏในคอนโซล Firebase โดยมีความหน่วงน้อยกว่า 5 วินาที

หลังจากเปิดใช้งาน DebugView ให้เปิดแอปและดำเนินการสถานการณ์ทดสอบ — การลงทะเบียน, การซื้อ, การเรียกดูแค็ตตาล็อก ตรวจสอบในคอนโซล: เหตุการณ์ทั้งหมดถูกส่งหรือไม่, พารามิเตอร์ถูกต้องหรือไม่, มีรายการซ้ำหรือไม่ Amplitude มีเครื่องมือที่คล้ายกัน — Amplitude Debugger สำหรับ iOS และ Android

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

แนวปฏิบัติที่ดีที่สุดในการตั้งชื่อเหตุการณ์

การตั้งชื่อเหตุการณ์ เป็นแง่มุมที่ถูกมองข้ามมากที่สุดของ Event Tracking ชื่อที่ไม่ถูกต้องทำให้การวิเคราะห์ไร้ประโยชน์เมื่อโปรเจกต์มีมากกว่า 50 เหตุการณ์

มาตรฐาน Object + Action

ใช้รูปแบบ object_action (ตัวพิมพ์เล็ก, snake_case): product_added, cart_opened, payment_failed, subscription_cancelled วัตถุคือเอนทิตี การกระทำคือคำกริยาในอดีต ซึ่งอ่านได้เหมือนประโยค: "เพิ่มสินค้าแล้ว", "เปิดตะกร้าแล้ว"

  • product_viewed ไม่ใช่ "tap_on_product_card" (เหตุการณ์คือผลลัพธ์ ไม่ใช่การกระทำ)
  • order_completed ไม่ใช่ "successful_payment_transaction" (สั้นและชัดเจน)
  • level_started ไม่ใช่ "begin_level_with_parameters" (ไม่มีคำฟุ่มเฟื่อย)

รูปแบบที่ห้ามใช้

ห้าม ใช้ช่องว่าง ("Add to Cart"), CamelCase ("AddToCart"), จุด ("add.to.cart"), ยัติภังค์ ("add-to-cart") SDK ส่วนใหญ่แนะนำ snake_case ห้ามใช้ชื่อองค์ประกอบ UI ("btn_submit_clicked") — เหตุการณ์ควรเป็นเชิงธุรกิจ ไม่ใช่เชิงเทคนิค

เพิ่มคำนำหน้าด้วยชื่อฟีเจอร์หรือหน้าจอ: onboarding_step_completed, checkout_payment_selected ซึ่งช่วยให้สามารถกรองเหตุการณ์ตามฟังก์ชันในรายงานได้

ประเภทของพารามิเตอร์เหตุการณ์

พารามิเตอร์แบ่งเป็นสามประเภท: string (ค่า), number (ตัวเลขสำหรับการรวม), boolean (ธง) พารามิเตอร์ string มีข้อมูลเชิงหมวดหมู่: ประเทศ, แหล่งที่มาของการเข้าชม, ชื่อสินค้า พารามิเตอร์ number ใช้เป็นเมตริก: ราคา, ปริมาณ, ระยะเวลา พารามิเตอร์ boolean แสดงสถานะ: is_trial, is_promo_applied

หลีกเลี่ยงการส่งออบเจกต์หรืออาร์เรย์ในพารามิเตอร์เดียว — แพลตฟอร์มการวิเคราะห์ไม่สามารถแยกวิเคราะห์ได้ แทนที่จะส่งสตริง JSON ในฟิลด์เดียว ให้ส่งพารามิเตอร์แบบราบหลายตัว ตัวอย่างเช่น แทนที่ items_count_total ให้ส่ง items_count และ total_price แยกกัน

แพลตฟอร์ม Event Tracking

การเลือกแพลตฟอร์ม Event Tracking ขึ้นอยู่กับขนาดของโปรเจกต์และทีม มาดูสามตัวเลือกในระดับที่แตกต่างกัน

Firebase Analytics (ฟรี สูงสุด 500 เหตุการณ์)

Firebase เป็นตัวเลือกมาตรฐานสำหรับสตาร์ทอัพ ขีดจำกัดฟรีคือ event_name แตกต่างกัน 500 รายการ จำนวนพารามิเตอร์ไม่จำกัด การรวมกับ BigQuery สำหรับการวิเคราะห์ที่กำหนดเอง ข้อเสีย: การแบ่งส่วนจำกัด, ไม่มีการเชื่อมโยงเหตุการณ์ในเซสชันอัตโนมัติ

Amplitude (Pro เริ่มต้น $1,000/เดือน)

Amplitude เป็นแพลตฟอร์มการวิเคราะห์ผลิตภัณฑ์ รองรับ Behavioural Cohorts, Funnel Analysis, Pathfinder สามารถสร้างเหตุการณ์เสมือนจากการรวมกันของเหตุการณ์จริง ผสานรวมกับเครื่องมือ 50+ รายการผ่าน Segment

Segment (เริ่มต้น $120/เดือน)

Segment เป็นมิดเดิลแวร์สำหรับจัดการเหตุการณ์ คุณส่งเหตุการณ์ไปยัง Segment แล้ว Segment จะกระจายไปยังเครื่องมือ 300+ รายการ มีประโยชน์ในสภาพแวดล้อมองค์กรที่ใช้ Firebase, Amplitude, Mixpanel, Braze และ Salesforce พร้อมกัน

PostHog (ทางเลือกโอเพนซอร์ส)

PostHog เป็นแพลตฟอร์มการวิเคราะห์ผลิตภัณฑ์โอเพนซอร์สที่มี Event Tracking ของตัวเอง รองรับการจับเหตุการณ์อัตโนมัติ, การบันทึกเซสชัน และ feature flags ติดตั้งบนเซิร์ฟเวอร์ของตนเอง ซึ่งสำคัญสำหรับโปรเจกต์ที่มี GDPR หรือข้อมูลที่ละเอียดอ่อน มี API ที่เข้ากันได้กับ Python สำหรับไปป์ไลน์ ETL

สำหรับโปรเจกต์ Flutter แนะนำ flutterfire_analytics + Amplitude ผ่านปลั๊กอิน amplitude_flutter สำหรับ React Native — react-native-firebase + mixpanel-react-native

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

ควรติดตามกี่เหตุการณ์ในแอปเดียว?

ช่วงที่เหมาะสมคือ 50–150 เหตุการณ์ต่อแอป น้อยกว่า 50 — ข้อมูลไม่เพียงพอสำหรับการวิเคราะห์ มากกว่า 150 — คุณภาพลดลง (นักวิเคราะห์ไม่สามารถติดตามทั้งหมดได้) สำหรับ MVP 20–30 เหตุการณ์หลักก็เพียงพอ

สามารถส่งเหตุการณ์ได้บ่อยแค่ไหนโดยไม่กระทบประสิทธิภาพ?

โดยทั่วไป SDK มือถือจะบัฟเฟอร์เหตุการณ์และส่งเป็นชุดทุก 5–30 วินาที ขีดจำกัดที่ปลอดภัยคือ 100 เหตุการณ์ ต่อนาทีต่ออุปกรณ์ มากกว่านั้น — เสี่ยงต่อการสูญเสียข้อมูลเมื่อการเชื่อมต่อไม่ดี การเพิ่มขึ้นอย่างกะทันหัน (เช่น การโหลดด่าน) ไม่ใช่ปัญหา

ควรส่งเหตุการณ์ในโหมดออฟไลน์หรือไม่?

ใช่ SDK สมัยใหม่จะบันทึกเหตุการณ์ในที่เก็บในเครื่องเมื่อไม่มีเครือข่าย เมื่อการเชื่อมต่อได้รับการกู้คืน จะถูกส่งพร้อมกับประทับเวลาที่ถูกต้อง Firebase เก็บเหตุการณ์ออฟไลน์ได้สูงสุด 7 วัน Amplitude — สูงสุด 30 วัน

จะเปลี่ยนชื่อเหตุการณ์ในแอปที่เปิดตัวแล้วได้อย่างไร?

สร้างเหตุการณ์ใหม่ด้วย event_name ใหม่ เหตุการณ์เก่ายังคงอยู่สำหรับข้อมูลในอดีต สร้างการแม็ปในเลเยอร์ BI (SQL CASE หรือแดชบอร์ด) เพื่อรวมข้อมูล อย่าเปลี่ยนชื่อเหตุการณ์ที่มีอยู่ — จะทำลายประวัติ

สามารถใช้ Event Tracking สำหรับการปรับเปลี่ยนเฉพาะบุคคลได้หรือไม่?

ใช่ Event Tracking เป็นพื้นฐานของการปรับเปลี่ยนเฉพาะบุคคล เหตุการณ์จะถูกกรองแบบเรียลไทม์: หากผู้ใช้ส่ง product_viewed 3 ครั้งโดยไม่ซื้อ ให้แสดงป็อปอัปส่วนลด Amplitude และ Braze รองรับทริกเกอร์ตามเหตุการณ์

สรุป

  • Event Tracking — รวบรวมการกระทำเฉพาะของผู้ใช้พร้อมบริบท (พารามิเตอร์, ประทับเวลา, user_id)
  • ประเภทของเหตุการณ์: อัตโนมัติ (SDK), กำหนดเอง (ตรรกะทางธุรกิจ), รายได้ (ธุรกรรม)
  • การตั้งชื่อ — snake_case ตามมาตรฐาน Object + Action
  • การตั้งค่า — สามขั้นตอน: สคีมาเหตุการณ์, SDK, การตรวจสอบ DebugView
  • แพลตฟอร์ม: Firebase (ฟรี), Amplitude (Pro), Segment (องค์กร)
  • เหมาะสม — 50–150 เหตุการณ์ต่อแอป
  • เหตุการณ์ออฟไลน์ — SDK บัฟเฟอร์และส่งเมื่อการเชื่อมต่อได้รับการกู้คืน

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม