First of all, we need to clear up what CAUSES "pinging". What we're really talking about here is detonation and it occurs when the combination of pressure and temperature in the combustion chamber exceeds the spontaneous ignition point of the fuel. To prevent the fuel from detonating you can do three things: Lower the pressure, lower the temperature or change fuel to one that has a higher ignition point. Lean mixture causes excess heat, so you first need to make sure that your mixture is correct...mainly on the needle. Going too rich can alleviate pinging, but it's a formula of diminishing returns and eventually causes carbon buildup which causes an even higher propensity for pinging. Get your timing right (too much advance can also raise heat), get your mixture right, then if it still pings, decarbonize and polish piston crowns and combustion chamber. Also, remove any sharp edges from around the valve cutouts on the piston. This removes localized hot spots and origin points for detonation. This has worked for me 100% of the time that I have done it. If, however, this still doesn't do it, you can lower the compression ratio by either changing pistons, installing a spacer under the barrel or installing a thicker head gasket. 1 mm lowers compression by about 1 point. This has also worked for me in the past until I realized how effective massaging the chamber was.
Good luck.