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 @@
#import "ios/chrome/browser/ui/content_suggestions/discover_feed_metrics_recorder.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)
#error "This file requires ARC support."
......@@ -81,66 +83,125 @@ namespace {
const char kDiscoverFeedInfiniteFeedTriggered[] =
"ContentSuggestions.Feed.LoadStreamStatus.LoadMore";
// Histogram name for the feed header items.
const char kDiscoverFeedUserAction[] = "ContentSuggestions.Feed.UserActions";
// Histogram name for the Discover feed user actions.
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
@implementation DiscoverFeedMetricsRecorder
#pragma mark - Public
- (void)recordInfiniteFeedTriggered {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedInfiniteFeedTriggered,
FeedLoadStreamStatus::kLoadedFromNetwork);
base::RecordAction(
base::UserMetricsAction(kDiscoverFeedUserActionInfiniteFeedTriggered));
}
- (void)recordHeaderMenuLearnMoreTapped {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction,
FeedUserActionType::kTappedLearnMore);
[self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
kTappedLearnMore];
base::RecordAction(
base::UserMetricsAction(kDiscoverFeedUserActionLearnMoreTapped));
}
- (void)recordHeaderMenuManageActivityTapped {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction,
FeedUserActionType::kTappedManageActivity);
[self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
kTappedManageActivity];
base::RecordAction(
base::UserMetricsAction(kDiscoverFeedUserActionManageActivityTapped));
}
- (void)recordHeaderMenuManageInterestsTapped {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction,
FeedUserActionType::kTappedManageInterests);
[self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
kTappedManageInterests];
base::RecordAction(
base::UserMetricsAction(kDiscoverFeedUserActionManageInterestsTapped));
}
- (void)recordDiscoverFeedVisibilityChanged:(BOOL)visible {
if (visible) {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction,
FeedUserActionType::kTappedTurnOn);
[self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
kTappedTurnOn];
base::RecordAction(base::UserMetricsAction(kDiscoverFeedUserActionTurnOn));
} else {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction,
FeedUserActionType::kTappedTurnOff);
[self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
kTappedTurnOff];
base::RecordAction(base::UserMetricsAction(kDiscoverFeedUserActionTurnOff));
}
}
- (void)recordOpenURLInSameTab {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction,
FeedUserActionType::kTappedOnCard);
[self
recordDiscoverFeedUserActionHistogram:FeedUserActionType::kTappedOnCard];
base::RecordAction(
base::UserMetricsAction(kDiscoverFeedUserActionOpenSameTab));
}
- (void)recordOpenURLInNewTab {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction,
FeedUserActionType::kTappedOpenInNewTab);
[self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
kTappedOpenInNewTab];
base::RecordAction(
base::UserMetricsAction(kDiscoverFeedUserActionOpenNewTab));
}
- (void)recordOpenURLInIncognitoTab {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction,
FeedUserActionType::kTappedOpenInNewIncognitoTab);
[self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
kTappedOpenInNewIncognitoTab];
base::RecordAction(
base::UserMetricsAction(kDiscoverFeedUserActionOpenIncognitoTab));
}
- (void)recordAddURLToReadLater {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction,
FeedUserActionType::kAddedToReadLater);
[self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
kAddedToReadLater];
base::RecordAction(
base::UserMetricsAction(kDiscoverFeedUserActionReadLaterTapped));
}
- (void)recordTapSendFeedback {
UMA_HISTOGRAM_ENUMERATION(kDiscoverFeedUserAction,
FeedUserActionType::kTappedSendFeedback);
[self recordDiscoverFeedUserActionHistogram:FeedUserActionType::
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
......@@ -5006,6 +5006,15 @@ should be able to be added at any place in this file.
</description>
</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">
<owner>harringtond@chromium.org</owner>
<owner>carlosk@chromium.org</owner>
......@@ -5015,6 +5024,33 @@ should be able to be added at any place in this file.
</description>
</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">
<owner>dgn@chromium.org</owner>
<owner>finkm@chromium.org</owner>
......@@ -24238,8 +24274,7 @@ should be able to be added at any place in this file.
<owner>twellington@chromium.org</owner>
<owner>chrome-android-app@chromium.org</owner>
<description>
Android: The suggestions section is collapsed by user click on the section
header.
The suggestions section is collapsed through the section header.
</description>
</action>
......@@ -24247,8 +24282,7 @@ should be able to be added at any place in this file.
<owner>twellington@chromium.org</owner>
<owner>chrome-android-app@chromium.org</owner>
<description>
Android: The suggestions section is expanded by user click on the section
header.
The suggestions section is expanded through the section header.
</description>
</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