diff --git a/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java b/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java index 4d4d27037d..b6b76dafa3 100644 --- a/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java +++ b/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java @@ -1280,8 +1280,9 @@ public class PlacePageView extends NestedScrollView if (hasPromoGallery && policy.canUseNetwork()) { mCatalogPromoRecycler.setAdapter(mCatalogPromoLoadingAdapter); + // TODO: set correct UTM Promo.INSTANCE.nativeRequestCityGallery(policy, mMapObject.getLat(), mMapObject.getLon(), - UTM.UTM_PLACEPAGE_GALLERY); + UTM.UTM_LARGE_TOPONYMS_PLACEPAGE_GALLERY); } else if (hasPromoGallery) { @@ -1296,8 +1297,9 @@ public class PlacePageView extends NestedScrollView { if (policy.canUseNetwork()) { + // TODO: set correct UTM Promo.INSTANCE.nativeRequestCityGallery(policy, mapObject.getLat(), mapObject.getLon(), - UTM.UTM_PLACEPAGE_GALLERY); + UTM.UTM_LARGE_TOPONYMS_PLACEPAGE_GALLERY); mCatalogPromoRecycler.setAdapter(Factory.createCatalogPromoLoadingAdapter()); } } diff --git a/android/src/com/mapswithme/maps/widget/placepage/Sponsored.java b/android/src/com/mapswithme/maps/widget/placepage/Sponsored.java index 44c6e1ad44..d1e16b9a80 100644 --- a/android/src/com/mapswithme/maps/widget/placepage/Sponsored.java +++ b/android/src/com/mapswithme/maps/widget/placepage/Sponsored.java @@ -29,11 +29,11 @@ public final class Sponsored public static final int TYPE_PARTNER = 3; public static final int TYPE_HOLIDAY = 4; public static final int TYPE_PROMO_CATALOG_CITY = 5; - public static final int TYPE_PROMO_CATALOG_POI = 6; + public static final int TYPE_PROMO_CATALOG_SIGHTSEEINGS = 6; @Retention(RetentionPolicy.SOURCE) @IntDef({ TYPE_NONE, TYPE_BOOKING, TYPE_OPENTABLE, TYPE_PARTNER, TYPE_HOLIDAY, - TYPE_PROMO_CATALOG_CITY, TYPE_PROMO_CATALOG_POI }) + TYPE_PROMO_CATALOG_CITY, TYPE_PROMO_CATALOG_SIGHTSEEINGS }) public @interface SponsoredType {} static class FacilityType diff --git a/android/src/com/mapswithme/util/UTM.java b/android/src/com/mapswithme/util/UTM.java index 2f7189b65c..bcac559589 100644 --- a/android/src/com/mapswithme/util/UTM.java +++ b/android/src/com/mapswithme/util/UTM.java @@ -8,8 +8,9 @@ public class UTM { @Retention(RetentionPolicy.SOURCE) @IntDef({ UTM_NONE, UTM_BOOKMARKS_PAGE_CATALOG_BUTTON, UTM_TOOLBAR_BUTTON, - UTM_DOWNLOAD_MWM_BANNER, UTM_PLACEPAGE_GALLERY, UTM_DISCOVERY_PAGE_GALLERY, - UTM_TIPS_AND_TRICKS, UTM_BOOKING_PROMO }) + UTM_DOWNLOAD_MWM_BANNER, UTM_LARGE_TOPONYMS_PLACEPAGE_GALLERY, + UTM_SIGHTSEEINGS_PLACEPAGE_GALLERY, UTM_DISCOVERY_PAGE_GALLERY, + UTM_TIPS_AND_TRICKS, UTM_BOOKING_PROMO, UTM_CROWN_BUTTON }) public @interface UTMType {} // The order of these constants must correspond to C++ enumeration in partners_api/utm.hpp. @@ -17,8 +18,10 @@ public class UTM public static final int UTM_BOOKMARKS_PAGE_CATALOG_BUTTON = 1; public static final int UTM_TOOLBAR_BUTTON = 2; public static final int UTM_DOWNLOAD_MWM_BANNER = 3; - public static final int UTM_PLACEPAGE_GALLERY = 4; - public static final int UTM_DISCOVERY_PAGE_GALLERY = 5; - public static final int UTM_TIPS_AND_TRICKS = 6; - public static final int UTM_BOOKING_PROMO = 7; + public static final int UTM_LARGE_TOPONYMS_PLACEPAGE_GALLERY = 4; + public static final int UTM_SIGHTSEEINGS_PLACEPAGE_GALLERY = 5; + public static final int UTM_DISCOVERY_PAGE_GALLERY = 6; + public static final int UTM_TIPS_AND_TRICKS = 7; + public static final int UTM_BOOKING_PROMO = 8; + public static final int UTM_CROWN_BUTTON = 9; } diff --git a/android/src/com/mapswithme/util/statistics/GalleryPlacement.java b/android/src/com/mapswithme/util/statistics/GalleryPlacement.java index a5e30e0310..6b3ed8c813 100644 --- a/android/src/com/mapswithme/util/statistics/GalleryPlacement.java +++ b/android/src/com/mapswithme/util/statistics/GalleryPlacement.java @@ -1,6 +1,6 @@ package com.mapswithme.util.statistics; -public enum GalleryPlacement +public enum GalleryPlacement { PLACEPAGE, DISCOVERY; diff --git a/android/src/com/mapswithme/util/statistics/Statistics.java b/android/src/com/mapswithme/util/statistics/Statistics.java index 4b846d2a8d..6d65924c02 100644 --- a/android/src/com/mapswithme/util/statistics/Statistics.java +++ b/android/src/com/mapswithme/util/statistics/Statistics.java @@ -1287,8 +1287,8 @@ public enum Statistics return PARTNER; case Sponsored.TYPE_PROMO_CATALOG_CITY: return MAPSME_GUIDES; - case Sponsored.TYPE_PROMO_CATALOG_POI: - // Dummy, fix with correct value when documentation will be done. + case Sponsored.TYPE_PROMO_CATALOG_SIGHTSEEINGS: + // TODO: Dummy, fix with correct value when documentation will be done. return MAPSME_GUIDES; case Sponsored.TYPE_NONE: return "N/A"; diff --git a/iphone/Maps/Bookmarks/Catalog/MWMUTM.h b/iphone/Maps/Bookmarks/Catalog/MWMUTM.h index b852f86a97..803a68072a 100644 --- a/iphone/Maps/Bookmarks/Catalog/MWMUTM.h +++ b/iphone/Maps/Bookmarks/Catalog/MWMUTM.h @@ -4,8 +4,10 @@ typedef NS_ENUM(NSInteger, MWMUTM) { MWMUTMBookmarksPageCatalogButton, MWMUTMToolbarButton, MWMUTMDownloadMwmBanner, - MWMUTMPlacepageGallery, + MWMUTMLargeToponymsPlacepageGallery, + MWMUTMSightseeingsPlacepageGallery, MWMUTMDiscoveryPageGallery, MWMUTMTipsAndTricks, - MWMUTMBookingPromo + MWMUTMBookingPromo, + MWMUTMCrownButton, }; diff --git a/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.mm b/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.mm index 62b5408923..58d496b01a 100644 --- a/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.mm +++ b/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.mm @@ -306,7 +306,7 @@ extern NSString * const kAlohalyticsTapEventKey; BookmarksSubscriptionGoToCatalogViewController *successDialog = [[BookmarksSubscriptionGoToCatalogViewController alloc] initOnOk:^{ [mapViewController dismissViewControllerAnimated:YES completion:nil]; - [mapViewController openCatalogAnimated:YES utm:MWMUTMNone]; + [mapViewController openCatalogAnimated:YES utm:MWMUTMCrownButton]; } onCancel:^{ [mapViewController dismissViewControllerAnimated:YES completion:nil]; }]; @@ -500,7 +500,7 @@ extern NSString * const kAlohalyticsTapEventKey; MWMVoidBlock ok = ^{ auto urlString = afterBooking.promoUrl; auto url = [NSURL URLWithString:urlString]; - [MapViewController.sharedController openCatalogAbsoluteUrl:url animated:YES utm:MWMUTMNone]; + [MapViewController.sharedController openCatalogAbsoluteUrl:url animated:YES utm:MWMUTMBookingPromo]; [self.ownerController dismissViewControllerAnimated:YES completion:nil]; }; diff --git a/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm b/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm index 14c9610bbf..359443994b 100644 --- a/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm +++ b/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm @@ -933,7 +933,8 @@ NSString * const kUserDefaultsLatLonAsDMSKey = @"UserDefaultsLatLonAsDMS"; }; auto appInfo = AppInfo.sharedInfo; auto locale = appInfo.twoLetterLanguageId.UTF8String; - api->GetCityGallery(self.mercator, locale, UTM::PlacepageGallery, resultHandler, errorHandler); + //TODO: set correct UTM + api->GetCityGallery(self.mercator, locale, UTM::LargeToponymsPlacepageGallery, resultHandler, errorHandler); } if (self.refreshPromoCallback) { diff --git a/map/framework.cpp b/map/framework.cpp index 687e3fcb36..96b1222dfe 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -999,12 +999,12 @@ void Framework::FillInfoFromFeatureType(FeatureType & ft, place_page::Info & inf : place_page::OpeningMode::PreviewPlus); info.SetSponsoredType(SponsoredType::PromoCatalogCity); } - else if (ftypes::IsPromoCatalogPoiChecker::Instance()(ft)) + else if (ftypes::IsPromoCatalogSightseeingsChecker::Instance()(ft)) { info.SetOpeningMode(m_routingManager.IsRoutingActive() || !GetPlatform().IsConnected() ? place_page::OpeningMode::Preview : place_page::OpeningMode::PreviewPlus); - info.SetSponsoredType(SponsoredType::PromoCatalogPoi); + info.SetSponsoredType(SponsoredType::PromoCatalogSightseeings); } FillLocalExperts(ft, info); diff --git a/map/place_page_info.hpp b/map/place_page_info.hpp index c90729ad11..2edcd493a0 100644 --- a/map/place_page_info.hpp +++ b/map/place_page_info.hpp @@ -46,7 +46,7 @@ enum class SponsoredType Partner, Holiday, PromoCatalogCity, - PromoCatalogPoi, + PromoCatalogSightseeings, }; enum class LocalAdsStatus diff --git a/map/promo_catalog_poi_checker.hpp b/map/promo_catalog_poi_checker.hpp index 11b3f66a70..1bb7c7020a 100644 --- a/map/promo_catalog_poi_checker.hpp +++ b/map/promo_catalog_poi_checker.hpp @@ -10,17 +10,24 @@ namespace ftypes { class IsPromoCatalogPoiChecker : public BaseChecker { -public: - DECLARE_CHECKER_INSTANCE(IsPromoCatalogPoiChecker); - -private: - IsPromoCatalogPoiChecker() +protected: + IsPromoCatalogPoiChecker(promo::TypesList const & types) { - auto const & types = promo::GetPromoCatalogPoiTypes(); for (auto const & type : types) { m_types.push_back(classif().GetTypeByPath(type)); } } }; + +class IsPromoCatalogSightseeingsChecker : public IsPromoCatalogPoiChecker +{ +public: + DECLARE_CHECKER_INSTANCE(IsPromoCatalogSightseeingsChecker); + +private: + IsPromoCatalogSightseeingsChecker() + : IsPromoCatalogPoiChecker(promo::GetPromoCatalogSightseeingsTypes()) + {} +}; } // namespace ftypes diff --git a/partners_api/ads_base.cpp b/partners_api/ads_base.cpp index e6cd5d83af..9a51bb511d 100644 --- a/partners_api/ads_base.cpp +++ b/partners_api/ads_base.cpp @@ -23,7 +23,7 @@ Container::Container() {"tourism", "resort"}, {"sponsored", "promo_catalog"}}); - m_excludedTypes.Append(promo::GetPromoCatalogPoiTypes()); + m_excludedTypes.Append(promo::GetPromoCatalogSightseeingsTypes()); } void Container::AppendEntry(std::initializer_list> && types, diff --git a/partners_api/promo_catalog_types.cpp b/partners_api/promo_catalog_types.cpp index 28af9920c5..7da2734ad8 100644 --- a/partners_api/promo_catalog_types.cpp +++ b/partners_api/promo_catalog_types.cpp @@ -2,7 +2,7 @@ namespace { -promo::TypesList kTypes = { +promo::TypesList kSightseeingsTypes = { {"tourism", "gallery"}, {"tourism", "museum"}, {"amenity", "arts_centre"}, @@ -26,8 +26,8 @@ promo::TypesList kTypes = { namespace promo { -TypesList const & GetPromoCatalogPoiTypes() +TypesList const & GetPromoCatalogSightseeingsTypes() { - return kTypes; + return kSightseeingsTypes; } } // namespace promo diff --git a/partners_api/promo_catalog_types.hpp b/partners_api/promo_catalog_types.hpp index 740b905742..14de0bb90a 100644 --- a/partners_api/promo_catalog_types.hpp +++ b/partners_api/promo_catalog_types.hpp @@ -5,5 +5,5 @@ namespace promo { using TypesList = std::initializer_list>; -TypesList const & GetPromoCatalogPoiTypes(); +TypesList const & GetPromoCatalogSightseeingsTypes(); } // namespace promo diff --git a/partners_api/utm.hpp b/partners_api/utm.hpp index 58a7474562..10807685c6 100644 --- a/partners_api/utm.hpp +++ b/partners_api/utm.hpp @@ -11,10 +11,12 @@ enum class UTM : uint8_t BookmarksPageCatalogButton, ToolbarButton, DownloadMwmBanner, - PlacepageGallery, + LargeToponymsPlacepageGallery, + SightseeingsPlacepageGallery, DiscoveryPageGallery, TipsAndTricks, - BookingPromo + BookingPromo, + CrownButton, }; inline std::string InjectUTM(std::string const & url, UTM utm) @@ -35,9 +37,13 @@ inline std::string InjectUTM(std::string const & url, UTM utm) params.emplace_back("utm_medium", "banner"); params.emplace_back("utm_campaign", "download_map_popup"); break; - case UTM::PlacepageGallery: + case UTM::LargeToponymsPlacepageGallery: params.emplace_back("utm_medium", "gallery"); - params.emplace_back("utm_campaign", "placepage_gallery"); + params.emplace_back("utm_campaign", "large_toponyms_placepage_gallery"); + break; + case UTM::SightseeingsPlacepageGallery: + params.emplace_back("utm_medium", "gallery"); + params.emplace_back("utm_campaign", "sightseeings_placepage_gallery"); break; case UTM::DiscoveryPageGallery: params.emplace_back("utm_medium", "gallery"); @@ -51,6 +57,10 @@ inline std::string InjectUTM(std::string const & url, UTM utm) params.emplace_back("utm_medium", "popup"); params.emplace_back("utm_campaign", "bookingcom"); break; + case UTM::CrownButton: + params.emplace_back("utm_medium", "button"); + params.emplace_back("utm_campaign", "map_sponsored_button"); + break; case UTM::None: return url; }