Skip to content

Commit bd23547

Browse files
authored
Updates to destinations to match ExampleDestination (#64)
* Added example destination
1 parent 4a103d0 commit bd23547

File tree

4 files changed

+63
-59
lines changed

4 files changed

+63
-59
lines changed

Examples/destination_plugins/AdjustDestination.swift

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,24 +36,14 @@ import Foundation
3636
import Segment
3737
import Adjust
3838

39-
internal struct AdjustSettings: Codable {
40-
let appToken: String
41-
let setEnvironmentProduction: Bool?
42-
let setEventBufferingEnabled: Bool?
43-
let trackAttributionData: Bool?
44-
let setDelay: Bool?
45-
let customEvents: JSON?
46-
let delayTime: Double?
47-
}
48-
4939
@objc
5040
class AdjustDestination: NSObject, DestinationPlugin, RemoteNotifications {
5141
let timeline = Timeline()
5242
let type = PluginType.destination
5343
let key = "Adjust"
5444
var analytics: Analytics? = nil
5545

56-
internal var settings: AdjustSettings? = nil
46+
private var settings: AdjustSettings? = nil
5747

5848
public func update(settings: Settings, type: UpdateType) {
5949
// we've already set up this singleton SDK, can't do it again, so skip.
@@ -185,3 +175,13 @@ extension AdjustDestination {
185175
return result
186176
}
187177
}
178+
179+
private struct AdjustSettings: Codable {
180+
let appToken: String
181+
let setEnvironmentProduction: Bool?
182+
let setEventBufferingEnabled: Bool?
183+
let trackAttributionData: Bool?
184+
let setDelay: Bool?
185+
let customEvents: JSON?
186+
let delayTime: Double?
187+
}

Examples/destination_plugins/AppsFlyerDestination.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,9 @@
3434
// *** To Implement Deep Linking functionality reference: https://support.appsflyer.com/hc/en-us/articles/208874366 ****
3535

3636
import Foundation
37+
import UIKit
3738
import Segment
3839
import AppsFlyerLib
39-
import UIKit
40-
41-
private struct AppsFlyerSettings: Codable {
42-
let appsFlyerDevKey: String
43-
let appleAppID: String
44-
let trackAttributionData: Bool?
45-
}
4640

4741
@objc
4842
class AppsFlyerDestination: UIResponder, DestinationPlugin {
@@ -346,3 +340,9 @@ extension AppsFlyerDestination: DeepLinkDelegate, UIApplicationDelegate {
346340
// return nil
347341
// }
348342
//}
343+
344+
private struct AppsFlyerSettings: Codable {
345+
let appsFlyerDevKey: String
346+
let appleAppID: String
347+
let trackAttributionData: Bool?
348+
}

Examples/destination_plugins/FirebaseDestination.swift

Lines changed: 40 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,6 @@ import FirebaseAnalytics
4343
An implmentation of the Firebase Analytics device mode destination as a plugin.
4444
*/
4545

46-
struct FirebaseSettings: Codable {
47-
let deepLinkURLScheme: String?
48-
}
49-
5046
class FirebaseDestination: DestinationPlugin {
5147
let timeline = Timeline()
5248
let type = PluginType.destination
@@ -124,21 +120,7 @@ extension FirebaseDestination {
124120
// Maps Segment spec to Firebase constant
125121
func formatFirebaseEventNames(_ eventName: String) -> String {
126122

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] {
142124
return mappedEvent
143125
} else {
144126
return (try? formatFirebaseName(eventName)) ?? eventName
@@ -162,24 +144,10 @@ extension FirebaseDestination {
162144

163145
func returnMappedFirebaseParameters(_ properties: [String: Any]) -> [String: Any] {
164146

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]
179147

180148
var mappedValues = properties
181149

182-
for (key, firebaseKey) in mappedKeys {
150+
for (key, firebaseKey) in FirebaseDestination.mappedKeys {
183151
if var data = properties[key] {
184152

185153
mappedValues.removeValue(forKey: key)
@@ -220,3 +188,41 @@ extension FirebaseDestination {
220188
}
221189
}
222190

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+
}

Examples/destination_plugins/FlurryDestination.swift

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,6 @@ import FlurryAnalytics
4242
An implementation of the Flurry Analytics device mode destination as a plugin.
4343
*/
4444

45-
private struct FlurrySettings: Codable {
46-
let apiKey: String
47-
let sessionContinueSeconds: Int?
48-
let screenTracksEvents: Bool?
49-
}
50-
51-
5245
class FlurryDestination: DestinationPlugin {
5346
let timeline = Timeline()
5447
let type = PluginType.destination
@@ -126,3 +119,8 @@ extension FlurryDestination {
126119
}
127120
}
128121

122+
private struct FlurrySettings: Codable {
123+
let apiKey: String
124+
let sessionContinueSeconds: Int?
125+
let screenTracksEvents: Bool?
126+
}

0 commit comments

Comments
 (0)