Firebase Dynamic Links looses UTM parameters - firebase-dynamic-links

we have successfully implemented dynamic links natively on iOS, but we loose our UTM parameters, when the User installs his App via AppStore.
Details:
In case a user has not installed the targeted App, then the user will be redirected to the AppStore after tabbing on the dynamic link. After installing the app and open it, the UTM parameters are not being sent to Google Analytics.
I assume these UTM parameters get lost during the AppStore redirect, as this Issue does not reproduce for users, who have already installed the App. Also for Android, we could not reproduce this.
Any hints on that? Thanks!

Related

Firebase Dynamic Links MinimumVersion behavior

I'm creating Firebase Dynamic Links programmatically in an Android and iOS apps.
Both apps are already available in Google Play and the App Store, so I want to use MinimumVersion to redirect users to the appropriate store if they are using previous versions.
The iOS parameters documentation states:
The version number of the minimum version of your app that can open the link. This flag is passed to your app when it is opened, and your app must decide what to do with it.
So if I understand it correctly, previous version would not be able to use it, as the code to decide what to do with it, doesn't exist in the current iOS version?
The Android parameters documentation states:
The versionCode of the minimum version of your app that can open the link. If the installed app is an older version, the user is taken to the Play Store to upgrade the app.
But when I try it, the Android device still suggests the current app to handle the intent, and doesn't redirect the user to upgrade it.
When I choose the app it opens it instead of redirecting.
What can cause this behavior?
Am I missing something in my understanding of how Firebase Dynamic Links suppose to work?

How can i get parameters from play store download link

I am currently developing a mobile app with react-native and this app contain a invitation code.
Store download link will have a invitation code parameter.
I want to get this parameter from downloaded apps via store download link.
How can i do this on react-native ?
Thanks in advance
Use Firebase Dynamic Links
Firebase Invites makes it simple for users to send content to their friends, over both SMS and email, by ensuring that referral codes, recipe entries, or other shared content gets passed along with the invitation—no cutting-and-pasting required.
Documentation https://firebase.google.com/docs/dynamic-links/
How does it work?
You create a Dynamic Link either by using the Firebase console, using a REST API, iOS or Android Builder API, or by forming a URL by adding Dynamic Link parameters to a domain specific to your app. These parameters specify the links you want to open, depending on the user's platform and whether your app is installed.
When a user opens one of your Dynamic Links, if your app isn't yet installed, the user is sent to the Play Store / App Store to install your app (unless you specify otherwise), and your app will open. You can then retrieve the link that was passed to your app and handle the deep link as appropriate for your app.
For react-native use react-native-firebase https://www.npmjs.com/package/react-native-firebase
and
https://rnfirebase.io/docs/v5.x.x/links/reference/links

Detecting Installation Source with react-native-fbsdk

I'm facing a problem with react-native-fbsdk. I'd like to know whether the user has installed the app by coming through Facebook Ads or has he/she installed it organically from store (App Store, Play Store). Is this even possible with React Native?
The reason is, I need to log events for analytics restricted only on installations done via Facebook. There are pre-defined events, like App Installs and App Launches tracked, but my events are custom events.
I have assumption that either AccessToken.getCurrentAccessToken() or AppEventsLogger.getUserID() would return something when the installation is performed through FB. On dev environment, both returns null which is kind of expected. However these ideas could only be tested on production and this isn't an option.
So the actual question is: "How do I detect whether the user is coming through Facebook advertisement link?"

Using Branch links to deeplink to unpublished app

I'm working as a web developer for a start-up that has a andriod app prototype. I'm not an app developer ( still learning) so I'm a little unsure how to approach this.
I wanted to deeplink the app to the webpage. I came across this solution called Branch.io . It looks like exactly what we need but I'm not sure how to link it with an unpublished app. Maybe I'm missing something. Any advice would be greatly appreciated.
The Branch service actually doesn't depend on the App or Play Store at all. The link will first try to open up the app, but fallback to the store pages if not installed. You can override this fallback to any website, and the links will still function as usual.
To test an app not in the Play Store, first choose 'Custom URL' in the Link Settings dashboard, and fill in the page you'd like to send users when the app is not installed. It's common for people to send users to either their home page or TestFlight app.
Then, to test the deep linking through install and download tracking, just do the following:
Create a Branch link
Click it on your phone or on simulator and wait to be redirected
Run the app from Android Studio/Eclipse
Here are some more testing considerations. Happy linking.

iOS App URL is not being detected

I have created a custom App URL for my iOS app. The URL format is similar to this:
myappname://texttobeparsed
This works fine when I paste the URL in safari, My App opens and correctly handles the URL. The problem is that other apps such as iMessage or Notes do not recognize this as a URL.
Why isn't this URL scheme being recognized as a URL? Could it have to do with how I set it up in my info.plist file or something else?
Or, does the URL need to be in a different format to be recognized?
I know it's possible to have the system recognize it as a URL in apps other than web-browsers because I've seen it before with other apps (ex. iTunes: itms://itunes.com/apps/appname or Twitter: twitter:// or Facebook: fb://).
There's nothing you can do about this. If the link isn't explicit (e.g. in an HTML email), these apps can just recognize a built-in set of standard URL schemes. itms:// is one of Apple's own schemes (for the iTunes Store), so it makes sense that it is supported in addition to the standard mailto://, http://, tel://... schemes.
Edit: I would guess that the information that is used to determine what constitutes a valid URL in text views etc. is cached somehow. Contrary to what I initially guessed, it seems that app-specific URLs do work in Notes, etc. I've tested this with tweetbot:// for example (which I have installed) and twitter:// (which I don't have installed) to verify that it doesn't just check for a pattern like *://, but actually uses information about the installed apps.
I'd suggest that you try to restart your device. If it's an issue with some cache, that might help and I don't think there's much else you could do if your URL scheme already works in Safari.
Update: I've installed the official Twitter app to test this, the twitter:// scheme wasn't immediately recognized in Notes, but after killing and restarting the Notes app, it worked.
Update 2: I've done a minimal test app with myappname:// as a custom URL scheme. Again, like with the Twitter app, it worked after restarting the Notes app, so it doesn't seem related to the popularity of the app or whether it's been submitted or not.
I can't answer as to why it's not working (beyond guessing that the link interpreter is hard-coded to only recognize certain URL schemes), but I can say that the typical way around this is to link to a web page, and have the web page redirect to your custom scheme.
It's slightly less elegant, because the user will see Safari open up briefly before being forwarded to your app, but it's also more robust because the web page can provide a link to the app store to install the app if it is not installed on the user's phone.