App-V: Application Usage Reporting is Inaccurate

Sample Report from App-V Management ConsoleOne of the features of the App-V Management Server is the ability to report usage data.  This is a great feature if you want to track application usage.  Sometimes, however, you may run a report on an application and know that there is no way the information could be accurate.
 

The reporting is accurate for the information that is available in the SQL Database.  The problem is that all the available information may not have reached the SQL database.  The application usage information is only reported from the App-V client during a Publishing Refresh.  If your client is set to refresh "On Login" and you are someone like me that only locks their computer and doesn't log off, then the information will never be sent.

In the App-V Client machine's registry, the location of the XML file that tracks a client usage can be found in HKLM\Software\Microsoft\Softgrid\4.5\Client\LastCacheFile\<GUID>.XML.Everytime an application is launched, this XML file is written to with the following information:

- <REPORT_DATA_CACHE>
   - <APP_RECORDS>
          <APP_RECORD Name="WordViewer" Ver="11.0" Server="sblab—mqmt" User="SBLAB\Steve"
          Launched=”7/27/2011 2:27:54 PM” Shutdown=”8/24/2011 12:49:16 AM" />
          <APP_RECORD Name="WordViewer" Ver="11.0" Server="sblab—mgmt" User="SBLAB\Steve"
          Launched="8/24/2011 12:50:39 AM" />
   </APP_RECORDS>
</REPORT_DATA_CACHE>

When a Publishing Refresh happens, the data is uploaded to the SQL database and the APP_RECORD tags are cleared.

So, you need the data, users are not logging off, Publishing Refresh isn't happening because no one is logging off.  What should you do?  Provider Policies are the answer! Provider Policies can manage the Desktop Clients in your environment and force a Publishing Refresh at designated intervals. This in turn will upload the APP_RECORDS information from the local <GUID>.XML.

Wait, you've done all that and you are still not getting the data? Well, there are a few more possible explanations: users may not be part of the Provider Policy Group Assignment, or your environment has a 4.6 client against a 4.1 server.  For Provider Policy Group Assignments, take a look at my Ultimate Guide to Licensing and Provider Policies on the App-V Blog.  If your environment has a 4.1 Server in place, read the article by my colleague, Steve Thomas, for an explanation. Finally, prior to the App-V 4.6 SP1 client, if the XML file grows larger than 64k or has an empty package field in the registry, the data will not upload. The App-V 4.6 SP1 Client corrects this issue.

UPDATE: Another cause of inaccurate reporting may be a mismatch of the "Version" field of the application properties in the App-V Management Console versus the "Version" listed in the application's OSD file.