1. A method comprising: receiving, from a software provider device, a first version of software, the first version of the software comprising an advertising module that displays a plurality of advertisements on a computer; distributing the first version of the software under a license permitting modification of a portion of the software that (a) does not include the advertising module and (b) does not disable, modify, or impede operation of the advertising module and prohibiting modification of a portion of the software that does include the advertising module; receiving, by a processor and from a first client device other than the software provider device, a second version of the software, the second version of the software comprising a modification to code included in the first version of the software that does not disable, modify, or impede operation of the advertising module; and distributing, to a second client device other than the software provider device and the first client device, the second version of the software conditioned on execution of the advertising module in conjunction with the second version of the software, wherein the advertising module, when executed, receives the plurality of advertisements over a network and displays a first advertisement of the plurality of advertisements at a first instance and displays a second advertisement of the plurality of advertisements at a second instance.