Website Monitoring Dashboard for Publishers and Multi-Site Owners

How visitor and revenue numbers get onto a dashboard tile

Analytics

September 1, 2026

The short answer

Visitor and revenue numbers show on a DashCanopy tile when that site reports them. A health check only asks whether the URL responded. It does not count people, and it does not read your payment processor. If the tile is online and the stat fields are empty, connect a reporting path. The two systems are supposed to sit side by side. They are not the same measurement.

Visitor and revenue tracking is included on Starter, Pro, and Agency. “Included” means the dashboard will display numbers the site sends. It does not mean DashCanopy invents analytics for a site that has no connection.

Two clocks, two jobs

Think of the tile as a card with two stamps. One stamp is the health check, on the plan interval: every 10 minutes on Starter, every 5 on Pro, every minute on Agency. The other stamp is whatever last reported visitors and revenue. Those clocks are allowed to differ.

The getting started guide says the dashboard can poll a site’s stats endpoint on a short cadence, about every 60 seconds, when you have configured that endpoint. The WordPress plugin page says the plugin pushes page views, revenue, and response time about every 5 minutes using WP-Cron. Both descriptions are on the site. A polled endpoint and a plugin push are different pipes into the same tile. Use one pipe per site until you know it works. Two pipes updating the same fields will confuse you more than they will help.

A sparkline, if you send one, is a short list of recent visitor counts so the tile can show a shape. It is optional. Seven numbers are enough for “this looks like a drop,” which is a prompt to look at the site’s own analytics, not a replacement for them.

What to send

The guide’s example stats payload is small on purpose. Visitors as a count. Revenue in cents, so 34500 means 345.00 in the major unit your store uses and you do not lose a dollar to a decimal mix-up. A short recent-activity string if you have one. An optional sparkline. An optional blog object with the last post title, posts this month, total posts, and an auto-blog status if you track content cadence.

The API docs describe a push of the same idea: visitors, revenue, and optional content fields, identified by the site URL or a site id. Match the field names the docs show. A payload full of extra marketing metrics will not fill a tile that is looking for visitors and revenue.

Secure the endpoint. The guide says to use a bearer token and to store that token as the API key on the site. The WordPress plugin authenticates with your DashCanopy API key. Do not leave a stats URL open to the world if the numbers are anything you would not publish. Aggregate counts are still your operational data.

The plugin page is explicit about privacy on that path: it sends aggregate counts and performance metrics, not personal visitor records. That is the right shape for a portfolio tile. A tile is a glance. It is not a user-level analytics product, and it should not be fed a list of people.

WordPress, and everything that is not WordPress

On WordPress, the supported path documented on this site is the plugin. Download it from the WordPress plugin page, install the zip, paste the API key from Settings → API & Extension, and save inside Settings → DashCanopy. Revenue on that path comes from WooCommerce, including HPOS, or Easy Digital Downloads, when those are what the site uses. If revenue stays at zero with WooCommerce installed, the install guide’s troubleshooting section is the place to look, not a guess that the store had no orders. The step-by-step for several sites is the plugin walkthrough.

Jetpack Stats, when the plugin detects them, can be used for the visitor count. If you do not run Jetpack, the plugin still has a page-view counter. Know which one you are looking at before you compare the tile to a third analytics tool. They will not match to the person, and they do not have to. You want the tile to move when the site is receiving traffic, and to sit still when it is not.

For Shopify, Wix, Squarespace, Webflow, Ghost, Framer, or a custom app, use a path the platform actually allows on your plan there. The platforms page lists those names and the caveat: custom code, an API, or a snippet, depending on the product. A hosted builder that blocks custom code cannot push stats until you have another way. SiteGround and similar hosts are not the integration. The CMS on that host is. A WordPress site on SiteGround uses the plugin. Another CMS on the same host needs its own endpoint or snippet.

Stripe can be part of revenue tracking when you connect it as the pricing and settings pages describe. Connecting Stripe does not monitor whether the marketing site is up. Keep the health check on the public URL even after revenue starts to appear.

How to tell a setup gap from a real drop

Use this order when a number looks wrong.

Confirm the tile is online. If it is offline, ignore the stats until the site answers. A down site should not be diagnosed as a traffic problem.

Confirm a reporting path exists. No endpoint, no plugin, no push: the empty stat is expected. Install the path and wait for one cycle, 60 seconds for a polled endpoint or about 5 minutes for the plugin. Then look again.

Confirm the units. Revenue in cents versus revenue in dollars is the classic off-by-100. The WordPress plugin reports revenue already in cents. A custom endpoint should follow the field the API expects so you do not double-convert.

Compare the tile to the source you trust for that site, once. If the store’s own order screen shows sales and the tile shows none, the pipe is broken. If both show none, you may simply have had no orders. The tile is allowed to be quiet.

If the numbers were moving and then froze while health stayed online, the cron, the token, or the endpoint stopped. That is a connection incident. It is smaller than an outage and easier to miss, which is why it belongs in the weekly stats review and not only in the morning health pass.

What a tile will never be

It will not replace the analytics product where you study landing pages, referrers, and campaigns. It will not replace the payment dashboard where you refund an order or answer a dispute. It will not reconcile to the cent against every other tool if those tools define a visitor differently. Use the tile to notice that a site’s reported visitors or revenue changed, then go to the source of truth for the explanation.

That limit is the reason a multi-site operator still wants the tile. You cannot open twelve analytics properties before breakfast. You can see twelve reported counts next to twelve health results, and open the one property that broke its pattern.

Questions about stats on the tile

Why does a new site show visitors as a dash or zero?

Because nothing has reported a count yet, or the first push has not run. Connect the endpoint or plugin, wait one cycle, and reload the dashboard. Do not compare that empty tile to last month’s analytics export.

Can I send revenue without visitors, or visitors without revenue?

Yes. A content site may never have revenue. A reporting bug may omit one field. The tile can show the field you send. A content site with visitors and no revenue is a normal tile, not an error.

Should the tile match Google Analytics exactly?

No. Match direction and rough scale, not session-for-session totals. Different tools count different events, filter bots differently, and update on different schedules. Investigate when the tile falls to zero and the other tool does not, or the reverse. Ignore one- or two-percent gaps.

Back to Blog