A method for displaying notifications for a content item on a mobile device to a user, the method comprising: receiving meta-data associated with the content item; determining a second value based on the meta-data, historical data, and sensor data, the second value being indicative of whether a download opportunity is currently present; sending second output data based on the second value to a download module to allow selectively downloading content data associated with the content item based on whether a download opportunity is currently present; determining a third value indicative of a point in time or period in time when the user is likely to interact with the notification, wherein the second output data is based on the point in time or the period in time to allow completion of the downloading before the point in time or period in time; downloading by the download module the content data from a content server onto the mobile device; upon completion of the downloading performing the steps of: receiving context data indicative of a current context of the mobile device, wherein receiving context data comprises receiving sensor data from one or more sensors associated with the mobile device; determining a first value based on the meta-data, the context data and historical data indicative of historical interactions with historical notifications that are based on the meta-data, the first value being indicative of a current likelihood of the user interacting with a notification that is based on the meta-data; and sending first output data based on the first value to an output module to allow selectively outputting the notification based on the current likelihood. receiving meta-data associated with the content item; determining a second value based on the meta-data, historical data, and sensor data, the second value being indicative of whether a download opportunity is currently present; sending second output data based on the second value to a download module to allow selectively downloading content data associated with the content item based on whether a download opportunity is currently present; determining a third value indicative of a point in time or period in time when the user is likely to interact with the notification, wherein the second output data is based on the point in time or the period in time to allow completion of the downloading before the point in time or period in time; downloading by the download module the content data from a content server onto the mobile device; upon completion of the downloading performing the steps of: receiving context data indicative of a current context of the mobile device, wherein receiving context data comprises receiving sensor data from one or more sensors associated with the mobile device; determining a first value based on the meta-data, the context data and historical data indicative of historical interactions with historical notifications that are based on the meta-data, the first value being indicative of a current likelihood of the user interacting with a notification that is based on the meta-data; and sending first output data based on the first value to an output module to allow selectively outputting the notification based on the current likelihood. receiving context data indicative of a current context of the mobile device, wherein receiving context data comprises receiving sensor data from one or more sensors associated with the mobile device; determining a first value based on the meta-data, the context data and historical data indicative of historical interactions with historical notifications that are based on the meta-data, the first value being indicative of a current likelihood of the user interacting with a notification that is based on the meta-data; and sending first output data based on the first value to an output module to allow selectively outputting the notification based on the current likelihood.