앱스플라이어 딥링크

- 가장 먼저 실행되는 Application 영역으로 이동
This commit is contained in:
klaus 2025-03-07 02:24:33 +09:00
parent f790264e44
commit 415383393a
2 changed files with 53 additions and 55 deletions

View File

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

View File

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