The barKoder Mobile SDK will register only the devices which successfully initialize and scan at least a single barcode from within your mobile or web application.
Note that uninstalls/reinstalls or the app on the same device will not consume additional device licenses from your license pool.
With standard tracking license the device queries the tracking server based on the callback (cb) parameter. This parameter is typically set to 15 days from the call, so devices with standard licenses usually record events every 15 days. If the device doesn't call for 15 days, an additional 15 days are added (amounting to 30 days) before the device starts returning unlicensed results. To "renew" the license, the device MUST establish an internet connection and query the licensing server. Otherwise, the results will be unlicensed, even if the on-device license hasn't expired yet.
Decode counts are updated when the SDK's initialization function is called, but only periodically (about once a week), thus the count is not always precise if the SDK hasn't contacted our licensing servers. It is recommended that your app should only initialize the SDK when the scanning functionality is actually needed. But even for cases where it is initialized elsewhere, i.e. on app startup, then a device license will only temporarily consume a device license. Such zero decode device licenses will be cleared once every 24 hours.
The barKoder Web SDK on the other hand registers only the devices which use the scanner to successfully decode at least one barcode. Web apps are limited to a browser, so instead of devices we actually count unique browser clients. If an end-user opens the web app in two different browsers, say Chrome and Firefox, it will be registered as two counts.