The solution should be simple: allow billboard ads, but tax them based on surface area. Use the tax revenue to hire more street sweepers. This shouldn't be hard to implement, as the city is already quite effective at fining businesses that do not comply with Cidade Limpa. Want to turn a building facade into a giant LED billboard, Shenzhen style? Fine, just pay up. Everybody wins.
This kind of policy would make sense for a quaint old European town, but here we're talking about the largest city in a developing country. Generally as a developing country your first priority should be to, well, develop. The last thing you want to do is stifle economic activity.