In addition to the carb cleaning, I can think of a few other things to try:
1. Plugs. New plugs and look up the correct gap. Yes, the actual setting of plug gaps still varies, you cannot just use .030 as a “standard” setting. The gap of the plugs is especially critical at idle.
2. Make sure the carb and throttle linkage are correctly timed. Commonly called a “link and sync” procedure.
3. Do you have a fuel filter on this engine? Check and replace if you don’t know when it was last changed.
4. Air leak in the fuel hose or fuel lines. This can be very difficult to track down. The easiest test is to put a different fuel hose on and see if that solves the problem. For under the cowling fule lines, you just have to replace them all.
BTW, all of this is assuming you’re running fresh, high quality fuel and that it’s NOT contaminated with water. Water contamination is always possible, even with fuel that just came out of the pump. Use a nice clear glass jar and generally I like to use a hand syphon/pump and pump up at least a pint of fuel off the BOTTOM of the tank to inspect it.
Grouse