Removing the Orchestration Plugin

The Orchestration Gradle Plugin dependency is used to facilitate Identity Transfer and Last Click Attribution in Android Apps.

If the Orchestration Plugin is enabled in your app, the SDK automatically:

  • adds one-tid as a URL or URI query parameter to Weblinks opened in a WebView, CustomTab or external browser,
  • sends an Interaction request to /MXO-click when a URL or URI is opened in a WebView, CustomTab, or external browser, to facilitate last click attribution, and
  • enables the ability to pick up parameters from deep links that open in your App.

For more information, see the Orchestration Plugin Readme.

Why remove the Orchestration plugin?

You may decide to remove the The Orchestration plugin for configurations reasons or if build times are adversely impacted by its inclusion in your App.

How do I remove the Orchestration plugin?

The Orchestration plugin must be removed by an App Developer.

How do I add the Identity Transfer functionality programmatically?

Identity Transfer enables MXO to link a customer across two Touchpoints and merge any information held for that customer into a single profile, for example, when a customer is using a mobile app and that app opens a web view. The Orchestration plugin intercepts these location changes and updates the URL or URI location with that user's TID, enabling MXO to link a customer across the two Touchpoints and merge any information held for that customer into a single profile. You can preserve this functionality by programmatically creating a URL or URI with a one-tid parameter using the ONE TID Append API. Use this API to create URLs or URIs with the TID in any location where your app uses an Android Intent to open a Web Browser or other application using that URL or URI.

Example code snippet

val myWebView = WebView(this) val urlWithOneTid = URL("http://thunderhead.com").generateIdentityTransferUrl() myWebView.loadUrl(urlWithOneTid.toString()) 
Note: This assumes you have successfully configured the SDK, and that MXO has received at least one interaction request and returned a TID.

The SDK also provides the ability to limit Identity Transfer, programmatically, by including or excluding that functionality for a specific subset of links in your App.

How do I add the Outbound Link Tracking functionality programmatically?

Outbound Link Tracking enables MXO to record last click attribution data, automatically, letting you capture where your users are heading after they leave your app. The Orchestration plugin intercepts these location changes and sends a /MXO-click interaction to MXO on your Apps behalf. You can preserve this functionality using the Outbound Link API. Use this API to inform the SDK that an outbound action is occurring in any location where your app uses an Android Intent to open another application.

Example code snippet

val myWebView = WebView(this) val myUrl = Uri.parse("https://thunderhead.com") myUrl.sendInteractionForOutboundLink() myWebView.loadUrl(myUrl.toString()) 
Note: This assumes you have successfully configured the SDK, and that MXO has received at least one interaction request and returned a TID.

How do I send the Deep Link Properties programmatically?

Deep Link enables MXO to track when your app is opened using a "Deep Link", typically represented by various query parameters. The Orchestration plugin tracks these links by intercepting the Android Activity Lifecycle event for opening your Apps activity and sending the link's query parameters on your Apps behalf. You can preserve this functionality using the Deep Link Properties API. On your Apps activity check for any Android Intent data that has URI opening that activity and call the Deep Link Properties API to inform the SDK that a deep link action has opened the app.

Example code snippet

override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val deepLinkIntent = intent deepLinkIntent.data?.processDeepLink() } 
Note: This assumes you have successfully configured the SDK, and that MXO has received at least one interaction request and returned a TID.