เอกสารนี้แสดงภาพรวมระดับสูงของการวัดผลข้อขัดข้องและข้อยกเว้นโดยใช้ Google Analytics SDK v4 สำหรับ Android
ภาพรวม
การวัดข้อขัดข้องและข้อยกเว้นช่วยให้คุณวัดจำนวนและประเภทของข้อขัดข้องที่เจอและไม่พบ รวมถึงข้อยกเว้นที่เกิดขึ้นในแอปได้ โดยมีข้อยกเว้นดังนี้
ชื่อช่อง | ประเภท | จำเป็น | คำอธิบาย |
---|---|---|---|
คำอธิบาย | String |
ไม่ได้ | คำอธิบายข้อยกเว้น (สูงสุด 100 อักขระ) ยอมรับ null |
isFatal | boolean |
ใช่ | ระบุว่าข้อยกเว้นนี้เป็นข้อยกเว้นที่ร้ายแรงหรือไม่
true หมายถึงอันตรายถึงชีวิต |
ข้อมูลข้อขัดข้องและข้อยกเว้นจะอยู่ในรายงานการขัดข้องและข้อยกเว้นเป็นหลัก
ข้อยกเว้นที่จับได้
ข้อผิดพลาดที่พบ เช่น การหมดเวลาของการเชื่อมต่อเครือข่ายเป็นครั้งคราวในระหว่างการขอข้อมูล คือข้อผิดพลาดในแอปที่คุณติดตั้งใช้งานโค้ดเพื่อจัดการ
วัดข้อยกเว้นที่พบโดยการตั้งค่าช่องข้อยกเว้นในตัวติดตามและส่ง Hit ตามตัวอย่างนี้
// Get tracker. Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(TrackerName.APP_TRACKER); // Build and send exception. t.send(new HitBuilders.ExceptionBuilder() .setDescription(getExceptionMethod() + ":" + getExceptionLocation()) .setFatal(getExceptionFatal()) .build());
ดูรายละเอียดเกี่ยวกับเมธอด getTracker
ได้ที่
การกำหนดค่าขั้นสูง
การวัดข้อยกเว้นที่ตรวจไม่พบ
ข้อยกเว้นที่ตรวจไม่พบจะแสดงถึงกรณีที่แอปพบปัญหาที่ไม่คาดคิดระหว่างรันไทม์และมักเป็นอันตรายถึงชีวิตซึ่งทำให้แอปขัดข้อง ระบบจะส่งข้อยกเว้นที่ตรวจไม่พบไปยัง Google Analytics โดยอัตโนมัติด้วยการกำหนดค่าการกำหนดค่า ga_reportUncaughtExceptions
หรือใช้คลาส ExceptionReporter
การกำหนดค่าอัตโนมัติ
หากต้องการส่งข้อยกเว้นที่ตรวจไม่พบทั้งหมดในแอปไปยัง Google Analytics โดยอัตโนมัติ ให้เพิ่มบรรทัดนี้ในไฟล์การกำหนดค่า XML
<bool name="ga_reportUncaughtExceptions">true</bool>
หลังส่งข้อยกเว้นโดยใช้การวัดข้อยกเว้นอัตโนมัติแล้ว ระบบจะส่งข้อยกเว้นไปยังเครื่องจัดการข้อยกเว้นเริ่มต้นของ Thread
การใช้งานขั้นสูง
ใช้คลาส ExceptionReporter
เพื่อติดตั้งใช้งานการวัดข้อยกเว้นที่ตรวจไม่พบอัตโนมัติหากคุณใช้การติดตั้งใช้งานขั้นสูงและไม่ได้ใช้การกําหนดค่า ga_reportUncaughtExceptions
ExceptionReporter
ทำหน้าที่เป็นเครื่องจัดการข้อยกเว้นเริ่มต้นที่ยังไม่ตรวจพบสำหรับเทรดที่เจาะจงหรือเทรดทั้งหมดในแอป หลังจากส่งข้อยกเว้นไปยัง Google Analytics แล้ว คลาส ExceptionReporter
อาจส่งต่อข้อยกเว้นไปยังเครื่องจัดการข้อยกเว้นที่ตรวจไม่พบซึ่งคุณให้มา (ไม่บังคับ)
โค้ดต่อไปนี้จะสร้างออบเจ็กต์ ExceptionReporter
ใหม่และตั้งค่าเป็นเครื่องจัดการข้อยกเว้นที่ไม่ถูกตรวจจับเริ่มต้นใหม่ ดังนั้น ระบบจะส่งข้อยกเว้นทั้งหมดที่ตรวจไม่พบไปยัง Google Analytics แล้วส่งต่อไปยังเครื่องจัดการข้อยกเว้นที่ตรวจไม่พบก่อนหน้านี้ สำหรับแอปพลิเคชันส่วนใหญ่ ตัวแฮนเดิลเริ่มต้นจะบันทึกข้อยกเว้นในบันทึกและยุติแอปพลิเคชัน
Thread.UncaughtExceptionHandler myHandler = new ExceptionReporter( myTracker, Thread.getDefaultUncaughtExceptionHandler(), context); // Make myHandler the new default uncaught exception handler. Thread.setDefaultUncaughtExceptionHandler(myHandler);
เมื่อใช้การวัดข้อยกเว้นอัตโนมัติ โปรดคํานึงถึงสิ่งต่อไปนี้
- ข้อยกเว้นทั้งหมดที่ส่งโดยใช้การวัดข้อยกเว้นอัตโนมัติจะรายงานเป็นข้อผิดพลาดร้ายแรงใน Google Analytics
- โดยค่าเริ่มต้น ระบบจะตั้งค่าช่องคำอธิบายโดยอัตโนมัติโดยใช้ประเภทข้อยกเว้น ชื่อคลาส ชื่อเมธอด และชื่อชุดข้อความ
คำอธิบายข้อยกเว้นของการแยกวิเคราะห์
SDK นี้มอบ StandardExceptionParser
เพื่อช่วยให้ขั้นตอนการรับและส่งคำอธิบายข้อยกเว้นไปยัง Google Analytics ง่ายขึ้น
// Get tracker. Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); // Using StandardExceptionParser to get an Exception description. try { // Request some scores from the network. ArrayList<Integer> highScores = getHighScoresFromCloud(); } catch (IOException e) { t.send(new HitBuilders.ExceptionBuilder() .setDescription(new StandardExceptionParser(this, null) .getDescription(Thread.currentThread().getName(), e)) .setFatal(false) .build() ); ... // Display alert to user that high scores are currently unavailable. }
คุณยังใช้โปรแกรมแยกวิเคราะห์ของตนเองโดยการใช้อินเทอร์เฟซ ExceptionParser
และเรียกเมธอด setDescription
ของตัวแยกวิเคราะห์นั้นเมื่อส่งข้อยกเว้นไปยัง Google Analytics ได้ด้วย