Wp-calypso: Woo-Connect Insights: StatsNavigation refactor

Created on 30 May 2017  Â·  13Comments  Â·  Source: Automattic/wp-calypso

Current Store Stats Navigation

screen shot 2017-05-30 at 2 23 43 pm

To Do

  • [ ] Adjust padding or figure out a way to reuse elements of my-sites/stats/stats-navigation.
  • [ ] Change Store/Site to Revenue/Traffic.
  • [ ] Move Followers Count.

@raoulwegat are there designs for the newly placed followers count?

Extensions Store [Status] Blocked / Hold [Type] Enhancement

Most helpful comment

Followers are a highly valuable metric for anyone with a blog, and we did a disservice for a long time in not providing that number front and clear. It should be one of the most visible ones, which is why it was placed temporarily on the top bar.

This feels wrong to me, because the the Follower count is a total, not an activity that can be sliced by time period.

It depends how it's done. We have an initial design in #10347 (still open), reposting for ease of access:

0ab2f4b4-df3b-11e6-9072-56721bd64770

This should be fairly straightforward to build as we made it within the constraints of the current API (which is bad, but, let's start somewhere simple!) :D

All 13 comments

Not yet. You'll have it here first thing tomorrow.

The natural place to add the Followers count is as a module on Traffic under the main chart. Because the default view is Day, that would mean as a module on the Day tab with all the other Day stats. This feels wrong to me, because the the Follower count is a total, not an activity that can be sliced by time period. Having it there would be an anomaly. Have a look what I mean:

trafficview-followers

On the other hand, there's always been two perfectly good modules for Follower stats under the Insights tab. Our Followers Support page doesn't even mention the Followers count we're removing – only the Insights tab, so I'm confident we don't actually need to replace the removed followers count.

cc @folletto for your opinion.

Followers are a highly valuable metric for anyone with a blog, and we did a disservice for a long time in not providing that number front and clear. It should be one of the most visible ones, which is why it was placed temporarily on the top bar.

This feels wrong to me, because the the Follower count is a total, not an activity that can be sliced by time period.

It depends how it's done. We have an initial design in #10347 (still open), reposting for ease of access:

0ab2f4b4-df3b-11e6-9072-56721bd64770

This should be fairly straightforward to build as we made it within the constraints of the current API (which is bad, but, let's start somewhere simple!) :D

@folletto Thanks for your knowledge/insight. And pardon the pun :D

@folletto Just to clarify the +19:

From above, "shows how many people new have been added today".

From the parent issue the last bullet point has, "Returns total count".

Could you clarify this for me? Cheers.

@folletto Also, while I have your attention. When looking at the "Day" stats screen, where in the hierarchy of modules should Followers belong? Front and center at top left?

screen shot 2017-06-12 at 9 10 14 am

@psealock from what was explained to me, the API returns total count of followers AND up to 20 individual names. By just counting the items returned we know if the today count is anything between 1-19. If it returns 20 names, we can't know if it's exactly 20 or more than 20, so we change the visualization to >20.
It's visualized in the right side of the design above. :)

In terms of position, it probably requires some more opinions. I agree on your take: place it above Countries, top-left.

@folletto

the API returns total count of followers AND up to 20 individual names.

After digging around, your understanding is correct. However, the API does not accept a time period, e.g. some kind of query parameter ?date=2017-06-12&unit="week". The data returned is for all time. At the moment, the list of 20 (or less) remains static.

This means, to include a Followers stats widget reflecting a day, week, or year will require some API work. Seeing as this needs to happen anyway, perhaps its a good time to revisit the ideas in your brainstorm, https://github.com/Automattic/wp-calypso/issues/10347#issuecomment-270387993.

I'm not suggesting a complex UI, especially for a first version, but it will be worth examining where we'd like the widget to be so the API work can reflect that and can be done in a single pass (hopefully 😄).

For example, this comment by @timmyc https://github.com/Automattic/wp-calypso/issues/10347#issuecomment-273595590

Based upon the prior conversation, it sounds like we need to show the following:

* Total # wpcom followers
* Total # Email Followers
* Publicize Followers
* And a sum of the above 3

The last two bullets points are not currently in the response.

The data returned is for all time. At the moment, the list of 20 (or less) remains static.

_* bashes head on wall *_

Seeing as this needs to happen anyway

Ok, if we're doing API changes, I agree: let's try to be exhaustive. :D
We can build the API and the UI in parallel too, se we can tweak, before launching both. Which I think it's what you're suggesting too.

I'm not suggesting a complex UI, especially for a first version

Agreed.

I'd say:

  1. The API should be able to retrieve data for all the Stats tabs (Insight, Day, Week, Month, Year).
  2. It should be possible to define a timeframe, or "all" (Insight)

So, building on the comment you reported, assuming the API can be framed by timeframe, it might return something like:

  • Total new WPCom followers array for each day/week/month/year (timeframe, doesn't show if no timeframe is specified, "All")
  • Total new Email followers array for each day/week/month/year (timeframe, doesn't show if no timeframe is specified, "All")
  • Total new Publicize followers array for each day/week/month/year (timeframe, doesn't show if no timeframe is specified, "All")
  • Total WPCom followers
  • Total Email followers
  • Total Publicize followers
  • List of all followers in the timeframe, capped at 20 (followers containing name, avatar, URL, follow status, date and time of following start)
  • Paginated to retrieve more followers in the timeframe

I'm working mostly from the mock you linked above... Does it make sense?

The only question remaining for me (always given the mock above) is how the API should provide data to show the graph. I guess should do something similar to the other endpoints right?

Does it make sense?

I think so.

  • List of all followers in the timeframe, capped at 20 (followers containing name, avatar, URL, follow status, date and time of following start)
  • Paginated to retrieve more followers in the timeframe

This will can be for the next iteration, but perhaps its best to build out the API now.

Just for clarity, here is an example single data point returned for a timeframe of "day".

{
    wpcom_total: 36,
    email_total: 7,
    publicize_total: 3,
    data: [
        {
            period: '2017-06-20',
            wpcom: 3,
            email: 2,
            publicize: 0,
        }
    ]
}

This can be used to render our widget which updates depending on the selected bar

img_7212 copy

@westi Is this enough to get started on?

@westi Is this enough to get started on?

Yes, it is. I will work on the API in the background ready for the UI to happen in the next iteration.

I looked into the API and the infeasibility of changing it, notes in p8vlZR-dO-p2

Closing. New stats navigation redone in https://github.com/Automattic/wp-calypso/pull/17590

Was this page helpful?
0 / 5 - 0 ratings