Bug 1400408 - Add telemetry for clicking on "MORE" link. r?mcomella,francois draft
authorChenxia Liu <liuche@mozilla.com>
Wed, 20 Sep 2017 16:06:51 -0700
changeset 668454 846f88b95d139f140e1c09914186ce4bf894a9f8
parent 667987 01f352f2680a91fae6690d0082e43cc36f77f81f
child 732712 57bbc94f6222665bfc0961ac68722c9a81acd5e1
push id81056
push usercliu@mozilla.com
push dateThu, 21 Sep 2017 17:58:12 +0000
reviewersmcomella, francois
bugs1400408
milestone57.0a1
Bug 1400408 - Add telemetry for clicking on "MORE" link. r?mcomella,francois MozReview-Commit-ID: Kp8X8dbyzN9
mobile/android/base/java/org/mozilla/gecko/activitystream/ActivityStreamTelemetry.java
mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/stream/StreamTitleRow.java
mobile/android/docs/activitystreamtelemetry.rst
--- a/mobile/android/base/java/org/mozilla/gecko/activitystream/ActivityStreamTelemetry.java
+++ b/mobile/android/base/java/org/mozilla/gecko/activitystream/ActivityStreamTelemetry.java
@@ -45,16 +45,17 @@ public class ActivityStreamTelemetry {
         public final static String ITEM_REMOVE_BOOKMARK = "remove_bookmark";
         public final static String ITEM_PIN = "pin";
         public final static String ITEM_UNPIN = "unpin";
         public final static String ITEM_COPY = "copy";
         public final static String ITEM_ADD_TO_HOMESCREEN = "homescreen";
         public final static String ITEM_NEW_TAB = "newtab";
         public final static String ITEM_DISMISS = "dismiss";
         public final static String ITEM_DELETE_HISTORY = "delete";
+        public final static String ITEM_LINK_MORE = "link_more";
         public final static String INTERACTION_MENU_BUTTON = "menu_button";
         public final static String INTERACTION_LONG_CLICK = "long_click";
     }
 
     /**
      * A helper class used for composing an 'extras' field. It encapsulates a holder of "global"
      * key/value pairs which will be present in every 'extras' constructed by this class, and a
      * static builder which is aware of Activity Stream telemetry needs.
--- a/mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/stream/StreamTitleRow.java
+++ b/mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/stream/StreamTitleRow.java
@@ -8,16 +8,19 @@ package org.mozilla.gecko.activitystream
 import android.support.annotation.NonNull;
 import android.support.annotation.StringRes;
 import android.support.v7.widget.RecyclerView;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.TextView;
 
 import org.mozilla.gecko.R;
+import org.mozilla.gecko.Telemetry;
+import org.mozilla.gecko.TelemetryContract;
+import org.mozilla.gecko.activitystream.ActivityStreamTelemetry;
 import org.mozilla.gecko.home.HomePager;
 import org.mozilla.gecko.util.DrawableUtil;
 
 import java.util.EnumSet;
 
 public class StreamTitleRow extends StreamViewHolder {
     public static final int LAYOUT_ID = R.layout.activity_stream_main_highlightstitle;
 
@@ -41,16 +44,22 @@ public class StreamTitleRow extends Stre
         final ImageView titleArrow = (ImageView) itemView.findViewById(R.id.arrow_link);
         titleArrow.setImageDrawable(DrawableUtil.tintDrawableWithColorRes(itemView.getContext(), R.drawable.menu_item_more, R.color.ob_click));
         titleArrow.setVisibility(View.VISIBLE);
 
         final View.OnClickListener clickListener = new View.OnClickListener() {
             @Override
             public void onClick(View view) {
                 onUrlOpenListener.onUrlOpen(url, EnumSet.of(HomePager.OnUrlOpenListener.Flags.ALLOW_SWITCH_TO_TAB));
+
+                ActivityStreamTelemetry.Extras.Builder extras = ActivityStreamTelemetry.Extras.builder()
+                        .set(ActivityStreamTelemetry.Contract.SOURCE_TYPE, ActivityStreamTelemetry.Contract.TYPE_POCKET)
+                        .set(ActivityStreamTelemetry.Contract.ITEM, ActivityStreamTelemetry.Contract.ITEM_LINK_MORE);
+
+                Telemetry.sendUIEvent(TelemetryContract.Event.ACTION, TelemetryContract.Method.BUTTON, extras.build());
             }
         };
 
         titleLink.setOnClickListener(clickListener);
         titleArrow.setOnClickListener(clickListener);
     }
 
     private static void hideView(final View itemView) {
--- a/mobile/android/docs/activitystreamtelemetry.rst
+++ b/mobile/android/docs/activitystreamtelemetry.rst
@@ -78,16 +78,29 @@ For "loadurl.1" event, the following ext
 
 .. code-block:: js
 
     extras: {
         ...
         "count": number, /* total number of stories displayed */
     }
 
+One event type is recorded for interaction with the Top Stories section title UI:
+1) User clicks on the "MORE" link in the Top Stories section title: event="action.1", method="button"
+
+In addition to global extras, the following information is included:
+
+.. code-block:: js
+
+    extras: {
+        ...
+        "source_type": "pocket",
+        "item": "link_more"
+    }
+
 Highlight interactions
 ----------------------
 Two event types are recorded:
 
 1) User clicked on a Highlight: event="loadurl.1", method="listitem"
 2) User clicked on the menu button: event="show.1", method="contextmenu"
 
 For both event types, in addition to global extras, the following information is recorded: