Mobile Services API reference

Track Deep link

You can use this API to track a deep link or a marketing link, as long as the link contains a key a.deeplink.id and a corresponding non-null and user generated value. The link can be created in the Adobe Mobile Services UI or be generated by another vendor.

Android
iOS
Android

Syntax

public static void trackAdobeDeepLink(final Uri uri)

Example

Uri testUri = new Uri.Builder()
.scheme("adobelinktest")
.appendQueryParameter("a.deeplink.id", "test_deeplinkId")
.appendQueryParameter("a.launch.campaign.trackingcode", "code")
.appendQueryParameter("test_key", "test_value")
.build();
MobileServices.trackAdobeDeepLink(testUri);
iOS

Syntax

+ (void) trackAdobeDeepLink: (NSURL*) url;

Example

Objective C

NSURL* url = [NSURL URLWithString:@"adobelinktest://x?a.deeplink.id=test_deeplinkId&a.launch.campaign.trackingcode=code&test_key=test_value"];
[ACPMobileServices trackAdobeDeepLink:url];

Swift

let url = URL(string: "adobelinktest://x?a.deeplink.id=test_deeplinkId&a.launch.campaign.trackingcode=code&test_key=test_value")!
ACPMobileServices.trackAdobeDeepLink(url)

Process Referrer Intent

You can use this API to process the referrer intent that was received from Android.

This API is only available in Android.

processReferrer

Syntax

public static void processReferrer(final Context context, final Intent intent)

Example

public void onReceive(Context context, Intent intent) {
MobileServices.processReferrer(context, intent);
}

Process the Google Play Install Referrer

You can use this API to process the data you get from the Google Play Install Referrer APIs.

This API is available starting in Android version 1.1.0.

processReferrer

Syntax

public static void processGooglePlayInstallReferrerUrl(final Context context, final Intent intent)

Example

void handleGooglePlayReferrer() {
// Google recommends only calling this API the first time you need it:
// https://developer.android.com/google/play/installreferrer/library#install-referrer
// Store a boolean in SharedPreferences to ensure we only call it once.
final SharedPreferences prefs = getSharedPreferences("acquisition", 0);
if (prefs != null) {
if (prefs.getBoolean("referrerHasBeenProcessed", false)) {
return;
}
}
final InstallReferrerClient referrerClient = InstallReferrerClient.newBuilder(getApplicationContext()).build();
referrerClient.startConnection(new InstallReferrerStateListener() {
private boolean complete = false;
@Override
public void onInstallReferrerSetupFinished(int responseCode) {
switch (responseCode) {
case InstallReferrerClient.InstallReferrerResponse.OK:
// connection is established
complete();
try {
final ReferrerDetails details = referrerClient.getInstallReferrer();
// pass the install referrer url to the SDK
MobileServices.processGooglePlayInstallReferrerUrl(details.getInstallReferrer());
} catch (final RemoteException ex) {
Log.w("Acquisition - RemoteException while retrieving referrer information (%s)", ex.getLocalizedMessage() == null ? "unknown" : ex.getLocalizedMessage());
} finally {
referrerClient.endConnection();
}
break;
case InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
case InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE:
default:
// API not available in the Play Store app - nothing to do here
complete();
referrerClient.endConnection();
break;
}
}
@Override
public void onInstallReferrerServiceDisconnected() {
if (!complete) {
// something went wrong trying to get a connection, try again
referrerClient.startConnection(this);
}
}
void complete() {
complete = true;
SharedPreferences.Editor editor = getSharedPreferences("acquisition", 0).edit();
editor.putBoolean("referrerHasBeenProcessed", true);
editor.apply();
}
});
}