...
...
Note |
---|
This is a template that should be used to document each feature. It’s meant to be easy, not prescriptive - change it at will! |
Table of contents
Table of Contents |
---|
...
Definition
...
Status
...
Status | ||
---|---|---|
|
Status | ||||
---|---|---|---|---|
|
Status | ||||
---|---|---|---|---|
|
Status | ||||
---|---|---|---|---|
|
...
RBIberia Owner
...
❓ Open questions
Info |
---|
We need to constantly make this section empty. |
Requirements
Problem statement
The lack of integration with Firebase Dynamic Links SDK can limit the accessibility of the application's content, reduce the effectiveness of advertising and marketing campaigns, and restrict content sharing, which can have a negative impact on our customers, sales, and profitability.
Possible solution:
To implement the integration with Firebase Dynamic Links SDK into our platform.
https://firebase.google.com/docs/dynamic-links?hl=es-419
Acceptance criteria
SDK Integration:
The Firebase Dynamic Links SDK must be successfully integrated into our platform following the guidelines provided in the official documentation (https://firebase.google.com/docs/dynamic-links).
The integration should be compatible with the latest version of the SDK and maintain backward compatibility with previous versions to ensure a smooth transition and functionality across different app versions.
Dynamic Link Generation:
The platform should be able to generate Firebase Dynamic Links programmatically for different content pages, such as product details, promotions, or specific app screens.
The generated Dynamic Links should include relevant parameters, such as campaign details, source, medium, and any additional custom parameters required for tracking and analysis.
Deep Linking:
The integration should enable deep linking functionality, allowing users to be directed to specific content within the app when clicking on a Firebase Dynamic Link.
Deep links should accurately navigate users to the intended content, ensuring a seamless and intuitive user experience.
Success metrics
...
Dynamic links:
If the mobile customer clicks on a dynamic link and has installed the app, then it goes to the app directly. Otherwise, he/she is redirected to the store (Apple store or Play store) and gets the app.
The web customer (Desktop or mobile devices) accesses the webpage directly in the browser, but:
If the user types the dynamic link on Safari on iPhone, a page with a button is displayed, then it goes to the app.
In the First access:
Always will show the preview page with a open to app button (Android and IOS), this is a normally behavior.
After the app installed, the preview page won’t show anymore, when the user open the app from dynamic link.
Deep links:
If the mobile customer clicks on a deep link and has installed the app, then it goes to the app directly. Otherwise, he/she is redirected to the respective content within the website.
The web customer (Desktop or mobile devices) accesses the webpage directly in the browser, but:
If the user types the deep link on the browser using a mobile device, he/she is redirected to the respective content within the website. If it is on an iPhone, a banner is displayed indicating to use the app.
Push notification:
Both dynamic links and deep links can be sent by push notification message on Salesforce. However, there is a limitation to include a longer link on the field on Salesforce. For this reason, it is recommended the use of dynamic links instead. Regarding the behavior when the user taps the push notification message, the result is the same as the user clicks on the link by marketing email campaign.
UTM parameters:
UTM parameters can be included on deep links.
E.g: https://www.popeyes.es/rewards/offers?utm_source=Newsletter&utm_medium=email&utm_campaign=test_123
OBS: UTM parameters available on step 5 on Firebase Dynamic link is used just when is necessary have UTM mapping on Firebase Google Analitycs, since when the link arrive on firebase, it clean the UTM parameters.
E.g: If we use the below link, it will go to firebase and the parameters will be cleaned, because these params are use just on Firebase.
In-app messages:
This feature is out of this scope, but it will be implemented on another story: Feature - In-app
Dynamic Links FAQ:
Firebase Dynamic Links is no longer recommended for new projects. In the future, the Dynamic Links service will shut down, but you will have at least 12 months from the announcement date to migrate. Around the end of Q2-2023, we will announce more information.
We launched Dynamic links about 7 years ago to make URLs more powerful (for example, dynamically changing the destination of a link based on run-time conditions) at a time when there were different degrees of support on various OSes and platforms. We remain committed to the importance of enabling app teams of all sizes to improve their deep linking experiences and are investigating how to help developers adopt technologies such as App Links, and Universal Links. → At least 1 sprint for refinement + 1 sprint for dev
How long will I have to migrate?
We want to make the migration as smooth as possible, so you will have a minimum of 12 months to fully migrate. We will share more details around the end of Q2-2023.
Will new and existing links continue to work?
Yes, your new and existing links will continue to work until the Dynamic Links service is shut down. Around the end of Q2-2023, we will provide more information on the long term plan
...
Solution
...
Set up Firebase
Install the required dependencies with capacitor / android / ios:
...
for
...
There are a few alternatives of plugins to install in capacitor
https://github.com/chemerisuk/cordova-plugin-firebase-dynamiclinks
https://github.com/Pantrist-dev/capacitor-firebase-dynamic-links
https://github.com/Turnoutt/capacitor-firebase-dynamic-links
...
Firebase
...
Open the
capacitor.config.json
file in your project's root directory.Add the
@capacitor/firebase
plugin to theplugins
section:Code Block jsonCopy code"plugins": { "SplashScreen": { "launchShowDuration": 0 }, "@capacitor/firebase": { "scopes": ["dynamic-links"] } }
Implement Firebase Dynamic Links handling in EMEA app:
...
Dynamic Links
...
.
...
Import the necessary dependencies
...
Register a listener to handle incoming dynamic links:
...
Implement the function to handle the received deep link. Extract the query parameters or other information from the deep link URL and perform the desired actions in your app.
Import the necessary dependencies in your TypeScript file:
Code Block typescriptCopy codeimport { Plugins } from '@capacitor/core'; const { FirebaseDynamicLinks } = Plugins;
Register a listener to handle incoming dynamic links:
Code Block typescriptCopy codeimport { useEffect } from 'react'; useEffect(() => { const handleDynamicLink = async () => { const { data } = await FirebaseDynamicLinks.addListener('deepLinkOpen', (data: any) => { const deepLink = data.deepLink; // Process the deep link as needed processDeepLink(deepLink); }); }; handleDynamicLink(); }, []);
...
Generate Dynamic Links
In the Firebase Console, go to the Dynamic Links section.
Follow the provided instructions to create a new Dynamic Link and customize the link parameters such as the domain, deep link URL, and optional query parameters.
Once created, you can use the generated Dynamic Link URL in your app, website, or marketing materials.
Info |
---|
High Level Estimate = 1 dev sprint with technical refinement and QA tests / No UX efforts needed. |
Scenarios
Info |
---|
Note: these are high-level scenarios that must pass testing before we can release the feature. They should also be used to drive design. Note that we do not specify user interface details in these steps - that is deliberate so that we focus on the process and not on the UI since the UI can change throughout design and development. |
Scenario 1: xxx
Steps | Expected results |
---|---|
Do this | Expect that |
Design
Figma design here: [insert link]
Development
We have worked to cover all scenarios listed on the acceptance criteria. Currently, we have to implement the remaining items:
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Tests
Remaining tests:
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Status BK PT: Both deep link and dynamic link are working for Android. For iOS, we are waiting for Apple configs to be released to production.
Release
Remaining fix:
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Status: A change in the social login feature done by another vendor caused an impact on the APK signature. We are waiting for the fix to have a new version.