iOS / Android:
Link User Experience:
Build quick links that should deep link (vs. open home screen)
Email the link to yourself
Do NOT paste the link in the browser bar
Ensure the email does not “wrap” the link (i.e., tracking or security domain)
Click link from a test device (not a simulator)
Ensure the app version tested uses the same API key as the link (test vs. live)
Click link in these scenarios
Launch your application, and view the debug logs in the log console (i.e. Logcat).
Verify that Branch SDK is initialized correctly, by making sure the SDK made a request to v1/open or v1/install endpoints:
Close the application and verify that the SDK sent a request to the v1/close endpoint.
Repeat steps 2-4 a couple of times to make sure the requests are sent on every action, and not just the first time you Launch the application.
Use the following methods for iOS or Android to test the link, and make sure that it is all setup. Make sure to verify that link data is passed into the application every time, and your application is able to parse the data correctly via initSession() callback.
SDK Custom Event Logging:
Verify that each event is sent to Branch by verifying the Logs (with debug/logging enabled, you should see a v1/event call) and Dashboard Liveview events
If you are a Data Feeds user, you should see this event attributed in a Custom Event export.
Click on a link
Verify that each event is sent to Branch
SDK: Verify the Logs (by calling the setDebug()/enableLogging(), you should see a v1/event call) and
Data Feeds: You should see this event attributed with link ID in the last_attributed_touch_data_tilde_id data (Export API, CSVs, Webhooks)
Dashboard Liveview events: You should see the event triggered and the link in the Session Referring Link URL
Deferred Deep Linking:
Connect a test device to your computer
Uninstall all app versions (test & prod) from device
Click a branch link in device
Let link redirect to the App Store, but do NOT download the app
Build app into the device via xcode|android studio
Ensure app build contains Branch SDK and the same API key as the link
MUST happen within 2 hours of clicking link (Branch matching window defaults to 2 hours)
Open app to initialize Branch SDK, which matches browser<>device pair with most recent click
If device clicked any branch link before, match is guaranteed --- If not, Branch will use fingerprinting to match
If Branch saw browser<>device pair install app in the past, +is_first_session parameter value will be “0”
To force +is_first_session to be “1” during testing, activate debug mode in the SDK
Ensure you aren’t running any Adblockers (some block the web SDK)
Ensure branch-latest.min.js is loaded in the network calls
Look for app.link request:
Ensure response is 200 OK
Ensure correct Branch key is in the branch_key param
Confirm API key used in the web SDK aligns with API key used in app
Validate Deep Link routing setup
If not using $canonical_url, confirm keys accounted for via banner template, .setBranchViewData, or Metatags
Confirm app recognizes app.link alternate domains
Activate banner and validate filters
Check urls containing the web SDK, where banner should appear
Check urls containing the web SDK, where banner should NOT appear
Load web pages with banners that will deep link (i.e., not home screen), in these scenarios
iOS - Safari (app not installed)
iOS - Safari (app installed - cold start)
iOS - Safari (app installed - warm start)
iOS - Chrome (app not installed)
iOS - Chrome (app installed - cold start)
iOS - Chrome (app installed - warm start)
Android - Chrome (app not installed)
Android - Chrome (app installed - cold start)
Android - Chrome (app installed - warm start)
Test on actual devices, and utilize Test Mode to imitate fresh installs, otherwise - Branch will be able to identify that device previously had the application installed, and will not send the install event.
When testing on multiple devices at the same time - it is best to use different links, and not identify with the same ID. Otherwise Branch will consider both devices to be used by the same user. In that case - links clicked on one device will be able to pass data to another device.
We also recommend testing on different networks, or on one device at a time to prevent flaky behavior.
During testing, you may run into Error messages containing the following text, or its variation: “can't open the page because the address is invalid.” This is an indicator that you used to have your application installed, and used it recently. You then uninstalled the application, and clicked on a Branch link.
This happens when our forced URI redirect mode tries to forcefully open the application via a URI scheme. When the application is not available on the device - it will result in the given error.
This scenario will almost never happen to regular users, as our research has shown, however it will greatly improve app opening through deep linking.
If you would rather be on a safe side - you may change the forcefulness of the mode at the top of your Link Settings page. We recommend keeping it at the intelligent mode setting.
Did you find it helpful?Send feedback