Skip to content

Commit 9c8cfb6

Browse files
committed
Add percentages to Channels, Sources, and UTM reports
1 parent 67ce345 commit 9c8cfb6

2 files changed

Lines changed: 28 additions & 13 deletions

File tree

assets/js/dashboard/stats/sources/source-list.js

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,10 @@ function AllSources({ afterFetchData }) {
7070
function chooseMetrics() {
7171
return [
7272
metrics.createVisitors({ meta: { plot: true } }),
73-
hasConversionGoalFilter(query) && metrics.createConversionRate()
73+
!hasConversionGoalFilter(query) &&
74+
metrics.createPercentage({ meta: { showOnHover: true } }),
75+
hasConversionGoalFilter(query) &&
76+
metrics.createConversionRate({ meta: { showOnHover: true } })
7477
].filter((metric) => !!metric)
7578
}
7679

@@ -106,7 +109,10 @@ function Channels({ onClick, afterFetchData }) {
106109
function chooseMetrics() {
107110
return [
108111
metrics.createVisitors({ meta: { plot: true } }),
109-
hasConversionGoalFilter(query) && metrics.createConversionRate()
112+
!hasConversionGoalFilter(query) &&
113+
metrics.createPercentage({ meta: { showOnHover: true } }),
114+
hasConversionGoalFilter(query) &&
115+
metrics.createConversionRate({ meta: { showOnHover: true } })
110116
].filter((metric) => !!metric)
111117
}
112118

@@ -154,7 +160,10 @@ function UTMSources({ tab, afterFetchData }) {
154160
function chooseMetrics() {
155161
return [
156162
metrics.createVisitors({ meta: { plot: true } }),
157-
hasConversionGoalFilter(query) && metrics.createConversionRate()
163+
!hasConversionGoalFilter(query) &&
164+
metrics.createPercentage({ meta: { showOnHover: true } }),
165+
hasConversionGoalFilter(query) &&
166+
metrics.createConversionRate({ meta: { showOnHover: true } })
158167
].filter((metric) => !!metric)
159168
}
160169

@@ -241,7 +250,7 @@ export default function SourceList() {
241250
}
242251

243252
return (
244-
<div>
253+
<div className="group/report overflow-x-hidden">
245254
{/* Header Container */}
246255
<div className="w-full flex justify-between">
247256
<div className="flex gap-x-1">

lib/plausible_web/controllers/api/stats_controller.ex

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,9 @@ defmodule PlausibleWeb.Api.StatsController do
475475
pagination = parse_pagination(params)
476476

477477
extra_metrics =
478-
if params["detailed"], do: [:bounce_rate, :visit_duration], else: []
478+
if params["detailed"],
479+
do: [:percentage, :bounce_rate, :visit_duration],
480+
else: [:percentage]
479481

480482
metrics =
481483
breakdown_metrics(query,
@@ -513,7 +515,9 @@ defmodule PlausibleWeb.Api.StatsController do
513515
pagination = parse_pagination(params)
514516

515517
extra_metrics =
516-
if params["detailed"], do: [:bounce_rate, :visit_duration], else: []
518+
if params["detailed"],
519+
do: [:percentage, :bounce_rate, :visit_duration],
520+
else: [:percentage]
517521

518522
metrics =
519523
breakdown_metrics(query,
@@ -606,7 +610,7 @@ defmodule PlausibleWeb.Api.StatsController do
606610

607611
metrics =
608612
breakdown_metrics(query,
609-
extra_metrics: [:bounce_rate, :visit_duration],
613+
extra_metrics: [:percentage, :bounce_rate, :visit_duration],
610614
include_revenue?: !!params["detailed"]
611615
)
612616

@@ -641,7 +645,7 @@ defmodule PlausibleWeb.Api.StatsController do
641645

642646
metrics =
643647
breakdown_metrics(query,
644-
extra_metrics: [:bounce_rate, :visit_duration],
648+
extra_metrics: [:percentage, :bounce_rate, :visit_duration],
645649
include_revenue?: !!params["detailed"]
646650
)
647651

@@ -676,7 +680,7 @@ defmodule PlausibleWeb.Api.StatsController do
676680

677681
metrics =
678682
breakdown_metrics(query,
679-
extra_metrics: [:bounce_rate, :visit_duration],
683+
extra_metrics: [:percentage, :bounce_rate, :visit_duration],
680684
include_revenue?: !!params["detailed"]
681685
)
682686

@@ -711,7 +715,7 @@ defmodule PlausibleWeb.Api.StatsController do
711715

712716
metrics =
713717
breakdown_metrics(query,
714-
extra_metrics: [:bounce_rate, :visit_duration],
718+
extra_metrics: [:percentage, :bounce_rate, :visit_duration],
715719
include_revenue?: !!params["detailed"]
716720
)
717721

@@ -746,7 +750,7 @@ defmodule PlausibleWeb.Api.StatsController do
746750

747751
metrics =
748752
breakdown_metrics(query,
749-
extra_metrics: [:bounce_rate, :visit_duration],
753+
extra_metrics: [:percentage, :bounce_rate, :visit_duration],
750754
include_revenue?: !!params["detailed"]
751755
)
752756

@@ -781,7 +785,7 @@ defmodule PlausibleWeb.Api.StatsController do
781785

782786
metrics =
783787
breakdown_metrics(query,
784-
extra_metrics: [:bounce_rate, :visit_duration],
788+
extra_metrics: [:percentage, :bounce_rate, :visit_duration],
785789
include_revenue?: !!params["detailed"]
786790
)
787791

@@ -873,7 +877,9 @@ defmodule PlausibleWeb.Api.StatsController do
873877
pagination = parse_pagination(params)
874878

875879
extra_metrics =
876-
if params["detailed"], do: [:bounce_rate, :visit_duration], else: []
880+
if params["detailed"],
881+
do: [:percentage, :bounce_rate, :visit_duration],
882+
else: [:percentage]
877883

878884
metrics =
879885
breakdown_metrics(query,

0 commit comments

Comments
 (0)