Nov 23, 2020
09:24 AM
Here you will find some notable releases that appear in your Usage Intelligence reports.
January 2021
Core Analytics
Added Cross-Product Reporting. Cross-Product Report provides insight into how many unique machines have installed products for a given date range that are part of product groups that you create. Up to three groups of products can be utilized in the creation of the report. Read More.
November 2020
General
Under Product Management, the menu Item Event Tracking Whitelist Management was renamed to Event Tracking Management
Under Event Tracking Management the selectable field Auto-Whitelist was renamed to Auto-Approve
Client IP Blacklist was renamed to Blocked Client IPs
Updated all nomenclature for Whitelist and Blacklist across the dashboard to use Approve/Block terminology. These changes affect Event Tracking Management, Licensing, Blocked Client IPs, and Delete & Block Clients.
Core Analytics
Added Data Retention Months and License Key Registry statistics to the Quota Usage Page.
Added ability to view aggregate quota usage for products that are part of a quota pool.
Added new functionality for string-based properties in report filtering:
Support for filtering by regular expression
Added ability to load filter values from a file
Added ability to copy selected filter value to clipboard
October 2020
General
Updated user interface with the rebranding to Revenera
Core Analytics
Added Group By functionality in distribution and Lifetime Event Usage reports, which gives you the ability to change the property used to identify an installation. Read More
September 2020
Core Analytics
Added ability to switch data between installation count and % of active installations in distribution reports.
Added cross-product data export, to be able to see the number of users making use of multiple products.
August 2020
ReachOut
Added Lifetime Event Count variables in ReachOut campaigns, to be able to send event usage counts to client installations.
Updated automatic ReachOut campaigns delivery chart to show statistics for messages delivered vs messages that were clicked and interacted with by users.
April 2019
Core Analytics
User Flow Reporting The User Flow report provides you with a picture of the journey your users take when interacting with your product. By specifying a hotspot event, you can analyze everything that happens around it, how users reach that event, and which steps they take following it. Read More
December 2018
Core Analytics
Export Property Values Users can select any property (as visible in the filters list), including Custom Properties and it will generate a full list of metadata for a particular property. Available as a JSON or plain text file. Read More
Support for multiple billing email addresses Users can now add multiple email addresses as their billing contacts, who would each receive a copy of any invoices or billing notifications.
Data table export for Lifetime Event Tracking and Churn Lifetime Event usage Users can now export a JSON file with all the data in the Event Usage tables.
IP Blacklist Users can add a list of IPs or IP ranges that will be blocked from the server. These can be used to block internal users from submitting data to the RUI server (say during QA) or to block any unwanted users or domains. Read More
ReachOut
ReachOut Archiving Users can move any ReachOut campaign from the “Active” tab to an archive. This is especially useful for users having a large list of ReachOut messages that they do not want to permanently delete. All archived campaigns are accessible from the “Archived” tab inside the ReachOut page. An archived campaign is automatically disabled but stored for historical or reporting purposes. It can be made “Active” again at any point or can still be used to clone new campaigns from it. Read More
ReachOut ID display Users can see the unique ReachOut Campaign ID displayed in each of the ReachOut tables. This helps for reporting purposes and referencing with raw data exports or Client Profile data, all of which show the ReachOut IDs that a client has been delivered.
November 2018
Core Analytics
Client Profile Report Users have the ability to drill down into product usage data for a particular client, look at data for sets of ClientIDs that match specific criteria, and do full exports of the data by ClientID for further analysis, joining with third-party data sets, or historical archiving of all your usage data. Capabilities include:
Export data for further analysis in third-party analytics systems
View all ReachOut in-application campaigns that any client has received
Identify specific ClientIDs of user segments by properties and usage
Manage GDPR requests for data access
Download data for archiving
Use JSON format of data exports for maximum portability
Read More
Raw Data Export Users can collect, upon request, all the raw data from their application in addition to the standard data collected and processed by Usage Intelligence. This needs to be configured with an account manager to be enabled and collect the data specific to each user case. Read More
August 2018
Helpdesk
Knowledgebase and ticketing system updated for enhanced searchability, ticket tracking and user experience. View Support Center
June 2018
Core Analytics
Virtual Machine Architecture Report Users can now report and analyze installations running on Virtual Machines across Windows, Mac, and Linux platforms. It also allows other reports to be filtered by usage on specific Virtual Machines only with installations running for deeper analytics. Read More
Sunburst Visualizations in Usage Intelligence The new Sunburst diagram lets you illustrate and analyze hierarchical or segmented data through an interactive Sunburst chart with drilldown functionality. You can visualize three properties and click on any segment to drill down into it and explore the relationships.
March 2018
Core Analytics
Support for Facebook login discontinued Due to the lack of usage, account creation, and login via Facebook is no longer supported by Usage Intelligence.
Null Value Reporting Reports now support <NULL> values (where no information is collected) and users can choose to include or not include these values in their reporting and visualizations. This distinction provides greater insight into total usage numbers. Read More
Export Data to CSV In addition to image formats, table data and timeline data can now be exported by users in a CSV format for any report in Usage Intelligence.
ReachOut
Clone ReachOut Campaigns Users can now create copies or clones of their existing campaigns to repurpose in launching new campaigns to different audiences or with other modifications.
Filter ReachOut Recipients by Previous Campaigns In-application messages can now be targeted to users based on whether or not they have received other messages previously via ReachOut. This allows for a message series to be created via sequenced messages.
February 2018
Core Analytics
Regular Expressions (“Regex”) Added All filters for reporting and ReachOut now take advantage of regular expressions to provide greater flexibility and time savings. From the Filters UI you can choose “Exact Match,” “Starts with” or “Contains” to filter any string property. Like other filters, Regex-based filters can also be saved as templates and shared with your team.
Lifetime Event Usage Filter This powerful addition allows you to ask and get answers to more complicated questions by filtering any report or ReachOut campaign based on the user’s actual usage of the product functionality. For example, how many users have launched the configuration wizard at least once, but never finished the wizard completely? Or, how many users used the product for at least 10 hours but have not yet discovered Feature X? Or, how many users who have used heavily Feature X but made little to no use of Feature Y.
Date Installed Filter This new filter enables you to report on usage by people who installed during a specific time period (for example, during a campaign or following an event). You can easily see how many users who installed during the Q4 promo that are still active today and what are they doing with the software. You can also run churn analysis reports only on those users who installed before a specific time period.
Date Last Seen Filter This enhancement allows you to filter in/out users that were last seen before or after a specific date. For example, you might want to run a report of how many users abandoned a specific version/edition of your software in the days after you announced that you will be terminating its support. When used in combination with the Date Installed Filter, you can get more accurate data on product and feature usage by filtering out anyone who was not fully active during the whole reporting period (e.g., the average runtime and feature usage metrics will not include users who installed or uninstalled the product in the middle of that reported date range).
Reachout
ReachOut Delivery Caps If you want to send a promotion to a limited number of users, send upgrade notifications in batches, or run A/B testing with a random user sample, you can now easily achieve this by setting a Maximum Delivery Cap on any ReachOut campaign to limit the number of messages delivered.
December 2017
Core Analytics
Java SDK Released Usage Intelligence adds a software usage analytics solution designed for distributed native Java applications on Windows, Macintosh, and Linux. Read More
Reporting Filters Added
Filtering for specific Usage Intelligence Client ID and Machine ID for customers also using Revenera Compliance Intelligence, providing deeper insight into feature usage within unlicensed software to accelerate settlement and conversion discussions
Opt-In/Opt-Out Status, making it easier to calculate sample size and measure the effectiveness of software usage analytics programs
Lifetime Product & Feature Usage, providing deeper insight into specific user groups and their engagement with various product functionality
October 2017
Core Analytics
Updates to User Permission Controls Users can now easily manage user permissions for their entire team. Admins can grant Full, Read-Only, or Deny access for different aspects of Usage Intelligence from User Management, Reporting, ReachOut, Developer, License Key Management or Filtering, Quota Usage, Billing and Subscription, or Reporting API access. For each user, you can quickly preview all their access levels, edit their permissions, clone them for other users that have the same organizational role or revoke their permissions.
... View more
Labels:
Nov 10, 2020
06:20 AM
The following is a list of issues frequently encountered when integrating the Usage Intelligence SDK for the first time and how to address them.
I ran my test application and logged some events, but I’m still not seeing any data in the Dashboard.
This issue usually happens during testing because the calls between ruiStartSDK() and ruiStopSDK() happen too quickly and the SDK does not have time to write the data to the log file and sync with the server. It is recommended to add a sleep of 5 seconds before calling ruiStopSDK() . This issue would not happen in production because under normal circumstances your application will run for more than a few seconds.
Additionally, you must also make sure that your product is configured to collect the events you're logging. You can check this from the product Dashboard by going to the Administration page and under Product Settings click on Event Tracking Management.
I ran my test application several times, each time specifying different product properties however I am only seeing the last values in the Dashboard.
The product properties such as edition, version, and build are "standard" properties and saved per day. So if on a particular day a user is registered as version 1 and later on in the same day he changes to version 2, he will appear as on version 2 for that day.
To be able to view different editions, versions, and builds while running your test application on the same machine you need to simulate multiple users using different product properties by also specifying a different file path when calling ruiCreateConfig() in your test application.
More information on Standard and Current properties can be found in this KBase article.
... View more
Labels:
Nov 10, 2020
06:14 AM
ReachOut™ Variables are variables that can be used in the message content of a ReachOut™ campaign. Before the message is delivered to the client, these variables are replaced by actual data from that client's profile. For example, if the message includes a variable for the product version, if the client is using version "1.2.3" of your software then the product version variable will be replaced by this value.
ReachOut™ Variables can be used in these cases:
Manual Campaigns - as part of the Plain Text message or Plain Text URL
Automatic Campaigns - as part of the URL that will be displayed to the user or the target URL when the user clicks on an image
Use cases for ReachOut™ Variables
Creativity is your only limit when using these variables, but here are some of the popular use cases we have seen:
Personalize the message you deliver to your clients by including variables like their product version and build or relevant environment info such as the operating system they are using
Inject data into your website forms, marketing framework, shopping cart or sales tracking solutions to be able to associate a user with an action following a ReachOut™ message
Track which users have seen and interacted with your ReachOut™ message by passing their unique Usage Intelligence client ID as a URL parameter
If you use ReachOut™ to deliver surveys from SurveyMonkey, Qualtrics or other major survey frameworks you can automatically split your survey responses based on customer profile or product usage by passing variables as survey parameters in the URL
Creating a Message using ReachOut™ Variables
To create a ReachOut™ campaign and include variables in the message content:
Log in to the Usage Intelligence Dashboard
From the menu on the left-hand side, click on ReachOut
Once on the ReachOut™ page click on the Add Auto Campaign or Add Manual Campaign button
In the Message Content section, click on the available categories and select the property you'd like to include
The variable will be inserted in the message or URL at the cursor position
Alternatively, you may also type '_-' to see a list of all the available variables
ReachOut™ Variables Examples
Example 1
Consider a user that is using version 1.2.3 of your software that is running on Microsoft Windows 7. If you enter the following Plain Text message content in your campaign:
It seems that you are still using version _-(prodVersion)-_ of MySoftware. Visit our website to download the latest version of MySoftware for _-(os.platform)-_.
The variables will be replaced so that the client will receive the following content:
It seems that you are still using version 1.2.3 of MySoftware. Visit our website to download the latest version of MySoftware for Microsoft Windows.
Example 2
Let's say you have created an automatic ReachOut™ campaign which shows a URL where the content displayed depends on which country the user is in and whether the software has expired or not. If you enter the following target URL in your campaign:
http://www.mycompany.com/campaigns?id=1204&country=_-(geography.country)-_&expired=_-(licenseStatus.expired)-_
A user who is in the USA and whose software is expired will receive the following URL:
http://www.mycompany.com/campaigns?id=1204&country=us&expired=true
List of Available ReachOut™ Variables
The following is a list of variables that can be used in ReachOut™ messages or URLs.
Product Properties
Product Version
_-(prodVersion)-_
Product Edition
_-(prodEdition)-_
Product Build
_-(prodBuild)-_
Product Language
_-(prodLanguage)-_
Usage Intelligence Machine ID
_-(machineId)-_
Usage Intelligence Client ID
_-(clientId)-_
Licensing Properties
License Type
_-(licenseType)-_
License Status: Activated
_-(licenseStatus.activted)-_
License Status: Blocked
_-(licenseStatus.blocked)-_
License Status: Expired
_-(licenseStatus.expired)-_
License Status: Allowed
_-(licenseStatus.allowed)-_
Platform Properties
OS Platform
_-(os.platform)-_
OS Version
_-(os.version)-_
OS Edition
_-(os.edition)-_
OS Language
_-(osLanguageFriendly)-_
OS Language Code
_-(osLanguage)-_
Continent
_-(geography.continentFriendly)-_
Continent Code
_-(geography.continent)-_
Country
_-(geography.countryFriendly)-_
Country Code
_-(geography.country)-_
US State
_-(geography.usStateFriendly)-_
US State Code
_-(geography.usState)-_
Form Factor
_-(formFactor)-_
Virtual Machine
_-(vm)-_
CPU Type
_-(cpuType)-_
CPU Cores
_-(cpuCores)-_
Monitor Count
_-(displayCount)-_
RAM
_-(ram)-_
Horizontal Resolution
_-(resolutionWidth)-_
Vertical Resolution
_-(resolutionHeight)-_
Screen Pixels per Inch
_-(screenPpi)-_
GPU Vendor
_-(gpu.vendor)-_
GPU Model
_-(gpu.model)-_
Touch Screen
_-(touchScreen)-_
OS Word Length
_-(osWordLength)-_
.NET Version
_-(dotNetVersion)-_
Java Environment Properties
Java Version
_-(javaVersion)-_
Java VM Version
_-(javaVmVersion)-_
Java VM Name
_-(javaVmName)-_
Java Vendor
_-(javaVendor)-_
Java Runtime Version
_-(javaRuntime)-_
Java AWT Graphics Environment
_-(javaGraphics)-_
Java VM RAM
_-(javaVmRam)-_
Data Collection Properties
Previously Opted-Out
_-(optOut.historical)-_
Previously Backed-Off
_-(backOff.historical)-_
Usage Properties
Days Since Install
_-(daysSinceInstall)-_
Lifetime Runtime Minutes
_-(lifetimeRuntimeMinutes)-_
Lifetime Session Count
_-(lifetimeSessionCount)-_
Custom Properties
ReachOut™ Variables support all custom property types and therefore if you make use of custom properties these can also be used in the format _-(C01)-_, _-(C02)-_, etc...
For more information about the different types of custom properties check this KBase article.
Lifetime Event Count
You may include the number of times a user generated an event by adding a Lifetime Event Count variable. This variable uses the format _-(lifetimeEvent:<ID>)-_ where <ID> is to be replaced by the event ID. When the message is delivered to the client, the variable will be replaced by the number of times that event was triggered by the user. For example:
If you have Event A with ID 123 and you create a message with the following content:
This user has triggered Event A _-(lifetimeEvent:123)-_ times.
A client that never generated Event A will receive:
This user has triggered Event A 0 times.
In the Message Content section of your campaign, click on Lifetime Event Count to easily add events to your message. If a campaign contains an event that is disabled, the message will still be delivered but the lifetime event count value will be blank. For example:
This user has triggered Event A _-(lifetimeEvent:123)-_ times.
Will be delivered to all clients as:
This user has triggered Event A times.
You may manage the list of events for your product by going to the Admin page and under Product Settings click on Event Tracking Management.
... View more
Labels:
Nov 10, 2020
06:13 AM
Below you will find a list of version numbers corresponding to the public builds for the Usage Intelligence SDK. Usage Intelligence provides individual SDKs for .NET, C++, Python, and Windows Store Apps. SDK version numbers are kept in sync between the different languages, therefore the version numbers listed below are valid for all languages unless specified otherwise.
Obtaining the latest SDK
You may download the latest Usage Intelligence SDK here, where you will also find the full API documentation for your preferred language.
Updating the SDK
We do our best to keep backward compatibility in the API between version updates, therefore we highly recommend that you keep your end-clients updated with the latest version of the Usage Intelligence SDK.
Changelog
5.6.1.001 (6 June 2022)
A release of the .NET SDK that includes .NET SDK multiplatform dll for running the RUI, which is built on version .NET 6.0 and .NET standard 2.0. Works similar as the old .NET framework version and there is no change in the API implementation. It is available in a separate download package (.NET standard SDK and .NET 6.0 SDK).
5.6.1.24853 (30 December 2021)
A release of the Java SDK that includes jar for running RUI. It is available in a separate download package (Usage Intelligence Java SDK - 5.6.1). Fixed the critical zero-day vulnerability reported in Apache Log4j2 by upgrading the Log4j2 version from 2.8.2 to 2.17.0 version. Other SDKs not updated and not included in this packaging.
The following vulnerabilities are fixed in this release CVE-2021-44228, CVE-2021-45046, CVE-2021-45105.
5.6.1.24333 (16 April 2021)
A release of the Mac OSX SDK that includes an Intel, ARM, and Universal dylib for running RUI is available in a separate download package (Usage Intelligence Mac OSX SDK - 5.6.1). This version supports the Apple Silicon M1 machines and provides for the deployment of either an ARM-native or a universal dylib for those customers requiring it. Other SDKs not updated and not included in this packaging.
5.6.0.24324 (1 April 2021)
Update to the Windows SDK (C++ and .NET) to replace the revoked certificate. Other SDKs not updated.
5.6.0.24307 (23 March 2021)
Update to the Windows SDK (C++ and .NET) to get more accurate CPU information on devices supporting Microsoft ARM chip. Other SDKs unaffected but updated to the same revision number. Java SDK is unchanged from November 2020 release.
5.6.0 (10 November 2020)
Changed whitelist and blacklist terminology to more accurate terminology allowed and blocked. Note users of the license calls may need to change code.
Updated mbedTLS library to version 2.16.8
Handle issue in Java SDK when X11 display value set incorrectly
5.5.2 Build 23986 (15 September 2020)
Expands the precision of custom numeric double values.
5.5.2 Build 23794 (28 August 2020) Java SDK
Fixes an issue in the Java SDK where it would fail when running on Java 14 and greater.
5.5.2 (16 March 2020)
Update to mbedtls version used (now 2.16.5)
Docker VM detection for WIndows and Linux.
5.5.1 (25 November 2019)
Eliminates false-positive reporting of malware by Malwarebytes Premium when used in a plug-in type environment. (Windows-only)
Added additional method to get OS ID from Java SDK when running on Linux (Java SDK running on Linux only)
5.5.0 Build 22856 (9 October 2019)
Improved accuracy for detecting laptop vs desktop machines running on Windows
5.5.0 Build 22772 (23 September 2019)
Minor API cleanup in Mac OSX SDK
5.5.0 Build 22667 (27 August 2019)
Fixed issue with .NET SDK that caused a crash when calling RUISDK.SetReachOutOnAutoSync()
Java SDK updated to make failed system data reader calls less visible
5.5.0 (9 July 2019)
Apple Notarization Support – For customers requiring Apple Notarization, the RUI SDK now includes the RUI dylib signed so that it can be included in applications that required Apple Notarization. Also, the zip file provided for the Mac OS X install is notarized and passes notarization checks on Mac OS X Systems that enforce those checks.
Linux VM Check has been updated to eliminate issues on some Linux distributions that have security restrictions on certain system files.
5.4.3 (29 March 2019)
Fixed issue in .NET SDK causing an exception to be thrown if category or event name is set as null in event tracking.
5.4.2 (21 March 2019)
Fixed occasional crash in Windows SDK when application using the Windows SDK was launched through Windows Automation API.
Fixed issue running Windows OS in Virtual Machine where VM doesn’t report all disk information – behavior was that createConfig call returns -999.
5.4.1 (14 January 2019)
Fixed rare crash on Mac OS X when attached Display fails to register correctly in Mac OS X.
5.4.0 Build 21126 JAVA (23 October 2018)
Fixed time zone issue that was causing machine time zone to be reported 1 hour off.
5.4.0 Build 21075 (15 October 2018)
Fixed issue in .NET SDK which was referencing an older version of the base library.
5.4.0 (9 October 2018)
Added mechanisms to suspend and resume automatic ReachOut
Added collection of screen pixels-per-inch
Added collection of Java JVM RAM (Java SDK only)
Added collection of touch screen presence (native (non-Java) SDKs only)
5.3.1 (22 August 2018)
Fixed issue with custom license type 3 not being accepted as a valid key type.
5.3.0 Build 20709 (25 July 2018)
Fixed memory leak in C# .NET SDK caused by not freeing memory when transforming string parameters.
Removed dependency on libuuid from Linux and Mac SDKs.
5.3.0 Build 20569 (14 June 2018)
Fixed issue in Usage Intelligence Machine ID collection causing mismatching IDs affecting native Linux and Mac SDKs.
5.3.0 (11 June 2018)
Added VM detection on all platforms except Java.
Fixed issue where under certain circumstances unnecessary syncs were being performed.
5.2.0 (28 February 2018)
Fixed issue in custom ReachOut handler mechanism
Improved syncing mechanism when multiple long-running processes sharing the same config and rarely writing an event exist
New API call to get the ClientID
Improved display resolution detection in Linux
Improved collection of .NET release information
New collection of Windows Update Build Revision data
Fix for issue with AutoSync requesting new ReachOut when the handler is still busy
5.1.0 Build 18333 JAVA (23 January 2018)
Fixed issue on Ubuntu and some other Linux distribution which was causing the OS type to be reported incorrectly.
Fixed issue on Ubuntu and some other Linux distribution which was causing the number of monitors to be reported incorrectly.
5.1.0 JAVA (12 December 2017)
First Java SDK Release
5.1.0 Build 18167 (3 November 2017)
Fixed issue in Mac SDK which was causing some applications not to be able to link to the dynamic library.
Fixed issue in .NET SDK which was causing the DLL path to be ignored.
5.1.0 Build 18053 (18 October 2017)
Fixed issue in Linux SDK that was causing internal warning messages to be displayed on the command-line on some distributions.
5.1.0 Build 18053 (11 October 2017)
Removed redundant #import in Objective-C header file.
5.1.0 Build 17988 (22 September 2017)
Fixed issues regarding HTTPS via proxy on Linux and Mac.
Fixed issue regarding reverse time-warp.
5.1.0 Build 17900 (29 August 2017)
Fixed minor naming issue in Mac OSX header file.
5.1.0 Build 17885 (18 August 2017)
Fixed issues with Unicode characters in .NET edition.
Changed rules regarding new event names.
5.1.0 Build 17865 (8 August 2017)
Eliminated Windows C++ library dependencies.
Modified custom event and exception absolute limits.
5.1.0 (25 July 2017)
Added opt-out mechanism.
Fixed titlebar issue withReachOut auto-popup window on Windows SDKs. Titlebar was showing URL instead of title in some scenarios.
4.0.7 Build 1240 (17 July 2017)
Fixed titlebar issue withReachOut auto-popup window on Windows SDKs. Titlebar was showing URL instead of title in some scenarios.
4.0.7 Build 1237 (3 July 2017)
ReachOut auto-popup window on Windows SDKs no longer displays JavaScript error messages to the end user.
5.0.0 (30 June 2017)
First release of version 5 SDK.
4.0.7 Build 1233 (23 June 2017)
Fixed issue on Windows SDKs causing some new event names (events never seen by the server) not to be registered on the server.
4.0.7 Build 1227 (16 May 2017)
Fixed issue on Mac OSX and Linux causing temporary files not being deleted.
4.0.7 (12 May 2017)
Fixed issue on Mac OSX sandboxed application causing data upload failure due to non-existing temporary file path.
4.0.6 (18 Apr 2017)
Fixed issue on Mac OSX and Linux where a random crash may occur in some rare scenarios.
4.0.5 (31 Mar 2017)
Fixed issue on Mac OSX where an unhandled exception may occur on some machines running OSX Sierra.
4.0.4 (07 Mar 2017)
Decreased power usage on Linux and Mac laptops
Minor bug fixes on Windows
4.0.3 (28 Feb 2017)
Added support for new locales on Windows
4.0.2 (31 Jan 2017)
Minor bug fixes and improvements
4.0.1 (7 Nov 2016)
Includes all changes in 4.0.0
Fixed issue in collecting OS and CPU data on Mac OSX.
Fixed issue on Windows SDK which caused old clients on Usage Intelligence SDK v3.x to be identified as new users.
4.0.0 (1 Nov 2016)
Includes all changes in 4.0.0 BETA
Mac OSX edition now supports collection of OS version.
Mac OSX edition is now able to detect old (v3) installations and mark them as updates rather than new installations.
3.4.4 (24 Oct 2016)
Released for .NET, C++ and Python
Fixed crash when event tracking functions are called from a different thread.
3.4.3 (13 Oct 2016)
Released for .NET, C++ and Python
Fixed Automatic Reachout issues detected on some x64 scenarios on Windows 8 and Windows 10
4.0.0 BETA (21 Sep 2016)
Linux Support - New C/C++ SDK for Linux
Support for Plugins - The Usage Intelligence SDK now supports running in a plugin environment, where multiple applications running as part of a plugin framework or multiple modules in the same application can all make use of the Usage Intelligence SDK independently
Dynamic Classes - In order to be able to support plugin environments, the SDK now uses dynamic classes instead of singletons. This requires you to create an instance of the class instead of making use of static functions
Support for Shared File Path - Usage Intelligence data files now use a new naming convention based on the product ID to allow multiple products to share the same data path
3.4.2 (6 Apr 2016)
Released for .NET, C++ and Python
Improved failover mechanisms for uploading log files.
Improved concurrency mechanisms when invoking multiple syncs at once.
3.4.3 - Mac OSX (1 Mar 2016)
Fixed issue with connection timeouts in cases where Internet connection is not present on first application execution.
3.4.2 - Mac OSX (7 Mar 2016)
Fixed issues with multi-user systems where Usage Intelligence data files are shared between different system users.
3.4.1 - Mac OSX (1 Feb 2016)
Added support for longer event names (IMPORTANT: API for event tracking has been changed).
Fixed an issue which was causing system information not to be updated in some cases.
3.4.1 (7 Dec 2015)
Released for .NET, C++ and Python
Message check, version check, and key check/change functions now do not wait for the first initialization to finish if they are called too early.
Fixed an issue which was causing auto sync to fail in some scenarios.
3.2.3 - Mac OS X (12 Oct 2015)
Released for Mac OS X in Objective-C and C++
Added 2 functions in C++ SDK to facilitate event tracking without custom data.
Changed client identification algorithm.
Changed error-handling mechanisms so now exceptions are never thrown once an application has been released.
3.3.3 (4 Sep 2015)
Released for .NET, C++ and Python
Replaced MessageCheck() method with MessageCheckAnyType() and MessageCheckSpecificType() in .NET SDK.
Fixed an issue in collecting GPU information which caused some data to be corrupted in very rare scenarios.
3.3.2 (11 Aug 2015)
Released for .NET, C++ and Python
Added support for Windows 10
3.3.1 (19 May 2015)
Released for .NET, C++ and Python
Added support for in-app purchases (IAP)
Added collection of GPU details
Added collection of installed .NET versions
Fixed issue with whitelist building of newly-registered event names and categories
Rebuilt unload mechanism to support dynamic loading and unloading
Reachout window now closes automatically if open during application stop
.NET version now also supports exception tracking for exceptions without stack trace
Added support for long event and category names
3.2.10 (18 Nov 2014)
Released for .NET, C++ and Python
Fixed parts of code which were causing issues with some debuggers and development tools.
3.2.9 (23 Sep 2014)
Released for .NET, C++ and Python
Rewrote load/unload mechanism to support integrating the Usage Intelligence SDK on Windows drivers.
3.2.2 - Mac OS X (18 Sep 2014)
Released for Mac OS X in Objective-C and C++
Added ability to set the maximum time that the sync on stop takes to return by calling stopAndDoSyncWithTimeout (Obj-C) or calling stop and passing an int parameter (C++).
3.2.8 (30 Jul 2014)
Released for .NET, C++ and Python
Fixed an issue which was causing a crash under some debuggers when calling tbStop()
The C++ API is now const-correct
3.2.7 (24 Jun 2014)
Released for .NET, C++ and Python
Improved connection check function
Added configuration check function
3.2.1 - Mac OS X (10 Jun 2014)
Released for Mac OS X in Objective-C and C++
Improved failover mechanisms for connection failures and corrupted data.
3.2.6 (29 May 2014)
Released for .NET, C++ and Python
Added safety limits to maximum log file sizes
Improved handling of temporary files when working directory is not writeable.
3.2.5 (21 May 2014)
Released for .NET, C++ and Python
Added a short wait time if checking for message or doing a license change or license check immediately after the first time the Usage Intelligence SDK is started. This has been added so that such requests do not fail if the start mechanism hasn't finished yet.
3.2.4 (16 May 2014)
Released for .NET, C++ and Python
Added support for calling Start again after Stop.
Improved handling of inaccessible or invalid paths.
3.2.3 (12 May 2014)
Released for .NET, C++ and Python
Improved shutdown mechanism to better enforce connection timeouts.
Fixed an issue in the Python SDK regarding changing of license keys.
3.2.2 (21 Mar 2014)
Released for .NET, C++ and Python
Added handling mechanism for trailing slash (/) in callhome URL.
Duplicate event names are now allowed when the category is different.
New event names are now detected even when they occur before the first call to the server.
3.2.0 - Mac OS X (20 Mar 2014)
Released for Mac OS X in Objective-C and C++
API changes to allow startup without sync and sync without ReachOut™. These options are set through optional parameters and the affected functions are backward compatible.
Installations of the same app using different data paths (by setting the filePath parameter) are now considered as different client installations.
3.2.1 (24 Feb 2014)
Released for .NET, C++ and Python
Improved failover mechanisms
3.2.0 (20 Feb 2014)
Released for .NET, C++ and Python
API changes to allow startup without sync and sync without ReachOut™. These options are set through optional parameters and the affected functions are backward compatible.
Internal stability improvements
3.1.9 (15 Feb 2014)
Released for .NET, C++ and Python
Added detection and handling of corrupt data files
3.1.8 (14 Feb 2014)
Released for .NET, C++ and Python
Implemented failover mechanism for when session cookie is blocked
Shutdown mechanism timeout mechanism improved
3.1.7 (12 Feb 2014)
Released for .NET, C++ and Python
Allows events to be logged immediately after starting up
3.1.6 (12 Feb 2014)
Released for .NET, C++ and Python
Improved failover mechanisms
3.1.5 (31 Jan 2014)
Released for .NET, C++ and Python
Improved shutdown algorithm for better stability when debugging
3.1.4 (30 Jan 2014)
Released for .NET, C++ and Python
Fixed a stability issue triggered by code debuggers
3.1.3 (27 Jan 2014)
Released for .NET, C++ and Python
Improved start-up algorithms to allow logging of events immediately after start-up even on first run
3.1.2 (23 Jan 2014)
Released for .NET, C++ and Python
First final release of version 3 for Python
Includes minor API changes in C++ and Python
Syncs automatically on startup for easier implementation
3.1.1 - Windows and Mac OS X (20 Jan 2014)
First final release of version 3
Released for .NET, C++, Objective-C
Includes minor API changes in .NET
3.0.5 RC1 (15 Jan 2014)
Released for .NET, C++ and Python
First Release candidate of version 3
Includes performance improvements over versions 2.*, custom properties, and logging of custom string events.
3.0 BETA for Mac OS X (1 Nov 2013)
Supports Mac OS X 10.6 and higher (x64 only).
Native APIs for C++ and Objective-C
Includes all functionality available in the Windows SDK
2.6.3 (10 Jun 2013)
Released for .NET, C++ and Python
Improved multithreading support to accept multiple simultaneous events happening at exactly the same time.
Improved .NET Framework detection in Python SDK
2.6.2 (31 May 2013)
Released for .NET, C++ and Python
Added option to disable syncing during App.Stop()
Speed improvements on App.Stop()
Speed improvements when running multiple instances.
Fixed race condition affecting applications running large number of concurrent instances sharing the same file path.
Fixed issue with long plain-text Reachout messages in C++ and Python SDKs
Forced calling convention on an internal C++ function with was causing issues with some compilers.
Added more detailed status reporting for App.StartStatus
2.6.1 (24 May 2013)
Released for .NET, C++ and Python
Added App.StartStatus value/function to monitor whether App.Start() (or equivalent in another language) has finished.
Added check for data path existence and write access during start.
Added further connection/server checks during first execution.
Python and C++ SDKs now also allowed to call startAutoSync() or tbStartAutoSync() before tbStart() or appStart() has finished loading.
More constants added in Python SDK to ease development.
Python SDK code is now PEP-8 compliant.
Improved handling of changing of config during runtime which was causing issues if it is done during sync.
Plain-text reachout messages now support multi-line messages
2.5.2 (08 May 2013)
Released for .NET, C++ and Python
Added checks to handle cleanly cases where data directory does not exist.
2.5.1 (25 Mar 2013)
Released for .NET, C++ and Python
Improved reporting accuracy for session and runtime counts for enterprise-class users.
2.2.2 (13 Mar 2013)
C++ and Python only.
Improved handling of .NET Framework-related issues.
.NET 4 now given priority over .NET 2.
2.2.1 (07 Mar 2013)
C++ and Python only.
Fixed issue with some 64-bit single-session applications being treated as multi-session.
Added more safety checks regarding multi-session mode and sessionID in event tracking.
2.1.4 (25 Feb 2013)
Fixed MessageCheck holding a mutex unnecessarily potentially causing a temporary freeze until HTTP time out is received. This effects clients with a very slow or bad internet connection.
All of the EventTrack overloads have been made asynchronous in order to return instantly.
2.1.3 (18 Jan 2013)
Fixed how the SDK handles cases where it has no write permissions on user directory.
2.1.2 (03 Jan 2013)
Minor hotfix to change naming convention.
2.1.1 (02 Jan 2013)
Fixed bug that caused tracking failure in newly registered clients when DNS request fails
Increased combined limit of Event names and Event categories to 40 characters
2.0.2 (04 Dec 2012)
Added support for .NET Client Profile
Increased limit of EventTrack names to 30 characters
Added support for Event categories/groups
2.0.1 (28 Sep 2012)
Added support for concurrent runtime sessions
Improved tracking accuracy on multiple users sharing a single installation
1.1 (31 April 2012)
Improved tracking accuracy on multiple users sharing a single installation
1.0 (13 April 2012)
Release Candidate
0.9 BETA (December 2011)
Public BETA build for .NET
... View more
Labels:
Mar 31, 2020
04:47 AM
There are currently no ongoing BETA programs.
However should you wish to participate in the next BETA program, please contact us here so we can inform you when this is available. We will be more than happy to receive your feedback!
... View more
Labels:
Mar 31, 2020
04:36 AM
Spyware is unsolicited software which aims to obtain private information from a user's computer without their knowledge and where such information may be sent to third parties without the user’s consent. Spyware is usually installed secretly on a system and spyware vendors go to great lengths to prevent the software from being detected or uninstalled.
Usage Intelligence on the other hand does not collect any private data from users’ machines and the data collected and provided by Usage Intelligence is intended to be used solely by vendors of legitimate software. All the information collected by the Usage Intelligence SDK is completely anonymous and none of the data collected can be used to identify individual users.
The Usage Intelligence SDK runs in the same process space of the software in which it is embedded, so the usage information gathered by the SDK is limited to the activities of the software in which it is embedded (i.e. it does not track any other user activity on their machines). This information helps vendors keep track of their software usage to provide a better service to their customers without breaching on user privacy.
Privacy laws in the jurisdiction(s) where you operate may require you to inform your customers about the data you’re collecting as well as having a Privacy Policy in place. You can read more in this blog post: Staying compliant with privacy laws.
Flexera employs a very strict and intolerant policy when it comes to malware. Every vendor who signs up to use our service is required to agree to the following:
The Usage Intelligence SDK shall not be implemented in any form of adware, spyware, or malware software
Vendors must inform their users about any custom information they are collecting
Vendors must have a Privacy Policy in place that defines the obligations and responsibilities to their customers
Should Flexera receive reports that identify that a vendor has breached this agreement, we reserve the right to immediately terminate their account in order to protect the legitimacy of our service and our customer base.
... View more
Labels:
Mar 31, 2020
04:32 AM
The Usage Intelligence SDK allows you to check for messages and retrieve content from your ReachOut™ campaign as plain text or HTML. This gives you the option to display the message in any way you like within the UI, or if your product does not have an active User Interface, you can deliver the message content to the user via any communications channel that your product has access to, such as an email or a balloon notification.
When you’re creating your ReachOut™ campaign from the Usage Intelligence Dashboard, click the button to create a Manual Campaign and enter your message as plain text or else in the form of a URL. To see examples on how to set up your campaign in the Dashboard, you can check out the blog post In-App Messaging using Usage Intelligence ReachOut™. More specifically at the section Building your first ReachOut™ Campaign > Example 3.
More information on how to implement the manual ReachOut™ retrieval in your application can also be found in the respective documentation for your preferred platform:
Windows: C/C++ | .NET
Mac: C++ | Objective-C
Linux: C/C++
... View more
Labels:
Mar 31, 2020
03:29 AM
ReachOut™ campaigns allow you to filter based on the Client ID, which is a unique ID assigned to each client installation which integrates the Usage Intelligence SDK. In order to test your ReachOut™ campaigns and verify how the message will be delivered to your users, you can use this ID to target a specific test installation.
Follow these steps to find out the Client ID for your installation and create a ReachOut™ campaign targeting this instance only:
From the folder your application is using when calling ruiCreateConfig() open ruiconfig*.cfg
Find the value of the CLIENTID, which is made up of 16 alphanumeric characters
From the Usage Intelligence Dashboard navigate to the ReachOut™ page and create a new campaign or edit an existing one
In the Recipient Profile Filter section, add a filter for the Client ID
Enter the client ID retrieved in step 2. You may enter multiple IDs to target more than one installation
If you click the Estimate Recipients button you should see the number of matching recipients is equal to the number of client IDs you entered
Save the campaign and the next time you run those specific installations your application will receive the ReachOut™ message
More information about the Usage Intelligence configuration file and its location can be found in this KBase article.
... View more
Labels:
Mar 31, 2020
02:37 AM
Product Usage Filters are filtering options available in reports and ReachOut™ campaigns that allow you to create filters based on usage properties, i.e. how users have used your product.
Usage properties represent the entire lifetime of the user since the first time that they installed your software and made the initial call home to the server. This means that as long as the same data path has been used when calling ruiCreateConfig() , the values carry over when your software is upgraded or re-installed. For example if after 30 days the user uninstalls the product and re-installs it again the next day, the server will recognize that this is a known user and continue to count the usage statistics from his previous installation.
For more information on how Usage Intelligence tracks unique user installations visit this KBase article.
Available Product Usage Properties
Days Since Installation
This is the number of days that have passed since the user installed your application for the first time. Therefore if your software was installed on January 1 and today is January 15, this property would be translated to 15 days.
This property is only available for filtering in ReachOut™ campaigns.
Date of Installation
A user's date of installation is the date when your application made the first call home to the server for this user. You can filter by this property to see activity for users that were new in a particular date range.
This property is only available for filtering reports.
Date Last Seen
The date last seen of a user is the date when your application last called home to the server for this user, i.e. when the user last ran your application.
This property is only available for filtering reports.
Lifetime Runtime Minutes
This is the number of minutes that the user has run your software for. In single-session installations it is calculated according to when ruiStartSDK() and ruiStopSDK() have been called in your application. In environments where multi-session mode is being used, this value will be calculated according to when ruiStartSession() and ruiStopSession() are called.
Lifetime Number of Sessions
The number of sessions represents the amount of times that the user has opened your application. In single-session mode this means the amount of times that ruiStartSDK() has been called, while in multi-session mode this means the number of times ruiStartSession() has been called.
More information on single-session and multi-session modes can be found in this KBase article.
Lifetime Event Usage
Event usage filters allow you to filter your users based on how many times they generated an event since the application was installed. This can be a single event, or a combination of events which when added together amount to the specified number. For example I can create an event usage filter which includes eventA, eventB and eventC, and specify 10 as the minimum value. This means that the filter will apply to users who in their lifetimes have generated those events combined for at least 10 times, i.e. eventA could have been generated for 5 times, eventB for 8 times and eventC never generated at all.
More information on event tracking is available in this KBase article.
... View more
Labels:
Mar 31, 2020
02:23 AM
SDK versions 4.0 and later do not have character limits for their messages or URLs, therefore the following article does not apply.
This article applies only to legacy SDK version 3.x and older.
Plain Text / URL Limit for Manual Reachout™ Messages
When a Manual ReachOut™ campaign is set to deliver plain text or a URL, a character limit of 256 characters applies. If the message content exceeds this limit, the message will be truncated to 254 characters and ‘__’ will be added to the end of the message when it is delivered to clients using SDK version 3.x and older. See example below:
Original plain-text message setup in ReachOut™ campaign (291 characters):
We have noticed that you are still using MySoftware version 1.2.3. Please note that support for this version will end on April 30, 2017, after which no more updates will be available for this product. You may visit http://www.mysoftware.com/download to update to the latest version for free.
Actual Message delivered to clients on SDK version 3.x and older (256 characters):
We have noticed that you are still using MySoftware version 1.2.3. Please note that support for this version will end on April 30, 2017, after which no more updates will be available for this product. You may visit http://www.mysoftware.com/download to u__
Page URL Limit for Automatic Reachout™ Messages
When an automatic ReachOut™ campaign is set to deliver a page hosted outside of the Usage Intelligence servers, a limit of 256 characters applies to the page URL. If the URL exceeds this limit, it will be truncated to 254 characters and ‘__’ will be added to the end of the URL when it is delivered to clients using SDK version 3.x and older.
URL Limit in ReachOut™ campaign(260 characters):
https://www.mysoftware.com/product/promotions.php?uniqueId=13E409C86&prodVersion=1.2.3&prodBuild=20170131&prodEdition=Premium &daysSinceInstall=350&runtimeMinutes=120&osPlatform=MicrosoftWindows&osWordLength=64&formFactor=Desktop&licenseType=freeware&country=en
Actual URL delivered to clients using SDK version 3.x and older (256 characters):
https://www.mysoftware.com/product/promotions.php?uniqueId=13E409C86&prodVersion=1.2.3&prodBuild=20170131&prodEdition=Premium &daysSinceInstall=350&runtimeMinutes=120&osPlatform=MicrosoftWindows&osWordLength=64&formFactor=Desktop&licenseType=freeware&coun__
Target URL Limit for Automatic Reachout™ Messages
When an automatic ReachOut™ campaign is set to deliver an image with a target URL, a limit of 190 characters applies. If the target URL exceeds this limit, it will be truncated to 188 characters and ‘__’ will be added at the end of the URL. See example below:
Target URL in ReachOut™ campaign(193 characters):
https://www.mysoftware.com/product/promotions.php?uniqueId=13E409C86&prodVersion=1.2.3&prodBuild=20170131&prodEdition=Premium &daysSinceInstall=350&runtimeMinutes=120&osPlatform=MicrosoftWindows
Actual Target URL used on clients with SDK version 3.x and older (190 characters):
https://www.mysoftware.com/product/promotions.php?uniqueId=13E409C86&prodVersion=1.2.3&prodBuild=20170131&prodEdition=Premium &daysSinceInstall=350&runtimeMinutes=120&osPlatform=MicrosoftWi__
Using ReachOut™ Variables
Care should be taken when using ReachOut™ Variables since the limit will be applied to the resulting content after the variables have been replaced with the user’s data. For example if the OS edition variable is used and a client is on Microsoft Windows 7 Ultimate:
Message content in ReachOut™ campaign (253 characters):
A new update for MySoftware on _-(os.edition)-_ is now available! Please visit http://www.mysoftware.com/download for more info and to update to the latest version for free or contact our support team at http://www.mysoftware.com/support for assistance.
Converted message that will be truncated after parsing variables (265 characters):
A new update for MySoftware on Microsoft Windows 7 Ultimate is now available! Please visit http://www.mysoftware.com/download for more info and to update to the latest version for free or contact our support team at http://www.mysoftware.com/support for assistance.
Actual message delivered to clients using SDK version 3.x and older (256 characters):
A new update for MySoftware on Microsoft Windows 7 Ultimate is now available! Please visit http://www.mysoftware.com/download for more info and to update to the latest version for free or contact our support team at http://www.mysoftware.com/support for__
For more information on ReachOut™ Variables visit this KB article.
... View more
Labels:
Mar 31, 2020
02:04 AM
The Usage Intelligence SDK is designed to be lightweight and by default it will call home when ruiSartSDK() is called, and every 20 minutes after that while the application is running. The SDK uses a caching mechanism to log usage statistics on disk, and when it’s time to call home the data is compressed and sent to the server using minimal bandwidth. Once the call home request completes, the data will be available in the Product Dashboard straight away.
The size of the data sent to the server greatly depends on how much data needs to be synced. Since log data is compressed before it is sent to the server, the larger the file the better the compression ratio. For example a sync containing 100 events will be an average of 2KB in size while 500 events will be an average of 3KB. Note that these values are based on events with a combined event category and name of 40 characters or less and will vary depending on the length of the category, name and any custom data logged with the event.
If there is a problem with the internet connection, the data remains cached until the connection is restored and the SDK is able to call home successfully. This makes the data collection process reliable and efficient by avoiding unnecessary requests to the server, unlike web APIs where a web request has to be generated for each event.
Further requests to the server may be generated if the application makes API calls that require a real-time response, such as validating a license key or checking for ReachOut™ messages.
Related Articles
How does the Usage Intelligence call home protocol work?
What is the size threshold for the Usage Intelligence log file?
... View more
Labels:
Mar 31, 2020
12:31 AM
Usage Intelligence caches tracking data inside a log file named ruilog.log. In case your application cannot connect to the server for a number of days or runtime sessions, all cached data is retained in this log file until the next successful sync.
However in order to cater for environments where the user is running permanently offline or your application is blocked from accessing the servers, the Usage Intelligence SDK will limit the maximum size of this log file to 1MB by default.
If for any reason you wish to increase or decrease the maximum threshold for this log file, please contact support via our helpdesk to discuss your requirements. Usage Intelligence has a method to manually change this configuration setting from the server side which in turn will instruct all your active clients to adopt the new custom file size threshold.
For more information on the list of configuration and log files maintained by the Usage Intelligence SDK please check out this KBase article.
... View more
Labels:
Mar 31, 2020
12:25 AM
Usage Intelligence does not require integration with an installer or uninstaller script and is able to track users even if your software is a simple executable. A new user installation is detected the very first time the software calls home and a churned user is declared lost after not calling home for a number of days - this time period is configurable from the dashboard and by default set to 40 days.
For more information on how Usage Intelligence detects new and lost users, please check out this KBase article.
... View more
Labels:
Mar 30, 2020
11:52 PM
The Usage Intelligence protocol implements various mechanisms to ensure that the configuration files have not been compromised. If the SDK detects that the configuration files have been tampered with, it will discard the files and negotiate with the server to create new files with the last known valid configuration for that user.
You should never try to read or modify the data inside any of the Usage Intelligence log or config files whilst your application is running as this may cause the SDK to behave unpredictably and in extreme cases could lead to a crash. Thus you should always use the Usage Intelligence SDK for any calls or config changes. Should you have any special requirements please contact support to discuss your specific case.
If you would like to learn more about what files are maintained by the Usage Intelligence SDK, you may check out this KBase article.
... View more
Labels:
Mar 30, 2020
12:08 PM
If you have integrated the SDK and have callhome enabled whilst testing a development build, Usage Intelligence will keep track of data collected from these builds just like any other public build. This way you will be able to confirm that your SDK implementation is working properly before you release your product to the public.
Bypass Tracking
In order to bypass tracking you may consider implementing a mechanism in your product which will not send data to the servers at all for testing or internal builds. This can be done by including a flag in the registry or a setting in your application config/ini file which indicates to your software whether tracking should be disabled on that particular environment or machine. A simple Boolean value would allow you to check for this setting before calling the Usage Intelligence API so you can bypass the call to ruiStartSDK() and other API calls.
Purging Data
Before you launch your product, Usage Intelligence also offers you the possibility to purge all your test data and start with a fresh account. This is particularly useful after your initial Usage Intelligence evaluation once you’re ready to roll out your product to the public. More info on how this works can be found here.
... View more
Labels:
Latest posts by jmcguire
Subject | Views | Posted |
---|---|---|
1030 | Nov 23, 2020 09:24 AM | |
766 | Nov 10, 2020 06:20 AM | |
1068 | Nov 10, 2020 06:14 AM | |
1955 | Nov 10, 2020 06:13 AM | |
561 | Mar 31, 2020 04:47 AM | |
711 | Mar 31, 2020 04:36 AM | |
468 | Mar 31, 2020 04:32 AM | |
643 | Mar 31, 2020 03:29 AM | |
865 | Mar 31, 2020 02:37 AM | |
709 | Mar 31, 2020 02:23 AM |
Activity Feed
- Posted Usage Intelligence - Front End Change Log on Usage Intelligence Knowledge Base. Nov 23, 2020 09:24 AM
- Posted Frequently encountered issues when integrating the Usage Intelligence SDK on Usage Intelligence Knowledge Base. Nov 10, 2020 06:20 AM
- Posted What are ReachOut™ Variables and how are they used with in-app messages? on Usage Intelligence Knowledge Base. Nov 10, 2020 06:14 AM
- Posted Usage Intelligence SDK versions and updates - Changelog on Usage Intelligence Knowledge Base. Nov 10, 2020 06:13 AM
- Posted How can I participate in the Revenera Usage Intelligence BETA program? on Usage Intelligence Knowledge Base. Mar 31, 2020 04:47 AM
- Posted Can my software be classified as spyware if I use the Usage Intelligence SDK? on Usage Intelligence Knowledge Base. Mar 31, 2020 04:36 AM
- Posted How can I use ReachOut™ if my product runs as a service without a User Interface? on Usage Intelligence Knowledge Base. Mar 31, 2020 04:32 AM
- Posted How can I send a ReachOut™ message to a test machine only? on Usage Intelligence Knowledge Base. Mar 31, 2020 03:29 AM
- Posted What are Product Usage Filters? on Usage Intelligence Knowledge Base. Mar 31, 2020 02:37 AM
- Posted ReachOut™ message length and target URL character limits on Usage Intelligence Knowledge Base. Mar 31, 2020 02:23 AM
- Posted How many times does the Usage Intelligence SDK call home and how much traffic does each call generate? on Usage Intelligence Knowledge Base. Mar 31, 2020 02:04 AM
- Posted What is the size threshold for the Usage Intelligence log file and can this be changed? on Usage Intelligence Knowledge Base. Mar 31, 2020 12:31 AM
- Posted How can Usage Intelligence track new installations if I don't have an installer/uninstaller? on Usage Intelligence Knowledge Base. Mar 31, 2020 12:25 AM
- Posted What happens if the user changes the contents of the Usage Intelligence config or log files? on Usage Intelligence Knowledge Base. Mar 30, 2020 11:52 PM
- Posted Do testing builds affect my reports and quotas? on Usage Intelligence Knowledge Base. Mar 30, 2020 12:08 PM
- Posted Using Custom Properties to collect Marketing Campaign Details on Usage Intelligence Knowledge Base. Mar 30, 2020 09:48 AM
- Posted My VAT number is being rejected or reported as invalid. What should I do? on Usage Intelligence Knowledge Base. Mar 30, 2020 09:13 AM
- Posted Does my account qualify as VAT Exempt? on Usage Intelligence Knowledge Base. Mar 30, 2020 09:04 AM
- Posted How can I change my password? on Usage Intelligence Knowledge Base. Mar 30, 2020 08:52 AM
- Posted Can users opt out of reach out campaigns? on Usage Intelligence Knowledge Base. Mar 30, 2020 08:50 AM