Skip to content

Commit c8fde34

Browse files
authored
Add support for Analytics Parameters of Lists (#1126)
1 parent 1fc6b99 commit c8fde34

File tree

4 files changed

+34
-3
lines changed

4 files changed

+34
-3
lines changed

analytics/src/Parameter.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,6 @@ public Parameter(string parameterName, double parameterValue) {
8282
Value = parameterValue;
8383
}
8484

85-
// TODO: Implement accepting maps and vectors in C++ Analytics before enabling these.
86-
/*
8785
public Parameter(string parameterName, IDictionary<string, object> parameterValue) {
8886
Name = parameterName;
8987
Value = parameterValue;
@@ -93,7 +91,6 @@ public Parameter(string parameterName, IEnumerable<IDictionary<string, object>>
9391
Name = parameterName;
9492
Value = parameterValue;
9593
}
96-
*/
9794

9895
/// @deprecated No longer needed, will be removed in the future.
9996
[System.Obsolete("No longer needed, will be removed in the future.")]

analytics/testapp/Assets/Firebase/Sample/Analytics/UIHandler.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,26 @@ public void AnalyticsLevelUp() {
118118
new Parameter("hit_accuracy", 3.14f));
119119
}
120120

121+
public void AnalyticsViewCart() {
122+
// Log an event that includes a parameter with a list
123+
DebugLog("Logging a view cart event.");
124+
FirebaseAnalytics.LogEvent(
125+
FirebaseAnalytics.EventViewCart,
126+
new Parameter(FirebaseAnalytics.ParameterCurrency, "USD"),
127+
new Parameter(FirebaseAnalytics.ParameterValue, 30.03),
128+
new Parameter(FirebaseAnalytics.ParameterItems, new [] {
129+
new Dictionary<string, object> {
130+
{ FirebaseAnalytics.ParameterItemID, "SKU_12345" },
131+
{ FirebaseAnalytics.ParameterItemName, "Horse Armor DLC" },
132+
},
133+
new Dictionary<string, object> {
134+
{ FirebaseAnalytics.ParameterItemID, "SKU_67890" },
135+
{ FirebaseAnalytics.ParameterItemName, "Gold Horse Armor DLC" },
136+
}
137+
})
138+
);
139+
}
140+
121141
// Reset analytics data for this app instance.
122142
public void ResetAnalyticsData() {
123143
DebugLog("Reset analytics data.");
@@ -222,6 +242,9 @@ void GUIDisplayControls() {
222242
if (GUILayout.Button("Log Level Up")) {
223243
AnalyticsLevelUp();
224244
}
245+
if (GUILayout.Button("Log View Cart")) {
246+
AnalyticsViewCart();
247+
}
225248
if (GUILayout.Button("Reset Analytics Data")) {
226249
ResetAnalyticsData();
227250
}

analytics/testapp/Assets/Firebase/Sample/Analytics/UIHandlerAutomated.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public override void Start() {
3030
TestAnalyticsScoreDoesNotThrow,
3131
TestAnalyticsGroupJoinDoesNotThrow,
3232
TestAnalyticsLevelUpDoesNotThrow,
33+
TestAnalyticsViewCartDoesNotThrow,
3334
// This test regularly fails on iOS simulator, and there isn't a great way
3435
// to determine if this is on a device or simulator, so just disable on
3536
// GHA iOS and tvOS for now.
@@ -94,6 +95,13 @@ Task TestAnalyticsLevelUpDoesNotThrow() {
9495
});
9596
}
9697

98+
Task TestAnalyticsViewCartDoesNotThrow() {
99+
return WrapWithTask(() => {
100+
base.AnalyticsViewCart();
101+
return true;
102+
});
103+
}
104+
97105
Task TestAnalyticsSetConsentDoesNotThrow() {
98106
return WrapWithTask(() => {
99107
base.AnalyticsSetConsent();

docs/readme.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ Release Notes
7373
-------------
7474
### Upcoming
7575
- Changes
76+
- Analytics: Add support for Parameters of Lists of Dictionaries, needed
77+
by some events such as ViewCart.
78+
([#1056](https://github.com/firebase/firebase-unity-sdk/issues/1056)).
7679
- Analytics: Renamed ParameterGroupId to ParameterGroupID, to be
7780
consistent with other similarly named variables. ParameterGroupId
7881
is considered deprecated, and will be removed in the future.

0 commit comments

Comments
 (0)