Overview
Branch includes SDK methods to allow retrieval of our last attributed touch data (LATD) from the client. This results in an asynchronous call being made to Branch's servers with LATD data returned when possible.
Last attributed touch data contains the information associated with that user's last viewed impression or clicked link.
Access
Please note that access to last attributed touch data is part of our Performance product.
Fields Returned
By using the LATD SDK querying, the following fields will be returned to the client:
last_attributed_touch_data_tilde_id
last_attributed_touch_data_tilde_campaign
last_attributed_touch_data_tilde_campaign_id
last_attributed_touch_data_tilde_campaign_type
last_attributed_touch_data_tilde_customer_campaign
last_attributed_touch_data_tilde_channel
last_attributed_touch_data_tilde_feature
last_attributed_touch_data_tilde_stage
last_attributed_touch_data_tilde_tags
last_attributed_touch_data_tilde_advertising_partner_name
last_attributed_touch_data_tilde_advertising_partner_id
last_attributed_touch_data_tilde_secondary_publisher
last_attributed_touch_data_tilde_secondary_publisher_id
last_attributed_touch_data_tilde_customer_secondary_publisher
last_attributed_touch_data_tilde_creative_name
last_attributed_touch_data_tilde_creative_id
last_attributed_touch_data_tilde_ad_set_name
last_attributed_touch_data_tilde_ad_set_id
last_attributed_touch_data_tilde_customer_ad_set_name
last_attributed_touch_data_tilde_ad_name
last_attributed_touch_data_tilde_ad_id
last_attributed_touch_data_tilde_customer_ad_name
last_attributed_touch_data_tilde_keyword
last_attributed_touch_data_tilde_keyword_id
last_attributed_touch_data_tilde_customer_keyword
last_attributed_touch_data_tilde_sub_site_name
last_attributed_touch_data_tilde_customer_sub_site_name
last_attributed_touch_data_tilde_branch_ad_format
last_attributed_touch_data_tilde_technology_partner
last_attributed_touch_data_tilde_banner_dimensions
last_attributed_touch_data_tilde_placement
last_attributed_touch_data_tilde_placement_id
last_attributed_touch_data_tilde_customer_placement
last_attributed_touch_data_tilde_agency
last_attributed_touch_data_tilde_agency_id
last_attributed_touch_data_tilde_optimization_model
last_attributed_touch_data_tilde_secondary_ad_format
last_attributed_touch_data_tilde_external_touch_id
last_attributed_touch_data_tilde_journey_id
last_attributed_touch_data_tilde_journey_name
last_attributed_touch_data_tilde_view_id
last_attributed_touch_data_tilde_view_name
last_attributed_touch_data_plus_referring_domain
last_attributed_touch_data_plus_current_feature
last_attributed_touch_data_plus_via_features
last_attributed_touch_data_dollar_3p
last_attributed_touch_data_dollar_fb_data_terms_not_signed
last_attributed_touch_data_plus_web_format
last_attributed_touch_data_plus_touch_id
last_attributed_touch_data_custom_fields
Enabling LATD Feature
Before you can receive Branch last attributed touch data client-side, you need to enable this functionality in Branch. This functionality is disabled by default.
To enable LATD:
In the left-hand navigation, click on Link Settings.
On the Link Settings page, scroll down and expand Advanced Settings.
Within the Advanced Settings section, check the box next to Enable retrieving Last Attributed Touch Data via SDKs.
Once checked, scroll down to the bottom of the page and click Save.

Required SDK Methods
Important: When calling the LATD method, you can provide a value for the attributionWindow you want applied to the data. As a best practice, we recommend always explicitly passing your desired attributionWindow value to ensure consistent behavior across Android and iOS, and across SDK versions.
Note: LATD for self-attributing networks
This endpoint reads last attributed touch data from our Persona store. If you invoke it immediately after session start, it may not contain the most recent attribution data. Requests to self-attributing networks (SANs) like Facebook and Google are processed asynchronously and take time to finish.
iOS
[[Branch getInstance] lastAttributedTouchDataWithAttributionWindow:0 completion:^(BranchLastAttributedTouchData * _Nullable latd, NSError * _Nullable error) {
// access the data through latd.lastAttributedTouchJSON;
}];Branch.getInstance().lastAttributedTouchData(withAttributionWindow: 0) { latd, error in
// access the data through latd?.lastAttributedTouchJSON
}Android
Caution: use Android SDK version 5.21.1+
In Android SDK versions prior to 5.21.1, omitting the
attributionWindowparameter caused the SDK to return no data. This has been fixed in SDK 5.21.1 so that if you don’t provide a value, the SDK will still correctly fall back to the attribution window you’ve configured in Branch.
You may omit theattributionWindowparameter if you are using Android SDK 5.21.1 or later. The SDK will use your Branch attribution window setting.
// Recommended: always specify the attribution window explicitly
Branch.getInstance().getLastAttributedTouchData(
new BranchLastAttributedTouchDataListener() {
@Override
public void onDataFetched(JSONObject jsonObject, BranchError error) {
// Read the data from the jsonObject
}
}, 30); // Attribution window in daysWeb
branch.lastAttributedTouchData(
attribution_window,
callback (err, data)
);React Native
const attributionWindow = 365;
const latData = await branch.lastAttributedTouchData(attributionWindow);
// latData is an Object