123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- using System;
- using UnityEngine.Analytics;
- #if UNITY_6000_0_OR_NEWER
- namespace UnityEditor.VSAttribution.HotReload
- {
- internal static class VSAttribution
- {
-
- const int k_VersionId = 4;
- const int k_MaxEventsPerHour = 10;
- const int k_MaxNumberOfElements = 1000;
- const string k_VendorKey = "unity.vsp-attribution";
- const string k_EventName = "vspAttribution";
-
- [Serializable]
- private class VSAttributionData : IAnalytic.IData {
- public string actionName;
- public string partnerName;
- public string customerUid;
- public string extra;
- }
-
- [AnalyticInfo(k_EventName, k_VendorKey, k_VersionId, k_MaxEventsPerHour, k_MaxNumberOfElements)]
- class VSAttributionAnalytics : IAnalytic {
- private VSAttributionData m_Data;
- private VSAttributionAnalytics(
- string actionName,
- string partnerName,
- string customerUid,
- string extra
- ) {
- this.m_Data = new VSAttributionData {
- actionName = actionName,
- partnerName = partnerName,
- customerUid = customerUid,
- extra = extra
- };
- }
- public bool TryGatherData(out IAnalytic.IData data, out Exception error) {
- data = this.m_Data;
- error = null;
- return this.m_Data != null;
- }
- public static AnalyticsResult SendEvent(
- string actionName,
- string partnerName,
- string customerUid,
- string extra
- ) {
- return EditorAnalytics.SendAnalytic(new VSAttributionAnalytics(actionName,
- partnerName,
- customerUid,
- extra
- ));
- }
- }
- /// <summary>
- /// Registers and attempts to send a Verified Solutions Attribution event.
- /// </summary>
- /// <param name="actionName">Name of the action, identifying a place this event was called from.</param>
- /// <param name="partnerName">Identifiable Verified Solutions Partner's name.</param>
- /// <param name="customerUid">Unique identifier of the customer using Partner's Verified Solution.</param>
- public static AnalyticsResult SendAttributionEvent(string actionName, string partnerName, string customerUid)
- {
- try
- {
- return VSAttributionAnalytics.SendEvent(actionName, partnerName, customerUid, "{}");
- }
- catch
- {
- // Fail silently
- return AnalyticsResult.AnalyticsDisabled;
- }
- }
- }
- }
- #else
- namespace UnityEditor.VSAttribution.HotReload
- {
- internal static class VSAttribution
- {
- const int k_VersionId = 4;
- const int k_MaxEventsPerHour = 10;
- const int k_MaxNumberOfElements = 1000;
- const string k_VendorKey = "unity.vsp-attribution";
- const string k_EventName = "vspAttribution";
- static bool RegisterEvent()
- {
- AnalyticsResult result = EditorAnalytics.RegisterEventWithLimit(k_EventName, k_MaxEventsPerHour,
- k_MaxNumberOfElements, k_VendorKey, k_VersionId);
- var isResultOk = result == AnalyticsResult.Ok;
- return isResultOk;
- }
- [Serializable]
- struct VSAttributionData
- {
- public string actionName;
- public string partnerName;
- public string customerUid;
- public string extra;
- }
- /// <summary>
- /// Registers and attempts to send a Verified Solutions Attribution event.
- /// </summary>
- /// <param name="actionName">Name of the action, identifying a place this event was called from.</param>
- /// <param name="partnerName">Identifiable Verified Solutions Partner's name.</param>
- /// <param name="customerUid">Unique identifier of the customer using Partner's Verified Solution.</param>
- public static AnalyticsResult SendAttributionEvent(string actionName, string partnerName, string customerUid)
- {
- try
- {
- // Are Editor Analytics enabled ? (Preferences)
- if (!EditorAnalytics.enabled)
- return AnalyticsResult.AnalyticsDisabled;
- if (!RegisterEvent())
- return AnalyticsResult.InvalidData;
- // Create an expected data object
- var eventData = new VSAttributionData
- {
- actionName = actionName,
- partnerName = partnerName,
- customerUid = customerUid,
- extra = "{}"
- };
- return EditorAnalytics.SendEventWithLimit(k_EventName, eventData, k_VersionId);
- }
- catch
- {
- // Fail silently
- return AnalyticsResult.AnalyticsDisabled;
- }
- }
- }
- }
- #endif
|