Data Delivery Considerations
When requesting app analytics data, there are a couple of things you need to look out for:
Requesting Data Too Early
If you request data too early, the results might not be fully populated. If you want to request PackageUsageLog data for the 1st of the month, we recommend to wait until the 5th before inserting requests. This ensures that Salesforce has fully collected all events. For PackageUsageSummary requests, we recommend a grace period of one week.
Requests which are not fully populated by Salesforce will still return a result. However, events for specific subscriber organizations might be missing.
Request Insertion Limits
If you need to use a small request interval (e.g. 1 hour) you will have to insert a large number of requests. Be aware that you might run into an error when inserting more than 50 requests at once:
You reached the limit of 50 concurrent queries. Wait until a running query completes and try again. All queries take up to 15 minutes to complete.
This is because Salesforce internally fires a trigger upon request insertion which consumes a query cursor. We recommend to insert requests in batches of 50 and wait at least 20 minutes between each insertion.