Skip to content

Commit

Permalink
[iOS cont. panel] Entrypoint in-product help dismissal reason histogram
Browse files Browse the repository at this point in the history
Added a histogram for the dismissal reason of the Contextual Panel
entrypoint's in-product help (IPH).

NO_IFTTT=newly added IFTTT

Bug: b:357888892
Change-Id: Ia8ea8ecc36689ae17c25787ebac3f2634e2c53e9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5775271
Reviewed-by: Robbie Gibson <rkgibson@google.com>
Reviewed-by: Mark Cogan <marq@chromium.org>
Commit-Queue: Nicolas MacBeth <nicolasmacbeth@google.com>
Reviewed-by: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1341868}
  • Loading branch information
Nicolas-MacBeth authored and pull[bot] committed Aug 16, 2024
1 parent a4eb3c8 commit 1051751
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 2 deletions.
1 change: 1 addition & 0 deletions ios/chrome/browser/browser_view/ui_bundled/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ source_set("ui_bundled") {
"//ios/chrome/browser/context_menu/ui_bundled:coordinator",
"//ios/chrome/browser/contextual_panel/coordinator",
"//ios/chrome/browser/contextual_panel/model",
"//ios/chrome/browser/contextual_panel/utils",
"//ios/chrome/browser/crash_report/model",
"//ios/chrome/browser/credential_provider_promo/ui_bundled:coordinator",
"//ios/chrome/browser/default_browser/model:utils",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
#import "ios/chrome/browser/context_menu/ui_bundled/context_menu_configuration_provider.h"
#import "ios/chrome/browser/contextual_panel/coordinator/contextual_sheet_coordinator.h"
#import "ios/chrome/browser/contextual_panel/model/contextual_panel_tab_helper.h"
#import "ios/chrome/browser/contextual_panel/utils/contextual_panel_metrics.h"
#import "ios/chrome/browser/credential_provider_promo/ui_bundled/credential_provider_promo_coordinator.h"
#import "ios/chrome/browser/default_browser/model/utils.h"
#import "ios/chrome/browser/default_promo/ui_bundled/default_browser_promo_non_modal_commands.h"
Expand Down Expand Up @@ -1570,7 +1571,6 @@ - (void)startTabLifeCycleMediator {
return webStateList ? webStateList->GetActiveWebState() : nullptr;
}

// TODO(crbug.com/343734676): Add metrics per dismissal reason type.
- (void)contextualPanelEntrypointIPHDidDismissWithConfig:
(base::WeakPtr<ContextualPanelItemConfiguration>)config
dismissalReason:
Expand Down Expand Up @@ -1598,6 +1598,8 @@ - (void)contextualPanelEntrypointIPHDidDismissWithConfig:
if (IPHDismissalReasonType == IPHDismissalReasonType::kTappedAnchorView ||
IPHDismissalReasonType == IPHDismissalReasonType::kTappedIPH) {
[self openContextualSheet];
[self recordContextualPanelEntrypointIPHDismissed:
ContextualPanelIPHDismissedReason::UserInteracted];
return;
}

Expand All @@ -1606,7 +1608,25 @@ - (void)contextualPanelEntrypointIPHDidDismissWithConfig:
IPHDismissalReasonType == IPHDismissalReasonType::kTappedClose) {
engagementTracker->NotifyEvent(
config_ptr->iph_entrypoint_explicitly_dismissed);
[self recordContextualPanelEntrypointIPHDismissed:
ContextualPanelIPHDismissedReason::UserDismissed];
return;
}

if (IPHDismissalReasonType == IPHDismissalReasonType::kTimedOut) {
[self recordContextualPanelEntrypointIPHDismissed:
ContextualPanelIPHDismissedReason::TimedOut];
return;
}

[self recordContextualPanelEntrypointIPHDismissed:
ContextualPanelIPHDismissedReason::Other];
}

- (void)recordContextualPanelEntrypointIPHDismissed:
(ContextualPanelIPHDismissedReason)dismissalReason {
base::UmaHistogramEnumeration("IOS.ContextualPanel.IPH.DismissedReason",
dismissalReason);
}

#pragma mark - ActivityServiceCommands
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ enum class PanelBlockImpressionType {
// LINT.ThenChange(/tools/metrics/histograms/enums.xml:IOSContextualPanelInfoBlockImpression)

// Values of the UMA IOS.ContextualPanel.DismissedReason histogram. Must be
// kept up to date with IOSContextualPanelInfoBlockImpression in enums.xml.
// kept up to date with IOSContextualPanelDismissedReason in enums.xml.
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
// LINT.IfChange(ContextualPanelDismissedReason)
Expand All @@ -60,4 +60,19 @@ enum class EntrypointInteractionType {
};
// LINT.ThenChange(/tools/metrics/histograms/enums.xml:IOSContextualPanelEntrypointInteractionType)

// Values of the UMA IOS.ContextualPanel.IPH.DismissedReason histogram (IPH here
// is an acronym for in-product help). Must be kept up to date with
// IOSContextualPanelIPHDismissedReason in enums.xml. These values are persisted
// to logs. Entries should not be renumbered and numeric values should never be
// reused.
// LINT.IfChange(ContextualPanelIPHDismissedReason)
enum class ContextualPanelIPHDismissedReason {
Other = 0,
UserDismissed = 1,
TimedOut = 2,
UserInteracted = 3, // The user clicked on the IPH or the entrypoint.
kMaxValue = UserInteracted,
};
// LINT.ThenChange(/tools/metrics/histograms/enums.xml:IOSContextualPanelIPHDismissedReason)

#endif // IOS_CHROME_BROWSER_CONTEXTUAL_PANEL_UTILS_CONTEXTUAL_PANEL_METRICS_H_
12 changes: 12 additions & 0 deletions tools/metrics/histograms/enums.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13231,6 +13231,18 @@ Called by update_permissions_policy_enum.py.-->

<!-- LINT.ThenChange(//ios/chrome/browser/contextual_panel/utils/contextual_panel_metrics.h:PanelBlockImpressionType) -->

<!-- LINT.IfChange(ContextualPanelIPHDismissedReason) -->

<enum name="IOSContextualPanelIPHDismissedReason">
<int value="0" label="Other/unknown, such as switching tabs"/>
<int value="1"
label="User dismissed (swiped IPH or tapped outside web content area)"/>
<int value="2" label="Timed out"/>
<int value="3" label="User clicked IPH or entrypoint"/>
</enum>

<!-- LINT.ThenChange(//ios/chrome/browser/contextual_panel/utils/contextual_panel_metrics.h:ContextualPanelIPHDismissedReason) -->

<!-- LINT.IfChange(IOSContextualPanelItemType) -->

<enum name="IOSContextualPanelItemType">
Expand Down
10 changes: 10 additions & 0 deletions tools/metrics/histograms/metadata/ios/histograms.xml
Original file line number Diff line number Diff line change
Expand Up @@ -516,6 +516,16 @@ chromium-metrics-reviews@google.com.
<token key="ContextualPanelItemType" variants="ContextualPanelItemType"/>
</histogram>

<histogram name="IOS.ContextualPanel.IPH.DismissedReason"
enum="IOSContextualPanelIPHDismissedReason" expires_after="2025-06-30">
<owner>nicolasmacbeth@google.com</owner>
<owner>bling-mony-pod@google.com</owner>
<summary>
The reason the Contextual Panel's entrypoint in-product help (IPH) was
dismissed.
</summary>
</histogram>

<histogram name="IOS.ContextualPanel.Model.InfoBlocksWithContentCount"
units="count" expires_after="2025-06-30">
<owner>rkgibson@google.com</owner>
Expand Down

0 comments on commit 1051751

Please sign in to comment.