From 1de374de3eb4a86ff321ce2ef586b5b7334e6645 Mon Sep 17 00:00:00 2001 From: klaus Date: Sun, 2 Mar 2025 17:45:55 +0900 Subject: [PATCH] =?UTF-8?q?=EC=95=B1=EC=8A=A4=ED=94=8C=EB=9D=BC=EC=9D=B4?= =?UTF-8?q?=EC=96=B4=20-=20sdk=20=EC=B6=94=EA=B0=80=20-=20=EB=94=A5?= =?UTF-8?q?=EB=A7=81=ED=81=AC=20&=20=EB=94=94=ED=8D=BC=EB=93=9C=20?= =?UTF-8?q?=EB=94=A5=EB=A7=81=ED=81=AC=EC=97=90=EC=84=9C=20=EA=B0=92=20?= =?UTF-8?q?=EB=B0=9B=EC=95=84=EC=99=80=EC=84=9C=20SharedPreference?= =?UTF-8?q?=EC=97=90=20=EC=A0=80=EC=9E=A5=20-=20test=20applink,=20test=20u?= =?UTF-8?q?rischeme=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 3 ++ app/src/main/AndroidManifest.xml | 19 ++++--- .../co/vividnext/sodalive/app/SodaLiveApp.kt | 50 +++++++++++++++++++ .../co/vividnext/sodalive/common/Constants.kt | 7 +++ .../common/SharedPreferenceManager.kt | 36 +++++++++++++ 5 files changed, 109 insertions(+), 6 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index d17f855..171152a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -175,4 +175,7 @@ dependencies { // Facebook implementation "com.facebook.android:facebook-core:18.0.0" + + // Appsflyer + implementation 'com.appsflyer:af-android-sdk:6.16.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 65d2b77..8e404dd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -54,8 +54,8 @@ - - - - + + + + + + + + + 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 2e7e12b..0b9fb5f 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 @@ -5,6 +5,8 @@ import android.content.pm.ApplicationInfo import android.content.pm.PackageManager import android.os.Build import androidx.appcompat.app.AppCompatDelegate +import com.appsflyer.AppsFlyerLib +import com.appsflyer.deeplink.DeepLinkResult import com.facebook.FacebookSdk import com.orhanobut.logger.AndroidLogAdapter import com.orhanobut.logger.Logger @@ -32,6 +34,8 @@ class SodaLiveApp : Application() { ImageLoaderProvider.init(applicationContext) FacebookSdk.fullyInitialize() + + setupAppsFlyer() } private fun isDebuggable(): Boolean { @@ -53,4 +57,50 @@ class SodaLiveApp : Application() { return debuggable } + + private fun setupAppsFlyer() { + clearDeferredDeepLink() + + // 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" + ) ?: "" + SharedPreferenceManager.marketingPid = deepLink?.getStringValue( + "deep_link_sub1" + ) ?: "" + 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 + } + + DeepLinkResult.Status.NOT_FOUND -> Logger.d("딥링크를 찾을 수 없습니다.") + DeepLinkResult.Status.ERROR -> Logger.d("딥링크 처리 중 오류 발생: ${deepLinkResult.error}") + } + } + } + + private fun clearDeferredDeepLink() { + SharedPreferenceManager.marketingUtmSource = "" + SharedPreferenceManager.marketingUtmMedium = "" + SharedPreferenceManager.marketingUtmCampaign = "" + SharedPreferenceManager.marketingLinkValue = "" + SharedPreferenceManager.marketingLinkValueId = 0 + } } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/common/Constants.kt b/app/src/main/java/kr/co/vividnext/sodalive/common/Constants.kt index f2be924..c07a364 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/common/Constants.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/common/Constants.kt @@ -20,6 +20,13 @@ object Constants { const val PREF_NOT_SHOWING_EVENT_POPUP_ID = "pref_not_showing_event_popup_id" const val PREF_IS_VIEWED_ON_BOARDING_TUTORIAL = "pref_is_viewed_on_boarding_tutorial" + const val PREF_MARKETING_PID = "pref_marketing_pid" + const val PREF_MARKETING_UTM_SOURCE = "pref_marketing_utm_source" + const val PREF_MARKETING_UTM_MEDIUM = "pref_marketing_utm_medium" + const val PREF_MARKETING_UTM_CAMPAIGN = "pref_marketing_utm_campaign" + const val PREF_MARKETING_LINK_VALUE = "pref_marketing_link_value" + const val PREF_MARKETING_LINK_VALUE_ID = "pref_marketing_link_value_id" + const val EXTRA_CAN = "extra_can" const val EXTRA_DATA = "extra_data" const val EXTRA_TERMS = "extra_terms" diff --git a/app/src/main/java/kr/co/vividnext/sodalive/common/SharedPreferenceManager.kt b/app/src/main/java/kr/co/vividnext/sodalive/common/SharedPreferenceManager.kt index c76eb3e..0634da9 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/common/SharedPreferenceManager.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/common/SharedPreferenceManager.kt @@ -174,4 +174,40 @@ object SharedPreferenceManager { set(value) { sharedPreferences[Constants.PREF_IS_PLAYER_SERVICE_RUNNING] = value } + + var marketingPid: String + get() = sharedPreferences[Constants.PREF_MARKETING_PID] + set(value) { + sharedPreferences[Constants.PREF_MARKETING_PID] = value + } + + var marketingUtmSource: String + get() = sharedPreferences[Constants.PREF_MARKETING_UTM_SOURCE] + set(value) { + sharedPreferences[Constants.PREF_MARKETING_UTM_SOURCE] = value + } + + var marketingUtmMedium: String + get() = sharedPreferences[Constants.PREF_MARKETING_UTM_MEDIUM] + set(value) { + sharedPreferences[Constants.PREF_MARKETING_UTM_MEDIUM] = value + } + + var marketingUtmCampaign: String + get() = sharedPreferences[Constants.PREF_MARKETING_UTM_CAMPAIGN] + set(value) { + sharedPreferences[Constants.PREF_MARKETING_UTM_CAMPAIGN] = value + } + + var marketingLinkValue: String + get() = sharedPreferences[Constants.PREF_MARKETING_LINK_VALUE] + set(value) { + sharedPreferences[Constants.PREF_MARKETING_LINK_VALUE] = value + } + + var marketingLinkValueId: Long + get() = sharedPreferences[Constants.PREF_MARKETING_LINK_VALUE_ID, 0L] + set(value) { + sharedPreferences[Constants.PREF_MARKETING_LINK_VALUE_ID] = value + } }