Data Sync Considerations
The ISV Analytics app consolidates your app licensing data with the App Analytics logs collected by Salesforce. To avoid overloading your Salesforce instance, we synchronize this data at specific intervals.
Daily App Usage Logs Collection
We request your package usage data from Salesforce once a day. We request detailed and granular Package Usage Logs, which are collected by Salesforce for your app after you enable app analytics (this is done as a configuration step after installing ISV Analytics). We then aggregate these logs so that you don't waste data rows unnecessarily and join them with your app licensing data.
Salesforce collects logs from your customer instances worldwide, which takes time - typically up to 2 days. Therefore, there might be a one to three days delay between the moment an interaction occurs and when you see it on the dashboards.
More details about how Salesforce manages log collection from all instances can be found in the official documentation article.
Daily Data Recalculation
While we collect usage data daily, we also aggregate it and combine it with your app licensing data once a day. However, you also have the option to trigger recalculation manually from the dashboards, such as the Subscribers Overview
dashboard.
If a customer installs your app at 8 am, the related license will be automatically available on the dashboard the next day. You can use the Recalculate
button on the dashboard to synchronize it instantly (or rather almost instantly, as the recalculation also takes some time - between 5 minutes and a few hours depending on your app usage data volume).
Historical Data Load Considerations
We base the historical data load on the Package Usage Summary logs collected by Salesforce. Salesforce retains these logs for a very long time (10 years) compared to other types of logs (Package Usage Logs and Subscriber Snapshots are kept only for 45 days due to their granular data). Their collection is enabled from the moment you publish your app on AppExchange, making them perfect for loading historical data.
However, there are certain limitations related to using these logs.
Historical Data Load Current Month Data Gap
Since the Package Usage Summary logs contain monthly summaries of your app's usage, they can only be requested for full months in the past. If you request the historical data load right after installing the package, a historical data gap will occur for the current month. Here’s an example:
- You installed the app on August 20th.
- As part of the configuration steps, you enabled the App Usage Logs collection for your package.
- The daily usage logs sync by ISV Analytics starts collecting usage data from that moment (August 20th).
- You used our historical data load functionality to import usage data from the last 3 months.
- Summary logs operate on full months, so the logs from May, June, and July are loaded.
- Where is the data from August 1st to August 20th? This is the data gap.
Fortunately, you won’t experience this data gap for long—the ISV Analytics app will re-request summary data for the gapped period automatically at the beginning of the next month (on the second day).
Historical Data Source Org Types Considerations
The Package Usage Summary logs are retained by Salesforce for a very long time. Thanks to that, even if you released your app a few years ago and have just installed the ISV Analytics app, you can still load and visualize this data. But as with all great things, there are some limitations involved.
To avoid overloading itself with massive data loads, Salesforce collects the Package Usage Summary logs only for active production orgs. This means that if your customer was using your app on a sandbox or trial org before you installed ISV Analytics, you will not see this data.
Our regular, everyday data collection jobs will collect data from more org types than the historical data load. The everyday requested Package Usage Logs are collected for all types of orgs, except for scratch orgs. As a result, on our dashboards you might see more interactions with your app after the ISV Analytics app installation date compared to the historical usage.
To learn more about what data is collected for different types of logs, you can refer to the official Salesforce documentation.
Historical Data Granularity
The Package Usage Summary logs store less granular data than the Package Usage Logs we collect every day from the ISV Analytics app installation. Because of that, you will not be able to see the following values on the ISV Analytics dashboards and tables for the data loaded via the historical data load:
- Organization Country Code
- User Country Code