Commit d1ebc9f8 authored by adamta's avatar adamta Committed by Commit Bot

[iOS] User actions for Discover feed

Adds user actions in the Discover feed metrics recorder alongside the
existing histograms. Mostly reuses existing actions, but added a few
to be in sync with the currently logged histograms.

Bug: 1127457, 1085419
Change-Id: I54db65f31122787942601e6c421b713c8a440022
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2405858Reviewed-by: default avatarMark Pearson <mpearson@chromium.org>
Reviewed-by: default avatarSergio Collazos <sczs@chromium.org>
Commit-Queue: Adam Trudeau-Arcaro <adamta@google.com>
Cr-Commit-Position: refs/heads/master@{#806690}
parent 50e251d0
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
#import "ios/chrome/browser/ui/content_suggestions/discover_feed_metrics_recorder.h" #import "ios/chrome/browser/ui/content_suggestions/discover_feed_metrics_recorder.h"
#import "base/metrics/histogram_macros.h" #import "base/metrics/histogram_macros.h"
#import "base/metrics/user_metrics.h"
#import "base/metrics/user_metrics_action.h"
#if !defined(__has_feature) || !__has_feature(objc_arc) #if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support." #error "This file requires ARC support."
...@@ -81,66 +83,125 @@ namespace { ...@@ -81,66 +83,125 @@ namespace {
const char kDiscoverFeedInfiniteFeedTriggered[] = const char kDiscoverFeedInfiniteFeedTriggered[] =
"ContentSuggestions.Feed.LoadStreamStatus.LoadMore"; "ContentSuggestions.Feed.LoadStreamStatus.LoadMore";
// Histogram name for the feed header items. // Histogram name for the Discover feed user actions.
const char kDiscoverFeedUserAction[] = "ContentSuggestions.Feed.UserActions"; const char kDiscoverFeedUserActionHistogram[] =
"ContentSuggestions.Feed.UserActions";
// User action names for toggling the feed visibility from the header menu.
const char kDiscoverFeedUserActionTurnOn[] =
"Suggestions.ExpandableHeader.Expanded";
const char kDiscoverFeedUserActionTurnOff[] =
"Suggestions.ExpandableHeader.Collapsed";
// User action names for feed back of card items.
const char kDiscoverFeedUserActionLearnMoreTapped[] =
"ContentSuggestions.Feed.CardAction.LearnMore";
const char kDiscoverFeedUserActionOpenSameTab[] =
"ContentSuggestions.Feed.CardAction.Open";
const char kDiscoverFeedUserActionOpenIncognitoTab[] =
"ContentSuggestions.Feed.CardAction.OpenInNewIncognitoTab";
const char kDiscoverFeedUserActionOpenNewTab[] =
"ContentSuggestions.Feed.CardAction.OpenInNewTab";
const char kDiscoverFeedUserActionReadLaterTapped[] =
"ContentSuggestions.Feed.CardAction.ReadLater";
const char kDiscoverFeedUserActionSendFeedbackOpened[] =
"ContentSuggestions.Feed.CardAction.SendFeedback";
// User action names for feed header menu.
const char kDiscoverFeedUserActionManageActivityTapped[] =
"ContentSuggestions.Feed.HeaderAction.ManageActivity";
const char kDiscoverFeedUserActionManageInterestsTapped[] =
"ContentSuggestions.Feed.HeaderAction.ManageInterests";
// User action name for infinite feed triggering.
const char kDiscoverFeedUserActionInfiniteFeedTriggered[] =
"ContentSuggestions.Feed.InfiniteFeedTriggered";
} // namespace } // namespace
@implementation DiscoverFeedMetricsRecorder @implementation DiscoverFeedMetricsRecorder
#pragma mark - Public
- (void)recordInfiniteFeedTriggered { - (void)recordInfiniteFeedTriggered {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedInfiniteFeedTriggered, UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedInfiniteFeedTriggered,
FeedLoadStreamStatus::kLoadedFromNetwork); FeedLoadStreamStatus::kLoadedFromNetwork);
base::RecordAction(
base::UserMetricsAction(kDiscoverFeedUserActionInfiniteFeedTriggered));
} }
- (void)recordHeaderMenuLearnMoreTapped { - (void)recordHeaderMenuLearnMoreTapped {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction, [self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
FeedUserActionType::kTappedLearnMore); kTappedLearnMore];
base::RecordAction(
base::UserMetricsAction(kDiscoverFeedUserActionLearnMoreTapped));
} }
- (void)recordHeaderMenuManageActivityTapped { - (void)recordHeaderMenuManageActivityTapped {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction, [self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
FeedUserActionType::kTappedManageActivity); kTappedManageActivity];
base::RecordAction(
base::UserMetricsAction(kDiscoverFeedUserActionManageActivityTapped));
} }
- (void)recordHeaderMenuManageInterestsTapped { - (void)recordHeaderMenuManageInterestsTapped {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction, [self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
FeedUserActionType::kTappedManageInterests); kTappedManageInterests];
base::RecordAction(
base::UserMetricsAction(kDiscoverFeedUserActionManageInterestsTapped));
} }
- (void)recordDiscoverFeedVisibilityChanged:(BOOL)visible { - (void)recordDiscoverFeedVisibilityChanged:(BOOL)visible {
if (visible) { if (visible) {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction, [self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
FeedUserActionType::kTappedTurnOn); kTappedTurnOn];
base::RecordAction(base::UserMetricsAction(kDiscoverFeedUserActionTurnOn));
} else { } else {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction, [self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
FeedUserActionType::kTappedTurnOff); kTappedTurnOff];
base::RecordAction(base::UserMetricsAction(kDiscoverFeedUserActionTurnOff));
} }
} }
- (void)recordOpenURLInSameTab { - (void)recordOpenURLInSameTab {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction, [self
FeedUserActionType::kTappedOnCard); recordDiscoverFeedUserActionHistogram:FeedUserActionType::kTappedOnCard];
base::RecordAction(
base::UserMetricsAction(kDiscoverFeedUserActionOpenSameTab));
} }
- (void)recordOpenURLInNewTab { - (void)recordOpenURLInNewTab {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction, [self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
FeedUserActionType::kTappedOpenInNewTab); kTappedOpenInNewTab];
base::RecordAction(
base::UserMetricsAction(kDiscoverFeedUserActionOpenNewTab));
} }
- (void)recordOpenURLInIncognitoTab { - (void)recordOpenURLInIncognitoTab {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction, [self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
FeedUserActionType::kTappedOpenInNewIncognitoTab); kTappedOpenInNewIncognitoTab];
base::RecordAction(
base::UserMetricsAction(kDiscoverFeedUserActionOpenIncognitoTab));
} }
- (void)recordAddURLToReadLater { - (void)recordAddURLToReadLater {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction, [self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
FeedUserActionType::kAddedToReadLater); kAddedToReadLater];
base::RecordAction(
base::UserMetricsAction(kDiscoverFeedUserActionReadLaterTapped));
} }
- (void)recordTapSendFeedback { - (void)recordTapSendFeedback {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction, [self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
FeedUserActionType::kTappedSendFeedback); kTappedSendFeedback];
base::RecordAction(
base::UserMetricsAction(kDiscoverFeedUserActionSendFeedbackOpened));
}
#pragma mark - Private
// Records histogram metrics for Discover feed user actions.
- (void)recordDiscoverFeedUserActionHistogram:(FeedUserActionType)actionType {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserActionHistogram, actionType);
} }
@end @end
...@@ -5006,6 +5006,15 @@ should be able to be added at any place in this file. ...@@ -5006,6 +5006,15 @@ should be able to be added at any place in this file.
</description> </description>
</action> </action>
<action name="ContentSuggestions.Feed.CardAction.ReadLater">
<owner>adamta@google.org</owner>
<owner>sczs@chromium.org</owner>
<owner>feed@chromium.org</owner>
<description>
The user selected the 'Read Later' option for a Feed card.
</description>
</action>
<action name="ContentSuggestions.Feed.CardAction.SendFeedback"> <action name="ContentSuggestions.Feed.CardAction.SendFeedback">
<owner>harringtond@chromium.org</owner> <owner>harringtond@chromium.org</owner>
<owner>carlosk@chromium.org</owner> <owner>carlosk@chromium.org</owner>
...@@ -5015,6 +5024,33 @@ should be able to be added at any place in this file. ...@@ -5015,6 +5024,33 @@ should be able to be added at any place in this file.
</description> </description>
</action> </action>
<action name="ContentSuggestions.Feed.HeaderAction.ManageActivity">
<owner>adamta@google.org</owner>
<owner>sczs@chromium.org</owner>
<owner>feed@chromium.org</owner>
<description>
The user selected the 'Manage Activity' option in the feed header menu.
</description>
</action>
<action name="ContentSuggestions.Feed.HeaderAction.ManageInterests">
<owner>adamta@google.org</owner>
<owner>sczs@chromium.org</owner>
<owner>feed@chromium.org</owner>
<description>
The user selected the 'Manage Interests' option in the feed header menu.
</description>
</action>
<action name="ContentSuggestions.Feed.InfiniteFeedTriggered">
<owner>adamta@google.org</owner>
<owner>sczs@chromium.org</owner>
<owner>feed@chromium.org</owner>
<description>
The user has scrolled down enough to trigger the infinite feed pagination.
</description>
</action>
<action name="ContentSuggestions.NotificationsPreferenceOff"> <action name="ContentSuggestions.NotificationsPreferenceOff">
<owner>dgn@chromium.org</owner> <owner>dgn@chromium.org</owner>
<owner>finkm@chromium.org</owner> <owner>finkm@chromium.org</owner>
...@@ -24238,8 +24274,7 @@ should be able to be added at any place in this file. ...@@ -24238,8 +24274,7 @@ should be able to be added at any place in this file.
<owner>twellington@chromium.org</owner> <owner>twellington@chromium.org</owner>
<owner>chrome-android-app@chromium.org</owner> <owner>chrome-android-app@chromium.org</owner>
<description> <description>
Android: The suggestions section is collapsed by user click on the section The suggestions section is collapsed through the section header.
header.
</description> </description>
</action> </action>
...@@ -24247,8 +24282,7 @@ should be able to be added at any place in this file. ...@@ -24247,8 +24282,7 @@ should be able to be added at any place in this file.
<owner>twellington@chromium.org</owner> <owner>twellington@chromium.org</owner>
<owner>chrome-android-app@chromium.org</owner> <owner>chrome-android-app@chromium.org</owner>
<description> <description>
Android: The suggestions section is expanded by user click on the section The suggestions section is expanded through the section header.
header.
</description> </description>
</action> </action>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment