Skip to content

Commit ee43afa

Browse files
authored
Clean up Analytics Names (#313)
* clean up analytics names * card approve analytics changes * card vault analytics changes * card vault challenge required rename * PayPalWebCheckout analytics * PayPal vault analytics * simplify final success/fail events in PayPal checkout/vault * make : before status
1 parent c672348 commit ee43afa

File tree

2 files changed

+50
-34
lines changed

2 files changed

+50
-34
lines changed

Sources/CardPayments/CardClient.swift

+41-25
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@ public class CardClient: NSObject {
5353
if result.status == "PAYER_ACTION_REQUIRED",
5454
let urlString = result.links.first(where: { $0.rel == "approve" })?.href {
5555
guard urlString.contains("helios"), let url = URL(string: urlString) else {
56-
self.notifyVaultFailure(with: CardError.threeDSecureURLError, completion: completion)
56+
self.notify3dsVaultFailure(with: CardError.threeDSecureURLError, completion: completion)
5757
return
5858
}
59-
analyticsService?.sendEvent("card-payments:vault-wo-purchase:challenge-required")
59+
analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge-required")
6060
startVaultThreeDSecureChallenge(url: url, setupTokenID: vaultRequest.setupTokenID, completion: completion)
6161
} else {
6262
let vaultResult = CardVaultResult(setupTokenID: result.id, status: result.status, didAttemptThreeDSecureAuthentication: false)
@@ -99,7 +99,7 @@ public class CardClient: NSObject {
9999
/// if it fails, `CardResult will be `nil` and `error` will describe the failure
100100
public func approveOrder(request: CardRequest, completion: @escaping (CardResult?, CoreSDKError?) -> Void) {
101101
analyticsService = AnalyticsService(coreConfig: config, orderID: request.orderID)
102-
analyticsService?.sendEvent("card-payments:3ds:started")
102+
analyticsService?.sendEvent("card-payments:approve-order:started")
103103
Task {
104104
do {
105105
let result = try await checkoutOrdersAPI.confirmPaymentSource(cardRequest: request)
@@ -109,23 +109,19 @@ public class CardClient: NSObject {
109109
guard getQueryStringParameter(url: url, param: "flow") == "3ds",
110110
url.contains("helios"),
111111
let url = URL(string: url) else {
112-
self.notifyCheckoutFailure(with: CardError.threeDSecureURLError, completion: completion)
112+
self.notify3dsCheckoutFailure(with: CardError.threeDSecureURLError, completion: completion)
113113
return
114114
}
115115

116-
analyticsService?.sendEvent("card-payments:3ds:confirm-payment-source:challenge-required")
116+
analyticsService?.sendEvent("card-payments:approve-order:auth-challenge-required")
117117
startThreeDSecureChallenge(url: url, orderId: result.id, completion: completion)
118118
} else {
119-
analyticsService?.sendEvent("card-payments:3ds:confirm-payment-source:succeeded")
120-
121119
let cardResult = CardResult(orderID: result.id, status: result.status, didAttemptThreeDSecureAuthentication: false)
122120
notifyCheckoutSuccess(for: cardResult, completion: completion)
123121
}
124122
} catch let error as CoreSDKError {
125-
analyticsService?.sendEvent("card-payments:3ds:confirm-payment-source:failed")
126123
notifyCheckoutFailure(with: error, completion: completion)
127124
} catch {
128-
analyticsService?.sendEvent("card-payments:3ds:confirm-payment-source:failed")
129125
notifyCheckoutFailure(with: CardError.unknownError, completion: completion)
130126
}
131127
}
@@ -161,25 +157,25 @@ public class CardClient: NSObject {
161157
context: self,
162158
sessionDidDisplay: { [weak self] didDisplay in
163159
if didDisplay {
164-
self?.analyticsService?.sendEvent("card-payments:3ds:challenge-presentation:succeeded")
160+
self?.analyticsService?.sendEvent("card-payments:approve-order:auth-challenge-presentation:succeeded")
165161
} else {
166-
self?.analyticsService?.sendEvent("card-payments:3ds:challenge-presentation:failed")
162+
self?.analyticsService?.sendEvent("card-payments:approve-order:auth-challenge-presentation:failed")
167163
}
168164
},
169165
sessionDidComplete: { _, error in
170166
if let error = error {
171167
switch error {
172168
case ASWebAuthenticationSessionError.canceledLogin:
173-
self.notifyCheckoutCancelWithError(with: CardError.threeDSecureCanceledError, completion: completion)
169+
self.notify3dsCheckoutCancelWithError(with: CardError.threeDSecureCanceledError, completion: completion)
174170
return
175171
default:
176-
self.notifyCheckoutFailure(with: CardError.threeDSecureError(error), completion: completion)
172+
self.notify3dsCheckoutFailure(with: CardError.threeDSecureError(error), completion: completion)
177173
return
178174
}
179175
}
180176

181177
let cardResult = CardResult(orderID: orderId, status: nil, didAttemptThreeDSecureAuthentication: true)
182-
self.notifyCheckoutSuccess(for: cardResult, completion: completion)
178+
self.notify3dsCheckoutSuccess(for: cardResult, completion: completion)
183179
}
184180
)
185181
}
@@ -201,41 +197,51 @@ public class CardClient: NSObject {
201197
sessionDidDisplay: { [weak self] didDisplay in
202198
if didDisplay {
203199
// TODO: analytics for card vault
204-
self?.analyticsService?.sendEvent("card-payments:3ds:challenge-presentation:succeeded")
200+
self?.analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge-presentation:succeeded")
205201
} else {
206-
self?.analyticsService?.sendEvent("card-payments:3ds:challenge-presentation:failed")
202+
self?.analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge-presentation:failed")
207203
}
208204
},
209205
sessionDidComplete: { _, error in
210206
if let error = error {
211207
switch error {
212208
case ASWebAuthenticationSessionError.canceledLogin:
213-
self.notifyVaultCancelWithError(with: CardError.threeDSecureCanceledError, completion: completion)
209+
self.notify3dsVaultCancelWithError(with: CardError.threeDSecureCanceledError, completion: completion)
214210
return
215211
default:
216-
self.notifyVaultFailure(with: CardError.threeDSecureError(error), completion: completion)
212+
self.notify3dsVaultFailure(with: CardError.threeDSecureError(error), completion: completion)
217213
return
218214
}
219215
}
220216

221217
let cardVaultResult = CardVaultResult(setupTokenID: setupTokenID, status: nil, didAttemptThreeDSecureAuthentication: true)
222-
self.notifyVaultSuccess(for: cardVaultResult, completion: completion)
218+
self.notify3dsVaultSuccess(for: cardVaultResult, completion: completion)
223219
}
224220
)
225221
}
226222

227223
private func notifyCheckoutSuccess(for result: CardResult, completion: (CardResult?, CoreSDKError?) -> Void) {
228-
analyticsService?.sendEvent("card-payments:3ds:succeeded")
224+
analyticsService?.sendEvent("card-payments:approve-order:succeeded")
225+
completion(result, nil)
226+
}
227+
228+
private func notify3dsCheckoutSuccess(for result: CardResult, completion: (CardResult?, CoreSDKError?) -> Void) {
229+
analyticsService?.sendEvent("card-payments:approve-order:auth-challenge:succeeded")
229230
completion(result, nil)
230231
}
231232

232233
private func notifyCheckoutFailure(with error: CoreSDKError, completion: (CardResult?, CoreSDKError?) -> Void) {
233-
analyticsService?.sendEvent("card-payments:3ds:failed")
234+
analyticsService?.sendEvent("card-payments:approve-order:failed")
235+
completion(nil, error)
236+
}
237+
238+
private func notify3dsCheckoutFailure(with error: CoreSDKError, completion: (CardResult?, CoreSDKError?) -> Void) {
239+
analyticsService?.sendEvent("card-payments:approve-order:auth-challenge:failed")
234240
completion(nil, error)
235241
}
236242

237-
private func notifyCheckoutCancelWithError(with error: CoreSDKError, completion: (CardResult?, CoreSDKError?) -> Void) {
238-
analyticsService?.sendEvent("card-payments:3ds:challenge:user-canceled")
243+
private func notify3dsCheckoutCancelWithError(with error: CoreSDKError, completion: (CardResult?, CoreSDKError?) -> Void) {
244+
analyticsService?.sendEvent("card-payments:approve-order:auth-challenge:canceled")
239245
completion(nil, error)
240246
}
241247

@@ -244,13 +250,23 @@ public class CardClient: NSObject {
244250
completion(vaultResult, nil)
245251
}
246252

253+
private func notify3dsVaultSuccess(for vaultResult: CardVaultResult, completion: (CardVaultResult?, CoreSDKError?) -> Void) {
254+
analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge:succeeded")
255+
completion(vaultResult, nil)
256+
}
257+
247258
private func notifyVaultFailure(with vaultError: CoreSDKError, completion: (CardVaultResult?, CoreSDKError?) -> Void) {
248259
analyticsService?.sendEvent("card-payments:vault-wo-purchase:failed")
249260
completion(nil, vaultError)
250261
}
251262

252-
private func notifyVaultCancelWithError(with vaultError: CoreSDKError, completion: (CardVaultResult?, CoreSDKError?) -> Void) {
253-
analyticsService?.sendEvent("card-payments:vault-wo-purchase:challenge:canceled")
263+
private func notify3dsVaultFailure(with vaultError: CoreSDKError, completion: (CardVaultResult?, CoreSDKError?) -> Void) {
264+
analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge:failed")
265+
completion(nil, vaultError)
266+
}
267+
268+
private func notify3dsVaultCancelWithError(with vaultError: CoreSDKError, completion: (CardVaultResult?, CoreSDKError?) -> Void) {
269+
analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge:canceled")
254270
completion(nil, vaultError)
255271
}
256272
}

Sources/PayPalWebPayments/PayPalWebCheckoutClient.swift

+9-9
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ public class PayPalWebCheckoutClient: NSObject {
3535
/// if it fails, `PayPalWebCheckoutResult will be `nil` and `error` will describe the failure
3636
public func start(request: PayPalWebCheckoutRequest, completion: @escaping (PayPalWebCheckoutResult?, CoreSDKError?) -> Void) {
3737
analyticsService = AnalyticsService(coreConfig: config, orderID: request.orderID)
38-
analyticsService?.sendEvent("paypal-web-payments:started")
39-
38+
analyticsService?.sendEvent("paypal-web-payments:checkout:started")
39+
4040
let baseURLString = config.environment.payPalBaseURL.absoluteString
4141
let payPalCheckoutURLString =
4242
"\(baseURLString)/checkoutnow?token=\(request.orderID)" +
@@ -54,9 +54,9 @@ public class PayPalWebCheckoutClient: NSObject {
5454
context: self,
5555
sessionDidDisplay: { [weak self] didDisplay in
5656
if didDisplay {
57-
self?.analyticsService?.sendEvent("paypal-web-payments:browser-presentation:succeeded")
57+
self?.analyticsService?.sendEvent("paypal-web-payments:checkout:auth-challenge-presentation:succeeded")
5858
} else {
59-
self?.analyticsService?.sendEvent("paypal-web-payments:browser-presentation:failed")
59+
self?.analyticsService?.sendEvent("paypal-web-payments:checkout:auth-challenge-presentation:failed")
6060
}
6161
},
6262
sessionDidComplete: { url, error in
@@ -143,9 +143,9 @@ public class PayPalWebCheckoutClient: NSObject {
143143
context: self,
144144
sessionDidDisplay: { [weak self] didDisplay in
145145
if didDisplay {
146-
self?.analyticsService?.sendEvent("paypal-vault:browser-presentation:succeeded")
146+
self?.analyticsService?.sendEvent("paypal-web-payments:vault-wo-purchase:auth-challenge-presentation:succeeded")
147147
} else {
148-
self?.analyticsService?.sendEvent("paypal-vault:browser-presentation:failed")
148+
self?.analyticsService?.sendEvent("paypal-web-payments:vault-wo-purchase:auth-challenge-presentation:failed")
149149
}
150150
},
151151
sessionDidComplete: { url, error in
@@ -203,17 +203,17 @@ public class PayPalWebCheckoutClient: NSObject {
203203
}
204204

205205
private func notifyCheckoutSuccess(for result: PayPalWebCheckoutResult, completion: (PayPalWebCheckoutResult?, CoreSDKError?) -> Void) {
206-
self.analyticsService?.sendEvent("paypal-web-payments:succeeded")
206+
self.analyticsService?.sendEvent("paypal-web-payments:checkout:succeeded")
207207
completion(result, nil)
208208
}
209209

210210
private func notifyCheckoutFailure(with error: CoreSDKError, completion: (PayPalWebCheckoutResult?, CoreSDKError?) -> Void) {
211-
self.analyticsService?.sendEvent("paypal-web-payments:failed")
211+
self.analyticsService?.sendEvent("paypal-web-payments:checkout:failed")
212212
completion(nil, error)
213213
}
214214

215215
private func notifyCheckoutCancelWithError(with error: CoreSDKError, completion: (PayPalWebCheckoutResult?, CoreSDKError?) -> Void) {
216-
analyticsService?.sendEvent("paypal-web-payments:browser-login:canceled")
216+
analyticsService?.sendEvent("paypal-web-payments:checkout:canceled")
217217
completion(nil, error)
218218
}
219219

0 commit comments

Comments
 (0)