analytics changes

This commit is contained in:
Phillip Thelen 2021-08-09 18:04:56 +02:00
parent d1c28a8dff
commit 6a252e0e97
11 changed files with 32 additions and 10 deletions

View file

@ -147,7 +147,7 @@ android {
buildConfigField "String", "TESTING_LEVEL", "\"production\""
resConfigs "en", "bg", "de", "en-rGB", "es", "fr", "hr-rHR", "in", "it", "iw", "ja", "ko", "lt", "nl", "pl", "pt-rBR", "pt-rPT", "ru", "tr", "zh", "zh-rTW"
versionCode 3026
versionCode 3033
versionName "3.3.1"
}

View file

@ -4,7 +4,7 @@ import com.amplitude.api.Amplitude
import com.habitrpg.android.habitica.BuildConfig
import org.json.JSONException
import org.json.JSONObject
import java.util.HashMap
object AmplitudeManager {
var EVENT_CATEGORY_BEHAVIOUR = "behaviour"
@ -35,4 +35,10 @@ object AmplitudeManager {
}
Amplitude.getInstance().logEvent(eventAction, eventProperties)
}
fun sendNavigationEvent(page: String) {
val additionalData = HashMap<String, Any>()
additionalData["page"] = page
sendEvent("navigated", EVENT_CATEGORY_NAVIGATION, EVENT_HITTYPE_PAGEVIEW, additionalData)
}
}

View file

@ -70,7 +70,7 @@ class PushNotificationManager(var apiClient: ApiClient, private val sharedPrefer
val notificationFactory = HabiticaLocalNotificationFactory()
val notification = notificationFactory.build(remoteMessageIdentifier, context)
if (userIsSubscribedToNotificationType(remoteMessageIdentifier) && notification != null) {
if (remoteMessage.data.containsKey("isPromo")) {
if (remoteMessage.data.containsKey("sendAnalytics")) {
val additionalData = HashMap<String, Any>()
additionalData["identifier"] = remoteMessageIdentifier ?: ""
AmplitudeManager.sendEvent(

View file

@ -15,6 +15,7 @@ import com.habitrpg.android.habitica.data.UserRepository
import com.habitrpg.android.habitica.databinding.ActivityAdventureGuideBinding
import com.habitrpg.android.habitica.databinding.AdventureGuideItemBinding
import com.habitrpg.android.habitica.extensions.fromHtml
import com.habitrpg.android.habitica.helpers.AmplitudeManager
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils
@ -66,6 +67,8 @@ class AdventureGuideActivity : BaseActivity() {
val descriptionText = getString(R.string.adventure_guide_description)
binding.descriptionView.setText(descriptionText.fromHtml(), TextView.BufferType.SPANNABLE)
AmplitudeManager.sendNavigationEvent("adventure guide screen")
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {

View file

@ -149,7 +149,6 @@ class LoginActivity : BaseActivity(), Consumer<UserAuthResponse> {
val additionalData = HashMap<String, Any>()
additionalData["page"] = this.javaClass.simpleName
AmplitudeManager.sendEvent("navigate", AmplitudeManager.EVENT_CATEGORY_NAVIGATION, AmplitudeManager.EVENT_HITTYPE_PAGEVIEW, additionalData)
binding.backgroundContainer.post { binding.backgroundContainer.scrollTo(0, binding.backgroundContainer.bottom) }
binding.backgroundContainer.isScrollable = false

View file

@ -377,7 +377,7 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
if ((intent.hasExtra("notificationIdentifier") || intent.hasExtra("openURL")) && lastNotificationOpen != intent.getLongExtra("notificationTimeStamp", 0)) {
lastNotificationOpen = intent.getLongExtra("notificationTimeStamp", 0)
val identifier = intent.getStringExtra("notificationIdentifier") ?: ""
if (intent.hasExtra("isPromo")) {
if (intent.hasExtra("sendAnalytics")) {
val additionalData = HashMap<String, Any>()
additionalData["identifier"] = identifier
AmplitudeManager.sendEvent(

View file

@ -59,10 +59,6 @@ abstract class BaseFragment<VB: ViewBinding> : Fragment() {
}
val additionalData = HashMap<String, Any>()
additionalData["page"] = this.javaClass.simpleName
AmplitudeManager.sendEvent("navigate", AmplitudeManager.EVENT_CATEGORY_NAVIGATION, AmplitudeManager.EVENT_HITTYPE_PAGEVIEW, additionalData)
binding = createBinding(inflater, container)
return binding?.root
}

View file

@ -84,6 +84,8 @@ class GemsPurchaseFragment : BaseFragment<FragmentGemPurchaseBinding>(), GemPurc
} else {
binding?.promoBanner?.visibility = View.GONE
}
AmplitudeManager.sendNavigationEvent("gem screen")
}
override fun setupCheckout() {

View file

@ -18,6 +18,7 @@ import com.habitrpg.android.habitica.events.UserSubscribedEvent
import com.habitrpg.android.habitica.extensions.addCancelButton
import com.habitrpg.android.habitica.extensions.isUsingNightModeResources
import com.habitrpg.android.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.helpers.AmplitudeManager
import com.habitrpg.android.habitica.helpers.AppConfigManager
import com.habitrpg.android.habitica.helpers.PurchaseHandler
import com.habitrpg.android.habitica.helpers.PurchaseTypes
@ -108,6 +109,8 @@ class SubscriptionFragment : BaseFragment<FragmentSubscriptionBinding>(), GemPur
DataBindingUtils.loadImage(binding?.subBenefitsMysteryItemIcon, "shop_set_mystery_${it.key?.split("_")?.last()}")
binding?.subBenefitsMysteryItemText?.text = context?.getString(R.string.subscribe_listitem3_description_new, it.text)
}, RxErrorHandler.handleEmptyError()))
AmplitudeManager.sendNavigationEvent("subscription screen")
}
override fun onResume() {

View file

@ -358,7 +358,7 @@ open class TaskRecyclerViewFragment : BaseFragment<FragmentRefreshRecyclerviewBi
handleTaskResult(result, task.value.toInt())
if (!DateUtils.isToday(sharedPreferences.getLong("last_task_reporting", 0))) {
AmplitudeManager.sendEvent(
"task score",
"task scored",
AmplitudeManager.EVENT_CATEGORY_BEHAVIOUR,
AmplitudeManager.EVENT_HITTYPE_EVENT
)

View file

@ -5,10 +5,12 @@ import android.content.Intent
import android.content.SharedPreferences
import android.graphics.PorterDuff
import android.os.Bundle
import android.text.format.DateUtils
import android.view.*
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.widget.SearchView
import androidx.core.content.ContextCompat
import androidx.core.content.edit
import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2
@ -364,6 +366,17 @@ class TasksFragment : BaseMainFragment<FragmentViewpagerBinding>(), SearchView.O
fragment?.binding?.recyclerView?.scrollToPosition(0)
}
}
if (!DateUtils.isToday(sharedPreferences.getLong("last_creation_reporting", 0))) {
AmplitudeManager.sendEvent(
"task created",
AmplitudeManager.EVENT_CATEGORY_BEHAVIOUR,
AmplitudeManager.EVENT_HITTYPE_EVENT
)
sharedPreferences.edit {
putLong("last_creation_reporting", Date().time)
}
}
}
}