diff --git a/assets/js/components/KeyMetrics/MetricsSelectionPanel/MetricItems.js b/assets/js/components/KeyMetrics/MetricsSelectionPanel/MetricItems.js index 3a635d9332a..dd13824ec4a 100644 --- a/assets/js/components/KeyMetrics/MetricsSelectionPanel/MetricItems.js +++ b/assets/js/components/KeyMetrics/MetricsSelectionPanel/MetricItems.js @@ -67,13 +67,18 @@ export default function MetricItems( { savedMetrics } ) { return acc; } - const { title, description } = KEY_METRICS_WIDGETS[ metricSlug ]; + const { + title, + description, + metadata: { group }, + } = KEY_METRICS_WIDGETS[ metricSlug ]; return { ...acc, [ metricSlug ]: { title, description, + group, }, }; }; diff --git a/assets/js/components/KeyMetrics/constants.js b/assets/js/components/KeyMetrics/constants.js index 8563f98058f..12f769fc542 100644 --- a/assets/js/components/KeyMetrics/constants.js +++ b/assets/js/components/KeyMetrics/constants.js @@ -23,3 +23,24 @@ export const KEY_METRICS_SELECTION_FORM = 'key-metrics-selection-form'; export const KEY_METRICS_SELECTED = 'key-metrics-selected'; export const MIN_SELECTED_METRICS_COUNT = 2; export const MAX_SELECTED_METRICS_COUNT = 4; + +export const KEY_METRICS_GROUP_VISITORS = { + SLUG: 'visitors', + LABEL: 'Visitors', +}; +export const KEY_METRICS_GROUP_DRIVING_TRAFFIC = { + SLUG: 'drivingTraffic', + LABEL: 'Driving traffic', +}; +export const KEY_METRICS_GROUP_GENERATING_LEADS = { + SLUG: 'generatingLeads', + LABEL: 'Generating leads', +}; +export const KEY_METRICS_GROUP_SELLING_PRODUCTS = { + SLUG: 'sellingProducts', + LABEL: 'Selling products', +}; +export const KEY_METRICS_GROUP_CONTENT_PERFORMANCE = { + SLUG: 'contentPerformance', + LABEL: 'Content performance', +}; diff --git a/assets/js/components/KeyMetrics/key-metrics-widgets.js b/assets/js/components/KeyMetrics/key-metrics-widgets.js index 3bfe5f21ef2..e3b1d9f0675 100644 --- a/assets/js/components/KeyMetrics/key-metrics-widgets.js +++ b/assets/js/components/KeyMetrics/key-metrics-widgets.js @@ -59,6 +59,13 @@ import { CORE_SITE } from '../../googlesitekit/datastore/site/constants'; import { MODULES_ANALYTICS_4 } from '../../modules/analytics-4/datastore/constants'; import { CORE_MODULES } from '../../googlesitekit/modules/datastore/constants'; import { shouldDisplayWidgetWithConversionEvent } from './shouldDisplayWidgetWithConversionEvent'; +import { + KEY_METRICS_GROUP_CONTENT_PERFORMANCE, + KEY_METRICS_GROUP_DRIVING_TRAFFIC, + KEY_METRICS_GROUP_GENERATING_LEADS, + KEY_METRICS_GROUP_SELLING_PRODUCTS, + KEY_METRICS_GROUP_VISITORS, +} from './constants'; /** * Determines whether to show a widget the requires Analytics 4 and AdSense to be linked. @@ -143,6 +150,7 @@ const KEY_METRICS_WIDGETS = { 'google-site-kit' ), displayInList: shouldDisplayWidgetWithAnalytics4AndAdSenseLinked, + metadata: { group: KEY_METRICS_GROUP_CONTENT_PERFORMANCE.SLUG }, }, [ KM_ANALYTICS_TOP_RECENT_TRENDING_PAGES ]: { title: __( 'Top recent trending pages', 'google-site-kit' ), @@ -156,6 +164,7 @@ const KEY_METRICS_WIDGETS = { ), requiredCustomDimensions: [ 'googlesitekit_post_date' ], displayInList: shouldDisplayWidgetWithCustomDimensions, + metadata: { group: KEY_METRICS_GROUP_CONTENT_PERFORMANCE.SLUG }, }, [ KM_ANALYTICS_POPULAR_AUTHORS ]: { title: __( 'Most popular authors by pageviews', 'google-site-kit' ), @@ -169,6 +178,7 @@ const KEY_METRICS_WIDGETS = { ), requiredCustomDimensions: [ 'googlesitekit_post_author' ], displayInList: shouldDisplayWidgetWithCustomDimensions, + metadata: { group: KEY_METRICS_GROUP_CONTENT_PERFORMANCE.SLUG }, }, [ KM_ANALYTICS_TOP_CATEGORIES ]: { title: __( 'Top categories by pageviews', 'google-site-kit' ), @@ -182,6 +192,7 @@ const KEY_METRICS_WIDGETS = { ), requiredCustomDimensions: [ 'googlesitekit_post_categories' ], displayInList: shouldDisplayWidgetWithCustomDimensions, + metadata: { group: KEY_METRICS_GROUP_CONTENT_PERFORMANCE.SLUG }, }, [ KM_ANALYTICS_POPULAR_CONTENT ]: { title: __( 'Most popular content by pageviews', 'google-site-kit' ), @@ -193,6 +204,7 @@ const KEY_METRICS_WIDGETS = { 'Pages your visitors read the most', 'google-site-kit' ), + metadata: { group: KEY_METRICS_GROUP_CONTENT_PERFORMANCE.SLUG }, }, [ KM_ANALYTICS_POPULAR_PRODUCTS ]: { title: __( 'Most popular products by pageviews', 'google-site-kit' ), @@ -205,6 +217,7 @@ const KEY_METRICS_WIDGETS = { select( CORE_USER ).isKeyMetricActive( KM_ANALYTICS_POPULAR_PRODUCTS ) || select( CORE_SITE ).getProductPostType(), + metadata: { group: KEY_METRICS_GROUP_SELLING_PRODUCTS.SLUG }, }, [ KM_ANALYTICS_PAGES_PER_VISIT ]: { title: __( 'Pages per visit', 'google-site-kit' ), @@ -216,6 +229,7 @@ const KEY_METRICS_WIDGETS = { 'Number of pages visitors viewed per session on average', 'google-site-kit' ), + metadata: { group: KEY_METRICS_GROUP_VISITORS.SLUG }, }, [ KM_ANALYTICS_VISIT_LENGTH ]: { title: __( 'Visit length', 'google-site-kit' ), @@ -227,6 +241,7 @@ const KEY_METRICS_WIDGETS = { 'Average duration of engaged visits', 'google-site-kit' ), + metadata: { group: KEY_METRICS_GROUP_VISITORS.SLUG }, }, [ KM_ANALYTICS_VISITS_PER_VISITOR ]: { title: __( 'Visits per visitor', 'google-site-kit' ), @@ -238,6 +253,7 @@ const KEY_METRICS_WIDGETS = { 'Average number of sessions per site visitor', 'google-site-kit' ), + metadata: { group: KEY_METRICS_GROUP_VISITORS.SLUG }, }, [ KM_ANALYTICS_MOST_ENGAGING_PAGES ]: { title: __( 'Most engaging pages', 'google-site-kit' ), @@ -249,6 +265,7 @@ const KEY_METRICS_WIDGETS = { 'Pages with the highest engagement rate', 'google-site-kit' ), + metadata: { group: KEY_METRICS_GROUP_CONTENT_PERFORMANCE.SLUG }, }, [ KM_ANALYTICS_LEAST_ENGAGING_PAGES ]: { title: __( 'Least engaging pages', 'google-site-kit' ), @@ -260,6 +277,7 @@ const KEY_METRICS_WIDGETS = { 'Percentage of visitors that left without engagement with your site', 'google-site-kit' ), + metadata: { group: KEY_METRICS_GROUP_CONTENT_PERFORMANCE.SLUG }, }, [ KM_ANALYTICS_TOP_RETURNING_VISITOR_PAGES ]: { title: __( 'Top pages by returning visitors', 'google-site-kit' ), @@ -271,6 +289,7 @@ const KEY_METRICS_WIDGETS = { 'Pages that attracted the most returning visitors', 'google-site-kit' ), + metadata: { group: KEY_METRICS_GROUP_VISITORS.SLUG }, }, [ KM_ANALYTICS_NEW_VISITORS ]: { title: __( 'New visitors', 'google-site-kit' ), @@ -282,6 +301,7 @@ const KEY_METRICS_WIDGETS = { 'Portion of visitors who visited your site for the first time in this timeframe', 'google-site-kit' ), + metadata: { group: KEY_METRICS_GROUP_VISITORS.SLUG }, }, [ KM_ANALYTICS_RETURNING_VISITORS ]: { title: __( 'Returning visitors', 'google-site-kit' ), @@ -293,6 +313,7 @@ const KEY_METRICS_WIDGETS = { 'Portion of your site’s visitors that returned at least once in this timeframe', 'google-site-kit' ), + metadata: { group: KEY_METRICS_GROUP_VISITORS.SLUG }, }, [ KM_ANALYTICS_TOP_TRAFFIC_SOURCE ]: { @@ -305,6 +326,7 @@ const KEY_METRICS_WIDGETS = { 'Channel (e.g. social, paid, search) that brought in the most visitors to your site', 'google-site-kit' ), + metadata: { group: KEY_METRICS_GROUP_DRIVING_TRAFFIC.SLUG }, }, [ KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_ADD_TO_CART ]: { title: __( @@ -321,6 +343,7 @@ const KEY_METRICS_WIDGETS = { ), requiredConversionEventName: [ 'add_to_cart' ], displayInList: shouldDisplayWidgetWithConversionEvent, + metadata: { group: KEY_METRICS_GROUP_SELLING_PRODUCTS.SLUG }, }, [ KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_LEADS ]: { title: __( 'Top traffic source driving leads', 'google-site-kit' ), @@ -338,6 +361,7 @@ const KEY_METRICS_WIDGETS = { 'generate_lead', ], displayInList: shouldDisplayWidgetWithConversionEvent, + metadata: { group: KEY_METRICS_GROUP_GENERATING_LEADS.SLUG }, }, [ KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_PURCHASES ]: { title: __( 'Top traffic source driving purchases', 'google-site-kit' ), @@ -351,6 +375,7 @@ const KEY_METRICS_WIDGETS = { ), requiredConversionEventName: [ 'purchase' ], displayInList: shouldDisplayWidgetWithConversionEvent, + metadata: { group: KEY_METRICS_GROUP_SELLING_PRODUCTS.SLUG }, }, [ KM_ANALYTICS_ENGAGED_TRAFFIC_SOURCE ]: { title: __( 'Most engaged traffic source', 'google-site-kit' ), @@ -362,6 +387,7 @@ const KEY_METRICS_WIDGETS = { 'Channel (e.g. social, paid, search) that brought in the most visitors who had a meaningful engagement with your site', 'google-site-kit' ), + metadata: { group: KEY_METRICS_GROUP_DRIVING_TRAFFIC.SLUG }, }, [ KM_ANALYTICS_TOP_CONVERTING_TRAFFIC_SOURCE ]: { title: __( 'Top converting traffic source', 'google-site-kit' ), @@ -373,6 +399,7 @@ const KEY_METRICS_WIDGETS = { 'Channel (e.g. social, paid, search) that brought in visitors who generated the most conversions', 'google-site-kit' ), + metadata: { group: KEY_METRICS_GROUP_DRIVING_TRAFFIC.SLUG }, }, [ KM_ANALYTICS_TOP_CITIES ]: { title: __( 'Top cities driving traffic', 'google-site-kit' ), @@ -384,6 +411,7 @@ const KEY_METRICS_WIDGETS = { 'The cities where most of your visitors came from', 'google-site-kit' ), + metadata: { group: KEY_METRICS_GROUP_DRIVING_TRAFFIC.SLUG }, }, [ KM_ANALYTICS_TOP_CITIES_DRIVING_LEADS ]: { title: __( 'Top cities driving leads', 'google-site-kit' ), @@ -401,6 +429,7 @@ const KEY_METRICS_WIDGETS = { 'generate_lead', ], displayInList: shouldDisplayWidgetWithConversionEvent, + metadata: { group: KEY_METRICS_GROUP_GENERATING_LEADS.SLUG }, }, [ KM_ANALYTICS_TOP_CITIES_DRIVING_ADD_TO_CART ]: { title: __( 'Top cities driving add to cart', 'google-site-kit' ), @@ -413,6 +442,7 @@ const KEY_METRICS_WIDGETS = { 'google-site-kit' ), requiredConversionEventName: [ 'add_to_cart' ], + metadata: { group: KEY_METRICS_GROUP_SELLING_PRODUCTS.SLUG }, }, [ KM_ANALYTICS_TOP_CITIES_DRIVING_PURCHASES ]: { title: __( 'Top cities driving purchases', 'google-site-kit' ), @@ -426,6 +456,7 @@ const KEY_METRICS_WIDGETS = { ), requiredConversionEventName: [ 'purchase' ], displayInList: shouldDisplayWidgetWithConversionEvent, + metadata: { group: KEY_METRICS_GROUP_SELLING_PRODUCTS.SLUG }, }, [ KM_ANALYTICS_TOP_DEVICE_DRIVING_PURCHASES ]: { title: __( 'Top device driving purchases', 'google-site-kit' ), @@ -439,6 +470,7 @@ const KEY_METRICS_WIDGETS = { ), requiredConversionEventName: [ 'purchase' ], displayInList: shouldDisplayWidgetWithConversionEvent, + metadata: { group: KEY_METRICS_GROUP_SELLING_PRODUCTS.SLUG }, }, [ KM_ANALYTICS_TOP_COUNTRIES ]: { title: __( 'Top countries driving traffic', 'google-site-kit' ), @@ -450,6 +482,7 @@ const KEY_METRICS_WIDGETS = { 'The countries where most of your visitors came from', 'google-site-kit' ), + metadata: { group: KEY_METRICS_GROUP_DRIVING_TRAFFIC.SLUG }, }, [ KM_SEARCH_CONSOLE_POPULAR_KEYWORDS ]: { title: __( 'Top performing keywords', 'google-site-kit' ), @@ -461,6 +494,7 @@ const KEY_METRICS_WIDGETS = { 'The top search queries for your site by highest clickthrough rate', 'google-site-kit' ), + metadata: { group: KEY_METRICS_GROUP_DRIVING_TRAFFIC.SLUG }, }, [ KM_ANALYTICS_TOP_PAGES_DRIVING_LEADS ]: { title: __( 'Top pages driving leads', 'google-site-kit' ), @@ -474,6 +508,7 @@ const KEY_METRICS_WIDGETS = { 'generate_lead', ], displayInList: shouldDisplayWidgetWithConversionEvent, + metadata: { group: KEY_METRICS_GROUP_GENERATING_LEADS.SLUG }, }, };