Several factors
1-your connection speed... this is ACTUAL speed from your
internet source, which is not always the same as what
you are supposed to receive... which may vary depending
on how many other people are connected on your "line"
in your neighborhood
2-how many people are logged on to the specific service,
and how many servers they have to handle the load
3-your computer configuration, including what else you
have running at the same time using computer "cycles"