앱스플라이어
- sdk 추가 - 딥링크 & 디퍼드 딥링크에서 값 받아와서 SharedPreference에 저장 - test applink, test urischeme 설정
This commit is contained in:
parent
9cef92199d
commit
1de374de3e
|
@ -175,4 +175,7 @@ dependencies {
|
||||||
|
|
||||||
// Facebook
|
// Facebook
|
||||||
implementation "com.facebook.android:facebook-core:18.0.0"
|
implementation "com.facebook.android:facebook-core:18.0.0"
|
||||||
|
|
||||||
|
// Appsflyer
|
||||||
|
implementation 'com.appsflyer:af-android-sdk:6.16.1'
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,8 +54,8 @@
|
||||||
<application
|
<application
|
||||||
android:name=".app.SodaLiveApp"
|
android:name=".app.SodaLiveApp"
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:dataExtractionRules="@xml/data_extraction_rules"
|
android:dataExtractionRules="@xml/appsflyer_data_extraction_rules"
|
||||||
android:fullBackupContent="@xml/backup_rules"
|
android:fullBackupContent="@xml/appsflyer_backup_rules"
|
||||||
android:hardwareAccelerated="true"
|
android:hardwareAccelerated="true"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
|
@ -79,10 +79,17 @@
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<category android:name="android.intent.category.BROWSABLE" />
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
|
||||||
<data android:scheme="http" />
|
<data
|
||||||
<data android:scheme="https" />
|
android:host="voiceon-test.onelink.me"
|
||||||
<data android:host="sodalive.page.link" />
|
android:scheme="https" />
|
||||||
<data android:host="sodalive.net" />
|
</intent-filter>
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
|
||||||
|
<data android:scheme="voiceon-test" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity android:name=".main.MainActivity" />
|
<activity android:name=".main.MainActivity" />
|
||||||
|
|
|
@ -5,6 +5,8 @@ import android.content.pm.ApplicationInfo
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.appcompat.app.AppCompatDelegate
|
import androidx.appcompat.app.AppCompatDelegate
|
||||||
|
import com.appsflyer.AppsFlyerLib
|
||||||
|
import com.appsflyer.deeplink.DeepLinkResult
|
||||||
import com.facebook.FacebookSdk
|
import com.facebook.FacebookSdk
|
||||||
import com.orhanobut.logger.AndroidLogAdapter
|
import com.orhanobut.logger.AndroidLogAdapter
|
||||||
import com.orhanobut.logger.Logger
|
import com.orhanobut.logger.Logger
|
||||||
|
@ -32,6 +34,8 @@ class SodaLiveApp : Application() {
|
||||||
ImageLoaderProvider.init(applicationContext)
|
ImageLoaderProvider.init(applicationContext)
|
||||||
|
|
||||||
FacebookSdk.fullyInitialize()
|
FacebookSdk.fullyInitialize()
|
||||||
|
|
||||||
|
setupAppsFlyer()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isDebuggable(): Boolean {
|
private fun isDebuggable(): Boolean {
|
||||||
|
@ -53,4 +57,50 @@ class SodaLiveApp : Application() {
|
||||||
|
|
||||||
return debuggable
|
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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,13 @@ object Constants {
|
||||||
const val PREF_NOT_SHOWING_EVENT_POPUP_ID = "pref_not_showing_event_popup_id"
|
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_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_CAN = "extra_can"
|
||||||
const val EXTRA_DATA = "extra_data"
|
const val EXTRA_DATA = "extra_data"
|
||||||
const val EXTRA_TERMS = "extra_terms"
|
const val EXTRA_TERMS = "extra_terms"
|
||||||
|
|
|
@ -174,4 +174,40 @@ object SharedPreferenceManager {
|
||||||
set(value) {
|
set(value) {
|
||||||
sharedPreferences[Constants.PREF_IS_PLAYER_SERVICE_RUNNING] = 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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue