We have compiled a list of the most common questions received regarding our mobile SDK implementations. Please read through these questions before reaching out to our support team or your Customer Success Manager.


How large (kilobytes) are the mobile SDKs?

  • Android (Kotlin): Tealium-Android library is 176kb.
  • Android (Java): Tealium-Kotlin Core library is 327kb.
  • Tealium-iOS: The Tealium-iOS library measures 140 kb. 
  • Tealium-Swift: Size of generic iOS device dev build .ipa file with no app thinning applied
    • Tealium Swift Full - 462 KB (Teal SDK 439 KB)
    • Tealium Core Framework Only - 126 KB (Teal SDK 103 KB)
    • Without Tealium Swift (Basic -Hello World Single Page App) - 23 KB

What are the Pros/Cons of using the Tag Management (Client-Side) vs the Tealium Collect (Server-Side) data dispatch methods in the SDK?

Tag Management (WebView) Tealium Collect (EventStream)
  • Ability to run JavaScript tags in the mobile environment
  • Easier data layer manipulation using extensions (doesn’t rely on server) and easier to debug
  • Can be natively coded - Mobile developers prefer a natively coded methodology
  • Provides complete control - memory usage and processing are more controllable and inherently lighter weight than creating the WebView object
  • Performs less predictably than native code - We cannot control the webviews we use that are provided to us by iOS/Android ecosystems. The WebViews are used solely to run JavaScript code.
  • More memory usage - Exact usage varies per app and is dependent on other settings defined in the Tealium IQ profile's mobile publish settings, such as battery saver mode, batching, and caching events when app offline.
  • More network traffic - While minimal, there will be an increase in network traffic due to vendor data (pixels) being passed by app user's device as opposed to network traffic associated with a single Tealium server.
  • Slightly more coding natively in app required.
  • Less data layer manipulation - While we have some support for basic server side functions, the ability to alter data is limited.
  • Less Integrations - There are less vendor integrations available server-side than there are client side, so it's important to ensure your required vendors have a comparable server-side connector or API available.

How can the Tealium SDK implementation be debugged and validated?

There are many ways to debug and validate your Tealium mobile installation. Here are a few common ways:

  • Use Charles Proxy (or a similar tool) to inspect the network activity.
  • Use the Tealium Collect Tag and the Live Events screen in EventStream.
  • Enable verbose logging to see more details in the console logs of Android Studio or Xcode
    • Update Mobile Publish Settings: Set Debugging Log Level to: “Dev (activity, info, warnings, errors)”
    • Set the log level natively to get all console logs:
      • Android: use setOverrideLogLevel() with “dev”
      • iOS: use logLevel, with TEALLogLevelDev
      • Swift: use setLogLevel(), with TealiumLogLevel.verbose

Should the same account/profile be used for multiple platforms?

If using Tag Management, we generally recommend using separate profiles for different platforms. However, this is more reliant on the vendor requirements for each platform. If requirements for iOS/Android align for the most part, using a single profile for mobile is possible.

We highly recommend keeping mobile and web traffic separate by utilizing separate profiles for mobile and web. It helps to streamline load conditions for tags that need to run only for mobile vs mobile and web. If a tag does need to run for both mobile and web, we recommend adding that tag with the same configurations to both profiles.

In Android, why does the mobile.html page get called twice?

The Android library fetches the mobile.html page twice. The first time it only requests it to fetch the Mobile Publish Settings (MPS) -- this fetch does not count towards client’s visit count. If MPS has Tag Management enabled, then a second request is made to fetch utag.js.



How does visitor ID get populated? Do visitors get new IDs at app launch?

Visitor ID (tealium_visitor_id) is generated on the initial app launch after install and does not change. Visitor ID does change if the app in uninstalled and reinstalled on to the device.

How longs are mobile sessions? Can I change the session time?

  • Tealium iQ Tag Management - Session IDs are generated by the mobile library and re-assigned after 30 minutes of inactivity. If using Tag Management, the session duration is defined/modified in the publish setting (default 30 mins). Session counts determine volume usage for the Tealium iQ product.
  • AudienceStream - Sessions are invalidated server-side after 2 minutes of inactivity. Sessions are significant for end of session rules in AudienceStream.

Do you support offline queuing?

All of the native SDKs implement offline queueing. When the network connection is lost, each tracked event is queued in persistent storage. When the network connection is restored the offline queue is processed. The queue capacity and dispatch expiration can be modified in the profile's mobile publish settings found within Tealium IQ.

Do you support automatic tracking of events?

Auto-tracking was removed from our SDKs to prevent performance and/or crash issues, but also because more events were tracked than most users needed. Even though it was removed, we do have future plans to bring it back in a limited, more refined, form.

We do have automatic lifecycle tracking for both Android and iOS.

Can the mobile SDKs retrieve the Visitor Profile (i.e. Visitor Service or Data Layer Enrichment)?

The Tealium iOS and Android libraries currently support this functionality by allowing users to retrieve the entire visitor profile or attribute groups like audiences, badges, dates, booleans (flags), strings (properties), etc. References to the visitor service modules are listed below:

Do you support deep linking?

Deep linking is the process of launching an app at a specific entry point, which is usually triggered by a hyperlink from a web page, another app, email link, or a push notification. Deep linking is usually used in following scenarios:

  • Install Attribution
    We have modules for Android and Swift that help determine the source of the app install. Each has its caveats:
    • Android: The Install Referrer module can track UTM parameters passed on an install link. When the app is launched for the first time, we make a tracking call with the referrer information. Note: installations originating from Chrome do not currently work with the Play Install Referrer API.
    • iOS (Swift): The Attribution module uses Apple's "Apple Search Ads" API to retrieve install information. This module only works if the user came through an install link from an ad that was displayed using Apple's own ad network.
  • Linking to App Content (a.k.a. Deferred Deep linking)

Can downloads/installs of the apps be tracked through the Tealium SDK?

The lifecycle variables provided within the Lifecycle Tracking Modules can be used to create variables and/or enrichments to identify a new install. If attribution tracking is desired as well, we have a module available in the Android and Swift SDKs that can add that information to the payload.

How does Trace work?

Tealium Trace assigns an ID to the events coming from your unique session and allows for refined debugging through a list of server-side events and actions. Learn more about Trace.

The Mobile Trace tool is available for use with our mobile SDKs. The Mobile Trace Tool enhances the trace feature by providing a QR code that is scannable by your device, enabling you to quickly view events coming from the Tealium Mobile SDKs.

Charles Proxy can also be used to start a trace using a Rewrite.

A manual trace can also be started using native code added to the app as outlined in the linked article.

NOTE: The manual methods do not work with Tag Management, instead use Charles Proxy or a Set Data Value extension in Tealium iQ to set a first-party cookie.


Do you support Adobe Target?

Yes, for installations that use the Tag Management module: Adobe Target in a Mobile App without the Adobe SDK

For installation using the Collect module we advise using your own methods to make requests to Adobe’s API to retrieve the Target data. If desired, you can send that information in a tracking call to EventStream for analytics.

Do you support Firebase?

Yes, we have a remote command tag for Firebase Analytics. We also have a connector that supports Firebase Cloud Messaging.

Version history
Last update:
‎03-11-2021 02:35 PM
Updated by: