All Versions
103
Latest Version
Avg Release Cycle
21 days
Latest Release
546 days ago

Changelog History
Page 9

  • v4.3.0 Changes

    • Added support for App Links tracking

    • Added a way to get super properties

  • v4.2.2 Changes

    • Removed lint warnings from build

    • Fixed issue that could cause NullPointerExceptions to be thrown from the library if a user was identified as null

    • Handle attempts to load In-app notifications in low memory conditions

  • v4.2.1 Changes

    • Fixed a bug that would cause events to be dropped when the device thinks it has a valid network connection, but cannot actually send data over it.
  • v4.2.0 Changes

    • showSurveyById and showNotificationById have been added for precise control over which survey or notification should be displayed.

    • โž• Added several default properties for Mixpanel People profiles. Each call to set() will now automatically include the application version name, Android version, and manufacturer, make, and model of the phone.

  • v4.1.0 Changes

    ๐Ÿ‘ This version adds support for Android in-app notifications.

    • There is now an additional theme parameter on the SurveyActivity declaration in AndroidManifest.xml that is used for full screen in-app notifications.
      <activity android:name="com.mixpanel.android.surveys.SurveyActivity"
                android:theme="@style/com_mixpanel_android_SurveyActivityTheme"/>
    
    • A new unified set of functions have been created to make it easier to fetch and display surveys and in-app notifications.

      • getSurveyIfAvailable() and getNotificationIfAvailable() have been added to fetch Survey and InAppNotification objects when the library has successfully received them. You may use these objects to display your own custom surveys or in-app notifications.
      • showSurveyIfAvailable() and showNotificationIfAvailable() have been added to display surveys and notifications when the library has successfully received them.
      • addOnMixpanelUpdatesReceivedListener() and removeOnMixpanelUpdatesReceivedListener() have been added so you may be notified when the library has successfully received a survey or in-app notification in the background.
      • showSurvey() and checkForSurvey() functions have been deprecated.
    • ๐Ÿ—„ com.mixpanel.android.MPConfig.AutoCheckForSurveys has been deprecated. The option has been renamed to com.mixpanel.android.MPConfig.AutoShowMixpanelUpdates. It is also now used for both surveys and in-app notifications.

    • โœ… com.mixpanel.android.MPConfig.TestMode has been added. This option, when set to true, will render your in-app notifications and surveys but not track that they have been displayed. If you have multiple notifications/surveys, calls the respective show/get methods will simply rotate through them.

    • ๐Ÿ—„ MixpanelAPI.logPosts() has been deprecated. Set the com.mixpanel.android.MPConfig.EnableDebugLogging flag to true to now get extensive debugging output.

    • The minimum Android version necessary for surveys and in-app notifications has been increased to 14, Ice Cream Sandwich to improve stability.

    • MixpanelAPI.alias() has been added.

    • ๐Ÿ”€ The default library manifest no longer merges in recommended tags by default, as this was breaking builds for some users. You'll need to follow the steps in https://mixpanel.com/help/reference/android to configure your manifest for automatic referrer tracking, push notifications, in-app messages, and surveys. The recommended <application> tag in your app is

      <application>
              <!-- This activity allows your application to show Mixpanel
                   surveys and takeover in-app notifications. -->
              <activity android:name="com.mixpanel.android.surveys.SurveyActivity"
                        android:theme="@style/com_mixpanel_android_SurveyActivityTheme" />
    
              <!-- This receiver will allow your application to register for
                   and receive Mixpanel push notifications.
                   Make sure to change YOUR_PACKAGE_NAME to your own applications package. -->
              <receiver android:name="com.mixpanel.android.mpmetrics.GCMReceiver"
                  android:permission="com.google.android.c2dm.permission.SEND" >
                  <intent-filter>
                      <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                      <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
                      <category android:name="YOUR_PACKAGE_NAME" />
                  </intent-filter>
              </receiver>
    
              <!-- This receiver will allow your application to record referrer
                   parameters as super properties automatically -->
              <receiver android:name="com.mixpanel.android.mpmetrics.InstallReferrerReceiver" android:exported="true">
                  <intent-filter>
                      <action android:name="com.android.vending.INSTALL_REFERRER" />
                  </intent-filter>
              </receiver>
      </application>
    
  • v4.0.1 Changes

    • 0๏ธโƒฃ Default event storage is now 5 days.
  • v4.0.0 Changes

    ๐Ÿš€ This is a major release, with significant changes to library behavior.

    • ๐Ÿ”„ Changes to the steps required to integrate the Mixpanel library in your project.

    In previous releases, the Mixpanel library was distributed as a jar file. As of 4.0.0, use of the library varies with the build tools chosen.

    ###### For Eclipse and Ant

    For building with Eclipse or ant, download the Mixpanel repository and follow the steps outlined here, for "Referencing a Library Project": http://developer.android.com/tools/projects/projects-eclipse.html#ReferencingLibraryProject

    ###### For Gradle and Android Studio

    For building with Gradle or Android Studio- add the following dependency to your build.gradle file

        dependencies {
            compile "com.mixpanel.android:mixpanel-android:4.0.0@aar"
        }
    

    A version of each release is hosted in Maven central, and will not require you to manually download or install any artifacts.

    • ๐Ÿ‘Œ Support for getPeople().union(), getPeople().setOnce(), and getPeople().unset() has been added.

    • 0๏ธโƒฃ Fallback to HTTP from HTTPS is disabled by default

    In previous releases, the Mixpanel library would automatically fall back to communicating over HTTP if HTTPS communication failed. This was to facilitate use on Android 2.2 (Froyo) and older OS versions, which had poor support for modern SSL certificates.

    In the 4.0.0, HTTP fallback behavior is disabled by default, but can be reenabled for users who intend to ship to older devices by adding the following tags to the <application> tag in the Application's AndroidManifest.xml:

      <meta-data android:name="com.mixpanel.android.MPConfig.DisableFallback"
                 android:value="false" />
    
    • ๐Ÿ‘Œ Support for Mixpanel surveys. Support takes the form of two new API calls and some new default automatic behavior

      • MixpanelAPI.getPeople().checkForSurveys() will query Mixpanel for surveys targeted to the current user, and pass a Survey object to a callback when a survey is found, or null if no Survey could be found
      • MixpanelAPI.getPeople().showSurvey() will launch a new Activity that shows the given survey to the user, and send the results of the survey to Mixpanel
      • Unless configured with com.mixpanel.android.MPConfig.AutoCheckForSurveys metadata, applications using the Mixpanel library will automatically query for and show an available survey on application startup.
    • Passing a null token or null context to MixpanelAPI.getInstance() will result in a null return value.

    • Automatic $bluetooth_enabled property will only be added automatically on devices with OS version greater than API 18/OS version 4.3/Jelly Bean MR2. This feature had a critical bug on older platforms, and was not in popular use.

    • ๐Ÿ”ง Users can now configure MixpanelAPI behavior by including <meta-data> tags in the <application> tag of their apps. The following meta-data keys are supported:

      • com.mixpanel.android.MPConfig.FlushInterval (value: a time in milliseconds)

      If provided, the library will use this interval instead of the default as a target maximum duration between attempts to flush data to Mixpanel's servers.

      • com.mixpanel.android.MPConfig.DisableFallback (value: a boolean)

      If provided and equal to "false", the library will attempt to send data over HTTP if HTTPS fails

      • com.mixpanel.android.MPConfig.AutoCheckForSurveys (value: a boolean)

      If provided and equal to "false", the Mixpanel library will not attempt to retrieve and show surveys automatically, users can still show surveys using MixpanelAPI.getPeople().checkForSurvey() and MixpanelAPI.getPeople().showSurvey()

    • Automatic referrer tracking from the Google Play Store

    Adding the following to the main <application> tag in your AndroidManfest.xml will automatically set super properties associated with the referrer to your Google Play Store listing:

      <receiver android:name="com.mixpanel.android.mpmetrics.InstallReferrerReceiver"
                android:exported="true">
          <intent-filter>
              <action android:name="com.android.vending.INSTALL_REFERRER" />
          </intent-filter>
      </receiver>
    
    • Previous version of the library allowed setting "distinct_id" as a superProperty, and would use this value as the distinct id for event tracking. This behavior has been removed, and super properties with the name "distinct_id" will be ignored. Callers can still provide their own value for "distinct_id" in the properties argument to track.

    • ๐ŸŒฒ A scary stack trace log in the common, not-scary case of fallback from HTTPS to HTTP has been removed.

    • ๐Ÿ—„ MixpanelAPI.setFlushInterval() has been deprecated. Use <meta-data android:name="com.mixpanel.android.MPConfig.FlushInterval" android:value="XXX" /> instead, where "XXX" is the desired interval in milliseconds.

    • ๐Ÿ—„ MixpanelAPI.enableFallbackServer() has been deprecated. Use <meta-data android:name="com.mixpanel.android.MPConfig.DisableFallback" android:value="true" /> to disable fallback to HTTP if HTTPS is unavailable.

  • v3.3.1 Changes

    • ๐ŸŽ Internal changes to improve startup performance.
  • v3.3.0 Changes

    • Calls to increment() now accept more general types (doubles instead of longs) existing calls should work without changes, types are strictly more general.

    • ๐Ÿ›ฐ Payloads of increment() are treated as doubles rather than longs in the internal library

  • v3.2.0 Changes

    • The library now falls back to HTTP communication if HTTPS communication is unavailable. In particular, this may occur in early versions of Android that only support a small set of certificate authorities. To disable this behavior, call
      MixpanelAPI.enableFallbackServer(yourMainActivity, false);
    
    • More robust handling of internal threads and work queues.

    The Mixpanel library now owns one, continuous thread for handling messages (rather than spawning a thread on demand.)

    • ๐Ÿ‘Œ Improvements to internal library error handling.