diff --git a/analytics/src/Parameter.cs b/analytics/src/Parameter.cs index 5b14f008f..ce8096449 100644 --- a/analytics/src/Parameter.cs +++ b/analytics/src/Parameter.cs @@ -82,8 +82,6 @@ public Parameter(string parameterName, double parameterValue) { Value = parameterValue; } - // TODO: Implement accepting maps and vectors in C++ Analytics before enabling these. - /* public Parameter(string parameterName, IDictionary<string, object> parameterValue) { Name = parameterName; Value = parameterValue; @@ -93,7 +91,6 @@ public Parameter(string parameterName, IEnumerable<IDictionary<string, object>> Name = parameterName; Value = parameterValue; } - */ /// @deprecated No longer needed, will be removed in the future. [System.Obsolete("No longer needed, will be removed in the future.")] diff --git a/analytics/testapp/Assets/Firebase/Sample/Analytics/UIHandler.cs b/analytics/testapp/Assets/Firebase/Sample/Analytics/UIHandler.cs index 25cb7dfd1..08564b79d 100644 --- a/analytics/testapp/Assets/Firebase/Sample/Analytics/UIHandler.cs +++ b/analytics/testapp/Assets/Firebase/Sample/Analytics/UIHandler.cs @@ -118,6 +118,26 @@ public void AnalyticsLevelUp() { new Parameter("hit_accuracy", 3.14f)); } + public void AnalyticsViewCart() { + // Log an event that includes a parameter with a list + DebugLog("Logging a view cart event."); + FirebaseAnalytics.LogEvent( + FirebaseAnalytics.EventViewCart, + new Parameter(FirebaseAnalytics.ParameterCurrency, "USD"), + new Parameter(FirebaseAnalytics.ParameterValue, 30.03), + new Parameter(FirebaseAnalytics.ParameterItems, new [] { + new Dictionary<string, object> { + { FirebaseAnalytics.ParameterItemID, "SKU_12345" }, + { FirebaseAnalytics.ParameterItemName, "Horse Armor DLC" }, + }, + new Dictionary<string, object> { + { FirebaseAnalytics.ParameterItemID, "SKU_67890" }, + { FirebaseAnalytics.ParameterItemName, "Gold Horse Armor DLC" }, + } + }) + ); + } + // Reset analytics data for this app instance. public void ResetAnalyticsData() { DebugLog("Reset analytics data."); @@ -222,6 +242,9 @@ void GUIDisplayControls() { if (GUILayout.Button("Log Level Up")) { AnalyticsLevelUp(); } + if (GUILayout.Button("Log View Cart")) { + AnalyticsViewCart(); + } if (GUILayout.Button("Reset Analytics Data")) { ResetAnalyticsData(); } diff --git a/analytics/testapp/Assets/Firebase/Sample/Analytics/UIHandlerAutomated.cs b/analytics/testapp/Assets/Firebase/Sample/Analytics/UIHandlerAutomated.cs index b4356bcea..e101771ab 100644 --- a/analytics/testapp/Assets/Firebase/Sample/Analytics/UIHandlerAutomated.cs +++ b/analytics/testapp/Assets/Firebase/Sample/Analytics/UIHandlerAutomated.cs @@ -30,6 +30,7 @@ public override void Start() { TestAnalyticsScoreDoesNotThrow, TestAnalyticsGroupJoinDoesNotThrow, TestAnalyticsLevelUpDoesNotThrow, + TestAnalyticsViewCartDoesNotThrow, // This test regularly fails on iOS simulator, and there isn't a great way // to determine if this is on a device or simulator, so just disable on // GHA iOS and tvOS for now. @@ -94,6 +95,13 @@ Task TestAnalyticsLevelUpDoesNotThrow() { }); } + Task TestAnalyticsViewCartDoesNotThrow() { + return WrapWithTask(() => { + base.AnalyticsViewCart(); + return true; + }); + } + Task TestAnalyticsSetConsentDoesNotThrow() { return WrapWithTask(() => { base.AnalyticsSetConsent(); diff --git a/docs/readme.md b/docs/readme.md index f2d2c8d31..7758ea146 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -73,6 +73,9 @@ Release Notes ------------- ### Upcoming - Changes + - Analytics: Add support for Parameters of Lists of Dictionaries, needed + by some events such as ViewCart. + ([#1056](https://github.com/firebase/firebase-unity-sdk/issues/1056)). - Analytics: Renamed ParameterGroupId to ParameterGroupID, to be consistent with other similarly named variables. ParameterGroupId is considered deprecated, and will be removed in the future.