diff --git a/app/src/main/java/kr/co/vividnext/sodalive/app/SodaLiveApp.kt b/app/src/main/java/kr/co/vividnext/sodalive/app/SodaLiveApp.kt index 6367c1f..68cd2db 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/app/SodaLiveApp.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/app/SodaLiveApp.kt @@ -4,9 +4,13 @@ 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 @@ -61,5 +65,54 @@ class SodaLiveApp : Application() { // Appsflyer SDK 초기화 AppsFlyerLib.getInstance().init("tWF2wbJ5nSkya5Ru9mGcPU", null, this) AppsFlyerLib.getInstance().start(this) + + // 딥링크 및 디퍼드 딥링크 처리 + AppsFlyerLib.getInstance().subscribeForDeepLink { deepLinkResult -> + when (deepLinkResult.status) { + DeepLinkResult.Status.FOUND -> { + val deepLink = deepLinkResult.deepLink + SharedPreferenceManager.marketingLinkValue = deepLink?.getStringValue( + "deep_link_value" + ) ?: "" + + val marketingPid = deepLink?.getStringValue( + "deep_link_sub1" + ) + + if (marketingPid != null) { + SharedPreferenceManager.marketingPid = marketingPid + } + + SharedPreferenceManager.marketingUtmSource = deepLink?.getStringValue( + "deep_link_sub2" + ) ?: "" + SharedPreferenceManager.marketingUtmMedium = deepLink?.getStringValue( + "deep_link_sub3" + ) ?: "" + SharedPreferenceManager.marketingUtmCampaign = deepLink?.getStringValue( + "deep_link_sub4" + ) ?: "" + SharedPreferenceManager.marketingLinkValueId = deepLink?.getStringValue( + "deep_link_sub5" + )?.toLongOrNull() ?: 0L + + logUtmInFirebase() + } + + DeepLinkResult.Status.NOT_FOUND -> Logger.d("딥링크를 찾을 수 없습니다.") + DeepLinkResult.Status.ERROR -> Logger.d("딥링크 처리 중 오류 발생: ${deepLinkResult.error}") + } + } + } + + 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) } } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/main/DeepLinkActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/main/DeepLinkActivity.kt index 2a5a88f..a364310 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/main/DeepLinkActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/main/DeepLinkActivity.kt @@ -5,56 +5,12 @@ import android.os.Bundle import android.os.Handler import android.os.Looper import androidx.appcompat.app.AppCompatActivity -import com.appsflyer.AppsFlyerLib -import com.appsflyer.deeplink.DeepLinkResult -import com.google.firebase.analytics.ktx.analytics -import com.google.firebase.ktx.Firebase -import com.orhanobut.logger.Logger -import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.splash.SplashActivity class DeepLinkActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - // 딥링크 및 디퍼드 딥링크 처리 - AppsFlyerLib.getInstance().subscribeForDeepLink { deepLinkResult -> - when (deepLinkResult.status) { - DeepLinkResult.Status.FOUND -> { - val deepLink = deepLinkResult.deepLink - SharedPreferenceManager.marketingLinkValue = deepLink?.getStringValue( - "deep_link_value" - ) ?: "" - - val marketingPid = deepLink?.getStringValue( - "deep_link_sub1" - ) - - if (marketingPid != null) { - SharedPreferenceManager.marketingPid = marketingPid - } - - SharedPreferenceManager.marketingUtmSource = deepLink?.getStringValue( - "deep_link_sub2" - ) ?: "" - SharedPreferenceManager.marketingUtmMedium = deepLink?.getStringValue( - "deep_link_sub3" - ) ?: "" - SharedPreferenceManager.marketingUtmCampaign = deepLink?.getStringValue( - "deep_link_sub4" - ) ?: "" - SharedPreferenceManager.marketingLinkValueId = deepLink?.getStringValue( - "deep_link_sub5" - )?.toLongOrNull() ?: 0L - - logUtmInFirebase() - } - - DeepLinkResult.Status.NOT_FOUND -> Logger.d("딥링크를 찾을 수 없습니다.") - DeepLinkResult.Status.ERROR -> Logger.d("딥링크 처리 중 오류 발생: ${deepLinkResult.error}") - } - } - startActivity( Intent(applicationContext, SplashActivity::class.java).apply { data = intent.data @@ -65,15 +21,4 @@ class DeepLinkActivity : AppCompatActivity() { finish() }, 1000) } - - 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) - } }