@@ -43,10 +43,6 @@ import FirebaseAnalytics
43
43
An implmentation of the Firebase Analytics device mode destination as a plugin.
44
44
*/
45
45
46
- struct FirebaseSettings : Codable {
47
- let deepLinkURLScheme : String ?
48
- }
49
-
50
46
class FirebaseDestination : DestinationPlugin {
51
47
let timeline = Timeline ( )
52
48
let type = PluginType . destination
@@ -124,21 +120,7 @@ extension FirebaseDestination {
124
120
// Maps Segment spec to Firebase constant
125
121
func formatFirebaseEventNames( _ eventName: String ) -> String {
126
122
127
- let mappedValues = [ " Product Clicked " : FirebaseAnalytics . AnalyticsEventSelectContent,
128
- " Product Viewed " : FirebaseAnalytics . AnalyticsEventViewItem,
129
- " Product Added " : FirebaseAnalytics . AnalyticsEventAddToCart,
130
- " Product Removed " : FirebaseAnalytics . AnalyticsEventRemoveFromCart,
131
- " Checkout Started " : FirebaseAnalytics . AnalyticsEventBeginCheckout,
132
- " Promotion Viewed " : FirebaseAnalytics . AnalyticsEventPresentOffer,
133
- " Payment Info Entered " : FirebaseAnalytics . AnalyticsEventAddPaymentInfo,
134
- " Order Completed " : FirebaseAnalytics . AnalyticsEventPurchase,
135
- " Order Refunded " : FirebaseAnalytics . AnalyticsEventRefund,
136
- " Product List Viewed " : FirebaseAnalytics . AnalyticsEventViewItemList,
137
- " Product Added to Wishlist " : FirebaseAnalytics . AnalyticsEventAddToWishlist,
138
- " Product Shared " : FirebaseAnalytics . AnalyticsEventShare,
139
- " Cart Shared " : FirebaseAnalytics . AnalyticsEventShare,
140
- " Products Searched " : FirebaseAnalytics . AnalyticsEventSearch]
141
- if let mappedEvent = mappedValues [ eventName] {
123
+ if let mappedEvent = FirebaseDestination . mappedValues [ eventName] {
142
124
return mappedEvent
143
125
} else {
144
126
return ( try ? formatFirebaseName ( eventName) ) ?? eventName
@@ -162,24 +144,10 @@ extension FirebaseDestination {
162
144
163
145
func returnMappedFirebaseParameters( _ properties: [ String : Any ] ) -> [ String : Any ] {
164
146
165
- let mappedKeys = [ " products " : FirebaseAnalytics . AnalyticsParameterItems,
166
- " category " : FirebaseAnalytics . AnalyticsParameterItemCategory,
167
- " product_id " : FirebaseAnalytics . AnalyticsParameterItemID,
168
- " name " : FirebaseAnalytics . AnalyticsParameterItemName,
169
- " brand " : FirebaseAnalytics . AnalyticsParameterItemBrand,
170
- " price " : FirebaseAnalytics . AnalyticsParameterPrice,
171
- " quantity " : FirebaseAnalytics . AnalyticsParameterQuantity,
172
- " query " : FirebaseAnalytics . AnalyticsParameterSearchTerm,
173
- " shipping " : FirebaseAnalytics . AnalyticsParameterShipping,
174
- " tax " : FirebaseAnalytics . AnalyticsParameterTax,
175
- " total " : FirebaseAnalytics . AnalyticsParameterValue,
176
- " revenue " : FirebaseAnalytics . AnalyticsParameterValue,
177
- " order_id " : FirebaseAnalytics . AnalyticsParameterTransactionID,
178
- " currency " : FirebaseAnalytics . AnalyticsParameterCurrency]
179
147
180
148
var mappedValues = properties
181
149
182
- for (key, firebaseKey) in mappedKeys {
150
+ for (key, firebaseKey) in FirebaseDestination . mappedKeys {
183
151
if var data = properties [ key] {
184
152
185
153
mappedValues. removeValue ( forKey: key)
@@ -220,3 +188,41 @@ extension FirebaseDestination {
220
188
}
221
189
}
222
190
191
+
192
+ private struct FirebaseSettings : Codable {
193
+ let deepLinkURLScheme : String ?
194
+ }
195
+
196
+ private extension FirebaseDestination {
197
+
198
+ static let mappedValues = [ " Product Clicked " : FirebaseAnalytics . AnalyticsEventSelectContent,
199
+ " Product Viewed " : FirebaseAnalytics . AnalyticsEventViewItem,
200
+ " Product Added " : FirebaseAnalytics . AnalyticsEventAddToCart,
201
+ " Product Removed " : FirebaseAnalytics . AnalyticsEventRemoveFromCart,
202
+ " Checkout Started " : FirebaseAnalytics . AnalyticsEventBeginCheckout,
203
+ " Promotion Viewed " : FirebaseAnalytics . AnalyticsEventPresentOffer,
204
+ " Payment Info Entered " : FirebaseAnalytics . AnalyticsEventAddPaymentInfo,
205
+ " Order Completed " : FirebaseAnalytics . AnalyticsEventPurchase,
206
+ " Order Refunded " : FirebaseAnalytics . AnalyticsEventRefund,
207
+ " Product List Viewed " : FirebaseAnalytics . AnalyticsEventViewItemList,
208
+ " Product Added to Wishlist " : FirebaseAnalytics . AnalyticsEventAddToWishlist,
209
+ " Product Shared " : FirebaseAnalytics . AnalyticsEventShare,
210
+ " Cart Shared " : FirebaseAnalytics . AnalyticsEventShare,
211
+ " Products Searched " : FirebaseAnalytics . AnalyticsEventSearch]
212
+
213
+ static let mappedKeys = [ " products " : FirebaseAnalytics . AnalyticsParameterItems,
214
+ " category " : FirebaseAnalytics . AnalyticsParameterItemCategory,
215
+ " product_id " : FirebaseAnalytics . AnalyticsParameterItemID,
216
+ " name " : FirebaseAnalytics . AnalyticsParameterItemName,
217
+ " brand " : FirebaseAnalytics . AnalyticsParameterItemBrand,
218
+ " price " : FirebaseAnalytics . AnalyticsParameterPrice,
219
+ " quantity " : FirebaseAnalytics . AnalyticsParameterQuantity,
220
+ " query " : FirebaseAnalytics . AnalyticsParameterSearchTerm,
221
+ " shipping " : FirebaseAnalytics . AnalyticsParameterShipping,
222
+ " tax " : FirebaseAnalytics . AnalyticsParameterTax,
223
+ " total " : FirebaseAnalytics . AnalyticsParameterValue,
224
+ " revenue " : FirebaseAnalytics . AnalyticsParameterValue,
225
+ " order_id " : FirebaseAnalytics . AnalyticsParameterTransactionID,
226
+ " currency " : FirebaseAnalytics . AnalyticsParameterCurrency]
227
+
228
+ }
0 commit comments