Trainer battles are one of the best ways to get special items in Pokémon Go. Recently introduced, you can now battle against your friends and NPC team leaders. You can receive rewards from these battles up to three times per day for real players and one time per day for NPCs.