A method comprising: determining, by a content delivery service, an allocation percentage in an overall percentage for each of a plurality of content delivery networks, CDNs,, wherein each CDN is configured to deliver media programs for the content delivery service to client devices; receiving messages from a plurality of client devices in which the plurality of CDNs delivered media programs, wherein the messages include information regarding the playback of the media programs on the client devices; determining metrics for each CDN based on the information regarding the playback of the media programs, aggregating information from the messages into per-CDN metrics, the per-CDN metrics being based on platform type, CDN pairs; analyzing the metrics to determine when to change one or more allocation percentages, wherein analyzing uses the per-CDN metrics over the time period, wherein each allocation percentage is used to allocate requests for playback of media programs to a CDN and the allocation is changed per the platform type, CDN pair; and reducing a first allocation percentage in the overall percentage for a first CDN in the plurality of CDNs based on the analyzing of the metrics to reduce future allocations of requests for playback of media programs to the first CDN; increasing a second allocation percentage in the overall percentage for a second CDN in the plurality of CDNs based on the analyzing of the metrics to increase future allocations of requests for playback of media programs to the second CDN; and allocating requests for playback of media programs to the plurality of CDNs based on the allocation percentages in the overall percentage, wherein the reduced first allocation percentage and the increased second allocation percentage are used in allocating the requests. determining, by a content delivery service, an allocation percentage in an overall percentage for each of a plurality of content delivery networks, CDNs,, wherein each CDN is configured to deliver media programs for the content delivery service to client devices; receiving messages from a plurality of client devices in which the plurality of CDNs delivered media programs, wherein the messages include information regarding the playback of the media programs on the client devices; determining metrics for each CDN based on the information regarding the playback of the media programs, aggregating information from the messages into per-CDN metrics, the per-CDN metrics being based on platform type, CDN pairs; analyzing the metrics to determine when to change one or more allocation percentages, wherein analyzing uses the per-CDN metrics over the time period, wherein each allocation percentage is used to allocate requests for playback of media programs to a CDN and the allocation is changed per the platform type, CDN pair; and reducing a first allocation percentage in the overall percentage for a first CDN in the plurality of CDNs based on the analyzing of the metrics to reduce future allocations of requests for playback of media programs to the first CDN; increasing a second allocation percentage in the overall percentage for a second CDN in the plurality of CDNs based on the analyzing of the metrics to increase future allocations of requests for playback of media programs to the second CDN; and allocating requests for playback of media programs to the plurality of CDNs based on the allocation percentages in the overall percentage, wherein the reduced first allocation percentage and the increased second allocation percentage are used in allocating the requests.