Tealium - tracking in Kotlin doesn't report events

487 views Asked by At

According to GitHub sample project and Tealium's documentation for Kotlin I created such TealiumHelper:

object TealiumHelper {
    fun init(application: Application) {
        val tealiumConfig = TealiumConfig(
            application,
            accountName = BuildConfig.TEALIUM_ACCOUNT_NAME,
            profileName = BuildConfig.TEALIUM_PROFILE_NAME,
            environment = BuildConfig.TEALIUM_ENVIRONMENT
        )
        
        // Display logs only for DEV
        Logger.Companion.logLevel = BuildConfig.TEALIUM_LOGLEVEL

        // Make it start working                        
        Tealium.create(BuildConfig.TEALIUM_INSTANCE, tealiumConfig)
    }

    fun trackEvent(name: String, data: Map<String, Any>? = null) {
        val eventDispatch = TealiumEvent(name, data)
        Tealium[BuildConfig.TEALIUM_INSTANCE]?.track(eventDispatch)
    }

    fun trackView(name: String, data: Map<String, Any>? = null) {
        val viewDispatch = TealiumView(name, data)
        Tealium[BuildConfig.TEALIUM_INSTANCE]?.track(viewDispatch)
    }
}

I get logs by Tealium so it should be working fine.

2021-05-17 14:28:56.694 22812-22894/xxx.xxx.xxx D/Tealium-1.2.2: Dispatch(fc5c0) - Ready - {tealium_event_type=view, tealium_event=XXX ...}

But after I call trackView or trackEvent, my events don't go to server.

There is also additional log infor which I don't know what does it mean. Documentation doesn't say much about it:

2021-05-17 14:28:59.352 22812-22894/xxx.xxx.xxx I/Tealium-1.2.2: Asset not found (tealium-settings.json)

How could I fix it? What does Asset not found mean?

1

There are 1 answers

12
CPR On BEST ANSWER

@deadfish I manage the mobile team here at Tealium, so I can point you in the right direction. You can safely ignore the Asset Not Found log - this just indicates that no local settings file was found, so by default, the remote settings will be used. We'll look at addressing this to make the log message a little more helpful. There are a couple of things that might cause data not to be sent. Firstly, I can't see any Dispatchers specified in your TealiumConfig object. As specified in the docs, you need to add either the TagManagement or Collect dispatcher, which are the modules that send the data from the device. The Collect module sends data to the server-side platform (I think this is what you need), while the TagManagement module processes the data client-side using JavaScript. Please feel free to get in touch with our support team or contact us by raising an issue on our GitHub repo if you need further personalized support.