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

Enhancement/#8144 - Handle “new visitors” and “returning visitors” to avoid the “partial data” state #9232

Merged
merged 47 commits into from
Sep 10, 2024

Conversation

hussain-t
Copy link
Collaborator

@hussain-t hussain-t commented Aug 23, 2024

Summary

Addresses issue:

Relevant technical choices

  • This PR addresses the error states for the "new" and "returning" visitors reports for displaying the full-width error widget.

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.

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 Aug 23, 2024

Build files for 357eea2 have been deleted.

Copy link

github-actions bot commented Aug 23, 2024

Size Change: +8.4 kB (+0.47%)

Total Size: 1.81 MB

Filename Size Change
./dist/assets/js/googlesitekit-activation-********************.js 23.8 kB +15 B (+0.06%)
./dist/assets/js/googlesitekit-ad-blocking-recovery-********************.js 73.1 kB +1.72 kB (+2.42%)
./dist/assets/js/googlesitekit-adminbar-********************.js 34.5 kB +50 B (+0.15%)
./dist/assets/js/googlesitekit-api-********************.js 9.97 kB -3 B (-0.03%)
./dist/assets/js/googlesitekit-components-gm2-********************.js 5.97 kB +1 B (+0.02%)
./dist/assets/js/googlesitekit-components-gm3-********************.js 10.1 kB -6 B (-0.06%)
./dist/assets/js/googlesitekit-datastore-forms-********************.js 8.95 kB +1 B (+0.01%)
./dist/assets/js/googlesitekit-datastore-location-********************.js 2.08 kB -1 B (-0.05%)
./dist/assets/js/googlesitekit-datastore-site-********************.js 20.3 kB -18 B (-0.09%)
./dist/assets/js/googlesitekit-datastore-user-********************.js 26.1 kB -16 B (-0.06%)
./dist/assets/js/googlesitekit-entity-dashboard-********************.js 83.3 kB +284 B (+0.34%)
./dist/assets/js/googlesitekit-main-dashboard-********************.js 156 kB +1.01 kB (+0.65%)
./dist/assets/js/googlesitekit-modules-********************.js 22.1 kB +1 B (0%)
./dist/assets/js/googlesitekit-modules-ads-********************.js 32.8 kB +2 B (+0.01%)
./dist/assets/js/googlesitekit-modules-adsense-********************.js 125 kB +249 B (+0.2%)
./dist/assets/js/googlesitekit-modules-analytics-4-********************.js 169 kB +701 B (+0.42%)
./dist/assets/js/googlesitekit-modules-pagespeed-insights-********************.js 22.5 kB +24 B (+0.11%)
./dist/assets/js/googlesitekit-modules-reader-revenue-manager-********************.js 21.7 kB +10 B (+0.05%)
./dist/assets/js/googlesitekit-modules-search-console-********************.js 58.6 kB +37 B (+0.06%)
./dist/assets/js/googlesitekit-modules-tagmanager-********************.js 32 kB +10 B (+0.03%)
./dist/assets/js/googlesitekit-notifications-********************.js 18.5 kB -5 B (-0.03%)
./dist/assets/js/googlesitekit-polyfills-********************.js 378 B +1 B (+0.27%)
./dist/assets/js/googlesitekit-settings-********************.js 83.3 kB +341 B (+0.41%)
./dist/assets/js/googlesitekit-splash-********************.js 91 kB +1.61 kB (+1.8%)
./dist/assets/js/googlesitekit-user-input-********************.js 64.7 kB +1.69 kB (+2.68%)
./dist/assets/js/googlesitekit-vendor-********************.js 321 kB +12 B (0%)
./dist/assets/js/googlesitekit-widgets-********************.js 86.2 kB +590 B (+0.69%)
./dist/assets/js/googlesitekit-wp-dashboard-********************.js 61.8 kB +92 B (+0.15%)
./dist/assets/js/runtime-********************.js 1.3 kB +2 B (+0.15%)
ℹ️ View Unchanged
Filename Size
./dist/assets/css/googlesitekit-admin-css-********************.min.css 57.5 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.2 kB
./dist/assets/js/31-********************.js 2.76 kB
./dist/assets/js/32-********************.js 2.25 kB
./dist/assets/js/33-********************.js 3.64 kB
./dist/assets/js/34-********************.js 935 B
./dist/assets/js/35-********************.js 892 B
./dist/assets/js/36-********************.js 3.12 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-ui-********************.js 9.91 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

compressed-size-action

Copy link
Collaborator

@benbowler benbowler left a comment

Choose a reason for hiding this comment

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

Hey @hussain-t, the PR and code looks good, great use of a hook to split out the complex queries from this already complex component.

I've add a couple of small comments below, LMK your thoughts.

@benbowler
Copy link
Collaborator

Thanks @hussain-t, I resolved the conflicts with the useInViewSelect work as I was working on that ticket and moving to MR once the checks pass.

@@ -311,7 +311,7 @@ ViewOnlyNoDimensions.args = {
viewContext: VIEW_CONTEXT_MAIN_DASHBOARD_VIEW_ONLY,
setupRegistry: ( registry ) => {
registry.dispatch( MODULES_ANALYTICS_4 ).setSettings( {
availableAudiences: null,
availableAudiences: [],
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Mocking with a null value breaks the story.

const audience = availableAudiences.find(
( { name } ) => name === audienceResourceName
);

Screenshot 2024-09-09 at 4 28 44 PM

@hussain-t
Copy link
Collaborator Author

Thanks for the valuable feedback, @techanvil. I've addressed them.

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 @hussain-t, thanks for the update.

However, when I tested it, filtering for audienceResourceName or newVsReturning in the network tab to verify the correct reports were being made, I found it still wasn't behaving as expected.

Digging in I realised this IB point hadn't been covered and it had simply escaped me the first time round:

Fetch the top cities, top content and top content titles for siteKitAudienceResourceNames separately with dimensionFilters set to newVsReturning.

I also noticed getConfiguredSiteKitAndOtherAudiences() was misnamed so giving unexpected results when trying to use it here.

So, it turned out to still need a fair bit of work. To help move this along I've got stuck into this myself and have got it to a point where it's working in my testing.

I've pushed the changes, please take a look, and if you're happy then wrap it up from here, there are a few JS tests that need to be fixed, and a failing VRT test, once these are done it should be good to go 🤞

@hussain-t
Copy link
Collaborator Author

Thanks so much for the fixes, @techanvil. I have made a couple of minor fixes and fixed the failing tests. Please note that VRT keeps failing randomly upon several attempts.

@techanvil
Copy link
Collaborator

Thanks so much for the fixes, @techanvil. I have made a couple of minor fixes and fixed the failing tests. Please note that VRT keeps failing randomly upon several attempts.

No problem @hussain-t. I've also taken a look at the VRT and realised it needed an update so I've pushed that as well to move this along. I also updated a JS test which was sometimes failing for me locally.

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.

This is now LGTM, thanks @hussain-t.

@techanvil techanvil merged commit 0023bde into develop Sep 10, 2024
16 of 21 checks passed
@techanvil techanvil deleted the enhancement/#8144-handle-new-and-returning-visitors branch September 10, 2024 19:03
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.

3 participants