From 8c99fde783ba87157ac7ce88c019a162dac62401 Mon Sep 17 00:00:00 2001 From: Victoria Park Date: Mon, 9 Dec 2024 13:00:50 -0800 Subject: [PATCH 1/8] clean up analytics names --- Sources/CardPayments/CardClient.swift | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Sources/CardPayments/CardClient.swift b/Sources/CardPayments/CardClient.swift index d9195a3d..8637f9ec 100644 --- a/Sources/CardPayments/CardClient.swift +++ b/Sources/CardPayments/CardClient.swift @@ -99,7 +99,7 @@ public class CardClient: NSObject { /// if it fails, `CardResult will be `nil` and `error` will describe the failure public func approveOrder(request: CardRequest, completion: @escaping (CardResult?, CoreSDKError?) -> Void) { analyticsService = AnalyticsService(coreConfig: config, orderID: request.orderID) - analyticsService?.sendEvent("card-payments:3ds:started") + analyticsService?.sendEvent("card-payments:approve-order:started") Task { do { let result = try await checkoutOrdersAPI.confirmPaymentSource(cardRequest: request) @@ -113,19 +113,19 @@ public class CardClient: NSObject { return } - analyticsService?.sendEvent("card-payments:3ds:confirm-payment-source:challenge-required") + analyticsService?.sendEvent("card-payments:confirm-payment-source:challenge-required") startThreeDSecureChallenge(url: url, orderId: result.id, completion: completion) } else { - analyticsService?.sendEvent("card-payments:3ds:confirm-payment-source:succeeded") + analyticsService?.sendEvent("card-payments:confirm-payment-source:succeeded") let cardResult = CardResult(orderID: result.id, status: result.status, didAttemptThreeDSecureAuthentication: false) notifyCheckoutSuccess(for: cardResult, completion: completion) } } catch let error as CoreSDKError { - analyticsService?.sendEvent("card-payments:3ds:confirm-payment-source:failed") + analyticsService?.sendEvent("card-payments:confirm-payment-source:failed") notifyCheckoutFailure(with: error, completion: completion) } catch { - analyticsService?.sendEvent("card-payments:3ds:confirm-payment-source:failed") + analyticsService?.sendEvent("card-payments:confirm-payment-source:failed") notifyCheckoutFailure(with: CardError.unknownError, completion: completion) } } @@ -225,17 +225,17 @@ public class CardClient: NSObject { } private func notifyCheckoutSuccess(for result: CardResult, completion: (CardResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("card-payments:3ds:succeeded") + analyticsService?.sendEvent("card-payments:approve-order:succeeded") completion(result, nil) } private func notifyCheckoutFailure(with error: CoreSDKError, completion: (CardResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("card-payments:3ds:failed") + analyticsService?.sendEvent("card-payments:approve-order:failed") completion(nil, error) } private func notifyCheckoutCancelWithError(with error: CoreSDKError, completion: (CardResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("card-payments:3ds:challenge:user-canceled") + analyticsService?.sendEvent("card-payments:approve-order:challenge:user-canceled") completion(nil, error) } From a6e9468c77cbbc57cddfbe94aa0c272a77f91fed Mon Sep 17 00:00:00 2001 From: Victoria Park Date: Fri, 13 Dec 2024 07:54:37 -0800 Subject: [PATCH 2/8] card approve analytics changes --- Sources/CardPayments/CardClient.swift | 32 ++++++++++++++++----------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/Sources/CardPayments/CardClient.swift b/Sources/CardPayments/CardClient.swift index 8637f9ec..0a7b2083 100644 --- a/Sources/CardPayments/CardClient.swift +++ b/Sources/CardPayments/CardClient.swift @@ -109,23 +109,19 @@ public class CardClient: NSObject { guard getQueryStringParameter(url: url, param: "flow") == "3ds", url.contains("helios"), let url = URL(string: url) else { - self.notifyCheckoutFailure(with: CardError.threeDSecureURLError, completion: completion) + self.notify3dsCheckoutFailure(with: CardError.threeDSecureURLError, completion: completion) return } - analyticsService?.sendEvent("card-payments:confirm-payment-source:challenge-required") + analyticsService?.sendEvent("card-payments:approve-order:auth-challenge-required") startThreeDSecureChallenge(url: url, orderId: result.id, completion: completion) } else { - analyticsService?.sendEvent("card-payments:confirm-payment-source:succeeded") - let cardResult = CardResult(orderID: result.id, status: result.status, didAttemptThreeDSecureAuthentication: false) notifyCheckoutSuccess(for: cardResult, completion: completion) } } catch let error as CoreSDKError { - analyticsService?.sendEvent("card-payments:confirm-payment-source:failed") notifyCheckoutFailure(with: error, completion: completion) } catch { - analyticsService?.sendEvent("card-payments:confirm-payment-source:failed") notifyCheckoutFailure(with: CardError.unknownError, completion: completion) } } @@ -161,25 +157,25 @@ public class CardClient: NSObject { context: self, sessionDidDisplay: { [weak self] didDisplay in if didDisplay { - self?.analyticsService?.sendEvent("card-payments:3ds:challenge-presentation:succeeded") + self?.analyticsService?.sendEvent("card-payments:approve-order:challenge-presentation:succeeded") } else { - self?.analyticsService?.sendEvent("card-payments:3ds:challenge-presentation:failed") + self?.analyticsService?.sendEvent("card-payments:approve-order:challenge-presentation:failed") } }, sessionDidComplete: { _, error in if let error = error { switch error { case ASWebAuthenticationSessionError.canceledLogin: - self.notifyCheckoutCancelWithError(with: CardError.threeDSecureCanceledError, completion: completion) + self.notify3dsCheckoutCancelWithError(with: CardError.threeDSecureCanceledError, completion: completion) return default: - self.notifyCheckoutFailure(with: CardError.threeDSecureError(error), completion: completion) + self.notify3dsCheckoutFailure(with: CardError.threeDSecureError(error), completion: completion) return } } let cardResult = CardResult(orderID: orderId, status: nil, didAttemptThreeDSecureAuthentication: true) - self.notifyCheckoutSuccess(for: cardResult, completion: completion) + self.notify3dsCheckoutSuccess(for: cardResult, completion: completion) } ) } @@ -229,13 +225,23 @@ public class CardClient: NSObject { completion(result, nil) } + private func notify3dsCheckoutSuccess(for result: CardResult, completion: (CardResult?, CoreSDKError?) -> Void) { + analyticsService?.sendEvent("card-payments:approve-order:auth-challenge-succeeded") + completion(result, nil) + } + private func notifyCheckoutFailure(with error: CoreSDKError, completion: (CardResult?, CoreSDKError?) -> Void) { analyticsService?.sendEvent("card-payments:approve-order:failed") completion(nil, error) } - private func notifyCheckoutCancelWithError(with error: CoreSDKError, completion: (CardResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("card-payments:approve-order:challenge:user-canceled") + private func notify3dsCheckoutFailure(with error: CoreSDKError, completion: (CardResult?, CoreSDKError?) -> Void) { + analyticsService?.sendEvent("card-payments:approve-order:auth-challenge-failed") + completion(nil, error) + } + + private func notify3dsCheckoutCancelWithError(with error: CoreSDKError, completion: (CardResult?, CoreSDKError?) -> Void) { + analyticsService?.sendEvent("card-payments:approve-order:auth-challenge-canceled") completion(nil, error) } From fe2f27d18ef87b52d65ce6fe30c46406e346173a Mon Sep 17 00:00:00 2001 From: Victoria Park Date: Fri, 13 Dec 2024 11:42:53 -0800 Subject: [PATCH 3/8] card vault analytics changes --- Sources/CardPayments/CardClient.swift | 30 ++++++++++++++++++--------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/Sources/CardPayments/CardClient.swift b/Sources/CardPayments/CardClient.swift index 0a7b2083..41843ce6 100644 --- a/Sources/CardPayments/CardClient.swift +++ b/Sources/CardPayments/CardClient.swift @@ -53,7 +53,7 @@ public class CardClient: NSObject { if result.status == "PAYER_ACTION_REQUIRED", let urlString = result.links.first(where: { $0.rel == "approve" })?.href { guard urlString.contains("helios"), let url = URL(string: urlString) else { - self.notifyVaultFailure(with: CardError.threeDSecureURLError, completion: completion) + self.notify3dsVaultFailure(with: CardError.threeDSecureURLError, completion: completion) return } analyticsService?.sendEvent("card-payments:vault-wo-purchase:challenge-required") @@ -157,9 +157,9 @@ public class CardClient: NSObject { context: self, sessionDidDisplay: { [weak self] didDisplay in if didDisplay { - self?.analyticsService?.sendEvent("card-payments:approve-order:challenge-presentation:succeeded") + self?.analyticsService?.sendEvent("card-payments:approve-order:auth-challenge-presentation:succeeded") } else { - self?.analyticsService?.sendEvent("card-payments:approve-order:challenge-presentation:failed") + self?.analyticsService?.sendEvent("card-payments:approve-order:auth-challenge-presentation:failed") } }, sessionDidComplete: { _, error in @@ -197,25 +197,25 @@ public class CardClient: NSObject { sessionDidDisplay: { [weak self] didDisplay in if didDisplay { // TODO: analytics for card vault - self?.analyticsService?.sendEvent("card-payments:3ds:challenge-presentation:succeeded") + self?.analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge-presentation:succeeded") } else { - self?.analyticsService?.sendEvent("card-payments:3ds:challenge-presentation:failed") + self?.analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge-presentation:failed") } }, sessionDidComplete: { _, error in if let error = error { switch error { case ASWebAuthenticationSessionError.canceledLogin: - self.notifyVaultCancelWithError(with: CardError.threeDSecureCanceledError, completion: completion) + self.notify3dsVaultCancelWithError(with: CardError.threeDSecureCanceledError, completion: completion) return default: - self.notifyVaultFailure(with: CardError.threeDSecureError(error), completion: completion) + self.notify3dsVaultFailure(with: CardError.threeDSecureError(error), completion: completion) return } } let cardVaultResult = CardVaultResult(setupTokenID: setupTokenID, status: nil, didAttemptThreeDSecureAuthentication: true) - self.notifyVaultSuccess(for: cardVaultResult, completion: completion) + self.notify3dsVaultSuccess(for: cardVaultResult, completion: completion) } ) } @@ -250,13 +250,23 @@ public class CardClient: NSObject { completion(vaultResult, nil) } + private func notify3dsVaultSuccess(for vaultResult: CardVaultResult, completion: (CardVaultResult?, CoreSDKError?) -> Void) { + analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge-succeeded") + completion(vaultResult, nil) + } + private func notifyVaultFailure(with vaultError: CoreSDKError, completion: (CardVaultResult?, CoreSDKError?) -> Void) { analyticsService?.sendEvent("card-payments:vault-wo-purchase:failed") completion(nil, vaultError) } - private func notifyVaultCancelWithError(with vaultError: CoreSDKError, completion: (CardVaultResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("card-payments:vault-wo-purchase:challenge:canceled") + private func notify3dsVaultFailure(with vaultError: CoreSDKError, completion: (CardVaultResult?, CoreSDKError?) -> Void) { + analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge-failed") + completion(nil, vaultError) + } + + private func notify3dsVaultCancelWithError(with vaultError: CoreSDKError, completion: (CardVaultResult?, CoreSDKError?) -> Void) { + analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge-canceled") completion(nil, vaultError) } } From 2695c833dfe541514a75c2efd4dd17dc8dacd309 Mon Sep 17 00:00:00 2001 From: Victoria Park Date: Thu, 19 Dec 2024 14:04:39 -0800 Subject: [PATCH 4/8] card vault challenge required rename --- Sources/CardPayments/CardClient.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/CardPayments/CardClient.swift b/Sources/CardPayments/CardClient.swift index 41843ce6..f0c44384 100644 --- a/Sources/CardPayments/CardClient.swift +++ b/Sources/CardPayments/CardClient.swift @@ -56,7 +56,7 @@ public class CardClient: NSObject { self.notify3dsVaultFailure(with: CardError.threeDSecureURLError, completion: completion) return } - analyticsService?.sendEvent("card-payments:vault-wo-purchase:challenge-required") + analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge-required") startVaultThreeDSecureChallenge(url: url, setupTokenID: vaultRequest.setupTokenID, completion: completion) } else { let vaultResult = CardVaultResult(setupTokenID: result.id, status: result.status, didAttemptThreeDSecureAuthentication: false) From 98aade79f01ec51b8fa29f71403977a211d36d22 Mon Sep 17 00:00:00 2001 From: Victoria Park Date: Tue, 7 Jan 2025 07:18:44 -0800 Subject: [PATCH 5/8] PayPalWebCheckout analytics --- .../PayPalWebCheckoutClient.swift | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Sources/PayPalWebPayments/PayPalWebCheckoutClient.swift b/Sources/PayPalWebPayments/PayPalWebCheckoutClient.swift index 851f72b0..2d2f8743 100644 --- a/Sources/PayPalWebPayments/PayPalWebCheckoutClient.swift +++ b/Sources/PayPalWebPayments/PayPalWebCheckoutClient.swift @@ -35,8 +35,8 @@ public class PayPalWebCheckoutClient: NSObject { /// if it fails, `PayPalWebCheckoutResult will be `nil` and `error` will describe the failure public func start(request: PayPalWebCheckoutRequest, completion: @escaping (PayPalWebCheckoutResult?, CoreSDKError?) -> Void) { analyticsService = AnalyticsService(coreConfig: config, orderID: request.orderID) - analyticsService?.sendEvent("paypal-web-payments:started") - + analyticsService?.sendEvent("paypal-web-payments:checkout:started") + let baseURLString = config.environment.payPalBaseURL.absoluteString let payPalCheckoutURLString = "\(baseURLString)/checkoutnow?token=\(request.orderID)" + @@ -54,9 +54,9 @@ public class PayPalWebCheckoutClient: NSObject { context: self, sessionDidDisplay: { [weak self] didDisplay in if didDisplay { - self?.analyticsService?.sendEvent("paypal-web-payments:browser-presentation:succeeded") + self?.analyticsService?.sendEvent("paypal-web-payments:checkout:auth-challenge-presentation:succeeded") } else { - self?.analyticsService?.sendEvent("paypal-web-payments:browser-presentation:failed") + self?.analyticsService?.sendEvent("paypal-web-payments:checkout:auth-challenge-presentation:failed") } }, sessionDidComplete: { url, error in @@ -203,17 +203,17 @@ public class PayPalWebCheckoutClient: NSObject { } private func notifyCheckoutSuccess(for result: PayPalWebCheckoutResult, completion: (PayPalWebCheckoutResult?, CoreSDKError?) -> Void) { - self.analyticsService?.sendEvent("paypal-web-payments:succeeded") + self.analyticsService?.sendEvent("paypal-web-payments:checkout:auth-challenge-succeeded") completion(result, nil) } private func notifyCheckoutFailure(with error: CoreSDKError, completion: (PayPalWebCheckoutResult?, CoreSDKError?) -> Void) { - self.analyticsService?.sendEvent("paypal-web-payments:failed") + self.analyticsService?.sendEvent("paypal-web-payments:checkout:auth-challenge-failed") completion(nil, error) } private func notifyCheckoutCancelWithError(with error: CoreSDKError, completion: (PayPalWebCheckoutResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("paypal-web-payments:browser-login:canceled") + analyticsService?.sendEvent("paypal-web-payments:checkout:auth-challenge-canceled") completion(nil, error) } From fa0184818147e11d25891f271e30e7576745652c Mon Sep 17 00:00:00 2001 From: Victoria Park Date: Tue, 7 Jan 2025 07:29:24 -0800 Subject: [PATCH 6/8] PayPal vault analytics --- .../PayPalWebPayments/PayPalWebCheckoutClient.swift | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Sources/PayPalWebPayments/PayPalWebCheckoutClient.swift b/Sources/PayPalWebPayments/PayPalWebCheckoutClient.swift index 2d2f8743..0f1380af 100644 --- a/Sources/PayPalWebPayments/PayPalWebCheckoutClient.swift +++ b/Sources/PayPalWebPayments/PayPalWebCheckoutClient.swift @@ -143,9 +143,9 @@ public class PayPalWebCheckoutClient: NSObject { context: self, sessionDidDisplay: { [weak self] didDisplay in if didDisplay { - self?.analyticsService?.sendEvent("paypal-vault:browser-presentation:succeeded") + self?.analyticsService?.sendEvent("paypal-web-payments:vault-wo-purchase:auth-challenge-presentation:succeeded") } else { - self?.analyticsService?.sendEvent("paypal-vault:browser-presentation:failed") + self?.analyticsService?.sendEvent("paypal-web-payments:vault-wo-purchase:auth-challenge-presentation:failed") } }, sessionDidComplete: { url, error in @@ -218,17 +218,17 @@ public class PayPalWebCheckoutClient: NSObject { } private func notifyVaultSuccess(for result: PayPalVaultResult, completion: (PayPalVaultResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("paypal-web-payments:vault-wo-purchase:succeeded") + analyticsService?.sendEvent("paypal-web-payments:vault-wo-purchase:auth-challenge-succeeded") completion(result, nil) } private func notifyVaultFailure(with error: CoreSDKError, completion: (PayPalVaultResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("paypal-web-payments:vault-wo-purchase:failed") + analyticsService?.sendEvent("paypal-web-payments:vault-wo-purchase:auth-challenge-failed") completion(nil, error) } private func notifyVaultCancelWithError(with vaultError: CoreSDKError, completion: (PayPalVaultResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("paypal-web-payments:vault-wo-purchase:canceled") + analyticsService?.sendEvent("paypal-web-payments:vault-wo-purchase:auth-challenge-canceled") completion(nil, vaultError) } } From 57d0c5172589c6ff5cade2f777bd70ef6649d5fc Mon Sep 17 00:00:00 2001 From: Victoria Park Date: Tue, 7 Jan 2025 09:21:15 -0800 Subject: [PATCH 7/8] simplify final success/fail events in PayPal checkout/vault --- .../PayPalWebPayments/PayPalWebCheckoutClient.swift | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Sources/PayPalWebPayments/PayPalWebCheckoutClient.swift b/Sources/PayPalWebPayments/PayPalWebCheckoutClient.swift index 0f1380af..9a002e5c 100644 --- a/Sources/PayPalWebPayments/PayPalWebCheckoutClient.swift +++ b/Sources/PayPalWebPayments/PayPalWebCheckoutClient.swift @@ -203,32 +203,32 @@ public class PayPalWebCheckoutClient: NSObject { } private func notifyCheckoutSuccess(for result: PayPalWebCheckoutResult, completion: (PayPalWebCheckoutResult?, CoreSDKError?) -> Void) { - self.analyticsService?.sendEvent("paypal-web-payments:checkout:auth-challenge-succeeded") + self.analyticsService?.sendEvent("paypal-web-payments:checkout:succeeded") completion(result, nil) } private func notifyCheckoutFailure(with error: CoreSDKError, completion: (PayPalWebCheckoutResult?, CoreSDKError?) -> Void) { - self.analyticsService?.sendEvent("paypal-web-payments:checkout:auth-challenge-failed") + self.analyticsService?.sendEvent("paypal-web-payments:checkout:failed") completion(nil, error) } private func notifyCheckoutCancelWithError(with error: CoreSDKError, completion: (PayPalWebCheckoutResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("paypal-web-payments:checkout:auth-challenge-canceled") + analyticsService?.sendEvent("paypal-web-payments:checkout:canceled") completion(nil, error) } private func notifyVaultSuccess(for result: PayPalVaultResult, completion: (PayPalVaultResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("paypal-web-payments:vault-wo-purchase:auth-challenge-succeeded") + analyticsService?.sendEvent("paypal-web-payments:vault-wo-purchase:succeeded") completion(result, nil) } private func notifyVaultFailure(with error: CoreSDKError, completion: (PayPalVaultResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("paypal-web-payments:vault-wo-purchase:auth-challenge-failed") + analyticsService?.sendEvent("paypal-web-payments:vault-wo-purchase:failed") completion(nil, error) } private func notifyVaultCancelWithError(with vaultError: CoreSDKError, completion: (PayPalVaultResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("paypal-web-payments:vault-wo-purchase:auth-challenge-canceled") + analyticsService?.sendEvent("paypal-web-payments:vault-wo-purchase:canceled") completion(nil, vaultError) } } From e44f0480edadbaeadaf4b64993d5854797148cb7 Mon Sep 17 00:00:00 2001 From: Victoria Park Date: Wed, 8 Jan 2025 12:23:19 -0800 Subject: [PATCH 8/8] make : before status --- Sources/CardPayments/CardClient.swift | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Sources/CardPayments/CardClient.swift b/Sources/CardPayments/CardClient.swift index f0c44384..e31b48e9 100644 --- a/Sources/CardPayments/CardClient.swift +++ b/Sources/CardPayments/CardClient.swift @@ -226,7 +226,7 @@ public class CardClient: NSObject { } private func notify3dsCheckoutSuccess(for result: CardResult, completion: (CardResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("card-payments:approve-order:auth-challenge-succeeded") + analyticsService?.sendEvent("card-payments:approve-order:auth-challenge:succeeded") completion(result, nil) } @@ -236,12 +236,12 @@ public class CardClient: NSObject { } private func notify3dsCheckoutFailure(with error: CoreSDKError, completion: (CardResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("card-payments:approve-order:auth-challenge-failed") + analyticsService?.sendEvent("card-payments:approve-order:auth-challenge:failed") completion(nil, error) } private func notify3dsCheckoutCancelWithError(with error: CoreSDKError, completion: (CardResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("card-payments:approve-order:auth-challenge-canceled") + analyticsService?.sendEvent("card-payments:approve-order:auth-challenge:canceled") completion(nil, error) } @@ -251,7 +251,7 @@ public class CardClient: NSObject { } private func notify3dsVaultSuccess(for vaultResult: CardVaultResult, completion: (CardVaultResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge-succeeded") + analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge:succeeded") completion(vaultResult, nil) } @@ -261,12 +261,12 @@ public class CardClient: NSObject { } private func notify3dsVaultFailure(with vaultError: CoreSDKError, completion: (CardVaultResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge-failed") + analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge:failed") completion(nil, vaultError) } private func notify3dsVaultCancelWithError(with vaultError: CoreSDKError, completion: (CardVaultResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge-canceled") + analyticsService?.sendEvent("card-payments:vault-wo-purchase:auth-challenge:canceled") completion(nil, vaultError) } }