Commit d9c060d1 authored by Becca Hughes's avatar Becca Hughes Committed by Commit Bot

[Media Engagment] Add UKM metrics for playback types

Add two UKM fields to Media.Engagement.SessionFinished to
track the total playbacks from audio contexts and media
elements.

BUG=887619

Change-Id: Icb1ed1300114b09737bab2393b5c3d40e870fc5f
Reviewed-on: https://chromium-review.googlesource.com/c/1236924Reviewed-by: default avatarSteven Holte <holte@chromium.org>
Commit-Queue: Becca Hughes <beccahughes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597149}
parent 7eaee165
...@@ -166,6 +166,8 @@ void MediaEngagementSession::RecordUkmMetrics() { ...@@ -166,6 +166,8 @@ void MediaEngagementSession::RecordUkmMetrics() {
MediaEngagementScore score = MediaEngagementScore score =
service_->CreateEngagementScore(origin_.GetURL()); service_->CreateEngagementScore(origin_.GetURL());
ukm::builders::Media_Engagement_SessionFinished(ukm_source_id_) ukm::builders::Media_Engagement_SessionFinished(ukm_source_id_)
.SetPlaybacks_AudioContextTotal(score.audio_context_playbacks())
.SetPlaybacks_MediaElementTotal(score.media_element_playbacks())
.SetPlaybacks_Total(score.media_playbacks()) .SetPlaybacks_Total(score.media_playbacks())
.SetVisits_Total(score.visits()) .SetVisits_Total(score.visits())
.SetEngagement_Score(round(score.actual_score() * 100)) .SetEngagement_Score(round(score.actual_score() * 100))
......
...@@ -707,6 +707,10 @@ TEST_F(MediaEngagementSessionTest, RecordUkmMetrics) { ...@@ -707,6 +707,10 @@ TEST_F(MediaEngagementSessionTest, RecordUkmMetrics) {
auto* ukm_entry = ukm_entries[0]; auto* ukm_entry = ukm_entries[0];
test_ukm_recorder().ExpectEntrySourceHasUrl(ukm_entry, origin().GetURL()); test_ukm_recorder().ExpectEntrySourceHasUrl(ukm_entry, origin().GetURL());
EXPECT_EQ(0, *test_ukm_recorder().GetEntryMetric(
ukm_entry, Entry::kPlaybacks_AudioContextTotalName));
EXPECT_EQ(1, *test_ukm_recorder().GetEntryMetric(
ukm_entry, Entry::kPlaybacks_MediaElementTotalName));
EXPECT_EQ(1, *test_ukm_recorder().GetEntryMetric( EXPECT_EQ(1, *test_ukm_recorder().GetEntryMetric(
ukm_entry, Entry::kPlaybacks_TotalName)); ukm_entry, Entry::kPlaybacks_TotalName));
EXPECT_EQ(1, *test_ukm_recorder().GetEntryMetric(ukm_entry, EXPECT_EQ(1, *test_ukm_recorder().GetEntryMetric(ukm_entry,
...@@ -733,8 +737,7 @@ TEST_F(MediaEngagementSessionTest, RecordUkmMetrics) { ...@@ -733,8 +737,7 @@ TEST_F(MediaEngagementSessionTest, RecordUkmMetrics) {
ukm_entry, Entry::kEngagement_IsHigh_ChangedName)); ukm_entry, Entry::kEngagement_IsHigh_ChangedName));
} }
SetSignificantMediaElementPlaybackRecordedForSession(session.get(), false); session->RecordSignificantAudioContextPlayback();
session->RecordSignificantMediaElementPlayback();
CommitPendingDataForSession(session.get()); CommitPendingDataForSession(session.get());
RecordUkmMetricsForSession(session.get()); RecordUkmMetricsForSession(session.get());
...@@ -745,6 +748,10 @@ TEST_F(MediaEngagementSessionTest, RecordUkmMetrics) { ...@@ -745,6 +748,10 @@ TEST_F(MediaEngagementSessionTest, RecordUkmMetrics) {
auto* ukm_entry = ukm_entries[1]; auto* ukm_entry = ukm_entries[1];
test_ukm_recorder().ExpectEntrySourceHasUrl(ukm_entry, origin().GetURL()); test_ukm_recorder().ExpectEntrySourceHasUrl(ukm_entry, origin().GetURL());
EXPECT_EQ(1, *test_ukm_recorder().GetEntryMetric(
ukm_entry, Entry::kPlaybacks_AudioContextTotalName));
EXPECT_EQ(1, *test_ukm_recorder().GetEntryMetric(
ukm_entry, Entry::kPlaybacks_MediaElementTotalName));
EXPECT_EQ(2, *test_ukm_recorder().GetEntryMetric( EXPECT_EQ(2, *test_ukm_recorder().GetEntryMetric(
ukm_entry, Entry::kPlaybacks_TotalName)); ukm_entry, Entry::kPlaybacks_TotalName));
EXPECT_EQ(1, *test_ukm_recorder().GetEntryMetric(ukm_entry, EXPECT_EQ(1, *test_ukm_recorder().GetEntryMetric(ukm_entry,
......
...@@ -1769,6 +1769,12 @@ be describing additional metrics about the same event. ...@@ -1769,6 +1769,12 @@ be describing additional metrics about the same event.
be zero. This score is taken from MediaEngagementService. be zero. This score is taken from MediaEngagementService.
</summary> </summary>
</metric> </metric>
<metric name="Playbacks.AudioContextTotal">
<summary>
The total number of significant media playbacks on this origin that came
from WebAudio / AudioContext.
</summary>
</metric>
<metric name="Playbacks.Delta"> <metric name="Playbacks.Delta">
<summary> <summary>
The number of significant media playbacks on this origin during this The number of significant media playbacks on this origin during this
...@@ -1777,6 +1783,12 @@ be describing additional metrics about the same event. ...@@ -1777,6 +1783,12 @@ be describing additional metrics about the same event.
200x140px, is not muted, is playing, etc. 200x140px, is not muted, is playing, etc.
</summary> </summary>
</metric> </metric>
<metric name="Playbacks.MediaElementTotal">
<summary>
The total number of significant media playbacks on this origin that came
from media elements.
</summary>
</metric>
<metric name="Playbacks.SecondsSinceLast"> <metric name="Playbacks.SecondsSinceLast">
<summary> <summary>
The number of seconds between significant media playback on the last visit The number of seconds between significant media playback on the last visit
......
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