google / site-kit-wp

Site Kit is a one-stop solution for WordPress users to use everything Google has to offer to make them successful on the web.
https://sitekit.withgoogle.com
Apache License 2.0
1.25k stars 291 forks source link

Show more informative messages on dashboard-details screen if there is no data #467

Open felixarntz opened 5 years ago

felixarntz commented 5 years ago

Feature Description

The blue CTAs for when there's no data for a page should provide more contextual information, partly based on new checks.

This will require both changes in wording and a few new logic bits.

Here is a current screenshot:

Screenshot 2019-08-27 at 11 51 02

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

Acceptance criteria

Implementation Brief

Changelog entry

marrrmarrr commented 4 years ago

@felixarntz updated the text. For the "recently created" cases, could we increase the time frame to 2 (or even 3) days? Especially for SC, it's unlikely there will be enough data in 2 days to show something meaningful.

aaemnnosttv commented 4 years ago

Looks like a good start here @felixarntz - a few questions for you:

Add Context::is_site_new(), which queries posts (of any public post type) to get the oldest post and checks if its creation date is not older than 1 day.

Similar to the needs of hasConnectedAdmins I think we should implement an option to store this value in so we don't trigger unnecessary DB queries for the oldest post on every Site Kit page load.

The selector should require accountID and propertyID, as parsing the account ID is not fully correct

  1. How was this missed!? 🤯
  2. I still think that this selector shouldn't need the account ID as a parameter because it should only ever belong to a single account (even if it is moved). If properties were keyed by propertyID rather than accountID::propertyID we could grab it with state.properties[ propertyID ]. Nevertheless, I understand the accountID is necessary to make the request to the new datapoint though so I suppose this is okay 👍

Aside from that, this would still result in many widgets on the page rendering the same message in a blue CTA component, would it not? Maybe it would be better to conditionally render the entire widget area rather than specific widgets that are all likely to show the same CTA? Is there a case where some widgets should still be shown in an area which is inherently tied to some data? I don't recall if this was ever discussed in an issue before but I feel like there was a desire to render some alternate layout with less duplication of "no data" in known no data states.

mxbclang commented 3 years ago

Noting here that it would be great to revisit this as we do get many support topics asking for more details about these messages.

marrrmarrr commented 3 years ago

Thanks @bethanylang! Could you share some of the support topics to see what exactly people are confused about? @aaemnnosttv I'm working with Aaron on the zero-state dashboard, but this is still in early UXD stages. In the meantime, it would be great to surface clearer messages. @felixarntz does anything change in terms of widget rendering here given all the refactoring of JS APIs and components that's been completed in the meantime? How big of a lift is this?

mxbclang commented 3 years ago

@marrrmarrr Sure thing!

As you can see, there seems to be some concern that something is "wrong" based upon the "gathering data" messages, as opposed to this being a message indicating that things are connected, but data is not yet available. Felix mentioned on a meeting yesterday that it might be helpful to provide some more personalized detail here if possible, i.e. "Analytics was successfully connected on DD/MM/YYYY. It takes a few days to collect data for display here. Please check back later."

eclarke1 commented 3 years ago

@felixarntz @marrrmarrr I spotted this ticket in the Backlog column as a P0. I presume this will actually relate to the work we want to complete in the new Zero Data States epic. Should we consider this together rather than progressing with this ticket, and then doing UX on Zero Data States afterwards?

felixarntz commented 3 years ago

@eclarke1 Good point. The main focus of this issue is to implement logic and provide more specific messaging for why there may not be data available (e.g. Analytics property was just created, site has no content yet etc.).

I'd say it's decoupled from the UX work in the epic, but it does make sense to consider it together. This one would actually be a good candidate for a small PRD and design doc, so I wonder whether we should still treat it as its own epic (e.g. "Tailored zero state messages"), since none of the two parts needs to block the other one at all. Thoughts @marrrmarrr?

We haven't prioritized this for Q3 though, maybe we should look into it for Q4. Technically, this issue has been stalled for a while, so I'll now finally mark it as such.

eclarke1 commented 3 years ago

@felixarntz that's really great o understand thank you. I will create a new epic in Asana and add to the backlog for "Tailored zero state messages" and we can certainly consider it's priority for Q4. Good to know the "Zero data states" epic is separate also, and they do not block each other.

marrrmarrr commented 3 years ago

@felixarntz do you mean this would involve changes in the logic of displaying all zero states?

felixarntz commented 3 years ago

@marrrmarrr Yes, it would be about adding logic to get more helpful messages on why there might be a certain zero state. Instead of just saying "You have no data" it could based on additional logic include notes like: