Я использую GoogleAnalyticsTracker , который прекрасно работает, и я получаю аналитические отчеты для использования в моем приложении WinForms.
Однако каждый удар создает новый уникальный пользовательский сеанс в Google Analytics, и я хотел бы показать уникальным пользователям, чтобы дать представление о том, сколько пользователей используют мое приложение.
Я прочитал раздел в инструкции, но я не уверен, как реализовать интерфейс - я понимаю основы использования интерфейса, но это то, что я хотел бы узнать больше здесь.
С официального сайта сессии документируются следующим образом:
Сессии также не отслеживаются: каждое отслеживаемое событие считается как
новый уникальный посетитель Google Analytics.
Если вам нужно отслеживать пользовательские сеансы, реализуйте пользовательский IAnalyticsSession и передайте его конструктору Tracker
объект.
Я хотел бы знать, как я могу реализовать пользовательский IAnalyticsSession и передать его конструктору объекта Tracker в мой код ниже:
public class CommonTracking : IAnalyticsSession
{
static string googleID = "UA-######-##";
public string GenerateCacheBuster()
{
throw new NotImplementedException();
}
public string GenerateSessionId()
{
throw new NotImplementedException();
}
public static void TrackFeature()
{
// Get calling method name
StackTrace stackTrace = new StackTrace();
MethodBase methodBase = stackTrace.GetFrame(1).GetMethod();
TrackFeature(methodBase.Name);
}
public static async void TrackFeature(string FeatureCustom)
{
SimpleTrackerEnvironment trackerEnvironment = new SimpleTrackerEnvironment(Environment.OSVersion.Platform.ToString(),
Environment.OSVersion.Version.ToString(),
Environment.OSVersion.VersionString);
// Overwrite platform details
KeyValuePair<string, string> kvpOSSpecs = GetOperatingSystemProductName();
trackerEnvironment.OsPlatform = kvpOSSpecs.Key;
trackerEnvironment.OsVersion = kvpOSSpecs.Value;
SimpleTracker tracker = new SimpleTracker(googleID, trackerEnvironment);
await tracker.TrackPageViewAsync(System.AppDomain.CurrentDomain.FriendlyName, FeatureCustom, null);
}
static KeyValuePair<string, string> GetOperatingSystemProductName()
{
KeyValuePair<string, string> OperatingSystemSpec = new KeyValuePair<string, string>();
ManagementObjectSearcher wmiOsInfo = new ManagementObjectSearcher("SELECT Caption, Version FROM Win32_OperatingSystem");
try
{
foreach (var os in wmiOsInfo.Get())
{
var version = os["Version"].ToString();
var productName = os["Caption"].ToString();
OperatingSystemSpec = new KeyValuePair<string, string>(productName, version);
}
}
catch { }
return OperatingSystemSpec;
}
}