Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4386)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java

Issue 2396643002: [Payments] Add Payment Request journey metrics. (Closed)
Patch Set: Nit Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestJourneyLogger.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java
index dab4fe60d935f0c3d4069bfffcd275d9335b0724..06c9313bca9f80a42c04448c8d32cd2e98f28f86 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java
@@ -144,6 +144,7 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
private final List<PaymentApp> mApps;
private final AddressEditor mAddressEditor;
private final CardEditor mCardEditor;
+ private final PaymentRequestJourneyLogger mJourneyLogger = new PaymentRequestJourneyLogger();
private Bitmap mFavicon;
private PaymentRequestClient mClient;
@@ -306,6 +307,10 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
}
}
+ // Log the number of suggested shipping addresses.
+ mJourneyLogger.setNumberOfSuggestionsShown(
+ PaymentRequestJourneyLogger.SECTION_SHIPPING_ADDRESS, addresses.size());
+
// Automatically select the first address if one is complete and if the merchant does
// not require a shipping address to calculate shipping costs.
int firstCompleteAddressIndex = SectionInformation.NO_SELECTION;
@@ -353,6 +358,10 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
// Limit the number of suggestions.
contacts = contacts.subList(0, Math.min(contacts.size(), SUGGESTIONS_LIMIT));
+ // Log the number of suggested contact infos.
+ mJourneyLogger.setNumberOfSuggestionsShown(
+ PaymentRequestJourneyLogger.SECTION_CONTACT_INFO, contacts.size());
+
// Automatically select the first address if it is complete.
int firstCompleteContactIndex = SectionInformation.NO_SELECTION;
if (!contacts.isEmpty() && contacts.get(0).isComplete()) {
@@ -713,6 +722,9 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
Callback<PaymentInformation> callback) {
if (optionType == PaymentRequestUI.TYPE_SHIPPING_ADDRESSES) {
assert option instanceof AutofillAddress;
+ // Log the change of shipping address.
+ mJourneyLogger.incrementSelectionChanges(
+ PaymentRequestJourneyLogger.SECTION_SHIPPING_ADDRESS);
AutofillAddress address = (AutofillAddress) option;
if (address.isComplete()) {
mShippingAddressesSection.setSelectedItem(option);
@@ -731,6 +743,9 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
return PaymentRequestUI.SELECTION_RESULT_ASYNCHRONOUS_VALIDATION;
} else if (optionType == PaymentRequestUI.TYPE_CONTACT_DETAILS) {
assert option instanceof AutofillContact;
+ // Log the change of contact info.
+ mJourneyLogger.incrementSelectionChanges(
+ PaymentRequestJourneyLogger.SECTION_CONTACT_INFO);
AutofillContact contact = (AutofillContact) option;
if (contact.isComplete()) {
@@ -742,6 +757,9 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
} else if (optionType == PaymentRequestUI.TYPE_PAYMENT_METHODS) {
assert option instanceof PaymentInstrument;
if (option instanceof AutofillPaymentInstrument) {
+ // Log the change of credit card.
+ mJourneyLogger.incrementSelectionChanges(
+ PaymentRequestJourneyLogger.SECTION_CREDIT_CARDS);
AutofillPaymentInstrument card = (AutofillPaymentInstrument) option;
if (!card.isComplete()) {
@@ -762,12 +780,19 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
if (optionType == PaymentRequestUI.TYPE_SHIPPING_ADDRESSES) {
editAddress(null);
mPaymentInformationCallback = callback;
+ // Log the add of shipping address.
+ mJourneyLogger.incrementSelectionAdds(
+ PaymentRequestJourneyLogger.SECTION_SHIPPING_ADDRESS);
return PaymentRequestUI.SELECTION_RESULT_ASYNCHRONOUS_VALIDATION;
} else if (optionType == PaymentRequestUI.TYPE_CONTACT_DETAILS) {
editContact(null);
+ // Log the add of contact info.
+ mJourneyLogger.incrementSelectionAdds(PaymentRequestJourneyLogger.SECTION_CONTACT_INFO);
return PaymentRequestUI.SELECTION_RESULT_EDITOR_LAUNCH;
} else if (optionType == PaymentRequestUI.TYPE_PAYMENT_METHODS) {
editCard(null);
+ // Log the add of credit card.
+ mJourneyLogger.incrementSelectionAdds(PaymentRequestJourneyLogger.SECTION_CREDIT_CARDS);
return PaymentRequestUI.SELECTION_RESULT_EDITOR_LAUNCH;
}
@@ -775,6 +800,11 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
}
private void editAddress(final AutofillAddress toEdit) {
+ if (toEdit != null) {
+ // Log the edit of a shipping address.
+ mJourneyLogger.incrementSelectionEdits(
+ PaymentRequestJourneyLogger.SECTION_SHIPPING_ADDRESS);
+ }
mAddressEditor.edit(toEdit, new Callback<AutofillAddress>() {
@Override
public void onResult(AutofillAddress completeAddress) {
@@ -793,6 +823,11 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
}
private void editContact(final AutofillContact toEdit) {
+ if (toEdit != null) {
+ // Log the edit of a contact info.
+ mJourneyLogger.incrementSelectionEdits(
+ PaymentRequestJourneyLogger.SECTION_CONTACT_INFO);
+ }
mContactEditor.edit(toEdit, new Callback<AutofillContact>() {
@Override
public void onResult(AutofillContact completeContact) {
@@ -810,6 +845,11 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
}
private void editCard(final AutofillPaymentInstrument toEdit) {
+ if (toEdit != null) {
+ // Log the edit of a credit card.
+ mJourneyLogger.incrementSelectionEdits(
+ PaymentRequestJourneyLogger.SECTION_CREDIT_CARDS);
+ }
mCardEditor.edit(toEdit, new Callback<AutofillPaymentInstrument>() {
@Override
public void onResult(AutofillPaymentInstrument completeCard) {
@@ -937,6 +977,10 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
Collections.sort(mPendingAutofillInstruments, COMPLETENESS_COMPARATOR);
mPendingInstruments.addAll(mPendingAutofillInstruments);
+ // Log the number of suggested credit cards.
+ mJourneyLogger.setNumberOfSuggestionsShown(PaymentRequestJourneyLogger.SECTION_CREDIT_CARDS,
+ mPendingAutofillInstruments.size());
+
mPendingAutofillInstruments.clear();
mPendingAutofillInstruments = null;
@@ -1198,6 +1242,10 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
*/
private void recordSuccessFunnelHistograms(String funnelPart) {
RecordHistogram.recordBooleanHistogram("PaymentRequest.CheckoutFunnel." + funnelPart, true);
+
+ if (funnelPart.equals("Completed")) {
+ mJourneyLogger.recordJourneyStatsHistograms("Completed");
+ }
}
/**
@@ -1213,5 +1261,11 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
RecordHistogram.recordEnumeratedHistogram(
"PaymentRequest.CheckoutFunnel.Aborted", abortReason,
PaymentRequestMetrics.ABORT_REASON_MAX);
+
+ if (abortReason == PaymentRequestMetrics.ABORT_REASON_ABORTED_BY_USER) {
+ mJourneyLogger.recordJourneyStatsHistograms("UserAborted");
+ } else {
+ mJourneyLogger.recordJourneyStatsHistograms("OtherAborted");
+ }
}
}
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestJourneyLogger.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698