Statistik API
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
Statistik API
Bagian berjudul “Statistik API”Sejak versi 1.3.0, sistem update kini dapat mengirim statistik!
Secara default, semua statistik dikirim ke server kami untuk memahami penggunaan dan riset.
Jika Anda ingin mengirim data ini ke server Anda sendiri, ubah konfigurasi di bawah ini:
// capacitor.config.json{ "appId": "**.***.**", "appName": "Name", "plugins": { "CapacitorUpdater": { "statsUrl": "YOUR_URL" } }}Struktur Data
Bagian berjudul “Struktur Data”Data yang akan diterima server Anda adalah:
interface AppInfosStats { "action": "set", // can be set, delete, set_fail, reset, revert // Then it's the same info as update "app_id": "**.***.**", // app identifier in the store "device_id": "*******", // unique id per app install "platform": "ios", // or android, or electron "custom_id": "user_1", // represent your user "version_name": "1.2.3", // version of the web build "version_build": "1.2.0", // version of the native build "version_code": "120", // build number of the native build "version_os": "16", // OS version of the device "plugin_version": "4.0.0"// to make your api behave differently with different plugins "is_emulator": false, "is_prod": false,}Anda juga bisa menonaktifkannya sepenuhnya dengan string kosong. Perlu diingat, statistiknya ramah privasi dan membantu saya memahami cara orang menggunakan plugin ini, mengatasi masalah, dan meningkatkannya.
Perilaku “no update” yang diharapkan
Bagian berjudul “Perilaku “no update” yang diharapkan”Saat endpoint update Anda tidak memiliki versi baru, endpoint tersebut harus merespons dengan payload error seperti:
{ "error": "no_new_version_available", "message": "No new version available" }Panduan error code harus persis no_new_version_available. message bisa berupa string apa pun yang Anda inginkan (hanya untuk logging/debugging). Ini adalah perilaku yang diharapkan dan tetap dikembalikan dengan HTTP 200. Jika endpoint update Anda justru mengembalikan 200 respons tanpa url, plugin akan menganggapnya sebagai kegagalan unduhan dan mengirim download_fail stat.
Contoh Implementasi
Bagian berjudul “Contoh Implementasi”Berikut contoh code di JavaScript untuk menyimpan statistik plugin:
interface AppInfos { version_name: string action: 'delete' | 'reset' | 'set' | 'get' | 'set_fail' | 'update_fail' | 'download_fail' | 'windows_path_fail' | 'canonical_path_fail' | 'directory_path_fail' | 'unzip_fail' | 'low_mem_fail' | 'download_10' | 'download_20' | 'download_30' | 'download_40' | 'download_50' | 'download_60' | 'download_70' | 'download_80' | 'download_90' | 'download_complete' | 'decrypt_fail' | 'app_moved_to_foreground' | 'app_moved_to_background' | 'uninstall' | 'needPlanUpgrade' | 'missingBundle' | 'noNew' | 'disablePlatformIos' | 'disablePlatformAndroid' | 'disableAutoUpdateToMajor' | 'cannotUpdateViaPrivateChannel' | 'disableAutoUpdateToMinor' | 'disableAutoUpdateToPatch' | 'channelMisconfigured' | 'disableAutoUpdateMetadata' | 'disableAutoUpdateUnderNative' | 'disableDevBuild' | 'disableEmulator' | 'disablePlatformElectron' | 'disableProdBuild' | 'disableDevice' | 'customIdBlocked' | 'cannotGetBundle' | 'checksum_fail' | 'checksum_required' | 'NoChannelOrOverride' | 'setChannel' | 'getChannel' | 'rateLimited' | 'disableAutoUpdate' | 'keyMismatch' | 'ping' | 'InvalidIp' | 'blocked_by_server_url' | 'download_manifest_start' | 'download_manifest_complete' | 'download_zip_start' | 'download_zip_complete' | 'download_manifest_file_fail' | 'download_manifest_checksum_fail' | 'download_manifest_brotli_fail' | 'backend_refusal' | 'app_crash' | 'app_crash_native' | 'app_anr' | 'app_killed_low_memory' | 'app_killed_excessive_resource_usage' | 'app_initialization_failure' | 'app_memory_warning' | 'webview_javascript_error' | 'webview_unhandled_rejection' | 'webview_resource_error' | 'webview_security_policy_violation' | 'webview_unclean_restart' | 'webview_render_process_gone' | 'webview_content_process_terminated' | 'os_version_changed' | 'native_app_version_changed' | 'download_0' version_build: string version_code: string version_os: string plugin_version: string platform: string app_id: string device_id: string custom_id?: string is_prod?: boolean is_emulator?: boolean}
export const handler: Handler = async (event) => { const body = JSON.parse(event.body || '{}') as AppInfos const { platform, app_id, action, version_code, version_os, device_id, version_name, version_build, plugin_version, } = body console.log('update asked', platform, app_id, action, version_os, version_code, device_id, version_name, version_build, plugin_version) // Save it in your database return { status: 'ok' }}Endpoint ini harus mengembalikan JSON:
{ "status": "ok" }Untuk deskripsi detail semua kode aksi dan maknanya, silakan lihat dokumentasi debugging:
- Actions yang dikirim dari perangkat: Lihat dokumentasi debugging - Dikirim dari perangkat bagian
- Actions yang dikirim dari backend: Lihat dokumentasi debugging - Dikirim dari backend bagian
Lanjutkan dari Statistik API
Bagian berjudul “Lanjutkan dari Statistik API”Jika Anda menggunakan Statistik API untuk merencanakan operasi dashboard dan API, hubungkan dengan Menggunakan @capgo/capacitor-updater untuk fitur native di bagian Menggunakan @capgo/capacitor-updater, Ringkasan API untuk detail implementasi di API Overview, Pendahuluan untuk detail implementasi di Introduction, Kunci API untuk detail implementasi di API Keys, dan Perangkat untuk detail implementasi di Devices.