| Index: components/ntp_snippets/content_suggestions_metrics.cc
|
| diff --git a/components/ntp_snippets/content_suggestions_metrics.cc b/components/ntp_snippets/content_suggestions_metrics.cc
|
| index 4f61eed1fa9af77c9dbb0f6ea8386caaae14bbf1..58b1dff08b329ef8e5a6a95cb479a64cce7e7f7f 100644
|
| --- a/components/ntp_snippets/content_suggestions_metrics.cc
|
| +++ b/components/ntp_snippets/content_suggestions_metrics.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "components/ntp_snippets/content_suggestions_metrics.h"
|
|
|
| +#include <cmath>
|
| #include <string>
|
| #include <type_traits>
|
|
|
| @@ -25,18 +26,19 @@ const char kHistogramCountOnNtpOpened[] =
|
| "NewTabPage.ContentSuggestions.CountOnNtpOpened";
|
| const char kHistogramShown[] = "NewTabPage.ContentSuggestions.Shown";
|
| const char kHistogramShownAge[] = "NewTabPage.ContentSuggestions.ShownAge";
|
| -const char kHistogramShownScore[] = "NewTabPage.ContentSuggestions.ShownScore";
|
| +const char kHistogramShownScore[] =
|
| + "NewTabPage.ContentSuggestions.ShownScoreNormalized";
|
| const char kHistogramOpened[] = "NewTabPage.ContentSuggestions.Opened";
|
| const char kHistogramOpenedAge[] = "NewTabPage.ContentSuggestions.OpenedAge";
|
| const char kHistogramOpenedScore[] =
|
| - "NewTabPage.ContentSuggestions.OpenedScore";
|
| + "NewTabPage.ContentSuggestions.OpenedScoreNormalized";
|
| const char kHistogramOpenDisposition[] =
|
| "NewTabPage.ContentSuggestions.OpenDisposition";
|
| const char kHistogramMenuOpened[] = "NewTabPage.ContentSuggestions.MenuOpened";
|
| const char kHistogramMenuOpenedAge[] =
|
| "NewTabPage.ContentSuggestions.MenuOpenedAge";
|
| const char kHistogramMenuOpenedScore[] =
|
| - "NewTabPage.ContentSuggestions.MenuOpenedScore";
|
| + "NewTabPage.ContentSuggestions.MenuOpenedScoreNormalized";
|
| const char kHistogramDismissedUnvisited[] =
|
| "NewTabPage.ContentSuggestions.DismissedUnvisited";
|
| const char kHistogramDismissedVisited[] =
|
| @@ -168,9 +170,14 @@ void UmaHistogramAge(const std::string& name, const base::TimeDelta& value) {
|
| // This corresponds to UMA_HISTOGRAM_CUSTOM_COUNTS (with min/max appropriate
|
| // for the score of suggestions) for use with dynamic histogram names.
|
| void UmaHistogramScore(const std::string& name, float value) {
|
| - base::Histogram::FactoryGet(name, 1, 100000, 50,
|
| - base::HistogramBase::kUmaTargetedHistogramFlag)
|
| - ->Add(value);
|
| + // Scores are typically reported in a range of (0,1]. As UMA does not support
|
| + // floats, we put them on a discrete scale of [1,10]. We keep the extra bucket
|
| + // 11 for unexpected over-flows as we want to distinguish them from scores
|
| + // close to 1. For instance, the discrete value 1 represents score values
|
| + // within (0.0, 0.1].
|
| + base::LinearHistogram::FactoryGet(
|
| + name, 1, 11, 12, base::HistogramBase::kUmaTargetedHistogramFlag)
|
| + ->Add(ceil(value * 10));
|
| }
|
|
|
| void LogCategoryHistogramEnumeration(const char* base_name,
|
|
|