Android Version History

v4.10.1 Changes (2017-Mar-15)

  • Add null check for Tune.getInstance() in TuneActivity onResume

v4.10.0 Changes (2017-Feb-09)

  • IAM: Add silent push notification support

v4.9.0 Changes (2017-Jan-12)

  • Added Smartwhere integration
  • Collect Fire Advertising Id on Amazon Fire devices

v4.8.1 Changes (2016-Dec-14)

  • Collect device locale and build
  • Return full, encrypted request url in enqueuedRequest callback

v4.8.0 Changes (2016-Nov-22)

  • SDK integration has been updated for all customers and will require code changes if you update to this or later versions of the Tune SDK. For information on migrating see migrating from 4.x to 4.8 and above.
  • IAM: Fix bug in tracking event with attributes. If set, the event tag with the name "attribute2" was incorrectly being recorded with the value of the event tag "attribute1".
  • IAM: Fix bug for Power Hook getValueForHookById to always return the last updated value from the Tune servers, even if the value is requested before the first Tune server response is returned after launch.

v4.7.1 Changes (2016-Oct-11)

  • IAM: Don't mark user as push enabled until a device token is retrieved

v4.7.0 Changes (2016-Sep-27)

  • AA: Stop location autocollection when location is manually set
  • AA: Check for null location in onLocationChanged
  • IAM: Use default sound and vibration settings for push notifications
  • IAM: Add executeDeepAction method to manually invoke a deep action

v4.6.0 Changes (2016-Sep-06)

  • AA: Return non-null values for getters if not set
  • IAM: Allow setting sound and vibration in TuneNotificationBuilder
  • IAM: Fix isUserInSegment NullPointerException if user is not in any segments

v4.5.1 Changes (2016-Aug-30)

  • Validate measureEvent event names are not empty
  • Fix location permissions crash on OnePlus2 devices
  • IAM: Send events for when push is enabled or disabled

v4.5.0 Changes (2016-Aug-10)

  • AA: Deprecate measureEvent with event ids. Events should only be measured by name
  • IAM: Add isUserInSegmentId API
  • IAM: Persist custom profile variables across sessions
  • IAM: Correctly pass boolean profile variables to server

v4.4.0 Changes (2016-Jul-20)

  • AA: Add enqueuedRequest(String url, JSONObject postData) callback to TuneListener
  • Update support libraries to v24

v4.3.1 Changes (2016-Jul-13)

  • IAM: Fix setPushNotificationRegistrationId setter

v4.3.0 Changes (2016-Jul-06)

  • IAM: Remove unused tagging from TuneEventItem API
  • IAM: Remove unused geolocation tagging from TuneEvent API
  • IAM: Hash username, user email, phone number fields
  • IAM: Fix race condition for when multiple analytics events are created when app is opened, not all of them get sent (for example via push)

v4.2.0 Changes (2016-Jun-21)

  • IAM: Add didSessionStartFromTunePush(), getTunePushInfoForSession() for getting session opened from push notification information

v4.1.3 Changes (2016-Jun-08)

  • AA: Fix location provider enabled check for API < Lollipop
  • AA: Remove deprecated global getRefId, getRevenue methods
  • IAM: Add public AppId getter for debugging
  • IAM: Fix AppId generation when IAM is disabled for the app
  • IAM: Enable power hook preview
  • IAM: Save tags' cleaned/pretty name

v4.1.2 Changes (2016-May-19)

  • Fire playlist downloaded callbacks immediately if In-App Marketing is disabled for the account
  • Javadoc updates for clarity around playlist download callback usage

v4.1.1 Changes (2016-May-19)

  • Prevent playlist download callbacks from firing while app is backgrounded
  • Fail gracefully on empty playlists
  • Ensure playlist download callbacks are executed after power hook values are received
  • Prevent null session ids and mat ids on first session for In-App Marketing
  • Use uppercase country codes for In-App Marketing

v4.1.0 Changes (2016-Apr-22)

  • Always fire playlist download callbacks upon first playlist and registration
  • Add default 3s timeout for playlist download callbacks
  • Only allow one callback in onPowerhooksChanged
  • targetSdkVersion < 23 support
  • Don't hash empty string values

v4.0.3 Changes (2016-Apr-08)

  • Check for internet permission before enabling In-App Marketing
  • Check for null intent in TunePushService
  • Push images support

v4.0.2 Changes (2016-Mar-17)

  • Read event ID from TuneEvent, if present, for In-App Marketing events

v4.0.1 Changes (2016-Mar-03)

  • Format location coordinates in Locale.US
  • Add setLocation overload with TuneLocation parameter

v4.0.0 Changes (2016-Mar-03)

  • Addition of In-App Marketing capability, including:
    • Targeted push notifications.
    • Event auto-collection and analysis.
    • User segmentation and profiling.
    • A/B testing.
    • Power Hooks and on-the-fly app editing capability.
  • Replaced the com.mobileapptracker.MobileAppTracker class with the com.tune.Tune class.
  • MATEvent and MATEventItem have also been replaced with TuneEvent and TuneEventItem, respectively.
  • Incorporated EventBus for internal SDK message routing. The TUNE SDK now also requires the Android support JAR (if not already present).
    Note the new Gradle dependencies:
    compile 'de.greenrobot:eventbus:2.4.0'
    compile 'com.android.support:support-v4-:23.+'
  • Auto-collects device location if app has already permitted location access.
  • Deferred deeplink listener callbacks are always invoked on failure.
  • Added the TUNE Android SDK to jCenter. The TMC Android SDK can now be installed via the following Gradle dependency:
    compile 'com.tune:tune-marketing-console-sdk:4.0.0'
  • Updated the ProGuard exceptions required for the TMC Android SDK:
    -keep public class com.tune.** { public *; }
    -keep public class com.google.android.gms.ads.identifier.** { *; }
    -keep public class com.google.android.gms.gcm.** { *; }
    -keep public class com.google.android.gms.common.** { *; }
     
    -keepclassmembers class ** {
     public void onEvent(**);
    }

v3.11.4 Changes (2015-Dec-03)

  • Use system user agent instead of WebView if possible, for more reliability and less UI thread impact
  • In getDefaultUserAgent fallback, add try/catch for Alcatel and other devices that have custom WebView implementation

v3.11.3 Changes (2015-Nov-17)

  • Use WebSettings.getDefaultUserAgent on devices > API 17
  • When debug mode is enabled, show toast for when measureSession is called

v3.11.2 Changes (2015-Oct-29)

  • Add setReferralUrl method to support manually setting deeplink
  • Add backwards support for FB SDK 3.x event logging
  • Try to load AsyncTask before accessing WebView (prevent rare device-specific issue)

v3.11.1 Changes (2015-Sep-10)

  • Add Cross-Promo event logging

v3.11.0 Changes (2015-Aug-26)

  • Update Cross-Promo API endpoints
  • Remove custom banner size option, banners are now fixed based on device screensize
  • Output ad server response status if debug mode enabled, in addition to notifying listener

v3.10.1 Changes (2015-Aug-03)

  • Hotfix for preserving user values through setters
  • Add deep link listener for easier, more transparent implementation

v3.10.0 Changes (2015-Jul-21)

  • Update Facebook event logging for FB SDK 4.0+
  • Add timeout status in deferred deep link callback
  • Cross-Promo ads
  • Updated minimum SDK version to 9

v3.9.1 Changes (2015-Apr-28)

  • Add Agency ID as an option for preloaded app attribution
  • Refactor network calls from HttpClient (deprecated in Android 5.0) to HttpURLConnection
  • Remove dependency on INSTALL_REFERRER for deferred deep links, always use API endpoint

v3.9 Changes (2015-Apr-07)

  • Auto-collect GAID, ANDROID_ID if GAID not available
  • Fully deprecated measureAction methods

v3.8 Changes (2015-Mar-05)

  • Hash personal data fields for ePrivacy certs
  • MobileAppTracker constructor builder helper functions
  • measureEvent with MATEvent class and constructor helper functions, intended to replace measureAction
  • MATEventItem constructor helper functions

v3.7.1 Changes (2015-Jan-23)

  • checkForDeferredDeeplink uses INSTALL_REFERRER for Google Play apps

v3.7 Changes (2015-Jan-14)

  • Add checkForDeferredDeeplink function to open deferred deep links

v3.6.2 Changes (2015-Jan-08)

  • setEmailCollection hotfix for Android API level < 19

v3.6.1 Changes (2014-Nov-11)

  • setEmailCollection collects other available email addresses on device

v3.6 Changes (2014-Nov-11)

  • Add optional setEmailCollection function to collect primary Gmail address as user email
  • Requires GET_ACCOUNTS permission to succeed, if permission is missing, will not try to collect

v3.5 Changes (2014-Oct-20)

  • Add setAndroidIdMd5, setAndroidIdSha1, setAndroidIdSha256 functions

v3.4.2 Changes (2014-Oct-02)

  • Rewrite clearer debug LogCat output messages on failed requests

v3.4.1 Changes (2014-Sep-29)

  • Init parameters sequentially to prevent rare race condition with accessing param values

v3.4 Changes (2014-Sep-14)

  • Support foreign characters encoding in MAT event items
  • More consistent user agent collection

v3.3.3 Changes (2014-Jul-28)

  • delay first session call up to 60s to wait for GAID and INSTALL_REFERRER to be set (if both are received in that time, send request immediately)

v3.3.2 Changes (2014-Jul-17)

  • fix non-thread-safe getCurrencyCode
  • fix for appending open log id

v3.3 Changes

  • collect device CPU type
  • measureAction overloads with event ID as int
  • added setters for pre-loaded app attribution

v3.2.4 Changes

  • remove Android id, device id, mac address autocollect (use setAndroidId, setDeviceId, setMacAddress if continuing to use identifiers)

v3.2.3 Changes

  • collect store app installer package name
  • send request retry count for failed queued requests
  • lower retry frequency for subsequent failures

v3.2.2 Changes

  • fix for occasional NullPointerException when requesting an internal parameter immediately after initializing

v3.2 Changes

  • persist userId, userName, userEmail to disk to make re-engagement attribution easier
  • add setEventContentType, setEventContentId, setEventLevel, setEventQuantity, setEventSearchString, setEventRating, setEventDate1, and setEventDate2 methods

v3.1 Changes

  • Changed trackSession and trackAction to measureSession and measureAction
  • Send is_paying_user=1 if the user has ever produced revenue (measureAction with revenue > 0)

v3.0.5 Changes

  • Send system times in Unix epoch format
  • Retry (enqueue) HTTP connections with almost all error states
  • Require Google Play Ad ID limitation enablement setting

v3.0.3 changes

  • Added setUserName, setUserEmail methods

v3.0 changes

  • Replace install/update tracking with sessions
  • Added Google Advertising Id and isLimitAdTrackingEnabled setters
  • Reworked MobileAppTracker to be a singleton
  • Added new trackAction with event item overloads
  • Removed setAdvertiserId, setKey – only pass via init
  • Removed setRefId, setRevenue – only pass via trackAction

v2.7 changes

  • Add Facebook, Google, Twitter user id setters
  • Add getSDKVersion
  • setAppAdTracking renamed to setLimitAdTrackingEnabled
  • Recommend passing Application Context over Activity Context

v2.6 changes

  • Auto-get referral source package and url
  • Make ref id thread-safe, add ref id as overloaded trackAction param
  • Fix for in-app purchase validation with IAP data
  • Only collect device ID/MAC address if required permissions are detected

v2.5 changes

  • Add Google Play In-App purchase parameters for verification in trackAction

v2.4.1 changes

  • Add setAppAdTracking setter for app-level ad opt-out

v2.4 changes

  • Better exception handling and added more informative debug output
  • Improve offline event queue synchronization

v2.3 changes

  • Add age, gender, latitude, longitude, altitude setters
  • Add MATEventItem class for trackAction use

v2.2 changes

  • Separate debug and allow duplicate settings
  • Add MATResponse interface for reading platform responses
  • Show alert dialog warning if debug mode is on
  • Add event_referrer setter for app that caused open

v2.1 changes

  • Add platform response to debug log output
  • Make revenue input into Double
  • Add site_id setter
  • Add “trackPurchase” method for store purchase events
Have a Question? Please contact support@tune.com for technical support.