Android Version History


(March 3, 2023)

New feature for plugin SDK developers to defer native Branch Android SDK until plugin notifies when ready
To enable, enter this key value pair in your branch.json file inside of your /src/main/assets/
"deferInitForPluginRuntime": true
This feature is opt in only for now. Requires plugin SDK to implement notification to native modules.

Fixes enableLogging feature if set in branch.json
"enableLogging": true


(Dec 7, 2022)

  • Fixes a bug with setIdentity not consistently calling v1/profile
  • Adds switch to prioritize referrer links for attribution over preinstall metadata
    • To enable, call setReferringLinkAttributionForPreinstalledAppsEnabled before Branch.getAutoInstance(this)


(Oct 25, 2022)

  • debug field is now included in all events, previously only on init requests
  • source field moved from data block to top level in v1 url requests


(Oct 3, 2022)

  • For user agent string, move webview instance to ui thread on init
    • To use this method to obtain the user agent string, set Branch.setIsUserAgentSync(true)
    • Static WebSettings is the default


(Sep 30, 2022)

  • Using alternative method to obtain user agent through WebView instance with static as fallback


(Aug 29, 2022)

  • Updated compile and target API to 32, updated build tools
  • Changed POM scope for firebase-appindexing from "runtime" to "compile"


(Aug 15, 2022)

  • Sending app_store install source on requests
  • Added default retry cap for no-internet request queues


(Aug 8, 2022 )

  • Removed unused IMEI strings and references in the Java
  • Change setIdentity call to immediately save provided identity string instead of waiting for network call. Additionally it is sent as part of v1 open and install requests.


( Jun 15, 2022 )

  • Added methods to generate Branch QR codes
    • getQRCodeAsData
    • getQRCodeAsImage
  • Added support for additional store referrer APIs. No code needed other than to import the store's referrer API artifact into your app
    • Huawei App Gallery
    • Samsung Galaxy Store**
    • Xiaomi GetApps**
    • ** Contact your Samsung or Xiaomi representative for assistance with obtaining their store referrer API artifact.
  • Upgraded Google Install Referrer API
  • Updated Android minimum SDK to 21
  • Replaced JCenter with mavenCentral in allprojects.repositories


( Jun 1, 2022 )

  • Fixes an issue with previously set randomly generated configuration values being skipped over.

:warning: v5.1.4

( Apr 29, 2022 )
Warning: This release has a configuration issue that incorrectly marks opens as reinstalls. Please use 5.1.5

  • Fix retry logic for network requests when there is no internet availability.
  • Replace "identity_id" with "randomized_bundle_token" and "device_fingerprint_id" with "randomized_device_token"


( Mar 25, 2022 )

  • Collect and persist GCLID
    • A custom expiration window for the GCLID can be set by public void setReferrerGclidValidForWindow(long window)
  • Credits related methods and fields marked as deprecated
  • Fixed IllegalAccessException on API 31, using DisplayManager instead of WindowManager


( Mar 10, 2022 )

  • Update payloads to include generated UUID when valid GAID is retrieved, replacing hardware ID. UUID is persisted locally.
  • Fix bug which spammed the log for no-op event retry attempts when tracking is disabled.


( Feb 18, 2022 )

  • Fix NPE if intent is null while getting referrer


( Feb 9, 2022 )

  • Added BranchPluginSupport class with deviceDescription() method. Will be used by the AdobeBranchExtension to pass device data.
  • Resolves timeout and non-initialization issues introducing a connect timeout, and retrying init requests.
    • Possible behavior change is with the increased timeout, any operations awaiting these requests may see longer timeouts.
    • To set the timeouts:
      • public void setConnectTimeout(int connectTimeout)
      • public void setTimeout(int timeout) (Time is in milliseconds)


( Nov 10, 2021 )

  • Bug fixes: IntegrationValidator (ConcurrentModificationException, Decoding Resource Strings)


( Oct 15, 2021 )

  • Bug fixes: improper shutdown of resource, multiline server responses
  • Fix crash when using Branch JSON config


( Oct 1, 2021 )

  • Always include Google Play Store referrer in install
  • IntegrationValidator now recognizes String resources
  • Fix edge case that could cause a stack overflow


( Sep 21, 2021 )

  • Avoid NPE when Branch reference in BranchPostTask is garbage collected


( Aug 23, 2021 )

  • Avoid NPE when Activity reference is null


( Aug 4, 2021 )

  • Collect initial_referrer


( May 20, 2021 )

  • Avoid potential NPE
  • When reinitializing session without an expected intent flag, invoke callback with error rather than ignoring it.


( April 29, 2021 )

  • Fix bug that can block UI thread
  • Fix race condition between session initialization requests invoked by client and SDK
  • Fix network request timeout control


( March 1, 2021 )

  • Patch: fix getSdkVersionNumber() API in v2 events


( February 26, 2020 )

  • Add INITIATE_STREAM and COMPLETE_STREAM standard events
  • Fix getSdkVersionNumber() API


( February 17, 2021 )

  • Add API to pass hashed partner parameters (Facebook integration)
  • Fix bugs in the networking pipeline of CPID and LATD requests
  • Fix bug preventing callback invocation when url creation request times out
  • Add support for static SKD configuration via branch.json file
  • Deprecate SDK initializers with isReferrable flag


( Dec 9, 2020 )

  • Reduce calls to v1/close
  • Fix validator errors
  • Fix setNetworkTimeout(...) API


( 10 Aug 2020 )

  • Upgrade Play Referrer library


( 22 Jul 2020 )

  • Remove content discovery


( 08 Apr 2020 )

  • Refactor/deprecate test and debug modes
  • Report google advertising ID when in test mode
  • Set pre-install data via install referrer library


( 17 Mar 2020 )

  • Added documentation with 1:1 session builder replacements of deprecated initSession methods
  • Added disableAdNetworkCallouts(boolean) API


( 06 Mar 2020 )

  • Block self-initialization.
  • Delay initialization and block self-initialization until user removes the delay or timeout passes.
  • Collect OAID from Huawei's new devices that don't support google mobile services anymore
    Introduce sessionBuilder.
  • Fix reInitSession when intent contains the extra "branch" and no "branch_force_new_session".
  • Replace initSessionForced with Branch.bypassWaitingForIntent(true).
  • Remove potential NPE in CPID API.


( 30 Jan 2020 )

  • Accommodate single activity architecture/navigation component (reintroduced "SDK already initialized" error and ensured reInitSession() only fires when intent contains branch data).
  • Do not self-initialize if SDK is bundled with a plugin.


( 23 Jan 2020 )

  • Hotfix revert CPID and LATD listener paths to the newer version.
  • Replace "SDK already initialized" error with logs and return latest referring parameters.


( 22 Jan 2020 )

  • Remove install referrer broadcast receiver, bundle Play Install Referrer Library in the SDK.
  • Ensure callbacks are invoked in Kotlin (non-null listeners are passed).


( 19 Dec 2019 )

  • Make attribution window optional for LATD requests.


( 13 Nov 2019 )

  • Remove initialization race conditions.
  • Do not auto-initialize sessions, make calling initSession a mandatory step required of Branch SDK users (officially this was already implied).
  • Overload reInitSession with different callbacks and start advertising it to users as the official way to handle session reinitialization in cases where activity is in foreground and is being reopened.
  • Make sure carrier field does not contain an empty string, omit the field instead.


( 30 Oct 2019 )

  • Removed fabric artifacts.
  • Closed field gaps with TUNE SDK.
  • Fixed sharing links on devices without a touchscreen.
  • Configurable CDN endpoint.
  • Refactored codebase to follow Android Studio project structure.
  • Decoupled LifecycleObserver from main class.


( 07 Oct 2019 )

  • Support for Fire OS.
  • Do not collect advertising ID when limit ad tracking is enabled.
  • Reset advertising ID and limit ad tracking values every time app becomes visible.


( 26 Sep 2019 )

  • Added support for Cross-Platform ID (CPID) & Last attributed touch data (LATD).


( 18 Sept 2019 )

  • Added new customer_event_alias setter method; removed standard event type: customer_event_alias
  • Added IMEI collection code option


( 09 Aug 2019 )

  • Switched to using Android X from the Android Support Library
  • Added new standard event type: customer_event_alias
  • Implemented support for pre-install analytics
  • Added the option to set a custom base URL



  • Allow short link creation while privacy is enabled



  • Hardware ID is now included in every request
  • Cleaned up compiler warnings, and updated tools to the latest versions



  • Added support for push notifications while the application is in the foreground



  • Ensure that Google Aid is present in all requests
  • Refactored how Debug works, including making sure all Debug messages can be turned off if not in debug mode.
  • Added new standard events for parity with Tune
  • Fixed a synchronization issue around the event queue saving preferences while in a synchronized block.



  • Fixed a TLS1.2 issue with HttpsURLConnection on API Level 16~19 devices
  • Added SDK version tag to the Android SDK to aid Google Scanning APIs
  • The SDK now supports deep linking with enableForcedSession() for apps which choose to finish the Launcher Activity within onStart() method