Permutive Developer Hub

Welcome to the Permutive developer hub. You'll find comprehensive guides and documentation to help you start working with Permutive as quickly as possible, as well as support if you get stuck. Let's jump right in!

API Reference

Android release notes

1.4.4 (03/07/20)

  • Add Watson enrichment support (New)
    EventProperties.ALCHEMY_* strings can be used to enrich an event with the watson information provided for the current/page URL.
  • Add PageviewComplete event (New)
    Adds page engagement support for the Android platform. The PageviewComplete event is automatically generated when calling close on a PageTracker object.
  • Always use application context on initialisation (Fix)
    Prevents Activity leaks when passing an Activity as the SDK's context, rather than the Application.
  • Turn off TPD usage reporting as a default (Fix)
    TPD usage reporting is not used by our customers at this time, so this has defaulted to off.

1.4.3 (31/03/20)

  • Report SDK version as a metric (New)
    Reporting SDK version will give us better information on current deployments.
  • Add hashed ip as an event enrichment type (New)
    The string "$ip_address_hash" will now resolve to a hashed version of the client's ip address.
  • Fix instances of dependencies upon startup (Fix)
    Fixes a potential race condition that could allow double creations of SDK dependencies.
  • Fix error reporting so that it includes script date/time (Fix)
    To better diagnose issues we now report the query language creation time in error reports.

1.4.2 (05/03/20)

  • Handle illegal argument exception when unregistering broadcast receiver (Fix)
    Fixed an issue when unregistering a broadcast receiver that has not yet been registered in some cases.

1.4.1 (03/03/20)

  • Always ask server to resolve resources, regardless of cache-control max-age (Fix)
    We now do not honor the cache-control max-age header, as if this is very long we will not fetch the updates files from our servers.
  • do not generate segment_exit events for deleted/missing segments (Fix)
    We now do not generate segment_exit events for missing/deleted segments.
  • update library dependencies (New)
    We've updated our library dependencies to take advantage of the latest bugfixes & enhancements.

1.4.0 (19/02/20)

  • Remove deleted queries from persisted state (New)
    We now detect & delete queries & segments that have been deleted/disabled from the dashboard.
  • Add date support to EventProperties (New)
    In older SDKs a developer had to manually format a datetime object to a String (in ISO 9601), we've added date support for EventProperties so that this will happen automatically.
  • Add appnexus support to add permutive targeting (New)
    We've added preliminary support for ad targeting using the AppNexus SDK with our new appnexus addon library.
  • Add OS/Script/App info to error reports (New)
    When we report an error to our endpoints we now include additional information to help us diagnose issues: The operating system version, the segmentation queries version that is being executed as well as information on the Application (version & identifier).
  • Limit deferred functions upon startup(New)
    While the SDK is initialising, we defer execution of public function calls until this has completed. This was previously unlimited, we have put in a cap so that this does not become unbounded.
  • Add pagetracking API & deprecate context APIs(New)
    The PageTracker API gives support for Pageview and PageviewEngagementAggregate events. The page's context (url/title/referrer) are now tied to a Page, rather than a global Permutive setting. Using the PageTracker API will allow for better reporting & better visibility of engagement on the Android SDK.
    As a result, we would recommend using PageTracker rather than EventTracker for page related events. As a general rule: if an event has a url/title/referrer - it should probably be tracked by the PageTracker object. The global context methods setTitle/setUrl/setReferrer are now deprecated as a result, and we have stopped persisting these values.
  • Fix illegal state in db when reading (Fix)
    A small percentage (around 0.5%) of users have reported an IllegalStateException under certain circumstances. Previously we would halt segmentation & disable the SDK for these users, for 1.4.0 we have a fix so that this will no longer happen.
  • Fix regex matching when disabling (Fix)
    We have made our regular expression matching more straightforward in the event that we have to disable a deployment.
  • Fix consumer proguard typo (Fix)
    Some setups of proguard have stripped away functions that we are using internally. Although we had a @Keep clause on the function, it is still possible that it can be stripped away. We have updated our consumer-proguard so that this is fixed.

1.3.1 (18/12/19)

  • fix issue when migrating from older versions

1.3.0 (28/11/19)



Upgrading from older versions of this SDK can result in a migration issue, we recommend using version 1.3.1 which has a fix for this issue.

  • Add ability to remotely disable by application, os, or sdk version (New)
  • Remove dependency on core library for google ads library (New)
  • Add third party data usage reporting support (New)

1.2.1 (15/10/19)

  • Make engine events session_id & user_id optional (Fix)

1.2.0 (10/10/19)

  • Fix stack size issue for Dalvik VMs (Fix)

1.1.0 (01/10/19)



Segmentation may not occur for OSes using Dalvik VMs, we recommend using version 1.2.0 which has a fix for this issue.

  • Use Rhino as the js engine (New)

1.0.0 (16/09/19)

  • Non-beta release of the Android SDK
  • Correctly handle date time when the format is incorrect (Fix)
  • Reduce memory overhead for db so that it performs well on low end systems (Fix)
  • Only update event server time when posting events (Fix)