สะพานเชื่อม PostHog, Mixpanel & Amplitude
เครื่องมือวิเคราะห์ผลิตภัณฑ์บอกว่า อะไร เกิดขึ้น MousePlayer แสดงว่า ทำไม สะพานเชื่อมนี้เชื่อมทั้งสองทิศทาง ทำให้จากการออกกลางคันในกรวยไปยังบันทึกที่อธิบายสาเหตุได้ในคลิกเดียว
1. ปัญหา: ตัวเลขที่ไม่เห็นผู้คน
การวิเคราะห์ผลิตภัณฑ์ให้กรวย: ผู้ใช้ 1,000 คนถึงชำระเงินและ 620 คนทิ้งไป นั่นคือการวัดปัญหาที่แม่นยำแต่ยังมองไม่เห็น ดูเพียงไม่กี่บันทึกจาก 620 รายนั้นมักตอบได้ในไม่กี่นาที — แต่ต้องไปจากกราฟถึงเซสชันที่ถูกโดยไม่ส่งออก ID แล้วค้นเอง
สะพานเชื่อม การวิเคราะห์ผลิตภัณฑ์ ปิดช่องว่างนี้ ทำงานภายใน mp.js และเชื่อมสองระบบอัตโนมัติ:
- ขาออก: ทุกเหตุการณ์ที่เครื่องมือวิเคราะห์บันทึกมีพร็อพเพอร์ตี
mouseplayer_session_urlเปิดเหตุการณ์ คลิกลิงก์ แล้วดูเซสชัน - ขาเข้า: อ่านค่า
distinct_idของผู้เข้าชมกลับมาเก็บในเซสชัน MousePlayer จึงค้นบันทึกด้วยตัวตนเดียวกับที่ใช้ใน PostHog, Mixpanel หรือ Amplitude ได้
ไม่ต้องเขียนโค้ด สะพานเชื่อมตรวจ SDK วิเคราะห์เอง ไม่ต้องเรียกฟังก์ชัน MousePlayer หรือเปลี่ยนวิธีติดตามเหตุการณ์
2. เปิดใช้งาน
วิธี A: แดชบอร์ด (ไม่ใช้โค้ด)
- เปิดโปรเจกต์แล้วไปแท็บ การเชื่อมต่อ
- เปลี่ยน สะพานเชื่อม PostHog, Mixpanel & Amplitude เป็น
ON - เลือกแพลตฟอร์มที่ใช้ บันทึกการเปลี่ยนอัตโนมัติ
มีผลเมื่อเว็บไซต์โหลดหน้าครั้งถัดไป ไม่เปลี่ยนเซสชันเดิมย้อนหลัง
วิธี B: ตั้งค่าสคริปต์เอง
หากต้องการใส่ในโค้ด ให้ตั้งสองค่าภายใน window.mp_config:
3. สิ่งที่เกิดในแต่ละแพลตฟอร์ม
แต่ละแพลตฟอร์มมี API ต่างกัน สะพานเชื่อมจึงใช้คำสั่งที่เหมาะกับแต่ละระบบ ไม่ต้องตั้งส่วนนี้ — ทำตามผู้ให้บริการที่เลือก
| แพลตฟอร์ม | ขาออก (URL เล่นย้อนหลัง) | ขาเข้า (ตัวตน) |
|---|---|---|
| PostHog | posthog.register() — ลงทะเบียนเป็น super property จึงแนบกับทุกเหตุการณ์หลังจากนั้น |
posthog.get_distinct_id() |
| Mixpanel | mixpanel.register() — ทำงานเป็น super property เช่นกัน |
mixpanel.get_distinct_id() |
| Amplitude | setUserProperties() — ตั้งเป็น user property |
getDeviceId() โดยใช้ getInstance().options.deviceId แทนใน SDK รุ่นเก่า |
Super property เทียบกับ user property: ใน PostHog และ Mixpanel URL เล่นย้อนหลังแนบกับเหตุการณ์หลังจากนั้น จึงอยู่ในทุกเหตุการณ์ที่เกิดหลังเริ่มสะพานเชื่อม — ไม่ใช่เหตุการณ์ที่ส่งก่อนหน้านั้นระหว่างโหลดหน้า
4. ตัวตน: จาก distinct_id สู่เซสชันที่มีชื่อ
ขาเข้าเป็นส่วนที่หลายทีมประเมินต่ำ หากไม่มี เซสชัน MousePlayer จะนิรนาม ดูได้แต่ตอบไม่ได้ว่า “แสดงบันทึกของบัญชีที่เลิกใช้เมื่อสัปดาห์ก่อน”
เมื่อเปิดสะพานเชื่อม ค่า distinct_id จากเครื่องมือวิเคราะห์จะเขียนในช่อง custom_user_id ของเซสชัน — ช่องเดียวกับที่คำสั่ง SDK แบบเขียนเองใช้:
หากเรียก mp('set') เองอยู่แล้ว ให้ใช้ต่อ ตัวตนที่ระบุชัดเจนเชื่อถือได้กว่า เพราะเป็นคีย์หลักของคุณ ไม่ใช่ตัวระบุวิเคราะห์แยกตามเบราว์เซอร์
หมายเหตุความเป็นส่วนตัว: ส่งเฉพาะตัวระบุที่เครื่องมือวิเคราะห์กำหนดแล้ว ไม่อ่านอีเมล ชื่อ หรือข้อมูลส่วนตัวอื่นจาก SDK โปรดให้นโยบายความเป็นส่วนตัวครอบคลุมการประมวลผลนี้ และให้เครื่องมือความยินยอมกั้นสคริปต์หากใช้ความยินยอมเป็นฐานกฎหมาย
5. พฤติกรรมทางเทคนิค
SDK วิเคราะห์มักโหลดอะซิงโครนัสหลัง mp.js ทำงานแล้ว หากลองครั้งเดียวตอนเริ่มจึงล้มเหลวในเว็บไซต์จริงส่วนใหญ่
- สะพานเชื่อมลองใหม่ทุก 1.5 วินาที สูงสุดสิบครั้ง และหยุดทันทีที่ทั้งสองทิศทางเสร็จ
- แต่ละทิศทางเสร็จแยกกัน จึงไม่ส่ง URL เล่นย้อนหลังซ้ำระหว่างรอตัวตน
- หาก SDK ไม่ปรากฏ สะพานเชื่อมจะหยุดเงียบๆ หลังประมาณ 15 วินาที ไม่เขียนคอนโซลและไม่กระทบการบันทึกเซสชัน
- ละเว้นตัวระบุยาวเกิน 128 อักขระแทนการตัด เพื่อไม่เก็บตัวระบุครึ่งหนึ่งที่จับคู่กับอะไรไม่ได้
6. ตรวจว่าทำงาน
- เปิดเว็บไซต์ในแท็บปกติแล้วโต้ตอบสั้นๆ
- ในเครื่องมือวิเคราะห์ เปิดเหตุการณ์ล่าสุดแล้วหาพร็อพเพอร์ตี
mouseplayer_session_urlเปิดแล้วควรไปบันทึกโดยตรง - ใน MousePlayer เปิด สำรวจผู้ใช้ เซสชันที่มีตัวตนจะแสดงแทนชื่อเล่นที่สร้างอัตโนมัติ
หากไม่ปรากฏอะไร
- ไม่มีพร็อพเพอร์ตีในทุกเหตุการณ์: ตรวจว่า SDK วิเคราะห์โหลดจริงและเลือกแพลตฟอร์มตรงกัน หากเลือก PostHog จะไม่อ่าน Mixpanel
- พร็อพเพอร์ตีปรากฏเฉพาะเหตุการณ์ภายหลัง: เป็นปกติ ดูหมายเหตุในข้อ 3
- มี URL แต่ไม่มีตัวตน: SDK ยังไม่ได้กำหนด
distinct_idซึ่งเป็นปกติก่อนระบุตัวตนผู้ใช้ จะอ่านในครั้งโหลดหน้าถัดไป - กำลังทดสอบขณะลงชื่อเข้าใช้เป็นผู้ดูแล: บางการตั้งค่ายกเว้นทราฟฟิกภายใน ลองหน้าต่างส่วนตัว
เครื่องหมายการค้าทั้งหมดที่กล่าวถึงเป็นของเจ้าของแต่ละราย MousePlayer ไม่มีความสัมพันธ์ทางธุรกิจกับผู้ให้บริการเหล่านี้