Lompat ke konten

Statistik API

GitHub

Dari versi 1.3.0, sistem pembaruan dapat mengirimkan statistik!

Dengan default, semua statistik dikirim ke server kami, untuk memahami penggunaan dan penelitian.

Jika Anda ingin mengirimkan data ini ke server Anda sendiri, ubah konfigurasi di bawah:

// capacitor.config.json
{
"appId": "**.***.**",
"appName": "Name",
"plugins": {
"CapacitorUpdater": {
"statsUrl": "YOUR_URL"
}
}
}

Apa 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 dapat menonaktifkannya secara total, dengan string kosong. Perlu diingat, statistik dibuat ramah privasi dan membantu saya memahami bagaimana orang menggunakan plugin, untuk menyelesaikan masalah dan memperbaikinya.

Tindakan yang diharapkan “tidak ada update”

Bagian berjudul “Tindakan yang diharapkan “tidak ada update””

Ketika endpoint update Anda memiliki tidak ada versi baru, maka harus merespons dengan payload kesalahan seperti:

{ "error": "no_new_version_available", "message": "No new version available" }

The error code harus tepat no_new_version_availableThe dapat berupa string apa saja yang Anda inginkan (hal ini hanya untuk logging/debugging). Ini adalah perilaku yang diharapkan dan masih dikembalikan dengan HTTP message Jika endpoint pembaruan Anda mengembalikan sebuah 200Jika endpoint pembaruan Anda mengembalikan sebuah 200 Jika endpoint pembaruan Anda mengembalikan sebuah urlJika endpoint pembaruan Anda mengembalikan sebuah download_fail Jika endpoint pembaruan Anda mengembalikan sebuah

Jika endpoint pembaruan Anda mengembalikan sebuah

Jika endpoint pembaruan Anda mengembalikan sebuah

Here is an example of code in JavaScript to save the stats of the 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' }
}

Jika endpoint pembaruan Anda mengembalikan sebuah

{ "status": "ok" }

Untuk deskripsi rinci tentang semua kode aksi dan maknanya, silakan lihat dokumentasi debugging:

  • Aksi yang dikirimkan dari perangkat: Lihat dokumentasi debugging - Dikirimkan dari perangkat bagian Aksi yang dikirimkan dari backend
  • : Lihat dokumentasi debugging - Dikirimkan dari backendbagian Menangani Perbaruan __CAPGO_KEEP_0__

Jika Anda menggunakan Statistik API untuk merencanakan dashboard dan operasi API, hubungkannya dengan Menggunakan @capgo/capacitor-updater untuk kemampuan asli dalam Menggunakan @capgo/capacitor-updater, Ringkasan API untuk detail implementasi dalam Ringkasan API, Pendahuluan untuk detail implementasi dalam Pendahuluan, Kunci API untuk detail implementasi di API Keys, dan Perangkat untuk detail implementasi di Perangkat.