From df26179414050fdff8975996f536b610bfee4fef Mon Sep 17 00:00:00 2001 From: Balrambhai Sharma Date: Fri, 16 Feb 2024 16:14:53 +0530 Subject: [PATCH] TP-57175 | Event whitelisting on Appsflyer and Firebase (#9791) --- .../com/naviapp/common/tab/InsuranceTabViewModel.kt | 2 +- .../insurance/ui/TrialInsuranceDashboardFragment.kt | 6 ++++-- .../tab/insurance/ui/TrialInsuranceDashboardVM.kt | 2 +- .../java/com/navi/analytics/utils/NaviTrackEvent.kt | 4 +++- .../main/java/com/navi/base/model/AnalyticsEvent.kt | 4 +++- .../analytics/InsuranceAnalyticsHandler.kt | 13 +++++++------ .../insurance/analytics/NaviInsuranceAnalytics.kt | 11 ++++++++--- .../explainer/ui/BenefitExplainerFragment.kt | 4 +++- .../formbase/pre_purchase/FormBasedFragment.kt | 8 ++++---- .../quoteredesign/fragments/QuoteOfferFragment.kt | 2 +- 10 files changed, 35 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/naviapp/common/tab/InsuranceTabViewModel.kt b/app/src/main/java/com/naviapp/common/tab/InsuranceTabViewModel.kt index f5efbc3ca0..cca75ce5fb 100644 --- a/app/src/main/java/com/naviapp/common/tab/InsuranceTabViewModel.kt +++ b/app/src/main/java/com/naviapp/common/tab/InsuranceTabViewModel.kt @@ -108,7 +108,7 @@ class InsuranceTabViewModel @Inject constructor( is AnalyticsAction -> { NaviTrackEvent.trackEvent( - uiTronAction.eventName ?: "", uiTronAction.eventProperties + uiTronAction.eventName ?: "", uiTronAction.eventProperties, uiTronAction.isNeededForAppsflyer, uiTronAction.isNeededForFirebase ) } diff --git a/app/src/main/java/com/naviapp/common/tab/insurance/ui/TrialInsuranceDashboardFragment.kt b/app/src/main/java/com/naviapp/common/tab/insurance/ui/TrialInsuranceDashboardFragment.kt index 032ca83493..5fcf0b76cf 100644 --- a/app/src/main/java/com/naviapp/common/tab/insurance/ui/TrialInsuranceDashboardFragment.kt +++ b/app/src/main/java/com/naviapp/common/tab/insurance/ui/TrialInsuranceDashboardFragment.kt @@ -102,7 +102,7 @@ class TrialInsuranceDashboardFragment : BaseFragment(), WidgetCallback, NewBotto override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - NaviTrackEvent.trackEventOnClickStream(NaviAnalytics.TRIAL_INSURANCE_DASHBOARD_INIT) + NaviTrackEvent.trackEvent(NaviAnalytics.TRIAL_INSURANCE_DASHBOARD_INIT) } override fun onAttach(context: Context) { @@ -212,7 +212,9 @@ class TrialInsuranceDashboardFragment : BaseFragment(), WidgetCallback, NewBotto override fun onClick(naviClickAction: NaviClickAction, widgetId: String?) { if (naviClickAction is CtaData) { naviClickAction.analyticsEventProperties?.let { analyticsEvent -> - NaviTrackEvent.trackEvent(analyticsEvent.name ?: "", analyticsEvent.properties) + NaviTrackEvent.trackEvent( + analyticsEvent.name ?: "", analyticsEvent.properties, analyticsEvent.isNeededForAppsflyer.orFalse(), analyticsEvent.isNeededForFirebase.orFalse() + ) } val bundle = Bundle() bundle.putParcelable(Constants.PARAMS_EXTRA, naviClickAction) diff --git a/app/src/main/java/com/naviapp/common/tab/insurance/ui/TrialInsuranceDashboardVM.kt b/app/src/main/java/com/naviapp/common/tab/insurance/ui/TrialInsuranceDashboardVM.kt index abd2214bae..3bd2fa20c3 100644 --- a/app/src/main/java/com/naviapp/common/tab/insurance/ui/TrialInsuranceDashboardVM.kt +++ b/app/src/main/java/com/naviapp/common/tab/insurance/ui/TrialInsuranceDashboardVM.kt @@ -127,7 +127,7 @@ class TrialInsuranceDashboardVM @Inject constructor( is AnalyticsAction -> { NaviTrackEvent.trackEvent( - uiTronAction.eventName ?: "", uiTronAction.eventProperties + uiTronAction.eventName ?: "", uiTronAction.eventProperties, uiTronAction.isNeededForAppsflyer, uiTronAction.isNeededForFirebase ) } diff --git a/navi-analytics/src/main/java/com/navi/analytics/utils/NaviTrackEvent.kt b/navi-analytics/src/main/java/com/navi/analytics/utils/NaviTrackEvent.kt index 567db61bf2..2f83254a33 100644 --- a/navi-analytics/src/main/java/com/navi/analytics/utils/NaviTrackEvent.kt +++ b/navi-analytics/src/main/java/com/navi/analytics/utils/NaviTrackEvent.kt @@ -136,12 +136,14 @@ object NaviTrackEvent { fun trackEvent( eventName: String, eventValues: Map? = null, - isNeededForAppsflyer: Boolean = true, + isNeededForAppsflyer: Boolean = false, isNeededForFirebase: Boolean = false ) { MoengageUtil.trackEvent(eventName, eventValues, applicationContext) if (isNeededForFirebase) FcmAnalyticsUtil.analytics.trackEvent(eventName, eventValues) PulseManager.trackEvent(eventName, eventValues) + if (isNeededForAppsflyer) + AppsFlyerUtil.instance.trackEvent(applicationContext, eventName, eventValues) if (isEventWhiteListedForAppsflyer(eventName)) { AppsFlyerUtil.instance.trackEvent(applicationContext, eventName, eventValues) } diff --git a/navi-base/src/main/java/com/navi/base/model/AnalyticsEvent.kt b/navi-base/src/main/java/com/navi/base/model/AnalyticsEvent.kt index 22d94e7455..caa415e2d1 100644 --- a/navi-base/src/main/java/com/navi/base/model/AnalyticsEvent.kt +++ b/navi-base/src/main/java/com/navi/base/model/AnalyticsEvent.kt @@ -17,7 +17,9 @@ import kotlinx.parcelize.RawValue data class AnalyticsEvent( @SerializedName("name") val name: String? = null, @SerializedName("properties") - var properties: @RawValue MutableMap? = mutableMapOf() + var properties: @RawValue MutableMap? = mutableMapOf(), + @SerializedName("isNeededForAppsflyer") val isNeededForAppsflyer: Boolean? = null, + @SerializedName("isNeededForFirebase") val isNeededForFirebase: Boolean? = null, ) : Parcelable { fun addLoadTime(pageLoadTime: Long) { if (pageLoadTime != -1L) { diff --git a/navi-insurance/src/main/java/com/navi/insurance/analytics/InsuranceAnalyticsHandler.kt b/navi-insurance/src/main/java/com/navi/insurance/analytics/InsuranceAnalyticsHandler.kt index 6a6e1917d9..78dacf4dc5 100644 --- a/navi-insurance/src/main/java/com/navi/insurance/analytics/InsuranceAnalyticsHandler.kt +++ b/navi-insurance/src/main/java/com/navi/insurance/analytics/InsuranceAnalyticsHandler.kt @@ -5,6 +5,7 @@ import com.google.gson.Gson import com.navi.analytics.utils.NaviTrackEvent import com.navi.base.model.AnalyticsEvent import com.navi.base.model.CtaData +import com.navi.base.utils.orFalse import com.navi.common.utils.getNetworkType import com.navi.insurance.common.models.Action import com.navi.naviwidgets.models.WidgetViewedData @@ -40,7 +41,9 @@ constructor() { sendEvent( AnalyticsEvent( name = InsuranceAnalyticsConstants.HI_widget_viewed_event, - properties = mutableMapOf(Pair(screenName, mapValue)) + properties = mutableMapOf(Pair(screenName, mapValue)), + isNeededForAppsflyer = true, + isNeededForFirebase = true ), screenName ) @@ -48,9 +51,7 @@ constructor() { fun sendEvent( analyticsEvent: AnalyticsEvent?, - screen: String? = null, - isNeededForAppsflyer: Boolean = true, - isNeededForFirebase: Boolean = false + screen: String? = null ) { if (analyticsEvent == null) { Timber.e("AnalyticsEvent is null") @@ -70,8 +71,8 @@ constructor() { NaviInsuranceAnalytics.postAnalyticsEvent( it, analyticsEvent.properties, - isNeededForAppsflyer = isNeededForAppsflyer, - isNeededForFirebase = isNeededForFirebase + isNeededForAppsflyer = analyticsEvent.isNeededForAppsflyer.orFalse(), + isNeededForFirebase = analyticsEvent.isNeededForFirebase.orFalse() ) } ?: run { Timber.e("Event name is null") diff --git a/navi-insurance/src/main/java/com/navi/insurance/analytics/NaviInsuranceAnalytics.kt b/navi-insurance/src/main/java/com/navi/insurance/analytics/NaviInsuranceAnalytics.kt index 0e41603b8c..38f3ce8eec 100644 --- a/navi-insurance/src/main/java/com/navi/insurance/analytics/NaviInsuranceAnalytics.kt +++ b/navi-insurance/src/main/java/com/navi/insurance/analytics/NaviInsuranceAnalytics.kt @@ -18,6 +18,7 @@ import com.navi.analytics.moengage.MoengageUtil import com.navi.analytics.utils.NaviTrackEvent import com.navi.base.model.AnalyticsEvent import com.navi.base.utils.BaseUtils +import com.navi.base.utils.orFalse import com.navi.base.utils.orZero import com.navi.common.CommonLibManager import com.navi.insurance.models.request.OfferRequest @@ -160,7 +161,7 @@ class NaviInsuranceAnalytics private constructor() { fun postAnalyticsEvent( eventName: String, eventProperties: Map?, - isNeededForAppsflyer: Boolean = true, + isNeededForAppsflyer: Boolean = false, isNeededForFirebase: Boolean = false ) { val updatedEventProperties = mutableMapOf() @@ -2134,7 +2135,9 @@ class NaviInsuranceAnalytics private constructor() { offerParams.cover?.map { c -> c.coverId }?.joinToString(",").orEmpty() ), Pair("screen", screenName) - ) + ), + isNeededForAppsflyer = true, + isNeededForFirebase = true ) } } @@ -2272,7 +2275,9 @@ class NaviInsuranceAnalytics private constructor() { analyticsEvent.name?.let { eventName -> postAnalyticsEvent( eventName, - analyticsEvent.properties?.toImmutableMap() + analyticsEvent.properties?.toImmutableMap(), + analyticsEvent.isNeededForAppsflyer.orFalse(), + analyticsEvent.isNeededForFirebase.orFalse() ) } } diff --git a/navi-insurance/src/main/java/com/navi/insurance/benefit/explainer/ui/BenefitExplainerFragment.kt b/navi-insurance/src/main/java/com/navi/insurance/benefit/explainer/ui/BenefitExplainerFragment.kt index 6e95afa2a1..2721aead7a 100644 --- a/navi-insurance/src/main/java/com/navi/insurance/benefit/explainer/ui/BenefitExplainerFragment.kt +++ b/navi-insurance/src/main/java/com/navi/insurance/benefit/explainer/ui/BenefitExplainerFragment.kt @@ -112,7 +112,9 @@ class BenefitExplainerFragment : GiBaseFragment(), WidgetCallback { benefitID?.let { benefit -> tabId?.let { tab -> val analyticsEvent = AnalyticsEvent( - name = NaviInsuranceAnalytics.GI_BENFEXPLAINER_BENEFITPAGE_VIEW + name = NaviInsuranceAnalytics.GI_BENFEXPLAINER_BENEFITPAGE_VIEW, + isNeededForAppsflyer = true, + isNeededForFirebase = true ) analyticsEvent.properties?.put(NaviInsuranceAnalytics.BENEFIT_ID, benefit) analyticsEvent.properties?.put(NaviInsuranceAnalytics.WIDGET_ID, tab) diff --git a/navi-insurance/src/main/java/com/navi/insurance/formbase/pre_purchase/FormBasedFragment.kt b/navi-insurance/src/main/java/com/navi/insurance/formbase/pre_purchase/FormBasedFragment.kt index e2a751303c..ee663d73af 100644 --- a/navi-insurance/src/main/java/com/navi/insurance/formbase/pre_purchase/FormBasedFragment.kt +++ b/navi-insurance/src/main/java/com/navi/insurance/formbase/pre_purchase/FormBasedFragment.kt @@ -302,10 +302,10 @@ class FormBasedFragment : AnalyticsEvent( name = analyticsScreenName, properties = - mutableMapOf(Pair(APPLICATION_TYPE_EXTRA, applicationType.orEmpty())) - ), - isNeededForAppsflyer = true, - isNeededForFirebase = analyticsScreenName == InsuranceAnalyticsConstants.EXISTING_INSURANCE_KEY + mutableMapOf(Pair(APPLICATION_TYPE_EXTRA, applicationType.orEmpty())), + isNeededForAppsflyer = true, + isNeededForFirebase = analyticsScreenName == InsuranceAnalyticsConstants.EXISTING_INSURANCE_KEY + ) ) } diff --git a/navi-insurance/src/main/java/com/navi/insurance/quoteredesign/fragments/QuoteOfferFragment.kt b/navi-insurance/src/main/java/com/navi/insurance/quoteredesign/fragments/QuoteOfferFragment.kt index ee7567439b..a15144a8e3 100644 --- a/navi-insurance/src/main/java/com/navi/insurance/quoteredesign/fragments/QuoteOfferFragment.kt +++ b/navi-insurance/src/main/java/com/navi/insurance/quoteredesign/fragments/QuoteOfferFragment.kt @@ -288,7 +288,7 @@ class QuoteOfferFragment : BaseFragment(), WidgetCallback, View.OnClickListener } } - insuranceAnalyticsHandler.sendEvent(it.metaData?.analyticsEvent, screenName, isNeededForAppsflyer = true, isNeededForFirebase = true) + insuranceAnalyticsHandler.sendEvent(it.metaData?.analyticsEvent?.copy(isNeededForAppsflyer = true, isNeededForFirebase = true), screenName) it.headerWidget?.let { widgetConfigList -> if (widgetConfigList.isNotEmpty()) {