public static void Initialize(string gameKey, string gameSecret) { #if WINDOWS_UWP || WINDOWS_WSA || WINDOWS_PHONE CoreApplication.Suspending += OnSuspending; CoreApplication.Resuming += OnResuming; #endif GADevice.UpdateConnectionType(); GAThreading.PerformTaskOnGAThread("initialize", () => { if (IsSdkReady(true, false)) { GALogger.W("SDK already initialized. Can only be called once."); return; } if (!GAValidator.ValidateKeys(gameKey, gameSecret)) { GALogger.W("SDK failed initialize. Game key or secret key is invalid. Can only contain characters A-z 0-9, gameKey is 32 length, gameSecret is 40 length. Failed keys - gameKey: " + gameKey + ", secretKey: " + gameSecret); return; } GAState.SetKeys(gameKey, gameSecret); if (!GAStore.EnsureDatabase(false)) { GALogger.W("Could not ensure/validate local event database: " + GADevice.WritablePath); } GAState.InternalInitialize(); }); }
public static void AddResourceEvent(EGAResourceFlowType flowType, string currency, double amount, string itemType, string itemId) { // Validate event params if (!GAValidator.ValidateResourceEvent(flowType, currency, (long)amount, itemType, itemId)) { GAHTTPApi.Instance.SendSdkErrorEvent(EGASdkErrorType.Rejected); return; } // If flow type is sink reverse amount if (flowType == EGAResourceFlowType.Sink) { amount *= -1; } // Create empty eventData JSONClass eventDict = new JSONClass(); // insert event specific values string flowTypeString = ResourceFlowTypeToString(flowType); eventDict["event_id"] = flowTypeString + ":" + currency + ":" + itemType + ":" + itemId; eventDict["category"] = CategoryResource; eventDict.Add("amount", new JSONData(amount)); // Add custom dimensions AddDimensionsToEvent(eventDict); // Log GALogger.I("Add RESOURCE event: {currency:" + currency + ", amount:" + amount + ", itemType:" + itemType + ", itemId:" + itemId + "}"); // Send to store AddEventToStore(eventDict); }
public void TestValidateDesignEvent() { // Store result bool isValid; // Valid isValid = GAValidator.ValidateDesignEvent("name:name", 100); Assert.True(isValid, "Design event should allow nil value"); isValid = GAValidator.ValidateDesignEvent("name:name:name", 100); Assert.True(isValid, "Design event should allow nil value"); isValid = GAValidator.ValidateDesignEvent("name:name:name:name", 100); Assert.True(isValid, "Design event should allow nil value"); isValid = GAValidator.ValidateDesignEvent("name:name:name:name:name", 100); Assert.True(isValid, "Design event should allow nil value"); isValid = GAValidator.ValidateDesignEvent("name:name", 0); Assert.True(isValid, "Design event should allow nil value"); // Invalid isValid = GAValidator.ValidateDesignEvent("", 100); Assert.False(isValid, "Design event should falset allow empty event string"); isValid = GAValidator.ValidateDesignEvent(null, 100); Assert.False(isValid, "Design event should falset allow empty event string"); isValid = GAValidator.ValidateDesignEvent("name:name:name:name:name:name", 100); Assert.False(isValid, "Design event should falset allow more than 5 values in event string"); }
public static void AddErrorEvent(EGAErrorSeverity severity, string message) { string severityString = ErrorSeverityToString(severity); // Validate if (!GAValidator.ValidateErrorEvent(severity, message)) { GAHTTPApi.Instance.SendSdkErrorEvent(EGASdkErrorType.Rejected); return; } // Create empty eventData JSONClass eventData = new JSONClass(); // Append event specifics eventData["category"] = CategoryError; eventData["severity"] = severityString; eventData["message"] = message; // Log GALogger.I("Add ERROR event: {severity:" + severityString + ", message:" + message + "}"); // Send to store AddEventToStore(eventData); }
public static void AddErrorEvent(EGAErrorSeverity severity, string message, IDictionary <string, object> fields) { string severityString = ErrorSeverityToString(severity); // Validate if (!GAValidator.ValidateErrorEvent(severity, message)) { //GAHTTPApi.Instance.SendSdkErrorEvent(EGASdkErrorType.Rejected); return; } // Create empty eventData JSONObject eventData = new JSONObject(); // Append event specifics eventData["category"] = CategoryError; eventData["severity"] = severityString; eventData["message"] = message; // Add custom dimensions AddDimensionsToEvent(eventData); // Add custom fields AddFieldsToEvent(eventData, GAState.ValidateAndCleanCustomFields(fields)); // Log GALogger.I("Add ERROR event: {severity:" + severityString + ", message:" + message + "}"); // Send to store AddEventToStore(eventData); }
public void TestValidateUserId() { Assert.True(GAValidator.ValidateUserId("fhjkdfghdfjkgh")); Assert.False(GAValidator.ValidateUserId(null)); Assert.False(GAValidator.ValidateUserId("")); }
public static void AddDesignEvent(string eventId, double value, bool sendValue) { // Validate if (!GAValidator.ValidateDesignEvent(eventId, value)) { GAHTTPApi.Instance.SendSdkErrorEvent(EGASdkErrorType.Rejected); return; } // Create empty eventData JSONClass eventData = new JSONClass(); // Append event specifics eventData["category"] = CategoryDesign; eventData["event_id"] = eventId; if (sendValue) { eventData.Add("value", new JSONData(value)); } // Log GALogger.I("Add DESIGN event: {eventId:" + eventId + ", value:" + value + "}"); // Send to store AddEventToStore(eventData); }
public static void SetAvailableResourceItemTypes(List <string> resourceItemTypes) { if (GAValidator.ValidateResourceItemTypes(resourceItemTypes.ToArray())) { GA_Wrapper.SetAvailableResourceItemTypes(GA_MiniJSON.Serialize(resourceItemTypes)); } }
public void TestValidateClientTs() { Assert.True(GAValidator.ValidateClientTs(GAUtilities.TimeIntervalSince1970())); Assert.False(GAValidator.ValidateClientTs(long.MinValue)); Assert.False(GAValidator.ValidateClientTs(long.MaxValue)); }
public static void SetAvailableCustomDimensions01(List <string> customDimensions) { if (GAValidator.ValidateCustomDimensions(customDimensions.ToArray())) { GA_Wrapper.SetAvailableCustomDimensions01(GA_MiniJSON.Serialize(customDimensions)); } }
public static void AddDesignEvent(string eventId, double value, bool sendValue, IDictionary <string, object> fields) { // Validate if (!GAValidator.ValidateDesignEvent(eventId, value)) { //GAHTTPApi.Instance.SendSdkErrorEvent(EGASdkErrorType.Rejected); return; } // Create empty eventData JSONObject eventData = new JSONObject(); // Append event specifics eventData["category"] = CategoryDesign; eventData["event_id"] = eventId; if (sendValue) { eventData.Add("value", new JSONNumber(value)); } // Add custom dimensions AddDimensionsToEvent(eventData); // Add custom fields AddFieldsToEvent(eventData, GAState.ValidateAndCleanCustomFields(fields)); // Log GALogger.I("Add DESIGN event: {eventId:" + eventId + ", value:" + value + "}"); // Send to store AddEventToStore(eventData); }
public void TestValidateBusinessEvent() { // Store result bool isValid; // Valid business events isValid = GAValidator.ValidateBusinessEvent("USD", 99, "cartType", "itemType", "itemId"); Assert.True(isValid, "Valid business event should succeed"); // Should allow false carttype (optional) isValid = GAValidator.ValidateBusinessEvent("USD", 99, "", "itemType", "itemId"); Assert.True(isValid, "Business event cartType should be optional"); // Should allow 0 amount isValid = GAValidator.ValidateBusinessEvent("USD", 0, "", "itemType", "itemId"); Assert.True(isValid, "Business event should allow amount 0"); // Should allow negative amount isValid = GAValidator.ValidateBusinessEvent("USD", -99, "", "itemType", "itemId"); Assert.True(isValid, "Business event should allow amount less than 0"); // Should fail on empty item type isValid = GAValidator.ValidateBusinessEvent("USD", 99, "", "", "itemId"); Assert.False(isValid, "Business event should not allow empty item type"); // Should fail on empty item id isValid = GAValidator.ValidateBusinessEvent("USD", 99, "", "itemType", ""); Assert.False(isValid, "Business event should not allow empty item id"); }
public static void SetAvailableResourceCurrencies(List <string> resourceCurrencies) { if (!GAValidator.ValidateResourceCurrencies(resourceCurrencies.ToArray())) { return; } GA_Wrapper.SetAvailableResourceCurrencies(GA_MiniJSON.Serialize((object)resourceCurrencies)); }
public static void SetAvailableCustomDimensions03(List <string> customDimensions) { if (!GAValidator.ValidateCustomDimensions(customDimensions.ToArray())) { return; } GA_Wrapper.SetAvailableCustomDimensions03(GA_MiniJSON.Serialize((object)customDimensions)); }
// Token: 0x0600014F RID: 335 RVA: 0x0000ACC4 File Offset: 0x000090C4 public static void SetAvailableResourceItemTypes(List <string> resourceItemTypes) { if (GAValidator.ValidateResourceItemTypes(resourceItemTypes.ToArray())) { string availableResourceItemTypes = GA_MiniJSON.JsonEncode(resourceItemTypes.ToArray()); GA_Wrapper.SetAvailableResourceItemTypes(availableResourceItemTypes); } }
// Token: 0x0600014D RID: 333 RVA: 0x0000AC64 File Offset: 0x00009064 public static void SetAvailableCustomDimensions03(List <string> customDimensions) { if (GAValidator.ValidateCustomDimensions(customDimensions.ToArray())) { string availableCustomDimensions = GA_MiniJSON.JsonEncode(customDimensions.ToArray()); GA_Wrapper.SetAvailableCustomDimensions03(availableCustomDimensions); } }
public void ValidateEventIdCharacters() { Assert.True(GAValidator.ValidateEventIdCharacters("GHj:df(g?h d_fk7-58.9)3!47")); Assert.False(GAValidator.ValidateEventIdCharacters("GHj:df(g?h d_fk,7-58.9)3!47")); Assert.False(GAValidator.ValidateEventIdCharacters(null)); Assert.False(GAValidator.ValidateEventIdCharacters("")); }
public void TestValidateBirthyear() { Assert.True(GAValidator.ValidateBirthyear(1982)); Assert.True(GAValidator.ValidateBirthyear(9999)); Assert.True(GAValidator.ValidateBirthyear(0)); Assert.False(GAValidator.ValidateBirthyear(10000)); Assert.False(GAValidator.ValidateBirthyear(-1)); }
public void TestValidateSdkErrorEvent() { // Store result bool isValid; // Valid isValid = GAValidator.ValidateSdkErrorEvent("c6cfc80ff69d1e7316bf1e0c8194eda6", "e0ae4809f70e2fa96916c7060f417ae53895f18d", EGASdkErrorType.Rejected); Assert.True(isValid, "Sdk error event should validate"); }
public static void SetFacebookId(string facebookId) { GAThreading.PerformTaskOnGAThread("setFacebookId", () => { if (GAValidator.ValidateFacebookId(facebookId)) { GAState.SetFacebookId(facebookId); } }); }
public void TestValidateEventPartCharacters() { Assert.False(GAValidator.ValidateEventPartCharacters("øææ")); Assert.False(GAValidator.ValidateEventPartCharacters("")); Assert.False(GAValidator.ValidateEventPartCharacters(null)); Assert.False(GAValidator.ValidateEventPartCharacters("*")); Assert.False(GAValidator.ValidateEventPartCharacters("))&%")); Assert.True(GAValidator.ValidateEventPartCharacters("sdfdffdgdfg")); }
public void TestValidateBuild() { Assert.False(GAValidator.ValidateBuild("")); Assert.False(GAValidator.ValidateBuild(null)); Assert.False(GAValidator.ValidateBuild(GATestUtilities.GetRandomString(40))); Assert.True(GAValidator.ValidateBuild("alpha 1.2.3")); Assert.True(GAValidator.ValidateBuild("ALPHA 1.2.3")); Assert.True(GAValidator.ValidateBuild("TES# sdf.fd3")); }
public void TestValidateEventIdLength() { Assert.True(GAValidator.ValidateEventIdLength(GATestUtilities.GetRandomString(40))); Assert.True(GAValidator.ValidateEventIdLength(GATestUtilities.GetRandomString(32))); Assert.True(GAValidator.ValidateEventIdLength("sdfdf")); Assert.False(GAValidator.ValidateEventIdLength(GATestUtilities.GetRandomString(80))); Assert.False(GAValidator.ValidateEventIdLength(null)); Assert.False(GAValidator.ValidateEventIdLength("")); }
public static void SetGender(EGAGender gender) { GAThreading.PerformTaskOnGAThread("setGender", () => { if (GAValidator.ValidateGender(gender)) { GAState.SetGender(gender); } }); }
public static void SetBirthYear(int birthYear) { GAThreading.PerformTaskOnGAThread("setBirthYear", () => { if (GAValidator.ValidateBirthyear(birthYear)) { GAState.SetBirthYear(birthYear); } }); }
public static void AddAdEvent(GAAdAction adAction, GAAdType adType, string adSdkName, string adPlacement) { #if UNITY_EDITOR if (GAValidator.ValidateAdEvent(adAction, adType, adSdkName, adPlacement)) { addAdEvent((int)adAction, (int)adType, adSdkName, adPlacement); } #elif UNITY_IOS || UNITY_ANDROID addAdEvent((int)adAction, (int)adType, adSdkName, adPlacement); #endif }
public static void Initialize(string gamekey, string gamesecret) { #if UNITY_EDITOR if (GAValidator.ValidateKeys(gamekey, gamesecret)) { initialize(gamekey, gamesecret); } #else initialize(gamekey, gamesecret); #endif }
public static void SetBuild(string build) { #if UNITY_EDITOR if (GAValidator.ValidateBuild(build)) { configureBuild(build); } #else configureBuild(build); #endif }
public static void SetCustomUserId(string userId) { #if UNITY_EDITOR if (GAValidator.ValidateUserId(userId)) { configureUserId(userId); } #else configureUserId(userId); #endif }
public static void AddResourceEvent(EGAResourceFlowType flowType, string currency, double amount, string itemType, string itemId, IDictionary <string, object> fields, bool mergeFields) { if (!GAState.IsEventSubmissionEnabled) { return; } // Validate event params if (!GAValidator.ValidateResourceEvent(flowType, currency, (long)amount, itemType, itemId)) { //GAHTTPApi.Instance.SendSdkErrorEvent(EGASdkErrorType.Rejected); return; } // If flow type is sink reverse amount if (flowType == EGAResourceFlowType.Sink) { amount *= -1; } // Create empty eventData JSONObject eventDict = new JSONObject(); // insert event specific values string flowTypeString = ResourceFlowTypeToString(flowType); eventDict["event_id"] = flowTypeString + ":" + currency + ":" + itemType + ":" + itemId; eventDict["category"] = CategoryResource; eventDict.Add("amount", new JSONNumber(amount)); // Add custom dimensions AddDimensionsToEvent(eventDict); IDictionary <string, object> fieldsToUse = new Dictionary <string, object>(fields != null && fields.Count > 0 ? fields : GAState.CurrentGlobalCustomEventFields); if (mergeFields && fields != null && fields.Count > 0) { foreach (KeyValuePair <string, object> pair in GAState.CurrentGlobalCustomEventFields) { if (!fieldsToUse.ContainsKey(pair.Key)) { fieldsToUse.Add(pair.Key, pair.Value); } } } // Add custom fields AddFieldsToEvent(eventDict, GAState.ValidateAndCleanCustomFields(fieldsToUse)); // Log GALogger.I("Add RESOURCE event: {currency:" + currency + ", amount:" + amount + ", itemType:" + itemType + ", itemId:" + itemId + "}"); // Send to store AddEventToStore(eventDict); }