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

Exclude (not set) city and country from reports. #9943

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from

Conversation

ankitrox
Copy link
Collaborator

Summary

Addresses issue:

Relevant technical choices

PR Author Checklist

  • My code is tested and passes existing unit tests.
  • My code has an appropriate set of unit tests which all pass.
  • My code is backward-compatible with WordPress 5.2 and PHP 7.4.
  • My code follows the WordPress coding standards.
  • My code has proper inline documentation.
  • I have added a QA Brief on the issue linked above.
  • I have signed the Contributor License Agreement (see https://cla.developers.google.com/).

Do not alter or remove anything below. The following sections will be managed by moderators only.

Code Reviewer Checklist

  • Run the code.
  • Ensure the acceptance criteria are satisfied.
  • Reassess the implementation with the IB.
  • Ensure no unrelated changes are included.
  • Ensure CI checks pass.
  • Check Storybook where applicable.
  • Ensure there is a QA Brief.
  • Ensure there are no unexpected significant changes to file sizes.

Merge Reviewer Checklist

  • Ensure the PR has the correct target branch.
  • Double-check that the PR is okay to be merged.
  • Ensure the corresponding issue has a ZenHub release assigned.
  • Add a changelog message to the issue.

Copy link

github-actions bot commented Dec 23, 2024

Build files for 4e851a3 are ready:

Copy link

github-actions bot commented Dec 23, 2024

Size Change: -4 B (0%)

Total Size: 1.98 MB

Filename Size Change
./dist/assets/js/43-********************.js 3.12 kB -1 B (-0.03%)
./dist/assets/js/googlesitekit-activation-********************.js 24.1 kB +3 B (+0.01%)
./dist/assets/js/googlesitekit-ad-blocking-recovery-********************.js 54.1 kB +1 B (0%)
./dist/assets/js/googlesitekit-adminbar-********************.js 34.7 kB +1 B (0%)
./dist/assets/js/googlesitekit-api-********************.js 10.1 kB -3 B (-0.03%)
./dist/assets/js/googlesitekit-components-gm2-********************.js 6.17 kB -3 B (-0.05%)
./dist/assets/js/googlesitekit-components-gm3-********************.js 10.1 kB +1 B (+0.01%)
./dist/assets/js/googlesitekit-datastore-forms-********************.js 8.97 kB +1 B (+0.01%)
./dist/assets/js/googlesitekit-datastore-location-********************.js 2.09 kB +2 B (+0.1%)
./dist/assets/js/googlesitekit-datastore-ui-********************.js 10 kB +1 B (+0.01%)
./dist/assets/js/googlesitekit-datastore-user-********************.js 28.1 kB +1 B (0%)
./dist/assets/js/googlesitekit-entity-dashboard-********************.js 81.3 kB -26 B (-0.03%)
./dist/assets/js/googlesitekit-main-dashboard-********************.js 166 kB -3 B (0%)
./dist/assets/js/googlesitekit-metric-selection-********************.js 52 kB -1 B (0%)
./dist/assets/js/googlesitekit-modules-********************.js 22.3 kB -1 B (0%)
./dist/assets/js/googlesitekit-modules-adsense-********************.js 119 kB +1 B (0%)
./dist/assets/js/googlesitekit-modules-analytics-4-********************.js 191 kB +82 B (+0.04%)
./dist/assets/js/googlesitekit-modules-pagespeed-insights-********************.js 22.6 kB -10 B (-0.04%)
./dist/assets/js/googlesitekit-modules-reader-revenue-manager-********************.js 43.2 kB -9 B (-0.02%)
./dist/assets/js/googlesitekit-modules-search-console-********************.js 69 kB -4 B (-0.01%)
./dist/assets/js/googlesitekit-modules-tagmanager-********************.js 32.3 kB -1 B (0%)
./dist/assets/js/googlesitekit-notifications-********************.js 36.9 kB -38 B (-0.1%)
./dist/assets/js/googlesitekit-polyfills-********************.js 378 B +1 B (+0.27%)
./dist/assets/js/googlesitekit-settings-********************.js 127 kB -4 B (0%)
./dist/assets/js/googlesitekit-vendor-********************.js 322 kB +3 B (0%)
./dist/assets/js/googlesitekit-widgets-********************.js 102 kB +4 B (0%)
./dist/assets/js/googlesitekit-wp-dashboard-********************.js 63.2 kB -3 B (0%)
./dist/assets/js/runtime-********************.js 1.4 kB +1 B (+0.07%)
ℹ️ View Unchanged
Filename Size
./dist/assets/css/googlesitekit-admin-css-********************.min.css 62.1 kB
./dist/assets/css/googlesitekit-adminbar-css-********************.min.css 11.8 kB
./dist/assets/css/googlesitekit-authorize-application-css-********************.min.css 846 B
./dist/assets/css/googlesitekit-wp-dashboard-css-********************.min.css 8.26 kB
./dist/assets/js/33-********************.js 2.76 kB
./dist/assets/js/34-********************.js 2.25 kB
./dist/assets/js/35-********************.js 3.64 kB
./dist/assets/js/36-********************.js 936 B
./dist/assets/js/37-********************.js 892 B
./dist/assets/js/38-********************.js 1.61 kB
./dist/assets/js/39-********************.js 1.57 kB
./dist/assets/js/40-********************.js 1.61 kB
./dist/assets/js/41-********************.js 1.59 kB
./dist/assets/js/42-********************.js 1.83 kB
./dist/assets/js/analytics-advanced-tracking-********************.js 901 B
./dist/assets/js/googlesitekit-consent-mode-********************.js 25.6 kB
./dist/assets/js/googlesitekit-data-********************.js 2.37 kB
./dist/assets/js/googlesitekit-datastore-site-********************.js 20.2 kB
./dist/assets/js/googlesitekit-events-provider-contact-form-7-********************.js 646 B
./dist/assets/js/googlesitekit-events-provider-easy-digital-downloads-********************.js 624 B
./dist/assets/js/googlesitekit-events-provider-mailchimp-********************.js 630 B
./dist/assets/js/googlesitekit-events-provider-ninja-forms-********************.js 712 B
./dist/assets/js/googlesitekit-events-provider-optin-monster-********************.js 675 B
./dist/assets/js/googlesitekit-events-provider-popup-maker-********************.js 634 B
./dist/assets/js/googlesitekit-events-provider-woocommerce-********************.js 657 B
./dist/assets/js/googlesitekit-events-provider-wpforms-********************.js 633 B
./dist/assets/js/googlesitekit-i18n-********************.js 3.93 kB
./dist/assets/js/googlesitekit-modules-ads-********************.js 35.6 kB
./dist/assets/js/googlesitekit-modules-sign-in-with-google-********************.js 31 kB
./dist/assets/js/googlesitekit-splash-********************.js 68.6 kB
./dist/assets/js/googlesitekit-user-input-********************.js 43.7 kB

compressed-size-action

Copy link
Collaborator

@techanvil techanvil left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @ankitrox, this needs a revision, please see my comments.

@@ -79,15 +79,15 @@ const ANALYTICS_4_DIMENSION_OPTIONS = {
'United States',
'United Kingdom',
'India',
'(not set)',
'Portugal',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please revert this change. We still want to mock the (not set) value being returned in the mock report data, as we don't filter it out in all of our reports.

Suggested change
'Portugal',
'(not set)',

'France',
'Ukraine',
'Italy',
'Mexico',
],
city: [
'Dublin',
'(not set)',
'Mumbai',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As above:

Suggested change
'Mumbai',
'(not set)',

Comment on lines 55 to 62
dimensionFilters: {
city: {
filterType: 'stringFilter',
matchType: 'EXACT',
value: '(not set)',
notExpression: true,
},
},
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not the correct approach and doesn't follow the IB.

In fact, this filtering approach is what was specified in the original IB, and it won't meet the AC for the reasons discussed in #7884 (comment).

Please review the IB and amend the implementation appropriately.

Comment on lines 55 to 62
dimensionFilters: {
country: {
filterType: 'stringFilter',
matchType: 'EXACT',
value: '(not set)',
notExpression: true,
},
},
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The same comment applies here as the one for the TopCitiesWidget.

@ankitrox ankitrox closed this Jan 3, 2025
@ankitrox ankitrox force-pushed the enhancement/7884-remove-not-set-key-metrics branch from aa8171d to a4cdb3a Compare January 3, 2025 04:55
@ankitrox ankitrox reopened this Jan 3, 2025
Copy link
Collaborator

@techanvil techanvil left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @ankitrox, that's working nicely. There's one more update needed, please see my comment.

Comment on lines 89 to 98
const filteredCities = ( cityRows ) =>
cityRows.some(
( { dimensionValues } ) =>
dimensionValues[ 0 ].value === '(not set)'
)
? cityRows.filter(
( { dimensionValues } ) =>
dimensionValues[ 0 ].value !== '(not set)'
)
: cityRows.slice( 0, 3 );
Copy link
Collaborator

@techanvil techanvil Jan 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As per this comment, #7884 (comment), we should create a reusable function for this logic, please can you lift this out as a common helper and reuse it in TopCountriesWidget.

As well as making it generic, we can simplify it a bit, e.g.:

function reportRowsWithSetValues( rows, maxRows = 3 ) {
	const rowsWithSetValues = rows.filter(
		( { dimensionValues } ) =>
			dimensionValues[ 0 ].value !== '(not set)'
	);

	return rowsWithSetValues.slice( 0, maxRows );
}

@ankitrox
Copy link
Collaborator Author

ankitrox commented Jan 3, 2025

Thank you @techanvil . I have created a separated utility function so that we can use it in both places. Also added tests for the function.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants