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.
public static void trackAdobeDeepLink(final Uri uri)
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);
+ (void) trackAdobeDeepLink: (NSURL*) url;
NSURL* url = [NSURL URLWithString:@"adobelinktest://x?a.deeplink.id=test_deeplinkId&a.launch.campaign.trackingcode=code&test_key=test_value"];​[ACPMobileServices trackAdobeDeepLink:url];
let url = URL(string: "adobelinktest://x?a.deeplink.id=test_deeplinkId&a.launch.campaign.trackingcode=code&test_key=test_value")!ACPMobileServices.trackAdobeDeepLink(url)
You can use this API to process the referrer intent that was received from Android.
This API is only available in Android.
public static void processReferrer(final Context context, final Intent intent)
public void onReceive(Context context, Intent intent) {MobileServices.processReferrer(context, intent);}
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
.
public static void processGooglePlayInstallReferrerUrl(final Context context, final Intent intent)
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;​@Overridepublic void onInstallReferrerSetupFinished(int responseCode) {switch (responseCode) {case InstallReferrerClient.InstallReferrerResponse.OK:// connection is establishedcomplete();try {final ReferrerDetails details = referrerClient.getInstallReferrer();​// pass the install referrer url to the SDKMobileServices.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 herecomplete();referrerClient.endConnection();break;}}​@Overridepublic void onInstallReferrerServiceDisconnected() {if (!complete) {// something went wrong trying to get a connection, try againreferrerClient.startConnection(this);}}​void complete() {complete = true;SharedPreferences.Editor editor = getSharedPreferences("acquisition", 0).edit();editor.putBoolean("referrerHasBeenProcessed", true);editor.apply();}});}