A method of dynamically inserting content into a streaming media program, comprising the steps of: (i) receiving, through a data communications network, at a program management system a request from a rendering device for delivery of a streaming media program; (ii) providing a manifest from the program management system to the rendering device through a data communications network, the manifest containing at least one identifier to enable downloading, through the data communications network, of identified data which can be rendered by the rendering device to produce a portion of the streaming media program and at least one meta identifier which the rendering device can use to establish communication with a dynamic content decisioning server, the at least one meta identifier representing a time period in which dynamic inserted content, not yet selected to be downloaded, is to be rendered by the rendering device, the manifest further indicating a time order in which to render the identified data and dynamic content; (iii) the rendering device rendering the streaming media program, in the indicated order, by downloading the identified data and rendering it and, when the indicated order indicates a meta identifier should next be rendered, the rendering device communicating with the dynamic content decisioning server to request the dynamic content to be rendered; (iv) upon receiving the communication from the rendering device, the dynamic content decisioning server selecting at least one piece of content to correspond to the meta identifier for transfer to the rendering device for inserting in the rendering of the streaming media program and transferring that selected dynamic inserted content to the rendering device; and (v) the rendering device rendering the dynamic inserted content. (i) receiving, through a data communications network, at a program management system a request from a rendering device for delivery of a streaming media program; (ii) providing a manifest from the program management system to the rendering device through a data communications network, the manifest containing at least one identifier to enable downloading, through the data communications network, of identified data which can be rendered by the rendering device to produce a portion of the streaming media program and at least one meta identifier which the rendering device can use to establish communication with a dynamic content decisioning server, the at least one meta identifier representing a time period in which dynamic inserted content, not yet selected to be downloaded, is to be rendered by the rendering device, the manifest further indicating a time order in which to render the identified data and dynamic content; (iii) the rendering device rendering the streaming media program, in the indicated order, by downloading the identified data and rendering it and, when the indicated order indicates a meta identifier should next be rendered, the rendering device communicating with the dynamic content decisioning server to request the dynamic content to be rendered; (iv) upon receiving the communication from the rendering device, the dynamic content decisioning server selecting at least one piece of content to correspond to the meta identifier for transfer to the rendering device for inserting in the rendering of the streaming media program and transferring that selected dynamic inserted content to the rendering device; and (v) the rendering device rendering the dynamic inserted content.