You can create a Duolingo class which you can then join yourself. This gets you unlimited hearts and no further ads on the mobile version (at least from my experience). Creating a class has no prerequisites so just try it out. If you still want to be able to view the public leaderboard there’s a setting for that in the classroom settings, but it’s disabled by default.
Edit: I’m not sure if there are any other ads besides the premium and family ones, I’m running PiHole so your mileage may vary. I’m only talking about those 2 which PiHole cannot block.