Cross-channel Conversion Tracking

About Cross-channel Conversion Tracking

Conversion tracking enables marketers using Responsys to evaluate how effective their marketing campaign is in driving a particular post-clickthrough action, such as making a purchase. With the Cross-Channel Conversion Tracking feature, Responsys extends its conversion tracking functionality, so that marketers can attribute conversions that occur in your mobile app to an email campaign.

For example, consider a freemium health and fitness mobile app that monetizes by having customers upgrade to a 'premium' version. The company sends email campaigns to customers to highlight the benefits of the premium service and then routes them to their mobile app, where customers are prompted to upgrade. When the customer does upgrade, this upgrade is then tied back to the email campaign that prompted the upgrade.

How Cross-channel Conversion Tracking works

For Cross-Channel Conversion Tracking to work, Marketers create email campaigns that contain deep-linked URLs to their organization’s mobile app. The mobile app must be configured to record the click, wait for the conversion action, and then send the conversion to Responsys. With this feature, conversions on email campaigns (via deep linked URLs to mobile apps) that happen on a mobile app are now attributed to the email campaign. Marketers can view these conversion metrics in Interactive Dashboards, using the Browser Types report for the email campaign.

Modifying your mobile app code to support Cross-channel Conversion Tracking

As the Mobile App Developer, you must update your organization’s mobile app to be able to pass the conversion events from the app, along with the relevant session information, to the Responsys listener (also knows as the Response Handler). Responsys uses the session information to attribute the conversion to the email campaign.

This topic provides the steps for those who would like to link from a Responsys email campaign directly into their iOS mobile app (if installed). The following section details out the Implement Resolver Code in your iOS App.

NOTES:

  • Marketers may use email campaigns to send deep-links to specific screens in their app. When a user clicks on this deep-link (from email), the user is taken to their app

  • The APIs allow a conversion happening in the app to be attributed to the email campaign that had launched the app.

  • Mobile app developers define the Platform Type, which appears as the OS in the Interactive Dashboards report.

  • Device Type for mobile app conversion will be Mobile, even if it happens from a tablet.

  • Mobile app developers cannot determine or define the conversion session (that is, what is the amount of time before the system stops counting these types of conversions?).

  • Conversions are not recorded if the conversion happens during Responsys downtime.

Before you begin

  • Your Oracle Responsys account must be enabled for the Responsys Mobile App Platform, and your pod must be upgraded to 18B or later.

  • Your mobile app must incorporate the Push SDK 6.37 (for Responsys 18B) or later.

  • Only after Android App Links is enabled and setup, can marketers leverage Cross-channel Conversion tracking.

Steps for modifying your code

[1] Implement an Activity to intercept the deeplink url that is part of your email campaign. For example, if your email campaign contains a deeplink, such as https://www.linktomyapp.net/pub/acc?product=123, then set up your Activity in the AndroidManifest as shown below. This will allow the MyLinkReceiverActivity to intercept all links from linktomyapp.net having path /pub/acc and /pub/cc. Note that the path may be different if your account is set up with global routing. See the Responsys Developer Help Center for more information.

<activity
    android:name=".MyLinkReceiverActivity"
    android:excludeFromRecents="true"
    android:theme="@android:style/Theme.Translucent.NoTitleBar">
    <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <data
            android:host="linktomyapp.net"
            android:pathPrefix="/pub/acc"
            android:scheme="https" />

        <data
            android:host="linktomyapp.net"
            android:pathPrefix="/pub/cc"
            android:scheme="https" />
    </intent-filter>
</activity>

[2] From the MyLinkReceiverActivity, call the SDK method PushIOManager.trackEmailConversion() as follows:

                    public class MyLinkReceiverActivity extends Activity {

                        @Override
                        protected void onCreate(@Nullable Bundle savedInstanceState) {
                            super.onCreate(savedInstanceState);
                            PushIOManager.getInstance(getApplicationContext()).trackEmailConversion(getIntent());
                        }
                    }
                
                   class MyLinkReceiverActivity : AppCompatActivity() {
                        override fun onCreate(savedInstanceState: Bundle?) {
                            super.onCreate(savedInstanceState)
                            setContentView(R.layout.activity_my_link_receiver)

                            PushIOManager.getInstance(applicationContext).trackEmailConversion(intent)
                        }
                    }
                    

The SDK processes the deeplink and stores the relevant metadata. At the time of conversion, when you call PushIOManager.trackEngagement( ) (as described in this topic), the conversion will be attributed to the email campaign.

With the above API, the SDK fetches the deeplink/weblink as defined for the email campaign by your marketer. Once fetched, the SDK tries to launch the deeplink first, then the weblink (in case the deeplink fails to launch). If you want your app to handle the deeplinks/weblinks and decide which screen to display, use the following API, which provides a callback containing the deeplink/weblink.

                    public class MyLinkReceiverActivity extends Activity {

                        @Override
                        protected void onCreate(@Nullable Bundle savedInstanceState) {
                            super.onCreate(savedInstanceState);

                            PushIOManager.getInstance(getApplicationContext()).trackEmailConversion(getIntent(),
                                    new PIODeepLinkListener() {

                                @Override
                                public void onDeepLinkReceived(String deeplinkUrl, String webLinkUrl) {
                                    // handle the deeplink / weblink
                                }
                            });
                        }
                    }
                
                   class MyLinkReceiverActivity : AppCompatActivity() {
                        override fun onCreate(savedInstanceState: Bundle?) {
                            super.onCreate(savedInstanceState)
                            setContentView(R.layout.activity_my_link_receiver)
                            PushIOManager.getInstance(applicationContext).trackEmailConversion(
                                intent, object : PIODeepLinkListener {
                                    override fun onDeepLinkReceived(deepLinkUrl: String?, webLinkUrl: String?) {
                                        // handle the deeplink / weblink
                                    }
                                });
                        }
                    }
                    

Troubleshooting Cross-channel Conversion Tracking

Make sure you setup the <intent-filter> with the correct data for scheme, host and path prefix. This should match with the hyperlinks that are part of the email campaign.

Conversion not attributed to the correct email campaign?

To rule out any issues with the SDK integration, set the debugging log level to Log.VERBOSE in your mobile app. This is described in the Debugging & Logging topic. Share the logs captured with the Responsys Support team. Make sure the logs are captured from the time the hyperlink/deeplink in email is clicked up to initiating a conversion.