Skip to content

Handling Stats

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

interface AppInfos {
version_name: string
action: 'delete' |
'reset' |
'set' |
'set_fail' |
'update_fail' |
'download_fail' |
'update_fail' |
'download_10' |
'download_20' |
'download_30' |
'download_40' |
'download_50' |
'download_60' |
'download_70' |
'download_80' |
'download_90' |
'download_complete'
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' }
}

This endpoint should return a JSON:

{ "status": "ok" }

Actions:

  • delete : when a bundle is deleted locally
  • reset : when the app reset to the built-in bundle
  • set : when app sets a new bundle
  • set_fail : when app couldn’t find the ID of the bundle set
  • update_fail : send after the delay and notifyAppReady never called
  • download_fail : when download never finished
  • download_complete: When download finish
  • download_xx: Send every 10% of download ex : download_20, download_70
  • update_fail: when the bundle fails to do notifyAppReady in the timeframe