Added new statistics + AppsFlyer mirroring

This commit is contained in:
r.kuznetsov 2018-06-14 10:29:47 +03:00 committed by Vlad Mihaylenko
parent 8d63d1a507
commit 51f80dd3bd
8 changed files with 41 additions and 5 deletions

View file

@ -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)

View file

@ -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;

View file

@ -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)
{

View file

@ -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
});
}

View file

@ -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;

View file

@ -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"}});
}

View file

@ -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";

View file

@ -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;