get_crash_rate
Fetch user-perceived crash rate data from Android Vitals to monitor app stability, identify versions exceeding Play Store thresholds, and prevent ranking penalties by analyzing daily metrics.
Instructions
Fetch user-perceived crash rate from Android Vitals.
Returns daily crashRate, userPerceivedCrashRate, and distinctUsers by version code. Bad behavior threshold: userPerceivedCrashRate > 1.09% may cause Play Store ranking penalties.
Args: package_name: Package name, e.g. com.example.myapp days: Past days to include (default 7, max 30). version_code: Optional version code filter.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| package_name | Yes | ||
| days | No | ||
| version_code | No |
Implementation Reference
- src/google_play_mcp/server.py:585-633 (handler)The implementation of the get_crash_rate tool, which fetches crash rate data from Android Vitals via the _reporting() utility and formats the result.
@mcp.tool() def get_crash_rate( package_name: str, days: int = 7, version_code: str = "", ) -> str: """Fetch user-perceived crash rate from Android Vitals. Returns daily crashRate, userPerceivedCrashRate, and distinctUsers by version code. Bad behavior threshold: userPerceivedCrashRate > 1.09% may cause Play Store ranking penalties. Args: package_name: Package name, e.g. com.example.myapp days: Past days to include (default 7, max 30). version_code: Optional version code filter. """ days = max(1, min(days, 30)) try: raw = _reporting().query_crash_rate( package_name=package_name, days=days, version_code=version_code or None, ) rows = _parse_reporting_rows(raw.get("rows", [])) if not rows: return json.dumps( { "packageName": package_name, "message": ( "No crash data available. Data may lag up to 2 days " "or the app has no crashes in this period." ), "rows": [], }, indent=2, ) return json.dumps( { "packageName": package_name, "periodDays": days, "badBehaviorThreshold": {"userPerceivedCrashRate": 0.0109}, "totalRows": len(rows), "rows": rows, }, indent=2, ) except Exception as exc: return json.dumps({"success": False, "error": str(exc)}, indent=2)