Skip to content


New API: getSuggestedValuesForSegment to return top suggested values for a particular segment #3906

mattab opened this Issue · 3 comments

1 participant

Piwik Open Source Analytics member

For the segment editor #2135 and for custom alerts #1486 we need an API that returns the suggested values for a given segment.

The API should be simple to use and fast, and return a plain list of unique strings that have been used for the request segment, to assist users in creating segments.

Piwik Open Source Analytics member

In 35f975a: Fixes #3904:

  • new segment 'siteSearchKeyword' Fixes #3903, #3905:
  • adding few fields in the Live API output to accomodate getSuggestedValuesForSegment
  • renamed other fields for consistency with segment names Fixes #3906:
  • new API: getSuggestedValuesForSegment which returns top suggested values for a particular segment. It uses the Live.getLastVisitsDetails API to fetch the most recently used values, and will show the most used values first

  • Adding tests for everything. The test case actually generates data for all segments so that VisitsSummary.get returns some data for each of the 47 segments being tested returns some data.
    How it works:

    • generate extended data in fixture
    • Tests (1) call getSuggestedValuesForSegment for each segment, check there is some data returned for each segment
    • get the first suggested value from the list,
    • Tests (2) call VisitsSummary.get with this segment value, eg. countryCode==ru.
      • I worked this way for all 47 segments until all tests had some data ==> now we know that all segments have been tested and that the auto suggest works for all segments. TDD FTW!
Piwik Open Source Analytics member

In ea240af: Refs #3906

  • Speeding up the suggestion list by only requesting actions when they are really needed
Piwik Open Source Analytics member

In 3069828: Refs #3906

  • Speeding up the suggestion list by only selecting visitors that have a value set for the requested segment
@mattab mattab added this to the 1.12 - The Great 1.x Backlog milestone
@mattab mattab self-assigned this
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.