Summarize:

Pikachu’s happiness is measured by an invisible scale depending on how you treat him. The number is invisible but is rated from 0 to 255. Keeping your Pikachu with you and safe will increase the number, while stowing it away and losing it in battle will lower the number. You can hit the “A” button when facing Pikachu and his response will help reveal how happy it is. This is the fastest way to increase happiness (though perhaps also the most tedious). Health potions can be purchased from the store and used repeatedly on Pikachu to increase happiness.  Potions will increase happiness even when Pikachu is at full health. Different items will increase happiness by the same amount. Pikachu will become happier anytime it levels up. This can be from combat out in the world or from using rare candies. Pikachu much have at least 1 heart hovering above its head (a happiness rating above 145) when you interact with it. This indicates high happiness and will be enough to get Bulbasaur. Using Pikachu during these battle is enough to get a happiness bonus. However, gym leaders are finite and it’s difficult to find enough to consistently increase happiness.  You can put Pikachu and the head of your party then immediately swap it out at the start of the fight and still receive the bonus happiness. The happiness increase from this method is slightly lower than using items or leveling up. Pikachu’s happiness rating will be lowered if it faints in battle or is stored at a Pokémon center in town. Leave it in your party and keep it safe to prevent lowering his happiness.
Understand Pikachu’s happiness rating. Use items on Pikachu. Level up Pikachu. Identify when Pikachu is happy enough. Use Pikachu in battle against gym leaders. Avoid making Pikachu unhappy.