[statistics] Bookmarks sort and search statistics added.

This commit is contained in:
Daria Volvenkova 2019-09-02 21:31:49 +03:00 committed by Aleksey Belousov
parent 5731aaef9a
commit f3ca2d2dc2
6 changed files with 119 additions and 0 deletions

View file

@ -296,6 +296,7 @@ public class BookmarksListFragment extends BaseMwmRecyclerFragment<BookmarkListA
{
if (!isAdded() || !mToolbarController.hasQuery() || mLastQueryTimestamp != timestamp)
return;
trackBookmarksSearch();
mLastQueryTimestamp = 0;
mToolbarController.showProgress(false);
updateSearchResults(bookmarkIds);
@ -506,6 +507,8 @@ public class BookmarksListFragment extends BaseMwmRecyclerFragment<BookmarkListA
return;
case BookmarkListAdapter.TYPE_BOOKMARK:
if (getAdapter().isSearchResults())
trackBookmarksSearchResultSelected();
final Bookmark bookmark = (Bookmark) adapter.getItem(position);
i.putExtra(MwmActivity.EXTRA_TASK,
new Factory.ShowBookmarkTask(bookmark.getCategoryId(), bookmark.getBookmarkId()));
@ -717,6 +720,16 @@ public class BookmarksListFragment extends BaseMwmRecyclerFragment<BookmarkListA
Statistics.INSTANCE.trackBookmarkListSharingOptions();
}
private void trackBookmarksSearch()
{
Statistics.INSTANCE.trackBookmarksSearch(Statistics.ParamValue.BOOKMARKS_LIST);
}
private void trackBookmarksSearchResultSelected()
{
Statistics.INSTANCE.trackBookmarksSearchResultSelected(Statistics.ParamValue.BOOKMARKS_LIST);
}
@SuppressWarnings("ConstantConditions")
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)

View file

@ -16,6 +16,7 @@ import com.mapswithme.maps.R;
import com.mapswithme.maps.base.BaseMwmDialogFragment;
import com.mapswithme.maps.bookmarks.data.BookmarkManager;
import com.mapswithme.util.UiUtils;
import com.mapswithme.util.statistics.Statistics;
public class ChooseBookmarksSortingTypeFragment extends BaseMwmDialogFragment
implements RadioGroup.OnCheckedChangeListener
@ -129,6 +130,7 @@ public class ChooseBookmarksSortingTypeFragment extends BaseMwmDialogFragment
{
if (mListener != null)
mListener.onResetSorting();
trackBookmarksListResetSort();
dismiss();
}
@ -136,6 +138,7 @@ public class ChooseBookmarksSortingTypeFragment extends BaseMwmDialogFragment
{
if (mListener != null)
mListener.onSort(sortingType);
trackBookmarksListSort(sortingType);
dismiss();
}
@ -158,4 +161,29 @@ public class ChooseBookmarksSortingTypeFragment extends BaseMwmDialogFragment
break;
}
}
@NonNull
private String getStatisticsSortingType(@BookmarkManager.SortingType int sortingType)
{
switch (sortingType)
{
case BookmarkManager.SORT_BY_TYPE:
return Statistics.ParamValue.BY_TYPE;
case BookmarkManager.SORT_BY_DISTANCE:
return Statistics.ParamValue.BY_DISTANCE;
case BookmarkManager.SORT_BY_TIME:
return Statistics.ParamValue.BY_DATE;
}
throw new AssertionError("Invalid sorting type");
}
private void trackBookmarksListSort(@BookmarkManager.SortingType int sortingType)
{
Statistics.INSTANCE.trackBookmarksListSort(getStatisticsSortingType(sortingType));
}
private void trackBookmarksListResetSort()
{
Statistics.INSTANCE.trackBookmarksListSort(Statistics.ParamValue.BY_DEFAULT);
}
}

View file

@ -211,6 +211,24 @@ public enum Statistics
trackEvent(EventName.BM_BOOKMARKS_LIST_SETTINGS_CLICK, builder);
}
public void trackBookmarksListSort(@NonNull String value)
{
ParameterBuilder builder = new ParameterBuilder().add(EventParam.OPTION, value);
trackEvent(EventName.BM_BOOKMARKS_LIST_SORT, builder);
}
public void trackBookmarksSearch(@NonNull String value)
{
ParameterBuilder builder = new ParameterBuilder().add(EventParam.FROM, value);
trackEvent(EventName.BM_BOOKMARKS_SEARCH, builder);
}
public void trackBookmarksSearchResultSelected(@NonNull String value)
{
ParameterBuilder builder = new ParameterBuilder().add(EventParam.FROM, value);
trackEvent(EventName.BM_BOOKMARKS_SEARCH_RESULT_SELECTED, builder);
}
private void trackEditSettingsScreenOptionClick(@NonNull String value)
{
ParameterBuilder builder = new ParameterBuilder().add(OPTION, value);
@ -307,6 +325,9 @@ public enum Statistics
public static final String BM_EDIT_SETTINGS_CONFIRM = "Bookmarks_Bookmark_Settings_confirm";
public static final String BM_BOOKMARKS_LIST_SETTINGS_CLICK = "Bookmarks_BookmarksList_settings_click";
public static final String BM_BOOKMARKS_LIST_ITEM_SETTINGS = "Bookmarks_BookmarksListItem_settings";
public static final String BM_BOOKMARKS_LIST_SORT = "Bookmarks_BookmarksList_sort";
public static final String BM_BOOKMARKS_SEARCH = "Bookmarks_Search";
public static final String BM_BOOKMARKS_SEARCH_RESULT_SELECTED = "Bookmarks_Search_result_selected";
public static final String BM_GROUP_CREATED = "Bookmark. Group created";
public static final String BM_GROUP_CHANGED = "Bookmark. Group changed";
public static final String BM_COLOR_CHANGED = "Bookmark. Color changed";
@ -659,6 +680,11 @@ public enum Statistics
public static final String DELETE_GROUP = "delete_group";
public static final String OFFSCREEEN = "Offscreen";
public static final String MAPSME_GUIDES = "MapsMeGuides";
public static final String BY_DEFAULT = "Default";
public static final String BY_DATE = "Date";
public static final String BY_DISTANCE = "Distance";
public static final String BY_TYPE = "Type";
public static final String BOOKMARKS_LIST = "BookmarksList";
static final String PARTNER = "Partner";
}

View file

@ -397,6 +397,9 @@ using namespace std;
handler:^(UIAlertAction *_Nonnull action) {
auto &bm = GetFramework().GetBookmarkManager();
bm.SetLastSortingType(self.categoryId, type);
auto const option = [BookmarksVC statisticsSortingOption:type];
[Statistics logEvent:kStatBookmarksListSort
withParameters:@{kStatOption: option}];
[self sort:type];
}]];
}
@ -404,6 +407,8 @@ using namespace std;
[actionSheet addAction:[UIAlertAction actionWithTitle:L(@"sort_default")
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *_Nonnull action) {
[Statistics logEvent:kStatBookmarksListSort
withParameters:@{kStatOption: kStatSortByDefault}];
[self sortDefault];
}]];
@ -603,6 +608,18 @@ using namespace std;
UNREACHABLE();
}
+ (NSString *)statisticsSortingOption:(BookmarkManager::SortingType)type {
switch (type) {
case BookmarkManager::SortingType::ByTime:
return kStatSortByDate;
case BookmarkManager::SortingType::ByDistance:
return kStatSortByDistance;
case BookmarkManager::SortingType::ByType:
return kStatSortByType;
}
UNREACHABLE();
}
#pragma mark - UISearchBarDelegate
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
@ -666,6 +683,8 @@ using namespace std;
}
[self.tableView reloadData];
[Statistics logEvent:kStatBookmarksSearch withParameters:@{kStatFrom : kStatBookmarksList}];
};
[self showSpinner:YES];
@ -706,6 +725,8 @@ using namespace std;
// Remove cell selection
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
[[self currentSections][indexPath.section] didSelectRow:indexPath.row];
if (self.searchSections != nil)
[Statistics logEvent:kStatBookmarksSearchResultSelected withParameters:@{kStatFrom : kStatBookmarksList}];
[self.searchBar resignFirstResponder];
[self.navigationController popToRootViewControllerAnimated:NO];
}

View file

@ -57,6 +57,14 @@ static NSString * const kStatBookmarksSyncSuccess = @"Bookmarks_sync_success";
static NSString * const kStatBookmarksListItemSettings = @"Bookmarks_BookmarksListItem_settings";
static NSString * const kStatBookmarksListItemMoreClick = @"Bookmarks_BookmarksListItem_More_click";
static NSString * const kStatBookmarksListSettingsClick = @"Bookmarks_BookmarksList_settings_click";
static NSString * const kStatBookmarksListSort = @"Bookmarks_BookmarksList_sort";
static NSString * const kStatSortByDefault = @"Default";
static NSString * const kStatSortByDate = @"Date";
static NSString * const kStatSortByDistance = @"Distance";
static NSString * const kStatSortByType = @"Type";
static NSString * const kStatBookmarksSearch = @"Bookmarks_Search";
static NSString * const kStatBookmarksSearchResultSelected = @"Bookmarks_Search_result_selected";
static NSString * const kStatBookmarksList = @"BookmarksList";
static NSString * const kStatBuildRoute = @"Build route";
static NSString * const kStatButton = @"button";
static NSString * const kStatCallPhoneNumber = @"Call phone number";

View file

@ -75,6 +75,28 @@ m2::RectD GetRectAroundPosition(m2::PointD const & position)
return MercatorBounds::RectByCenterXYAndSizeInMeters(position, kMaxPositionRadiusM);
}
string GetStatisticsMode(SearchParams const & params)
{
switch (params.m_mode)
{
case Mode::Everywhere:
case Mode::Viewport:
return "Main";
case Mode::Downloader:
return "Downloader";
case Mode::Bookmarks:
if (params.m_bookmarksGroupId != bookmarks::kInvalidGroupId)
return "BookmarksList";
return "Bookmarks";
break;
case Mode::Count:
CHECK(false, ());
return "";
break;
}
UNREACHABLE();
}
void SendStatistics(SearchParams const & params, m2::RectD const & viewport, Results const & res)
{
@ -100,6 +122,7 @@ void SendStatistics(SearchParams const & params, m2::RectD const & viewport, Res
{"query", params.m_query},
{"locale", params.m_inputLocale},
{"results", resultString},
{"from", GetStatisticsMode(params)}
};
alohalytics::LogEvent("searchEmitResultsAndCoords", stats);
GetPlatform().GetMarketingService().SendMarketingEvent(marketing::kSearchEmitResultsAndCoords, {});