เอกสารนี้แสดงภาพรวมระดับสูงเกี่ยวกับการวัดผลข้อขัดข้องและข้อยกเว้นโดยใช้ Google Analytics SDK สำหรับ iOS v2
ภาพรวม
การวัดข้อขัดข้องและข้อยกเว้นช่วยให้คุณวัดจำนวนและประเภทของ การขัดข้องและข้อยกเว้นที่เกิดขึ้นในแอปได้ โดยข้อยกเว้นใน Google Analytics ประกอบด้วยสิ่งต่อไปนี้
-
NSString
(ไม่บังคับ) คำอธิบาย – คำอธิบายข้อยกเว้น (สูงสุด 100 อักขระ) ยอมรับnil
boolean
isFatal – ระบุว่าข้อยกเว้นร้ายแรงหรือไม่YES
หมายถึงอันตรายถึงชีวิต
ข้อมูลข้อขัดข้องและข้อยกเว้นจะอยู่ในรายงานการขัดข้องและข้อยกเว้นเป็นหลัก
ข้อยกเว้นที่จับได้
ข้อยกเว้นที่พบคือข้อผิดพลาดในแอปที่คุณกำหนดโค้ดการจัดการข้อยกเว้น โดยทั่วไปแล้วเป็นข้อผิดพลาดที่คุณคาดว่าจะเกิดขึ้นระหว่างการใช้งานแอปตามปกติ และสิ่งที่คุณต้องการให้แอปกู้คืนได้ เช่น หมดเวลาของการเชื่อมต่อเครือข่ายเป็นครั้งคราวในระหว่างขอข้อมูล
คุณวัดข้อยกเว้นที่ตรวจจับได้โดยการเพิ่ม sendException:
ลงในบล็อก catch
ของโค้ดการจัดการข้อยกเว้น
ในตัวอย่างต่อไปนี้ แอปจะพยายามโหลดรายการคะแนนสูงสุดจากระบบคลาวด์ หากคำขอหมดเวลา ซึ่งอาจเป็นเพราะการเชื่อมต่อเครือข่ายช้า เราจะส่งข้อยกเว้นไปยัง Google Analytics ก่อนที่จะจัดการให้กับผู้ใช้
@try { NSArray *highScores = [self getHighScores]; } @catch (NSException *exception) { [tracker sendException:NO // Boolean indicates non-fatal exception. withDescription:@"Connection timout %d: %@", connectionError, errorDescription]; }
คุณจะป้อนข้อมูลในช่องคำอธิบายของข้อยกเว้นโดยอัตโนมัติที่มีชื่อและเหตุผลได้โดยใช้ sendException:withDescription:withNSException:
ตามที่แสดงในตัวอย่างนี้
@try { NSArray *highScores = [self getHighScores]; } @catch (NSException *exception) { [tracker sendException:NO withNSException:exception); }
หากต้องการป้อนข้อมูลข้อผิดพลาดโดยอัตโนมัติด้วยโดเมน โค้ด และคำอธิบายข้อผิดพลาด ให้ใช้ sendException:withDescription:withNSError:
ดังที่แสดงด้านล่าง
NSError *error = nil; if (![self updateHighScoresWithError:&error]) { [tracker sendException:NO withNSError:error); }
การวัดข้อยกเว้นที่ตรวจไม่พบ
ข้อยกเว้นที่ตรวจไม่พบจะแสดงกรณีที่แอปของคุณพบสภาวะที่ไม่คาดคิดขณะรันไทม์ และมักเป็นอันตรายถึงชีวิตซึ่งทำให้แอปขัดข้อง คุณสามารถส่งข้อยกเว้นที่ตรวจไม่พบไปยัง Google Analytics โดยอัตโนมัติได้โดยการตั้งค่าพร็อพเพอร์ตี้ sendUncaughtExceptions
เป็น YES
ซึ่งสามารถดำเนินการได้อย่างสะดวกจากapplication:didFinishLaunchingWithOptions
เมธอดของการมอบสิทธิ์แอป ดังนี้
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [GAI sharedInstance].sendUncaughtExceptions = YES; // Enable // ... the rest of your code, include other GAI properties you want to set. }
เมื่อใช้การวัดข้อยกเว้นอัตโนมัติ โปรดคำนึงถึงสิ่งต่อไปนี้
- ข้อยกเว้นทั้งหมดที่ส่งโดยใช้การวัดข้อยกเว้นอัตโนมัติจะรายงานเป็นข้อผิดพลาดร้ายแรงใน Google Analytics
- ระบบจะป้อนข้อมูลในช่องคำอธิบายโดยอัตโนมัติโดยใช้สแต็กเทรซ