Dirigible Analytics
Overview
Dirigible Analytics counts visits to the site on the site itself, with no third-party service and no account to set up. It answers the questions clients ask most: how many people visited, which pages they read, and where they came from.
The numbers are under Analytics in the admin menu, right below Dashboard. Clients also get an Analytics panel on their Dashboard's Welcome screen with this week's visitors and page views.
It works alongside Google Analytics, if the site has it. It doesn't replace it or change it.
It's on by default
Dirigible Analytics is on as soon as Dirigible Optimize is up to date: there's nothing to set up. Analytics appears in the admin menu, and visits show up a few minutes after they happen. Pages the host already has cached start counting as their cache refreshes (on Rocket.net, purge the cache to start everywhere at once).
To turn it off for a site, see Turn it off below. A site where it was turned off stays off.
Your own visits while you're logged in as an administrator aren't counted, unless Track Admin Sessions is on under Scripts & Embeds in the Customizer (the same switch as for Google Analytics). To check that it works, open the site in a private window, click through to a second page, close the window, then reload Analytics.
Reading the report
Choose a period at the top: Today, Last 7 days, Last 30 days, Last 90 days, Last 12 months or Custom dates. Compare with sets what the arrows compare against: the period just before, the same dates last year, or nothing. Comparisons appear once there's data for the whole earlier period.
Custom dates can go back up to five years. Day-by-day detail is kept for two years (25 months); after that, each month is kept as one set of monthly totals. So for a period that starts more than two years ago:
- The period is widened to whole months: it starts on the 1st, and if it also ends more than two years ago, it ends on the last day of a month. Part of a month that old can't be shown on its own. A note under the dates says when this happened. A comparison period that reaches back that far is widened the same way.
- The chart shows months, not days.
- Visitors becomes Visitors, counted per month: someone who visited in March and again in May counts once for each month. When only the comparison period reaches back that far, both periods' visitors are counted per month, so the two compare like with like.
| Figure | What it means |
|---|---|
| Visitors | Different people (browsers) who visited. Each counts once for the whole period. Visitors who haven't accepted the cookie banner count once for each day they visit (see below). |
| Page views | Pages loaded. Someone who reads five pages adds five. |
| Visits | Separate visits. A visit ends after 30 minutes without a new page, or when someone comes back from another site or a campaign link. |
| Pages per visit | Page views divided by visits. |
| Avg. time per visit | How long pages stayed on screen during a visit. Time in another tab doesn't count. |
| Bounce rate | Visits that saw only one page. Lower usually means visitors found more to read. |
The figures in the top right corner are today's visitors and page views so far.
Below the chart:
- Top pages: views, visitors and average time on each page. Each page shows its title with its address in grey (the home page reads Home); pages without a title, such as category archives, show the address. Click a page to open it.
- Traffic sources: where visits came from, grouped as Search, Social, Direct, Email, Referral and Campaigns. Click a group to see the sites behind it (for example, google.com or facebook.com) or the campaigns. Coming back from a payment page or a sign-in (PayPal, Stripe, Klarna, Afterpay, Affirm, 3-D Secure card checks, Google or Apple sign-in) carries on the visit instead of starting a new one from Referral.
- Landing pages: the first page of each visit.
- Countries, Devices (phone, tablet, desktop) and Browsers.
Long lists show ten rows; click Show all for the rest. Export CSV downloads everything on the page for the chosen period, for a spreadsheet or a client report.
Leads and clicks
Below the other lists, Leads shows what visitors did: the forms they sent and the links and buttons they clicked. It appears once there's something to show, or straight away on sites with Gravity Forms.
- Leads: Gravity Forms submissions plus clicks on phone numbers, email addresses and text-message links, with the change from the comparison period.
- Leads per 100 visits: leads divided by visits. Form submissions are counted on the site itself, so they include visitors the script can't see (ad blockers, Do Not Track). That makes this figure read a little high.
- Forms: submissions per form, by the form's name. Click a form to see the sources and campaigns its leads came from.
- Contact clicks: clicks on phone, email and text-message links. Only the kind of link is counted, never the number or address.
- Buttons: clicks on Button blocks, by their text, with the page or site each one goes to.
- Goals: clicks on blocks you've marked as goals (see below).
- Outbound links: clicks on links to other sites, by site. For example, maps.google.com for directions, or a booking or partner site.
- Downloads: clicks on files on the site, such as PDF menus or brochures.
Each kind of click counts once per page view, so a visitor who taps the same phone number twice on a page adds one. Clicks count whether or not the visitor accepted the cookie banner. As with page views, nothing is stored on the device of a visitor who hasn't accepted cookies.
Gravity Forms entries marked as spam aren't counted, and neither are submissions by administrators while logged in (unless Track Admin Sessions is on, as for page views). So you can test a form without adding to the numbers.
Add a goal
To count clicks on a particular button, image or section, give its block a class that starts with ds-goal-:
- Select the block (a Button block, or any other block).
- In the block settings, open Advanced and type a class such as
ds-goal-book-nowin Additional CSS class(es). - Update the page.
Clicks on that block, or on anything inside it, show under Goals as book-now. Use lower-case letters, numbers and hyphens after ds-goal-, up to 40 characters. A goal on a phone link or a button counts under both: once as the goal, once as a contact click or button.
Pages already cached by the host start counting clicks as their cache refreshes.
Campaigns on form leads
When a visitor arrives from a campaign link (one with utm_source and utm_campaign), their form submission is counted under that source and campaign, so Forms can show "3 leads from newsletter, spring-sale". The source and campaign come from the theme's campaign cookie, which is set once the visitor accepts cookies (or straight away without the cookie banner), and otherwise from the form's own hidden fields for them, if it has any (fields with the CSS class ds-param-utm_source or ds-param-utm_campaign, or with utm_source or utm_campaign as their dynamic population parameter). A visit from a Google Ads click counts as source google.
Values that look like an email address, a phone number or a long ID aren't kept as a source or campaign.
Campaign links
Add utm_source, utm_medium and utm_campaign to links in newsletters, ads and social posts, and visits from them show under Campaigns (or Email, for a newsletter) with the source and campaign name. For example:
https://example.com/spring-sale/?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale
Links from Google Ads and Microsoft Ads (with auto-tagging on) count as Campaigns without any extra setup.
Use words for sources and campaigns. Values that look like an email address, a phone number, a long number (including Google Ads' numeric {campaignid}) or a long code are left out, so personal details in a link are never stored.
Some pages are grouped
Search results, order confirmation and order pages, event check-in pages and pages that weren't found are each counted as one entry, such as Search results or Not found (404). That way search words, order numbers and private links are never stored. Login and password-reset pages aren't counted at all. Other query strings in addresses are dropped, so /shop/?color=blue counts as /shop/.
Privacy and the cookie banner
Only totals are kept, on the site's own database: daily totals for two years (25 months), and monthly totals for five years. That includes leads and clicks: a form's submissions are counted by form and campaign, never with the person's name or details, and phone and email clicks are counted without the number or address. To count visitors who haven't accepted cookies, the site also keeps an anonymous code for each one for the day, and that code will be deleted. No IP addresses, names or email addresses are kept, and nothing is sent to anyone else. Visitors whose browser asks sites not to track them (Do Not Track or Global Privacy Control) aren't counted.
To recognise returning visitors, the script sets one first-party cookie, ds_av, which holds a random number and the time of the last visit. Without the theme's cookie banner, the cookie is set straight away, as Google Analytics would be.
With the cookie banner turned on, the cookie waits until the visitor clicks Accept. Until then, nothing is stored on their device, and they're still counted:
- Their page views, visits and traffic sources count like everyone else's.
- They count as a visitor through an anonymous code that the site makes from their IP address and browser. The code changes every day, and it will be deleted. It can't be turned back into an IP address. Until it's deleted, someone who can read the site's database and already knows a visitor's IP address and browser could check whether they visited that day, but nobody can work out who visited from the codes alone.
- Because the code changes daily, someone who visits on Monday and again on Thursday counts as two visitors over that week, once for each day. People who accepted cookies count once for the whole period. So on a site with the banner, Visitors for a week or a month can be a little higher than the number of different people.
- They're never counted as first-time or returning visitors, since the site can't tell.
Visitors who click the banner's decline button (No, thanks unless you changed it) are counted the same way as visitors who haven't answered yet: anonymously, with nothing stored on their device.
Two people in the same home or office, on the same network and the same browser, can share a code for the day and count as one visitor.
A sentence for the site's privacy policy:
This site counts visits with its own analytics. With your consent, it sets a first-party cookie (
ds_av) that holds a random identifier and the time of your last visit. If you haven't accepted cookies, you're counted with an anonymous code made from your IP address and browser, which changes daily and will be deleted; nothing is stored on your device. No personal data is kept, and nothing is shared with third parties.
Speed
The script is about 2.3 KB compressed and starts only after the page has finished loading, the same timing the theme uses for Google Analytics, so it doesn't affect PageSpeed scores. It sends several page views together, usually once or twice per visit, with any clicks in the same request, and the site answers each in a few milliseconds.
Troubleshooting
- A form's submissions don't show: check that the test was sent while logged out (or in a private window): administrators' own submissions aren't counted. Entries Gravity Forms marks as spam aren't counted either.
- Clicks don't show on a page: the host may still serve a cached copy of the page from before the update. Purge the cache, or wait for it to refresh.
- A goal doesn't show: check the class starts with
ds-goal-and uses only lower-case letters, numbers and hyphens. - A form's source is "None": the visitor didn't arrive from a campaign link, didn't accept cookies before sending the form, or the form has no hidden campaign fields.
Turn it off
Go to Optimize Settings and, on the Dirigible Analytics card, uncheck Count visits with Dirigible Analytics. It saves straight away. The script comes off the pages (as the cache refreshes) and nothing new is counted. The numbers already counted stay readable under Analytics. Check the box again to turn it back on.
Deleting Optimize
Deleting Dirigible Optimize keeps the numbers, so reinstalling it brings them back. To delete them along with the plugin, check Also delete the Analytics numbers when Dirigible Optimize is deleted on Optimize Settings first.