コンテンツにジャンプする

statistic API

GitHub

バージョン 1.3.0 から、更新システムは統計を送信できるようになりました。

デフォルトでは、すべての統計は私たちのサーバーに送信され、使用状況を理解し、研究するために使用されます。

統計を送信するデータをあなたのサーバーに送信したい場合は、以下の設定を変更してください。

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

あなたのサーバーに送信されるのは以下のデータ構造になります。

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

送信を完全に無効にすることもできます。空の文字列を指定するだけです。統計はプライベートに扱われ、統計を送信することで私がプラグインの使用状況を理解し、問題を解決し、改善することができます。

予期される「アップデートなし」の動作

セクション「予期される「アップデートなし」の動作」

アップデートエンドポイントが 新しいバージョンがない場合、エラーのペイロードのような形式で返すようにしてください

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

The error code は、完全に no_new_version_available。 The message は、任意の文字列になります (ログ/デバッグ用にのみ使用されます)。 これは、予期される動作であり、HTTP 200ステータス 200 が返されます。 アップデートエンドポイントが代わりに、 url, プラグインはこれをダウンロード失敗とみなします。 download_fail stat.

ここでは、JavaScriptでプラグインの統計を保存するcodeの例を示します。

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

このエンドポイントは、JSON形式で次のデータを返す必要があります。

{ "status": "ok" }

すべてのアクションコードとその意味についての詳細な説明は、デバッグドキュメントを参照してください。

Statistics APIから続けてください

タイトル「Statistics APIから続けてください」

Capacitorを使用している場合 Statistics API ダッシュボードとAPIの運用を計画し、接続する Using @capgo/capacitor-updater Using @capgo/capacitor-updater APIの概要 for the implementation detail in API Overview 概要 for the implementation detail in Introduction APIのキー for the implementation detail in API Keys, and デバイス for the implementation detail in Devices。