Power BI Publish to web helps organizations share data on public websites, enabling communities to stay informed. We’re excited to provide an update to Publish to web capabilities to help organizations deliver content to more users in a better way.
Pro tip: Remember to only share data that your organization allows you to share publicly through publish to web. All the data in the dataset and the report are available to users. There’s no authentication, so anyone on the Internet can see your report.
Pro tip: Some of these capabilities are available right now, like setting a placeholder image for your report. The data refresh and heavy usage changes will be available within the next week to Commercial and Government Community Cloud customers.
There’s a lot of exciting updates to cover, so let’s start with a quick summary of the experiences:
- Improved publish to web dialog and experiences
- Ability to a placeholder image to improve load time and user experience
- New data refresh experience
- New heavy usage experience
We’ll wrap up with a discussion of:
- How to design reports to help avoid heavy usage
- How to prepare if you think your report could experience heavy usage
New publish to web dialog and experiences
The new publish to web dialog gives you more control over how the embed code is presented to your users.
Here’s a quick summary of the new capabilities available in the dialog:
- A preview pane shows you how your report looks when embedded
- Placeholder image to make a faster loading experience
- Default page picker so your report opens on the right page
Set a placeholder image to improve load time and user experience
The placeholder image is a great option to set. It helps your reports load faster, and really helps make for a better user experience on mobile devices or on pages with lots of other content.
We recommend setting the placeholder image for most publish to web reports, especially those that may experience heavy usage. Read to the end of this blog for an in-depth discussion of heavy usage.
After setting a placeholder image, people viewing your report see the image load. They can press the View interactive content button to interact with your report just like the would without the placeholder.
If you’re putting a publish to web report in a news article or on a website with lots of other content and widgets, the report load time can slow down because of all the work the browser has to do to load the other content on the page. This can be particularly challenging on websites with a lot of advertising widgets. Similarly, phones, tablets, and mobile networks tend to be slower than typical desktop computers and laptops. When you set a placeholder image, the page will load faster because it won’t have to immediately load the entire report when it opens.
New data refresh experience
Publish to web uses a cache to help your reports scale to large numbers of users. It works by caching query results for 60 minutes.
This behavior scales and works well in most cases. For each visual that loads and is filtered or sliced, a query is sent to Power BI. When several users view the report and request the same data, the specific query runs only once every 60 minutes. This dramatically reduces the level of usage the underlying dataset in Power BI receives. However, when customers want to update the data it becomes problematic.
Now, we’re rolling out a change to help make data updates work better. When your import dataset in Power BI refreshes, we’ll clear the publish to web cache. The updated data for will load once the cache entry is cleared, which is often very soon after the refresh occurs. For very popular embed codes or embed codes that generate many queries, it’s still possible to take up to 60 minutes to see the updated data.
This new capability comes with a tradeoff for publishers since it means more queries will run against your report and underlying dataset whenever the data updates. This can increase usage and in some cases lead to heavy usage if a lot of queries run in a short amount of time or the there’s a lot of viewers at the time the data refresh occurs.
As a report publisher, it’s still recommended to refresh data relatively seldom, especially if you expect your report may receive a lot of views in a short period of time. We’ll go into that in more detail next.
New Heavy Usage Experience
Publish to web is designed to be very scalable and help you reach very large audiences with little need to think about scalability. However, if your reports generates heavy usage, Power BI will limit the number queries your report can send to the Power BI service. These limits ensure the popularity of one report doesn’t impact all the other ones.
We’ve improved how Publish to web reports react under heavy usage so you and your users know what’s happening and get a nicer overall experience. We’ll turn off interactivity for your report during the period of heavy usage. Once usage returns to acceptable levels, we’ll automatically re-enable interactivity for the report. This will affect all users viewing the publish to web report.
Here’s what that experience looks like. If you have not configured a placeholder image, we’ll show the following experience.
Below is what happens if you provide a placeholder image, which gives users a much better experience. As you can tell below the placeholder image was made to look like the report itself. You’ll need to pick the image that works best for your audience. Users can tell interactivity is turned off and still get a sense of the report itself. We highly recommend you configure a placeholder image if you think your report could be popular or amplified through the news cycle or on social media.
Of course, once the period of heavy usage ends, we’ll re-enable interactivity automatically.
Designing reports to help avoid heavy usage
Most publish to web reports never come anywhere close to the query limits, but some can. A lot depends on how the report design and how much underlying data it contains. Let’s take a look at a few tips and tricks to guide your report designs.
As noted above, these steps are especially important if you think your report may be amplified by a news cycle and or on social media. When the number of users increases, the likelihood that users will click very option or slice also increases, which can quickly add up to a lot of queries.
Here are a few report features that tend to generate a lot of queries:
- Report page tooltips. Each visual in the tooltip generates a query. Each of those tooltips that renders sends a different query to Power BI. If you use them over top of a line chart or a map, the number of queries quicky adds up in a very short amount of time.
- Slicers, tables, and matrices. When you present categories in a slicer or in a table, users can click the individual values or on the rows of the table. This causes all the other visuals on the page to send new queries for that particular slice of data. If you have enough users, they’ll quickly click the slice that’s most interesting to them, which again can cause a lot of queries in a short amount of time.
- A lot of visuals. Some authors love to put many visuals on a page. Each visual, even if it’s a card, generates a query. So if you also allow users to slice on various categories, each visual will send a query for that slice. The more visuals, the faster the queries add up.
Here are a few other aspects you should consider to help avoid queries and increase performance:
- Try to limit how much data is in your dataset. Often, we see reports that include detail rows they don’t show in the visuals. It’s a better practice to use the Power BI query experience to limit the data in the report to only the data needed to support the specific visualizations.
- Be careful when you have a lot of categorical data. Some datasets have many categories. For example, imagine listing all the coffee shops in America. Most of your users will not want to go to that level of depth. So try creating a report that only contains the summarized data a higher level, by state for example and leave the details to another report, and perhaps even another dataset.
- Keep the number of visuals to a small number. Many authors like to put 10 or more visuals on a single report page. By removing unnecessary visuals, not only do you make your report faster to load and less likely to experience heavy usage, you also help users to use your report, since most are confused by too many visuals anyways.
How to prepare if you think your report could experience heavy usage
For most reports that are shared using Publish to web there’s no need to worry because we’ll restore interactivity automatically.
However, sometimes a report is an important part of a critical website supporting an event like a product launch, a news article, or a government website. In these cases, it’s critical to plan ahead and be prepared. For example, if your report is about an election, you can expect it to be popular on election night.
In these cases, you should consider a few things:
- Set a placeholder image for your report
- Streamline the visuals and data to what’s essential
- Use several reports instead of just one
- Build a plan to mitigate any issues you might encounter
- Do a dry run of the mitigations so you can do them quickly if needed
- Have people on staff during the event to execute your plans
Taking these steps will help your event or announcement go off without a hitch.
As always, we’d love to hear how you use Power BI and how we can improve. Head over to https://ideas.powerbi.com to share your thoughts or leave a comment below.
A previous version of this blog stated, “When your import dataset in Power BI refreshes, we’ll clear the publish to web cache. The updated data will be visible in your Publish to web report nearly simultaneously.” This has been revised to more accurately reflect service behaviors observed with some reports that have many queries.