Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4571)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java

Issue 1996473002: Track age and score of snippets that are clicked (along with position). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Documenting histograms suffixes Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
index 54f9e9d5ddcd7c45f7fd59457a5509fe7ae2c273..810847eb02e9b18b9658778f192c559d434ae0dd 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
@@ -30,6 +30,7 @@ import org.chromium.chrome.browser.ntp.cards.NewTabPageViewHolder;
import java.net.URI;
import java.net.URISyntaxException;
+import java.util.concurrent.TimeUnit;
/**
* A class that represents the view for a single card snippet.
@@ -38,6 +39,7 @@ public class SnippetArticleViewHolder extends NewTabPageViewHolder implements Vi
private static final String TAG = "NtpSnippets";
private static final String PUBLISHER_FORMAT_STRING = "%s - %s";
private static final int FADE_IN_ANIMATION_TIME_MS = 300;
+ private static final int[] HISTOGRAM_FOR_POSITIONS = {0, 2, 4};
private final NewTabPageManager mNewTabPageManager;
private final TextView mHeadlineTextView;
@@ -46,6 +48,8 @@ public class SnippetArticleViewHolder extends NewTabPageViewHolder implements Vi
private final ImageView mThumbnailView;
private FetchImageCallback mImageCallback;
+ private long mPublishTimestampMilliseconds;
+ private float mScore;
public String mUrl;
public int mPosition;
@@ -95,6 +99,18 @@ public class SnippetArticleViewHolder extends NewTabPageViewHolder implements Vi
RecordHistogram.recordSparseSlowlyHistogram("NewTabPage.Snippets.CardClicked", mPosition);
NewTabPageUma.recordSnippetAction(NewTabPageUma.SNIPPETS_ACTION_CLICKED);
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_SNIPPET);
+
+ // track how the (approx.) position relates to age / score of the snippet that is clicked
+ long age = System.currentTimeMillis() - mPublishTimestampMilliseconds;
Ted C 2016/05/19 16:52:50 FWIW, currentTimeMillis states to not use it for t
jkrcal 2016/05/20 12:23:19 Heh, I am not used yet to look at android document
+ recordAge("NewTabPage.Snippets.CardClickedAge", age);
+ recordScore("NewTabPage.Snippets.CardClickedScore", mScore);
+ for (int position : HISTOGRAM_FOR_POSITIONS) {
+ if (mPosition <= position) {
+ String suffix = "_" + position;
Marc Treib 2016/05/19 16:07:10 I think it should be "." rather than "_"?
jkrcal 2016/05/19 16:40:52 histograms.xml:41 supports my version. The documen
Alexei Svitkine (slow) 2016/05/19 16:42:43 This is correct, but you can also use "." if you p
jkrcal 2016/05/20 12:23:19 Thanks for the explanation! (I am fine with "_")
+ recordAge("NewTabPage.Snippets.CardClickedAge" + suffix, age);
+ recordScore("NewTabPage.Snippets.CardClickedScore" + suffix, mScore);
Ted C 2016/05/19 16:52:50 do you want to record it for all buckets or just t
jkrcal 2016/05/20 12:23:19 Well, you are probably right that your suggested w
+ }
+ }
}
@Override
@@ -109,6 +125,8 @@ public class SnippetArticleViewHolder extends NewTabPageViewHolder implements Vi
mArticleSnippetTextView.setText(item.mPreviewText);
mUrl = item.mUrl;
mPosition = item.mPosition;
+ mPublishTimestampMilliseconds = item.mTimestamp;
+ mScore = item.mScore;
// If there's still a pending thumbnail fetch, cancel it.
cancelImageFetch();
@@ -146,6 +164,18 @@ public class SnippetArticleViewHolder extends NewTabPageViewHolder implements Vi
}
}
+ private static void recordAge(String histogramName, long age) {
+ long maxAge = TimeUnit.HOURS.toMillis(72);
+ age = Math.min(age, maxAge);
+ RecordHistogram.recordCustomTimesHistogram(
+ histogramName, age, 1, maxAge, TimeUnit.MILLISECONDS, 50);
+ }
+
+ private static void recordScore(String histogramName, float score) {
+ int recordedScore = Math.min((int) Math.ceil(score), 1000);
+ RecordHistogram.recordCount1000Histogram(histogramName, recordedScore);
+ }
+
private void cancelImageFetch() {
if (mImageCallback != null) {
mImageCallback.cancel();

Powered by Google App Engine
This is Rietveld 408576698