Can someone quickly explain how file storage / bandwidth off the blockchain works? Who pays the gas to deliver it to end users?
For displaying, if you browse with Mist or MetaMask, you're pulling the data from the blockchain. When you don't, we show you the ads statically by using a Ethereum gateway.
Either way, reading doesn't cost gas, just bandwidth to keep the blockchain in sync.
Ethereum provided two types of data storage. One you pay for bytes used but your script has access to this like normal memory.
The other type is outputting log events. DAapps can't read these but blockchsin explorers can read them directly from the underlying blockchain data.