-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Clean up Analytics Names #313
base: main
Are you sure you want to change the base?
Conversation
@@ -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") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On Android we do have every event related to approveOrder()
named with approve-order
. Here's an example in CardAnalytics.kt.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I had opened a PR yesterday to rename these events but closed it and wanted to just clean up things that were mislabeled as "3ds" in this PR. I wanted to hold off other changes until we have alignment in iOS/Android on analytic events.
I am going to go ahead and put draft of changes for iOS here and will confirm with analytics team and Steven before merging. I think it'd be better than having to communicate changes twice. |
@@ -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:auth-challenge-presentation:succeeded") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey I know we went over this in our meeting, but it seems like this event has a different format than <module>:<function>:<event>
. Should we rename this to fit the schema?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
auth-challenge-presentation-succeeded/failed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
speaking of which, what do you think of end events for 3ds flows being auth-challenge:succeeded/failed/canceled as opposed to auth-challenge-succeeded/failed/canceled.
That way we can grab :succeeded, :failed, :canceled as final events
Let me check our original discussion about this but I personally like idea of :succeeded and :failed :canceled reserved for final events.
I guess that does make looking for events under <module>
:<function>
for example, messier.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah if we could stick to <module>:<function>:<event>
i'd prefer it because it's clean. I prefer auth-challenge-succeeded/failed/canceled. It's verbose but it fits the schema, which makes it regex friendly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So what do you think about auth-challenge-presentation-succeeded/failed for your first point?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah I think that works well. 👍 for auth-challenge-presentation-succeeded/failed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll run it by NN also and make changes on Confluence page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey qq: if we keep this the way it is are we good to merge?
completion(nil, error) | ||
} | ||
|
||
private func notifyCheckoutCancelWithError(with error: CoreSDKError, completion: (CardResult?, CoreSDKError?) -> Void) { | ||
analyticsService?.sendEvent("card-payments:3ds:challenge:user-canceled") | ||
private func notify3dsCheckoutCancelWithError(with error: CoreSDKError, completion: (CardResult?, CoreSDKError?) -> Void) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this method name be notify3dsCheckoutCancel(...)
instead? Since the with error
is part of the parameter name?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes I wanted to be clear that now we are returning cancellation as an error.
Before we just returned didCancel in a separate delegate function.
Summary of changes
<module>: <function>: <event>
vo-purchse
instead of justvault
to distinguish it from vault with purchase flowChanges:
Card ApproveOrder:
Removed:
card-payments:3ds:confirm-payment-source:succeeded
(was sent for non-3ds flow along with general succeeded event)card-payments:3ds:confirm-payment-source:failed
(was sent for non-3ds flow along with general failed event)Added:
card-payments:approve-order:auth-challenge:succeeded
for card approval success with 3dscard-payments:approve-order:auth-challenge:failed
for card approval failure with 3dsRenamed:
card-payments:3ds:started
=>card-payments:approve-order:started
card-payments:3ds:confirm-payment-source:challenge-required
->card-payments:approve-order:auth-challenge-required
card-payments:3ds:failed
(this was previously used for both 3ds and non-3ds final result) ->card-payments:approve-order:failed
card-payments:3ds:succeeded
(this was previously used for both 3ds and non-3ds final result) ->card-payments:approve-order:succeeded
card-payments:approve-order:challenge:user-canceled
=>card-payments:approve-order:auth-challenge:canceled
card-payments:3ds:challenge-presentation:succeeded
=>card-payments:approve-order:auth-challenge-presentation:succeeded
card-payments:3ds:challenge-presentation:failed
=>card-payments:approve-order:auth-challenge-presentation:failed
Card Vault:
Remains same for non-3ds flows:
card-payments:vault-wo-purchase:succeeded
card-payments:vault-wo-purchase:failed
card-payments:vault-wo-purchase:started
Added:
card-payments:vault-wo-purchase:auth-challenge:succeeded
for card vault success with 3dscard-payments:vault-wo-purchase:auth-challenge:failed
for card vault failure with 3dsRenamed:
card-payments:3ds:challenge-presentation:challenge-required
=>card-payments:vault-wo-purchase:auth-challenge-required
card-payments:3ds:challenge-presentation:succeeded
=>card-payments:vault-wo-purchase:auth-challenge-presentation:succeeded
card-payments:3ds:challenge-presentation:failed
=>card-payments:vault-wo-purchase:auth-challenge-presentation:failed
card-payments:vault-wo-purchase:challenge:canceled
=>card-payments:vault-wo-purchase:auth-challenge:canceled
PayPal Checkout:
Renamed:
paypal-web-payments:started
=>paypal-web-payments:checkout:started
paypal-web-payments:browser-presentation:succeeded
=>paypal-web-payments:checkout:auth-challenge-presentation:succeeded
paypal-web-payments:browser-presentation:failed
=>paypal-web-payments:checkout:auth-challenge-presentation:failed
paypal-web-payments:succeeded
=>paypal-web-payments:checkout:succeeded
paypal-web-payments:failed
=>paypal-web-payments:checkout:failed
paypal-web-payments:browser-login:canceled
=>paypal-web-payments:checkout:canceled
PayPal Vault:
Remains same:
paypal-web-payments:vault-wo-purchase:started
Renamed:
paypal-vault:browser-presentation:succeeded
=>paypal-web-payments:vault-wo-purchase:auth-challenge-presentation:succeeded
paypal-web-payments:browser-presentation:failed
=>paypal-web-payments:vault-wo-purchase:auth-challenge-presentation:failed
paypal-web-payments:vault-wo-purchase:succeeded
=>paypal-web-payments:vault-wo-purchase:succeeded
paypal-web-payments:vault-wo-purchase:failed
=>paypal-web-payments:vault-wo-purchase:failed
paypal-web-payments:vault-wo-purchase:canceled
=>paypal-web-payments:vault-wo-purchase:canceled
Main changes are having consistent analytic names across iOS and Android and separate success/fail end events for 3ds and non-3ds flows.
This is a draft as result of discussion with @sshropshire on cleaning up and coordinating iOS and Android analytic events
Checklist
- [ ] Added a changelog entryAuthors