OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_ENGAGEMENT_SITE_ENGAGEMENT_METRICS_H_ | 5 #ifndef CHROME_BROWSER_ENGAGEMENT_SITE_ENGAGEMENT_METRICS_H_ |
6 #define CHROME_BROWSER_ENGAGEMENT_SITE_ENGAGEMENT_METRICS_H_ | 6 #define CHROME_BROWSER_ENGAGEMENT_SITE_ENGAGEMENT_METRICS_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "base/gtest_prod_util.h" | 11 #include "base/gtest_prod_util.h" |
12 #include "url/gurl.h" | 12 #include "url/gurl.h" |
13 | 13 |
14 // Helper class managing the UMA histograms for the Site Engagement Service. | 14 // Helper class managing the UMA histograms for the Site Engagement Service. |
15 class SiteEngagementMetrics { | 15 class SiteEngagementMetrics { |
16 public: | 16 public: |
17 // This is used to back a UMA histogram, so it should be treated as | 17 // This is used to back a UMA histogram, so it should be treated as |
18 // append-only. Any new values should be inserted immediately prior to | 18 // append-only. Any new values should be inserted immediately prior to |
19 // ENGAGEMENT_LAST. | 19 // ENGAGEMENT_LAST. |
20 enum EngagementType { | 20 enum EngagementType { |
21 ENGAGEMENT_NAVIGATION, | 21 ENGAGEMENT_NAVIGATION, |
22 ENGAGEMENT_KEYPRESS, | 22 ENGAGEMENT_KEYPRESS, |
23 ENGAGEMENT_MOUSE, | 23 ENGAGEMENT_MOUSE, |
24 ENGAGEMENT_TOUCH_GESTURE, | 24 ENGAGEMENT_TOUCH_GESTURE, |
25 ENGAGEMENT_SCROLL, | 25 ENGAGEMENT_SCROLL, |
26 ENGAGEMENT_MEDIA_HIDDEN, | 26 ENGAGEMENT_MEDIA_HIDDEN, |
27 ENGAGEMENT_MEDIA_VISIBLE, | 27 ENGAGEMENT_MEDIA_VISIBLE, |
28 ENGAGEMENT_WEBAPP_SHORTCUT_LAUNCH, | 28 ENGAGEMENT_WEBAPP_SHORTCUT_LAUNCH, |
29 ENGAGEMENT_FIRST_DAILY_ENGAGEMENT, | 29 ENGAGEMENT_FIRST_DAILY_ENGAGEMENT, |
| 30 ENGAGEMENT_NOTIFICATION_INTERACTION, |
30 ENGAGEMENT_LAST, | 31 ENGAGEMENT_LAST, |
31 }; | 32 }; |
32 | 33 |
33 static void RecordTotalSiteEngagement(double total_engagement); | 34 static void RecordTotalSiteEngagement(double total_engagement); |
34 static void RecordTotalOriginsEngaged(int total_origins); | 35 static void RecordTotalOriginsEngaged(int total_origins); |
35 static void RecordMeanEngagement(double mean_engagement); | 36 static void RecordMeanEngagement(double mean_engagement); |
36 static void RecordMedianEngagement(double median_engagement); | 37 static void RecordMedianEngagement(double median_engagement); |
37 static void RecordEngagementPercentageForHTTPS(double percentage); | 38 static void RecordEngagementPercentageForHTTPS(double percentage); |
38 static void RecordEngagementScores(const std::map<GURL, double>& score_map); | 39 static void RecordEngagementScores(const std::map<GURL, double>& score_map); |
39 static void RecordOriginsWithMaxEngagement(int total_origins); | 40 static void RecordOriginsWithMaxEngagement(int total_origins); |
40 static void RecordOriginsWithMaxDailyEngagement(int total_origins); | 41 static void RecordOriginsWithMaxDailyEngagement(int total_origins); |
41 static void RecordPercentOriginsWithMaxEngagement(double percentage); | 42 static void RecordPercentOriginsWithMaxEngagement(double percentage); |
42 static void RecordEngagement(EngagementType type); | 43 static void RecordEngagement(EngagementType type); |
43 static void RecordDaysSinceLastShortcutLaunch(int days); | 44 static void RecordDaysSinceLastShortcutLaunch(int days); |
44 static void RecordScoreDecayedFrom(double score); | 45 static void RecordScoreDecayedFrom(double score); |
45 static void RecordScoreDecayedTo(double score); | 46 static void RecordScoreDecayedTo(double score); |
46 | 47 |
47 private: | 48 private: |
48 FRIEND_TEST_ALL_PREFIXES(SiteEngagementServiceTest, CheckHistograms); | 49 FRIEND_TEST_ALL_PREFIXES(SiteEngagementServiceTest, CheckHistograms); |
| 50 FRIEND_TEST_ALL_PREFIXES(SiteEngagementServiceTest, |
| 51 GetTotalNotificationPoints); |
49 FRIEND_TEST_ALL_PREFIXES(SiteEngagementServiceTest, LastShortcutLaunch); | 52 FRIEND_TEST_ALL_PREFIXES(SiteEngagementServiceTest, LastShortcutLaunch); |
50 FRIEND_TEST_ALL_PREFIXES(SiteEngagementServiceTest, ScoreDecayHistograms); | 53 FRIEND_TEST_ALL_PREFIXES(SiteEngagementServiceTest, ScoreDecayHistograms); |
51 FRIEND_TEST_ALL_PREFIXES(SiteEngagementHelperTest, | 54 FRIEND_TEST_ALL_PREFIXES(SiteEngagementHelperTest, |
52 MixedInputEngagementAccumulation); | 55 MixedInputEngagementAccumulation); |
53 static const char kTotalEngagementHistogram[]; | 56 static const char kTotalEngagementHistogram[]; |
54 static const char kTotalOriginsHistogram[]; | 57 static const char kTotalOriginsHistogram[]; |
55 static const char kMeanEngagementHistogram[]; | 58 static const char kMeanEngagementHistogram[]; |
56 static const char kMedianEngagementHistogram[]; | 59 static const char kMedianEngagementHistogram[]; |
57 static const char kEngagementPercentageForHTTPSHistogram[]; | 60 static const char kEngagementPercentageForHTTPSHistogram[]; |
58 static const char kEngagementScoreHistogram[]; | 61 static const char kEngagementScoreHistogram[]; |
59 static const char kEngagementScoreHistogramHTTP[]; | 62 static const char kEngagementScoreHistogramHTTP[]; |
60 static const char kEngagementScoreHistogramHTTPS[]; | 63 static const char kEngagementScoreHistogramHTTPS[]; |
61 static const char kEngagementScoreHistogramIsZero[]; | 64 static const char kEngagementScoreHistogramIsZero[]; |
62 static const char kOriginsWithMaxEngagementHistogram[]; | 65 static const char kOriginsWithMaxEngagementHistogram[]; |
63 static const char kOriginsWithMaxDailyEngagementHistogram[]; | 66 static const char kOriginsWithMaxDailyEngagementHistogram[]; |
64 static const char kPercentOriginsWithMaxEngagementHistogram[]; | 67 static const char kPercentOriginsWithMaxEngagementHistogram[]; |
65 static const char kEngagementTypeHistogram[]; | 68 static const char kEngagementTypeHistogram[]; |
66 static const char kEngagementBucketHistogramBase[]; | 69 static const char kEngagementBucketHistogramBase[]; |
67 static const char kDaysSinceLastShortcutLaunchHistogram[]; | 70 static const char kDaysSinceLastShortcutLaunchHistogram[]; |
68 static const char kScoreDecayedFromHistogram[]; | 71 static const char kScoreDecayedFromHistogram[]; |
69 static const char kScoreDecayedToHistogram[]; | 72 static const char kScoreDecayedToHistogram[]; |
70 | 73 |
71 static std::vector<std::string> GetEngagementBucketHistogramNames(); | 74 static std::vector<std::string> GetEngagementBucketHistogramNames(); |
72 }; | 75 }; |
73 | 76 |
74 #endif // CHROME_BROWSER_ENGAGEMENT_SITE_ENGAGEMENT_METRICS_H_ | 77 #endif // CHROME_BROWSER_ENGAGEMENT_SITE_ENGAGEMENT_METRICS_H_ |
OLD | NEW |