public static void TrackCustomMatomo(string category, string action, string name = "", string value = "", Dictionary <string, string> properties = null) { if (!LocalContext.GetTelemetrySettings()) { return; } try { if (piwikTracker == null) { Initialize(); } piwikTracker.SetUserAgent(TelemetryUtilities.UserAgent); if (properties != null) { foreach (var prop in properties) { piwikTracker.SetCustomTrackingParameter(prop.Key, prop.Value); } } piwikTracker.DoTrackEvent(category, action, name, value); } catch { } }
static void Main(string[] args) { PiwikTracker _piwikTracker = new PiwikTracker(SiteId, PiwikBaseUrl); string _version = args[0]; string _internalDomain = args[1]; string _machineName = Environment.MachineName.ToLower(new CultureInfo("en-GB", false)); string _domainName = Dns.GetHostEntry("").HostName; string _appDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); // If the cache has been set up this is an update, otherwise it's a new user string _installType = File.Exists(_appDataFolder + CacheLocation) ? "update" : "new"; bool _isInternalDomain = _machineName.Contains(_internalDomain) || _domainName.Contains(_internalDomain); // Don't collect telemetry except for users on the internal domain. LocalContext.SetTelemetrySettings(_isInternalDomain); if (_isInternalDomain) { // Hash the username and send it with the installer info _piwikTracker.SetUserId(ComputeSHA256Hash(Environment.UserName + "@" + _internalDomain + ".com")); // Send this information to Matomo _piwikTracker.DoTrackEvent("SpeckleAutoCADInstaller", _installType, _version); } }
static private void TrackSongPlayback() { var piwikTracker = new PiwikTracker(SiteId, PiwikBaseUrl); piwikTracker.SetUserAgent(UA); var response = piwikTracker.DoTrackEvent("music", "play", "Eye Of The Tiger"); DisplayDebugInfo(response); }