สะพานเชื่อม 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: แดชบอร์ด (ไม่ใช้โค้ด)

  1. เปิดโปรเจกต์แล้วไปแท็บ การเชื่อมต่อ
  2. เปลี่ยน สะพานเชื่อม PostHog, Mixpanel & Amplitude เป็น ON
  3. เลือกแพลตฟอร์มที่ใช้ บันทึกการเปลี่ยนอัตโนมัติ

มีผลเมื่อเว็บไซต์โหลดหน้าครั้งถัดไป ไม่เปลี่ยนเซสชันเดิมย้อนหลัง

วิธี B: ตั้งค่าสคริปต์เอง

หากต้องการใส่ในโค้ด ให้ตั้งสองค่าภายใน window.mp_config:

<!-- MousePlayer SDK with the Product Analytics Bridge enabled --> <script> window.mp_config = { channel: 'YOUR_CHANNEL_ID', analytics_bridge_active: true, analytics_provider: 'posthog' // 'posthog', 'mixpanel' or 'amplitude' }; </script>

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 แบบเขียนเองใช้:

// The manual equivalent - you do NOT need this when the bridge is active mp('set', { user_id: 'your-internal-id' });

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

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

5. พฤติกรรมทางเทคนิค

SDK วิเคราะห์มักโหลดอะซิงโครนัสหลัง mp.js ทำงานแล้ว หากลองครั้งเดียวตอนเริ่มจึงล้มเหลวในเว็บไซต์จริงส่วนใหญ่

  • สะพานเชื่อมลองใหม่ทุก 1.5 วินาที สูงสุดสิบครั้ง และหยุดทันทีที่ทั้งสองทิศทางเสร็จ
  • แต่ละทิศทางเสร็จแยกกัน จึงไม่ส่ง URL เล่นย้อนหลังซ้ำระหว่างรอตัวตน
  • หาก SDK ไม่ปรากฏ สะพานเชื่อมจะหยุดเงียบๆ หลังประมาณ 15 วินาที ไม่เขียนคอนโซลและไม่กระทบการบันทึกเซสชัน
  • ละเว้นตัวระบุยาวเกิน 128 อักขระแทนการตัด เพื่อไม่เก็บตัวระบุครึ่งหนึ่งที่จับคู่กับอะไรไม่ได้

6. ตรวจว่าทำงาน

  1. เปิดเว็บไซต์ในแท็บปกติแล้วโต้ตอบสั้นๆ
  2. ในเครื่องมือวิเคราะห์ เปิดเหตุการณ์ล่าสุดแล้วหาพร็อพเพอร์ตี mouseplayer_session_url เปิดแล้วควรไปบันทึกโดยตรง
  3. ใน MousePlayer เปิด สำรวจผู้ใช้ เซสชันที่มีตัวตนจะแสดงแทนชื่อเล่นที่สร้างอัตโนมัติ

หากไม่ปรากฏอะไร

  • ไม่มีพร็อพเพอร์ตีในทุกเหตุการณ์: ตรวจว่า SDK วิเคราะห์โหลดจริงและเลือกแพลตฟอร์มตรงกัน หากเลือก PostHog จะไม่อ่าน Mixpanel
  • พร็อพเพอร์ตีปรากฏเฉพาะเหตุการณ์ภายหลัง: เป็นปกติ ดูหมายเหตุในข้อ 3
  • มี URL แต่ไม่มีตัวตน: SDK ยังไม่ได้กำหนด distinct_id ซึ่งเป็นปกติก่อนระบุตัวตนผู้ใช้ จะอ่านในครั้งโหลดหน้าถัดไป
  • กำลังทดสอบขณะลงชื่อเข้าใช้เป็นผู้ดูแล: บางการตั้งค่ายกเว้นทราฟฟิกภายใน ลองหน้าต่างส่วนตัว

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