@patedit patedit released this Apr 20, 2018 · 7 commits to master since this release

Assets 2

Mixpanel helps you to be GDPR compliant. You can now disable and enable tracking at runtime by using new APIs we have written for you:

MixpanelAPI.getInstance(context, "TOKEN").optOutTracking()
  • Removes any PII from the device and stops the SDK from tracking - See doc.
MixpanelAPI.getInstance(context, "TOKEN").optInTracking()
  • Use this method to opt-in an already opted-out user from tracking. See doc.
MixpanelAPI.getInstance(context, "TOKEN").hasOptedOutTracking()
  • Returns true if the user has opted out from tracking.

You can also initialize the SDK specifying a default tracking behavior (e.g do not track until optInTracking() is called): See doc

MixpanelAPI mixpanelAPI = MixpanelAPI.getInstance(context, "TOKEN", true);

@patedit patedit released this Apr 11, 2018 · 10 commits to master since this release

Assets 2

Fixes

  • Prevent double tracking for some experiments
  • Prevent tweaks declaration before they have been explicitly declared in code. Fixes #531
  • Fix in-app notification crash #516

Improvements:

  • Tweaks are cleared after calling reset() now.
  • Added logic to prevent dup events at ingestion time
  • Apply all editor changes at once when connected to Mixpanel UI builder
  • Increase data expiration max time value

@patedit patedit released this Feb 21, 2018 · 20 commits to master since this release

Assets 2

You can now change Mixpanel endpoints at runtime by using the following APIs:

MPConfig.getInstance(this).setEventsEndpoint("https://myapp.company.com/trackendpoint/");
MPConfig.getInstance(this).setPeopleEndpoint("https://myapp.company.com/peopleendpoint/");
MPConfig.getInstance(this).setDecideEndpoint("https://myapp.company.com/decidepoint/");

If you wish to restore Mixpanel values you can use the following APIs:

MPConfig.getInstance(this).setMixpanelEventsEndpoint();
MPConfig.getInstance(this).setMixpanelPeopleEndpoint();
MPConfig.getInstance(this).setMixpanelDecideEndpoint();

(*) Remember that if you just need to override our endpoint always, you are safe by keep using the following meta-tags in your AndroidManifest.xml

<meta-data android:name="com.mixpanel.android.MPConfig.EventsEndpoint"
            android:value="https://myapp.company.com/trackendpoint/" />
<meta-data android:name="com.mixpanel.android.MPConfig.PeopleEndpoint"
            android:value="https://myapp.company.com/peopleendpoint/" />
<meta-data android:name="com.mixpanel.android.MPConfig.DecideEndpoint"
            android:value="https://myapp.company.com/decidepoint/" />

@patedit patedit released this Jan 24, 2018 · 23 commits to master since this release

Assets 2
  • Fixes IllegalStateException when removing a mini in-app notification (#516)

@patedit patedit released this Dec 12, 2017 · 32 commits to master since this release

Assets 2

New features

Fixes

  • Fix NullPointerException on Pair.hashCode(): #507 and #515

@patedit patedit released this Oct 10, 2017 · 38 commits to master since this release

Assets 2

Fixes

  • When running an experiment with multiple tweaks, only one was applied.

Improvements

  • We now persist variants as soon as the SDK receives them. In our previous release we relied on the call of joinExperimentsIfAvailable() method.
  • We now apply persisted tweaks even if they are not declared yet.

@patedit patedit released this Sep 23, 2017 · 43 commits to master since this release

Assets 2

New features

  • We now persist Tweaks and AB test experiments!
  • Android Oreo support. If you want to customize your notifications channel for devices running 26 or above you can use the following new keys:
<meta-data android:name="com.mixpanel.android.MPConfig.NotificationChannelId"
                   android:value="mixpanel_id" />

<meta-data android:name="com.mixpanel.android.MPConfig.NotificationChannelName"
                   android:value="mixpanel" />

<meta-data android:name="com.mixpanel.android.MPConfig.NotificationChannelImportance"
                   android:value="4" /> <!-- IMPORTANCE_HIGH -->
<meta-data android:name="com.mixpanel.android.MPConfig.UseIpAddressForGeolocation"
                   android:value="false" />
  • You can now specify maximum and minimum values for your tweaks with longTweak intTweak doubleTweak and floatTweak.

Fixes

  • Fix SecurityException crash on some Samsung devices running 7.0 due to missing BLUETOOTH permission (fixes #424)
  • Call onMixpanelTweakUpdated only after tweaks are updated (fixes #472)
  • Fix random crash on emulators (#417)
  • Fix crash using mini in-app notifications when trying to remove a notification while the activity was being destroyed (fixes #400)
  • Fix crash if we tried to show an in-app before people.identify() is called (fixes #449)
  • Fix BadParceableException for activities with unparceable intents (fixes #251)
  • Specify locale to calculate session length so session lengths are always in seconds.

Improvements

  • Various AB tests and Codeless events improvements (see PR for more details #492)
  • Remove fallback urls support. The following meta-tags won't have any effect:
com.mixpanel.android.MPConfig.DisableFallback
com.mixpanel.android.MPConfig.EventsFallbackEndpoint 
com.mixpanel.android.MPConfig.DecideFallbackEndpoint 
com.mixpanel.android.MPConfig.PeopleFallbackEndpoint
  • Change thread priority from THREAD_PRIORITY_LESS_FAVORABLE to THREAD_PRIORITY_BACKGROUND
  • Track whether the user tapped on the primary or secondary button in an in-app notification. We also now track $campaign_open even if there is no cta url
  • Cast campaign_id and message_id to integers