forked from organicmaps/organicmaps
Added new statistics + AppsFlyer mirroring
This commit is contained in:
parent
8d63d1a507
commit
51f80dd3bd
8 changed files with 41 additions and 5 deletions
|
@ -138,8 +138,12 @@ void Platform::Initialize(JNIEnv * env, jobject functorProcessObject, jstring ap
|
|||
{
|
||||
m_functorProcessObject = env->NewGlobalRef(functorProcessObject);
|
||||
jclass const functorProcessClass = env->GetObjectClass(functorProcessObject);
|
||||
m_sendPushWooshTagsMethod = env->GetMethodID(functorProcessClass, "sendPushWooshTags", "(Ljava/lang/String;[Ljava/lang/String;)V");
|
||||
m_myTrackerTrackMethod = env->GetStaticMethodID(g_myTrackerClazz, "trackEvent", "(Ljava/lang/String;)Z");
|
||||
m_sendPushWooshTagsMethod = env->GetMethodID(functorProcessClass, "sendPushWooshTags",
|
||||
"(Ljava/lang/String;[Ljava/lang/String;)V");
|
||||
m_sendAppsFlyerTagsMethod = env->GetMethodID(functorProcessClass, "sendAppsFlyerTags",
|
||||
"(Ljava/lang/String;[Lcom/mapswithme/util/KeyValue;)V");
|
||||
m_myTrackerTrackMethod = env->GetStaticMethodID(g_myTrackerClazz, "trackEvent",
|
||||
"(Ljava/lang/String;)Z");
|
||||
|
||||
m_guiThread = my::make_unique<GuiThread>(m_functorProcessObject);
|
||||
|
||||
|
@ -241,7 +245,8 @@ void Platform::SendPushWooshTag(std::string const & tag, std::vector<std::string
|
|||
jni::TScopedLocalObjectArrayRef(env, jni::ToJavaStringArray(env, values)).get());
|
||||
}
|
||||
|
||||
void Platform::SendMarketingEvent(std::string const & tag, std::map<std::string, std::string> const & params)
|
||||
void Platform::SendMarketingEvent(std::string const & tag,
|
||||
std::map<std::string, std::string> const & params)
|
||||
{
|
||||
ASSERT(m_myTrackerTrackMethod, ());
|
||||
|
||||
|
@ -251,7 +256,13 @@ void Platform::SendMarketingEvent(std::string const & tag, std::map<std::string,
|
|||
eventData.append("_" + item.first + "_" + item.second);
|
||||
|
||||
env->CallStaticBooleanMethod(g_myTrackerClazz, m_myTrackerTrackMethod,
|
||||
jni::TScopedLocalRef(env, jni::ToJavaString(env, eventData)).get());
|
||||
jni::TScopedLocalRef(env, jni::ToJavaString(env, eventData)).get());
|
||||
|
||||
ASSERT(m_functorProcessObject, ());
|
||||
ASSERT(m_sendAppsFlyerTagsMethod, ());
|
||||
env->CallVoidMethod(m_functorProcessObject, m_sendAppsFlyerTagsMethod,
|
||||
jni::TScopedLocalRef(env, jni::ToJavaString(env, tag)).get(),
|
||||
jni::TScopedLocalObjectArrayRef(env, jni::ToKeyValueArray(env, params)).get());
|
||||
}
|
||||
|
||||
void Platform::SetGuiThread(unique_ptr<base::TaskLoop> guiThread)
|
||||
|
|
|
@ -67,6 +67,7 @@ public:
|
|||
private:
|
||||
jobject m_functorProcessObject = nullptr;
|
||||
jmethodID m_sendPushWooshTagsMethod = nullptr;
|
||||
jmethodID m_sendAppsFlyerTagsMethod = nullptr;
|
||||
jmethodID m_myTrackerTrackMethod = nullptr;
|
||||
AndroidSecureStorage m_secureStorage;
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@ import com.mapswithme.maps.traffic.TrafficManager;
|
|||
import com.mapswithme.maps.ugc.UGC;
|
||||
import com.mapswithme.util.Config;
|
||||
import com.mapswithme.util.Counters;
|
||||
import com.mapswithme.util.KeyValue;
|
||||
import com.mapswithme.util.SharedPropertiesUtils;
|
||||
import com.mapswithme.util.StorageUtils;
|
||||
import com.mapswithme.util.ThemeSwitcher;
|
||||
|
@ -48,6 +49,7 @@ import ru.mail.libnotify.api.NotificationFactory;
|
|||
import ru.mail.notify.core.api.BackgroundAwakeMode;
|
||||
import ru.mail.notify.core.api.NetworkSyncMode;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class MwmApplication extends Application
|
||||
|
@ -397,6 +399,15 @@ public class MwmApplication extends Application
|
|||
AppsFlyerLib.getInstance().startTracking(this);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
void sendAppsFlyerTags(@NonNull String tag, @NonNull KeyValue[] params)
|
||||
{
|
||||
HashMap<String, Object> paramsMap = new HashMap<>();
|
||||
for (KeyValue p : params)
|
||||
paramsMap.put(p.mKey, p.mValue);
|
||||
AppsFlyerLib.getInstance().trackEvent(this, tag, paramsMap);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
void sendPushWooshTags(String tag, String[] values)
|
||||
{
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
#import "MapsAppDelegate.h"
|
||||
|
||||
#ifdef OMIM_PRODUCTION
|
||||
# include "fabric_logging.hpp"
|
||||
#import <AppsFlyerTracker/AppsFlyerTracker.h>
|
||||
#include "fabric_logging.hpp"
|
||||
#endif
|
||||
|
||||
#include "platform/file_logging.hpp"
|
||||
|
@ -48,6 +49,10 @@ void setMarketingSender()
|
|||
[myTrackerEvent appendString:[NSString stringWithFormat:@"_%@_%@", key, value]];
|
||||
}
|
||||
[MRMyTracker trackEventWithName:myTrackerEvent];
|
||||
|
||||
#ifdef OMIM_PRODUCTION
|
||||
[[AppsFlyerTracker sharedTracker] trackEvent:@(tag.c_str()) withValues:eventParams];
|
||||
#endif
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include "partners_api/locals_api.hpp"
|
||||
#include "partners_api/viator_api.hpp"
|
||||
|
||||
#include "platform/marketing_service.hpp"
|
||||
#include "platform/platform.hpp"
|
||||
|
||||
#include "indexer/index.hpp"
|
||||
|
@ -58,6 +59,8 @@ public:
|
|||
template <typename ResultCallback>
|
||||
uint32_t Discover(Params && params, ResultCallback const & onResult, ErrorCalback const & onError)
|
||||
{
|
||||
GetPlatform().GetMarketingService().SendPushWooshTag(marketing::kDiscoveryButtonDiscovered);
|
||||
|
||||
uint32_t const requestId = ++m_requestCounter;
|
||||
CHECK_THREAD_CHECKER(m_threadChecker, ());
|
||||
auto const & types = params.m_itemTypes;
|
||||
|
|
|
@ -2200,6 +2200,7 @@ void Framework::OnTapEvent(TapEvent const & tapEvent)
|
|||
|
||||
if (info.GetSponsoredType() == SponsoredType::Booking)
|
||||
{
|
||||
GetPlatform().GetMarketingService().SendPushWooshTag(marketing::kBookHotelOnBookingComDiscovered);
|
||||
GetPlatform().GetMarketingService().SendMarketingEvent(marketing::kPlacepageHotelBook,
|
||||
{{"provider", "booking.com"}});
|
||||
}
|
||||
|
|
|
@ -23,6 +23,8 @@ char const * const kRoutingTransitDiscovered = "routing_transit_discovered";
|
|||
char const * const kEditorAddDiscovered = "editor_add_discovered";
|
||||
char const * const kEditorEditDiscovered = "editor_edit_discovered";
|
||||
char const * const kTrafficDiscovered = "traffic_discovered";
|
||||
char const * const kDiscoveryButtonDiscovered = "discovery_button_discovered";
|
||||
char const * const kBookHotelOnBookingComDiscovered = "hotel_book_bcom_discovered";
|
||||
|
||||
// Events.
|
||||
char const * const kDownloaderMapActionFinished = "Downloader_Map_action_finished";
|
||||
|
|
|
@ -28,6 +28,8 @@ extern char const * const kRoutingTransitDiscovered;
|
|||
extern char const * const kEditorAddDiscovered;
|
||||
extern char const * const kEditorEditDiscovered;
|
||||
extern char const * const kTrafficDiscovered;
|
||||
extern char const * const kDiscoveryButtonDiscovered;
|
||||
extern char const * const kBookHotelOnBookingComDiscovered;
|
||||
|
||||
// Events.
|
||||
extern char const * const kDownloaderMapActionFinished;
|
||||
|
|
Loading…
Add table
Reference in a new issue