We use PowerBI for reporting as well. The Marketo out of the box connection is very limited and only gives you the data that Marketo wants to provide. For our reporting needs, we needed to be able to see by email the total performance which included Sends, Delivered, Opens, Clicks, etc. We also need to supply lead data to our advertisers as well. The amount of data you need to retrieve from Marketo goes back to how much activity / leads you have to report on. We have to report on over 1MM newsletter deployments a day and also on just under 1MM subscribers. With the REST API, it has a limit on not just the calls (50,000) but also the amount of data you can retrieve. For our purposes, since we needed multiple marketo activities along with the lead database changes, we were well over the REST API limits and had to connect with the BULK EXTRACT API and pay more for increased data extract size allotment. So now, we have a custom web client built which pulls the extracts needed daily into an Azure MySQL database. The database then we connect to in PBI. With a little bit of post production work and categorizing of those deployments, we're able to provide robust dashboards with full metrics at an email level, advertiser level, etc. Also, keep in mind that Marketo does not capture Gross Opens. They don't even record Gross opens which support has confirmed for me. While many marketers do prefer to report on uniques, that's not what our advertisers want. So we had to also implement a custom email beacon to record opens and that data too is pushed into our Azure MySQL database. The hardest part is the planning and knowing exactly what data (by field name) you want to extract from Marketo. You might want to explore 3rd party connectors. Some of them have been engineered to work not just with the REST API but the BULK EXTRACT API as well. However, they would be an additional cost.
... View more