OPTIMIZING MEDIA PRESENTATION WITHIN AN APPLICATION
A user device presents media to a user in the form of multiple content items, each comprising media components such as videos, text, and images. The user device uses user data and information about a set of content items accessed by the user to predict an order in which the user will access the content items. The user device requests, in the predicted order, media components associated with a number of content items to prepare the content items for presentation to the user. Responsive to detecting a transition between a presentation of a first content item and a presentation of a second content item, the user device may re-prioritize a predicted access order for the content items. The user device may additionally request media components to download according to quality levels. For example, a slow network connection may prompt a user device to use lower resolution video.
1 . A computer-implemented method performed by a user device, comprising:
receiving, by at least one processor, information about a set of content items to be displayed by the user device, each content item comprising one or more media components;
generating a prioritized order in which to receive one or more media components associated with the set of content items;
requesting one or more media components from a content server and, as the requested one or more media components are received from the content server, sequentially preparing the received one or more media components for delivery to the user, the sequence based on the prioritized order;
displaying a first content item from the set of content items on the user device;
detecting information about a transition from displaying the first content item to displaying a second content item from the set of content items;
generating a re-prioritized order for receiving the media components, the re-prioritized order based, at least in part, on the information about the transition;
requesting, from the content server, one or more media components associated with the second content item;
receiving the one or more media components associated with the second content item from the content server and sequentially preparing the received one or more media components associated with the second content item for delivery to the user, the sequence based on the re-prioritized order; and
displaying the second content item from the set of content items on the user device.
2 . The computer-implemented method of claim 1 , wherein requesting one or more media components associated with a content item from the content server comprises:
determining a connection type by which the user device is connected to a network;
determining a media component quality level that can be supported by the connection type; and
requesting the one or more media components in the determined quality level to be transmitted over the network from the content server.
3 . The computer-implemented method of claim 2 , wherein determining a media component quality level that can be supported by the connection comprises:
determining an available bandwidth for receiving the content from the content server; and
selecting a version of the content item that is available on the content server and that can be received using the determined available bandwidth.
4 . The computer-implemented method of claim 1 , wherein types of media components that are associated with content items include at least one or more of images, audio, or video.
5 . The computer-implemented method of claim 1 , wherein the re-prioritized order for receiving media components is based in part on a speed at which a user of the user device transitions between displaying different content items on the user device.
6 . The computer-implemented method of claim 1 , wherein generating a prioritized order in which to receive one or more media components associated with the set of content items comprises predicting an order in which a user is most likely to navigate to specific content items from the set of content items, the prediction based on historical user interactions with the user device.
7 . The computer-implemented method of claim 1 , wherein displaying a content item comprises:
displaying a first media component associated with the content item; and
responsive to receiving one or more subsequent media components associated with the content item from the content server:
displaying the one or more subsequent media components.
8 . The computer-implemented method of claim 1 , wherein receiving media components from the content server comprises receiving media components associated with a pre-determined number of content items, and, responsive to receiving media components associated with a newly requested content item, allocating memory space of a previously received content item to store the media components associated with the newly requested content item.
9 . The computer-implemented method of claim 1 , wherein a transition from displaying a first content item to displaying a second content item is initiated by a user of the user device.
10 . A non-transitory computer-readable storage medium storing computer program instructions executable by one or more processors of a system to perform steps comprising:
receiving, by at least one processor, information about a set of content items to be displayed by the user device, each content item comprising one or more media components;
generating a prioritized order in which to receive one or more media components associated with the set of content items;
requesting one or more media components from a content server and, as the requested one or more media components are received from the content server, sequentially preparing the received one or more media components for delivery to the user, the sequence based on the prioritized order;
displaying a first content item from the set of content items on the user device;
detecting information about a transition from displaying the first content item to displaying a second content item from the set of content items;
generating a re-prioritized order for receiving the media components, the re-prioritized order based, at least in part, on the information about the transition;
requesting, from the content server, one or more media components associated with the second content item;
receiving the one or more media components associated with the second content item from the content server and sequentially preparing the received one or more media components associated with the second content item for delivery to the user, the sequence based on the re-prioritized order; and
displaying the second content item from the set of content items on the user device.
11 . The non-transitory computer-readable storage medium of claim 10 , wherein requesting one or more media components associated with a content item from the content server comprises:
determining a connection type by which the user device is connected to a network;
determining a media component quality level that can be supported by the connection; and
requesting the one or more media components in the determined quality level to be transmitted over the network from the content server.
12 . The non-transitory computer-readable storage medium of claim 10 , wherein types of media components that are associated with content items include at least one or more of images, audio, or video.
13 . The non-transitory computer-readable storage medium of claim 12 , wherein determining a media component quality level that can be supported by the connection comprises:
determining an available bandwidth for receiving the content from the content server; and
selecting a version of the content item that is available on the content server and that can be received using the determined available bandwidth.
14 . The non-transitory computer-readable storage medium of claim 10 , wherein the re-prioritized order for receiving media components is based in part on a speed at which a user of the user device transitions between displaying different content items on the user device.
15 . The non-transitory computer-readable storage medium of claim 10 , wherein generating a prioritized order in which to receive one or more media components associated with the set of content items comprises predicting an order in which a user is most likely to navigate to specific content items from the set of content items, the prediction based on historical user interactions with the user device.
16 . The non-transitory computer-readable storage medium of claim 10 , wherein displaying a content item comprises:
displaying a first media component associated with the content item; and
responsive to receiving one or more subsequent media components associated with the content item from the content server:
displaying the one or more subsequent media components.
17 . The non-transitory computer-readable storage medium of claim 10 , wherein receiving media components from the content server comprises receiving media components associated with a pre-determined number of content items, and, responsive to receiving media components associated with a newly requested content item, allocating memory space of a previously received content item to store the media components associated with the newly requested content item.
18 . The non-transitory computer-readable storage medium of claim 10 , wherein a transition from displaying a first content item to displaying a second content item is initiated by a user of the user device.
19 . A computer system comprising:
one or more computer processors for executing computer program instructions; and
a non-transitory computer-readable storage medium storing instructions executable by the one or more computer processors to perform steps comprising:
receiving, by at least one processor, information about a set of content items to be displayed by the user device, each content item comprising one or more media components;
generating a prioritized order in which to receive one or more media components associated with the set of content items;
requesting one or more media components from a content server and, as the requested one or more media components are received from the content server, sequentially preparing the received one or more media components for delivery to the user, the sequence based on the prioritized order;
displaying a first content item from the set of content items on the user device;
detecting information about a transition from displaying the first content item to displaying a second content item from the set of content items;
generating a re-prioritized order for receiving the media components, the re-prioritized order based, at least in part, on the information about the transition;
requesting, from the content server, one or more media components associated with the second content item;
receiving the one or more media components associated with the second content item from the content server and sequentially preparing the received one or more media components associated with the second content item for delivery to the user, the sequence based on the re-prioritized order; and
displaying the second content item from the set of content items on the user device.
20 . The computer system of claim 19 , wherein requesting one or more media components associated with a content item from the content server comprises:
determining a connection type by which the user device is connected to a network;
determining a media component quality level that can be supported by the connection; and
requesting the one or more media components in the determined quality level to be transmitted over the network from the content server.