A method of providing recommendations to a client device, the method comprising: a recommender system delivering a first set of recommendations to the client device in a first recommendation cycle; the recommender system delivering a second set of recommendations to the client device in a second recommendation cycle; generating and storing usage data determined by the client device as potentially useful; the client device transmitting a first set of usage data to the recommender system, the first set of usage data being associated with the first set of recommendations; responding at the client device to a trigger for providing a second set of usage data; selecting at the client device an amount of usage data for the second set of usage data; transmitting the selected second set of usage data to the recommender system; generating a third set of recommendations based on the transmitted second set of usage data; and transmitting the third set of recommendations to the client device, the method characterised by: said step of generating and storing usage data determined by the client device as potentially useful further comprising ranking the usage data into at least two different categories of potential usefulness, the ranked potentially useful usage data stored on the client device being usage data generated in response to user actions performed on or with the client device; calculating a performance value of the first set of recommendations based on the first set of usage data and comparing the performance value to a performance reference value; and the amount of usage data selected being dependent upon the trigger, or having been specified by the recommender system, and further being dependent on the comparison of the calculated performance value of the first set of recommendations to the performance reference value. a recommender system delivering a first set of recommendations to the client device in a first recommendation cycle; the recommender system delivering a second set of recommendations to the client device in a second recommendation cycle; generating and storing usage data determined by the client device as potentially useful; the client device transmitting a first set of usage data to the recommender system, the first set of usage data being associated with the first set of recommendations; responding at the client device to a trigger for providing a second set of usage data; selecting at the client device an amount of usage data for the second set of usage data; transmitting the selected second set of usage data to the recommender system; generating a third set of recommendations based on the transmitted second set of usage data; and transmitting the third set of recommendations to the client device, said step of generating and storing usage data determined by the client device as potentially useful further comprising ranking the usage data into at least two different categories of potential usefulness, the ranked potentially useful usage data stored on the client device being usage data generated in response to user actions performed on or with the client device; calculating a performance value of the first set of recommendations based on the first set of usage data and comparing the performance value to a performance reference value; and the amount of usage data selected being dependent upon the trigger, or having been specified by the recommender system, and further being dependent on the comparison of the calculated performance value of the first set of recommendations to the performance reference value.