Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Metric Widget Groups #9510

Open
wants to merge 2 commits into
base: enhancement/9162-top-device-driving-purchases-kmw
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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,
},
};
};
Expand Down
21 changes: 21 additions & 0 deletions assets/js/components/KeyMetrics/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -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',
};
35 changes: 35 additions & 0 deletions assets/js/components/KeyMetrics/key-metrics-widgets.js
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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 ]: {
Expand All @@ -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: __(
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -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' ),
Expand All @@ -474,6 +508,7 @@ const KEY_METRICS_WIDGETS = {
'generate_lead',
],
displayInList: shouldDisplayWidgetWithConversionEvent,
metadata: { group: KEY_METRICS_GROUP_GENERATING_LEADS.SLUG },
},
};

Expand Down