Zum Inhalt springen

Statistiken API

Ab Version 1.3.0 kann das Update-System Statistiken senden!

Standardmäßig werden alle Statistiken an unseren Server gesendet, um die Nutzung zu verstehen und zu forschen.

Wenn Sie diese Daten an Ihren Server senden möchten, ändern Sie die Konfiguration unten:

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

Was Ihr Server empfängt wird:

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,
}

Sie können es auch vollständig deaktivieren, indem Sie eine leere Zeichenkette verwenden. Beachten Sie, dass Statistiken anonymisiert werden und mir helfen, zu verstehen, wie Menschen das Plugin verwenden, um Probleme zu lösen und es zu verbessern.

Wenn Ihr Update-Endpunkt hat keine neue Versiones sollte mit einem Fehler-Payload wie folgt antworten:

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

Der error code muss genau no_new_version_availablesein. message kann jede beliebige Zeichenkette sein (es dient nur zur Protokollierung/Debugging). Dies ist die erwartete Verhaltensweise und wird trotzdem mit HTTP 200Wenn Ihr Update-Endpunkt stattdessen eine 200 Antwort ohne eine urlsendet, wird das Plugin dies als Downloadfehler behandeln und eine download_fail Statistik senden.

Here is an example of code in JavaScript to save the stats of the plugin:

interface AppInfos {
version_name: string
action: 'ping' |
'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' |
'download_manifest_start' |
'download_manifest_complete' |
'download_zip_start' |
'download_zip_complete' |
'download_manifest_file_fail' |
'download_manifest_checksum_fail' |
'download_manifest_brotli_fail' |
'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' |
'cannotGetBundle' |
'checksum_fail' |
'NoChannelOrOverride' |
'setChannel' |
'getChannel' |
'rateLimited' |
'disableAutoUpdate' |
'InvalidIp' |
'keyMismatch' |
'blocked_by_server_url'
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' }
}

Auf die Zwischenablage kopieren

{ "status": "ok" }

Implementation Example

Aktionen

Für detaillierte Beschreibungen aller Aktionen und deren Bedeutung, zögern Sie bitte die Debug-Dokumentation auf:

Wenn Sie Statistiken API für die Planung Ihres Dashboards und API-Operationen verwenden, verbinden Sie es mit Mit @capgo/capacitor-Updater für die native Fähigkeit in Mit @capgo/capacitor-Updater, API-Übersicht für die Implementierungsdetails in API-Übersicht, Einführung für die Implementierungsdetails in Einführung, API-Schlüssel für die Implementierungsdetails in API-Schlüssel, und Geräte für die Implementierungsdetails in Geräte.