Firebase 트래킹 추가
- 회원가입, 로그인
This commit is contained in:
		| @@ -35,8 +35,8 @@ android { | ||||
|         applicationId "kr.co.vividnext.sodalive" | ||||
|         minSdk 23 | ||||
|         targetSdk 34 | ||||
|         versionCode 149 | ||||
|         versionName "1.30.0" | ||||
|         versionCode 151 | ||||
|         versionName "1.31.0" | ||||
|     } | ||||
|  | ||||
|     buildTypes { | ||||
|   | ||||
| @@ -4,19 +4,17 @@ import android.app.Application | ||||
| import android.content.pm.ApplicationInfo | ||||
| import android.content.pm.PackageManager | ||||
| import android.os.Build | ||||
| import android.os.Bundle | ||||
| import androidx.appcompat.app.AppCompatDelegate | ||||
| import com.appsflyer.AppsFlyerLib | ||||
| import com.appsflyer.deeplink.DeepLinkResult | ||||
| import com.facebook.FacebookSdk | ||||
| import com.google.firebase.analytics.ktx.analytics | ||||
| import com.google.firebase.ktx.Firebase | ||||
| import com.orhanobut.logger.AndroidLogAdapter | ||||
| import com.orhanobut.logger.Logger | ||||
| import kr.co.vividnext.sodalive.BuildConfig | ||||
| import kr.co.vividnext.sodalive.common.ImageLoaderProvider | ||||
| import kr.co.vividnext.sodalive.common.SharedPreferenceManager | ||||
| import kr.co.vividnext.sodalive.di.AppDI | ||||
| import kr.co.vividnext.sodalive.tracking.FirebaseTracking | ||||
|  | ||||
| class SodaLiveApp : Application() { | ||||
|     override fun onCreate() { | ||||
| @@ -106,13 +104,6 @@ class SodaLiveApp : Application() { | ||||
|     } | ||||
|  | ||||
|     private fun logUtmInFirebase() { | ||||
|         val firebaseAnalytics = Firebase.analytics | ||||
|         val params = Bundle().apply { | ||||
|             putString("utm_source", SharedPreferenceManager.marketingUtmSource) | ||||
|             putString("utm_medium", SharedPreferenceManager.marketingUtmMedium) | ||||
|             putString("utm_campaign", SharedPreferenceManager.marketingUtmCampaign) | ||||
|         } | ||||
|  | ||||
|         firebaseAnalytics.logEvent("campaign_utm", params) | ||||
|         FirebaseTracking.logUtm() | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,36 @@ | ||||
| package kr.co.vividnext.sodalive.tracking | ||||
|  | ||||
| import android.os.Bundle | ||||
| import com.google.firebase.analytics.FirebaseAnalytics | ||||
| import com.google.firebase.analytics.ktx.analytics | ||||
| import com.google.firebase.ktx.Firebase | ||||
| import kr.co.vividnext.sodalive.common.SharedPreferenceManager | ||||
|  | ||||
| object FirebaseTracking { | ||||
|     fun signUp(method: String) { | ||||
|         val firebaseAnalytics = Firebase.analytics | ||||
|         val params = Bundle().apply { | ||||
|             putString(FirebaseAnalytics.Param.METHOD, method) | ||||
|         } | ||||
|         firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SIGN_UP, params) | ||||
|     } | ||||
|  | ||||
|     fun login(method: String) { | ||||
|         val firebaseAnalytics = Firebase.analytics | ||||
|         val params = Bundle().apply { | ||||
|             putString(FirebaseAnalytics.Param.METHOD, method) | ||||
|         } | ||||
|         firebaseAnalytics.logEvent(FirebaseAnalytics.Event.LOGIN, params) | ||||
|     } | ||||
|  | ||||
|     fun logUtm() { | ||||
|         val firebaseAnalytics = Firebase.analytics | ||||
|         val params = Bundle().apply { | ||||
|             putString("utm_source", SharedPreferenceManager.marketingUtmSource) | ||||
|             putString("utm_medium", SharedPreferenceManager.marketingUtmMedium) | ||||
|             putString("utm_campaign", SharedPreferenceManager.marketingUtmCampaign) | ||||
|         } | ||||
|  | ||||
|         firebaseAnalytics.logEvent("campaign_utm", params) | ||||
|     } | ||||
| } | ||||
| @@ -7,6 +7,7 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers | ||||
| import io.reactivex.rxjava3.schedulers.Schedulers | ||||
| import kr.co.vividnext.sodalive.base.BaseViewModel | ||||
| import kr.co.vividnext.sodalive.common.SharedPreferenceManager | ||||
| import kr.co.vividnext.sodalive.tracking.FirebaseTracking | ||||
| import kr.co.vividnext.sodalive.user.UserRepository | ||||
|  | ||||
| class LoginViewModel(private val repository: UserRepository) : BaseViewModel() { | ||||
| @@ -53,6 +54,7 @@ class LoginViewModel(private val repository: UserRepository) : BaseViewModel() { | ||||
|                             SharedPreferenceManager.nickname = it.data.nickname | ||||
|                             SharedPreferenceManager.profileImage = it.data.profileImage | ||||
|                             onSuccess(it.message) | ||||
|                             FirebaseTracking.login("email") | ||||
|                         } else { | ||||
|                             if (it.message != null) { | ||||
|                                 _toastLiveData.postValue(it.message) | ||||
|   | ||||
| @@ -11,6 +11,7 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers | ||||
| import io.reactivex.rxjava3.schedulers.Schedulers | ||||
| import kr.co.vividnext.sodalive.base.BaseViewModel | ||||
| import kr.co.vividnext.sodalive.common.SharedPreferenceManager | ||||
| import kr.co.vividnext.sodalive.tracking.FirebaseTracking | ||||
| import kr.co.vividnext.sodalive.user.Gender | ||||
| import kr.co.vividnext.sodalive.user.UserRepository | ||||
| import okhttp3.MediaType.Companion.toMediaType | ||||
| @@ -21,8 +22,10 @@ import java.io.File | ||||
|  | ||||
| class SignUpViewModel(private val repository: UserRepository) : BaseViewModel() { | ||||
|     enum class EmailSignUpStep { | ||||
|         @SerializedName("STEP_1") STEP_1, | ||||
|         @SerializedName("STEP_2") STEP_2 | ||||
|         @SerializedName("STEP_1") | ||||
|         STEP_1, | ||||
|         @SerializedName("STEP_2") | ||||
|         STEP_2 | ||||
|     } | ||||
|  | ||||
|     var email = "" | ||||
| @@ -108,16 +111,16 @@ class SignUpViewModel(private val repository: UserRepository) : BaseViewModel() | ||||
|                 .observeOn(AndroidSchedulers.mainThread()) | ||||
|                 .subscribe( | ||||
|                     { | ||||
|                         _isLoading.value = false | ||||
|                         if (it.success && it.data != null) { | ||||
|                             SharedPreferenceManager.token = it.data.token | ||||
|                             SharedPreferenceManager.email = it.data.email | ||||
|                             SharedPreferenceManager.userId = it.data.userId | ||||
|                             SharedPreferenceManager.nickname = it.data.nickname | ||||
|                             SharedPreferenceManager.profileImage = it.data.profileImage | ||||
|                             _isLoading.value = false | ||||
|                             onSuccess(it.message) | ||||
|                             FirebaseTracking.signUp("email") | ||||
|                         } else { | ||||
|                             _isLoading.value = false | ||||
|                             if (it.errorProperty != null && it.message != null) { | ||||
|                                 _signUpErrorLiveData.postValue( | ||||
|                                     SignUpError(it.errorProperty, it.message) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user