I cannot stress out the importance of onboarding process. It does not have to be "smart", but needs to be very focused on activating the user by enabling them to get their job done fast. Tools like Usetiful (promo alert! :) ) can help, but the most important part is on the understanding of user.
I think that you have to bring value to users to motivate them to return to your app. It could be the quality of your content, special offers, gamification, or something else. Before thinking about the best way – thinking about your audience first.
The best choice – include smart onboarding, be clear in your notifications and add gamification but a simple one. Stories could bring this mix in your app (gamification & onboarding & notifications) [self-promo alert] :)
I agree with all other recommendations like push notifications, gamification, and the onboarding process. But I feel personalization is really something that contributes hugely to the retention rate.
Given that almost 90% of U.S. consumers prefer brands that offer personalized recommendations, content, and offers, you can surely boost app retention by opting for this.
You can collect customer data using pop-up surveys using tools like @qualaroo by simply asking visitors to subscribe to your newsletter or opt for a discount or coupon code.
The possibilities of how you can personalize your app are endless; you just have to be a little creative. :)
So, I’d suggest a combination of everything above with personalization for your app.
Hope this helps :)