The actual implementation of the retention analysis is not too hard. If you can compute unique customer id, then yes. But how do you get unique id, if say user is not logged in? What if user uses multiple devices? What if user creates new account?
The third party solutions I’ve seen (which is fairly limited), is to embed a code into your product, and they take care of the tracking.