A system for dynamically serving ads to one or more client devices in connection with the operation of an executable program. The system comprises a network interface disposed to receive an ad request associated with a device fingerprint that uniquely identifies a client device. The ad request comprises information relating to any one or more of the client device, a user operating the client device and an executable program operating on the client device. The system further comprises a memory and a processor, in communication with the network interface and the memory, the processor configured for operating the program instructions. The program instructions stored in the memory are operable for parsing the information in the ad request, selecting one or more ads based at least in part on the parsed information, and transmitting ad rendering data to cause the one or more ads to be displayed at the client device.