to me the main source from where the exchanges get their money is from the transaction fee, may be they also have invested their bitcoins in different places,
They are investing their bitcoins for selling it to their exchange site and I am sure that they have other some source of income for supporting their exchange like mining farm. But yes, their main source is coming from transaction fees even the fees are small but out of many users, they are able to collect a lot monthly.
But why about some site or wallet ar not trying for charging a small fee for their member today? like xapo he never charging their member with the another fee except for trying charging for giving fees for the miners get a confirmation for their transaction and how their source? about the ads income are not balancing for their daily spend.