[iOS] add stats for crown and pp gallery

This commit is contained in:
Aleksey Belouosv 2019-09-19 14:56:45 +03:00 committed by Aleksey Belousov
parent 624f98208a
commit 128744fb8e
7 changed files with 48 additions and 14 deletions

View file

@ -17,6 +17,7 @@ import SafariServices
@objc var onSubscribe: MWMVoidBlock?
@objc var onCancel: MWMVoidBlock?
@objc var source: String = kStatWebView
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
get { return [.portrait] }
@ -71,7 +72,7 @@ import SafariServices
Statistics.logEvent(kStatInappShow, withParameters: [kStatVendor: MWMPurchaseManager.bookmarksSubscriptionVendorId(),
kStatPurchase: MWMPurchaseManager.bookmarksSubscriptionServerId(),
kStatProduct: BOOKMARKS_SUBSCRIPTION_YEARLY_PRODUCT_ID,
kStatFrom: kStatBanner], with: .realtime)
kStatFrom: source], with: .realtime)
InAppPurchase.bookmarksSubscriptionManager.getAvailableSubscriptions { [weak self] (subscriptions, error) in
guard let subscriptions = subscriptions, subscriptions.count == 2 else {
MWMAlertViewController.activeAlert().presentInfoAlert(L("price_error_title"),

View file

@ -71,6 +71,7 @@ extern NSString * const kAlohalyticsTapEventKey;
[NSLayoutConstraint activateConstraints:
@[[self.crownButton.leftAnchor constraintEqualToAnchor:self.trafficButton.view.leftAnchor constant:-4],
[self.crownButton.topAnchor constraintEqualToAnchor:self.sideButtons.view.topAnchor]]];
[Statistics logEvent:kStatMapCrownButtonShow withParameters:@{kStatTarget : kStatGuidesSubscription}];
}
return self;
}
@ -304,6 +305,7 @@ extern NSString * const kAlohalyticsTapEventKey;
}
- (void)onCrown:(UIButton *)sender {
[Statistics logEvent:kStatMapCrownButtonClick withParameters:@{kStatTarget : kStatGuidesSubscription}];
BookmarksSubscriptionViewController *controller = [[BookmarksSubscriptionViewController alloc] init];
controller.onSubscribe = ^{
MapViewController *mapViewController = self.ownerController;
@ -322,6 +324,8 @@ extern NSString * const kAlohalyticsTapEventKey;
[self.ownerController dismissViewControllerAnimated:YES completion:nil];
};
controller.source = kStatSponsoredButton;
[self.ownerController presentViewController:controller animated:YES completion:^{
self.crownButton.hidden = YES;
}];

View file

@ -203,6 +203,7 @@ static NSString * const kStatGuestHouse = @"guestHouse";
static NSString * const kStatGuidesBookmarkSelect = @"Bookmarks_BookmarksList_Bookmark_select";
static NSString * const kStatGuidesShown = @"Bookmarks_Downloaded_Guides_list";
static NSString * const kStatGuidesOpen = @"Bookmarks_Downloaded_Guide_open";
static NSString * const kStatGuidesSubscription = @"GuidesSubscription";
static NSString * const kStatGuidesTrackSelect = @"Bookmarks_BookmarksList_Track_select";
static NSString * const kStatHasAuthorization = @"has_auth";
static NSString * const kStatHelp = @"Help";
@ -246,6 +247,8 @@ static NSString * const kStatLocation = @"Location";
static NSString * const kStatLogout = @"Logout";
static NSString * const kStatMakeInvisibleOnMap = @"make_invisible_on_map";
static NSString * const kStatMap = @"map";
static NSString * const kStatMapCrownButtonShow = @"Map_SponsoredButton_show";
static NSString * const kStatMapCrownButtonClick = @"Map_SponsoredButton_click";
static NSString * const kStatMapDataSize = @"map_data_size";
static NSString * const kStatMapSearch = @"Map search";
static NSString * const kStatMapViewStyle = @"Map view style";
@ -310,6 +313,8 @@ static NSString * const kStatOverview = @"overview";
static NSString * const kStatPedestrian = @"Pedestrian";
static NSString * const kStatPhone = @"Phone";
static NSString * const kStatPlacePage = @"placepage";
static NSString * const kStatPlacePageToponims = @"placepage_large_toponyms";
static NSString * const kStatPlacePageSightSeeing = @"placepage_sightseeings";
static NSString * const kStatPlacePageBannerBlank = @"Placepage_Banner_blank";
static NSString * const kStatPlacePageBannerClick = @"Placepage_Banner_click";
static NSString * const kStatPlacePageBannerError = @"Placepage_Banner_error";
@ -441,6 +446,7 @@ static NSString * const kStatSimplifiedColors = @"Simplified colors scheme";
static NSString * const kStatSocial = @"Social";
static NSString * const kStatSource = @"Source";
static NSString * const kStatSponsor = @"sponsor";
static NSString * const kStatSponsoredButton = @"sponsored_button";
static NSString * const kStatStart = @"Start";
static NSString * const kStatState = @"state";
static NSString * const kStatSwapRoutingPoints = @"Swap routing points";
@ -449,6 +455,7 @@ static NSString * const kStatTTSSettings = @"TTS settings";
static NSString * const kStatTab = @"tab";
static NSString * const kStatTable = @"Table";
static NSString * const kStatTags = @"tags";
static NSString * const kStatTarget = @"target";
static NSString * const kStatTaxi = @"Taxi";
static NSString * const kStatThingsToDo = @"Things to do";
static NSString * const kStatTipsTricksClick = @"TipsTricks_click";
@ -501,6 +508,7 @@ static NSString * const kStatVendor = @"vendor";
static NSString * const kStatVezet = @"Vezet";
static NSString * const kStatViewOnMap = @"view_on_map";
static NSString * const kStatVisible = @"Visible";
static NSString * const kStatWebView = @"webview";
static NSString * const kStatWhatsNew = @"What's New";
static NSString * const kStatWifi = @"wifi";
static NSString * const kStatYandex = @"Yandex";

View file

@ -269,6 +269,8 @@ using NewSectionsAreReady = void (^)(NSRange const & range, MWMPlacePageData * d
- (BOOL)isPartner;
- (BOOL)isHolidayObject;
- (BOOL)isPromoCatalog;
- (BOOL)isLargeToponim;
- (BOOL)isSightseeing;
- (BOOL)isBookingSearch;
- (BOOL)isHTMLDescription;
- (BOOL)isMyPosition;

View file

@ -826,8 +826,9 @@ NSString * const kUserDefaultsLatLonAsDMSKey = @"UserDefaultsLatLonAsDMS";
- (BOOL)isOpentable { return m_info.GetSponsoredType() == SponsoredType::Opentable; }
- (BOOL)isPartner { return m_info.GetSponsoredType() == SponsoredType::Partner; }
- (BOOL)isHolidayObject { return m_info.GetSponsoredType() == SponsoredType::Holiday; }
- (BOOL)isPromoCatalog { return m_info.GetSponsoredType() == SponsoredType::PromoCatalogCity
|| m_info.GetSponsoredType() == SponsoredType::PromoCatalogSightseeings; }
- (BOOL)isPromoCatalog { return self.isLargeToponim || self.isSightseeing; }
- (BOOL)isLargeToponim { return m_info.GetSponsoredType() == SponsoredType::PromoCatalogCity; }
- (BOOL)isSightseeing { return m_info.GetSponsoredType() == SponsoredType::PromoCatalogSightseeings; }
- (BOOL)isBookingSearch { return !m_info.GetBookingSearchUrl().empty(); }
- (BOOL)isMyPosition { return m_info.IsMyPosition(); }
- (BOOL)isHTMLDescription { return strings::IsHTML(GetPreferredBookmarkStr(m_info.GetBookmarkData().m_description)); }
@ -907,8 +908,9 @@ NSString * const kUserDefaultsLatLonAsDMSKey = @"UserDefaultsLatLonAsDMS";
[Statistics logEvent:kStatPlacepageSponsoredShow
withParameters:@{
kStatProvider: kStatMapsmeGuides,
kStatPlacement: kStatPlacePage,
kStatState: kStatOnline
kStatPlacement: self.isLargeToponim ? kStatPlacePageToponims : kStatPlacePageSightSeeing,
kStatState: kStatOnline,
kStatCount: @(cityGallery.m_items.size())
}];
if (self.refreshPromoCallback) {
self.refreshPromoCallback();
@ -920,7 +922,7 @@ NSString * const kUserDefaultsLatLonAsDMSKey = @"UserDefaultsLatLonAsDMS";
[Statistics logEvent:kStatPlacepageSponsoredError
withParameters:@{
kStatProvider: kStatMapsmeGuides,
kStatPlacement: kStatPlacePage,
kStatPlacement: self.isLargeToponim ? kStatPlacePageToponims : kStatPlacePageSightSeeing,
kStatError: kStatDownloadError
}];
if (self.refreshPromoCallback) {

View file

@ -29,7 +29,7 @@
}
@IBAction func onMoreButton(_ sender: UIButton) {
onView?()
onMore?()
}
@IBAction func onCatalogButton(_ sender: UIButton) {

View file

@ -646,15 +646,32 @@ std::map<MetainfoRows, Class> const kMetaInfoCells = {
[tableView dequeueReusableCellWithCellClass:CatalogSingleItemCell.class indexPath:indexPath];
CatalogPromoItem *item = [[CatalogPromoItem alloc] initWithCoreItem:[data.promoGallery galleryItemAtIndex:0]];
[cell config:item];
cell.onMore = ^{
[tableView beginUpdates];
[tableView endUpdates];
};
__weak __typeof(self) ws = self;
cell.onMore = ^{
__strong __typeof(self) self = ws;
[Statistics logEvent:kStatPlacepageSponsoredItemSelected
withParameters:@{
kStatProvider: kStatMapsmeGuides,
kStatPlacement: kStatPlacePageSightSeeing,
kStatItem: @(0),
kStatDestination: kStatCatalogue
}];
NSURL *url = [NSURL URLWithString:item.catalogUrl];
NSURL *patchedUrl = [[MWMBookmarksManager sharedManager] injectCatalogUTMContent:url content:MWMUTMContentMore];
[self.delegate openCatalogForURL:patchedUrl];
};
cell.onView = ^{
__strong __typeof(self) self = ws;
[Statistics logEvent:kStatPlacepageSponsoredItemSelected
withParameters:@{
kStatProvider: kStatMapsmeGuides,
kStatPlacement: kStatPlacePageSightSeeing,
kStatItem: @(0),
kStatDestination: kStatCatalogue
}];
NSURL *url = [NSURL URLWithString:item.catalogUrl];
[self.delegate openCatalogForURL:url];
NSURL *patchedUrl = [[MWMBookmarksManager sharedManager] injectCatalogUTMContent:url content:MWMUTMContentView];
[self.delegate openCatalogForURL:patchedUrl];
};
return cell;
} else {
@ -901,7 +918,7 @@ std::map<MetainfoRows, Class> const kMetaInfoCells = {
[Statistics logEvent:kStatPlacepageSponsoredMoreSelected
withParameters:@{
kStatProvider: kStatMapsmeGuides,
kStatPlacement: kStatPlacePage
kStatPlacement: self.data.isLargeToponim ? kStatPlacePageToponims : kStatPlacePageSightSeeing,
}];
} else {
promo::CityGallery::Item const &item = [self.data.promoGallery galleryItemAtIndex:indexPath.row];
@ -914,7 +931,7 @@ std::map<MetainfoRows, Class> const kMetaInfoCells = {
[Statistics logEvent:kStatPlacepageSponsoredItemSelected
withParameters:@{
kStatProvider: kStatMapsmeGuides,
kStatPlacement: kStatPlacePage,
kStatPlacement: self.data.isLargeToponim ? kStatPlacePageToponims : kStatPlacePageSightSeeing,
kStatItem: @(indexPath.item + 1),
kStatDestination: kStatCatalogue
}];