To achieve what you're aiming for, the general term is 'deep linking'. Dynamic Links is Firebase's specific implementation, offering attribution tracking and the ability to deep link even if the app isn't installed (referred to as deferred deep linking).
While it's technically possible to implement deep linking from scratch, it's complex due to numerous edge cases. Many app developers opt for libraries or external platforms instead. Creating deferred deep linking is even more challenging, typically requiring a specialized service.
An open-source plugin has been widely used to automate standard deep linking setup, but its maintenance status is uncertain and lacks robust support for deferred deep linking.
I suggest exploring Branch.io (full disclosure: I'm part of the Branch team). Branch offers free deep linking with attribution and deferred deep linking like Firebase Dynamic Links, along with various additional features, and a Cordova/Ionic SDK. If you're already using Firebase, Branch seamlessly integrates with it.